File tree Expand file tree Collapse file tree 3 files changed +17
-8
lines changed
Expand file tree Collapse file tree 3 files changed +17
-8
lines changed Original file line number Diff line number Diff line change 33"""
44
55from agrf .lib .building .layout import ALayout
6- from agrf .lib .building .baseset_sprites import default_grassland , default_railroad , default_railroad_y
6+ from agrf .lib .building .baseset_sprites import default_grassland , default_railroad , building_ground
7+ from agrf .lib .building .symmetry import BuildingSymmetrical , BuildingCylindrical
78
8- grassland_tile = ALayout (default_grassland , [], False )
9- railroad_tile = ALayout (default_railroad , [], True )
10- railroad_y_tile = ALayout (default_railroad_y , [], True )
9+ grassland_tile = BuildingCylindrical . memoize ( ALayout (default_grassland , [], False ) )
10+ railroad_tile = BuildingSymmetrical . memoize ( ALayout (default_railroad , [], True ) )
11+ building_ground_tile = BuildingCylindrical . memoize ( ALayout (building_ground , [], False ) )
Original file line number Diff line number Diff line change 66
77from agrf .lib .building .layout import ADefaultGroundSprite
88from agrf .lib .building .registers import Registers
9+ from agrf .lib .building .symmetry import BuildingSymmetrical , BuildingCylindrical
910
10- default_grassland = ADefaultGroundSprite (3981 , flags = {"add" : Registers .CLIMATE_OFFSET })
11-
12- default_railroad = ADefaultGroundSprite (1011 , flags = {"add" : Registers .CLIMATE_RAIL_OFFSET })
13- default_railroad_y = ADefaultGroundSprite (1012 , flags = {"add" : Registers .CLIMATE_RAIL_OFFSET })
11+ default_grassland = BuildingCylindrical .memoize (ADefaultGroundSprite (3981 , flags = {"add" : Registers .CLIMATE_OFFSET }))
12+ default_railroad = BuildingSymmetrical .memoize (ADefaultGroundSprite (1012 , flags = {"add" : Registers .CLIMATE_RAIL_OFFSET }))
13+ building_ground = BuildingCylindrical .memoize (ADefaultGroundSprite (1420 , flags = {"add" : Registers .ZERO }))
Original file line number Diff line number Diff line change @@ -17,6 +17,14 @@ def create_variants(classobj, variants):
1717 v .symmetry = classobj
1818 return variants [0 ]
1919
20+ # This is a weird method
21+ # Use this when item already have properties `item.R` `item.M` `item.T`, but calling these creates a new object
22+ # memoize() then uses these to create as many new objects as the symmetry needs
23+ # and links them so that future calls to these properties always returns the memoized ones
24+ @classmethod
25+ def memoize (cls , item ):
26+ return cls .create_variants (cls .get_all_variants (item ))
27+
2028 @property
2129 def M (self ):
2230 return self ._M
You can’t perform that action at this time.
0 commit comments