List of commits:
Subject Hash Author Date (UTC)
Add button panel, save VR preference, improve vignette, box player in 5355a1cfcb49dfb676394a932a9ae58bd5c7b942 fluffrabbit 2017-04-06 03:42:14
Initial commit 8112cb088917c705bda9e291d3d15aacf003dce4 fluffrabbit 2017-03-28 15:44:04
Commit 5355a1cfcb49dfb676394a932a9ae58bd5c7b942 - Add button panel, save VR preference, improve vignette, box player in
Author: fluffrabbit
Author date (UTC): 2017-04-06 03:42
Committer name: fluffrabbit
Committer date (UTC): 2017-04-06 03:42
Parent(s): 8112cb088917c705bda9e291d3d15aacf003dce4
Signer:
Signing key:
Signing status: N
Tree: fb071581cd0c09625169e5ddb7e476b6ebfd37d6
File Lines added Lines deleted
TODO.txt 1 1
data/gdscript/button_load.gd 0 49
data/gdscript/button_quit.gd 3 40
data/gdscript/button_vr.gd 32 41
data/gdscript/hybrid-control.gd 22 19
data/gdscript/turret.gd 14 1
data/gdscript/vrgui.gd 95 0
data/menu/menu.tscn 142 0
data/menu/select.png 0 0
data/menu/select.svg 6 0
data/menu/svg-render 3 0
data/menu/svg-render.bat 3 0
data/scenes/doublevignette.png 0 0
data/scenes/skyhammer.tscn 107 433
File TODO.txt changed (mode: 100644) (index aa9eb38..1eb95d7)
1 0.0.4 - scoreboard and VR preference saving
1 0.0.4 - scoreboard
2 2 0.0.5 - add buildings, ships shoot back, variety in gameplay 0.0.5 - add buildings, ships shoot back, variety in gameplay
3 3 0.0.6 - add hominids 0.0.6 - add hominids
4 4 0.0.7 - implement Godot's newest innovations 0.0.7 - implement Godot's newest innovations
File data/gdscript/button_load.gd deleted (index 738712d..0000000)
1 extends StaticBody
2
3
4 onready var quad = get_node( 'Quad' )
5 onready var viewport = get_node( 'Viewport' )
6 onready var sfx = get_node( 'sfx' )
7 onready var label = viewport.get_node( 'Label' )
8 onready var mat = quad.get_material_override().duplicate()
9
10 var lookat = false
11
12 var brightness = 0.0
13
14
15 func _ready():
16 # use unique material
17 quad.set_material_override( mat )
18 mat.set_texture( 1, viewport.get_render_target_texture() )
19
20 label.set_text( 'load' )
21
22 set_fixed_process( true )
23
24
25 func _fixed_process( d ):
26 if lookat: brightness = 1.0
27
28 mat.set_parameter( 0, Color( 1.0, 1.0, 1.0, lerp( 0.5, 1.0, brightness) ) )
29
30 var s = lerp( 1.0, 1.12, brightness )
31 set_scale( Vector3( s, s, s ) )
32
33 brightness -= d * 3
34 if brightness < 0.0: brightness = 0.0
35
36 lookat = false
37
38
39 func _pick( body, v, a, e, d ):
40 # _pick( body, vec, action { point = 0, start press = 1, start hold = 2, button press = 3 }, actionevent, delta )
41 lookat = true
42 if a == 1 or a == 3:
43 sfx.play( 'powerup' )
44
45 var mapevent = 'ui_accept'
46 InputMap.erase_action( mapevent )
47 InputMap.add_action( mapevent )
48 InputMap.action_add_event( mapevent, e )
49 label.set_text( 'loaded' )
File data/gdscript/button_quit.gd changed (mode: 100644) (index 426d3d1..3781bde)
1 extends StaticBody
1 extends Button
2 2
3 3
4 onready var quad = get_node( 'Quad' )
5 onready var viewport = get_node( 'Viewport' )
6 onready var label = viewport.get_node( 'Label' )
7 onready var mat = quad.get_material_override().duplicate()
8
9 var lookat = false
10
11 var brightness = 0.0
12
13
14 func _ready():
15 # use unique material
16 quad.set_material_override( mat )
17 mat.set_texture( 1, viewport.get_render_target_texture() )
18
19 label.set_text( 'quit' )
20
21 set_fixed_process( true )
22
23
24 func _fixed_process( d ):
25 if lookat: brightness = 1.0
26
27 mat.set_parameter( 0, Color( 1.0, 1.0, 1.0, lerp( 0.5, 1.0, brightness) ) )
28
29 var s = lerp( 1.0, 1.12, brightness )
30 set_scale( Vector3( s, s, s ) )
31
32 brightness -= d * 3
33 if brightness < 0.0: brightness = 0.0
34
35 lookat = false
36
37
38 func _pick( body, v, a, e, d ):
39 # _pick( body, vec, action { point = 0, start press = 1, start hold = 2, button press = 3 }, actionevent, delta )
40 lookat = true
41 if a == 1 or a == 3:
42 get_tree().quit()
4 func _pressed():
5 get_tree().quit()
File data/gdscript/button_vr.gd changed (mode: 100644) (index 5da6a14..6816190)
1 extends StaticBody
1 extends Button
2 2
3 3
4 onready var quad = get_node( 'Quad' )
5 onready var viewport = get_node( 'Viewport' )
6 onready var sfx = get_node( 'sfx' )
7 onready var label = viewport.get_node( 'Label' )
8 onready var mat = quad.get_material_override().duplicate()
4 export var SaveFile = 'vrmode.txt'
5 var filename = 'user://' + SaveFile
6
7 onready var player = get_tree().get_nodes_in_group( 'player' )[ 0 ]
9 8
10 9 # to fix Godot 2.1 particle speed bug # to fix Godot 2.1 particle speed bug
11 10 onready var particles = get_tree().get_nodes_in_group( 'particles' ) onready var particles = get_tree().get_nodes_in_group( 'particles' )
12 11
13 var lookat = false
14
15 var brightness = 0.0
12 onready var vr = OS.get_name() == 'Android' or OS.get_name() == 'iOS'
16 13
17 14
18 15 func _ready(): func _ready():
19 # use unique material
20 quad.set_material_override( mat )
21 mat.set_texture( 1, viewport.get_render_target_texture() )
22
23 16 # to fix Godot 2.1 particle speed bug # to fix Godot 2.1 particle speed bug
24 17 for p in particles: for p in particles:
25 18 p.set_meta( 'originalLifetime', p.get_variable( 0 ) ) p.set_meta( 'originalLifetime', p.get_variable( 0 ) )
 
... ... func _ready():
28 21 p.set_meta( 'originalAngularVel', p.get_variable( 4 ) ) p.set_meta( 'originalAngularVel', p.get_variable( 4 ) )
29 22 p.set_meta( 'originalLinearAccel', p.get_variable( 5 ) ) p.set_meta( 'originalLinearAccel', p.get_variable( 5 ) )
30 23 p.set_meta( 'originalTanAccel', p.get_variable( 7 ) ) p.set_meta( 'originalTanAccel', p.get_variable( 7 ) )
31 var sensors = OS.get_name() == 'Android' or OS.get_name() == 'iOS'
32 stereo_particles( sensors )
33
34 label.set_text( 'VR' )
35
36 set_fixed_process( true )
24 var f = File.new()
25 if f.file_exists( filename ):
26 f.open( filename, File.READ )
27 vr = f.get_line() == 'True'
28 f.close()
29 player.enable_vr( vr )
30 setlabel()
31 # to fix Godot 2.1 particle speed bug
32 stereo_particles( vr )
37 33
38 34
39 func _fixed_process( d ):
40 if lookat: brightness = 1.0
41
42 mat.set_parameter( 0, Color( 1.0, 1.0, 1.0, lerp( 0.5, 1.0, brightness) ) )
43
44 var s = lerp( 1.0, 1.12, brightness )
45 set_scale( Vector3( s, s, s ) )
46
47 brightness -= d * 3
48 if brightness < 0.0: brightness = 0.0
49
50 lookat = false
35 func _pressed():
36 vr = not player.is_vr()
37 var f = File.new()
38 f.open( filename, File.WRITE )
39 f.store_string( String( vr ) )
40 f.close()
41 player.enable_vr( vr )
42 setlabel()
43 # to fix Godot 2.1 particle speed bug
44 stereo_particles( vr )
51 45
52 46
53 func _pick( body, v, a, e, d ):
54 # _pick( body, vec, action { point = 0, start press = 1, start hold = 2, button press = 3 }, actionevent, delta )
55 lookat = true
56 if a == 1 or a == 3:
57 sfx.play( 'powerup' )
58 if body.has_method( 'is_vr' ):
59 var vr = not body.is_vr()
60 body.enable_vr( vr )
61 # to fix Godot 2.1 particle speed bug
62 stereo_particles( vr )
47 func setlabel():
48 # This is where some syntactic sugar would help.
49 # In JavaScript, it would be as simple as set_text( vr?'(((VR)))':'VR' )
50 if vr:
51 set_text( '(((VR)))' )
52 else:
53 set_text( 'VR' )
63 54
64 55
65 56 # to fix Godot 2.1 particle speed bug # to fix Godot 2.1 particle speed bug
File data/gdscript/hybrid-control.gd changed (mode: 100644) (index bf8da22..c38a59f)
... ... onready var vignette = head.get_node( 'Vignette' )
19 19 onready var sensors = OS.get_name() == 'Android' or OS.get_name() == 'iOS' onready var sensors = OS.get_name() == 'Android' or OS.get_name() == 'iOS'
20 20 onready var flipSensorAxis = OS.get_name() != 'Android' onready var flipSensorAxis = OS.get_name() != 'Android'
21 21
22 var vr_is_set = false
23
22 24 var xsmooth = 0.24 var xsmooth = 0.24
23 25 var ysmooth = 0.184 var ysmooth = 0.184
24 26 var zsmooth = 0.15 var zsmooth = 0.15
 
