aboutsummaryrefslogtreecommitdiff
path: root/client/map/tile_factory.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tile_factory.gd')
-rw-r--r--client/map/tile_factory.gd95
1 files changed, 54 insertions, 41 deletions
diff --git a/client/map/tile_factory.gd b/client/map/tile_factory.gd
index 4f478eb6..8483c744 100644
--- a/client/map/tile_factory.gd
+++ b/client/map/tile_factory.gd
@@ -16,49 +16,62 @@
class_name TileFactory
extends Object
-static func produce(tile_name: String, node_name: String, neighbors: Array) -> Tile:
+class TileCC:
+ var tile_name: String
+ var position: Vector2i
+ var neighbors: Array
+ var floor_mesher: FloorMesher
+ var portal_type: bool
+
+
+static func produce(tile_name: String, position: Vector2i, neighbors: Array, floor_mesher: FloorMesher) -> Tile:
+ var ctx := TileCC.new()
+ ctx.tile_name = tile_name
+ ctx.position = position
+ ctx.neighbors = neighbors
+ ctx.floor_mesher = floor_mesher
match tile_name:
- "black-hole-counter": return ItemPortal.new(node_name, neighbors, false)
- "black-hole": return PlayerPortal.new(node_name, neighbors, false)
- "book": return Book.new(node_name, neighbors)
- "ceiling-lamp": return CeilingLamp.new(node_name, neighbors)
- "chair": return Chair.new(node_name, neighbors)
- "chandelier": return Chandelier.new(node_name, neighbors)
- "conveyor": return Conveyor.new(node_name, neighbors)
- "counter-window": return CounterWindow.new(node_name, neighbors)
- "counter": return CounterBase.new(node_name, neighbors)
- "cuttingboard": return CuttingBoard.new(node_name, neighbors)
- "door": return Door.new(node_name, neighbors)
- "fence": return Fence.new(node_name, neighbors)
- "floor": return Floor.new(node_name, neighbors)
- "freezer": return Freezer.new(node_name, neighbors)
- "grass": return Grass.new(node_name, neighbors)
- "lamp": return Lamp.new(node_name, neighbors)
- "oven": return Oven.new(node_name, neighbors)
- "path": return Path.new(node_name, neighbors)
- "sink": return Sink.new(node_name, neighbors)
- "stove": return Stove.new(node_name, neighbors)
- "street": return Street.new(node_name, neighbors)
- "table": return Table.new(node_name, neighbors)
- "trash": return Trash.new(node_name, neighbors)
- "tree": return ExteriorTree.new(node_name, neighbors)
- "wall-window": return WallWindow.new(node_name, neighbors)
- "wall": return Wall.new(node_name, neighbors)
- "white-hole-counter": return ItemPortal.new(node_name, neighbors, true)
- "white-hole": return PlayerPortal.new(node_name, neighbors, true)
+ "black-hole-counter": return ItemPortal.new(ctx, false)
+ "black-hole": return PlayerPortal.new(ctx, false)
+ "book": return Book.new(ctx)
+ "ceiling-lamp": return CeilingLamp.new(ctx)
+ "chair": return Chair.new(ctx)
+ "chandelier": return Chandelier.new(ctx)
+ "conveyor": return Conveyor.new(ctx)
+ "counter-window": return CounterWindow.new(ctx)
+ "counter": return CounterBase.new(ctx)
+ "cuttingboard": return CuttingBoard.new(ctx)
+ "door": return Door.new(ctx)
+ "fence": return Fence.new(ctx)
+ "floor": return Floor.new(ctx)
+ "freezer": return Freezer.new(ctx)
+ "grass": return Grass.new(ctx)
+ "lamp": return Lamp.new(ctx)
+ "oven": return Oven.new(ctx)
+ "path": return Path.new(ctx)
+ "sink": return Sink.new(ctx)
+ "stove": return Stove.new(ctx)
+ "street": return Street.new(ctx)
+ "table": return Table.new(ctx)
+ "trash": return Trash.new(ctx)
+ "tree": return ExteriorTree.new(ctx)
+ "wall-window": return WallWindow.new(ctx)
+ "wall": return Wall.new(ctx)
+ "white-hole-counter": return ItemPortal.new(ctx, true)
+ "white-hole": return PlayerPortal.new(ctx, true)
- "cheese-crate": return CheeseCrate.new(node_name, neighbors)
- "coconut-crate": return CoconutCrate.new(node_name, neighbors)
- "dirty-plate-crate": return CounterBase.new(node_name, neighbors)
- "fish-crate": return FishCrate.new(node_name, neighbors)
- "flour-crate": return FlourCrate.new(node_name, neighbors)
- "leek-crate": return LeekCrate.new(node_name, neighbors)
- "lettuce-crate": return LettuceCrate.new(node_name, neighbors)
- "steak-crate": return RawSteakCrate.new(node_name, neighbors)
- "rice-crate": return RiceCrate.new(node_name, neighbors)
- "strawberry-crate": return StrawberryCrate.new(node_name, neighbors)
- "tomato-crate": return TomatoCrate.new(node_name, neighbors)
+ "cheese-crate": return CheeseCrate.new(ctx)
+ "coconut-crate": return CoconutCrate.new(ctx)
+ "dirty-plate-crate": return CounterBase.new(ctx)
+ "fish-crate": return FishCrate.new(ctx)
+ "flour-crate": return FlourCrate.new(ctx)
+ "leek-crate": return LeekCrate.new(ctx)
+ "lettuce-crate": return LettuceCrate.new(ctx)
+ "steak-crate": return RawSteakCrate.new(ctx)
+ "rice-crate": return RiceCrate.new(ctx)
+ "strawberry-crate": return StrawberryCrate.new(ctx)
+ "tomato-crate": return TomatoCrate.new(ctx)
var t:
push_warning("tile %s unknown" % t)
- return GenericTile.new(node_name, neighbors, t)
+ return GenericTile.new(ctx)