aboutsummaryrefslogtreecommitdiff
path: root/client/scripts/tiles
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-06-21 11:57:33 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-23 19:26:07 +0200
commit194f387b1cc69e632d5a704b1fb2d4df61ac6785 (patch)
tree3b996f0cda91de1d9efdad5cd9f96fd3969ee497 /client/scripts/tiles
parent316750a2d5326d5786265a6b936732560cba8f38 (diff)
downloadhurrycurry-194f387b1cc69e632d5a704b1fb2d4df61ac6785.tar
hurrycurry-194f387b1cc69e632d5a704b1fb2d4df61ac6785.tar.bz2
hurrycurry-194f387b1cc69e632d5a704b1fb2d4df61ac6785.tar.zst
add player
Diffstat (limited to 'client/scripts/tiles')
-rw-r--r--client/scripts/tiles/counter.gd10
-rw-r--r--client/scripts/tiles/door.gd2
-rw-r--r--client/scripts/tiles/floor.gd1
-rw-r--r--client/scripts/tiles/wall_tile.gd55
4 files changed, 59 insertions, 9 deletions
diff --git a/client/scripts/tiles/counter.gd b/client/scripts/tiles/counter.gd
index d8b41804..83872315 100644
--- a/client/scripts/tiles/counter.gd
+++ b/client/scripts/tiles/counter.gd
@@ -30,7 +30,7 @@ func setup(rename: String, neighbors: Array):
var series: int = 0
var last_series: int = 0
var adj: Array = []
-
+
for i in range(4):
if edges[i] == "floor":
last_series += 1
@@ -39,14 +39,14 @@ func setup(rename: String, neighbors: Array):
series = last_series
else:
last_series = 0
-
+
var count = 4 - adj.size()
# we can neither find out whether it is an inner corner nor an outer corner
- # backsplash
+ # backsplash
if series == 1&&count == 3:
facing = adj[0] % 4
-
+
if edges[(adj[0] + 2) % 4] == "wall":
kind = CounterKind.STRAIGHT_BACKSPLASH
else:
@@ -54,7 +54,7 @@ func setup(rename: String, neighbors: Array):
elif series == 2&&count == 2:
facing = (adj[0] + 1) % 4
kind = CounterKind.OUTER_CORNER
-
+
turn_facing(facing)
func is_counter(tile_name_t) -> bool:
diff --git a/client/scripts/tiles/door.gd b/client/scripts/tiles/door.gd
index a300977f..0861b09a 100644
--- a/client/scripts/tiles/door.gd
+++ b/client/scripts/tiles/door.gd
@@ -3,7 +3,7 @@ extends Floor
func setup(rename: String, neighbors: Array):
super.setup(rename, neighbors)
-
+
var facing = 0
for i in range(4):
if tile_name(neighbors[i]) == "door":
diff --git a/client/scripts/tiles/floor.gd b/client/scripts/tiles/floor.gd
index a8a396c4..70a71c5a 100644
--- a/client/scripts/tiles/floor.gd
+++ b/client/scripts/tiles/floor.gd
@@ -13,6 +13,7 @@ enum Facing {
func setup(rename: String, _neighbors: Array):
add_child(load("res://models/prefabs/map/floor_kitchen_small.tscn").instantiate())
base.name = "Base"
+ base.position += Vector3(0.5, 0, 0.5)
add_child(base)
self.name = rename
diff --git a/client/scripts/tiles/wall_tile.gd b/client/scripts/tiles/wall_tile.gd
index d107d73e..f10cc53f 100644
--- a/client/scripts/tiles/wall_tile.gd
+++ b/client/scripts/tiles/wall_tile.gd
@@ -1,10 +1,59 @@
class_name WallTile
extends FullTile
+const WALLS: Array = [
+ "wall",
+ "window",
+ "door"
+]
+
+enum WallKind {
+ STRAIGHT,
+ OUTER_CORNER,
+ T,
+ CROSS,
+}
+
+var kind: WallKind = WallKind.STRAIGHT
+var facing: int = 0
+
func setup(rename: String, neighbors: Array):
super.setup(rename, neighbors)
- var facing = 0
+
+ var edges = neighbors.duplicate()
+
+ 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 neighbors[i] != null&&tile_name(neighbors[i]) != "wall":
- facing = i
+ 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]
+ kind = WallKind.STRAIGHT
+ elif series == 2&&count == 2:
+ facing = adj[0]
+ kind = WallKind.OUTER_CORNER
+ elif series == 1&&count == 3:
+ facing = adj[0]
+ kind = WallKind.T
+ elif series == 0&&count == 4:
+ facing = adj[0]
+ kind = WallKind.CROSS
turn_facing(facing)