... ... var actionevent = null
55 57 # Initialization function # Initialization function
56 58
57 59 func _ready(): func _ready():
58 enable_vr( sensors )
60 if not vr_is_set: enable_vr( sensors )
59 61
60 62 ray.set_enabled( true ) ray.set_enabled( true )
61 63 ray.add_exception( self ) ray.add_exception( self )
 
... ... func _input( e ):
181 183 rot.x = mouserotx rot.x = mouserotx
182 184 rot.y = wrap( mouseroty + rotyoffsetkb ) rot.y = wrap( mouseroty + rotyoffsetkb )
183 185 yxz_rotation( head, rot * Vector3( 1.0, 0.0, 1.0 ) ) yxz_rotation( head, rot * Vector3( 1.0, 0.0, 1.0 ) )
184 elif e.type == InputEvent.KEY or e.type == InputEvent.MOUSE_BUTTON or e.type == InputEvent.JOYSTICK_BUTTON:
185 if !e.is_action( 'ui_up' ) and !e.is_action( 'ui_down' ) and !e.is_action( 'ui_left' ) and !e.is_action( 'ui_right' ) and e.is_pressed() and not e.is_echo():
186 actionevent = e
186 elif not e.type in [ InputEvent.SCREEN_DRAG, InputEvent.SCREEN_TOUCH ]:
187 actionevent = e
188 if e.is_pressed():
187 189 if e.is_action( 'ui_accept' ): if e.is_action( 'ui_accept' ):
188 190 action = 1 action = 1
189 191 else: else:
 
... ... func is_vr():
201 203
202 204
203 205 func enable_vr( on ): func enable_vr( on ):
206 vr_is_set = true
204 207 if on: if on:
205 camera.hide()
206 panelL.show()
207 panelR.show()
208 mount1.show()
209 mount2.show()
210 vignette.show()
208 get_node( 'Head/Camera' ).hide()
209 get_node( 'Head/PanelL' ).show()
210 get_node( 'Head/PanelR' ).show()
211 get_node( 'Head/PanelL/Viewport/Mount' ).show()
212 get_node( 'Head/PanelR/Viewport/Mount' ).show()
213 get_node( 'Head/Vignette' ).show()
211 214 # Disable FXAA (avoids double application bug in Godot 2.1) # Disable FXAA (avoids double application bug in Godot 2.1)
212 set_fxaa( mount1.get_node( 'Camera' ), false )
213 set_fxaa( mount2.get_node( 'Camera' ), false )
215 set_fxaa( get_node( 'Head/PanelL/Viewport/Mount/Camera' ), false )
216 set_fxaa( get_node( 'Head/PanelR/Viewport/Mount/Camera' ), false )
214 217 pitmode = Globals.get( 'pitmode' ) pitmode = Globals.get( 'pitmode' )
215 218 if forceAlwaysStrafe: pitmode = true if forceAlwaysStrafe: pitmode = true
216 219 else: else:
217 camera.show()
218 panelL.hide()
219 panelR.hide()
220 mount1.hide()
221 mount2.hide()
222 vignette.hide()
220 get_node( 'Head/Camera' ).show()
221 get_node( 'Head/PanelL' ).hide()
222 get_node( 'Head/PanelR' ).hide()
223 get_node( 'Head/PanelL/Viewport/Mount' ).hide()
224 get_node( 'Head/PanelR/Viewport/Mount' ).hide()
225 get_node( 'Head/Vignette' ).hide()
223 226 # Enable FXAA # Enable FXAA
224 set_fxaa( camera, true )
227 set_fxaa( get_node( 'Head/Camera' ), true )
225 228 pitmode = true pitmode = true
226 229
227 230
File data/gdscript/turret.gd changed (mode: 100644) (index 3876423..b9a7dda)
... ... func _pick( body, v, a, e, d ):
81 81 if rot.x < x_min: rot.x = x_min if rot.x < x_min: rot.x = x_min
82 82 if rot.x > x_max: rot.x = x_max if rot.x > x_max: rot.x = x_max
83 83
84 if a == 1 or a == 2:
84 if is_mouse_pressed() or is_joy_pressed():
85 85 rotate_turret( d ) rotate_turret( d )
86 86 if fire_timer <= 0: if fire_timer <= 0:
87 87 sfx.play( 'bang' ) sfx.play( 'bang' )
 
