Skip to content

TerrainTile

Classes

TerrainTile

Bases: AoE2Object

Object for handling a tile in the map.

Source code in AoE2ScenarioParser/objects/data_objects/terrain_tile.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class TerrainTile(AoE2Object):
    """Object for handling a tile in the map."""

    _link_list = [
        RetrieverObjectLinkGroup("Map", "terrain_data[__index__]", group=[
            RetrieverObjectLink("terrain_id"),
            RetrieverObjectLink("elevation"),
            RetrieverObjectLink("layer"),
        ]),
        RetrieverObjectLink("_index", retrieve_history_number=0),
    ]

    def __init__(self, terrain_id: int = TerrainId.GRASS_1, elevation: int = 0, layer: int = -1, _index: int = - 1,
                 **kwargs):
        self.terrain_id: int = terrain_id
        self.elevation: int = elevation
        self.layer: int = layer
        self._index: int = _index
        self._xy: Optional[Tuple[int, int]] = None

        super().__init__(**kwargs)

    @property
    def x(self) -> int:
        """The X coordinate of this tile on the map"""
        return self.xy[0]

    @property
    def y(self) -> int:
        """The Y coordinate of this tile on the map"""
        return self.xy[1]

    @property
    def i(self) -> int:
        """The index of this tile on the map"""
        return self._index

    @property
    def xy(self) -> Tuple[int, int]:
        """
        The X,Y coordinate of this tile on the map

        Returns:
            A tuple containing two integers representing the XY coordinates
        """
        if not self._xy:
            self._xy = i_to_xy(self._index, getters.get_map_size(self._uuid))
        return self._xy

    def _reset_terrain_index(self, new_index: int):
        """Reset the current terrain index"""
        self._index = new_index
        self._xy = None

Attributes

Attribute Type
elevation instance-attribute
int
layer instance-attribute
int
terrain_id instance-attribute
int
i property
int

The index of this tile on the map

Source code in AoE2ScenarioParser/objects/data_objects/terrain_tile.py
44
45
46
def i(self) -> int:
    """The index of this tile on the map"""
    return self._index
x property
int

The X coordinate of this tile on the map

Source code in AoE2ScenarioParser/objects/data_objects/terrain_tile.py
34
35
36
def x(self) -> int:
    """The X coordinate of this tile on the map"""
    return self.xy[0]
xy property
Tuple[int, int]

The X,Y coordinate of this tile on the map

Returns:

Type Description
Tuple[int, int]

A tuple containing two integers representing the XY coordinates

Source code in AoE2ScenarioParser/objects/data_objects/terrain_tile.py
49
50
51
52
53
54
55
56
57
58
def xy(self) -> Tuple[int, int]:
    """
    The X,Y coordinate of this tile on the map

    Returns:
        A tuple containing two integers representing the XY coordinates
    """
    if not self._xy:
        self._xy = i_to_xy(self._index, getters.get_map_size(self._uuid))
    return self._xy
y property
int

The Y coordinate of this tile on the map

Source code in AoE2ScenarioParser/objects/data_objects/terrain_tile.py
39
40
41
def y(self) -> int:
    """The Y coordinate of this tile on the map"""
    return self.xy[1]

Functions


def __init__(...)

Parameters:

Name Type Description Default
terrain_id int - GRASS_1
elevation int - 0
layer int - -1
_index int - -1
kwargs ? - {}
Source code in AoE2ScenarioParser/objects/data_objects/terrain_tile.py
23
24
25
26
27
28
29
30
31
def __init__(self, terrain_id: int = TerrainId.GRASS_1, elevation: int = 0, layer: int = -1, _index: int = - 1,
             **kwargs):
    self.terrain_id: int = terrain_id
    self.elevation: int = elevation
    self.layer: int = layer
    self._index: int = _index
    self._xy: Optional[Tuple[int, int]] = None

    super().__init__(**kwargs)

Functions

Modules