47 lines
940 B
GDScript
47 lines
940 B
GDScript
@tool
|
|
extends MultiMeshInstance3D
|
|
|
|
@export_range(1, 100) var righe: int = 10:
|
|
set(value):
|
|
righe = value
|
|
generazione_filari()
|
|
|
|
@export_range(1, 100) var colonne: int = 5:
|
|
set(value):
|
|
colonne = value
|
|
generazione_filari()
|
|
|
|
@export var distanza_righe: float = 1.0:
|
|
set(value):
|
|
distanza_righe = value
|
|
generazione_filari()
|
|
|
|
@export var distanza_colonne: float = 0.5:
|
|
set(value):
|
|
distanza_colonne = value
|
|
generazione_filari()
|
|
|
|
func _ready() -> void:
|
|
generazione_filari()
|
|
|
|
func generazione_filari() -> void:
|
|
if not multimesh:
|
|
return
|
|
|
|
var totale_istanze = righe * colonne
|
|
multimesh.instance_count = totale_istanze
|
|
|
|
var index = 0
|
|
|
|
for r in range(righe):
|
|
for c in range(colonne):
|
|
var pos_x = c * distanza_colonne
|
|
var pos_z = r * distanza_righe
|
|
var pos_y = 0.0
|
|
|
|
var xform = Transform3D()
|
|
xform.origin = Vector3(pos_x, pos_y, pos_z)
|
|
|
|
multimesh.set_instance_transform(index, xform)
|
|
index += 1
|