... ... func rotate_turret( d ):
126 126
127 127 # Helper functions # Helper functions
128 128
129 func is_mouse_pressed():
130 for m in range( 1, 3 ):
131 if Input.is_mouse_button_pressed( m ): return true
132 return false
133
134
135 func is_joy_pressed():
136 for j in Input.get_connected_joysticks():
137 for b in range( 0, 16 ):
138 if Input.is_joy_button_pressed( j, b ): return true
139 return false
140
141
129 142 func getlookat( node ): func getlookat( node ):
130 143 return Transform( node.get_global_transform().basis, Vector3( 0, 0, 0 ) ).translated( Vector3( 0, 0, 1 ) ).origin return Transform( node.get_global_transform().basis, Vector3( 0, 0, 0 ) ).translated( Vector3( 0, 0, 1 ) ).origin
131 144
File data/gdscript/vrgui.gd added (mode: 100644) (index 0000000..b78aee8)
1 extends PhysicsBody
2
3
4 # THINGS THAT ARE STILL WRONG:
5 # * fabricated click event can't unfocus from text fields
6 # * can't select text by click and drag
7 # * can't suppress Android's on-screen keyboard
8
9
10 export( Texture ) var SelectCursor = preload( 'res://data/menu/select.png' )
11
12 onready var quad = get_node( 'Quad' )
13 onready var viewport = get_node( 'Viewport' )
14 onready var mat = quad.get_material_override()
15
16 # longest reasonable latency between _fixed_process and _process
17 var mousewait = 0.05
18 var mousetimer = mousewait
19 var mouse = null
20 var pos = null
21 var prev_pos = null
22
23
24 func _ready():
25 # Update the render target once, then disable automatic render target updates.
26 viewport.set_render_target_update_mode( 1 )
27 mat.set_texture( 1, viewport.get_render_target_texture() )
28
29 set_process( true )
30
31
32 func _process( d ):
33 if mouse != null and not mouse.is_hidden():
34 if mousetimer <= 0.0:
35 mouse.hide()
36 viewport.set_render_target_update_mode( 1 )
37 mousetimer -= d
38
39
40 func _pick( body, v, a, e, d ):
41 # _pick( body, vec, action { point = 0, start press = 1, start hold = 2, button press = 3 }, actionevent, delta )
42
43 # UI interaction
44 pos = get_global_transform().affine_inverse() * v
45 pos = Vector2( pos.x, pos.y )
46 # CollisionShape Nodes feed the parent CollisionObject Shapes. Here we are referencing a digested Shape, not a Node.
47 # It might be better structure to reference a CollisionShape Node but Node lookups bloat the code.
48 # In Godot 3.0 we will be able to use $ syntax and reference Nodes more directly like we are using the DOM.
49 var extents = get_shape( 0 ).get_extents()
50 pos.x = ( extents.x + pos.x ) * viewport.get_rect().size.x / ( extents.x * 2 )
51 pos.y = ( extents.y - pos.y ) * viewport.get_rect().size.y / ( extents.y * 2 )
52
53 # calculate relative_pos
54 if prev_pos == null: prev_pos = pos
55 var relative_pos = pos - prev_pos
56 prev_pos = pos
57
58 # send a preliminary MOUSE_MOTION event to ensure that everything gets passed
59 var moe = InputEvent()
60 moe.type = InputEvent.MOUSE_MOTION
61 moe.ID = 1 # because magic numbers
62 moe.pos = pos
63 moe.global_pos = pos
64 moe.relative_pos = relative_pos
65 if mouse == null:
66 mouse = Sprite.new()
67 mouse.set_texture( SelectCursor )
68 viewport.add_child( mouse )
69 mousetimer = mousewait
70 mouse.show()
71 mouse.set_pos( pos )
72 viewport.input( moe )
73
74 # mouse clicking
75
76 if e != null and e.type != InputEvent.MOUSE_MOTION:
77 if e.type == InputEvent.JOYSTICK_BUTTON:
78 # unable to unfocus from text fields for some reason
79 var click = InputEvent()
80 click.type = InputEvent.MOUSE_BUTTON
81 click.ID = 1 # because magic numbers
82 click.pos = pos
83 click.button_mask = BUTTON_MASK_LEFT
84 click.button_index = BUTTON_LEFT
85 click.pressed = e.pressed
86 viewport.input( click )
87 else:
88 if e.type == InputEvent.MOUSE_BUTTON:
89 e.pos = pos
90 e.global_pos = pos
91 e.button_mask = BUTTON_MASK_LEFT
92 e.button_index = BUTTON_LEFT
93 viewport.input( e )
94
95 viewport.set_render_target_update_mode( 1 )
File data/menu/menu.tscn added (mode: 100644) (index 0000000..1337823)
1 [gd_scene load_steps=7 format=1]
2
3 [ext_resource path="res://data/menu/ChicagoFLF.ttf" type="DynamicFontData" id=1]
4 [ext_resource path="res://data/gdscript/button_vr.gd" type="Script" id=2]
5 [ext_resource path="res://data/gdscript/button_quit.gd" type="Script" id=3]
6
7 [sub_resource type="DynamicFont" id=1]
8
9 font/size = 18
10 font/use_mipmaps = false
11 font/use_filter = false
12 font/font = ExtResource( 1 )
13
14 [sub_resource type="DynamicFont" id=2]
15
16 font/size = 18
17 font/use_mipmaps = false
18 font/use_filter = false
19 font/font = ExtResource( 1 )
20
21 [sub_resource type="DynamicFont" id=3]
22
23 font/size = 18
24 font/use_mipmaps = false
25 font/use_filter = false
26 font/font = ExtResource( 1 )
27
28 [node name="menu" type="Control"]
29
30 anchor/left = 2
31 anchor/top = 2
32 anchor/right = 2
33 anchor/bottom = 2
34 focus/ignore_mouse = false
35 focus/stop_mouse = true
36 size_flags/horizontal = 2
37 size_flags/vertical = 2
38 margin/left = 0.0
39 margin/top = 0.0
40 margin/right = 1.0
41 margin/bottom = 1.0
42
43 [node name="TabContainer" type="TabContainer" parent="."]
44
45 anchor/left = 2
46 anchor/top = 2
47 anchor/right = 2
48 anchor/bottom = 2
49 focus/ignore_mouse = false
50 focus/stop_mouse = true
51 size_flags/horizontal = 2
52 size_flags/vertical = 2
53 margin/left = 0.01
54 margin/top = 0.01
55 margin/right = 0.99
56 margin/bottom = 0.99
57 custom_fonts/font = SubResource( 1 )
58 tab_align = 1
59 tabs_visible = true
60
61 [node name="options" type="Control" parent="TabContainer"]
62
63 anchor/right = 1
64 anchor/bottom = 1
65 focus/ignore_mouse = false
66 focus/stop_mouse = true
67 size_flags/horizontal = 2
68 size_flags/vertical = 2
69 margin/left = 4.0
70 margin/top = 40.0
71 margin/right = 4.0
72 margin/bottom = 4.0
73
74 [node name="button_vr" type="Button" parent="TabContainer/options"]
75
76 anchor/left = 2
77 anchor/top = 2
78 anchor/right = 2
79 anchor/bottom = 2
80 focus/ignore_mouse = false
81 focus/stop_mouse = true
82 size_flags/horizontal = 2
83 size_flags/vertical = 2
84 margin/left = 0.0
85 margin/top = 0.3
86 margin/right = 1.0
87 margin/bottom = 0.5
88 custom_fonts/font = SubResource( 2 )
89 toggle_mode = false
90 click_on_press = true
91 enabled_focus_mode = 2
92 shortcut = null
93 text = "VR"
94 flat = false
95 script/script = ExtResource( 2 )
96 SaveFile = "vrmode.txt"
97
98 [node name="button_quit" type="Button" parent="TabContainer/options"]
99
100 anchor/left = 2
101 anchor/top = 2
102 anchor/right = 2
103 anchor/bottom = 2
104 focus/ignore_mouse = false
105 focus/stop_mouse = true
106 size_flags/horizontal = 2
107 size_flags/vertical = 2
108 margin/left = 0.0
109 margin/top = 0.5
110 margin/right = 1.0
111 margin/bottom = 0.7
112 custom_fonts/font = SubResource( 2 )
113 toggle_mode = false
114 click_on_press = true
115 enabled_focus_mode = 2
116 shortcut = null
117 text = "quit"
118 flat = false
119 script/script = ExtResource( 3 )
120
121 [node name="scoreboard" type="Label" parent="TabContainer"]
122
123 visibility/visible = false
124 anchor/right = 1
125 anchor/bottom = 1
126 focus/ignore_mouse = true
127 focus/stop_mouse = true
128 size_flags/horizontal = 2
129 size_flags/vertical = 0
130 margin/left = 4.0
131 margin/top = 40.0
132 margin/right = 4.0
133 margin/bottom = 4.0
134 custom_fonts/font = SubResource( 3 )
135 text = "Coming soon!"
136 align = 1
137 valign = 1
138 percent_visible = 1.0
139 lines_skipped = 0
140 max_lines_visible = -1
141
142
File data/menu/select.png added (mode: 100644) (index 0000000..8494d85)
File data/menu/select.svg added (mode: 100644) (index 0000000..dd45cba)
1 <?xml version="1.0" encoding="utf-8"?>
2 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="48" height="48">
3 <svg x="24" y="24">
4 <polygon points="0.5,1.5 0.5,22 5.84,16 13.5,16" fill="#000000" stroke="#ffffff" stroke-width="1" />
5 </svg>
6 </svg>
File data/menu/svg-render added (mode: 100755) (index 0000000..5733460)
1 #!/bin/sh
2
3 inkscape -z -e select.png select.svg
File data/menu/svg-render.bat added (mode: 100644) (index 0000000..3c17546)
1 @echo off
2
3 inkscape -z -e select.png select.svg
File data/scenes/doublevignette.png changed (mode: 100644) (index b1ed4b3..953a20c)
File data/scenes/skyhammer.tscn changed (mode: 100644) (index 7d57579..5a4ddf2)
1 [gd_scene load_steps=41 format=1]
1 [gd_scene load_steps=35 format=1]
2 2
3 3 [ext_resource path="res://data/cubemaps/night.cbm" type="CubeMap" id=1] [ext_resource path="res://data/cubemaps/night.cbm" type="CubeMap" id=1]
4 4 [ext_resource path="res://data/audio/wind.ogg" type="AudioStream" id=2] [ext_resource path="res://data/audio/wind.ogg" type="AudioStream" id=2]
 
