Start Page » DragonScript Scripting Language » Behavior Elements: Quick and Easy Development » ECBehaviorCustomColor
Behavior in action
Behavior element behavior adding custom color support.
Custom colors are typically used to allow players to customize the look of their player actor by altering the color of individual body parts. This behavior allows to define custom color slots the player or artist can manipulate. This behavior does not define how custom colors are applied. This is left for other behaviors or game scripts to do.
Custom colors compose of a display name and the currently assigned color. This color can be null to use the assigned default color. An optional list of colors can be used to restrict the colors the player can select. If the list is empty the player can choose the color unrestricted. In addition a display description can be added in case the game developer would like to communicate additional information about the custom color.
This behavior can be used multiple times on an element to add multiple custom colors to mainpulate. Use the behavior identifier to tell them apart.
Element class properties have the prefix customColor. or customColor({id}). if id is not empty.
Sets the name to show for the custom color in UI.
<string name='customColor(body).name'>Body Color</string>
Sets the optional description to show for the custom color in UI. This can be used to add additional information beyond the name of the color. Often this is though not used.
<string name='customColor(body).description'>Color of scales along the back of the body</string>
Optional list of allowed colors. If this list is not empty the player is only allowed to select one of the colors from this list. If the list is empty all colors are allowed. Typically this means the UI shows a list or combo box instead of a set of sliders for each color component. In XML Element Class files this is defined as a list-tag containing color-tag entries. In Stub Properties this is encoded in the form “r1,g1,b1 r2,g2,b3 …” with rX,gX,bX defining the Xth color (you can use also newline instead of spaces).
<list name='customColor(body).allowedColors'> <color r='1' g='0' b='0'/> <color r='0' g='1' b='0'/> <color r='0' g='0' b='1'/> </list>
Sets the default color for the custom color. If the user selects no color (null value) then the default color is used. This can also be used to reset the color to the default color.
<color name='customColor(body).defaultColor' r='0' g='0.5' b='0'/>
Sets the initial selected color. This can be null to used the default color.
<color name='customColor(body).color' r='0' g='0.5' b='0'/>
<null name='customColor(body).color'/><!-- force no color set -->
Since this behavior provides no support to apply the chosen color listening is used. Behaviors knowing how to apply the color add a listener and are notified if the color changes. These events can be received:
Selected color changed. Use behavior to get the newly set color.
This behavior requires no other behaviors.
This behavior does not support optional behaviors.
This behavior does support element class to be persistable (setPersistable). Saves selected color.
Since DragonScript Module Version 1.5
This example defines an element which contains two custom colors the player can choose at will. You can now define the parameters to use for both custom colors using for example the properties “customColor(color1).color” for the first custom color and “customColor(color2).color” for the second custom color.
class MyElement extends BehaviorElementClass public func new() ECBehaviorCustomColor.new(this, "color1", "Color 1", Color.blue) ECBehaviorCustomColor.new(this, "color2", "Color 2", Color.red) end end