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.gd17
1 files changed, 14 insertions, 3 deletions
diff --git a/client/map/tile_factory.gd b/client/map/tile_factory.gd
index ba7d8ac3..57570263 100644
--- a/client/map/tile_factory.gd
+++ b/client/map/tile_factory.gd
@@ -16,8 +16,16 @@
class_name TileFactory
extends Object
+
+class TileName:
+ var name: String
+ var variant #: String?
+ func _init(raw_name: String):
+ var c = Array(raw_name.split(":"))
+ name = c[0]; variant = c[1] if c.size() >= 2 else null # TODO Array.get throws errors
+
class TileCC:
- var tile_name: String
+ var tile_name: TileName
var position: Vector2i
var neighbors: Array
var floor_meshers: Dictionary[String, FloorMesher]
@@ -29,13 +37,16 @@ var floor_meshers: Dictionary[String, FloorMesher] = {
"street": FloorMesher.new(Street.floor_mesh())
}
-func produce(tile_name: String, position: Vector2i, neighbors: Array) -> Tile:
+func produce(raw_name: String, position: Vector2i, neighbors: Array) -> Tile:
+ var tile_name = TileName.new(raw_name)
+
var ctx := TileCC.new()
ctx.tile_name = tile_name
ctx.position = position
ctx.neighbors = neighbors
ctx.floor_meshers = floor_meshers
- match tile_name:
+
+ match tile_name.name:
"black-hole-counter": return ItemPortal.new(ctx, false)
"black-hole": return PlayerPortal.new(ctx, false)
"book": return Book.new(ctx)