Modding:Thing
From DoomRL Wiki
Revision as of 00:34, 10 September 2011 by Yaflhdztioxo (Talk | contribs)
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 Properties | ||
---|---|---|
Byte | id | Numeric identifier, preferred by engine. Unique across like object types. Readonly. |
String | sid | String identifier, preferred by Lua. Unique across like object types. Readonly. |
DWord | uid | Unique identifier across all instantiated objects. Readonly. |
Char | picture | ASCII character used to represent object in game. |
Color | color | Color used to paint object in game and in menus. |
String | name | Name of object. |
String | nameplural | Name used when referencing multiple like objects. |
Word | sprite | Sprite ID used to represent object in graphical mode. |
LongInt | x | X-coordinate of objcet on map. Readonly. |
LongInt | y | Y-coordinate of objcet on map. Readonly. |
Integer | res_bullet | Resistance of object to bullet damage. |
Integer | res_melee | Resistance of object to melee damage. |
Integer | res_shrapnel | Resistance of object to shrapnel damage. |
Integer | res_acid | Resistance of object to acid damage. |
Integer | res_fire | Resistance of object to fire damage. |
Integer | res_plasma | Resistance of object to plasma damage. |
userdata | __ptr | Pointer to pascal object used by engine. Nil if deallocated. Readonly. |
API
Thing Procedures | |
---|---|
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.