1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
extends Node
const Wrld = preload("res://world.tscn")
const Builder = preload("res://scripts/builder.gd")
var cam = null
var builder = null
func _ready():
randomize()
self.cam = get_node("Camera")
self.builder = Builder.new()
func _input(event):
if event.type == InputEvent.MOUSE_BUTTON:
if event.button_index == BUTTON_WHEEL_DOWN:
self.cam.translate(Vector3(0,0,0.1))
self.cam.reselect()
elif event.button_index == BUTTON_WHEEL_UP:
self.cam.translate(Vector3(0,0,-0.1))
self.cam.reselect()
elif event.button_index == BUTTON_RIGHT:
self.cam.reset()
if event.type == InputEvent.MOUSE_MOTION and event.button_mask == BUTTON_MASK_MIDDLE:
self.cam.rot_around(event.relative_x/(30))
if event.type == InputEvent.KEY:
if event.scancode == KEY_A:
self.cam.translate(Vector3(-0.1,0,0))
if event.scancode == KEY_D:
self.cam.translate(Vector3(0.1,0,0))
if event.scancode == KEY_S:
self.cam.translate(Vector3(0,-0.1,0))
if event.scancode == KEY_W:
self.cam.translate(Vector3(0,0.1,0))
if event.is_pressed():
if event.scancode == KEY_H:
var s = self.cam.get_selected()
if s != null:
get_node("Incubator").push_world(s)
if event.scancode == KEY_N:
var w = self.builder.combine(Vector3(0,0,0), [])
w.set_scale(Vector3(0.02, 0.02, 0.02))
add_child(w)
get_node("Incubator").push_world(w)
if event.scancode == KEY_Q:
var w = get_node("World")
if w != null:
var pos = get_node("cmb2inc")
w.set_translation(Vector3(0,0,0))
remove_child(w)
pos.add_child(w)
get_node("AnimationPlayer").play("cmb2inc")
func _on_AnimationPlayer_animation_finished( name ):
if name == "cmb2inc":
var w = get_node("cmb2inc/World")
var pos = get_node("cmb2inc")
pos.remove_child(w)
add_child(w)
w.set_translation(pos.get_translation())
|