Dev Blog
Hi, this is the Stranded III development blog (see also Forum Thread, Comment Thread).
Entry 7 - Object Property Editor - January 22, 2013
Again a long time without updates. Sorry about that. I'll now show you a preview of the object property window which will appear when you click at an existing object on the map.
Object Properties
Most parts of the object property window are now implemented. You will obviously be able to modify the position and rotation with visual tools as well but you can also specify these values directly. You can also specify a parent object (storing stuff in other stuff). Storing is theoretically not restricted in Stranded III. You can store everything (objects, units, items, infos) in everything. You can also store stuff which itself contains other stuff. It's theoretically an unlimited hierarchy.
You now might ask yourself (if you know something about Stranded II scripting): How is it possible to store different types of objects if there's only a textfield for an ID and no textfield for the type/class? The answer is simple: Object-, unit-, item- and info instances on the map share the same ID space in Stranded III. So there is only one instance with the ID 1. It can either be an object, unit, item or info. But there can't be for example an object with ID 1 and a unit with ID 1 at the same time because only one instance is allowed to have ID 1, no matter if it is an object/unit/item/info. This also simplifies scripting because you will never have to specify the type/class again and commands will be more universal.
Object Properties - Attributes
The editor allows you to view/add/remove/change attributes to individual object instances
In this screen you can see that even health - which is a very basic value - is realized using the attribute system. It is not hardcoded at all. Modders can decide if they need health attributes for certain objects or not. This leads to maximum freedom.
Also it's pretty memory friendly: Attributes are only saved if their values differ from the default values (you can define default attribute values for each object but you can also specify general default values which count for all objects/units/items/infos). So all objects with default health values (or in other words: all object which are undamaged) don't require additional memory in save games and map files.
You can easily choose and edit attributes in the attribute window:
Object Properties - Variables
Same for script variables. You can now directly specify local script variables in the editor and assign values to them. Stranded III will support 4 data types for local script variables: byte (0-255), integer (32 bit, signed), float (32 bit, signed) and string.
The variable window allows you to specify the type, name and value of a variable:
What about the "Children" section
The children section of the object property simply lists all instances which are stored in the currently selected instance (=have this instance as parent). It's not yet implemented.
Lua Accessibility
Of course you will be able to read/write/remove attributes and variables with Lua scripts as well. Same for storing and unstoring stuff.
Object Properties
Most parts of the object property window are now implemented. You will obviously be able to modify the position and rotation with visual tools as well but you can also specify these values directly. You can also specify a parent object (storing stuff in other stuff). Storing is theoretically not restricted in Stranded III. You can store everything (objects, units, items, infos) in everything. You can also store stuff which itself contains other stuff. It's theoretically an unlimited hierarchy.
You now might ask yourself (if you know something about Stranded II scripting): How is it possible to store different types of objects if there's only a textfield for an ID and no textfield for the type/class? The answer is simple: Object-, unit-, item- and info instances on the map share the same ID space in Stranded III. So there is only one instance with the ID 1. It can either be an object, unit, item or info. But there can't be for example an object with ID 1 and a unit with ID 1 at the same time because only one instance is allowed to have ID 1, no matter if it is an object/unit/item/info. This also simplifies scripting because you will never have to specify the type/class again and commands will be more universal.
Object Properties - Attributes
The editor allows you to view/add/remove/change attributes to individual object instances
In this screen you can see that even health - which is a very basic value - is realized using the attribute system. It is not hardcoded at all. Modders can decide if they need health attributes for certain objects or not. This leads to maximum freedom.
Also it's pretty memory friendly: Attributes are only saved if their values differ from the default values (you can define default attribute values for each object but you can also specify general default values which count for all objects/units/items/infos). So all objects with default health values (or in other words: all object which are undamaged) don't require additional memory in save games and map files.
You can easily choose and edit attributes in the attribute window:
Object Properties - Variables
Same for script variables. You can now directly specify local script variables in the editor and assign values to them. Stranded III will support 4 data types for local script variables: byte (0-255), integer (32 bit, signed), float (32 bit, signed) and string.
The variable window allows you to specify the type, name and value of a variable:
What about the "Children" section
The children section of the object property simply lists all instances which are stored in the currently selected instance (=have this instance as parent). It's not yet implemented.
Lua Accessibility
Of course you will be able to read/write/remove attributes and variables with Lua scripts as well. Same for storing and unstoring stuff.