6 6 [ext_resource path="res://data/gdscript/turret.gd" type="Script" id=4] [ext_resource path="res://data/gdscript/turret.gd" type="Script" id=4]
7 7 [ext_resource path="res://data/audio/bang.wav" type="Sample" id=5] [ext_resource path="res://data/audio/bang.wav" type="Sample" id=5]
8 8 [ext_resource path="res://data/scenes/gun.mtl" type="Material" id=6] [ext_resource path="res://data/scenes/gun.mtl" type="Material" id=6]
9 [ext_resource path="res://data/gdscript/button_vr.gd" type="Script" id=7]
10 [ext_resource path="res://data/audio/click.wav" type="Sample" id=8]
11 [ext_resource path="res://data/menu/whitesquare.png" type="Texture" id=9]
12 [ext_resource path="res://data/menu/ChicagoFLF.ttf" type="DynamicFontData" id=10]
13 [ext_resource path="res://data/gdscript/button_load.gd" type="Script" id=11]
14 [ext_resource path="res://data/gdscript/button_quit.gd" type="Script" id=12]
15 [ext_resource path="res://data/scenes/player.tscn" type="PackedScene" id=13]
16 [ext_resource path="res://data/scenes/snow.png" type="Texture" id=14]
17 [ext_resource path="res://data/scenes/ship.tscn" type="PackedScene" id=15]
9 [ext_resource path="res://data/gdscript/vrgui.gd" type="Script" id=7]
10 [ext_resource path="res://data/menu/select.png" type="Texture" id=8]
11 [ext_resource path="res://data/menu/menu.tscn" type="PackedScene" id=9]
12 [ext_resource path="res://data/scenes/player.tscn" type="PackedScene" id=10]
13 [ext_resource path="res://data/scenes/snow.png" type="Texture" id=11]
14 [ext_resource path="res://data/scenes/ship.tscn" type="PackedScene" id=12]
18 15
19 16 [sub_resource type="Environment" id=1] [sub_resource type="Environment" id=1]
20 17
 
... ... textures/shade_param_tc = 0
249 246
250 247 [sub_resource type="BoxShape" id=14] [sub_resource type="BoxShape" id=14]
251 248
252 extents = Vector3( 0.15, 0.4, 1.1 )
249 extents = Vector3( 0.3, 0.4, 1.1 )
253 250
254 251 [sub_resource type="BoxShape" id=15] [sub_resource type="BoxShape" id=15]
255 252
256 extents = Vector3( 0.15, 0.4, 1.1 )
253 extents = Vector3( 0.3, 0.4, 1.1 )
257 254
258 [sub_resource type="BoxShape" id=16]
259
260 extents = Vector3( 1.1, 0.4, 0.15 )
261
262 [sub_resource type="BoxShape" id=17]
263
264 extents = Vector3( 0.25, 0.25, 0 )
255 [sub_resource type="BoxShape" id=23]
265 256
266 [sub_resource type="SampleLibrary" id=18]
257 extents = Vector3( 1.1, 0.35, 0.3 )
267 258
268 samples/powerup = { "db":0.0, "pitch":1.0, "sample":ExtResource( 8 ) }
259 [sub_resource type="BoxShape" id=22]
269 260
270 [sub_resource type="FixedMaterial" id=19]
261 extents = Vector3( 0.45, 0.2, 0.2 )
271 262
272 flags/visible = true
273 flags/double_sided = false
274 flags/invert_faces = false
275 flags/unshaded = true
276 flags/on_top = false
277 flags/lightmap_on_uv2 = true
278 flags/colarray_is_srgb = true
279 params/blend_mode = 0
280 params/depth_draw = 1
281 params/line_width = 1.35926e-43
282 fixed_flags/use_alpha = true
283 fixed_flags/use_color_array = false
284 fixed_flags/use_point_size = false
285 fixed_flags/discard_alpha = false
286 fixed_flags/use_xy_normalmap = false
287 params/diffuse = Color( 1, 1, 1, 0.5 )
288 params/specular = Color( 0, 0, 0, 1 )
289 params/emission = Color( 0, 0, 0, 1 )
290 params/specular_exp = 40
291 params/detail_mix = 1.0
292 params/normal_depth = 1
293 params/shader = 0
294 params/shader_param = 0.5
295 params/glow = 0
296 params/point_size = 1.0
297 uv_xform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
298 textures/diffuse_tc = 0
299 textures/detail_tc = 0
300 textures/specular_tc = 0
301 textures/emission_tc = 0
302 textures/specular_exp_tc = 0
303 textures/glow_tc = 0
304 textures/normal_tc = 0
305 textures/shade_param_tc = 0
306
307 [sub_resource type="DynamicFont" id=20]
263 [sub_resource type="BoxShape" id=17]
308 264
309 font/size = 40
310 font/use_mipmaps = false
311 font/use_filter = false
312 font/font = ExtResource( 10 )
265 extents = Vector3( 0.28, 0.28, 0 )
313 266
314 [sub_resource type="FixedMaterial" id=21]
267 [sub_resource type="FixedMaterial" id=18]
315 268
316 269 flags/visible = true flags/visible = true
317 270 flags/double_sided = false flags/double_sided = false
 
... ... flags/unshaded = true
320 273 flags/on_top = false flags/on_top = false
321 274 flags/lightmap_on_uv2 = true flags/lightmap_on_uv2 = true
322 275 flags/colarray_is_srgb = true flags/colarray_is_srgb = true
323 params/blend_mode = 0
324 params/depth_draw = 1
325 params/line_width = 1.35926e-43
326 fixed_flags/use_alpha = true
327 fixed_flags/use_color_array = false
328 fixed_flags/use_point_size = false
329 fixed_flags/discard_alpha = false
330 fixed_flags/use_xy_normalmap = false
331 params/diffuse = Color( 1, 1, 1, 0.5 )
332 params/specular = Color( 0, 0, 0, 1 )
333 params/emission = Color( 0, 0, 0, 1 )
334 params/specular_exp = 40
335 params/detail_mix = 1.0
336 params/normal_depth = 1
337 params/shader = 0
338 params/shader_param = 0.5
339 params/glow = 0
340 params/point_size = 1.0
341 uv_xform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
342 textures/diffuse_tc = 0
343 textures/detail_tc = 0
344 textures/specular_tc = 0
345 textures/emission_tc = 0
346 textures/specular_exp_tc = 0
347 textures/glow_tc = 0
348 textures/normal_tc = 0
349 textures/shade_param_tc = 0
350
351 [sub_resource type="FixedMaterial" id=22]
352
353 flags/visible = true
354 flags/double_sided = false
355 flags/invert_faces = false
356 flags/unshaded = true
357 flags/on_top = false
358 flags/lightmap_on_uv2 = true
359 flags/colarray_is_srgb = true
360 params/blend_mode = 0
276 params/blend_mode = 1
361 277 params/depth_draw = 1 params/depth_draw = 1
362 278 params/line_width = 1.35926e-43 params/line_width = 1.35926e-43
363 fixed_flags/use_alpha = true
279 fixed_flags/use_alpha = false
364 280 fixed_flags/use_color_array = false fixed_flags/use_color_array = false
365 281 fixed_flags/use_point_size = false fixed_flags/use_point_size = false
366 282 fixed_flags/discard_alpha = false fixed_flags/discard_alpha = false
367 283 fixed_flags/use_xy_normalmap = false fixed_flags/use_xy_normalmap = false
368 params/diffuse = Color( 1, 1, 1, 0.5 )
284 params/diffuse = Color( 1, 1, 1, 1 )
369 285 params/specular = Color( 0, 0, 0, 1 ) params/specular = Color( 0, 0, 0, 1 )
370 286 params/emission = Color( 0, 0, 0, 1 ) params/emission = Color( 0, 0, 0, 1 )
371 287 params/specular_exp = 40 params/specular_exp = 40
 
... ... textures/glow_tc = 0
385 301 textures/normal_tc = 0 textures/normal_tc = 0
386 302 textures/shade_param_tc = 0 textures/shade_param_tc = 0
387 303
388 [sub_resource type="BoxShape" id=23]
304 [sub_resource type="BoxShape" id=19]
389 305
390 306 extents = Vector3( 64, 0, 64 ) extents = Vector3( 64, 0, 64 )
391 307
392 [sub_resource type="FixedMaterial" id=24]
308 [sub_resource type="FixedMaterial" id=20]
393 309
394 310 flags/visible = true flags/visible = true
395 311 flags/double_sided = false flags/double_sided = false
 
