From 8cc8819cd314ea3acbc1f1ab320e639d6245806f Mon Sep 17 00:00:00 2001 From: MrKBear Date: Fri, 8 Apr 2022 17:39:26 +0800 Subject: [PATCH] Add color Parameter --- source/Behavior/Template.ts | 12 ++++++++++++ source/Input/Parameter/Parameter.tsx | 18 +++++++++++++++++- source/Model/Parameter.ts | 17 +++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/source/Behavior/Template.ts b/source/Behavior/Template.ts index 916c5eb..dff6373 100644 --- a/source/Behavior/Template.ts +++ b/source/Behavior/Template.ts @@ -7,6 +7,8 @@ type ITemplateBehaviorParameter = { testNumber: "number"; testString: "string"; testBoolean: "boolean"; + testColor: "color"; + testOption: "option"; testR: "R"; testG: "G"; testLR: "LR"; @@ -43,6 +45,16 @@ class Template extends Behavior extends Component & IMi keyI18n="Panel.Info.Behavior.Details.Parameter.Key" keyI18nOption={{ key: i18nString }} onIconName={option.iconName} + red={option.iconRed} value={value as IParamValue<"boolean"> ?? false} valueChange={(val) => { this.props.change(key, val as IParamValue); @@ -100,7 +102,21 @@ class Parameter

extends Component & IMi /> } - else if (isVectorType(type)) { + else if (type === "color") { + + return ?? false} + valueChange={(val) => { + this.props.change(key, val as IParamValue); + }} + /> + } + + else if (type === "vec") { type IObjectParamValue = IParamValue<"vec">; const typedValue = value as IObjectParamValue; diff --git a/source/Model/Parameter.ts b/source/Model/Parameter.ts index 0d70ca4..8ab4192 100644 --- a/source/Model/Parameter.ts +++ b/source/Model/Parameter.ts @@ -14,6 +14,7 @@ type IMapBasicParamTypeKeyToType = { "number": number; "string": string; "boolean": boolean; + "option": string; } type IMapObjectParamTypeKeyToType = { @@ -25,6 +26,7 @@ type IMapObjectParamTypeKeyToType = { type IMapVectorParamTypeKeyToType = { "vec": number[]; + "color": number[]; } /** @@ -100,6 +102,21 @@ interface IParameterOptionItem { * 图标名字 */ iconName?: string; + + /** + * 图标是否显示为红色 + */ + iconRed?: boolean; + + /** + * 颜色是否进行归一化 + */ + colorNormal?: boolean; + + /** + * 全部选项 + */ + allOption?: string[]; } interface IParameter {