# Class cocos.tiles.MapLayer

        cocosnode.CocosNode --+
                              |
    scene.EventHandlerMixin --+
                              |
        layer.base_layers.Layer --+
                                  |
    layer.scrolling.ScrollableLayer --+
                                      |
                                     MapLayer

Known Subclasses:
  HexMapLayer, RectMapLayer

Base class for Maps.

Maps are comprised of tiles and can figure out which tiles are required to be rendered on screen.

Both rect and hex maps have the following attributes:

> id -- identifies the map in XML and Resources (width, height) -- size of map in cells (px_width, px_height) -- size of map in pixels (tw, th) -- size of each cell in pixels (origin_x, origin_y, origin_z) -- offset of map top left from origin in pixels cells -- array [i][j] of Cell instances debug -- display debugging information on cells properties -- arbitrary properties

The debug flag turns on textual display of data about each visible cell including its cell index, origin pixel and any properties set on the cell.

## Methods

| __init__(self, properties)
| __contains__(self, key)
| __getitem__(self, key)
| __setitem__(self, key, value)
CocosNode | get(self, key, default=None) Gets a child given its name
| set_dirty(self) The viewport has changed in some way.
| set_view(self, x, y, w, h, viewport_x=0, viewport_y=0)
| get_visible_cells(self) Given the current view in map-space pixels, transform it based on the current screen-space transform and figure the region of map-space pixels currently visible.
| is_visible(self, rect) Determine whether the indicated rect (with .x, .y, .width and .height attributes) located in this Layer is visible.
| set_debug(self, debug)
| set_cell_opacity(self, i, j, opacity)
| set_cell_color(self, i, j, color)
| find_cells(self, **requirements) Find all cells that match the properties specified.
CocosNode instance | add(self, child, z=0, name=None) Adds a child and if it becomes part of the active scene calls its on_enter method (Inherited from cocos.cocosnode.CocosNode)
| are_actions_running(self) Determine whether any actions are running. (Inherited from cocos.cocosnode.CocosNode)
Action instance | do(self, action, target=None) Executes an action. (Inherited from cocos.cocosnode.CocosNode)
| draw(self) This is the function you will have to override if you want your subclassed to draw something on screen. (Inherited from cocos.layer.scrolling.ScrollableLayer)
CocosNode or None | get_ancestor(self, klass) Walks the nodes tree upwards until it finds a node of the class `klass` or returns None (Inherited from cocos.cocosnode.CocosNode)
list of CocosNode | get_children(self) Return a list with the node's childs, order is back to front (Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 | get_local_inverse(self) returns an euclid.Matrix3 with the local inverse transformation matrix (Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 | get_local_transform(self) returns an euclid.Matrix3 with the local transformation matrix (Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 | get_world_inverse(self) returns an euclid.Matrix3 with the world inverse transformation matrix (Inherited from cocos.cocosnode.CocosNode)
euclid.Matrix3 | get_world_transform(self) returns an euclid.Matrix3 with the world transformation matrix (Inherited from cocos.cocosnode.CocosNode)
| kill(self) Remove this object from its parent, and thus most likely from everything. (Inherited from cocos.cocosnode.CocosNode)
| on_cocos_resize(self, usable_width, usable_height) (Inherited from cocos.layer.scrolling.ScrollableLayer)
| on_enter(self) Called every time just before the node enters the stage. (Inherited from cocos.layer.scrolling.ScrollableLayer)
| on_exit(self) Called every time just before the node leaves the stage (Inherited from cocos.layer.base_layers.Layer)
| pause(self) Suspends the execution of actions. (Inherited from cocos.cocosnode.CocosNode)
| pause_scheduler(self) Time will stop passing for this node: scheduled callbacks will not be called, worker actions will not be called (Inherited from cocos.cocosnode.CocosNode)
euclid.Vector2 | point_to_local(self, p) returns an euclid.Vector2 converted to local space (Inherited from cocos.cocosnode.CocosNode)
euclid.Vector2 | point_to_world(self, p) returns an euclid.Vector2 converted to world space (Inherited from cocos.cocosnode.CocosNode)
| push_all_handlers(self) registers itself to receive director.window events and propagates the call to childs that are layers. (Inherited from cocos.layer.base_layers.Layer)
| remove(self, obj) Removes a child given its name or object (Inherited from cocos.cocosnode.CocosNode)
| remove_action(self, action) Removes an action from the node actions container, potentially calling action.stop() (Inherited from cocos.cocosnode.CocosNode)
| remove_all_handlers(self) de-registers itself to receive director.window events and propagates the call to childs that are layers. (Inherited from cocos.layer.base_layers.Layer)
| resume(self) Resumes the execution of actions. (Inherited from cocos.cocosnode.CocosNode)
| resume_scheduler(self) Time will continue/start passing for this node and callbacks will be called, worker actions will be called (Inherited from cocos.cocosnode.CocosNode)
| schedule(self, callback, *args, **kwargs) Schedule a function to be called every frame. (Inherited from cocos.cocosnode.CocosNode)
| schedule_interval(self, callback, interval, *args, **kwargs) Schedule a function to be called every `interval` seconds. (Inherited from cocos.cocosnode.CocosNode)
| stop(self) Removes all actions from the running action list (Inherited from cocos.cocosnode.CocosNode)
| transform(self) Apply ModelView transformations (Inherited from cocos.cocosnode.CocosNode)
| unschedule(self, callback) Remove a function from the schedule. (Inherited from cocos.cocosnode.CocosNode)
| visit(self) This function visits it's children in a recursive way. (Inherited from cocos.cocosnode.CocosNode)
list | walk(self, callback, collect=None) Executes callback on all the subtree starting at self. (Inherited from cocos.cocosnode.CocosNode)

