project-villain/map/base_map/grid.gd
2025-06-18 23:38:20 +10:00

46 lines
1.2 KiB
GDScript

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)