Skip to content

Commit

Permalink
(station) Support snow for objects, cherry-picked from #44
Browse files Browse the repository at this point in the history
  • Loading branch information
ahyangyi committed Oct 6, 2024
1 parent 54fd9de commit 2567626
Showing 1 changed file with 13 additions and 31 deletions.
44 changes: 13 additions & 31 deletions agrf/lib/building/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@ def __init__(self, *args, flags=None, **kwargs):
super().__init__(*args, **kwargs)
self.flags = flags or {}

@property
def flags_translated(self):
return {k: (v if k == "add" else v.get_index()) for k, v in self.flags.items() if v is not None}

def registers_to_grf_dict(self):
return {
"flags": sum(grf.SPRITE_FLAGS[k][1] for k in self.flags.keys()),
"registers": {k: (v if k == "add" else v.get_index()) for k, v in self.flags.items() if v is not None},
}
return {"flags": sum(grf.SPRITE_FLAGS[k][1] for k in self.flags.keys()), "registers": self.flags_translated}


class GroundSpriteMixin:
Expand Down Expand Up @@ -246,16 +247,6 @@ def demo_translate(self, xofs, yofs, zofs):
self.flags,
)

@functools.cache
def filter_register(self, reg):
return ADefaultParentSprite(
self.sprite,
self.extent,
self.offset,
[x for x in self.child_sprites if x.flags.get("dodraw") != reg],
self.flags,
)

@property
def L(self):
return self
Expand Down Expand Up @@ -333,6 +324,7 @@ def to_action2(self, sprite_list):
"sprite": grf.SpriteRef(sprite_list.index(self.sprite), is_global=False),
"offset": self.offset,
"extent": self.extent,
**self.flags_translated,
}
] + [s for x in self.child_sprites for s in x.to_action2(sprite_list)]

Expand Down Expand Up @@ -370,16 +362,6 @@ def squash(self, ratio):
self.flags,
)

@functools.cache
def filter_register(self, reg):
return AParentSprite(
self.sprite,
self.extent,
self.offset,
[x for x in self.child_sprites if x.flags.get("dodraw") != reg],
self.flags,
)

@property
def L(self):
return self
Expand Down Expand Up @@ -452,7 +434,13 @@ def to_grf(self, sprite_list):
)

def to_action2(self, sprite_list):
return [{"sprite": grf.SpriteRef(sprite_list.index(self.sprite), is_global=False), "pixel_offset": self.offset}]
return [
{
"sprite": grf.SpriteRef(sprite_list.index(self.sprite), is_global=False),
"pixel_offset": self.offset,
**self.flags_translated,
}
]

def graphics(self, scale, bpp, climate="temperate", subclimate="default"):
if self.sprite is grf.EMPTY_SPRITE:
Expand Down Expand Up @@ -581,12 +569,6 @@ def raise_tile(self, delta=1):
def lower_tile(self, delta=1):
return self.raise_tile(-delta)

@functools.cache
def filter_register(self, reg):
return replace(
self, parent_sprites=[s.filter_register(reg) for s in self.parent_sprites if s.flags.get("dodraw") != reg]
)

@functools.cache
def demo_translate(self, xofs, yofs):
from station.stations.misc import empty_ground
Expand Down

0 comments on commit 2567626

Please sign in to comment.