Config Base Container Class
A BaseContainerProps attribute tells the Workbench this class serves as a blueprint for the Config Editor.
BaseContainerProps
The usage of a BaseContainerProps class decoration is required for the class to be visible and editable in the Config Editor - see Examples below.
The minimum required attribute usage is
for the base object Config to be visible in the Config creation process.
A class inheriting a decorated one must be decorated as well in order to be usable.
It accepts the following parameters:
A class name display is defined as follow:
- if the class uses a name instead of a GUID (see NC_MUST_HAVE_NAME), the name is displayed - otherwise, the classname is
- the class can use a custom name with the usage of an additional decorator such as BaseContainerCustomTitle or one of its children
Parameters Description
Parameter
|
Type
|
Description
|
category
|
string
|
The class's category - only useful in World Editor plugins definition.
|
description
|
string
|
The class's description - only useful in World Editor plugins definition.
|
color
|
string
|
The class's colour in RGBA format (Red Green Blue Alpha) in a 0..255 range - only useful in World Editor plugins definition.
|
visible
|
bool
|
The class's visibility - only useful in World Editor plugins definition.
|
insertable
|
bool
|
|
configRoot
|
bool
|
Define if the class is selectable when creating a new Config.
|
icon
|
string
|
The class's icon - only useful in World Editor plugins definition.
|
namingConvention
|
enum
|
See the NamingConvention enum.
Possible values:
- NC_CAN_HAVE_NAME: Internal use.
- NC_MUST_HAVE_NAME: Force providing a name on object creation (whether a class or an array of them) instead of having an automatically generated GUID. The displayed object name is then the entered name.
- NC_MUST_HAVE_GUID: The default value - the Workbench generates a GUID for this config entry. The displayed object name is then the classname.
|
Attribute
The usage of an Attribute member variable decoration is required for the value to be visible and editable in the Config Editor - see Examples below.
The minimum required Attribute usage is [Attribute()].
A variable's display name is deduced as follows:
m_iMyVariable is split by removing m_ (conventional name prefix for a member variable), i (optional, additional prefix for variable type - see Values - Types) and splitting the remaining part using the capital letters: here My Variable.
It accepts the following parameters:
Parameters Description
Parameter
|
Type
|
Description
|
defvalue
|
string
|
The default value. It is always a string, even in the case of a boolean ("0", "1", not "false"/"true"), a number ("5678", "12.34") or a vector ("0 0 0").
ⓘ
- There is no way to set the default value of an object
- There is no way to set the default value of an array, only of its new item.
|
uiwidget
|
string
|
The Widget type to be used. It can be forced to whatever wanted. Note that not all widgets fit all variable types. See the UIWidgets class.
ⓘ In the case of an array, the value will define the UI for the items, not the array itself.
Value
|
Description
|
Compatible With
|
bool
|
float
|
int
|
string
|
vector
|
Auto
|
Attribute Type
|
Default UI Widget
|
bool
|
Checkbox
|
int
|
SpinBox
|
float
|
EditBox (numerical version)
|
string
|
EditBox (text version)
|
vector
|
Coords
|
array
|
Array Widget and item type Widget
|
Color
|
ColorPicker
|
ResourceName
|
ResourceNamePicker
|
|
|
|
|
|
|
Hidden
|
Does not display the field.
|
N/A
|
None
|
Identical to Hidden.
|
N/A
|
ColorPicker
|
A colour modification UI. Clicking the colour rectangle will display the colour picker, allowing to set values in many ways.
|
Color
|
ResourceNamePicker
|
Allows referring to a resource of any kind.
|
ResourceName
|
ResourcePickerThumbnail
|
Allows previewing images and textures - to be combined with edds and/or imageset params Attribute parameter.
|
ResourceName
|
FileNamePicker
|
Internal use.
|
N/A
|
ResourceAssignArray
|
Internal use.
|
N/A
|
Date
|
Range 01/01/2000 00:00 → 31/12/2063 23:59 UTC Time (e.g 01/01/2000 01:00 in Western Europe)
|
|
|
|
|
|
Graph
|
Internal use.
|
N/A
|
Font
|
Internal use.
|
N/A
|
FileEditBox
|
Internal use.
|
N/A
|
SpinBox
|
A numerical, editable up-down field.
|
|
|
|
|
|
ComboBox
|
A combo box that opens and allows to pick one value among a selection.
|
|
|
|
|
|
EditComboBox
|
|
|
|
|
|
|
SearchComboBox
|
|
|
|
|
|
|
LocaleEditBox
|
Internal use.
|
N/A
|
EditBox
|
|
|
|
|
|
|
Checkbox
|
Checked for true, unchecked for false.
|
|
|
|
|
|
Slider
|
A click and drag allows to set the value on the slider; a click on the slider itself allows to type in the wanted value.
|
|
|
|
|
|
Flags
|
Offers checkboxes for each enums provided. Power of two values are recommended, e.g:
enums: {
ParamEnum("First flag", "1"),
ParamEnum("Second flag", "2"),
ParamEnum("Third flag", "4"),
ParamEnum("Fourth flag", "8"), // etc
}
|
|
|
|
|
|
Button
|
Internal use.
|
N/A
|
Script
|
Internal use.
|
N/A
|
EditBoxWithButton
|
Internal use.
|
N/A
|
LODFactorsEdit
|
Internal use.
|
N/A
|
Object
|
Clicking the "set class" button creates an instance allowing to set its values (if any).
|
All objects
|
Coords
|
Clicking an axis letter and dragging left or right changes the value.
|
|
|
|
|
|
Range
|
Internal only.
|
N/A
|
Callback
|
Pick a callback method.
⚠ A callback method must be decorated with [CallbackMethod()] and have the following signature: void MethodName(Managed eventParams).
|
Event
|
TopLevelObject
|
Internal use.
|
N/A
|
GraphDialog
|
A graph modification UI. Double-clicking on the graph creates a new point, click/dragging on a point moves it (no further than its surrounding ones on the X-axis), clicking on a point focuses it, and pressing Del removes that point.
|
Curve
|
BoundingVolume
|
Internal use.
|
N/A
|
|
desc
|
string
|
The variable's description; this provides a tooltip when hovering the variable name and does not replace it.
|
params
|
string
|
Used to define UI-specific settings, e.g a numerical range.
- Array: "MaxSize=10" to limit the amount of possible elements
- Number: "minValue maxValue step" (e.g "0 100 5" for a 0..100 range with steps of 5)
- Curve: "rangeX rangeY offsetX offsetY" (e.g "50.0 80.0 10.0 20.0" for curve axes to go X:10..60 (10 + 50) and Y:20..100 (20 + 80))
- Vector: "minValue maxValue step purpose=purposeType space=spaceType anglesVar=anglesVariableName coordsVar=coordsVariableName" (e.g "0 100 5" for a 0..100 range with steps of 5) for each vector value.
purpose and space are optional; using them makes step optional and allows to set the vector value in World Editor using the transformation gizmo.
- purpose possible values:
- coords - the vector property represents coordinates
- angles - the vector property represents rotations
- space possible values:
- entity - the vector represents a value in the entity's local space (relative coordinates)
- world - the vector is an absolute world position
- custom - any custom space defined by the entity
- anglesVar/coordsVar is the direct variable name, e.g m_vAngles/m_vRelativePos
- examples:
- inf inf purpose=coords space=entity
- -90 +90 5 purpose=angles space=world
- ResourcePicker: "extension1 extension2 class=classname inheritedClasses=false"
- extension1 extension2 file extensions, e.g "dds edds imageset png" for an Image Resource Picker
- class is the Entity or config class type from which the selection must inherit, e.g "et class=AIWaypoint" for AIWaypoint entities
- inheritedClasses set to false to only have a selection from the exact class defined with class, e.g "conf class=TAG_MyClass inheritedClasses=false" for .conf files of TAG_MyClass class and only this class
ⓘ
- Note that setting a step for an integer does not prevent the user to type in the value manually.
- It is possible to use inf (for "infinity") to specify a non-restricted range - e.g "inf inf 0".
|
enums
|
ParamsEnumArray
|
An array of ParamEnum. Used to define ComboBox's items. It can be defined as follows:
{ ParamEnum("Text 1", "Value 1", "Description"), ParamEnum("Text 2", "Value 2") }
The description is optional and is to fill a combobox's entry tooltip. As many as needed ParamEnum entries can exist.
|
category
|
string
|
The variable's category - only useful in World Editor plugins to categorise properties.
|
precision
|
int
|
The wanted floating point precision. Restricts a floating point field to a certain amount of decimals.
|