... ... params/shader_param = 0.5
417 333 params/glow = 0 params/glow = 0
418 334 params/point_size = 1.0 params/point_size = 1.0
419 335 uv_xform = Transform( 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0 ) uv_xform = Transform( 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0 )
420 textures/diffuse = ExtResource( 14 )
336 textures/diffuse = ExtResource( 11 )
421 337 textures/diffuse_tc = 1 textures/diffuse_tc = 1
422 338 textures/detail_tc = 0 textures/detail_tc = 0
423 339 textures/specular_tc = 0 textures/specular_tc = 0
 
... ... textures/glow_tc = 0
427 343 textures/normal_tc = 0 textures/normal_tc = 0
428 344 textures/shade_param_tc = 0 textures/shade_param_tc = 0
429 345
430 [sub_resource type="BoxShape" id=25]
346 [sub_resource type="BoxShape" id=21]
431 347
432 348 extents = Vector3( 1, 1, 1 ) extents = Vector3( 1, 1, 1 )
433 349
 
... ... material/0 = SubResource( 13 )
866 782
867 783 [node name="StaticBody" type="StaticBody" parent="turret"] [node name="StaticBody" type="StaticBody" parent="turret"]
868 784
869 editor/display_folded = true
870 785 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
871 786 input/ray_pickable = true input/ray_pickable = true
872 787 input/capture_on_drag = false input/capture_on_drag = false
873 shape_count = 3
788 shape_count = 7
874 789 shapes/0/shape = SubResource( 14 ) shapes/0/shape = SubResource( 14 )
875 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.4, 0 )
790 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.8739, 0.4, 0 )
876 791 shapes/0/trigger = false shapes/0/trigger = false
877 792 shapes/1/shape = SubResource( 15 ) shapes/1/shape = SubResource( 15 )
878 shapes/1/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.4, 0 )
793 shapes/1/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8739, 0.4, 0 )
879 794 shapes/1/trigger = false shapes/1/trigger = false
880 shapes/2/shape = SubResource( 16 )
881 shapes/2/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 1 )
795 shapes/2/shape = SubResource( 23 )
796 shapes/2/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.35, 0.8739 )
882 797 shapes/2/trigger = false shapes/2/trigger = false
798 shapes/3/shape = SubResource( 22 )
799 shapes/3/transform = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0.45 )
800 shapes/3/trigger = false
801 shapes/4/shape = SubResource( 22 )
802 shapes/4/transform = Transform( -1.15202e-07, -0.707107, 0.707107, -2.78123e-07, -0.707107, -0.707107, 1, -2.78123e-07, -1.15202e-07, 0.45, 0, 0 )
803 shapes/4/trigger = false
804 shapes/5/shape = SubResource( 22 )
805 shapes/5/transform = Transform( -1.15202e-07, -0.707107, 0.707107, -2.78123e-07, -0.707107, -0.707107, 1, -2.78123e-07, -1.15202e-07, -0.45, 0, 0 )
806 shapes/5/trigger = false
807 shapes/6/shape = SubResource( 22 )
808 shapes/6/transform = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, -0.45 )
809 shapes/6/trigger = false
883 810 collision/layers = 1 collision/layers = 1
884 811 collision/mask = 1 collision/mask = 1
885 812 friction = 1.0 friction = 1.0
 
... ... constant_angular_velocity = Vector3( 0, 0, 0 )
890 817 [node name="CollisionShape1" type="CollisionShape" parent="turret/StaticBody"] [node name="CollisionShape1" type="CollisionShape" parent="turret/StaticBody"]
891 818
892 819 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
893 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.4, 0 )
820 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.8739, 0.4, 0 )
894 821 shape = SubResource( 14 ) shape = SubResource( 14 )
895 822 trigger = false trigger = false
896 823 _update_shape_index = 0 _update_shape_index = 0
 
... ... _update_shape_index = 0
898 825 [node name="CollisionShape2" type="CollisionShape" parent="turret/StaticBody"] [node name="CollisionShape2" type="CollisionShape" parent="turret/StaticBody"]
899 826
900 827 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
901 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.4, 0 )
828 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8739, 0.4, 0 )
902 829 shape = SubResource( 15 ) shape = SubResource( 15 )
903 830 trigger = false trigger = false
904 831 _update_shape_index = 1 _update_shape_index = 1
 
