extends Node3D var load_tile = preload("res://tiles/base_tile/tile.tscn") var tiledict = {} func _ready(): pass func init_tile(float_build_start_pos, float_build_mouse_pos): var build_start_pos: Vector3i = float_build_start_pos.snapped(Vector3i(1.0, 1.0, 1.0)) var build_mouse_pos: Vector3i = float_build_mouse_pos.snapped(Vector3i(1.0, 1.0, 1.0)) var flat_pos = build_start_pos + build_mouse_pos var distance = abs(build_start_pos - build_mouse_pos) #var build_mouse_x = floor(build_mouse_pos.x) #var build_mouse_z = floor(build_mouse_pos.z) # #var grid_x_count = max(1, build_mouse_pos.x - build_start_pos.x) #var grid_z_count = max(1, build_mouse_pos.z - build_start_pos.z) var crop_x = max(1, distance.x) var crop_z = max(1, distance.z) for x in crop_x: for z in crop_z: var id = flat_pos var tile = load_tile.instantiate() tile.position = build_start_pos + Vector3i(x, 0, z) print("global", build_start_pos + Vector3i(x, 0, z)) if not tiledict.has(id): print("global after", build_start_pos + Vector3i(x, 0, z)) print("x (global)", id) print("global", tile.position) tiledict[id] = tile add_child(tile)