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

elevation: int = elevation instance-attribute
Type: int
Value: elevation
i: int property
Type: int

The index of this tile on the map

layer: int = layer instance-attribute
Type: int
Value: layer
terrain_id: int = terrain_id instance-attribute
Type: int
Value: terrain_id
x: int property
Type: int

The X coordinate of this tile on the map

xy: Tuple[int, int] property
Type: 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

y: int property
Type: int

The Y coordinate of this tile on the map

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