Module ...

Represents a level map, handles display and various low level map work

Functions

_M:addEffect (src, x, y, duration, damtype, dam, radius, dir, angle, overlay, update_fct, selffire, friendlyfire) Adds a zone (temporary) effect
_M:addEmote (e) Adds an existing emote to the map
_M:addObject (x, y, o) Object functions
_M:addParticleEmitter (e) Adds an existing particle emitter to the map
_M:addPathString (ps) Adds a "path string" to the map "Path strings" are strings defining what terrain an actor can cross.
_M:apply (x, y, v) Sets a grid as seen and remembered Used by FOV code
_M:applyESP (x, y, v) Sets a grid as seen if ESP'ed Used by FOV code
_M:applyExtraLite (x, y, v) Sets a grid as seen, lited and remembered, if it is in the current FOV Used by FOV code
_M:applyLite (x, y, v) Sets a grid as seen, lited and remembered Used by FOV code
_M:call (x, y, pos, e) Sets/gets a value from the map It is defined as the function metamethod, so one can simply do: mymap(x, y, Map.TERRAIN)
_M:centerViewAround (x, y) Sets the current view area with the given coords at the center
_M:checkAllEntities (x, y, what, ...) Check all entities of the grid for a property until it finds one/returns one This will stop at the first entity with the given property (or if the property is a function, the return of the function that is not false/nil).
_M:checkAllEntitiesCount (x, y, what, ...) Check all entities of the grid for a property, counting the results This will iterate over all entities without stopping.
_M:checkAllEntitiesLayersNoStop (x, y, what, ...) Check all entities of the grid for a property This will iterate over all entities without stopping.
_M:checkAllEntitiesNoStop (x, y, what, ...) Check all entities of the grid for a property This will iterate over all entities without stopping.
_M:checkEntity (x, y, pos, what, ...) Check specified entity position of the grid for a property
_M:checkMapViewBounded () Checks the map is bound to the screen (no "empty space" if the map is big enough)
_M:cleanFOV () Cleans the FOV infos (seens table)
_M:close () Closes things in the object to allow it to be garbage collected Map objects are NOT automatically garbage collected because they contain FOV C structure, which themselves have a reference to the map.
_M:display (x, y, nb_keyframe, always_show, nb_keyframes) Displays the map on screen
_M:displayEffects () Display the overlay effects, called by self:display()
_M:displayEmotes (nb_keyframes) Display the emotes, called by self:display()
_M:displayParticles (nb_keyframes) Display the particle emitters, called by self:display()
_M:getMouseTile (mx, my) Gets the tile under the mouse
_M:getScreenUpperCorner () Get the screen offset where to start drawing (upper corner)
_M:getTileToScreen (tx, ty) Get the screen position corresponding to a tile
_M:import (map, dx, dy, sx, sy, sw, sh) Import a map into the current one
_M:init (w, h) Creates a map
_M:isBound (x, y) Checks the given coords to see if they are in bound
_M:isOnScreen (x, y) Checks the given coords to see if they are displayed on screen
_M:liteAll (x, y, w, h, v) Lite all grids
_M:minimapDisplay (dx, dy, x, y, w, h, transp) Displays the minimap
_M:moveViewSurround (x, y, marginx, marginy, ignore_padding) Sets the current view area if x and y are out of bounds
_M:opaque (x, y) Sets checks if a grid lets sight pass through Used by FOV code
_M:opaqueESP (x, y) Sets checks if a grid lets ESP pass through Used by FOV ESP code
_M:overlay (map, dx, dy, sx, sy, sw, sh) Import a map into the current one as an overlay, only replacing defined entities
_M:particleEmitter (x, y, radius, def, args, shader) Add a new particle emitter
_M:processEffects () Process the overlay effects, call it from your tick function
_M:recreate () Recreate the internal map using new dimensions
_M:redisplay () Redisplays the map, storing seen information
_M:rememberAll (x, y, w, h, v) Remember all grids
_M:remove (x, y, pos) Removes an entity
_M:removeEmote (e) Removes an emote from the map
_M:removeParticleEmitter (e) Removes a particle emitter from the map
_M:resetTiles () Create the tile repositories
_M:save () Serialization
_M:scrollDir (dir) Scrolls the map in the given direction
_M:setBoundedPadding (left, right, top, bottom) Sets the map viewport padding, for scrolling purposes (defaults to 0) Static
_M:setObscure (r, g, b, a) Defines the "obscure" factor of unseen map By default it is 0.6, 0.6, 0.6, 0.6
_M:setShown (r, g, b, a) Defines the "shown" factor of seen map By default it is 1, 1, 1, 1
_M:setViewPort (x, y, w, h, tile_w, tile_h, fontname, fontsize, allow_backcolor) Sets the viewport size Static
_M:setViewerActor (player) Defines the actor that sees the map Usually this will be the player.
_M:setViewerFaction (faction) Defines the faction of the person seeing the map Usually this will be the player's faction.
_M:setZoom (zoom, tmx, tmy) Sets zoom level
_M:updateMap (x, y) Updates the map on the given spot This updates many things, from the C map object, the FOV caches, the minimap if it exists, ...


