Add behavior details panel

This commit is contained in:
2022-04-05 16:37:36 +08:00
parent 1b1f5d1633
commit cad68e8b9b
9 changed files with 220 additions and 30 deletions
+6 -5
View File
@@ -209,15 +209,16 @@ class Status extends Emitter<IStatusEvent> {
* 修改群属性
*/
public changeBehaviorAttrib<K extends IBehaviorParameter, P extends keyof K | keyof Behavior<K>>
(id: ObjectID, key: P, val: IParamValue<K[P]>) {
(id: ObjectID, key: P, val: IParamValue<K[P]>, noParameter?: boolean) {
const behavior = this.model.getBehaviorById(id);
if (behavior) {
if (key === "color") {
behavior.color = val as number[];
} else if (key === "name") {
behavior.name = val as string;
if (noParameter) {
behavior[key as keyof Behavior<K>] = val as never;
} else {
behavior.parameter[key] = val;
behavior.parameterOption[key]?.onChange ?
behavior.parameterOption[key]?.onChange!(val) :
undefined;
}
this.emit("behaviorAttrChange");
}