Eden Editor: Configuring Attributes: Difference between revisions
Categories: Eden EditorEden Editor: Modding
| mNo edit summary | mNo edit summary | ||
| Line 22: | Line 22: | ||
| 						unique = 0; // When 1, only one entity of the type can have the value in the mission (used for example for variable names or player control) | 						unique = 0; // When 1, only one entity of the type can have the value in the mission (used for example for variable names or player control) | ||
| 						validate = "code"; // Validate the value before saving. Can be "none", "expression", "condition", "number" or "variable" | 						validate = "code"; // Validate the value before saving. Can be "none", "expression", "condition", "number" or "variable" | ||
| 						condition = "object"; // Condition for attribute to appear | 						condition = "object"; // Condition for attribute to appear (see the table below) | ||
| 						// Expression called when applying the attribute in Eden and at the scenario start | 						// Expression called when applying the attribute in Eden and at the scenario start | ||
| 						// Entity is passed as _this, value is passed as _value, property name is passed as _property | 						// Entity is passed as _this, value is passed as _value, property name is passed as _property | ||
| Line 41: | Line 41: | ||
| </syntaxhighlight> | </syntaxhighlight> | ||
| === Conditions === | === Conditions === | ||
| Conditions are written as [[Simple Expression|simple expressions]]. | |||
| Example: | |||
|  objectBrain * (1 - objectDestructable) | |||
| Object must be indestructible AI character (theoretical example, no such object exists in unmodded game). | |||
| '''Supported conditions:''' | |||
| {| class="wikitable sortable" | |||
| ! Condition | |||
| ! class="unsortable" | For Type | |||
| ! class="unsortable" | Description | |||
| |- | |||
| | <!-- Condition --> objectBrain | |||
| | <!-- Type --> Object | |||
| | <!-- Description -->Object with simulation "soldier" or "UAVpilot" | |||
| |- | |||
| | <!-- Condition --> objectControllable | |||
| | <!-- Type --> Object | |||
| | <!-- Description -->Object with simulation "soldier" | |||
| |- | |||
| | <!-- Condition --> objectAgent | |||
| | <!-- Type --> Object | |||
| | <!-- Description -->	Object with non-empty ''agentTasks[]'', i.e., animals | |||
| |- | |||
| | <!-- Condition --> objectVehicle | |||
| | <!-- Type --> Object | |||
| | <!-- Description -->Vehicle which can be boarded | |||
| |- | |||
| | <!-- Condition --> 	objectSimulated | |||
| | <!-- Type --> Object | |||
| | <!-- Description -->	Object which is simulated (e.g., falls down when in the air) | |||
| |- | |||
| | <!-- Condition --> 	objectDestructable | |||
| | <!-- Type --> Object | |||
| | <!-- Description -->Indestructible object, i.e., when ''destrType'' config property set not ''DestructNo'' | |||
| |- | |||
| | <!-- Condition --> 	logicModule | |||
| | <!-- Type --> Logic | |||
| | <!-- Description -->Logic which is a module (''vehicleClass'' config property is ''"Modules"'') | |||
| |} | |||
| === Lists === | === Lists === | ||
| === Data Validation === | === Data Validation === | ||
Revision as of 15:58, 3 November 2015
Config
class Cfg3DEN
{
	// Configuration of all objects
	class Object
	{
		// Categories collapsible in "Edit Attributes" window
		class AttributeCategories
		{
			// Category class, can be anything
			class MyCategory
			{
				displayName = "Object Init"; // Category name visible in Edit Attributes window
				collapsed = 1; // When 1, the category is collapsed by default
				class Attributes
				{
					// Attribute class, can be anything
					class MyAttribute
					{
						property = "MyAttribute"; // Unique config property name saved in SQM
						control = "Edit"; // UI control base class displayed in Edit Attributes window, points to Cfg3DEN >> Attributes
						unique = 0; // When 1, only one entity of the type can have the value in the mission (used for example for variable names or player control)
						validate = "code"; // Validate the value before saving. Can be "none", "expression", "condition", "number" or "variable"
						condition = "object"; // Condition for attribute to appear (see the table below)
						// Expression called when applying the attribute in Eden and at the scenario start
						// Entity is passed as _this, value is passed as _value, property name is passed as _property
						// %s is replaced by attribute config name. It can be used only once in the expression
						expression = "_this setVariable [%s,_value];";
						// Expression called when custom property is undefined yet (i.e., when setting the attribute for the first time)
						// Entity is passed as _this
						// Returned value is the default value
						// Used when no value is returned, or when it's of other type than NUMBER, STRING or ARRAY
						// Custom attributes of logic entities (e.g., modules) are saved always, even when they have default value
						defaultValue = "42";
					};
				};
			};
		};
	};
};
Conditions
Conditions are written as simple expressions. Example:
objectBrain * (1 - objectDestructable)
Object must be indestructible AI character (theoretical example, no such object exists in unmodded game).
Supported conditions:
| Condition | For Type | Description | 
|---|---|---|
| objectBrain | Object | Object with simulation "soldier" or "UAVpilot" | 
| objectControllable | Object | Object with simulation "soldier" | 
| objectAgent | Object | Object with non-empty agentTasks[], i.e., animals | 
| objectVehicle | Object | Vehicle which can be boarded | 
| objectSimulated | Object | Object which is simulated (e.g., falls down when in the air) | 
| objectDestructable | Object | Indestructible object, i.e., when destrType config property set not DestructNo | 
| logicModule | Logic | Logic which is a module (vehicleClass config property is "Modules") | 
