aboutsummaryrefslogtreecommitdiff
path: root/client/map/tiles
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/tiles')
-rw-r--r--client/map/tiles/counter.gd49
-rw-r--r--client/map/tiles/counter_base.gd6
-rw-r--r--client/map/tiles/cutting_board.gd2
-rw-r--r--client/map/tiles/door.gd2
-rw-r--r--client/map/tiles/floor.gd2
-rw-r--r--client/map/tiles/flour_counter.gd12
-rw-r--r--client/map/tiles/full_tile.gd8
-rw-r--r--client/map/tiles/oven.gd2
-rw-r--r--client/map/tiles/raw_steak_crate.gd2
-rw-r--r--client/map/tiles/sink.gd6
-rw-r--r--client/map/tiles/stove.gd2
-rw-r--r--client/map/tiles/table.gd2
-rw-r--r--client/map/tiles/tomato_crate.gd2
-rw-r--r--client/map/tiles/trash.gd2
-rw-r--r--client/map/tiles/wall.gd8
-rw-r--r--client/map/tiles/wall_tile.gd57
-rw-r--r--client/map/tiles/window.gd4
17 files changed, 69 insertions, 99 deletions
diff --git a/client/map/tiles/counter.gd b/client/map/tiles/counter.gd
index c3032e4f..6783d486 100644
--- a/client/map/tiles/counter.gd
+++ b/client/map/tiles/counter.gd
@@ -16,7 +16,7 @@
class_name Counter
extends FullTile
-var counters = [
+const counters: Array = [
"counter",
"pan",
"sink",
@@ -36,41 +36,30 @@ static func interact_target() -> Vector3:
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- var facing = 0
- var edges = neighbors.duplicate()
- for i in range(4):
- var i_name = tile_name(edges[i])
- if Counter.is_counter(i_name):
- edges[i] = "counter"
- else:
- edges[i] = tile_name(edges[i])
-
- var series: int = 0
- var last_series: int = 0
- var adj: Array = []
- for i in range(4):
- if edges[i] == "floor":
- last_series += 1
- adj.append(i)
- if last_series > series:
- series = last_series
- else:
- last_series = 0
-
- var count = 4 - adj.size()
+ var facing: int = 0
+ var max_series: int = 0
+ var max_idx: int = 0
+ for start in range(4):
+ var series = 0
+ for i in range(4):
+ if tile_name(neighbors[(start + i) % 4]) == "floor":
+ series += 1
+ else:
+ break
+ if series > max_series:
+ max_series = series
+ max_idx = start
# we can neither find out whether it is an inner corner nor an outer corner
# backsplash
- if series == 1&&count == 3:
- facing = adj[0] % 4
-
- if edges[(adj[0] + 2) % 4] == "wall":
+ facing = max_idx
+ if max_series == 1:
+ if WallTile.is_wall(tile_name(neighbors[(max_idx + 2) % 4])):
kind = CounterKind.STRAIGHT_BACKSPLASH
else:
kind = CounterKind.STRAIGHT
- elif series == 2&&count == 2:
- facing = (adj[0] + 1) % 4
+ elif max_series == 2:
kind = CounterKind.OUTER_CORNER
turn_facing(facing)
@@ -78,4 +67,4 @@ func _init(rename: String, neighbors: Array):
static func is_counter(tile_name_t) -> bool:
if tile_name_t == null:
return false
- return tile_name_t.ends_with("crate")||counters.has(tile_name_t)
+ return tile_name_t.ends_with("crate") or counters.has(tile_name_t)
diff --git a/client/map/tiles/counter_base.gd b/client/map/tiles/counter_base.gd
index ebeebb3b..a4eb6864 100644
--- a/client/map/tiles/counter_base.gd
+++ b/client/map/tiles/counter_base.gd
@@ -20,8 +20,8 @@ func _init(rename: String, neighbors: Array):
super(rename, neighbors)
match kind:
CounterKind.OUTER_CORNER:
- base.add_child(load("res://models/prefabs/map/kitchencounter_outercorner.tscn").instantiate())
+ base.add_child(load("res://map/tiles/counter_outer_corner.res").instantiate())
CounterKind.STRAIGHT:
- base.add_child(load("res://models/prefabs/map/kitchencounter_straight_A.tscn").instantiate())
+ base.add_child(load("res://map/tiles/counter_straight.res").instantiate())
CounterKind.STRAIGHT_BACKSPLASH:
- base.add_child(load("res://models/prefabs/map/kitchencounter_straight_A_backsplash.tscn").instantiate())
+ base.add_child(load("res://tiles/counter_straight_backsplash.tscn").instantiate())
diff --git a/client/map/tiles/cutting_board.gd b/client/map/tiles/cutting_board.gd
index 944a7a9f..098cc06c 100644
--- a/client/map/tiles/cutting_board.gd
+++ b/client/map/tiles/cutting_board.gd
@@ -18,4 +18,4 @@ extends CounterBase
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/cuttingboard.tscn").instantiate())
+ base.add_child(load("res://map/cutting_board.tscn").instantiate())
diff --git a/client/map/tiles/door.gd b/client/map/tiles/door.gd
index cfba08b7..d3f977ad 100644
--- a/client/map/tiles/door.gd
+++ b/client/map/tiles/door.gd
@@ -23,5 +23,5 @@ func _init(rename: String, neighbors: Array):
for i in range(4):
if tile_name(neighbors[i]) == "door":
facing = i % 4
- base.add_child(load("res://models/prefabs/map/door.tscn").instantiate())
+ base.add_child(load("res://map/door.tscn").instantiate())
turn_facing(facing)
diff --git a/client/map/tiles/floor.gd b/client/map/tiles/floor.gd
index fec68cbd..69a347db 100644
--- a/client/map/tiles/floor.gd
+++ b/client/map/tiles/floor.gd
@@ -28,7 +28,7 @@ enum Facing {
}
func _init(rename: String, _neighbors: Array):
- var floor_tile = load("res://models/prefabs/map/floor_kitchen_small.tscn").instantiate()
+ var floor_tile = load("res://map/floor.tscn").instantiate()
floor_tile.position += Vector3(0.5, 0, 0.5)
add_child(floor_tile)
base.name = "Base"
diff --git a/client/map/tiles/flour_counter.gd b/client/map/tiles/flour_counter.gd
index 4bf2b1f3..237d0c66 100644
--- a/client/map/tiles/flour_counter.gd
+++ b/client/map/tiles/flour_counter.gd
@@ -18,9 +18,9 @@ extends CounterBase
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- var bag = load("res://models/prefabs/map/bag.tscn").instantiate()
- # this is supposed to be overridden
- @warning_ignore("static_called_on_instance")
- bag.position = interact_target()
- bag.rotation_degrees.y = 45
- base.add_child(bag)
+ # var bag = load("res://models/prefabs/map/bag.tscn").instantiate()
+ # # this is supposed to be overridden
+ # @warning_ignore("static_called_on_instance")
+ # bag.position = interact_target()
+ # bag.rotation_degrees.y = 45
+ # base.add_child(bag)
diff --git a/client/map/tiles/full_tile.gd b/client/map/tiles/full_tile.gd
index cc2b887b..3155913e 100644
--- a/client/map/tiles/full_tile.gd
+++ b/client/map/tiles/full_tile.gd
@@ -28,11 +28,3 @@ func _init(rename: String, neighbors: Array):
static_body.add_child(shape)
static_body.name = "Body"
base.add_child(static_body)
-
-# defines where items go when interacting
-static func interact_target() -> Vector3:
- return Vector3(0, 0, 0)
-
-# actions when interacting, e.g. animations
-func interact():
- pass
diff --git a/client/map/tiles/oven.gd b/client/map/tiles/oven.gd
index 88da3adb..e68e809c 100644
--- a/client/map/tiles/oven.gd
+++ b/client/map/tiles/oven.gd
@@ -18,4 +18,4 @@ extends Counter
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/oven.tscn").instantiate())
+ base.add_child(load("res://map/oven.tscn").instantiate())
diff --git a/client/map/tiles/raw_steak_crate.gd b/client/map/tiles/raw_steak_crate.gd
index 8ff93d6b..6287271b 100644
--- a/client/map/tiles/raw_steak_crate.gd
+++ b/client/map/tiles/raw_steak_crate.gd
@@ -18,4 +18,4 @@ extends Crate
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/crate_steak.tscn").instantiate())
+ base.add_child(load("res://map/raw_steak_crate.tscn").instantiate())
diff --git a/client/map/tiles/sink.gd b/client/map/tiles/sink.gd
index e4eaff60..145c97c9 100644
--- a/client/map/tiles/sink.gd
+++ b/client/map/tiles/sink.gd
@@ -20,8 +20,8 @@ func _init(rename: String, neighbors: Array):
super(rename, neighbors)
match kind:
CounterKind.STRAIGHT:
- base.add_child(load("res://models/prefabs/map/kitchencounter_sink.tscn").instantiate())
+ base.add_child(load("res://map/sink.tscn").instantiate())
CounterKind.STRAIGHT_BACKSPLASH:
- base.add_child(load("res://models/prefabs/map/kitchencounter_sink_backsplash.tscn").instantiate())
+ base.add_child(load("res://map/sink_backsplash.tscn").instantiate())
_:
- base.add_child(load("res://models/prefabs/map/kitchencounter_sink.tscn").instantiate())
+ base.add_child(load("res://map/sink.tscn").instantiate())
diff --git a/client/map/tiles/stove.gd b/client/map/tiles/stove.gd
index 93fad5a3..45204964 100644
--- a/client/map/tiles/stove.gd
+++ b/client/map/tiles/stove.gd
@@ -18,4 +18,4 @@ extends Counter
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/stove_single.tscn").instantiate())
+ base.add_child(load("res://map/stove.tscn").instantiate())
diff --git a/client/map/tiles/table.gd b/client/map/tiles/table.gd
index 533223a4..3446991d 100644
--- a/client/map/tiles/table.gd
+++ b/client/map/tiles/table.gd
@@ -18,4 +18,4 @@ extends FullTile
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/table_round_A_small.tscn").instantiate())
+ base.add_child(load("res://map/table.tscn").instantiate())
diff --git a/client/map/tiles/tomato_crate.gd b/client/map/tiles/tomato_crate.gd
index 078d0ba2..876588da 100644
--- a/client/map/tiles/tomato_crate.gd
+++ b/client/map/tiles/tomato_crate.gd
@@ -18,4 +18,4 @@ extends Crate
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/crate_tomatoes.tscn").instantiate())
+ base.add_child(load("res://map/tomato_crate.tscn").instantiate())
diff --git a/client/map/tiles/trash.gd b/client/map/tiles/trash.gd
index fed1a502..b156c366 100644
--- a/client/map/tiles/trash.gd
+++ b/client/map/tiles/trash.gd
@@ -18,4 +18,4 @@ extends Crate
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- base.add_child(load("res://models/prefabs/map/crate_trash.tscn").instantiate())
+ base.add_child(load("res://models/prefabs/map/trash.tscn").instantiate())
diff --git a/client/map/tiles/wall.gd b/client/map/tiles/wall.gd
index 0201d4d6..21e28843 100644
--- a/client/map/tiles/wall.gd
+++ b/client/map/tiles/wall.gd
@@ -20,10 +20,10 @@ func _init(rename: String, neighbors: Array):
super(rename, neighbors)
match kind:
WallKind.STRAIGHT:
- base.add_child(load("res://models/prefabs/map/wall_straight.tscn").instantiate())
+ base.add_child(load("res://map/wall_straight.tscn").instantiate())
WallKind.OUTER_CORNER:
- base.add_child(load("res://models/prefabs/map/wall_corner.tscn").instantiate())
+ base.add_child(load("res://map/wall_corner.tscn").instantiate())
WallKind.T:
- base.add_child(load("res://models/prefabs/map/wall_t.tscn").instantiate())
+ base.add_child(load("res://map/wall_t.tscn").instantiate())
WallKind.CROSS:
- base.add_child(load("res://models/prefabs/map/wall_cross.tscn").instantiate())
+ base.add_child(load("res://map/wall_cross.tscn").instantiate())
diff --git a/client/map/tiles/wall_tile.gd b/client/map/tiles/wall_tile.gd
index 6cc5253a..85e3e6ff 100644
--- a/client/map/tiles/wall_tile.gd
+++ b/client/map/tiles/wall_tile.gd
@@ -35,44 +35,33 @@ var facing: int = 0
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
- var edges = neighbors.duplicate()
+ var max_series: int = 0
+ var max_idx: int = 0
+ for start in range(4):
+ var series = 0
+ for i in range(4):
+ var i_name = tile_name(neighbors[(start + i) % 4])
+ if is_wall(i_name):
+ series += 1
+ else:
+ break
+ if series > max_series:
+ max_series = series
+ max_idx = start
- var series: int = 0
- var last_series: int = 0
- var adj: Array = []
-
- for i in range(4):
- var i_name = tile_name(edges[i])
- if is_wall(i_name):
- edges[i] = "wall"
- else:
- edges[i] = tile_name(edges[i])
-
- for i in range(4):
- if edges[i] != "wall":
- last_series += 1
- adj.append(i)
- if last_series > series:
- series = last_series
- else:
- last_series = 0
-
- var count = 4 - adj.size()
-
- if series == 1&&count == 2:
- facing = adj[0]
+ if max_series == 1:
+ facing = max_idx
kind = WallKind.STRAIGHT
- elif series == 2&&count == 2:
- facing = adj[0]
+ elif max_series == 2:
+ facing = max_idx
kind = WallKind.OUTER_CORNER
- elif series == 1&&count == 3:
- facing = adj[0]
+ elif max_series == 3:
+ facing = max_idx
kind = WallKind.T
- elif series == 0&&count == 4:
- facing = adj[0]
+ elif max_series == 4:
+ facing = max_idx
kind = WallKind.CROSS
turn_facing(facing)
-func is_wall(_s: String):
- return false # TODO
-
+static func is_wall(tile_name_t) -> bool:
+ return WALLS.has(tile_name_t)
diff --git a/client/map/tiles/window.gd b/client/map/tiles/window.gd
index b2926080..7747bbcd 100644
--- a/client/map/tiles/window.gd
+++ b/client/map/tiles/window.gd
@@ -23,7 +23,7 @@ func _init(rename: String, neighbors: Array):
super(rename, neighbors)
match kind:
WallKind.STRAIGHT:
- base.add_child(load("res://models/prefabs/map/window.tscn").instantiate())
+ base.add_child(load("res://map/window.tscn").instantiate())
WallKind.OUTER_CORNER:
push_warning("There is no corner window!")
- base.add_child(load("res://models/prefabs/map/window.tscn").instantiate())
+ base.add_child(load("res://map/window.tscn").instantiate())