Functions

_M:addEffect (src, x, y, duration, damtype, dam, radius, dir, angle, overlay, update_fct, selffire, friendlyfire)
Adds a zone (temporary) effect

Parameters

  • src: the source actor
  • x: the epicenter coords
  • y: the epicenter coords
  • duration: the number of turns to persist
  • damtype: the DamageType to apply
  • dam:
  • radius: the radius of the effect
  • dir: the numpad direction of the effect, 5 for a ball effect
  • angle:
  • overlay: either a simple display entity to draw upon the map or a Particle class
  • update_fct: optional function that will be called each time the effect is updated with the effect itself as parameter. Use it to change radius, move around ....
  • selffire: percent chance to damage the source actor (default 100)
  • friendlyfire: percent chance to damage friendly actors (default 100)
_M:addEmote (e)
Adds an existing emote to the map

Parameters

  • e:
_M:addObject (x, y, o)
Object functions

Parameters

  • x:
  • y:
  • o:
_M:addParticleEmitter (e)
Adds an existing particle emitter to the map

Parameters

  • e:
_M:addPathString (ps)
Adds a "path string" to the map "Path strings" are strings defining what terrain an actor can cross. Their format is left to the module to decide (by overloading Actor:getPathString() )
They are totally optional as they re only used to compute A* paths and the likes and even then the algorithms still work without them, only slower
If you use them the block_move function of your Grid class must be able to handle either an actor or a "path string" as their third argument

Parameters

  • ps:
_M:apply (x, y, v)
Sets a grid as seen and remembered Used by FOV code

Parameters

  • x:
  • y:
  • v:
_M:applyESP (x, y, v)
Sets a grid as seen if ESP'ed Used by FOV code

Parameters

  • x:
  • y:
  • v:
_M:applyExtraLite (x, y, v)
Sets a grid as seen, lited and remembered, if it is in the current FOV Used by FOV code

Parameters

  • x:
  • y:
  • v:
_M:applyLite (x, y, v)
Sets a grid as seen, lited and remembered Used by FOV code

Parameters

  • x:
  • y:
  • v:
_M:call (x, y, pos, e)
Sets/gets a value from the map It is defined as the function metamethod, so one can simply do: mymap(x, y, Map.TERRAIN)

Parameters

  • x: position
  • y: position
  • pos: what kind of entity to set(Map.TERRAIN, Map.OBJECT, Map.ACTOR)
  • e: the entity to set, if null it will return the current one
_M:centerViewAround (x, y)
Sets the current view area with the given coords at the center

Parameters

  • x:
  • y:
_M:checkAllEntities (x, y, what, ...)
Check all entities of the grid for a property until it finds one/returns one This will stop at the first entity with the given property (or if the property is a function, the return of the function that is not false/nil). No guaranty is given about the iteration order

