52 lines
1.6 KiB
GDScript
52 lines
1.6 KiB
GDScript
extends Node3D
|
|
class_name InfoChunk
|
|
|
|
@export_enum("Bioma", "Binario_Dritto", "Binario_Curva") var tipo_chunk: int = 0
|
|
|
|
@export_group("Regole Set Piece (Pezzi Unici)")
|
|
@export var bioma_esclusivo: String = "" # Es: scrivi "Foresta"
|
|
|
|
@export_group("Uscite Base (Senza Rotazione)")
|
|
@export var nord: bool = false
|
|
@export var est: bool = false
|
|
@export var sud: bool = false
|
|
@export var ovest: bool = false
|
|
|
|
@export_group("Altitudini Bordi (Livelli 0, 1, 2)")
|
|
@export var altezza_nord: int = 0
|
|
@export var altezza_est: int = 0
|
|
@export var altezza_sud: int = 0
|
|
@export var altezza_ovest: int = 0
|
|
|
|
# --- NUOVA AGGIUNTA AUTOMATICA ---
|
|
func _ready() -> void:
|
|
# Se hai scritto un bioma nell'Inspector, il pezzo capisce di essere
|
|
# un pezzo speciale e si aggiunge al gruppo dei fantasmi da solo!
|
|
if bioma_esclusivo != "":
|
|
add_to_group("set_pieces")
|
|
|
|
# ... qui sotto continua la tua normale funzione get_dati_ruotati() ...
|
|
|
|
func get_dati_ruotati(scatti_90_gradi: int) -> Dictionary:
|
|
var uscite_originali = [nord, est, sud, ovest]
|
|
var altezze_originali = [altezza_nord, altezza_est, altezza_sud, altezza_ovest]
|
|
|
|
var uscite_calcolate = []
|
|
var altezze_calcolate = []
|
|
|
|
for i in range(4):
|
|
var indice = (i - scatti_90_gradi + 4) % 4
|
|
uscite_calcolate.append(uscite_originali[indice])
|
|
altezze_calcolate.append(altezze_originali[indice])
|
|
|
|
return {
|
|
"connessioni": {
|
|
"nord": uscite_calcolate[0], "est": uscite_calcolate[1],
|
|
"sud": uscite_calcolate[2], "ovest": uscite_calcolate[3]
|
|
},
|
|
"altezze": {
|
|
"nord": altezze_calcolate[0], "est": altezze_calcolate[1],
|
|
"sud": altezze_calcolate[2], "ovest": altezze_calcolate[3]
|
|
}
|
|
}
|