Traffic implementation
This commit is contained in:
@@ -1,22 +1,9 @@
|
||||
extends Spatial
|
||||
|
||||
var courtyard_tile: PackedScene = load("res://objects/courtyard-tile.scn")
|
||||
var foundation_tile: PackedScene = load("res://objects/foundation.scn")
|
||||
var room_tile: PackedScene = load("res://objects/block-room-corridoor.scn")
|
||||
var tower_walls_tile: PackedScene = load("res://objects/tower-walls.scn")
|
||||
var tower_floor_tile: PackedScene = load("res://objects/tower_floor.scn")
|
||||
var stairs_tile: PackedScene = load("res://objects/stairs.scn")
|
||||
var gate_bottom_tile: PackedScene = load("res://objects/gate_bottom.scn")
|
||||
var gate_top_tile: PackedScene = load("res://objects/gate-top.scn")
|
||||
var entry_tile: PackedScene = load("res://objects/block-room-entry.scn")
|
||||
var roof_tile: PackedScene = load("res://objects/roof.scn")
|
||||
var tower_roof_tile: PackedScene = load("res://objects/tower-roof.scn")
|
||||
|
||||
const tile_size = 8
|
||||
const palace_size = 8
|
||||
const layers = 4
|
||||
|
||||
|
||||
func _ready():
|
||||
var voffset = 0.0
|
||||
for layer in range(layers):
|
||||
@@ -34,15 +21,16 @@ func _ready():
|
||||
var x = i * tile_size - palace_size * tile_size / 2
|
||||
var z = j * tile_size - palace_size * tile_size / 2
|
||||
if layer == 0:
|
||||
var ct = courtyard_tile.instance()
|
||||
var ct = "courtyard_tile"
|
||||
var xform = Transform(Basis(), Vector3(x, voffset, z))
|
||||
if i > 0 && i < palace_size - 1:
|
||||
if j > 0 && j < palace_size - 1:
|
||||
call_deferred("place", ct, xform)
|
||||
if i in [0, palace_size - 1] || j in [0, palace_size - 1]:
|
||||
call_deferred("place", ct, xform)
|
||||
if (j == palace_size / 2.0 || i != palace_size / 2.0):
|
||||
call_deferred("place", "foundation_tile", xform)
|
||||
else:
|
||||
var ct = room_tile.instance()
|
||||
var ct = "room_tile"
|
||||
var tower_angles = {
|
||||
0:
|
||||
{
|
||||
@@ -71,15 +59,15 @@ func _ready():
|
||||
elif tower_angles.has(i) && tower_angles[i].has(j):
|
||||
xform.basis = Basis().rotated(Vector3.UP, tower_angles[i][j])
|
||||
if layer == layers - 1:
|
||||
var twr = tower_roof_tile.instance()
|
||||
var twr = "tower_roof_tile"
|
||||
call_deferred("place", twr, xform)
|
||||
else:
|
||||
var tw = tower_walls_tile.instance()
|
||||
var tw = "tower_walls_tile"
|
||||
call_deferred("place", tw, xform)
|
||||
var st = stairs_tile.instance()
|
||||
var st = "stairs_tile"
|
||||
call_deferred("place", st, xform)
|
||||
if layer == 1:
|
||||
var tfl = tower_floor_tile.instance()
|
||||
var tfl = "tower_floor_tile"
|
||||
call_deferred("place", tfl, xform)
|
||||
var car = Spatial.new()
|
||||
car.add_to_group("spawn")
|
||||
@@ -97,27 +85,26 @@ func _ready():
|
||||
add_child(major_f)
|
||||
major_f.global_transform = Transform(Basis(), Vector3(cos(PI / 3 * e) * 2.0, 0, sin(PI / 3 * e) * 2.0) + Vector3(10.0, 0, 0))
|
||||
print("PALACE done")
|
||||
func place(obj, where):
|
||||
add_child(obj)
|
||||
obj.transform = where
|
||||
print("placed at ", where.origin)
|
||||
|
||||
func place(obj: String, where: Transform):
|
||||
streaming.spawn_child(obj, global_transform * where)
|
||||
|
||||
func spawn_wall(layer:int, i: int, j: int, xform: Transform):
|
||||
if layer == layers - 1:
|
||||
var rt = roof_tile.instance()
|
||||
var rt = "roof_tile"
|
||||
call_deferred("place", rt, xform)
|
||||
elif (j != palace_size / 2.0 && i != palace_size / 2.0)|| layer > 2:
|
||||
var ct = room_tile.instance()
|
||||
var ct = "room_tile"
|
||||
call_deferred("place", ct, xform)
|
||||
elif (j == palace_size / 2.0 && i != palace_size / 2.0) && layer == 1:
|
||||
var ent = entry_tile.instance()
|
||||
var ent = "entry_tile"
|
||||
call_deferred("place", ent, xform)
|
||||
elif (j != palace_size / 2.0 && i == palace_size / 2.0) && layer == 1:
|
||||
var gw = gate_bottom_tile.instance()
|
||||
var gw = "gate_bottom_tile"
|
||||
call_deferred("place", gw, xform)
|
||||
elif (j != palace_size / 2.0 && i == palace_size / 2.0) && layer == 2:
|
||||
var gw = gate_top_tile.instance()
|
||||
var gw = "gate_top_tile"
|
||||
call_deferred("place", gw, xform)
|
||||
elif (j == palace_size / 2.0 && i != palace_size / 2.0) && layer == 2:
|
||||
var ct = room_tile.instance()
|
||||
var ct = "room_tile"
|
||||
call_deferred("place", ct, xform)
|
||||
|
||||
Reference in New Issue
Block a user