28 lines
836 B
GDScript
28 lines
836 B
GDScript
extends Node3D
|
|
class_name InfoChunk
|
|
|
|
@export_enum("Bioma", "Binario_Dritto", "Binario_Curva") var tipo_chunk: int = 0
|
|
|
|
@export_group("Uscite Base (Senza Rotazione)")
|
|
# Spunta queste caselle se il chunk ha un sentiero/binario che tocca quel bordo
|
|
@export var nord: bool = false
|
|
@export var est: bool = false
|
|
@export var sud: bool = false
|
|
@export var ovest: bool = false
|
|
|
|
# Calcola dove finiscono le uscite se ruotiamo il blocco
|
|
func get_uscite_ruotate(scatti_90_gradi: int) -> Dictionary:
|
|
var uscite_originali = [nord, est, sud, ovest]
|
|
var uscite_calcolate = []
|
|
|
|
for i in range(4):
|
|
# Sposta le uscite in senso orario
|
|
uscite_calcolate.append(uscite_originali[(i - scatti_90_gradi + 4) % 4])
|
|
|
|
return {
|
|
"nord": uscite_calcolate[0],
|
|
"est": uscite_calcolate[1],
|
|
"sud": uscite_calcolate[2],
|
|
"ovest": uscite_calcolate[3]
|
|
}
|