diff options
author | nokoe <nokoe@mailbox.org> | 2024-06-23 22:22:10 +0200 |
---|---|---|
committer | nokoe <nokoe@mailbox.org> | 2024-06-23 22:22:44 +0200 |
commit | a81020eb81a0fa44f6641f47bd1eeda786cc8f71 (patch) | |
tree | b9e49d33d3025c9ab43a85866b2c614268a4cf65 /client/map/tiles/counter.gd | |
parent | 485ca41108d22be82755151c1a3e596789eafbeb (diff) | |
download | hurrycurry-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.gd | 49 |
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) |