2022-11-14 20:20:41 +07:00
|
|
|
extends Node
|
2022-11-14 20:58:49 +07:00
|
|
|
|
2022-11-19 05:06:08 +07:00
|
|
|
@onready var world := Node3D.new()
|
2022-11-20 04:07:41 +07:00
|
|
|
var suzanne := preload("res://prefabs/suzanne.tscn")
|
2022-11-19 05:06:08 +07:00
|
|
|
|
2022-11-14 20:58:49 +07:00
|
|
|
func _ready() -> void:
|
2022-11-15 17:59:27 +07:00
|
|
|
var start := Time.get_ticks_msec()
|
2022-11-17 17:38:22 +07:00
|
|
|
var target = MapBuilder.placements.size()
|
2022-11-15 17:59:27 +07:00
|
|
|
var count := 0
|
2022-11-18 03:10:21 +07:00
|
|
|
var start_t := Time.get_ticks_msec()
|
|
|
|
# add_child(MapBuilder.map)
|
2022-11-17 17:38:22 +07:00
|
|
|
for ipl in MapBuilder.placements:
|
2022-11-19 05:06:08 +07:00
|
|
|
world.add_child(MapBuilder.spawn_placement(ipl))
|
2022-11-15 17:59:27 +07:00
|
|
|
count += 1
|
2022-11-15 23:02:44 +07:00
|
|
|
if Time.get_ticks_msec() - start > (1.0 / 30.0) * 1000:
|
2022-11-15 17:59:27 +07:00
|
|
|
start = Time.get_ticks_msec()
|
2022-11-15 20:01:44 +07:00
|
|
|
print("%f" % (float(count) / float(target)))
|
2022-11-15 17:59:27 +07:00
|
|
|
await get_tree().physics_frame
|
2022-11-18 03:10:21 +07:00
|
|
|
print("Map load completed in %f seconds" % ((Time.get_ticks_msec() - start_t) / 1000))
|
2022-11-19 05:06:08 +07:00
|
|
|
add_child(world)
|
2022-11-20 04:07:41 +07:00
|
|
|
|
|
|
|
func _unhandled_input(event: InputEvent) -> void:
|
|
|
|
if event is InputEventKey:
|
|
|
|
if event.physical_keycode == KEY_SPACE and event.pressed:
|
|
|
|
var node := suzanne.instantiate() as RigidBody3D
|
|
|
|
add_child(node)
|
|
|
|
node.global_position = get_viewport().get_camera_3d().global_position
|