## Properties

(int,int) | anchor Anchor point of the object. (Inherited from cocos.cocosnode.CocosNode)
(int,int) | anchor_x Anchor x value for transformations and adding children (Inherited from cocos.cocosnode.CocosNode)
(int,int) | anchor_y Anchor y value for transformations and adding children (Inherited from cocos.cocosnode.CocosNode)
object | parent The parent of this object. (Inherited from cocos.cocosnode.CocosNode)
(int, int) | position The (x, y) coordinates of the object. (Inherited from cocos.cocosnode.CocosNode)
| rotation (Inherited from cocos.cocosnode.CocosNode)
| scale (Inherited from cocos.cocosnode.CocosNode)
(int,int) | transform_anchor Transformation anchor point. (Inherited from cocos.cocosnode.CocosNode)
| x The x coordinate of the object (Inherited from cocos.cocosnode.CocosNode)
| y The y coordinate of the object (Inherited from cocos.cocosnode.CocosNode)

## Instance Variables

| actions list of Action objects that are running (Inherited from cocos.cocosnode.CocosNode)
| camera eye, center and up vector for the Camera. (Inherited from cocos.cocosnode.CocosNode)
| children list of (int, child-reference) where int is the z-order, sorted by ascending z (back to front order) (Inherited from cocos.cocosnode.CocosNode)
| children_names dictionary that maps children names with children references (Inherited from cocos.cocosnode.CocosNode)
| grid the grid object for the grid actions. (Inherited from cocos.cocosnode.CocosNode)
| is_running whether of not the object is running (Inherited from cocos.cocosnode.CocosNode)
| scheduled_calls list of scheduled callbacks (Inherited from cocos.cocosnode.CocosNode)
| scheduled_interval_calls list of scheduled interval callbacks (Inherited from cocos.cocosnode.CocosNode)
| skip_frame whether or not the next frame will be skipped (Inherited from cocos.cocosnode.CocosNode)
| to_remove list of Action objects to be removed (Inherited from cocos.cocosnode.CocosNode)
| transform_anchor_x offset from (x,0) from where rotation and scale will be applied. (Inherited from cocos.cocosnode.CocosNode)
| transform_anchor_y offset from (0,y) from where rotation and scale will be applied. (Inherited from cocos.cocosnode.CocosNode)
| visible whether of not the object is visible. (Inherited from cocos.cocosnode.CocosNode)

## Class Variables

| debug = `False`
| is_event_handler = `False` if True the layer will listen to director.window events Default: False if true, the event handlers of this layer will be registered. (Inherited from cocos.layer.base_layers.Layer)
| origin_x = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)
| origin_y = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)
| origin_z = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)
| view_h = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)
| view_w = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)
| view_x = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)
| view_y = `0` (Inherited from cocos.layer.scrolling.ScrollableLayer)

## Method Details

### __init__

(Constructor) __init__(self, properties)

Overrides:
  layer.scrolling.ScrollableLayer.__init__

### __contains__

(In operator) __contains__(self, key)

Overrides:
  cocosnode.CocosNode.__contains__

### get

get(self, key, default=None)

Gets a child given its name

Warning: if a node is added with name, then removed not by name, the name cannot be recycled: attempting to add other node with this name will produce an Exception.

Returns:
  CocosNode: the child named 'name'. Will raise Exception if not present
Overrides:
  cocosnode.CocosNode.get

### set_dirty

set_dirty(self)
The viewport has changed in some way.

Overrides:
  layer.scrolling.ScrollableLayer.set_dirty

### set_view

set_view(self, x, y, w, h, viewport_x=0, viewport_y=0)

Overrides:
  layer.scrolling.ScrollableLayer.set_view

### get_visible_cells

get_visible_cells(self)

Given the current view in map-space pixels, transform it based on the current screen-space transform and figure the region of map-space pixels currently visible.

Pass to get_in_region to return a list of Cell instances.

### find_cells

find_cells(self, **requirements)

Find all cells that match the properties specified.

For example:

> map.find_cells(player_start=True)

Return a list of Cell instances.