Module engine.Entity
Functions
| _M:addParticles (ps) | Adds a particles emitter following the entity | 
| _M:addTemporaryValue (prop, v, noupdate) | Computes a "temporary" value into a property Example: You want to give an actor a boost to life_regen, but you do not want it to be permanent You cannot simply increase life_regen, so you use this method which will increase it AND store the increase. | 
| _M:added () | Call when the entity is actually added to a level/whatever This helps ensuring uniqueness of uniques | 
| _M:alterMakeMapObject (tiles, mo, z, last_mo) | Allows to alter the generated map objects Does nothing by default | 
| _M:attr (prop, v, fix) | Increases/decreases an attribute The attributes are just actor properties, but this ensures they are numbers and not booleans thus making them compatible with temporary values system | 
| _M:changeUid (newuid) | Change the entity's uid *WARNING*: ONLY DO THIS IF YOU KNOW WHAT YOU ARE DOING!. | 
| _M:check (prop, ...) | Check for an entity's property If not a function it returns it directly, otherwise it calls the function with the extra parameters | 
| _M:checkClassification (type_str) | Putting this here to avoid errors, not sure if appropriate | 
| _M:cloned (src) | If we are cloned we need a new uid | 
| _M:closeParticles () | Removes the particles from the running threads but keep the data for later | 
| _M:defineDisplayCallback () | Attach or remove a display callback Defines particles to display | 
| _M:getDisplayString (tstr) | Get a string that will display in text the texture of this entity | 
| _M:getEntityFinalSurface (tiles, w, h) | Get the entity image as an sdl surface and texture for the given tiles and size | 
| _M:getEntityFinalTexture (tiles, w, h) | Get the entity image as an sdl texture for the given tiles and size | 
| _M:getEntityKind () | Return the kind of the entity | 
| _M:getMapObjects (tiles, mos, z) | Get all "map objects" representing this entity Do not touch unless you *KNOW* what you are doing. You do *NOT* need this, this is used by the engine.Map class automatically. *DO NOT TOUCH!!!* | 
| _M:getParticlesList (back) | Get the particle emitters of this entity | 
| _M:init (t, no_default) | Initialize an entity Any subclass MUST call this constructor | 
| _M:invalidateAllMO () | Invalidates the whole MO repository | 
| _M:loadList (file, no_default, res, mod, loaded) | Loads a list of entities from a definition file | 
| _M:loaded () | If we are loaded we need a new uid | 
| _M:makeMapObject (tiles, idx) | Create the "map object" representing this entity Do not touch unless you *KNOW* what you are doing. You do *NOT* need this, this is used by the engine.Map class automatically. *DO NOT TOUCH!!!* | 
| _M:onTemporaryValueChange (prop, v, base) | Called when a temporary value changes (added or deleted) This does nothing by default, you can overload it to react to changes | 
| _M:printResolvers (t) | Print all resolvers registered | 
| _M:removeParticles (ps) | Removes a particles emitter following the entity | 
| _M:removeTemporaryValue (prop, id, noupdate) | Removes a temporary value, see addTemporaryValue() | 
| _M:removed () | Call when the entity is actually removed from existence This helps ensuring uniqueness of uniques. | 
| _M:replacedWith (isdone, new) | If we are replaced we need a new uid | 
| _M:resetMoveAnim () | Reset movement animation for the entity - removes any anim | 
| _M:resolve (t, last, on_entity, key_chain) | Resolves an entity This is called when generating the final clones of an entity for use in a level. | 
| _M:setMoveAnim (oldx, oldy, speed, blur, twitch_dir, twitch) | Setup movement animation for the entity The entity is supposed to posses a correctly set x and y pair of fields - set to the current (new) position | 
| _M:setupMinimapInfo (mo, map) | Setup minimap color for this entity You may overload this method to customize your minimap | 
| _M:stripForExport () | Try to remove all "un-needed" effects, fields, ... | 
| _M:tableTemporaryValue (t, k, v) | Helper function to add temporary values and not have to remove them manualy | 
| _M:toScreen (tiles, x, y, w, h, a, allow_cb, allow_shader) | Displays an entity somewhere on screen, outside the map | 
Functions
- _M:addParticles (ps)
- 
Adds a particles emitter following the entity
Parameters- ps:
 
- _M:addTemporaryValue (prop, v, noupdate)
- 
Computes a "temporary" value into a property Example: You want to give an actor a boost to life_regen, but you do not want it to be permanent
 You cannot simply increase life_regen, so you use this method which will increase it AND store the increase. it will return an "increase id" that can be passed to removeTemporaryValue() to remove the effect.Parameters- prop: the property to affect. This can be either a string or a table of strings, the latter allowing nested properties to be modified.
- v: the value to add. This should either be a number or a table of properties and numbers.
- noupdate: if true the actual property is not changed and needs to be changed by the caller
 Return value:an id that can be passed to removeTemporaryValue() to delete this value
- _M:added ()
- Call when the entity is actually added to a level/whatever This helps ensuring uniqueness of uniques
- _M:alterMakeMapObject (tiles, mo, z, last_mo)
- 
Allows to alter the generated map objects Does nothing by default
Parameters- tiles:
- mo:
- z:
- last_mo:
 
- _M:attr (prop, v, fix)
- 
Increases/decreases an attribute The attributes are just actor properties, but this ensures they are numbers and not booleans thus making them compatible with temporary values system
Parameters- prop: the property to use
- v: the value to add, if nil this the function return
- fix: forces the value to v, do not add
 Return value:nil if v was specified. If not then it returns the current value if it exists and is not 0 otherwise returns nil
- _M:changeUid (newuid)
- 
Change the entity's uid *WARNING*: ONLY DO THIS IF YOU KNOW WHAT YOU ARE DOING!. YOU DO NOT !
Parameters- newuid:
 
