diff options
Diffstat (limited to 'client/scripts/tiles')
| -rw-r--r-- | client/scripts/tiles/counter.gd | 10 | ||||
| -rw-r--r-- | client/scripts/tiles/door.gd | 2 | ||||
| -rw-r--r-- | client/scripts/tiles/floor.gd | 1 | ||||
| -rw-r--r-- | client/scripts/tiles/wall_tile.gd | 55 | 
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) | 