Parameters

  • x: position
  • y: position
  • what: property to check
  • ...:
_M:checkAllEntitiesCount (x, y, what, ...)
Check all entities of the grid for a property, counting the results This will iterate over all entities without stopping. No guaranty is given about the iteration order

Parameters

  • x: position
  • y: position
  • what: property to check
  • ...:

Return value:

the number of times the property returned a non false value
_M:checkAllEntitiesLayersNoStop (x, y, what, ...)
Check all entities of the grid for a property This will iterate over all entities without stopping. No guaranty is given about the iteration order

Parameters

  • x: position
  • y: position
  • what: property to check
  • ...:

Return value:

a table containing all return values, indexed by a list of {layer, entity}
_M:checkAllEntitiesNoStop (x, y, what, ...)
Check all entities of the grid for a property This will iterate over all entities without stopping. No guaranty is given about the iteration order

Parameters

  • x: position
  • y: position
  • what: property to check
  • ...:

Return value:

a table containing all return values, indexed by the entities
_M:checkEntity (x, y, pos, what, ...)
Check specified entity position of the grid for a property

Parameters

  • x: position
  • y: position
  • pos: entity position in the grid
  • what: property to check
  • ...:
_M:checkMapViewBounded ()
Checks the map is bound to the screen (no "empty space" if the map is big enough)
_M:cleanFOV ()
Cleans the FOV infos (seens table)
_M:close ()
Closes things in the object to allow it to be garbage collected Map objects are NOT automatically garbage collected because they contain FOV C structure, which themselves have a reference to the map. Cyclic references! BAD BAD BAD !
The closing should be handled automatically by the Zone class so no bother for authors
_M:display (x, y, nb_keyframe, always_show, nb_keyframes)
Displays the map on screen

Parameters

  • x: the coord where to start drawing, if null it uses self.display_x
  • y: the coord where to start drawing, if null it uses self.display_y
  • nb_keyframe:
  • always_show: tell the map code to force display unseed entities as remembered (used for smooth FOV shading)
  • nb_keyframes: the number of keyframes elapsed since last draw
_M:displayEffects ()
Display the overlay effects, called by self:display()
_M:displayEmotes (nb_keyframes)
Display the emotes, called by self:display()

Parameters

  • nb_keyframes:
_M:displayParticles (nb_keyframes)
Display the particle emitters, called by self:display()

Parameters

  • nb_keyframes:
_M:getMouseTile (mx, my)
Gets the tile under the mouse

Parameters

  • mx:
  • my:
_M:getScreenUpperCorner ()
Get the screen offset where to start drawing (upper corner)
_M:getTileToScreen (tx, ty)
Get the screen position corresponding to a tile

Parameters

  • tx:
  • ty:
_M:import (map, dx, dy, sx, sy, sw, sh)
Import a map into the current one

Parameters

  • map: the map to import
  • dx: coordinate where to import it in the current map
  • dy: coordinate where to import it in the current map
  • sx: coordinate where to start importing the map, defaults to 0
  • sy: coordinate where to start importing the map, defaults to 0
  • sw: size of the imported map to get, defaults to map size
  • sh: size of the imported map to get, defaults to map size
_M:init (w, h)
Creates a map

Parameters

  • w: width (in grids)
  • h: height (in grids)
_M:isBound (x, y)
Checks the given coords to see if they are in bound

Parameters

  • x:
  • y:
_M:isOnScreen (x, y)
Checks the given coords to see if they are displayed on screen

Parameters

  • x:
  • y:
_M:liteAll (x, y, w, h, v)
Lite all grids

Parameters

  • x:
  • y:
  • w:
  • h:
  • v:
_M:minimapDisplay (dx, dy, x, y, w, h, transp)
Displays the minimap

Parameters

  • dx:
  • dy:
  • x:
  • y:
  • w:
  • h:
  • transp:

Return value:

a surface containing the drawn map
_M:moveViewSurround (x, y, marginx, marginy, ignore_padding)
Sets the current view area if x and y are out of bounds

