valencia-rail-rush/chunk.gd

112 lines
2.9 KiB
GDScript

extends Node3D
var exits: Array = [false, true, true, false]
func _ready() -> void:
pass
#exits = [
#randi() % 2 == 0,
#randi() % 2 == 0,
#randi() % 2 == 0,
#randi() % 2 == 0,
#]
#update()
func update() -> void:
var i = 0
exits = [true, false, true, false]
for exit in exits:
if not exit:
i += 1
continue
if i == 0: #n
$n.position.y = 1
var vertices = PackedVector3Array()
vertices.push_back(Vector3(-5, 0.5, -50))
vertices.push_back(Vector3(5, 0.5, -50))
vertices.push_back(Vector3(-5, 0.5, 0))
vertices.push_back(Vector3(5, 0.5, -50))
vertices.push_back(Vector3(5, 0.5, 0))
vertices.push_back(Vector3(-5, 0.5, 0))
# Initialize the ArrayMesh.
var arr_mesh = ArrayMesh.new()
var arrays = []
arrays.resize(Mesh.ARRAY_MAX)
arrays[Mesh.ARRAY_VERTEX] = vertices
# Create the Mesh.
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
var m = MeshInstance3D.new()
m.mesh = arr_mesh
add_child(m)
if i == 1: #s
$s.position.y = 1
var vertices = PackedVector3Array()
vertices.push_back(Vector3(-5, 0.5, 0))
vertices.push_back(Vector3(5, 0.5, 0))
vertices.push_back(Vector3(-5, 0.5, 50))
vertices.push_back(Vector3(5, 0.5, 0))
vertices.push_back(Vector3(5, 0.5, 50))
vertices.push_back(Vector3(-5, 0.5, 50))
# Initialize the ArrayMesh.
var arr_mesh = ArrayMesh.new()
var arrays = []
arrays.resize(Mesh.ARRAY_MAX)
arrays[Mesh.ARRAY_VERTEX] = vertices
# Create the Mesh.
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
var m = MeshInstance3D.new()
m.mesh = arr_mesh
add_child(m)
if i == 2: #w
$w.position.y = 1
var vertices = PackedVector3Array()
vertices.push_back(Vector3(-50, 0.5, -5))
vertices.push_back(Vector3(0, 0.5, -5))
vertices.push_back(Vector3(-50, 0.5, 5))
vertices.push_back(Vector3(0, 0.5, -5))
vertices.push_back(Vector3(0, 0.5, 5))
vertices.push_back(Vector3(-50, 0.5, 5))
# Initialize the ArrayMesh.
var arr_mesh = ArrayMesh.new()
var arrays = []
arrays.resize(Mesh.ARRAY_MAX)
arrays[Mesh.ARRAY_VERTEX] = vertices
# Create the Mesh.
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
var m = MeshInstance3D.new()
m.mesh = arr_mesh
add_child(m)
if i == 3: #e
$e.position.y = 1
var vertices = PackedVector3Array()
vertices.push_back(Vector3(0, 0.5, -5))
vertices.push_back(Vector3(50, 0.5, -5))
vertices.push_back(Vector3(0, 0.5, 5))
vertices.push_back(Vector3(50, 0.5, -5))
vertices.push_back(Vector3(50, 0.5, 5))
vertices.push_back(Vector3(0, 0.5, 5))
# Initialize the ArrayMesh.
var arr_mesh = ArrayMesh.new()
var arrays = []
arrays.resize(Mesh.ARRAY_MAX)
arrays[Mesh.ARRAY_VERTEX] = vertices
# Create the Mesh.
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
var m = MeshInstance3D.new()
m.mesh = arr_mesh
add_child(m)
i += 1