... ... _update_shape_index = 1
906 833 [node name="CollisionShape3" type="CollisionShape" parent="turret/StaticBody"] [node name="CollisionShape3" type="CollisionShape" parent="turret/StaticBody"]
907 834
908 835 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
909 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 1 )
910 shape = SubResource( 16 )
836 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.35, 0.8739 )
837 shape = SubResource( 23 )
911 838 trigger = false trigger = false
912 839 _update_shape_index = 2 _update_shape_index = 2
913 840
914 [node name="button_vr" type="StaticBody" parent="turret"]
915
916 editor/display_folded = true
917 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
918 transform/local = Transform( -1.15202e-07, 0.707107, -0.707107, 4.77184e-08, 0.707107, 0.707107, 1, 4.77184e-08, -1.15202e-07, 0.9, 0.9, 0 )
919 input/ray_pickable = true
920 input/capture_on_drag = false
921 shape_count = 1
922 shapes/0/shape = SubResource( 17 )
923 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
924 shapes/0/trigger = false
925 collision/layers = 2
926 collision/mask = 2
927 friction = 1.0
928 bounce = 0.0
929 constant_linear_velocity = Vector3( 0, 0, 0 )
930 constant_angular_velocity = Vector3( 0, 0, 0 )
931 script/script = ExtResource( 7 )
932
933 [node name="sfx" type="SpatialSamplePlayer" parent="turret/button_vr"]
934
935 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
936 params/volume_db = 0.0
937 params/pitch_scale = 1.0
938 params/attenuation/min_distance = 1.0
939 params/attenuation/max_distance = 100.0
940 params/attenuation/distance_exp = 1.0
941 params/emission_cone/degrees = 180.0
942 params/emission_cone/attenuation_db = -6.0
943 config/polyphony = 1
944 config/samples = SubResource( 18 )
945
946 [node name="CollisionShape" type="CollisionShape" parent="turret/button_vr"]
841 [node name="PlayerBox1" type="CollisionShape" parent="turret/StaticBody"]
947 842
948 843 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
949 shape = SubResource( 17 )
844 transform/local = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0.45 )
845 shape = SubResource( 22 )
950 846 trigger = false trigger = false
951 _update_shape_index = 0
952
953 [node name="Quad" type="Quad" parent="turret/button_vr"]
954
955 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
956 layers = 1
957 geometry/visible = true
958 geometry/material_override = SubResource( 19 )
959 geometry/cast_shadow = 1
960 geometry/receive_shadows = true
961 geometry/range_begin = 0.0
962 geometry/range_end = 0.0
963 geometry/extra_cull_margin = 0.0
964 geometry/billboard = false
965 geometry/billboard_y = false
966 geometry/depth_scale = false
967 geometry/visible_in_all_rooms = false
968 geometry/use_baked_light = false
969 geometry/baked_light_tex_id = 0
970 quad/axis = 2
971 quad/size = Vector2( 0.5, 0.5 )
972 quad/offset = Vector2( 0, 0 )
973 quad/centered = true
974
975 [node name="Viewport" type="Viewport" parent="turret/button_vr"]
976
977 editor/display_folded = true
978 rect = Rect2( 0, 0, 256, 256 )
979 own_world = false
980 world = null
981 transparent_bg = false
982 render_target/enabled = true
983 render_target/v_flip = false
984 render_target/clear_on_new_frame = true
985 render_target/filter = true
986 render_target/gen_mipmaps = false
987 render_target/update_mode = 2
988 audio_listener/enable_2d = false
989 audio_listener/enable_3d = false
990 physics/object_picking = false
991 gui/disable_input = false
992
993 [node name="TextureFrame" type="TextureFrame" parent="turret/button_vr/Viewport"]
994
995 anchor/right = 1
996 anchor/bottom = 1
997 focus/ignore_mouse = true
998 focus/stop_mouse = true
999 size_flags/horizontal = 2
1000 size_flags/vertical = 2
1001 margin/left = 0.0
1002 margin/top = 0.0
1003 margin/right = 0.0
1004 margin/bottom = 0.0
1005 texture = ExtResource( 9 )
1006 modulate = Color( 1, 1, 0.945098, 1 )
1007 expand = true
1008 stretch_mode = 0
1009
1010 [node name="Label" type="Label" parent="turret/button_vr/Viewport"]
1011
1012 anchor/right = 1
1013 anchor/bottom = 1
1014 focus/ignore_mouse = true
1015 focus/stop_mouse = true
1016 size_flags/horizontal = 2
1017 size_flags/vertical = 0
1018 margin/left = 0.0
1019 margin/top = 0.0
1020 margin/right = 0.0
1021 margin/bottom = 0.0
1022 custom_fonts/font = SubResource( 20 )
1023 custom_colors/font_color = Color( 1, 1, 0.945098, 1 )
1024 custom_colors/font_color_shadow = Color( 0.247059, 0.247059, 0.247059, 1 )
1025 custom_constants/shadow_offset_x = 2
1026 custom_constants/shadow_offset_y = 2
1027 custom_constants/shadow_as_outline = 1
1028 text = ">^.^<"
1029 align = 1
1030 valign = 1
1031 autowrap = true
1032 percent_visible = 1.0
1033 lines_skipped = 0
1034 max_lines_visible = -1
1035
1036 [node name="button_load" type="StaticBody" parent="turret"]
1037
1038 editor/display_folded = true
1039 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1040 transform/local = Transform( -1, 3.25841e-07, 0, 2.30405e-07, 0.707107, 0.707107, 2.30405e-07, 0.707107, -0.707107, 0, 0.9, 0.9 )
1041 input/ray_pickable = true
1042 input/capture_on_drag = false
1043 shape_count = 1
1044 shapes/0/shape = SubResource( 17 )
1045 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1046 shapes/0/trigger = false
1047 collision/layers = 2
1048 collision/mask = 2
1049 friction = 1.0
1050 bounce = 0.0
1051 constant_linear_velocity = Vector3( 0, 0, 0 )
1052 constant_angular_velocity = Vector3( 0, 0, 0 )
1053 script/script = ExtResource( 11 )
847 _update_shape_index = 3
1054 848
1055 [node name="sfx" type="SpatialSamplePlayer" parent="turret/button_load"]
849 [node name="PlayerBox2" type="CollisionShape" parent="turret/StaticBody"]
1056 850
1057 851 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1058 params/volume_db = 0.0
1059 params/pitch_scale = 1.0
1060 params/attenuation/min_distance = 1.0
1061 params/attenuation/max_distance = 100.0
1062 params/attenuation/distance_exp = 1.0
1063 params/emission_cone/degrees = 180.0
1064 params/emission_cone/attenuation_db = -6.0
1065 config/polyphony = 1
1066 config/samples = SubResource( 18 )
852 transform/local = Transform( -1.15202e-07, -0.707107, 0.707107, -2.78123e-07, -0.707107, -0.707107, 1, -2.78123e-07, -1.15202e-07, 0.45, 0, 0 )
853 shape = SubResource( 22 )
854 trigger = false
855 _update_shape_index = 4
1067 856
1068 [node name="CollisionShape" type="CollisionShape" parent="turret/button_load"]
857 [node name="PlayerBox3" type="CollisionShape" parent="turret/StaticBody"]
1069 858
1070 859 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1071 shape = SubResource( 17 )
860 transform/local = Transform( -1.15202e-07, -0.707107, 0.707107, -2.78123e-07, -0.707107, -0.707107, 1, -2.78123e-07, -1.15202e-07, -0.45, 0, 0 )
861 shape = SubResource( 22 )
1072 862 trigger = false trigger = false
1073 _update_shape_index = 0
863 _update_shape_index = 5
1074 864
1075 [node name="Quad" type="Quad" parent="turret/button_load"]
865 [node name="PlayerBox4" type="CollisionShape" parent="turret/StaticBody"]
1076 866
1077 867 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1078 layers = 1
1079 geometry/visible = true
1080 geometry/material_override = SubResource( 21 )
1081 geometry/cast_shadow = 1
1082 geometry/receive_shadows = true
1083 geometry/range_begin = 0.0
1084 geometry/range_end = 0.0
1085 geometry/extra_cull_margin = 0.0
1086 geometry/billboard = false
1087 geometry/billboard_y = false
1088 geometry/depth_scale = false
1089 geometry/visible_in_all_rooms = false
1090 geometry/use_baked_light = false
1091 geometry/baked_light_tex_id = 0
1092 quad/axis = 2
1093 quad/size = Vector2( 0.5, 0.5 )
1094 quad/offset = Vector2( 0, 0 )
1095 quad/centered = true
1096
1097 [node name="Viewport" type="Viewport" parent="turret/button_load"]
1098
1099 editor/display_folded = true
1100 rect = Rect2( 0, 0, 256, 256 )
1101 own_world = false
1102 world = null
1103 transparent_bg = false
1104 render_target/enabled = true
1105 render_target/v_flip = false
1106 render_target/clear_on_new_frame = true
1107 render_target/filter = true
1108 render_target/gen_mipmaps = false
1109 render_target/update_mode = 2
1110 audio_listener/enable_2d = false
1111 audio_listener/enable_3d = false
1112 physics/object_picking = false
1113 gui/disable_input = false
868 transform/local = Transform( 1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, -0.45 )
869 shape = SubResource( 22 )
870 trigger = false
871 _update_shape_index = 6
1114 872
1115 [node name="TextureFrame" type="TextureFrame" parent="turret/button_load/Viewport"]
1116
1117 anchor/right = 1
1118 anchor/bottom = 1
1119 focus/ignore_mouse = true
1120 focus/stop_mouse = true
1121 size_flags/horizontal = 2
1122 size_flags/vertical = 2
1123 margin/left = 0.0
1124 margin/top = 0.0
1125 margin/right = 0.0
1126 margin/bottom = 0.0
1127 texture = ExtResource( 9 )
1128 modulate = Color( 1, 1, 0.945098, 1 )
1129 expand = true
1130 stretch_mode = 0
1131
1132 [node name="Label" type="Label" parent="turret/button_load/Viewport"]
1133
1134 anchor/right = 1
1135 anchor/bottom = 1
1136 focus/ignore_mouse = true
1137 focus/stop_mouse = true
1138 size_flags/horizontal = 2
1139 size_flags/vertical = 0
1140 margin/left = 0.0
1141 margin/top = 0.0
1142 margin/right = 0.0
1143 margin/bottom = 0.0
1144 custom_fonts/font = SubResource( 20 )
1145 custom_colors/font_color = Color( 1, 1, 0.945098, 1 )
1146 custom_colors/font_color_shadow = Color( 0.247059, 0.247059, 0.247059, 1 )
1147 custom_constants/shadow_offset_x = 2
1148 custom_constants/shadow_offset_y = 2
1149 custom_constants/shadow_as_outline = 1
1150 text = ">^.^<"
1151 align = 1
1152 valign = 1
1153 autowrap = true
1154 percent_visible = 1.0
1155 lines_skipped = 0
1156 max_lines_visible = -1
1157
1158 [node name="button_quit" type="StaticBody" parent="turret"]
873 [node name="screen" type="StaticBody" parent="turret"]
1159 874
1160 875 editor/display_folded = true editor/display_folded = true
1161 876 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1162 transform/local = Transform( -1.15202e-07, -0.707107, 0.707107, -4.77184e-08, 0.707107, 0.707107, -1, 4.77184e-08, -1.15202e-07, -0.9, 0.9, 0 )
877 transform/local = Transform( -1, 3.89414e-07, 0, 2.75358e-07, 0.707107, 0.707107, 2.75358e-07, 0.707107, -0.707107, 0, 0.9, 0.9 )
1163 878 input/ray_pickable = true input/ray_pickable = true
1164 879 input/capture_on_drag = false input/capture_on_drag = false
1165 880 shape_count = 1 shape_count = 1
 
