Files
recombinator/CreatureLab.gd
T
Mark Hoekveen a05c72fc4a Colors
2019-10-27 21:38:56 +01:00

70 lines
1.8 KiB
GDScript

extends Node
export (PackedScene) var Creature
var selected = []
var rng = RandomNumberGenerator.new()
func _ready():
rng.randomize()
pass
func spawn_a_bitch():
var c = Creature.instance()
add_child(c)
# Geef de bitch een random positie en rotatie
#c.rotate_y(rand_range(-5, 5))
c.transform = Transform(c.transform.basis, Vector3(rand_range(-7, 7), 0, rand_range(-5, 5)))
c.set_color()
return c
func kill_a_bitch():
var c = get_child(get_child_count()-1)
if c:
c.queue_free()
#remove_child(c)
func combine_a_bitch():
if selected.size() == 2:
var new_dna = []
for i in range(selected[0].dna.size()):
if rng.randf() > 0.5:
new_dna.append(selected[0].dna[i])
else:
new_dna.append(selected[1].dna[i])
var new_child = spawn_a_bitch()
new_child.dna = new_dna
deselect_all()
select(new_child)
new_child.describe()
new_child.set_color()
func deselect_all():
for i in range(selected.size()):
selected[i].get_node("SelectionIndicator").visible = false;
selected = []
func select(creature):
if selected.has(creature):
creature.get_node("SelectionIndicator").visible = false;
selected.erase(creature)
else:
selected.append(creature)
creature.get_node("SelectionIndicator").visible = true;
var p0 = get_node("../GUI/Parent0")
var p1 = get_node("../GUI/Parent1")
p0.text = ""
p1.text = ""
if selected.size() >= 1:
p0.text = selected[0].describe()
var copy0 = selected[0].duplicate()
copy0.get_node("AnimationPlayer").set_autoplay("Animation")
get_node("../GUI/Preview0/Viewport").add_child(copy0)
if selected.size() >= 2:
p1.text = selected[1].describe()
func select_a_bitch(camera, event, click_position, click_normal, index, creature_id):
if event.is_action_pressed("select_creature"):
var kindeke = get_child(creature_id)
select(kindeke)
print(creature_id)