diff options
Diffstat (limited to 'client/map')
| -rw-r--r-- | client/map/item.gd | 2 | ||||
| -rw-r--r-- | client/map/map.gd | 4 | ||||
| -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 | 
19 files changed, 73 insertions, 101 deletions
diff --git a/client/map/item.gd b/client/map/item.gd index 757019c9..fd00f9fa 100644 --- a/client/map/item.gd +++ b/client/map/item.gd @@ -26,7 +26,7 @@ func _init(idx: int, owned_by_: Node3D):  	progress_instance.visible = false  	match Multiplayer.item_names[idx]:  		var t: -			add_child(load("res://models/prefabs/map/bag.tscn").instantiate()) +			#add_child(load("res://models/prefabs/map/bag.tscn").instantiate())  			var mesh = MeshInstance3D.new()  			var text = TextMesh.new()  			var mat = StandardMaterial3D.new() diff --git a/client/map/map.gd b/client/map/map.gd index 1155a70c..c027fd4a 100644 --- a/client/map/map.gd +++ b/client/map/map.gd @@ -15,13 +15,15 @@  # You should have received a copy of the GNU Affero General Public License  # along with this program.  If not, see <https://www.gnu.org/licenses/>.  #  +@tool  class_name Map  extends Node3D  var tile_by_pos: Dictionary = {}  func _ready(): -	Multiplayer.connect("update_map", update) +	if !Engine.is_editor_hint(): +		Multiplayer.connect("update_map", update)  func update(pos, tile_name, neighbors):  	var instance: Floor 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())  |