... ... friction = 1.0
1172 887 bounce = 0.0 bounce = 0.0
1173 888 constant_linear_velocity = Vector3( 0, 0, 0 ) constant_linear_velocity = Vector3( 0, 0, 0 )
1174 889 constant_angular_velocity = Vector3( 0, 0, 0 ) constant_angular_velocity = Vector3( 0, 0, 0 )
1175 script/script = ExtResource( 12 )
890 script/script = ExtResource( 7 )
891 SelectCursor = ExtResource( 8 )
1176 892
1177 [node name="CollisionShape" type="CollisionShape" parent="turret/button_quit"]
893 [node name="CollisionShape" type="CollisionShape" parent="turret/screen"]
1178 894
1179 895 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1180 896 shape = SubResource( 17 ) shape = SubResource( 17 )
1181 897 trigger = false trigger = false
1182 898 _update_shape_index = 0 _update_shape_index = 0
1183 899
1184 [node name="Quad" type="Quad" parent="turret/button_quit"]
900 [node name="Quad" type="Quad" parent="turret/screen"]
1185 901
1186 902 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1187 903 layers = 1 layers = 1
1188 904 geometry/visible = true geometry/visible = true
1189 geometry/material_override = SubResource( 22 )
905 geometry/material_override = SubResource( 18 )
1190 906 geometry/cast_shadow = 1 geometry/cast_shadow = 1
1191 907 geometry/receive_shadows = true geometry/receive_shadows = true
1192 908 geometry/range_begin = 0.0 geometry/range_begin = 0.0
 
... ... geometry/visible_in_all_rooms = false
1199 915 geometry/use_baked_light = false geometry/use_baked_light = false
1200 916 geometry/baked_light_tex_id = 0 geometry/baked_light_tex_id = 0
1201 917 quad/axis = 2 quad/axis = 2
1202 quad/size = Vector2( 0.5, 0.5 )
918 quad/size = Vector2( 0.56, 0.56 )
1203 919 quad/offset = Vector2( 0, 0 ) quad/offset = Vector2( 0, 0 )
1204 920 quad/centered = true quad/centered = true
1205 921
1206 [node name="Viewport" type="Viewport" parent="turret/button_quit"]
922 [node name="Viewport" type="Viewport" parent="turret/screen"]
1207 923
1208 editor/display_folded = true
1209 924 rect = Rect2( 0, 0, 256, 256 ) rect = Rect2( 0, 0, 256, 256 )
1210 925 own_world = false own_world = false
1211 926 world = null world = null
 
... ... audio_listener/enable_3d = false
1221 936 physics/object_picking = false physics/object_picking = false
1222 937 gui/disable_input = false gui/disable_input = false
1223 938
1224 [node name="TextureFrame" type="TextureFrame" parent="turret/button_quit/Viewport"]
1225
1226 anchor/right = 1
1227 anchor/bottom = 1
1228 focus/ignore_mouse = true
1229 focus/stop_mouse = true
1230 size_flags/horizontal = 2
1231 size_flags/vertical = 2
1232 margin/left = 0.0
1233 margin/top = 0.0
1234 margin/right = 0.0
1235 margin/bottom = 0.0
1236 texture = ExtResource( 9 )
1237 modulate = Color( 1, 1, 0.945098, 1 )
1238 expand = true
1239 stretch_mode = 0
1240
1241 [node name="Label" type="Label" parent="turret/button_quit/Viewport"]
1242
1243 anchor/right = 1
1244 anchor/bottom = 1
1245 focus/ignore_mouse = true
1246 focus/stop_mouse = true
1247 size_flags/horizontal = 2
1248 size_flags/vertical = 0
1249 margin/left = 0.0
1250 margin/top = 0.0
1251 margin/right = 0.0
1252 margin/bottom = 0.0
1253 custom_fonts/font = SubResource( 20 )
1254 custom_colors/font_color = Color( 1, 1, 0.945098, 1 )
1255 custom_colors/font_color_shadow = Color( 0.247059, 0.247059, 0.247059, 1 )
1256 custom_constants/shadow_offset_x = 2
1257 custom_constants/shadow_offset_y = 2
1258 custom_constants/shadow_as_outline = 1
1259 text = ">^.^<"
1260 align = 1
1261 valign = 1
1262 autowrap = true
1263 percent_visible = 1.0
1264 lines_skipped = 0
1265 max_lines_visible = -1
1266
1267 [node name="Player" parent="." instance=ExtResource( 13 )]
939 [node name="menu" parent="turret/screen/Viewport" instance=ExtResource( 9 )]
940
941 [node name="Player" parent="." instance=ExtResource( 10 )]
1268 942
1269 943 [node name="Ground" type="StaticBody" parent="."] [node name="Ground" type="StaticBody" parent="."]
1270 944
 
... ... _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1273 947 input/ray_pickable = true input/ray_pickable = true
1274 948 input/capture_on_drag = false input/capture_on_drag = false
1275 949 shape_count = 1 shape_count = 1
1276 shapes/0/shape = SubResource( 23 )
950 shapes/0/shape = SubResource( 19 )
1277 951 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1278 952 shapes/0/trigger = false shapes/0/trigger = false
1279 953 collision/layers = 1 collision/layers = 1
 
... ... _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1289 963 transform/local = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 ) transform/local = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 )
1290 964 layers = 1 layers = 1
1291 965 geometry/visible = true geometry/visible = true
1292 geometry/material_override = SubResource( 24 )
966 geometry/material_override = SubResource( 20 )
1293 967 geometry/cast_shadow = 1 geometry/cast_shadow = 1
1294 968 geometry/receive_shadows = true geometry/receive_shadows = true
1295 969 geometry/range_begin = 0.0 geometry/range_begin = 0.0
 
