Difference between revisions of "Modding:Thing"
From DoomRL Wiki
Yaflhdztioxo (Talk | contribs) |
m (Testing script with new table templates) |
||
Line 2: | Line 2: | ||
== Properties == | == Properties == | ||
+ | |||
{|class="wikitable" style="border: 2px solid darkred; border-spacing: 0; font-size: 90%; margin: 0.25em 0.5em;" | {|class="wikitable" style="border: 2px solid darkred; border-spacing: 0; font-size: 90%; margin: 0.25em 0.5em;" | ||
! colspan="3" style="background: darkred; color: yellow; font-size: 120%; text-align: center"|'''Thing''' | ! colspan="3" style="background: darkred; color: yellow; font-size: 120%; text-align: center"|'''Thing''' | ||
− | {{ | + | {{Table3Col |
|es=background: #333; | |es=background: #333; | ||
|c1=font-weight:bold; text-align:right; vertical-align:top; padding:0px 2px; | |c1=font-weight:bold; text-align:right; vertical-align:top; padding:0px 2px; | ||
|c2=vertical-align:top; padding:0px 2px; | |c2=vertical-align:top; padding:0px 2px; | ||
|c3=padding:0px 2px; | |c3=padding:0px 2px; | ||
− | + | |Byte|id|Determines the type of thing (e.g. former human, chaingun, etc) that this is. An item and a being may have the same id without being the same type of thing. This property is read-only. | |
− | + | |String|sid|Ids and sids are in one-to-one correspondence. It is generally preferable to write out sids rather than ids to make code more readable. This property is read-only. | |
− | + | |DWord|uid|Every instantiated thing has a distinct uid. (In theory, the game could run out of uids and be forced to repeat, but there are enough possibilities that this is inplausible.) This property is read-only. | |
− | + | |Char|picture|The character used to represent the thing when it is on the map. | |
− | + | |[[Modding:Constants#Colors|Color]]|color|The color used to draw the picture when the thing is on the map. This color is sometimes used in menus as well. | |
− | + | |String|name|This string is used to describe the thing in various game messages. | |
− | + | |String|nameplural|This is the plural of the name string, used in a few game messages. | |
− | + | |Word|sprite|This determines the sprite that is used to represent the thing in the graphical version. | |
− | + | |LongInt|x|This is the thing's x-coordinate on the map. Typically, this is 0 if the thing isn't on the map. This property is read-only. | |
− | + | |LongInt|y|This is the thing's y-coordinate on the map. Typically, this is 0 if the thing isn't on the map. This property is read-only. | |
− | + | |Integer|res_bullet|This is the bullet resistance associated with the thing. | |
− | + | |Integer|res_melee|This is the melee resistance associated with the thing. | |
− | + | |Integer|res_shrapnel|This is the shrapnel resistance associated with the thing. | |
− | + | |Integer|res_acid|This is the acid resistance associated with the thing. | |
− | + | |Integer|res_fire|This is the fire resistance associated with the thing. | |
− | + | |Integer|res_plasma|This is the plasma resistance associated with the thing. | |
− | + | |userdata|__ptr|This is a pointer to the pascal object representing the thing. When the pascal object is deallocated, this field is set to nil. | |
− | + | }} | |
|} | |} | ||
− | |||
− | |||
== API == | == API == | ||
− | {|style="border: 2px solid darkred; border-spacing: 0; font-size: 90%; margin: 0.25em 0.5em;" | + | |
− | + | {|class="wikitable" style="border: 2px solid darkred; border-spacing: 0; font-size: 90%; margin: 0.25em 0.5em;" | |
− | | | + | ! colspan="2" style="background: darkred; color: yellow; font-size: 120%; text-align: center"|'''Thing Interface''' |
− | | | + | {{Table2Col |
− | |thing.[[#thing_displace|displace]]([[Modding:Thing|Thing]] self, [[Modding:Coord|Coord]] where) | + | |es=background: #333; |
− | | | + | |c1=font-weight:bold; text-align:right; vertical-align:top; padding:0px 2px; |
− | + | |c2=padding:0px 2px; | |
− | |thing.[[#thing_destroy|destroy]]([[Modding:Thing|Thing]] self) | + | |void|thing.[[#thing_displace|displace]]([[Modding:Thing|Thing]] self, [[Modding:Coord|Coord]] where) |
− | | | + | |void|thing.[[#thing_destroy|destroy]]([[Modding:Thing|Thing]] self) |
− | + | |boolean|thing.[[#thing_flags_get|flags_get]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Flags|Flag]] flag) | |
− | |thing.[[#thing_flags_get|flags_get]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Flags|Flag]] flag) | + | |void|thing.[[#thing_flags_set|flags_set]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Flags|Flag]] flag, '''boolean''' value) |
− | | | + | |value|thing.[[#thing_property_get|property_get]]([[Modding:Thing|Thing]] self, '''string''' property) |
− | + | |void|thing.[[#thing_property_set|property_set]]([[Modding:Thing|Thing]] self, '''string''' property, '''value''' value) | |
− | |thing.[[#thing_flags_set|flags_set]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Flags|Flag]] flag, '''boolean''' value) | + | |integer|thing.[[#thing_res_get|res_get]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Resistance|Resistance]] resistance) |
− | | | + | |void|thing.[[#thing_res_set|res_set]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Resistance|Resistance]] resistance, '''integer''' value) |
− | + | |[[Modding:Coord|Coord]]|[[Modding:Thing|Thing]]:[[#thing_get_position|get_position]]() | |
− | |thing.[[#thing_property_get|property_get]]([[Modding:Thing|Thing]] self, '''string''' property) | + | |integer|[[Modding:Thing|Thing]]:[[#thing_distance_to|distance_to]]([[Modding:Thing|Thing]] or [[Modding:Coord|Coord]] other) |
− | | | + | |void|[[Modding:Thing|Thing]]:[[#thing_add_property|add_property]]('''string''' key, '''value''' value) |
− | + | |void|[[Modding:Thing|Thing]]:[[#thing_remove_property|remove_property]]('''string''' key) | |
− | |thing.[[#thing_property_set|property_set]]([[Modding:Thing|Thing]] self, '''string''' property, '''value''' value) | + | |boolean|[[Modding:Thing|Thing]]:[[#thing_has_property|has_property]]('''string''' key) |
− | | | + | |value|[[Modding:Thing|Thing]]:[[#thing_get_property|get_property]]('''string''' key) |
− | + | |void|[[Modding:Thing|Thing]]:[[#thing_set_property|set_property]]('''string''' key, '''value''' value) | |
− | |thing.[[#thing_res_get|res_get]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Resistance|Resistance]] resistance) | + | }} |
− | | | + | |
− | + | ||
− | |thing.[[#thing_res_set|res_set]]([[Modding:Thing|Thing]] self, [[Modding:Constants#Resistance|Resistance]] resistance, '''integer''' value) | + | |
− | + | ||
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_get_position|get_position]]() | + | |
− | | | + | |
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_distance_to|distance_to]]([[Modding:Thing|Thing]] or [[Modding:Coord|Coord]] other) | + | |
− | | | + | |
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_add_property|add_property]]('''string''' key, '''value''' value) | + | |
− | | | + | |
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_remove_property|remove_property]]('''string''' key) | + | |
− | | | + | |
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_has_property|has_property]]('''string''' key) | + | |
− | | | + | |
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_get_property|get_property]]('''string''' key) | + | |
− | | | + | |
− | + | ||
− | |[[Modding:Thing|Thing]]:[[#thing_set_property|set_property]]('''string''' key, '''value''' value) | + | |
|} | |} | ||
Revision as of 00:04, 10 September 2011
A thing in DoomRL is a base class that is inherited by beings and items (and the player). This means that beings and items are also things. The thing class is responsible for positioning, flags, resistances, and custom properties.
Properties
Thing | ||
---|---|---|
Byte | id | Determines the type of thing (e.g. former human, chaingun, etc) that this is. An item and a being may have the same id without being the same type of thing. This property is read-only. |
String | sid | Ids and sids are in one-to-one correspondence. It is generally preferable to write out sids rather than ids to make code more readable. This property is read-only. |
DWord | uid | Every instantiated thing has a distinct uid. (In theory, the game could run out of uids and be forced to repeat, but there are enough possibilities that this is inplausible.) This property is read-only. |
Char | picture | The character used to represent the thing when it is on the map. |
Color | color | The color used to draw the picture when the thing is on the map. This color is sometimes used in menus as well. |
String | name | This string is used to describe the thing in various game messages. |
String | nameplural | This is the plural of the name string, used in a few game messages. |
Word | sprite | This determines the sprite that is used to represent the thing in the graphical version. |
LongInt | x | This is the thing's x-coordinate on the map. Typically, this is 0 if the thing isn't on the map. This property is read-only. |
LongInt | y | This is the thing's y-coordinate on the map. Typically, this is 0 if the thing isn't on the map. This property is read-only. |
Integer | res_bullet | This is the bullet resistance associated with the thing. |
Integer | res_melee | This is the melee resistance associated with the thing. |
Integer | res_shrapnel | This is the shrapnel resistance associated with the thing. |
Integer | res_acid | This is the acid resistance associated with the thing. |
Integer | res_fire | This is the fire resistance associated with the thing. |
Integer | res_plasma | This is the plasma resistance associated with the thing. |
userdata | __ptr | This is a pointer to the pascal object representing the thing. When the pascal object is deallocated, this field is set to nil. |
API
Thing Interface | |
---|---|
void | thing.displace(Thing self, Coord where) |
void | thing.destroy(Thing self) |
boolean | thing.flags_get(Thing self, Flag flag) |
void | thing.flags_set(Thing self, Flag flag, boolean value) |
value | thing.property_get(Thing self, string property) |
void | thing.property_set(Thing self, string property, value value) |
integer | thing.res_get(Thing self, Resistance resistance) |
void | thing.res_set(Thing self, Resistance resistance, integer value) |
Coord | Thing:get_position() |
integer | Thing:distance_to(Thing or Coord other) |
void | Thing:add_property(string key, value value) |
void | Thing:remove_property(string key) |
boolean | Thing:has_property(string key) |
value | Thing:get_property(string key) |
void | Thing:set_property(string key, value value) |
- thing.displace(Thing self, Coord where)
- Changes the thing's position to where. This doesn't do any collision checking, so be careful.
- thing.destroy(Thing self)
- Deallocates the memory associated with the thing. Generally, the item or being-specific versions should be used instead (although even these are rarely useful to modders).
- thing.flags_get(Thing self, Flag flag) → boolean
- Thing.flags[Flag flag] → boolean
- Determines whether the given flag is present in the thing's flag set.
- thing.flags_set(Thing self, Flag flag, boolean value)
- Thing.flags[Flag flag] = boolean value
- Sets or clears the given flag from the thing's flag set.
- thing.property_get(Thing self, string property) → value
- Gets value of the given built-in property. This should usually be avoided in favor of set_property.
- thing.property_set(Thing self, string property, value value)
- Sets the value of the given built-in property. This should usually be avoided in favor of get_property.
- thing.res_get(Thing self, Resistance resistance) → integer
- Thing.resistance[Resistance resistance] → integer
- Gets the given resistance of the thing.
- thing.res_set(Thing self, Resistance resistance, integer value)
- Thing.resistance[Resistance resistance] = integer value
- Sets the given resistance of the thing.
- Thing:get_position() → Coord
- Returns the thing's position. This is a newly allocated coord; it is independent of the thing.
- Thing:distance_to(Thing or Coord other) → integer
- Returns the distance from the thing to another position or thing.
- Thing:add_property(string key, value value)
- Adds a custom property to the thing with the given initial value. value is optional; it defaults to false.
- Thing:remove_property(string key)
- Removes the given custom property from the thing.
- Thing:has_property(string key) → boolean
- Determines whether the thing has a custom property with the given name.
- Thing:get_property(string key) → value
- Thing[string key] → value
- Gets the value of the given built-in or custom property. Usually the dot notation for table indexing is used.
- Thing:set_property(string key, value value)
- Thing[string key] = value value
- Sets the given built-in or custom property of the thing to the given value. Usually the dot notation for table indexing is used.