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 | |
parent | 485ca41108d22be82755151c1a3e596789eafbeb (diff) | |
download | hurrycurry-a81020eb81a0fa44f6641f47bd1eeda786cc8f71.tar hurrycurry-a81020eb81a0fa44f6641f47bd1eeda786cc8f71.tar.bz2 hurrycurry-a81020eb81a0fa44f6641f47bd1eeda786cc8f71.tar.zst |
fix scripts
Diffstat (limited to 'client/map/tiles')
-rw-r--r-- | client/map/tiles/counter.gd | 49 | ||||
-rw-r--r-- | client/map/tiles/counter_base.gd | 6 | ||||
-rw-r--r-- | client/map/tiles/cutting_board.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/door.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/floor.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/flour_counter.gd | 12 | ||||
-rw-r--r-- | client/map/tiles/full_tile.gd | 8 | ||||
-rw-r--r-- | client/map/tiles/oven.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/raw_steak_crate.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/sink.gd | 6 | ||||
-rw-r--r-- | client/map/tiles/stove.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/table.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/tomato_crate.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/trash.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/wall.gd | 8 | ||||
-rw-r--r-- | client/map/tiles/wall_tile.gd | 57 | ||||
-rw-r--r-- | client/map/tiles/window.gd | 4 |
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()) |