... ... quad/centered = true
1309 983 [node name="CollisionShape" type="CollisionShape" parent="Ground"] [node name="CollisionShape" type="CollisionShape" parent="Ground"]
1310 984
1311 985 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1312 shape = SubResource( 23 )
986 shape = SubResource( 19 )
1313 987 trigger = false trigger = false
1314 988 _update_shape_index = 0 _update_shape_index = 0
1315 989
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97637, 6.60166 )
1346 1020 input/ray_pickable = true input/ray_pickable = true
1347 1021 input/capture_on_drag = false input/capture_on_drag = false
1348 1022 shape_count = 1 shape_count = 1
1349 shapes/0/shape = SubResource( 25 )
1023 shapes/0/shape = SubResource( 21 )
1350 1024 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1351 1025 shapes/0/trigger = false shapes/0/trigger = false
1352 1026 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1389 1063 [node name="CollisionShape" type="CollisionShape" parent="RigidBody"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody"]
1390 1064
1391 1065 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1392 shape = SubResource( 25 )
1066 shape = SubResource( 21 )
1393 1067 trigger = false trigger = false
1394 1068 _update_shape_index = 0 _update_shape_index = 0
1395 1069
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.93106, 6.60166 )
1401 1075 input/ray_pickable = true input/ray_pickable = true
1402 1076 input/capture_on_drag = false input/capture_on_drag = false
1403 1077 shape_count = 1 shape_count = 1
1404 shapes/0/shape = SubResource( 25 )
1078 shapes/0/shape = SubResource( 21 )
1405 1079 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1406 1080 shapes/0/trigger = false shapes/0/trigger = false
1407 1081 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1444 1118 [node name="CollisionShape" type="CollisionShape" parent="RigidBody1"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody1"]
1445 1119
1446 1120 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1447 shape = SubResource( 25 )
1121 shape = SubResource( 21 )
1448 1122 trigger = false trigger = false
1449 1123 _update_shape_index = 0 _update_shape_index = 0
1450 1124
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.09034, 6.60166 )
1456 1130 input/ray_pickable = true input/ray_pickable = true
1457 1131 input/capture_on_drag = false input/capture_on_drag = false
1458 1132 shape_count = 1 shape_count = 1
1459 shapes/0/shape = SubResource( 25 )
1133 shapes/0/shape = SubResource( 21 )
1460 1134 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1461 1135 shapes/0/trigger = false shapes/0/trigger = false
1462 1136 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1499 1173 [node name="CollisionShape" type="CollisionShape" parent="RigidBody2"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody2"]
1500 1174
1501 1175 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1502 shape = SubResource( 25 )
1176 shape = SubResource( 21 )
1503 1177 trigger = false trigger = false
1504 1178 _update_shape_index = 0 _update_shape_index = 0
1505 1179
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 12.0129, 6.60166 )
1511 1185 input/ray_pickable = true input/ray_pickable = true
1512 1186 input/capture_on_drag = false input/capture_on_drag = false
1513 1187 shape_count = 1 shape_count = 1
1514 shapes/0/shape = SubResource( 25 )
1188 shapes/0/shape = SubResource( 21 )
1515 1189 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1516 1190 shapes/0/trigger = false shapes/0/trigger = false
1517 1191 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1554 1228 [node name="CollisionShape" type="CollisionShape" parent="RigidBody3"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody3"]
1555 1229
1556 1230 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1557 shape = SubResource( 25 )
1231 shape = SubResource( 21 )
1558 1232 trigger = false trigger = false
1559 1233 _update_shape_index = 0 _update_shape_index = 0
1560 1234
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 1.42432, 6.6016
1566 1240 input/ray_pickable = true input/ray_pickable = true
1567 1241 input/capture_on_drag = false input/capture_on_drag = false
1568 1242 shape_count = 1 shape_count = 1
1569 shapes/0/shape = SubResource( 25 )
1243 shapes/0/shape = SubResource( 21 )
1570 1244 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1571 1245 shapes/0/trigger = false shapes/0/trigger = false
1572 1246 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1609 1283 [node name="CollisionShape" type="CollisionShape" parent="RigidBody8"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody8"]
1610 1284
1611 1285 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1612 shape = SubResource( 25 )
1286 shape = SubResource( 21 )
1613 1287 trigger = false trigger = false
1614 1288 _update_shape_index = 0 _update_shape_index = 0
1615 1289
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 3.77197, 6.6016
1621 1295 input/ray_pickable = true input/ray_pickable = true
1622 1296 input/capture_on_drag = false input/capture_on_drag = false
1623 1297 shape_count = 1 shape_count = 1
1624 shapes/0/shape = SubResource( 25 )
1298 shapes/0/shape = SubResource( 21 )
1625 1299 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1626 1300 shapes/0/trigger = false shapes/0/trigger = false
1627 1301 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1664 1338 [node name="CollisionShape" type="CollisionShape" parent="RigidBody9"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody9"]
1665 1339
1666 1340 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1667 shape = SubResource( 25 )
1341 shape = SubResource( 21 )
1668 1342 trigger = false trigger = false
1669 1343 _update_shape_index = 0 _update_shape_index = 0
1670 1344
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 6.41958, 6.6016
1676 1350 input/ray_pickable = true input/ray_pickable = true
1677 1351 input/capture_on_drag = false input/capture_on_drag = false
1678 1352 shape_count = 1 shape_count = 1
1679 shapes/0/shape = SubResource( 25 )
1353 shapes/0/shape = SubResource( 21 )
1680 1354 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1681 1355 shapes/0/trigger = false shapes/0/trigger = false
1682 1356 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1719 1393 [node name="CollisionShape" type="CollisionShape" parent="RigidBody10"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody10"]
1720 1394
1721 1395 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1722 shape = SubResource( 25 )
1396 shape = SubResource( 21 )
1723 1397 trigger = false trigger = false
1724 1398 _update_shape_index = 0 _update_shape_index = 0
1725 1399
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 9.44403, 6.6016
1731 1405 input/ray_pickable = true input/ray_pickable = true
1732 1406 input/capture_on_drag = false input/capture_on_drag = false
1733 1407 shape_count = 1 shape_count = 1
1734 shapes/0/shape = SubResource( 25 )
1408 shapes/0/shape = SubResource( 21 )
1735 1409 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1736 1410 shapes/0/trigger = false shapes/0/trigger = false
1737 1411 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1774 1448 [node name="CollisionShape" type="CollisionShape" parent="RigidBody11"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody11"]
1775 1449
1776 1450 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1777 shape = SubResource( 25 )
1451 shape = SubResource( 21 )
1778 1452 trigger = false trigger = false
1779 1453 _update_shape_index = 0 _update_shape_index = 0
1780 1454
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 12.045, 6.60166
1786 1460 input/ray_pickable = true input/ray_pickable = true
1787 1461 input/capture_on_drag = false input/capture_on_drag = false
1788 1462 shape_count = 1 shape_count = 1
1789 shapes/0/shape = SubResource( 25 )
1463 shapes/0/shape = SubResource( 21 )
1790 1464 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1791 1465 shapes/0/trigger = false shapes/0/trigger = false
1792 1466 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1829 1503 [node name="CollisionShape" type="CollisionShape" parent="RigidBody12"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody12"]
1830 1504
1831 1505 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1832 shape = SubResource( 25 )
1506 shape = SubResource( 21 )
1833 1507 trigger = false trigger = false
1834 1508 _update_shape_index = 0 _update_shape_index = 0
1835 1509
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 15.0533, 6.6016
1841 1515 input/ray_pickable = true input/ray_pickable = true
1842 1516 input/capture_on_drag = false input/capture_on_drag = false
1843 1517 shape_count = 1 shape_count = 1
1844 shapes/0/shape = SubResource( 25 )
1518 shapes/0/shape = SubResource( 21 )
1845 1519 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1846 1520 shapes/0/trigger = false shapes/0/trigger = false
1847 1521 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1884 1558 [node name="CollisionShape" type="CollisionShape" parent="RigidBody13"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody13"]
1885 1559
1886 1560 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1887 shape = SubResource( 25 )
1561 shape = SubResource( 21 )
1888 1562 trigger = false trigger = false
1889 1563 _update_shape_index = 0 _update_shape_index = 0
1890 1564
 
... ... transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2359, 18.0287, 6.6016
1896 1570 input/ray_pickable = true input/ray_pickable = true
1897 1571 input/capture_on_drag = false input/capture_on_drag = false
1898 1572 shape_count = 1 shape_count = 1
1899 shapes/0/shape = SubResource( 25 )
1573 shapes/0/shape = SubResource( 21 )
1900 1574 shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) shapes/0/transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1901 1575 shapes/0/trigger = false shapes/0/trigger = false
1902 1576 collision/layers = 1 collision/layers = 1
 
... ... geometry/baked_light_tex_id = 0
1939 1613 [node name="CollisionShape" type="CollisionShape" parent="RigidBody14"] [node name="CollisionShape" type="CollisionShape" parent="RigidBody14"]
1940 1614
1941 1615 _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
1942 shape = SubResource( 25 )
1616 shape = SubResource( 21 )
1943 1617 trigger = false trigger = false
1944 1618 _update_shape_index = 0 _update_shape_index = 0
1945 1619
1946 [node name="Ship" parent="." instance=ExtResource( 15 )]
1620 [node name="Ship" parent="." instance=ExtResource( 12 )]
1947 1621
1948 1622 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.56418, 4.87719, 0 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.56418, 4.87719, 0 )
1949 1623
1950 [node name="Ship1" parent="." instance=ExtResource( 15 )]
1624 [node name="Ship1" parent="." instance=ExtResource( 12 )]
1951 1625
1952 1626 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.578, 4.87719, 0 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.578, 4.87719, 0 )
1953 1627
1954 [node name="Ship2" parent="." instance=ExtResource( 15 )]
1628 [node name="Ship2" parent="." instance=ExtResource( 12 )]
1955 1629
1956 1630 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.578, 4.87719, 22.5237 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.578, 4.87719, 22.5237 )
1957 1631
1958 [node name="Ship3" parent="." instance=ExtResource( 15 )]
1632 [node name="Ship3" parent="." instance=ExtResource( 12 )]
1959 1633
1960 1634 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84031, 4.87719, 22.5237 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84031, 4.87719, 22.5237 )
1961 1635
1962 [node name="Ship4" parent="." instance=ExtResource( 15 )]
1636 [node name="Ship4" parent="." instance=ExtResource( 12 )]
1963 1637
1964 1638 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84031, 7.63309, 22.5237 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84031, 7.63309, 22.5237 )
1965 1639
1966 [node name="Ship5" parent="." instance=ExtResource( 15 )]
1640 [node name="Ship5" parent="." instance=ExtResource( 12 )]
1967 1641
1968 1642 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84031, 10.859, 22.5237 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84031, 10.859, 22.5237 )
1969 1643
1970 [node name="Ship6" parent="." instance=ExtResource( 15 )]
1644 [node name="Ship6" parent="." instance=ExtResource( 12 )]
1971 1645
1972 1646 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.49823, 10.859, 22.5237 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.49823, 10.859, 22.5237 )
1973 1647
1974 [node name="Ship7" parent="." instance=ExtResource( 15 )]
1648 [node name="Ship7" parent="." instance=ExtResource( 12 )]
1975 1649
1976 1650 transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.49823, 10.859, -18.3923 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.49823, 10.859, -18.3923 )
1977 1651
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/fluffrabbit/SkyHammer

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/fluffrabbit/SkyHammer

Clone this repository using git:
git clone git://git.rocketgit.com/user/fluffrabbit/SkyHammer

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main