Parameters

  • x:
  • y:
  • marginx:
  • marginy:
  • ignore_padding:
_M:opaque (x, y)
Sets checks if a grid lets sight pass through Used by FOV code

Parameters

  • x:
  • y:
_M:opaqueESP (x, y)
Sets checks if a grid lets ESP pass through Used by FOV ESP code

Parameters

  • x:
  • y:
_M:overlay (map, dx, dy, sx, sy, sw, sh)
Import a map into the current one as an overlay, only replacing defined entities

Parameters

  • map: the map to import
  • dx: coordinate where to import it in the current map
  • dy: coordinate where to import it in the current map
  • sx: coordinate where to start importing the map, defaults to 0
  • sy: coordinate where to start importing the map, defaults to 0
  • sw: size of the imported map to get, defaults to map size
  • sh: size of the imported map to get, defaults to map size
_M:particleEmitter (x, y, radius, def, args, shader)
Add a new particle emitter

Parameters

  • x:
  • y:
  • radius:
  • def:
  • args:
  • shader:
_M:processEffects ()
Process the overlay effects, call it from your tick function
_M:recreate ()
Recreate the internal map using new dimensions
_M:redisplay ()
Redisplays the map, storing seen information
_M:rememberAll (x, y, w, h, v)
Remember all grids

Parameters

  • x:
  • y:
  • w:
  • h:
  • v:
_M:remove (x, y, pos)
Removes an entity

Parameters

  • x: position
  • y: position
  • pos: what kind of entity to set(Map.TERRAIN, Map.OBJECT, Map.ACTOR)
_M:removeEmote (e)
Removes an emote from the map

Parameters

  • e:
_M:removeParticleEmitter (e)
Removes a particle emitter from the map

Parameters

  • e:
_M:resetTiles ()
Create the tile repositories
_M:save ()
Serialization
_M:scrollDir (dir)
Scrolls the map in the given direction

Parameters

  • dir:
_M:setBoundedPadding (left, right, top, bottom)
Sets the map viewport padding, for scrolling purposes (defaults to 0) Static

Parameters

  • left: left padding
  • right: right padding
  • top: top padding
  • bottom: bottom padding
_M:setObscure (r, g, b, a)
Defines the "obscure" factor of unseen map By default it is 0.6, 0.6, 0.6, 0.6

Parameters

  • r:
  • g:
  • b:
  • a:
_M:setShown (r, g, b, a)
Defines the "shown" factor of seen map By default it is 1, 1, 1, 1

Parameters

  • r:
  • g:
  • b:
  • a:
_M:setViewPort (x, y, w, h, tile_w, tile_h, fontname, fontsize, allow_backcolor)
Sets the viewport size Static

Parameters

  • x: screen coordinate where the map will be displayed (this has no impact on the real display). This is used to compute mouse clicks
  • y: screen coordinate where the map will be displayed (this has no impact on the real display). This is used to compute mouse clicks
  • w: width
  • h: height
  • tile_w: width of a single tile
  • tile_h: height of a single tile
  • fontname: font parameters, can be nil
  • fontsize: font parameters, can be nil
  • allow_backcolor:
_M:setViewerActor (player)
Defines the actor that sees the map Usually this will be the player. This is used to determine invisibility/...

Parameters

  • player:
_M:setViewerFaction (faction)
Defines the faction of the person seeing the map Usually this will be the player's faction. If you do not want to use tactical display, dont use it

Parameters

  • faction:
_M:setZoom (zoom, tmx, tmy)
Sets zoom level

Parameters

  • zoom: nil to reset to default, otherwise a number to increment the zoom with
  • tmx: make sure this coords are visible after zoom (can be nil)
  • tmy: make sure this coords are visible after zoom (can be nil)
_M:updateMap (x, y)
Updates the map on the given spot This updates many things, from the C map object, the FOV caches, the minimap if it exists, ...

Parameters

  • x:
  • y:

Valid XHTML 1.0!