From 38e60fad93cd9d6aab2bb99f2e5bba375203f4f0 Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Thu, 16 Feb 2023 18:40:21 -0500 Subject: [PATCH] delayed instancing node :3 --- objects/delayed_instance.gd | 23 +++++++++++++++++++++++ objects/delayed_instance.tscn | 6 ++++++ 2 files changed, 29 insertions(+) create mode 100644 objects/delayed_instance.gd create mode 100644 objects/delayed_instance.tscn diff --git a/objects/delayed_instance.gd b/objects/delayed_instance.gd new file mode 100644 index 0000000..bb1567b --- /dev/null +++ b/objects/delayed_instance.gd @@ -0,0 +1,23 @@ +extends Node + +export var delay = 0.0 +export var autostart = false + +var children = [] + +func _enter_tree(): + for child in get_children(): + children.append(child) + remove_child(child) + +func _ready(): + if autostart: + start() + +func start(): + get_tree().create_timer(delay).connect("timeout", self, "_instance_children") + +func _instance_children(): + var parent = get_parent() + for child in children: + parent.add_child(child) diff --git a/objects/delayed_instance.tscn b/objects/delayed_instance.tscn new file mode 100644 index 0000000..25be013 --- /dev/null +++ b/objects/delayed_instance.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://objects/delayed_instance.gd" type="Script" id=1] + +[node name="DelayedInstance" type="Node"] +script = ExtResource( 1 )