Revamp Chunk Rotaie - test risaie

This commit is contained in:
Matteo Sonaglioni
2026-03-16 19:30:32 +01:00
parent 461a08aa6d
commit 89a08abfb9
42 changed files with 1818 additions and 468 deletions

View File

@@ -3,25 +3,49 @@ 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)")
# 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:
@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):
# Sposta le uscite in senso orario
uscite_calcolate.append(uscite_originali[(i - scatti_90_gradi + 4) % 4])
var indice = (i - scatti_90_gradi + 4) % 4
uscite_calcolate.append(uscite_originali[indice])
altezze_calcolate.append(altezze_originali[indice])
return {
"nord": uscite_calcolate[0],
"est": uscite_calcolate[1],
"sud": uscite_calcolate[2],
"ovest": uscite_calcolate[3]
"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]
}
}