Modding:Thing

From DoomRL Wiki

Jump to: navigation, search

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 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 referring to multiple 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(Coord other)
integer Thing.distance_to(Thing 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.
Personal tools