aboutsummaryrefslogtreecommitdiff
path: root/client/map/tiles/counter.gd
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-06-23 22:22:10 +0200
committernokoe <nokoe@mailbox.org>2024-06-23 22:22:44 +0200
commita81020eb81a0fa44f6641f47bd1eeda786cc8f71 (patch)
treeb9e49d33d3025c9ab43a85866b2c614268a4cf65 /client/map/tiles/counter.gd
parent485ca41108d22be82755151c1a3e596789eafbeb (diff)
downloadhurrycurry-a81020eb81a0fa44f6641f47bd1eeda786cc8f71.tar
hurrycurry-a81020eb81a0fa44f6641f47bd1eeda786cc8f71.tar.bz2
hurrycurry-a81020eb81a0fa44f6641f47bd1eeda786cc8f71.tar.zst
fix scripts
Diffstat (limited to 'client/map/tiles/counter.gd')
-rw-r--r--client/map/tiles/counter.gd49
1 files changed, 19 insertions, 30 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)