diff options
Diffstat (limited to 'client/map/tile_factory.gd')
-rw-r--r-- | client/map/tile_factory.gd | 95 |
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) |