Add color Parameter

This commit is contained in:
MrKBear 2022-04-08 17:39:26 +08:00
parent 3b255245f2
commit 8cc8819cd3
3 changed files with 46 additions and 1 deletions

View File

@ -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<ITemplateBehaviorParameter, ITemplateBehaviorEve
defaultValue: "default",
maxLength: 12
},
testColor: {
name: "$Test",
type: "color",
defaultValue: [.5, .1, 1],
colorNormal: true
},
testOption: {
name: "$Test",
type: "option"
},
testBoolean: {
name: "$Test",
type: "boolean",

View File

@ -6,6 +6,7 @@ import { TogglesInput } from "@Input/TogglesInput/TogglesInput";
import { ObjectPicker } from "@Input/ObjectPicker/ObjectPicker";
import { AllI18nKeys } from "@Component/Localization/Localization";
import { Message } from "@Input/Message/Message";
import { ColorInput } from "@Input/ColorInput/ColorInput";
import {
IParameter, IParameterOption, IParameterOptionItem,
IParameterValue, IParamValue, isObjectType, isVectorType
@ -71,6 +72,7 @@ class Parameter<P extends IParameter> extends Component<IParameterProps<P> & 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<P[K]>);
@ -100,7 +102,21 @@ class Parameter<P extends IParameter> extends Component<IParameterProps<P> & IMi
/>
}
else if (isVectorType(type)) {
else if (type === "color") {
return <ColorInput
key={indexKey}
keyI18n="Panel.Info.Behavior.Details.Parameter.Key"
keyI18nOption={{ key: i18nString }}
normal={option.colorNormal}
value={value as IParamValue<"color"> ?? false}
valueChange={(val) => {
this.props.change(key, val as IParamValue<P[K]>);
}}
/>
}
else if (type === "vec") {
type IObjectParamValue = IParamValue<"vec">;
const typedValue = value as IObjectParamValue;

View File

@ -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<T extends IParamType = IParamType> {
*
*/
iconName?: string;
/**
*
*/
iconRed?: boolean;
/**
*
*/
colorNormal?: boolean;
/**
*
*/
allOption?: string[];
}
interface IParameter {