diff options
| author | nokoe <nokoe@mailbox.org> | 2024-06-21 11:57:33 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-06-23 19:26:07 +0200 | 
| commit | 194f387b1cc69e632d5a704b1fb2d4df61ac6785 (patch) | |
| tree | 3b996f0cda91de1d9efdad5cd9f96fd3969ee497 /client/scripts/tiles/wall_tile.gd | |
| parent | 316750a2d5326d5786265a6b936732560cba8f38 (diff) | |
| download | hurrycurry-194f387b1cc69e632d5a704b1fb2d4df61ac6785.tar hurrycurry-194f387b1cc69e632d5a704b1fb2d4df61ac6785.tar.bz2 hurrycurry-194f387b1cc69e632d5a704b1fb2d4df61ac6785.tar.zst | |
add player
Diffstat (limited to 'client/scripts/tiles/wall_tile.gd')
| -rw-r--r-- | client/scripts/tiles/wall_tile.gd | 55 | 
1 files changed, 52 insertions, 3 deletions
| 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) | 