- _M:check (prop, ...)
- 
Check for an entity's property If not a function it returns it directly, otherwise it calls the function with the extra parameters
Parameters- prop: the property name to check
- ...:
 
- _M:checkClassification (type_str)
- 
Putting this here to avoid errors, not sure if appropriate
Parameters- type_str:
 
- _M:cloned (src)
- 
If we are cloned we need a new uid
Parameters- src:
 
- _M:closeParticles ()
- Removes the particles from the running threads but keep the data for later
- _M:defineDisplayCallback ()
- Attach or remove a display callback Defines particles to display
- _M:getDisplayString (tstr)
- 
Get a string that will display in text the texture of this entity
Parameters- tstr:
 
- _M:getEntityFinalSurface (tiles, w, h)
- 
Get the entity image as an sdl surface and texture for the given tiles and size
Parameters- tiles: a Tiles instance that will handle the tiles (usually pass it the current Map.tiles)
- w: the width
- h: the height
 Return value:the sdl surface and the texture
- _M:getEntityFinalTexture (tiles, w, h)
- 
Get the entity image as an sdl texture for the given tiles and size
Parameters- tiles: a Tiles instance that will handle the tiles (usually pass it the current Map.tiles)
- w: the width
- h: the height
 Return value:the sdl texture
- _M:getEntityKind ()
- Return the kind of the entity
- _M:getMapObjects (tiles, mos, z)
- 
Get all "map objects" representing this entity Do not touch unless you *KNOW* what you are doing.
 You do *NOT* need this, this is used by the engine.Map class automatically.
 *DO NOT TOUCH!!!*Parameters- tiles:
- mos:
- z:
 
- _M:getParticlesList (back)
- 
Get the particle emitters of this entity
Parameters- back:
 
- _M:init (t, no_default)
- 
Initialize an entity Any subclass MUST call this constructor
Parameters- t: a table defining the basic properties of the entity
- no_default:
 Usage:Entity.new{display='#', color_r=255, color_g=255, color_b=255}
- _M:invalidateAllMO ()
- Invalidates the whole MO repository
- _M:loadList (file, no_default, res, mod, loaded)
- 
Loads a list of entities from a definition file
Parameters- file: the file to load from
- no_default: if true then no default values will be assigned
- res: the table to load into, defaults to a new one
- mod: an optional function to which will be passed each entity as they are created. Can be used to adjust some values on the fly
- loaded: an optional table of already loaded files
 Usage:MyEntityClass:loadList("/data/my_entities_def.lua")
- _M:loaded ()
- If we are loaded we need a new uid
- _M:makeMapObject (tiles, idx)
- 
Create the "map object" representing this entity Do not touch unless you *KNOW* what you are doing.
 You do *NOT* need this, this is used by the engine.Map class automatically.
 *DO NOT TOUCH!!!*Parameters- tiles:
- idx:
 
- _M:onTemporaryValueChange (prop, v, base)
- 
Called when a temporary value changes (added or deleted) This does nothing by default, you can overload it to react to changes
Parameters- prop: the property changing
- v: the value of the change
- base: the base table of prop
 
- _M:printResolvers (t)
- 
Print all resolvers registered
Parameters- t:
 
- _M:removeParticles (ps)
- 
Removes a particles emitter following the entity
Parameters- ps:
 
- _M:removeTemporaryValue (prop, id, noupdate)
- 
Removes a temporary value, see addTemporaryValue()
Parameters- prop: the property to affect
- id: the id of the increase to delete
- noupdate: if true the actual property is not changed and needs to be changed by the caller
 
- _M:removed ()
- Call when the entity is actually removed from existence This helps ensuring uniqueness of uniques. This recursively removes inventories too, if you need anything special, overload this
- _M:replacedWith (isdone, new)
- 
If we are replaced we need a new uid
Parameters- isdone:
- new:
 
- _M:resetMoveAnim ()
- Reset movement animation for the entity - removes any anim
- _M:resolve (t, last, on_entity, key_chain)
- 
Resolves an entity This is called when generating the final clones of an entity for use in a level. This can be used to make random enchants on objects, random properties on actors, ... by default this only looks for properties with a table value containing a __resolver field
Parameters- t:
- last:
- on_entity:
- key_chain:
 
- _M:setMoveAnim (oldx, oldy, speed, blur, twitch_dir, twitch)
- 
Setup movement animation for the entity The entity is supposed to posses a correctly set x and y pair of fields - set to the current (new) position
Parameters- oldx: the coords from where the animation will seem to come from
- oldy: the coords from where the animation will seem to come from
- speed: the number of frames the animation lasts (frames are normalized to 30/sec no matter the actual FPS)
- blur: apply a motion blur effect of this number of frames
- twitch_dir: defaults to 0, the amplitude of movement twitch
- twitch:
 
- _M:setupMinimapInfo (mo, map)
- 
Setup minimap color for this entity You may overload this method to customize your minimap
Parameters- mo:
- map:
 
- _M:stripForExport ()
- Try to remove all "un-needed" effects, fields, ... for a clean export This does nothing by default
- _M:tableTemporaryValue (t, k, v)
- 
Helper function to add temporary values and not have to remove them manualy
Parameters- t:
- k:
- v:
 
- _M:toScreen (tiles, x, y, w, h, a, allow_cb, allow_shader)
- 
Displays an entity somewhere on screen, outside the map
Parameters- tiles: a Tiles instance that will handle the tiles (usually pass it the current Map.tiles, it will if this is null)
- x: where to display
- y: where to display
- w: the width
- h: the height
- a: the alpha setting, defaults to 1
- allow_cb:
- allow_shader: