Compare commits
No commits in common. "main" and "v0.1-base0.2" have entirely different histories.
main
...
v0.1-base0
83 changed files with 374 additions and 1824 deletions
Binary file not shown.
|
@ -1,37 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://dnnh3726ejxs1"
|
|
||||||
path="res://.godot/imported/cec_backdrop.glb-7dfa8109f280a6723a117ec5c363df71.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/cec_backdrop.glb"
|
|
||||||
dest_files=["res://.godot/imported/cec_backdrop.glb-7dfa8109f280a6723a117ec5c363df71.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=false
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={}
|
|
||||||
gltf/naming_version=1
|
|
||||||
gltf/embedded_image_handling=1
|
|
Binary file not shown.
Before Width: | Height: | Size: 245 B |
|
@ -1,39 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dp2bm2kkkcfds"
|
|
||||||
path.s3tc="res://.godot/imported/cec_backdrop_cec_backdrop.png-01108194e777c148c5af3efd1d5a46aa.s3tc.ctex"
|
|
||||||
path.etc2="res://.godot/imported/cec_backdrop_cec_backdrop.png-01108194e777c148c5af3efd1d5a46aa.etc2.ctex"
|
|
||||||
metadata={
|
|
||||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
|
||||||
"vram_texture": true
|
|
||||||
}
|
|
||||||
generator_parameters={
|
|
||||||
"md5": "8c8abda7df5f5793750b45344a7fc19b"
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/cec_backdrop_cec_backdrop.png"
|
|
||||||
dest_files=["res://.godot/imported/cec_backdrop_cec_backdrop.png-01108194e777c148c5af3efd1d5a46aa.s3tc.ctex", "res://.godot/imported/cec_backdrop_cec_backdrop.png-01108194e777c148c5af3efd1d5a46aa.etc2.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=2
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=true
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=0
|
|
Binary file not shown.
|
@ -1,37 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://cq2wi8obnaf2h"
|
|
||||||
path="res://.godot/imported/fiberoptic.glb-f08df4d792a6128b643c6ed01dc94275.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/fiberoptic.glb"
|
|
||||||
dest_files=["res://.godot/imported/fiberoptic.glb-f08df4d792a6128b643c6ed01dc94275.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=false
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={}
|
|
||||||
gltf/naming_version=1
|
|
||||||
gltf/embedded_image_handling=1
|
|
Binary file not shown.
|
@ -1,37 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://ws774w4ve4i7"
|
|
||||||
path="res://.godot/imported/neonbg.glb-4b46cb009bcca4494749b8906495c4f6.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/neonbg.glb"
|
|
||||||
dest_files=["res://.godot/imported/neonbg.glb-4b46cb009bcca4494749b8906495c4f6.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=false
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={}
|
|
||||||
gltf/naming_version=1
|
|
||||||
gltf/embedded_image_handling=1
|
|
Binary file not shown.
|
@ -1,37 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://l8835lbh2wxj"
|
|
||||||
path="res://.godot/imported/neonsign.glb-b52cac252b032f0e05e5763105d384d9.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/neonsign.glb"
|
|
||||||
dest_files=["res://.godot/imported/neonsign.glb-b52cac252b032f0e05e5763105d384d9.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=false
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={}
|
|
||||||
gltf/naming_version=1
|
|
||||||
gltf/embedded_image_handling=1
|
|
Binary file not shown.
|
@ -1,37 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://ue6jf5fu172y"
|
|
||||||
path="res://.godot/imported/planter.glb-7034f185c30c74f1b0cccf6dfdf6ecd9.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/planter.glb"
|
|
||||||
dest_files=["res://.godot/imported/planter.glb-7034f185c30c74f1b0cccf6dfdf6ecd9.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=false
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={}
|
|
||||||
gltf/naming_version=1
|
|
||||||
gltf/embedded_image_handling=1
|
|
Binary file not shown.
Before Width: | Height: | Size: 608 B |
|
@ -1,39 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://ctjqsq2uts3xu"
|
|
||||||
path.s3tc="res://.godot/imported/planter_planter.png-307fdd5d086318c21760a0176a483a24.s3tc.ctex"
|
|
||||||
path.etc2="res://.godot/imported/planter_planter.png-307fdd5d086318c21760a0176a483a24.etc2.ctex"
|
|
||||||
metadata={
|
|
||||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
|
||||||
"vram_texture": true
|
|
||||||
}
|
|
||||||
generator_parameters={
|
|
||||||
"md5": "eca03402e7f1f2bab1fd9e39375da66f"
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Models/Props/planter_planter.png"
|
|
||||||
dest_files=["res://.godot/imported/planter_planter.png-307fdd5d086318c21760a0176a483a24.s3tc.ctex", "res://.godot/imported/planter_planter.png-307fdd5d086318c21760a0176a483a24.etc2.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=2
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=true
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=0
|
|
|
@ -1,17 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://lossothjt5ye"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_db1pk"]
|
|
||||||
[ext_resource type="Script" uid="uid://bmukxrwmoyc20" path="res://Scripts/GL_Audio.gd" id="2_db1pk"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_db1pk")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Outputs the path to an audio source saved in the workspace. Does not output live audio- playback on nodes this is plugged into must be handled by a Timeline node or similar."
|
|
||||||
script = ExtResource("2_db1pk")
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,21 +1,21 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://b03x861ratqbj"]
|
[gd_scene load_steps=3 format=3 uid="uid://clg5syeixvogd"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_uifvy"]
|
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_h7qb1"]
|
||||||
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_nkf8v"]
|
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_p5wec"]
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
[node name="Node" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
mouse_filter = 1
|
mouse_filter = 1
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_uifvy")]
|
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_h7qb1")]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
tooltip_text = "Outputs audio directly to your device speakers."
|
tooltip_text = "Controls the spotlight for Chuck E."
|
||||||
script = ExtResource("2_nkf8v")
|
script = ExtResource("2_p5wec")
|
||||||
identification = "DIRECT_OUTPUT"
|
identification = "L_SPOT_CHUCK"
|
||||||
names = PackedStringArray("Audio", "Volume", "Current Time")
|
visual_name = "Chuck E. Spotlight"
|
||||||
types = PackedStringArray("audio", "float", "float")
|
names = PackedStringArray("enabled")
|
||||||
visual_name = "Direct Output"
|
types = PackedStringArray("bool")
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
@ -18,9 +18,9 @@ layout_mode = 0
|
||||||
tooltip_text = "Cyberamic Chuck E. Cheese animatronic featuring the late 2000s/Avenger era outfit"
|
tooltip_text = "Cyberamic Chuck E. Cheese animatronic featuring the late 2000s/Avenger era outfit"
|
||||||
script = ExtResource("2_icn0g")
|
script = ExtResource("2_icn0g")
|
||||||
identification = "AA_CYBERCHUCK"
|
identification = "AA_CYBERCHUCK"
|
||||||
|
visual_name = "Chuck E. (Avenger)"
|
||||||
names = PackedStringArray("Mouth", "Head Up", "Head Right", "Head Left", "Eyes Right", "Eyes Left", "Eyelids", "Right Arm")
|
names = PackedStringArray("Mouth", "Head Up", "Head Right", "Head Left", "Eyes Right", "Eyes Left", "Eyelids", "Right Arm")
|
||||||
types = PackedStringArray("bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool")
|
types = PackedStringArray("bool", "bool", "bool", "bool", "bool", "bool", "bool", "bool")
|
||||||
visual_name = "Chuck E. (Avenger)"
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
21
Scenes/Node Types/HelenSpot.tscn
Normal file
21
Scenes/Node Types/HelenSpot.tscn
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://dxay21t1j6ha1"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_yl6vg"]
|
||||||
|
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_im8jh"]
|
||||||
|
|
||||||
|
[node name="Node" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
mouse_filter = 1
|
||||||
|
|
||||||
|
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_yl6vg")]
|
||||||
|
layout_mode = 0
|
||||||
|
tooltip_text = "Controls the spotlight for Helen."
|
||||||
|
script = ExtResource("2_im8jh")
|
||||||
|
identification = "L_SPOT_HELEN"
|
||||||
|
visual_name = "Helen Spotlight"
|
||||||
|
names = PackedStringArray("enabled")
|
||||||
|
types = PackedStringArray("bool")
|
||||||
|
|
||||||
|
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
||||||
|
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
@ -1,24 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://v11jtjcic5e0"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_mdqqi"]
|
|
||||||
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_h17tg"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_mdqqi")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Controls the spotlights."
|
|
||||||
script = ExtResource("2_h17tg")
|
|
||||||
identification = "L_BACKDROP"
|
|
||||||
names = PackedStringArray("Amber", "Red", "Blue")
|
|
||||||
types = PackedStringArray("bool", "bool", "bool")
|
|
||||||
visual_name = "Backdrop Lights"
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,24 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://b47n0xh71tx2g"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_hcao3"]
|
|
||||||
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_30uk6"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_hcao3")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Controls the spotlights."
|
|
||||||
script = ExtResource("2_30uk6")
|
|
||||||
identification = "L_FLOODS"
|
|
||||||
names = PackedStringArray("Main Stage/Amber", "Main Stage/Red", "Main Stage/Blue", "CEC Stage/Amber", "CEC Stage/Red", "CEC Stage/Blue")
|
|
||||||
types = PackedStringArray("bool", "bool", "bool", "bool", "bool", "bool")
|
|
||||||
visual_name = "Floodlights"
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,24 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://ml5h3rcxr8lv"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_5qdpb"]
|
|
||||||
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_xq4be"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_5qdpb")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Controls the spotlights."
|
|
||||||
script = ExtResource("2_xq4be")
|
|
||||||
identification = "L_MISC"
|
|
||||||
names = PackedStringArray("CEC Neon Sign", "CEC Star", "Band Sign", "Strobe", "Drum", "Fiber Curtain")
|
|
||||||
types = PackedStringArray("bool", "bool", "bool", "bool", "bool", "bool")
|
|
||||||
visual_name = "Misc Lights"
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,24 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://ckmerxdu6ogua"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_g3eqq"]
|
|
||||||
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_cqful"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_g3eqq")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Controls the spotlights."
|
|
||||||
script = ExtResource("2_cqful")
|
|
||||||
identification = "L_ORGAN"
|
|
||||||
names = PackedStringArray("Face 1", "Face 2", "Outer", "Middle", "Inner")
|
|
||||||
types = PackedStringArray("bool", "bool", "bool", "bool", "bool")
|
|
||||||
visual_name = "Organ Lights"
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,24 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://fynpnwbb07m2"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_mie5e"]
|
|
||||||
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_cinl3"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_mie5e")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Controls the spotlights."
|
|
||||||
script = ExtResource("2_cinl3")
|
|
||||||
identification = "L_SPOTLIGHTS"
|
|
||||||
names = PackedStringArray("Chuck", "Helen", "Munch", "Jasper", "Pasqually", "Wink")
|
|
||||||
types = PackedStringArray("bool", "bool", "bool", "bool", "bool", "bool")
|
|
||||||
visual_name = "Spotlights"
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,17 +1,17 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://c3ygi6en4vak6"]
|
[gd_scene load_steps=3 format=3 uid="uid://cobd87j1kub76"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_88lwk"]
|
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_m8mov"]
|
||||||
[ext_resource type="Script" uid="uid://fui0f05i5l6c" path="res://Scripts/GL_Add.gd" id="2_88lwk"]
|
[ext_resource type="Script" uid="uid://bj0lla8757tnh" path="res://Scripts/GL_MiscKeys.gd" id="2_m8mov"]
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
[node name="Node" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
mouse_filter = 1
|
mouse_filter = 1
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_88lwk")]
|
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_m8mov")]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
tooltip_text = "Adds two floats together."
|
tooltip_text = "Sets a bool for any of the number keys that are pressed."
|
||||||
script = ExtResource("2_88lwk")
|
script = ExtResource("2_m8mov")
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
@ -1,17 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://b83i85vl6gd01"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_njggm"]
|
|
||||||
[ext_resource type="Script" uid="uid://beit3xudynjdl" path="res://Scripts/GL_Mix_Floats.gd" id="2_njggm"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_njggm")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Mixes two floats (numbers) together using the 'Factor', with 0.0 being fully Float A, and 1.0 being fully Float B."
|
|
||||||
script = ExtResource("2_njggm")
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://d2da0nd32yqo7"]
|
[gd_scene load_steps=3 format=3 uid="uid://bhkp4bfwm1agf"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_o85ib"]
|
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_o85ib"]
|
||||||
[ext_resource type="Script" uid="uid://y8j8wap2o4oe" path="res://Scripts/GL_Mouse_Wheel.gd" id="2_o85ib"]
|
[ext_resource type="Script" uid="uid://y8j8wap2o4oe" path="res://Scripts/GL_Mouse_Wheel.gd" id="2_o85ib"]
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://bwcuye45ift61"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_5vmnd"]
|
|
||||||
[ext_resource type="Script" uid="uid://bmnxkp7ge8wu1" path="res://Scripts/GL_Multiply.gd" id="2_5vmnd"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_5vmnd")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Multiplies two floats together."
|
|
||||||
script = ExtResource("2_5vmnd")
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
21
Scenes/Node Types/MunchSpot.tscn
Normal file
21
Scenes/Node Types/MunchSpot.tscn
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://bctoupn4y25nl"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_iphig"]
|
||||||
|
[ext_resource type="Script" uid="uid://t8bsiegtsiwo" path="res://Scripts/GL_Output.gd" id="2_5o0li"]
|
||||||
|
|
||||||
|
[node name="Node" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
mouse_filter = 1
|
||||||
|
|
||||||
|
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_iphig")]
|
||||||
|
layout_mode = 0
|
||||||
|
tooltip_text = "Controls the spotlight for Mr. Munch."
|
||||||
|
script = ExtResource("2_5o0li")
|
||||||
|
identification = "L_SPOT_MUNCH"
|
||||||
|
visual_name = "Mr. Munch Spotlight"
|
||||||
|
names = PackedStringArray("enabled")
|
||||||
|
types = PackedStringArray("bool")
|
||||||
|
|
||||||
|
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
||||||
|
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
@ -1,17 +1,17 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://i553pel70wdq"]
|
[gd_scene load_steps=3 format=3 uid="uid://jmwqwspljwjc"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_ua37n"]
|
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_nt2x2"]
|
||||||
[ext_resource type="Script" uid="uid://e6v6exlrhtaq" path="res://Scripts/GL_Keystrokes.gd" id="2_ua37n"]
|
[ext_resource type="Script" uid="uid://e6v6exlrhtaq" path="res://Scripts/GL_NumberKeys.gd" id="2_gnbp1"]
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
[node name="Node" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
mouse_filter = 1
|
mouse_filter = 1
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_ua37n")]
|
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_nt2x2")]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
tooltip_text = "Sets a bool for any of the number keys that are pressed."
|
tooltip_text = "Sets a bool for any of the number keys that are pressed."
|
||||||
script = ExtResource("2_ua37n")
|
script = ExtResource("2_gnbp1")
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
@ -1,17 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://dk4kpw62fma4m"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_vak63"]
|
|
||||||
[ext_resource type="Script" uid="uid://bxaml7g17kutm" path="res://Scripts/GL_Subtract.gd" id="2_vak63"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_vak63")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Subtracts Float B from Float A."
|
|
||||||
script = ExtResource("2_vak63")
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,17 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://eoidlfg4tkux"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_mx713"]
|
|
||||||
[ext_resource type="Script" uid="uid://dvk3lfcqg4nwr" path="res://Scripts/GL_Switch_Audio.gd" id="2_mx713"]
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_mx713")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "Toggles between two audio sources using the 'Toggle' input."
|
|
||||||
script = ExtResource("2_mx713")
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -1,39 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://bjrk63xu7w0g8"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0arjg8r75f8y" path="res://Scenes/Nodes/Node.tscn" id="1_ttgyh"]
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_fy4sf"]
|
|
||||||
script/source = "extends GL_Node
|
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title(\"Toggle\")
|
|
||||||
_create_row(\"\",true,true,false,false,0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
for key in rows:
|
|
||||||
rows[key][\"output\"] = rows[key][\"input\"]
|
|
||||||
apply_pick_values()
|
|
||||||
|
|
||||||
if rows[\"On\"][\"output\"] == true:
|
|
||||||
rows[\"Value\"][\"output\"] = 1 - rows[\"Value\"][\"input\"]
|
|
||||||
else:
|
|
||||||
rows[\"Value\"][\"output\"] = rows[\"Value\"][\"input\"]
|
|
||||||
_send_input(\"Value\")
|
|
||||||
"
|
|
||||||
|
|
||||||
[node name="Node" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="Node" parent="." groups=["GL Node"] instance=ExtResource("1_ttgyh")]
|
|
||||||
layout_mode = 0
|
|
||||||
tooltip_text = "When triggered, output will be enabled and held until another trigger."
|
|
||||||
script = SubResource("GDScript_fy4sf")
|
|
||||||
|
|
||||||
[connection signal="mouse_entered" from="Node" to="Node" method="mouse_enter"]
|
|
||||||
[connection signal="mouse_exited" from="Node" to="Node" method="mouse_exit"]
|
|
|
@ -7,15 +7,13 @@ offset_right = 68.0
|
||||||
offset_bottom = 31.0
|
offset_bottom = 31.0
|
||||||
selected = 0
|
selected = 0
|
||||||
allow_reselect = true
|
allow_reselect = true
|
||||||
item_count = 4
|
item_count = 3
|
||||||
popup/item_0/text = "+Add Float"
|
popup/item_0/text = "+Add Float"
|
||||||
popup/item_0/id = 0
|
popup/item_0/id = 0
|
||||||
popup/item_1/text = "+Add Bool"
|
popup/item_1/text = "+Add Bool"
|
||||||
popup/item_1/id = 1
|
popup/item_1/id = 1
|
||||||
popup/item_2/text = "+Add Color"
|
popup/item_2/text = "+Add Color"
|
||||||
popup/item_2/id = 2
|
popup/item_2/id = 2
|
||||||
popup/item_3/text = "+Add Audio"
|
|
||||||
popup/item_3/id = 3
|
|
||||||
script = ExtResource("1_vw1dw")
|
script = ExtResource("1_vw1dw")
|
||||||
|
|
||||||
[node name="Panel" type="PanelContainer" parent="."]
|
[node name="Panel" type="PanelContainer" parent="."]
|
||||||
|
|
|
@ -1,19 +1,16 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://bdcxusbd86oox"]
|
[gd_scene load_steps=5 format=3 uid="uid://bdcxusbd86oox"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://lhwwaugousps" path="res://UI/Fonts/OpenMoji.ttf" id="1_4uocr"]
|
|
||||||
[ext_resource type="Script" uid="uid://dwl36vn5chqmq" path="res://Scripts/GL_Node_Point.gd" id="1_fygh4"]
|
[ext_resource type="Script" uid="uid://dwl36vn5chqmq" path="res://Scripts/GL_Node_Point.gd" id="1_fygh4"]
|
||||||
[ext_resource type="Script" uid="uid://q5qlhwvjb16w" path="res://Scripts/GL_Node_Picker_Float.gd" id="2_vlx6y"]
|
[ext_resource type="Script" uid="uid://q5qlhwvjb16w" path="res://Scripts/GL_Node_Picker_Float.gd" id="2_vlx6y"]
|
||||||
[ext_resource type="Script" uid="uid://dflftb37a7ind" path="res://Scripts/GL_Node_Picker_Color.gd" id="3_tf34m"]
|
[ext_resource type="Script" uid="uid://dflftb37a7ind" path="res://Scripts/GL_Node_Picker_Color.gd" id="3_tf34m"]
|
||||||
[ext_resource type="Script" uid="uid://b7ysqwtxh8pf" path="res://Scripts/GL_Node_Picker_Bool.gd" id="4_yal7b"]
|
[ext_resource type="Script" uid="uid://b7ysqwtxh8pf" path="res://Scripts/GL_Node_Picker_Bool.gd" id="4_yal7b"]
|
||||||
[ext_resource type="Script" uid="uid://rmlqvxot3kys" path="res://Scripts/GL_Node_Picker_Audio.gd" id="5_yal7b"]
|
|
||||||
|
|
||||||
[node name="Node Row" type="HBoxContainer"]
|
[node name="Node Row" type="HBoxContainer"]
|
||||||
|
|
||||||
[node name="Input" type="Button" parent="." groups=["Outputs"]]
|
[node name="Input" type="Button" parent="." groups=["Outputs"]]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
theme_override_fonts/font = ExtResource("1_4uocr")
|
text = "◉"
|
||||||
text = "🔘"
|
|
||||||
script = ExtResource("1_fygh4")
|
script = ExtResource("1_fygh4")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
|
@ -44,36 +41,10 @@ custom_minimum_size = Vector2(50, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
script = ExtResource("4_yal7b")
|
script = ExtResource("4_yal7b")
|
||||||
|
|
||||||
[node name="Pick Audio" type="PanelContainer" parent="."]
|
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
|
||||||
script = ExtResource("5_yal7b")
|
|
||||||
|
|
||||||
[node name="HBox" type="HBoxContainer" parent="Pick Audio"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="OptionButton" type="OptionButton" parent="Pick Audio/HBox"]
|
|
||||||
layout_mode = 2
|
|
||||||
allow_reselect = true
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="Pick Audio/HBox"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_fonts/font = ExtResource("1_4uocr")
|
|
||||||
text = "📁"
|
|
||||||
|
|
||||||
[node name="FileDialog" type="FileDialog" parent="Pick Audio"]
|
|
||||||
title = "Open a File"
|
|
||||||
initial_position = 1
|
|
||||||
size = Vector2i(960, 480)
|
|
||||||
ok_button_text = "Open"
|
|
||||||
file_mode = 0
|
|
||||||
access = 2
|
|
||||||
|
|
||||||
[node name="Output" type="Button" parent="." groups=["Outputs"]]
|
[node name="Output" type="Button" parent="." groups=["Outputs"]]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
theme_override_fonts/font = ExtResource("1_4uocr")
|
text = "◉"
|
||||||
text = "🔘"
|
|
||||||
script = ExtResource("1_fygh4")
|
script = ExtResource("1_fygh4")
|
||||||
|
|
||||||
[connection signal="button_down" from="Input" to="Input" method="_detatch"]
|
[connection signal="button_down" from="Input" to="Input" method="_detatch"]
|
||||||
|
@ -82,6 +53,4 @@ script = ExtResource("1_fygh4")
|
||||||
[connection signal="value_changed" from="Pick Float" to="Pick Float" method="value_changed"]
|
[connection signal="value_changed" from="Pick Float" to="Pick Float" method="value_changed"]
|
||||||
[connection signal="color_changed" from="Pick Color" to="Pick Color" method="color_changed"]
|
[connection signal="color_changed" from="Pick Color" to="Pick Color" method="color_changed"]
|
||||||
[connection signal="toggled" from="Pick Bool" to="Pick Bool" method="toggled"]
|
[connection signal="toggled" from="Pick Bool" to="Pick Bool" method="toggled"]
|
||||||
[connection signal="item_selected" from="Pick Audio/HBox/OptionButton" to="Pick Audio" method="_on_audio_option_selected"]
|
|
||||||
[connection signal="pressed" from="Pick Audio/HBox/Button" to="Pick Audio" method="_on_audio_button_pressed"]
|
|
||||||
[connection signal="button_down" from="Output" to="Output" method="_start_drag"]
|
[connection signal="button_down" from="Output" to="Output" method="_start_drag"]
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://b0arjg8r75f8y"]
|
[gd_scene load_steps=2 format=3 uid="uid://b0arjg8r75f8y"]
|
||||||
|
|
||||||
[ext_resource type="Theme" uid="uid://cxi113pis5rln" path="res://UI/Themes/Default.tres" id="1_arhwt"]
|
[ext_resource type="Theme" uid="uid://b3wjoiiv6sq22" path="res://UI/Themes/Default.tres" id="1_arhwt"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_arhwt"]
|
|
||||||
|
|
||||||
[node name="Node" type="PanelContainer"]
|
[node name="Node" type="PanelContainer"]
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
|
@ -23,10 +21,12 @@ layout_mode = 2
|
||||||
[node name="Title" type="HBoxContainer" parent="Margins/Holder"]
|
[node name="Title" type="HBoxContainer" parent="Margins/Holder"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Title Label" type="LineEdit" parent="Margins/Holder/Title"]
|
[node name="Title Label" type="Label" parent="Margins/Holder/Title"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_arhwt")
|
text = "Test"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
clip_text = true
|
||||||
|
|
||||||
[node name="Exit Button" type="Button" parent="Margins/Holder/Title"]
|
[node name="Exit Button" type="Button" parent="Margins/Holder/Title"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
[gd_scene load_steps=24 format=3 uid="uid://qvo7vlvac8o5"]
|
[gd_scene load_steps=20 format=3 uid="uid://qvo7vlvac8o5"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://8vyuhyx0xogt" path="res://Scripts/freecam.gd" id="1_ru8gb"]
|
[ext_resource type="Script" uid="uid://8vyuhyx0xogt" path="res://Scripts/freecam.gd" id="1_ru8gb"]
|
||||||
[ext_resource type="Script" uid="uid://c5kxam0k3beml" path="res://Scripts/GL_Speaker.gd" id="2_lubev"]
|
[ext_resource type="PackedScene" uid="uid://clixk4m0rm0mu" path="res://Scenes/UI/HUD.tscn" id="2_yrqm3"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c57u187iciexi" path="res://Scenes/UI/Node Map.tscn" id="3_u0wf5"]
|
[ext_resource type="PackedScene" uid="uid://c57u187iciexi" path="res://Scenes/UI/Node Map.tscn" id="3_u0wf5"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dwdcfwbmoo36b" path="res://Models/Props/stage_base.glb" id="4_ol4ys"]
|
[ext_resource type="PackedScene" uid="uid://dwdcfwbmoo36b" path="res://Models/Props/stage_base.glb" id="4_ol4ys"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dnnh3726ejxs1" path="res://Models/Props/cec_backdrop.glb" id="4_x0dlk"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dlf6gkpsv5g05" path="res://Models/Props/keyboard.glb" id="5_ti4ja"]
|
[ext_resource type="PackedScene" uid="uid://dlf6gkpsv5g05" path="res://Models/Props/keyboard.glb" id="5_ti4ja"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dhpife36refiy" path="res://Scenes/Animatables/CyberChuck.tscn" id="6_2m2n1"]
|
[ext_resource type="PackedScene" uid="uid://dhpife36refiy" path="res://Scenes/Animatables/CyberChuck.tscn" id="6_2m2n1"]
|
||||||
[ext_resource type="PackedScene" uid="uid://pkh78ee22ep6" path="res://Models/Props/brick_wall.glb" id="6_3jhag"]
|
[ext_resource type="PackedScene" uid="uid://pkh78ee22ep6" path="res://Models/Props/brick_wall.glb" id="6_3jhag"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ue6jf5fu172y" path="res://Models/Props/planter.glb" id="6_du162"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ws774w4ve4i7" path="res://Models/Props/neonbg.glb" id="7_3tn61"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bub341o0dnurs" path="res://Models/Props/buildings.glb" id="7_fbk0n"]
|
[ext_resource type="PackedScene" uid="uid://bub341o0dnurs" path="res://Models/Props/buildings.glb" id="7_fbk0n"]
|
||||||
[ext_resource type="PackedScene" uid="uid://biu7cbgleyuq8" path="res://Scenes/Animatables/CyberHelen.tscn" id="7_hmuo4"]
|
[ext_resource type="PackedScene" uid="uid://biu7cbgleyuq8" path="res://Scenes/Animatables/CyberHelen.tscn" id="7_hmuo4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://tjgw1b6x4iqo" path="res://Scenes/Animatables/CyberMunch.tscn" id="8_hbltw"]
|
[ext_resource type="PackedScene" uid="uid://tjgw1b6x4iqo" path="res://Scenes/Animatables/CyberMunch.tscn" id="8_hbltw"]
|
||||||
|
@ -20,8 +17,7 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://bk6j0jvl574dj" path="res://Models/Props/tv.glb" id="12_3tn61"]
|
[ext_resource type="PackedScene" uid="uid://bk6j0jvl574dj" path="res://Models/Props/tv.glb" id="12_3tn61"]
|
||||||
[ext_resource type="PackedScene" uid="uid://clqtreijtwlbs" path="res://Models/Props/valence.glb" id="13_du162"]
|
[ext_resource type="PackedScene" uid="uid://clqtreijtwlbs" path="res://Models/Props/valence.glb" id="13_du162"]
|
||||||
[ext_resource type="PackedScene" uid="uid://8pbkbg4elfjt" path="res://Models/Props/logo.glb" id="14_lubev"]
|
[ext_resource type="PackedScene" uid="uid://8pbkbg4elfjt" path="res://Models/Props/logo.glb" id="14_lubev"]
|
||||||
[ext_resource type="Script" uid="uid://dytpgt3c33k62" path="res://Scripts/GL_Multi_Light_Controller.gd" id="21_x0dlk"]
|
[ext_resource type="Script" uid="uid://c5uawj66escut" path="res://Scripts/GL_Spotlight.gd" id="18_n8vuo"]
|
||||||
[ext_resource type="PackedScene" uid="uid://l8835lbh2wxj" path="res://Models/Props/neonsign.glb" id="22_du162"]
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_uborw"]
|
[sub_resource type="Environment" id="Environment_uborw"]
|
||||||
background_mode = 1
|
background_mode = 1
|
||||||
|
@ -30,29 +26,22 @@ ambient_light_source = 3
|
||||||
ambient_light_color = Color(1, 1, 1, 1)
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
ambient_light_energy = 0.01
|
ambient_light_energy = 0.01
|
||||||
|
|
||||||
[node name="2Stage" type="Node3D"]
|
[node name="1Stage" type="Node3D"]
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="."]
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
transform = Transform3D(0.999998, 0.00163928, -0.000874435, -0.00163943, 0.999999, -0.000166063, 0.000874161, 0.000167496, 1, 0.01889, 3.26498, 9.74284)
|
transform = Transform3D(0.999998, 0.00163928, -0.000874435, -0.00163943, 0.999999, -0.000166063, 0.000874161, 0.000167496, 1, 0.01889, 3.26498, 9.74284)
|
||||||
script = ExtResource("1_ru8gb")
|
script = ExtResource("1_ru8gb")
|
||||||
|
toggle_key = 4194305
|
||||||
|
overlay_text = false
|
||||||
|
|
||||||
[node name="Direct Output" type="Node" parent="Camera3D" groups=["DIRECT_OUTPUT"]]
|
[node name="HUD" parent="Camera3D" instance=ExtResource("2_yrqm3")]
|
||||||
script = ExtResource("2_lubev")
|
|
||||||
|
|
||||||
[node name="Speaker" type="AudioStreamPlayer" parent="Camera3D/Direct Output"]
|
|
||||||
|
|
||||||
[node name="NodeMap" parent="." instance=ExtResource("3_u0wf5")]
|
[node name="NodeMap" parent="." instance=ExtResource("3_u0wf5")]
|
||||||
|
|
||||||
[node name="Props" type="Node" parent="."]
|
[node name="Props" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="cec_backdrop" parent="Props" instance=ExtResource("4_x0dlk")]
|
|
||||||
|
|
||||||
[node name="planter2" parent="Props" instance=ExtResource("6_du162")]
|
|
||||||
|
|
||||||
[node name="stage_base" parent="Props" instance=ExtResource("4_ol4ys")]
|
[node name="stage_base" parent="Props" instance=ExtResource("4_ol4ys")]
|
||||||
|
|
||||||
[node name="neonbg2" parent="Props" instance=ExtResource("7_3tn61")]
|
|
||||||
|
|
||||||
[node name="keyboard" parent="Props" instance=ExtResource("5_ti4ja")]
|
[node name="keyboard" parent="Props" instance=ExtResource("5_ti4ja")]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 2, 0, 1)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 2, 0, 1)
|
||||||
|
|
||||||
|
@ -90,18 +79,9 @@ environment = SubResource("Environment_uborw")
|
||||||
|
|
||||||
[node name="Lighting" type="Node" parent="."]
|
[node name="Lighting" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="Spots" type="Node" parent="Lighting" groups=["L_SPOTLIGHTS"]]
|
[node name="Spots" type="Node" parent="Lighting"]
|
||||||
script = ExtResource("21_x0dlk")
|
|
||||||
|
|
||||||
[node name="Chuck" type="SpotLight3D" parent="Lighting/Spots"]
|
[node name="Helen Spot" type="SpotLight3D" parent="Lighting/Spots"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -8, 6, 3)
|
|
||||||
visible = false
|
|
||||||
light_energy = 5.0
|
|
||||||
shadow_enabled = true
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
|
|
||||||
[node name="Helen" type="SpotLight3D" parent="Lighting/Spots"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -1, 6, 3)
|
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -1, 6, 3)
|
||||||
visible = false
|
visible = false
|
||||||
light_energy = 5.0
|
light_energy = 5.0
|
||||||
|
@ -109,7 +89,21 @@ shadow_enabled = true
|
||||||
spot_range = 10.0
|
spot_range = 10.0
|
||||||
spot_angle = 30.0
|
spot_angle = 30.0
|
||||||
|
|
||||||
[node name="Munch" type="SpotLight3D" parent="Lighting/Spots"]
|
[node name="Node" type="Node" parent="Lighting/Spots/Helen Spot" groups=["L_SPOT_HELEN"]]
|
||||||
|
script = ExtResource("18_n8vuo")
|
||||||
|
|
||||||
|
[node name="Chuck Spot" type="SpotLight3D" parent="Lighting/Spots"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -8, 6, 3)
|
||||||
|
visible = false
|
||||||
|
light_energy = 5.0
|
||||||
|
shadow_enabled = true
|
||||||
|
spot_range = 10.0
|
||||||
|
spot_angle = 30.0
|
||||||
|
|
||||||
|
[node name="Node" type="Node" parent="Lighting/Spots/Chuck Spot" groups=["L_SPOT_CHUCK"]]
|
||||||
|
script = ExtResource("18_n8vuo")
|
||||||
|
|
||||||
|
[node name="Munch Spot" type="SpotLight3D" parent="Lighting/Spots"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 2, 6, 3)
|
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 2, 6, 3)
|
||||||
visible = false
|
visible = false
|
||||||
light_energy = 5.0
|
light_energy = 5.0
|
||||||
|
@ -117,417 +111,5 @@ shadow_enabled = true
|
||||||
spot_range = 10.0
|
spot_range = 10.0
|
||||||
spot_angle = 30.0
|
spot_angle = 30.0
|
||||||
|
|
||||||
[node name="Jasper" type="SpotLight3D" parent="Lighting/Spots"]
|
[node name="Node" type="Node" parent="Lighting/Spots/Munch Spot" groups=["L_SPOT_MUNCH"]]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 8, 6, 3)
|
script = ExtResource("18_n8vuo")
|
||||||
visible = false
|
|
||||||
light_energy = 5.0
|
|
||||||
shadow_enabled = true
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
|
|
||||||
[node name="Pasqually" type="SpotLight3D" parent="Lighting/Spots"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 5, 6, 3)
|
|
||||||
visible = false
|
|
||||||
light_energy = 5.0
|
|
||||||
shadow_enabled = true
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
|
|
||||||
[node name="Wink" type="SpotLight3D" parent="Lighting/Spots"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 9, 6)
|
|
||||||
visible = false
|
|
||||||
light_energy = 5.0
|
|
||||||
shadow_enabled = true
|
|
||||||
spot_angle = 10.0
|
|
||||||
|
|
||||||
[node name="Backdrop" type="Node" parent="Lighting" groups=["L_BACKDROP"]]
|
|
||||||
script = ExtResource("21_x0dlk")
|
|
||||||
|
|
||||||
[node name="Amber" type="Node3D" parent="Lighting/Backdrop"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Amber1" type="SpotLight3D" parent="Lighting/Backdrop/Amber"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, -2, 1, -2)
|
|
||||||
light_color = Color(1, 0.498039, 0, 1)
|
|
||||||
light_energy = 5.0
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
spot_angle_attenuation = 0.5
|
|
||||||
|
|
||||||
[node name="Amber2" type="SpotLight3D" parent="Lighting/Backdrop/Amber"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, 1, 1, -2)
|
|
||||||
light_color = Color(1, 0.498039, 0, 1)
|
|
||||||
light_energy = 5.0
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
spot_angle_attenuation = 0.5
|
|
||||||
|
|
||||||
[node name="Red" type="Node3D" parent="Lighting/Backdrop"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Red1" type="SpotLight3D" parent="Lighting/Backdrop/Red"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, -1, 1, -2)
|
|
||||||
light_color = Color(1, 0, 0, 1)
|
|
||||||
light_energy = 5.0
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
spot_angle_attenuation = 0.5
|
|
||||||
|
|
||||||
[node name="Red2" type="SpotLight3D" parent="Lighting/Backdrop/Red"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, 2, 1, -2)
|
|
||||||
light_color = Color(1, 0, 0, 1)
|
|
||||||
light_energy = 5.0
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
spot_angle_attenuation = 0.5
|
|
||||||
|
|
||||||
[node name="Blue" type="Node3D" parent="Lighting/Backdrop"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Blue1" type="SpotLight3D" parent="Lighting/Backdrop/Blue"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, 0, 1, -2)
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
light_energy = 5.0
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
spot_angle_attenuation = 0.5
|
|
||||||
|
|
||||||
[node name="Blue2" type="SpotLight3D" parent="Lighting/Backdrop/Blue"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, 3, 1, -2)
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
light_energy = 5.0
|
|
||||||
spot_range = 10.0
|
|
||||||
spot_angle = 30.0
|
|
||||||
spot_angle_attenuation = 0.5
|
|
||||||
|
|
||||||
[node name="Floods" type="Node" parent="Lighting" groups=["L_FLOODS"]]
|
|
||||||
script = ExtResource("21_x0dlk")
|
|
||||||
|
|
||||||
[node name="Main Stage" type="Node" parent="Lighting/Floods"]
|
|
||||||
|
|
||||||
[node name="Amber" type="OmniLight3D" parent="Lighting/Floods/Main Stage"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 7, 0)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(1, 0.498039, 0, 1)
|
|
||||||
|
|
||||||
[node name="Red" type="OmniLight3D" parent="Lighting/Floods/Main Stage"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 7, 0)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(1, 0, 0, 1)
|
|
||||||
|
|
||||||
[node name="Blue" type="OmniLight3D" parent="Lighting/Floods/Main Stage"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 7, 0)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
|
|
||||||
[node name="CEC Stage" type="Node" parent="Lighting/Floods"]
|
|
||||||
|
|
||||||
[node name="Amber" type="OmniLight3D" parent="Lighting/Floods/CEC Stage"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 7, 0)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(1, 0.498039, 0, 1)
|
|
||||||
|
|
||||||
[node name="Red" type="OmniLight3D" parent="Lighting/Floods/CEC Stage"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 7, 0)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(1, 0, 0, 1)
|
|
||||||
|
|
||||||
[node name="Blue" type="OmniLight3D" parent="Lighting/Floods/CEC Stage"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 7, 0)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
|
|
||||||
[node name="Misc" type="Node" parent="Lighting" groups=["L_MISC"]]
|
|
||||||
script = ExtResource("21_x0dlk")
|
|
||||||
|
|
||||||
[node name="CEC Neon Sign" parent="Lighting/Misc" instance=ExtResource("22_du162")]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Light" type="OmniLight3D" parent="Lighting/Misc/CEC Neon Sign"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 5, 1)
|
|
||||||
light_color = Color(1, 0, 0, 1)
|
|
||||||
omni_range = 2.5
|
|
||||||
|
|
||||||
[node name="Strobe" type="OmniLight3D" parent="Lighting/Misc"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 2)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(0, 1, 1, 1)
|
|
||||||
omni_range = 11.0
|
|
||||||
|
|
||||||
[node name="Band Sign" type="OmniLight3D" parent="Lighting/Misc"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, -1)
|
|
||||||
visible = false
|
|
||||||
omni_range = 2.0
|
|
||||||
|
|
||||||
[node name="Drum" type="OmniLight3D" parent="Lighting/Misc"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 1, 1)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(1, 0, 0, 1)
|
|
||||||
omni_range = 2.5
|
|
||||||
|
|
||||||
[node name="CEC Star" type="Node3D" parent="Lighting/Misc"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Star1" type="OmniLight3D" parent="Lighting/Misc/CEC Star"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.25, 2, -0.5)
|
|
||||||
light_energy = 0.25
|
|
||||||
|
|
||||||
[node name="Star2" type="OmniLight3D" parent="Lighting/Misc/CEC Star"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 1.25, -0.5)
|
|
||||||
light_energy = 0.25
|
|
||||||
|
|
||||||
[node name="Star3" type="OmniLight3D" parent="Lighting/Misc/CEC Star"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.75, 2.5, -0.5)
|
|
||||||
light_energy = 0.25
|
|
||||||
|
|
||||||
[node name="Star4" type="OmniLight3D" parent="Lighting/Misc/CEC Star"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 5.75, -0.5)
|
|
||||||
light_energy = 0.25
|
|
||||||
|
|
||||||
[node name="Star5" type="OmniLight3D" parent="Lighting/Misc/CEC Star"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.75, 5.75, -0.5)
|
|
||||||
light_energy = 0.25
|
|
||||||
|
|
||||||
[node name="StarMain" type="OmniLight3D" parent="Lighting/Misc/CEC Star"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 4.5, -0.5)
|
|
||||||
light_energy = 0.5
|
|
||||||
|
|
||||||
[node name="Fiber Curtain" type="Node3D" parent="Lighting/Misc"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="FCLight1" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.33574, 4.29505, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight2" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.84739, 3.54217, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight3" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.37644, 3.11485, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight4" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.98689, 4.71219, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight5" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.20054, 4.02035, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight6" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.38662, 5.05811, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight7" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.85756, 4.72236, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight8" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.02758, 5.78047, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight9" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 4, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight10" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.73547, 5.31246, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight11" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.41714, 5.69907, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight12" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.20054, 5.12932, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight13" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.22383, 2.55528, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight14" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.441782, 3.52182, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight15" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.726656, 3.05381, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight16" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.523175, 2.29075, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight17" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5173, 3.22677, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight18" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.29347, 3.87791, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight19" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.50712, 4.5901, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight20" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.27312, 5.59733, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight21" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4359, 6.1976, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight22" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.85598, 5.99412, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight23" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.23536, 6.20778, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight24" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.462128, 6.25865, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight25" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.412844, 6.2383, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight26" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.22677, 6.18743, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight27" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.92879, 5.9636, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight28" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.60028, 6.22813, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight29" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.37351, 6.18743, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="FCLight30" type="OmniLight3D" parent="Lighting/Misc/Fiber Curtain"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.42732, 3.83721, -2.499)
|
|
||||||
light_energy = 1000.0
|
|
||||||
omni_range = 0.01
|
|
||||||
|
|
||||||
[node name="Organ" type="Node" parent="Lighting" groups=["L_ORGAN"]]
|
|
||||||
script = ExtResource("21_x0dlk")
|
|
||||||
|
|
||||||
[node name="Face 1" type="OmniLight3D" parent="Lighting/Organ"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2.5, 2.5)
|
|
||||||
visible = false
|
|
||||||
light_color = Color(1, 0.498039, 0, 1)
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Face 2" type="Node3D" parent="Lighting/Organ"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Face1" type="OmniLight3D" parent="Lighting/Organ/Face 2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2.5, 2.5)
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Face2" type="OmniLight3D" parent="Lighting/Organ/Face 2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 2.5, 2.5)
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Outer" type="Node3D" parent="Lighting/Organ"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Outer1" type="OmniLight3D" parent="Lighting/Organ/Outer"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25, 2, 2)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Outer2" type="OmniLight3D" parent="Lighting/Organ/Outer"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.75, 2, 2)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Outer3" type="OmniLight3D" parent="Lighting/Organ/Outer"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.85, 0.25, 2)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Outer4" type="OmniLight3D" parent="Lighting/Organ/Outer"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.15, 0.25, 2)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Middle" type="Node3D" parent="Lighting/Organ"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Middle3" type="OmniLight3D" parent="Lighting/Organ/Middle"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.95, 0.65, 2)
|
|
||||||
light_color = Color(1, 1, 0, 1)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Middle4" type="OmniLight3D" parent="Lighting/Organ/Middle"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.05, 0.65, 2)
|
|
||||||
light_color = Color(1, 1, 0, 1)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Middle1" type="OmniLight3D" parent="Lighting/Organ/Middle"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.15, 1.55, 2)
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Middle2" type="OmniLight3D" parent="Lighting/Organ/Middle"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.85, 1.55, 2)
|
|
||||||
light_color = Color(0, 0.74902, 1, 1)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Inner" type="Node3D" parent="Lighting/Organ"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Inner1" type="OmniLight3D" parent="Lighting/Organ/Inner"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1.125, 2)
|
|
||||||
light_color = Color(1, 0, 1, 1)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
||||||
[node name="Inner2" type="OmniLight3D" parent="Lighting/Organ/Inner"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1.125, 2)
|
|
||||||
light_color = Color(1, 0, 1, 1)
|
|
||||||
light_energy = 0.5
|
|
||||||
omni_range = 1.0
|
|
||||||
|
|
33
Scenes/UI/HUD.tscn
Normal file
33
Scenes/UI/HUD.tscn
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://clixk4m0rm0mu"]
|
||||||
|
|
||||||
|
[ext_resource type="Theme" uid="uid://b3wjoiiv6sq22" path="res://UI/Themes/Default.tres" id="1_omqfp"]
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_qc5w2"]
|
||||||
|
font_size = 18
|
||||||
|
|
||||||
|
[node name="Control" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
z_index = 1000
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 3
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -40.0
|
||||||
|
offset_top = -23.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
grow_vertical = 0
|
||||||
|
theme = ExtResource("1_omqfp")
|
||||||
|
theme_override_font_sizes/font_size = 9
|
||||||
|
text = "Give LIFE Cybers
|
||||||
|
Press ESC to view node map, right click to add a node, middle click and drag to pan, scroll to zoom."
|
||||||
|
label_settings = SubResource("LabelSettings_qc5w2")
|
||||||
|
horizontal_alignment = 2
|
|
@ -1,19 +1,16 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://c57u187iciexi"]
|
[gd_scene load_steps=5 format=3 uid="uid://c57u187iciexi"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://i4p62x8fnqpn" path="res://Scripts/GL_Node_Map.gd" id="1_jyqbx"]
|
[ext_resource type="Script" uid="uid://i4p62x8fnqpn" path="res://Scripts/GL_Node_Map.gd" id="1_jyqbx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://mowdu1i1rldt" path="res://Scenes/UI/Search.tscn" id="1_xwfut"]
|
[ext_resource type="PackedScene" uid="uid://mowdu1i1rldt" path="res://Scenes/UI/Search.tscn" id="1_xwfut"]
|
||||||
[ext_resource type="Theme" uid="uid://cxi113pis5rln" path="res://UI/Themes/Default.tres" id="2_2eix6"]
|
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_2eix6"]
|
[sub_resource type="Gradient" id="Gradient_jyqbx"]
|
||||||
offsets = PackedFloat32Array(0)
|
offsets = PackedFloat32Array(0)
|
||||||
colors = PackedColorArray(0.121569, 0.121569, 0.121569, 0.501961)
|
colors = PackedColorArray(0.121569, 0.121569, 0.121569, 0.501961)
|
||||||
|
|
||||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_msys2"]
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_2eix6"]
|
||||||
gradient = SubResource("Gradient_2eix6")
|
gradient = SubResource("Gradient_jyqbx")
|
||||||
|
|
||||||
[sub_resource type="LabelSettings" id="LabelSettings_x1ecx"]
|
[node name="NodeMap" type="Control"]
|
||||||
|
|
||||||
[node name="NodeMap" type="Control" groups=["Node Map"]]
|
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -29,71 +26,14 @@ anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
texture = SubResource("GradientTexture1D_msys2")
|
texture = SubResource("GradientTexture1D_2eix6")
|
||||||
|
stretch_mode = 1
|
||||||
|
|
||||||
|
[node name="Search" parent="." instance=ExtResource("1_xwfut")]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
[node name="Holder" type="Control" parent="."]
|
[node name="Holder" type="Control" parent="."]
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
offset_right = 40.0
|
offset_right = 40.0
|
||||||
offset_bottom = 40.0
|
offset_bottom = 40.0
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
|
||||||
z_index = 1000
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 3
|
|
||||||
anchor_left = 1.0
|
|
||||||
anchor_top = 1.0
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
offset_left = -773.0
|
|
||||||
offset_top = -97.0
|
|
||||||
offset_right = -11.0
|
|
||||||
offset_bottom = -48.0
|
|
||||||
grow_horizontal = 0
|
|
||||||
grow_vertical = 0
|
|
||||||
theme = ExtResource("2_2eix6")
|
|
||||||
theme_override_font_sizes/font_size = 8
|
|
||||||
text = "Give LIFE Cybers
|
|
||||||
Press ESC to view node map, right click to add a node, middle click and drag to pan, scroll to zoom."
|
|
||||||
label_settings = SubResource("LabelSettings_x1ecx")
|
|
||||||
horizontal_alignment = 2
|
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
theme_override_constants/margin_left = 10
|
|
||||||
theme_override_constants/margin_top = 10
|
|
||||||
theme_override_constants/margin_right = 10
|
|
||||||
theme_override_constants/margin_bottom = 10
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 8
|
|
||||||
size_flags_vertical = 8
|
|
||||||
|
|
||||||
[node name="OptionButton" type="OptionButton" parent="MarginContainer/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 8
|
|
||||||
size_flags_vertical = 8
|
|
||||||
selected = 0
|
|
||||||
item_count = 1
|
|
||||||
popup/item_0/text = "Test"
|
|
||||||
popup/item_0/id = 0
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="MarginContainer/HBoxContainer"]
|
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Edit"
|
|
||||||
|
|
||||||
[node name="Button2" type="Button" parent="MarginContainer/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Save"
|
|
||||||
|
|
||||||
[node name="Search" parent="." instance=ExtResource("1_xwfut")]
|
|
||||||
layout_mode = 1
|
|
||||||
|
|
||||||
[connection signal="pressed" from="MarginContainer/HBoxContainer/Button2" to="." method="save_everything"]
|
|
||||||
|
|
|
@ -6,5 +6,6 @@ size_flags_vertical = 0
|
||||||
[node name="Button" type="Button" parent="."]
|
[node name="Button" type="Button" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
text = "The Crazy Node of Crazy"
|
||||||
alignment = 0
|
alignment = 0
|
||||||
clip_text = true
|
clip_text = true
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
extends GL_Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title("Add")
|
|
||||||
_create_row("Float A",0.0,0.0,true,0.0,1.0)
|
|
||||||
_create_row("Float B",0.0,null,true,0.0,1.0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
apply_pick_values()
|
|
||||||
|
|
||||||
rows["Float A"]["output"] = float(rows["Float A"]["input"]) + float(rows["Float B"]["input"])
|
|
||||||
_send_input("Float A")
|
|
|
@ -1 +0,0 @@
|
||||||
uid://fui0f05i5l6c
|
|
|
@ -1,14 +0,0 @@
|
||||||
extends GL_Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title("Audio")
|
|
||||||
_create_row("Output",null,GL_AudioType.new(),true,GL_AudioType.new(),0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
apply_pick_values()
|
|
||||||
for key in rows:
|
|
||||||
rows[key]["output"] = rows[key]["input"]
|
|
||||||
_send_input("Output")
|
|
|
@ -1 +0,0 @@
|
||||||
uid://bmukxrwmoyc20
|
|
|
@ -1,3 +0,0 @@
|
||||||
extends Node
|
|
||||||
class_name GL_AudioType
|
|
||||||
var value:String = ""
|
|
|
@ -1 +0,0 @@
|
||||||
uid://dfxs3vmqxy1eu
|
|
29
Scripts/GL_MiscKeys.gd
Normal file
29
Scripts/GL_MiscKeys.gd
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
extends GL_Node
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
super._ready()
|
||||||
|
_set_title("Keystrokes")
|
||||||
|
_create_row("Shift",null,false,false,0.0,1)
|
||||||
|
_create_row("Control",null,false,false,0.0,1)
|
||||||
|
_create_row("Alt",null,false,false,0.0,1)
|
||||||
|
_create_row("Space",null,false,false,0.0,1)
|
||||||
|
_create_row("Enter",null,false,false,0.0,1)
|
||||||
|
_create_row("Backspace",null,false,false,0.0,1)
|
||||||
|
_update_visuals()
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
super._process(delta)
|
||||||
|
|
||||||
|
var key_map = {
|
||||||
|
"Shift": KEY_SHIFT,
|
||||||
|
"Control": KEY_CTRL,
|
||||||
|
"Alt": KEY_ALT,
|
||||||
|
"Space": KEY_SPACE,
|
||||||
|
"Enter": KEY_ENTER,
|
||||||
|
"Backspace": KEY_BACKSPACE,
|
||||||
|
}
|
||||||
|
|
||||||
|
for key_name in key_map.keys():
|
||||||
|
var is_pressed = Input.is_key_pressed(key_map[key_name]) or Input.is_key_pressed(key_map[key_name] + (KEY_KP_0 - KEY_0))
|
||||||
|
rows[key_name]["output"] = is_pressed
|
||||||
|
_send_input(key_name)
|
1
Scripts/GL_MiscKeys.gd.uid
Normal file
1
Scripts/GL_MiscKeys.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://bj0lla8757tnh
|
|
@ -1,16 +0,0 @@
|
||||||
extends GL_Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title("Mix Floats")
|
|
||||||
_create_row("Factor",0.0,0.0,false,null,0)
|
|
||||||
_create_row("Float A",0.0,null,true,0.0,1.0)
|
|
||||||
_create_row("Float B",0.0,null,true,0.0,1.0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
apply_pick_values()
|
|
||||||
|
|
||||||
rows["Factor"]["output"] = lerp(float(rows["Float A"]["input"]),float(rows["Float B"]["input"]),rows["Factor"]["input"])
|
|
||||||
_send_input("Factor")
|
|
|
@ -1 +0,0 @@
|
||||||
uid://beit3xudynjdl
|
|
|
@ -13,7 +13,7 @@ func _process(delta):
|
||||||
|
|
||||||
_send_input("Output")
|
_send_input("Output")
|
||||||
|
|
||||||
func _unhandled_input(event):
|
func _input(event):
|
||||||
# Check if the mouse wheel up or down button is pressed
|
# Check if the mouse wheel up or down button is pressed
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
if event.button_index == MOUSE_BUTTON_WHEEL_UP and event.pressed:
|
if event.button_index == MOUSE_BUTTON_WHEEL_UP and event.pressed:
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
extends GL_Animatable
|
|
||||||
|
|
||||||
func _sent_signals(signal_ID:String,the_signal):
|
|
||||||
self.get_node(signal_ID).visible = the_signal;
|
|
|
@ -1 +0,0 @@
|
||||||
uid://dytpgt3c33k62
|
|
|
@ -1,15 +0,0 @@
|
||||||
extends GL_Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title("Multiply")
|
|
||||||
_create_row("Float A",0.0,0.0,true,0.0,1.0)
|
|
||||||
_create_row("Float B",0.0,null,true,0.0,1.0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
apply_pick_values()
|
|
||||||
|
|
||||||
rows["Float A"]["output"] = float(rows["Float A"]["input"]) * float(rows["Float B"]["input"])
|
|
||||||
_send_input("Float A")
|
|
|
@ -1 +0,0 @@
|
||||||
uid://bmnxkp7ge8wu1
|
|
|
@ -1,33 +1,20 @@
|
||||||
extends PanelContainer
|
extends PanelContainer
|
||||||
class_name GL_Node
|
class_name GL_Node
|
||||||
var rows : Dictionary
|
var rows : Dictionary
|
||||||
var uuid : String
|
var uuid : int #REMEMBER TO SET THIS ON CREATION
|
||||||
var nodePath:String
|
|
||||||
var dragging : bool
|
var dragging : bool
|
||||||
var canDrag : bool
|
var canDrag : bool
|
||||||
var dragOffset : Vector2
|
var dragOffset : Vector2
|
||||||
var loadNodeRow : Resource
|
var loadNodeRow : Resource
|
||||||
var special_condition : String
|
var special_condition : String
|
||||||
|
|
||||||
@export var visual_name : String
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
loadNodeRow = preload("res://Scenes/Nodes/Node Row.tscn")
|
loadNodeRow = preload("res://Scenes/Nodes/Node Row.tscn")
|
||||||
(get_node("Margins").get_node("Holder").get_node("Title").get_node("Exit Button") as Button).connect("button_down",self.delete_whole_node)
|
(get_node("Margins").get_node("Holder").get_node("Title").get_node("Exit Button") as Button).connect("button_down",self.delete_whole_node)
|
||||||
if (visual_name != ""): _set_title(visual_name)
|
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if dragging:
|
if dragging:
|
||||||
position = get_viewport().get_mouse_position() + dragOffset
|
position = get_viewport().get_mouse_position() + dragOffset
|
||||||
for key in rows:
|
|
||||||
for connection in rows[key].get("connections",[]):
|
|
||||||
if typeof(connection.target) == TYPE_STRING:
|
|
||||||
for node in get_tree().get_nodes_in_group("GL Node"):
|
|
||||||
if node is GL_Node:
|
|
||||||
if node.uuid == connection.target:
|
|
||||||
connection.target = node
|
|
||||||
break
|
|
||||||
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
|
@ -40,7 +27,7 @@ func _input(event):
|
||||||
func _create_uuid():
|
func _create_uuid():
|
||||||
var rand = RandomNumberGenerator.new()
|
var rand = RandomNumberGenerator.new()
|
||||||
rand.seed = Time.get_unix_time_from_system()
|
rand.seed = Time.get_unix_time_from_system()
|
||||||
uuid = str(rand.randi())
|
uuid = rand.randi()
|
||||||
|
|
||||||
func _update_visuals():
|
func _update_visuals():
|
||||||
var holder = get_node("Margins").get_node("Holder")
|
var holder = get_node("Margins").get_node("Holder")
|
||||||
|
@ -75,10 +62,6 @@ func _update_visuals():
|
||||||
TYPE_BOOL:
|
TYPE_BOOL:
|
||||||
assignPick(nodeRow.get_node("Pick Bool"),str(key))
|
assignPick(nodeRow.get_node("Pick Bool"),str(key))
|
||||||
(nodeRow.get_node("Pick Bool") as CheckButton).button_pressed = rows[key]["pickValue"]
|
(nodeRow.get_node("Pick Bool") as CheckButton).button_pressed = rows[key]["pickValue"]
|
||||||
if rows[key]["pickValue"] is GL_AudioType:
|
|
||||||
assignPick(nodeRow.get_node("Pick Audio"),str(key))
|
|
||||||
if rows[key]["pickValue"] == null:
|
|
||||||
rows[key]["pickValue"] = GL_AudioType.new()
|
|
||||||
else:
|
else:
|
||||||
(nodeRow.get_node("Label") as Label).size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
(nodeRow.get_node("Label") as Label).size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
@ -110,7 +93,7 @@ func give_input_point_pos(name:String) -> Vector2:
|
||||||
func _set_inout_type(label:Button, value):
|
func _set_inout_type(label:Button, value):
|
||||||
match typeof(value):
|
match typeof(value):
|
||||||
TYPE_FLOAT:
|
TYPE_FLOAT:
|
||||||
label.text = "🔘"
|
label.text = "◉"
|
||||||
label.add_theme_color_override("font_color", Color.ROYAL_BLUE)
|
label.add_theme_color_override("font_color", Color.ROYAL_BLUE)
|
||||||
TYPE_BOOL:
|
TYPE_BOOL:
|
||||||
label.text = "◆"
|
label.text = "◆"
|
||||||
|
@ -118,18 +101,11 @@ func _set_inout_type(label:Button, value):
|
||||||
TYPE_COLOR:
|
TYPE_COLOR:
|
||||||
label.text = "▲"
|
label.text = "▲"
|
||||||
label.add_theme_color_override("font_color", Color.WHITE_SMOKE)
|
label.add_theme_color_override("font_color", Color.WHITE_SMOKE)
|
||||||
if value is GL_AudioType:
|
_:
|
||||||
label.text = "🔈"
|
|
||||||
label.add_theme_color_override("font_color", Color.BLUE_VIOLET)
|
|
||||||
if value == null:
|
|
||||||
label.visible = false
|
label.visible = false
|
||||||
|
|
||||||
func _set_title(name:String):
|
func _set_title(name:String):
|
||||||
(get_node("Margins").get_node("Holder").get_node("Title").get_node("Title Label") as LineEdit).text = name
|
(get_node("Margins").get_node("Holder").get_node("Title").get_node("Title Label") as Label).text = name
|
||||||
|
|
||||||
func _get_title() -> String:
|
|
||||||
return (get_node("Margins").get_node("Holder").get_node("Title").get_node("Title Label") as LineEdit).text
|
|
||||||
|
|
||||||
|
|
||||||
func _create_row(name:String,input,output,picker:bool,pickDefault,pickFloatMaximum:float):
|
func _create_row(name:String,input,output,picker:bool,pickDefault,pickFloatMaximum:float):
|
||||||
if rows.has(name):
|
if rows.has(name):
|
||||||
|
@ -147,11 +123,11 @@ func _send_input(output_name: String):
|
||||||
if not rows.has(output_name):
|
if not rows.has(output_name):
|
||||||
return
|
return
|
||||||
|
|
||||||
for conn in rows[output_name].get("connections", []):
|
var connections = rows[output_name].get("connections", [])
|
||||||
|
for conn in connections:
|
||||||
var target = conn.get("target", null)
|
var target = conn.get("target", null)
|
||||||
var input_name = conn.get("input_name", null)
|
var input_name = conn.get("input_name", null)
|
||||||
if target and input_name:
|
if target and input_name:
|
||||||
if typeof(target) != TYPE_INT:
|
|
||||||
target._recieve_input(input_name, rows[output_name]["output"])
|
target._recieve_input(input_name, rows[output_name]["output"])
|
||||||
|
|
||||||
func _confirm_backConnection(input_name:String):
|
func _confirm_backConnection(input_name:String):
|
||||||
|
@ -167,9 +143,8 @@ func _create_connection(target:GL_Node,input_name:String,output_name:String):
|
||||||
if item == null:
|
if item == null:
|
||||||
return
|
return
|
||||||
|
|
||||||
var typeA = typeof(rows[output_name].get("output", null))
|
if typeof(rows[output_name].get("output", null)) != typeof(target.rows[input_name].get("input",null)):
|
||||||
var typeB = typeof(target.rows[input_name].get("input",null))
|
if !(typeof(rows[output_name].get("output", null)) == TYPE_BOOL && typeof(target.rows[input_name].get("input",null)) == TYPE_FLOAT):
|
||||||
if (typeA != typeB) && !(typeA == TYPE_BOOL && typeB == TYPE_FLOAT) && !(typeA == TYPE_INT && typeB == TYPE_FLOAT)&& !(typeA == TYPE_FLOAT && typeB == TYPE_INT):
|
|
||||||
print("Type mismatch: cannot connect " + output_name + " to " + target.name)
|
print("Type mismatch: cannot connect " + output_name + " to " + target.name)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -223,4 +198,4 @@ func delete_whole_node():
|
||||||
if node is GL_Node_Point:
|
if node is GL_Node_Point:
|
||||||
for key in rows:
|
for key in rows:
|
||||||
node.mainNode.destroy_connection(self,key)
|
node.mainNode.destroy_connection(self,key)
|
||||||
get_parent().queue_free()
|
queue_free()
|
||||||
|
|
|
@ -21,8 +21,6 @@ func _named(name:String):
|
||||||
mainNode._create_row(name,false,false,true,false,0)
|
mainNode._create_row(name,false,false,true,false,0)
|
||||||
2:
|
2:
|
||||||
mainNode._create_row(name,Color.WHITE,Color.WHITE,true,Color.WHITE,0)
|
mainNode._create_row(name,Color.WHITE,Color.WHITE,true,Color.WHITE,0)
|
||||||
3:
|
|
||||||
mainNode._create_row(name,GL_AudioType.new(),GL_AudioType.new(),true,GL_AudioType.new(),0)
|
|
||||||
mainNode._update_visuals()
|
mainNode._update_visuals()
|
||||||
func _cancelled():
|
func _cancelled():
|
||||||
disabled = false
|
disabled = false
|
||||||
|
|
|
@ -1,57 +1,32 @@
|
||||||
extends Control
|
extends Control
|
||||||
class_name GL_Node_Map
|
|
||||||
|
|
||||||
var holder: Control
|
var holder: Control
|
||||||
var is_panning: bool = false
|
var is_panning: bool = false
|
||||||
var last_mouse_pos: Vector2
|
var last_mouse_pos: Vector2
|
||||||
var is_hovered: bool = false
|
var is_hovered: bool = false
|
||||||
|
|
||||||
#Workspace shenanigans
|
|
||||||
var optionsVar:OptionButton
|
|
||||||
|
|
||||||
#Workspaces
|
|
||||||
var _workspace_ID:String
|
|
||||||
var save_name: String = "My Save"
|
|
||||||
var author_name: String = "Unnamed Author"
|
|
||||||
var showtapesPath: String = "user://Showtapes/"
|
|
||||||
var version: String = ProjectSettings.get_setting("application/config/version")
|
|
||||||
var game_title: String = ProjectSettings.get_setting("application/config/name")
|
|
||||||
var time_created: String = ""
|
|
||||||
var last_updated: String = ""
|
|
||||||
|
|
||||||
|
|
||||||
func _notification(what):
|
|
||||||
if what == NOTIFICATION_EXIT_TREE:
|
|
||||||
save_everything()
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
visible = false
|
visible = false
|
||||||
holder = get_node("Holder")
|
holder = get_node("Holder")
|
||||||
optionsVar = get_node("MarginContainer/HBoxContainer/OptionButton")
|
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
|
||||||
|
|
||||||
connect("mouse_entered", _on_mouse_entered)
|
connect("mouse_entered", _on_mouse_entered)
|
||||||
connect("mouse_exited", _on_mouse_exited)
|
connect("mouse_exited", _on_mouse_exited)
|
||||||
|
|
||||||
_workspace_ID = generate_new_workspace_id()
|
|
||||||
populate_workspace_options()
|
|
||||||
optionsVar.connect("item_selected", Callable(self, "_on_workspace_selected"))
|
|
||||||
|
|
||||||
|
|
||||||
func _on_mouse_entered():
|
func _on_mouse_entered():
|
||||||
is_hovered = true
|
is_hovered = true
|
||||||
|
|
||||||
func _on_mouse_exited():
|
func _on_mouse_exited():
|
||||||
is_hovered = false
|
is_hovered = false
|
||||||
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event is InputEventKey and event.pressed:
|
if event is InputEventKey and event.pressed:
|
||||||
match event.keycode:
|
match event.keycode:
|
||||||
KEY_ESCAPE:
|
KEY_ESCAPE:
|
||||||
visible = not visible
|
visible = not visible
|
||||||
|
|
||||||
if not visible:
|
if not visible:
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||||
|
return
|
||||||
else:
|
else:
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||||
|
|
||||||
|
@ -75,11 +50,14 @@ func _input(event: InputEvent) -> void:
|
||||||
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||||
zoom_factor = 0.9
|
zoom_factor = 0.9
|
||||||
|
|
||||||
|
# Apply scale
|
||||||
holder.scale *= zoom_factor
|
holder.scale *= zoom_factor
|
||||||
|
|
||||||
|
# Recalculate the new local position of the mouse after scaling
|
||||||
var new_global_xform = holder.get_global_transform()
|
var new_global_xform = holder.get_global_transform()
|
||||||
var new_local_mouse_pos = new_global_xform.affine_inverse().basis_xform(mouse_pos)
|
var new_local_mouse_pos = new_global_xform.affine_inverse().basis_xform(mouse_pos)
|
||||||
|
|
||||||
|
# Calculate offset to shift so the mouse stays “anchored”
|
||||||
var delta = (new_local_mouse_pos - local_mouse_pos)
|
var delta = (new_local_mouse_pos - local_mouse_pos)
|
||||||
holder.position += delta * holder.scale
|
holder.position += delta * holder.scale
|
||||||
|
|
||||||
|
@ -87,170 +65,3 @@ func _input(event: InputEvent) -> void:
|
||||||
var delta = event.position - last_mouse_pos
|
var delta = event.position - last_mouse_pos
|
||||||
holder.position += delta
|
holder.position += delta
|
||||||
last_mouse_pos = event.position
|
last_mouse_pos = event.position
|
||||||
|
|
||||||
func save_everything():
|
|
||||||
var saveDict := {}
|
|
||||||
var rng = RandomNumberGenerator.new()
|
|
||||||
rng.seed = Time.get_ticks_msec()
|
|
||||||
|
|
||||||
if holder.get_child_count() == 0:
|
|
||||||
return
|
|
||||||
|
|
||||||
for child in holder.get_children():
|
|
||||||
child = child.get_child(0)
|
|
||||||
print(child._get_title() + ", " + child.nodePath)
|
|
||||||
if child is not GL_Node:
|
|
||||||
print(child)
|
|
||||||
continue
|
|
||||||
|
|
||||||
var id = "SAVE_" + str(rng.randi())
|
|
||||||
var node_data = {
|
|
||||||
"path": child.nodePath,
|
|
||||||
"name": child._get_title(),
|
|
||||||
"uuid": child.uuid,
|
|
||||||
"rows": child.rows.duplicate(true),
|
|
||||||
"position": child.position
|
|
||||||
}
|
|
||||||
|
|
||||||
# Save recording if it's a GL_Record and has enough data
|
|
||||||
if child is GL_Record and child.recording != null:
|
|
||||||
if child.recording.size() >= 3:
|
|
||||||
var recording_file_path = showtapesPath + str(_workspace_ID) + "/" + child.uuid + "_recording.tres"
|
|
||||||
var recording_config = ConfigFile.new()
|
|
||||||
recording_config.set_value("recording", "data", child.recording)
|
|
||||||
var err = recording_config.save(recording_file_path)
|
|
||||||
if err != OK:
|
|
||||||
push_error("Failed to save recording for " + child.uuid + ": " + str(err))
|
|
||||||
else:
|
|
||||||
print("Saved recording for node ", child.uuid)
|
|
||||||
|
|
||||||
# Convert connections to uuid references
|
|
||||||
for key in node_data["rows"]:
|
|
||||||
if node_data["rows"][key].has("connections"):
|
|
||||||
var connections = node_data["rows"][key]["connections"]
|
|
||||||
for i in range(connections.size()):
|
|
||||||
if connections[i]["target"] is GL_Node:
|
|
||||||
connections[i]["target"] = connections[i]["target"].uuid
|
|
||||||
|
|
||||||
saveDict[id] = node_data
|
|
||||||
|
|
||||||
var save_dir = showtapesPath + str(_workspace_ID)
|
|
||||||
DirAccess.make_dir_recursive_absolute(save_dir)
|
|
||||||
var file_path = save_dir + "/node_workspace.tres"
|
|
||||||
|
|
||||||
var resource = ConfigFile.new()
|
|
||||||
|
|
||||||
# Metadata section
|
|
||||||
if time_created == "":
|
|
||||||
time_created = Time.get_datetime_string_from_system(true)
|
|
||||||
last_updated = Time.get_datetime_string_from_system(true)
|
|
||||||
|
|
||||||
resource.set_value("meta", "save_name", save_name)
|
|
||||||
resource.set_value("meta", "author", author_name)
|
|
||||||
resource.set_value("meta", "version", ProjectSettings.get_setting("application/config/version"))
|
|
||||||
resource.set_value("meta", "game_title", ProjectSettings.get_setting("application/config/name"))
|
|
||||||
resource.set_value("meta", "time_created", time_created)
|
|
||||||
resource.set_value("meta", "last_updated", last_updated)
|
|
||||||
|
|
||||||
# Main save data
|
|
||||||
resource.set_value("workspace", "data", saveDict)
|
|
||||||
|
|
||||||
var err = resource.save(file_path)
|
|
||||||
if err != OK:
|
|
||||||
push_error("Failed to save workspace: " + str(err))
|
|
||||||
else:
|
|
||||||
print("Saved workspace to: ", file_path)
|
|
||||||
|
|
||||||
populate_workspace_options()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func load_everything():
|
|
||||||
var file_path = showtapesPath + str(_workspace_ID) + "/node_workspace.tres"
|
|
||||||
var resource = ConfigFile.new()
|
|
||||||
var err = resource.load(file_path)
|
|
||||||
if err != OK:
|
|
||||||
push_error("Failed to load workspace: " + str(err))
|
|
||||||
return {}
|
|
||||||
|
|
||||||
# Load metadata
|
|
||||||
save_name = resource.get_value("meta", "save_name", "Unnamed Save")
|
|
||||||
author_name = resource.get_value("meta", "author", "Unknown Author")
|
|
||||||
version = resource.get_value("meta", "version", "0.0")
|
|
||||||
game_title = resource.get_value("meta", "game_title", "Untitled Game")
|
|
||||||
time_created = resource.get_value("meta", "time_created", "")
|
|
||||||
last_updated = resource.get_value("meta", "last_updated", "")
|
|
||||||
|
|
||||||
print("Loaded workspace metadata:")
|
|
||||||
print("Save Name: ", save_name)
|
|
||||||
print("Author: ", author_name)
|
|
||||||
print("Version: ", version)
|
|
||||||
print("Game Title: ", game_title)
|
|
||||||
print("Time Created: ", time_created)
|
|
||||||
print("Last Updated: ", last_updated)
|
|
||||||
|
|
||||||
# Load nodes
|
|
||||||
var data = resource.get_value("workspace", "data", {})
|
|
||||||
for key in data:
|
|
||||||
var packed_scene = load(data[key]["path"])
|
|
||||||
if packed_scene == null:
|
|
||||||
printerr("Could not load resource at: " + data[key]["path"])
|
|
||||||
continue
|
|
||||||
var node = packed_scene.instantiate() as Control
|
|
||||||
holder.add_child(node)
|
|
||||||
node = node.get_child(0) as GL_Node
|
|
||||||
node.position = data[key].get("position",Vector2.ZERO)
|
|
||||||
node.nodePath = data[key].get("path","ERR")
|
|
||||||
node.uuid = data[key].get("uuid","ERR_" + key + str(Time.get_ticks_msec()))
|
|
||||||
node._set_title(data[key].get("name","???"))
|
|
||||||
node.rows = data[key].get("rows",{})
|
|
||||||
node._update_visuals()
|
|
||||||
if node is GL_Record:
|
|
||||||
var recording_file = showtapesPath + str(_workspace_ID) + "/" + node.uuid + "_recording.tres"
|
|
||||||
var config = ConfigFile.new()
|
|
||||||
if config.load(recording_file) == OK:
|
|
||||||
node.recording = config.get_value("recording", "data", {})
|
|
||||||
|
|
||||||
|
|
||||||
func generate_new_workspace_id() -> String:
|
|
||||||
var rng = RandomNumberGenerator.new()
|
|
||||||
rng.seed = Time.get_ticks_msec()
|
|
||||||
return str(rng.randi())
|
|
||||||
|
|
||||||
func clear_holder():
|
|
||||||
for node in holder.get_children():
|
|
||||||
node.queue_free()
|
|
||||||
await get_tree().process_frame # ensure all nodes are freed
|
|
||||||
|
|
||||||
func populate_workspace_options():
|
|
||||||
optionsVar.clear()
|
|
||||||
optionsVar.add_item("New Workspace")
|
|
||||||
|
|
||||||
var dir := DirAccess.open(showtapesPath)
|
|
||||||
if dir:
|
|
||||||
dir.list_dir_begin()
|
|
||||||
var name = dir.get_next()
|
|
||||||
while name != "":
|
|
||||||
if dir.current_is_dir() and name != "." and name != "..":
|
|
||||||
optionsVar.add_item(name)
|
|
||||||
name = dir.get_next()
|
|
||||||
dir.list_dir_end()
|
|
||||||
|
|
||||||
func _on_workspace_selected(index: int):
|
|
||||||
save_everything()
|
|
||||||
|
|
||||||
if index == 0: # New Workspace
|
|
||||||
clear_holder()
|
|
||||||
_workspace_ID = generate_new_workspace_id()
|
|
||||||
save_name = "My Save"
|
|
||||||
author_name = "Unnamed Author"
|
|
||||||
version = ProjectSettings.get_setting("application/config/version")
|
|
||||||
game_title = ProjectSettings.get_setting("application/config/name")
|
|
||||||
time_created = ""
|
|
||||||
last_updated = ""
|
|
||||||
print("Created new workspace: ", _workspace_ID)
|
|
||||||
else:
|
|
||||||
var selected_name = optionsVar.get_item_text(index)
|
|
||||||
_workspace_ID = selected_name
|
|
||||||
clear_holder()
|
|
||||||
load_everything()
|
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
extends GL_Node_Picker
|
|
||||||
|
|
||||||
var audio_selector:OptionButton
|
|
||||||
var file_dialog:FileDialog
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
file_dialog = get_node("FileDialog")
|
|
||||||
audio_selector = get_node("HBox").get_node("OptionButton")
|
|
||||||
DirAccess.make_dir_recursive_absolute(find_audio_path())
|
|
||||||
file_dialog.file_selected.connect(_on_audio_file_selected)
|
|
||||||
_update_audio_options()
|
|
||||||
|
|
||||||
func _on_audio_button_pressed():
|
|
||||||
file_dialog.clear_filters()
|
|
||||||
file_dialog.current_path = OS.get_system_dir(OS.SYSTEM_DIR_DOWNLOADS)
|
|
||||||
file_dialog.add_filter("*.wav ; WAV Audio")
|
|
||||||
file_dialog.add_filter("*.mp3 ; MP3 Audio")
|
|
||||||
file_dialog.add_filter("*.ogg ; OGG Audio")
|
|
||||||
file_dialog.popup_centered()
|
|
||||||
|
|
||||||
func _on_audio_file_selected(path: String):
|
|
||||||
var filename = path.get_file()
|
|
||||||
var dest_path = find_audio_path() + "/" + filename
|
|
||||||
|
|
||||||
var file = FileAccess.open(path, FileAccess.READ)
|
|
||||||
if file:
|
|
||||||
var data = file.get_buffer(file.get_length())
|
|
||||||
file.close()
|
|
||||||
|
|
||||||
var save_file = FileAccess.open(dest_path, FileAccess.WRITE)
|
|
||||||
if save_file:
|
|
||||||
save_file.store_buffer(data)
|
|
||||||
save_file.close()
|
|
||||||
print("Saved audio to: ", dest_path)
|
|
||||||
_update_audio_options(filename) # repopulate and select this one
|
|
||||||
else:
|
|
||||||
push_error("Failed to write audio file.")
|
|
||||||
else:
|
|
||||||
push_error("Failed to read selected audio.")
|
|
||||||
|
|
||||||
func _update_audio_options(select_filename := ""):
|
|
||||||
audio_selector.clear()
|
|
||||||
var audio_files := []
|
|
||||||
|
|
||||||
var dir := DirAccess.open(find_audio_path())
|
|
||||||
if dir:
|
|
||||||
dir.list_dir_begin()
|
|
||||||
var file = dir.get_next()
|
|
||||||
while file != "":
|
|
||||||
if not dir.current_is_dir():
|
|
||||||
audio_files.append(file)
|
|
||||||
file = dir.get_next()
|
|
||||||
dir.list_dir_end()
|
|
||||||
|
|
||||||
audio_files.sort()
|
|
||||||
for i in range(audio_files.size()):
|
|
||||||
audio_selector.add_item(audio_files[i])
|
|
||||||
if audio_files[i] == select_filename:
|
|
||||||
audio_selector.select(i)
|
|
||||||
_set_audio_path(audio_files[i])
|
|
||||||
|
|
||||||
func _on_audio_option_selected(index: int):
|
|
||||||
var file = audio_selector.get_item_text(index)
|
|
||||||
_set_audio_path(file)
|
|
||||||
|
|
||||||
func _set_audio_path(file: String):
|
|
||||||
var path = find_audio_path() + "/" + file
|
|
||||||
if mainNode and mainNode.rows.has(valueName):
|
|
||||||
var audio = GL_AudioType.new()
|
|
||||||
audio.value = path
|
|
||||||
mainNode.rows[valueName]["pickValue"] = audio
|
|
||||||
print("Audio set: ", path)
|
|
||||||
else:
|
|
||||||
push_error("mainNode or rows[valueName] not found.")
|
|
||||||
|
|
||||||
func find_audio_path() -> String:
|
|
||||||
for node in get_tree().get_nodes_in_group("Node Map"):
|
|
||||||
if node is GL_Node_Map:
|
|
||||||
return "user://Showtapes/" + node._workspace_ID + "/Audio"
|
|
||||||
printerr("Uhhhhh")
|
|
||||||
return ""
|
|
|
@ -1 +0,0 @@
|
||||||
uid://rmlqvxot3kys
|
|
|
@ -26,8 +26,6 @@ func _process(delta):
|
||||||
previewLine.default_color = Color.BLACK
|
previewLine.default_color = Color.BLACK
|
||||||
TYPE_COLOR:
|
TYPE_COLOR:
|
||||||
previewLine.default_color = output
|
previewLine.default_color = output
|
||||||
if output is GL_AudioType:
|
|
||||||
previewLine.default_color = Color.BLUE_VIOLET
|
|
||||||
|
|
||||||
var connections = mainNode.rows[valueName].get("connections",[])
|
var connections = mainNode.rows[valueName].get("connections",[])
|
||||||
if connections != []:
|
if connections != []:
|
||||||
|
@ -45,13 +43,7 @@ func _process(delta):
|
||||||
child.default_color = Color.BLACK
|
child.default_color = Color.BLACK
|
||||||
TYPE_COLOR:
|
TYPE_COLOR:
|
||||||
child.default_color = output
|
child.default_color = output
|
||||||
if output is GL_AudioType:
|
|
||||||
if output.value == "":
|
|
||||||
child.default_color = Color.BLACK
|
|
||||||
else:
|
|
||||||
child.default_color = Color.BLUE_VIOLET
|
|
||||||
child.points[0] = global_position + Vector2(size.x / 2, size.y / 2)
|
child.points[0] = global_position + Vector2(size.x / 2, size.y / 2)
|
||||||
if typeof(connections[iter]["target"]) != TYPE_INT:
|
|
||||||
child.points[1] = (connections[iter]["target"] as GL_Node).give_input_point_pos(connections[iter]["input_name"])# - child.global_position
|
child.points[1] = (connections[iter]["target"] as GL_Node).give_input_point_pos(connections[iter]["input_name"])# - child.global_position
|
||||||
iter += 1
|
iter += 1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
extends GL_Node
|
extends GL_Node
|
||||||
|
|
||||||
@export var identification : String
|
@export var identification : String
|
||||||
|
@export var visual_name : String
|
||||||
@export var names : PackedStringArray
|
@export var names : PackedStringArray
|
||||||
@export var types : PackedStringArray
|
@export var types : PackedStringArray
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
super._ready()
|
super._ready()
|
||||||
_set_title(identification)
|
_set_title(visual_name)
|
||||||
if (visual_name != ""): _set_title(visual_name)
|
|
||||||
for i in names.size():
|
for i in names.size():
|
||||||
match(types[i].to_lower()):
|
match(types[i].to_lower()):
|
||||||
"float":
|
"float":
|
||||||
|
@ -16,8 +16,6 @@ func _ready():
|
||||||
_create_row(str(names[i]),Color.WHITE,null,true,Color.WHITE,0)
|
_create_row(str(names[i]),Color.WHITE,null,true,Color.WHITE,0)
|
||||||
"bool":
|
"bool":
|
||||||
_create_row(str(names[i]),false,null,true,false,0)
|
_create_row(str(names[i]),false,null,true,false,0)
|
||||||
"audio":
|
|
||||||
_create_row(str(names[i]),GL_AudioType.new(),null,true,GL_AudioType.new(),0)
|
|
||||||
_update_visuals()
|
_update_visuals()
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
extends GL_Node
|
extends GL_Node
|
||||||
class_name GL_Record
|
|
||||||
var timer:float
|
var timer:float
|
||||||
const sampleRate = 0.05
|
const sampleRate = 0.05
|
||||||
var recording:Dictionary
|
var recording:Dictionary
|
||||||
|
@ -60,18 +59,13 @@ func _traverse():
|
||||||
recording[key]["lastUsed"] = current
|
recording[key]["lastUsed"] = current
|
||||||
recording[key]["current"] = newCurrent
|
recording[key]["current"] = newCurrent
|
||||||
if recording[key]["lastUsed"] != null && recording[key]["current"] != recording[key]["end"]:
|
if recording[key]["lastUsed"] != null && recording[key]["current"] != recording[key]["end"]:
|
||||||
if(typeof(rows[key]["output"]) == TYPE_BOOL || rows[key]["output"] is GL_AudioType):
|
|
||||||
rows[key]["output"] = recording[key]["list"][recording[key]["current"]]["value"]
|
|
||||||
elif(typeof(rows[key]["output"]) == TYPE_FLOAT):
|
|
||||||
rows[key]["output"] = lerp(float(recording[key]["list"][recording[key]["lastUsed"]]["value"]),float(recording[key]["list"][recording[key]["current"]]["value"]),remap_time(time,recording[key]["list"][recording[key]["lastUsed"]]["time"],recording[key]["list"][recording[key]["current"]]["time"]))
|
|
||||||
elif(typeof(rows[key]["output"]) == TYPE_COLOR):
|
|
||||||
rows[key]["output"] = lerp(recording[key]["list"][recording[key]["lastUsed"]]["value"],recording[key]["list"][recording[key]["current"]]["value"],remap_time(time,recording[key]["list"][recording[key]["lastUsed"]]["time"],recording[key]["list"][recording[key]["current"]]["time"]))
|
rows[key]["output"] = lerp(recording[key]["list"][recording[key]["lastUsed"]]["value"],recording[key]["list"][recording[key]["current"]]["value"],remap_time(time,recording[key]["list"][recording[key]["lastUsed"]]["time"],recording[key]["list"][recording[key]["current"]]["time"]))
|
||||||
|
|
||||||
func remap_time(value: float, start: float, end: float) -> float:
|
func remap_time(value: float, start: float, end: float) -> float:
|
||||||
if start == end:
|
if start == end:
|
||||||
return 0.0
|
return 0.0
|
||||||
return (value - start) / (end - start)
|
return (value - start) / (end - start)
|
||||||
|
|
||||||
|
|
||||||
func recursive_traverse_forward(key:String,current:String) -> String:
|
func recursive_traverse_forward(key:String,current:String) -> String:
|
||||||
var dict = recording[key]["list"][current]
|
var dict = recording[key]["list"][current]
|
||||||
if dict["time"] > time:
|
if dict["time"] > time:
|
||||||
|
@ -86,6 +80,10 @@ func _record():
|
||||||
for key in recording:
|
for key in recording:
|
||||||
if key == "Recording" || key == "Current Time":
|
if key == "Recording" || key == "Current Time":
|
||||||
continue
|
continue
|
||||||
|
if defaultValues[key] == rows[key]["input"]:
|
||||||
|
continue
|
||||||
|
elif defaultValues[key] != null:
|
||||||
|
defaultValues[key] == null #is this gonna bite me back if I allow null values to pass
|
||||||
var currentSave = recording[key]["current"]
|
var currentSave = recording[key]["current"]
|
||||||
if currentSave == null:
|
if currentSave == null:
|
||||||
var id = "ID_" + str(rng.randi())
|
var id = "ID_" + str(rng.randi())
|
||||||
|
@ -100,11 +98,7 @@ func _record():
|
||||||
recording[key]["end"] = id
|
recording[key]["end"] = id
|
||||||
rows[key]["output"] = recording[key]["list"][id]["value"]
|
rows[key]["output"] = recording[key]["list"][id]["value"]
|
||||||
continue
|
continue
|
||||||
if defaultValues[key] == rows[key]["input"]:
|
else:
|
||||||
continue
|
|
||||||
elif defaultValues[key] != null:
|
|
||||||
defaultValues[key] = null #is this gonna bite me back if I allow null values to pass
|
|
||||||
if currentSave != null:
|
|
||||||
if time < oldTime: #rewind
|
if time < oldTime: #rewind
|
||||||
continue #fix pls
|
continue #fix pls
|
||||||
else: #forward
|
else: #forward
|
||||||
|
|
|
@ -1,38 +1,27 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
var rows : Array = [
|
var rows : Dictionary = {
|
||||||
"Animatronics/CyberChuck",
|
"CyberChuck":1,
|
||||||
"Animatronics/CyberHelen",
|
"CyberHelen":1,
|
||||||
"Animatronics/CyberMunch",
|
"CyberMunch":1,
|
||||||
"",
|
"ChuckSpot":1,
|
||||||
"Lighting/Spotlights",
|
"HelenSpot":1,
|
||||||
"Lighting/Floodlights",
|
"MunchSpot":1,
|
||||||
"Lighting/Backdrop Lights",
|
"Bool":1,
|
||||||
"Lighting/Misc Lights",
|
"Color":1,
|
||||||
"Lighting/Organ Lights",
|
"Float":1,
|
||||||
"",
|
"Invert":1,
|
||||||
"Add",
|
"MiscKeys":1,
|
||||||
"Audio",
|
"NumberKeys":1,
|
||||||
"Bool",
|
"Keystroke Ramp":1,
|
||||||
"Color",
|
"Lerp":1,
|
||||||
"Direct Output",
|
"Mix Colors":1,
|
||||||
"Float",
|
"Mouse Wheel":1,
|
||||||
"Invert",
|
"Random":1,
|
||||||
"Keystrokes",
|
"Record":1,
|
||||||
"Keystroke Ramp",
|
"Sine":1,
|
||||||
"Lerp",
|
"Timeline":1,
|
||||||
"Mix Colors",
|
}
|
||||||
"Mix Floats",
|
|
||||||
"Mouse Wheel",
|
|
||||||
"Multiply",
|
|
||||||
"Random",
|
|
||||||
"Record",
|
|
||||||
"Sine",
|
|
||||||
"Subtract",
|
|
||||||
"Switch Audio",
|
|
||||||
"Timeline",
|
|
||||||
]
|
|
||||||
|
|
||||||
var searching : bool
|
var searching : bool
|
||||||
var lastMousePos : Vector2
|
var lastMousePos : Vector2
|
||||||
|
|
||||||
|
@ -58,15 +47,11 @@ func _set_rows():
|
||||||
for child in container.get_children():
|
for child in container.get_children():
|
||||||
child.queue_free()
|
child.queue_free()
|
||||||
for key in rows:
|
for key in rows:
|
||||||
if str(key) == "":
|
|
||||||
container.call_deferred("add_child",load("res://Scenes/UI/Search Row.tscn").instantiate())
|
|
||||||
continue
|
|
||||||
var row = load("res://Scenes/UI/Search Row.tscn").instantiate()
|
var row = load("res://Scenes/UI/Search Row.tscn").instantiate()
|
||||||
var button = (row.get_node("Button") as Button)
|
var button = (row.get_node("Button") as Button)
|
||||||
var visualName = load("res://Scenes/Node Types/" + str(key) + ".tscn").instantiate().get_node("Node").visual_name
|
button.text = str(key)
|
||||||
button.text = visualName if visualName != "" else str(key)
|
|
||||||
button.pressed.connect(func():
|
button.pressed.connect(func():
|
||||||
_create_node(str(key))
|
_create_node(button.text)
|
||||||
)
|
)
|
||||||
button.pressed.connect(func():
|
button.pressed.connect(func():
|
||||||
_set_State(false)
|
_set_State(false)
|
||||||
|
@ -74,11 +59,9 @@ func _set_rows():
|
||||||
container.call_deferred("add_child",row)
|
container.call_deferred("add_child",row)
|
||||||
|
|
||||||
func _create_node(name:String):
|
func _create_node(name:String):
|
||||||
var path = "res://Scenes/Node Types/" + name + ".tscn"
|
var node = load("res://Scenes/Node Types/" + name + ".tscn").instantiate()
|
||||||
var node = load(path).instantiate()
|
|
||||||
get_parent().get_node("Holder").add_child(node)
|
get_parent().get_node("Holder").add_child(node)
|
||||||
node = (node as Control).get_child(0) as GL_Node
|
node = (node as Control).get_child(0) as GL_Node
|
||||||
node.nodePath = path
|
|
||||||
node.position = lastMousePos
|
node.position = lastMousePos
|
||||||
node._create_uuid()
|
node._create_uuid()
|
||||||
|
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
extends GL_Animatable
|
|
||||||
|
|
||||||
var speaker:AudioStreamPlayer
|
|
||||||
var oldPath:String
|
|
||||||
var oldTime:float
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
speaker = get_child(0)
|
|
||||||
|
|
||||||
func _sent_signals(anim_name: String, value):
|
|
||||||
if speaker == null:
|
|
||||||
printerr("Can't find Animatable Speaker, needs to be the first child of node")
|
|
||||||
return
|
|
||||||
|
|
||||||
match(anim_name):
|
|
||||||
"Audio":
|
|
||||||
if value is not GL_AudioType:
|
|
||||||
return
|
|
||||||
var path = (value as GL_AudioType).value
|
|
||||||
if path != "" && path != oldPath:
|
|
||||||
var stream
|
|
||||||
match(path.get_extension().to_lower()):
|
|
||||||
"mp3":
|
|
||||||
stream = AudioStreamMP3.load_from_file(path)
|
|
||||||
"wav":
|
|
||||||
stream = AudioStreamWAV.load_from_file(path)
|
|
||||||
"ogg":
|
|
||||||
stream = AudioStreamOggVorbis.load_from_file(path)
|
|
||||||
if stream and stream is AudioStream:
|
|
||||||
speaker.stream = stream
|
|
||||||
oldPath = path
|
|
||||||
else:
|
|
||||||
printerr("Invalid audio stream at path: ", path)
|
|
||||||
"Volume":
|
|
||||||
speaker.volume_linear = value
|
|
||||||
"Current Time":
|
|
||||||
if speaker.stream != null:
|
|
||||||
if abs(speaker.get_playback_position() - value) > 0.05 && value < speaker.stream.get_length():
|
|
||||||
speaker.play(value)
|
|
||||||
if oldTime == value:
|
|
||||||
speaker.stop()
|
|
||||||
oldTime = value
|
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
uid://c5kxam0k3beml
|
|
|
@ -1,5 +1,5 @@
|
||||||
extends GL_Animatable
|
extends GL_Animatable
|
||||||
var light:Light3D
|
var light:SpotLight3D
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
light = self.get_parent()
|
light = self.get_parent()
|
|
@ -1,15 +0,0 @@
|
||||||
extends GL_Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title("Subtract")
|
|
||||||
_create_row("Float A",0.0,0.0,true,0.0,1.0)
|
|
||||||
_create_row("Float B",0.0,null,true,0.0,1.0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
apply_pick_values()
|
|
||||||
|
|
||||||
rows["Float A"]["output"] = float(rows["Float A"]["input"]) - float(rows["Float B"]["input"])
|
|
||||||
_send_input("Float A")
|
|
|
@ -1 +0,0 @@
|
||||||
uid://bxaml7g17kutm
|
|
|
@ -1,18 +0,0 @@
|
||||||
extends GL_Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
super._ready()
|
|
||||||
_set_title("Switch Audio")
|
|
||||||
_create_row("Toggle",false,GL_AudioType.new(),true,false,0)
|
|
||||||
_create_row("Audio A",GL_AudioType.new(),null,true,GL_AudioType.new(),0)
|
|
||||||
_create_row("Audio B",GL_AudioType.new(),null,true,GL_AudioType.new(),0)
|
|
||||||
_update_visuals()
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
super._process(delta)
|
|
||||||
apply_pick_values()
|
|
||||||
if(rows["Toggle"]["input"] == false):
|
|
||||||
rows["Toggle"]["output"] = rows["Audio A"]["input"]
|
|
||||||
else:
|
|
||||||
rows["Toggle"]["output"] = rows["Audio B"]["input"]
|
|
||||||
_send_input("Toggle")
|
|
|
@ -1 +0,0 @@
|
||||||
uid://dvk3lfcqg4nwr
|
|
|
@ -1,114 +1,146 @@
|
||||||
class_name FreeLookCamera extends Camera3D
|
extends Camera3D
|
||||||
|
|
||||||
# Modifier keys' speed multiplier
|
## Camera with flying script attached to it.
|
||||||
const SHIFT_MULTIPLIER = 2.5
|
class_name Freecam3D
|
||||||
const ALT_MULTIPLIER = 1.0 / SHIFT_MULTIPLIER
|
|
||||||
|
##
|
||||||
|
## Camera with toggleable freecam mode for prototyping when creating levels, shaders, lighting, etc.
|
||||||
|
##
|
||||||
|
## Usage: Run your game, press <TAB> and fly around freely. Uses Minecraft-like controls.
|
||||||
|
##
|
||||||
|
|
||||||
|
## Customize your own toggle key to avoid collisions with your current mappings.
|
||||||
|
@export var toggle_key: Key = KEY_TAB
|
||||||
|
## Speed up / down by scrolling the mouse whell down / up
|
||||||
|
@export var invert_speed_controls: bool = false
|
||||||
|
|
||||||
|
@export var overlay_text: bool = true
|
||||||
|
|
||||||
|
## Pivot node for camera looking around
|
||||||
|
@onready var pivot := Node3D.new()
|
||||||
|
## Main parent for camera overlay.
|
||||||
|
@onready var screen_overlay := VBoxContainer.new()
|
||||||
|
## Container for the chat-like event log.
|
||||||
|
@onready var event_log := VBoxContainer.new()
|
||||||
|
|
||||||
|
const MAX_SPEED := 0.25
|
||||||
|
const MIN_SPEED := 0.01
|
||||||
|
const ACCELERATION := 0.1
|
||||||
|
const MOUSE_SENSITIVITY := 0.002
|
||||||
|
|
||||||
|
## Whether or not the camera can move.
|
||||||
|
var movement_active := false:
|
||||||
|
set(val):
|
||||||
|
movement_active = val
|
||||||
|
display_message("[Movement ON]" if movement_active else "[Movement OFF]")
|
||||||
|
|
||||||
|
## The current maximum speed. Lower or higher it by scrolling the mouse wheel.
|
||||||
|
var target_speed := MIN_SPEED
|
||||||
|
## Movement velocity.
|
||||||
|
var velocity := Vector3.ZERO
|
||||||
|
|
||||||
|
|
||||||
@export_range(0.0, 1.0) var sensitivity: float = 0.25
|
## Sets up pivot and UI overlay elements.
|
||||||
|
func _setup_nodes() -> void:
|
||||||
|
self.add_sibling(pivot)
|
||||||
|
pivot.position = position
|
||||||
|
pivot.rotation = rotation
|
||||||
|
pivot.name = "FreecamPivot"
|
||||||
|
self.reparent(pivot)
|
||||||
|
self.position = Vector3.ZERO
|
||||||
|
self.rotation = Vector3.ZERO
|
||||||
|
# UI stuff
|
||||||
|
screen_overlay.add_theme_constant_override("Separation", 8)
|
||||||
|
self.add_child(screen_overlay)
|
||||||
|
screen_overlay.add_child(_make_label("Debug Camera"))
|
||||||
|
screen_overlay.add_spacer(false)
|
||||||
|
|
||||||
# Mouse state
|
screen_overlay.add_child(event_log)
|
||||||
var _mouse_position = Vector2(0.0, 0.0)
|
screen_overlay.visible = overlay_text
|
||||||
var _total_pitch = 0.0
|
|
||||||
|
|
||||||
# Movement state
|
|
||||||
var _direction = Vector3(0.0, 0.0, 0.0)
|
|
||||||
var _velocity = Vector3(0.0, 0.0, 0.0)
|
|
||||||
var _acceleration = 30
|
|
||||||
var _deceleration = -10
|
|
||||||
var _vel_multiplier = 4
|
|
||||||
|
|
||||||
# Keyboard state
|
func _ready() -> void:
|
||||||
var _w = false
|
_setup_nodes.call_deferred()
|
||||||
var _s = false
|
_add_keybindings()
|
||||||
var _a = false
|
movement_active = true
|
||||||
var _d = false
|
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||||
var _q = false
|
|
||||||
var _e = false
|
|
||||||
var _shift = false
|
|
||||||
var _alt = false
|
|
||||||
|
|
||||||
func _input(event):
|
|
||||||
# Receives mouse motion
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
|
||||||
|
if Input.is_action_just_released("__debug_camera_toggle"):
|
||||||
|
movement_active = not movement_active
|
||||||
|
|
||||||
|
if movement_active:
|
||||||
|
var dir = Vector3.ZERO
|
||||||
|
if Input.is_action_pressed("__debug_camera_forward"): dir.z -= 1
|
||||||
|
if Input.is_action_pressed("__debug_camera_back"): dir.z += 1
|
||||||
|
if Input.is_action_pressed("__debug_camera_left"): dir.x -= 1
|
||||||
|
if Input.is_action_pressed("__debug_camera_right"): dir.x += 1
|
||||||
|
if Input.is_action_pressed("__debug_camera_up"): dir.y += 1
|
||||||
|
if Input.is_action_pressed("__debug_camera_down"): dir.y -= 1
|
||||||
|
|
||||||
|
dir = dir.normalized()
|
||||||
|
dir = dir.rotated(Vector3.UP, pivot.rotation.y)
|
||||||
|
|
||||||
|
velocity = lerp(velocity, dir * target_speed, ACCELERATION)
|
||||||
|
pivot.position += velocity
|
||||||
|
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if movement_active:
|
||||||
|
# Turn around
|
||||||
if event is InputEventMouseMotion:
|
if event is InputEventMouseMotion:
|
||||||
_mouse_position = event.relative
|
pivot.rotate_y(-event.relative.x * MOUSE_SENSITIVITY)
|
||||||
|
rotate_x(-event.relative.y * MOUSE_SENSITIVITY)
|
||||||
|
rotation.x = clamp(rotation.x, -PI/2, PI/2)
|
||||||
|
|
||||||
# Receives mouse button input
|
var speed_up = func():
|
||||||
|
target_speed = clamp(target_speed + 0.015, MIN_SPEED, MAX_SPEED)
|
||||||
|
display_message("[Speed up] " + str(target_speed))
|
||||||
|
|
||||||
|
var slow_down = func():
|
||||||
|
target_speed = clamp(target_speed - 0.015, MIN_SPEED, MAX_SPEED)
|
||||||
|
display_message("[Slow down] " + str(target_speed))
|
||||||
|
|
||||||
|
# Speed up and down with the mouse wheel
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
match event.button_index:
|
if event.button_index == MOUSE_BUTTON_WHEEL_UP and event.pressed:
|
||||||
MOUSE_BUTTON_WHEEL_UP: # Increases max velocity
|
slow_down.call() if invert_speed_controls else speed_up.call()
|
||||||
_vel_multiplier = clamp(_vel_multiplier * 1.1, 0.2, 20)
|
|
||||||
MOUSE_BUTTON_WHEEL_DOWN: # Decereases max velocity
|
|
||||||
_vel_multiplier = clamp(_vel_multiplier / 1.1, 0.2, 20)
|
|
||||||
|
|
||||||
# Receives key input
|
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN and event.pressed:
|
||||||
if event is InputEventKey:
|
speed_up.call() if invert_speed_controls else slow_down.call()
|
||||||
match event.keycode:
|
|
||||||
KEY_W:
|
|
||||||
_w = event.pressed
|
|
||||||
KEY_S:
|
|
||||||
_s = event.pressed
|
|
||||||
KEY_A:
|
|
||||||
_a = event.pressed
|
|
||||||
KEY_D:
|
|
||||||
_d = event.pressed
|
|
||||||
KEY_Q:
|
|
||||||
_q = event.pressed
|
|
||||||
KEY_E:
|
|
||||||
_e = event.pressed
|
|
||||||
KEY_SHIFT:
|
|
||||||
_shift = event.pressed
|
|
||||||
KEY_ALT:
|
|
||||||
_alt = event.pressed
|
|
||||||
|
|
||||||
# Updates mouselook and movement every frame
|
|
||||||
func _process(delta):
|
|
||||||
_update_mouselook()
|
|
||||||
_update_movement(delta)
|
|
||||||
|
|
||||||
# Updates camera movement
|
## Pushes new message label into "chat" and removes the old ones if necessary
|
||||||
func _update_movement(delta):
|
func display_message(text: String) -> void:
|
||||||
# Computes desired direction from key states
|
while event_log.get_child_count() >= 3:
|
||||||
_direction = Vector3(
|
event_log.remove_child(event_log.get_child(0))
|
||||||
(_d as float) - (_a as float),
|
|
||||||
(_e as float) - (_q as float),
|
|
||||||
(_s as float) - (_w as float)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Computes the change in velocity due to desired direction and "drag"
|
event_log.add_child(_make_label(text))
|
||||||
# The "drag" is a constant acceleration on the camera to bring it's velocity to 0
|
|
||||||
var offset = _direction.normalized() * _acceleration * _vel_multiplier * delta \
|
|
||||||
+ _velocity.normalized() * _deceleration * _vel_multiplier * delta
|
|
||||||
|
|
||||||
# Compute modifiers' speed multiplier
|
|
||||||
var speed_multi = 1
|
|
||||||
if _shift: speed_multi *= SHIFT_MULTIPLIER
|
|
||||||
if _alt: speed_multi *= ALT_MULTIPLIER
|
|
||||||
|
|
||||||
# Checks if we should bother translating the camera
|
func _make_label(text: String) -> Label:
|
||||||
if _direction == Vector3.ZERO and offset.length_squared() > _velocity.length_squared():
|
var l = Label.new()
|
||||||
# Sets the velocity to 0 to prevent jittering due to imperfect deceleration
|
l.text = text
|
||||||
_velocity = Vector3.ZERO
|
return l
|
||||||
else:
|
|
||||||
# Clamps speed to stay within maximum value (_vel_multiplier)
|
|
||||||
_velocity.x = clamp(_velocity.x + offset.x, -_vel_multiplier, _vel_multiplier)
|
|
||||||
_velocity.y = clamp(_velocity.y + offset.y, -_vel_multiplier, _vel_multiplier)
|
|
||||||
_velocity.z = clamp(_velocity.z + offset.z, -_vel_multiplier, _vel_multiplier)
|
|
||||||
|
|
||||||
translate(_velocity * delta * speed_multi)
|
|
||||||
|
|
||||||
# Updates mouse look
|
func _add_keybindings() -> void:
|
||||||
func _update_mouselook():
|
var actions = InputMap.get_actions()
|
||||||
# Only rotates mouse if the mouse is captured
|
if "__debug_camera_forward" not in actions: _add_key_input_action("__debug_camera_forward", KEY_W)
|
||||||
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
|
if "__debug_camera_back" not in actions: _add_key_input_action("__debug_camera_back", KEY_S)
|
||||||
_mouse_position *= sensitivity
|
if "__debug_camera_left" not in actions: _add_key_input_action("__debug_camera_left", KEY_A)
|
||||||
var yaw = _mouse_position.x
|
if "__debug_camera_right" not in actions: _add_key_input_action("__debug_camera_right", KEY_D)
|
||||||
var pitch = _mouse_position.y
|
if "__debug_camera_up" not in actions: _add_key_input_action("__debug_camera_up", KEY_E)
|
||||||
_mouse_position = Vector2(0, 0)
|
if "__debug_camera_down" not in actions: _add_key_input_action("__debug_camera_down", KEY_Q)
|
||||||
|
if "__debug_camera_toggle" not in actions: _add_key_input_action("__debug_camera_toggle", toggle_key)
|
||||||
|
|
||||||
# Prevents looking up/down too far
|
|
||||||
pitch = clamp(pitch, -90 - _total_pitch, 90 - _total_pitch)
|
|
||||||
_total_pitch += pitch
|
|
||||||
|
|
||||||
rotate_y(deg_to_rad(-yaw))
|
func _add_key_input_action(name: String, key: Key) -> void:
|
||||||
rotate_object_local(Vector3(1,0,0), deg_to_rad(-pitch))
|
var ev = InputEventKey.new()
|
||||||
|
ev.physical_keycode = key
|
||||||
|
|
||||||
|
InputMap.add_action(name)
|
||||||
|
InputMap.action_add_event(name, ev)
|
||||||
|
|
Binary file not shown.
|
@ -1,35 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="font_data_dynamic"
|
|
||||||
type="FontFile"
|
|
||||||
uid="uid://bcm25c810gr7w"
|
|
||||||
path="res://.godot/imported/DejaVuSans.ttf-6ab86727a992bf60e7dc8a22f570ec7c.fontdata"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://UI/Fonts/DejaVuSans.ttf"
|
|
||||||
dest_files=["res://.godot/imported/DejaVuSans.ttf-6ab86727a992bf60e7dc8a22f570ec7c.fontdata"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
Rendering=null
|
|
||||||
antialiasing=1
|
|
||||||
generate_mipmaps=false
|
|
||||||
disable_embedded_bitmaps=true
|
|
||||||
multichannel_signed_distance_field=false
|
|
||||||
msdf_pixel_range=8
|
|
||||||
msdf_size=48
|
|
||||||
allow_system_fallback=true
|
|
||||||
force_autohinter=false
|
|
||||||
hinting=1
|
|
||||||
subpixel_positioning=4
|
|
||||||
keep_rounding_remainders=true
|
|
||||||
oversampling=0.0
|
|
||||||
Fallbacks=null
|
|
||||||
fallbacks=[]
|
|
||||||
Compress=null
|
|
||||||
compress=true
|
|
||||||
preload=[]
|
|
||||||
language_support={}
|
|
||||||
script_support={}
|
|
||||||
opentype_features={}
|
|
Binary file not shown.
|
@ -1,35 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="font_data_dynamic"
|
|
||||||
type="FontFile"
|
|
||||||
uid="uid://lhwwaugousps"
|
|
||||||
path="res://.godot/imported/OpenMoji.ttf-9a7765726db11a4ea74a9eeb97dd208a.fontdata"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://UI/Fonts/OpenMoji.ttf"
|
|
||||||
dest_files=["res://.godot/imported/OpenMoji.ttf-9a7765726db11a4ea74a9eeb97dd208a.fontdata"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
Rendering=null
|
|
||||||
antialiasing=1
|
|
||||||
generate_mipmaps=false
|
|
||||||
disable_embedded_bitmaps=true
|
|
||||||
multichannel_signed_distance_field=false
|
|
||||||
msdf_pixel_range=8
|
|
||||||
msdf_size=48
|
|
||||||
allow_system_fallback=true
|
|
||||||
force_autohinter=false
|
|
||||||
hinting=1
|
|
||||||
subpixel_positioning=4
|
|
||||||
keep_rounding_remainders=true
|
|
||||||
oversampling=0.0
|
|
||||||
Fallbacks=null
|
|
||||||
fallbacks=[]
|
|
||||||
Compress=null
|
|
||||||
compress=true
|
|
||||||
preload=[]
|
|
||||||
language_support={}
|
|
||||||
script_support={}
|
|
||||||
opentype_features={}
|
|
|
@ -1,24 +1,10 @@
|
||||||
[gd_resource type="Theme" load_steps=4 format=3 uid="uid://cxi113pis5rln"]
|
[gd_resource type="Theme" load_steps=2 format=3 uid="uid://b3wjoiiv6sq22"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://dcdio2wynh45e" path="res://UI/Fonts/DejaVuSans.ttf" id="1_crk4k"]
|
|
||||||
[ext_resource type="StyleBox" uid="uid://crsm0yvhb6rv1" path="res://UI/Themes/NodeTheme.tres" id="1_ne1i0"]
|
[ext_resource type="StyleBox" uid="uid://crsm0yvhb6rv1" path="res://UI/Themes/NodeTheme.tres" id="1_ne1i0"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_crk4k"]
|
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
Button/fonts/font = ExtResource("1_crk4k")
|
|
||||||
Label/colors/font_color = Color(1, 1, 1, 1)
|
|
||||||
Label/colors/font_outline_color = Color(0, 0, 0, 1)
|
|
||||||
Label/colors/font_shadow_color = Color(0, 0, 0, 0)
|
|
||||||
Label/constants/line_spacing = 3
|
|
||||||
Label/constants/outline_size = 0
|
|
||||||
Label/constants/shadow_offset_x = 1
|
|
||||||
Label/constants/shadow_offset_y = 1
|
|
||||||
Label/constants/shadow_outline_size = 1
|
|
||||||
Label/font_sizes/font_size = 12
|
Label/font_sizes/font_size = 12
|
||||||
Label/fonts/font = ExtResource("1_crk4k")
|
Label/fonts/font = null
|
||||||
Label/styles/normal = SubResource("StyleBoxEmpty_crk4k")
|
|
||||||
LineEdit/fonts/font = ExtResource("1_crk4k")
|
|
||||||
MarginContainer/constants/margin_bottom = 10
|
MarginContainer/constants/margin_bottom = 10
|
||||||
MarginContainer/constants/margin_left = 10
|
MarginContainer/constants/margin_left = 10
|
||||||
MarginContainer/constants/margin_right = 10
|
MarginContainer/constants/margin_right = 10
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dkesga4w80a58"
|
uid="uid://c3hmtf0h6vtnr"
|
||||||
path="res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex"
|
path="res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
|
@ -12,10 +12,10 @@ config_version=5
|
||||||
|
|
||||||
config/name="Give LIFE Cybers"
|
config/name="Give LIFE Cybers"
|
||||||
config/description="Cyberamics Simulator and programmer using Give LIFE's engine"
|
config/description="Cyberamics Simulator and programmer using Give LIFE's engine"
|
||||||
config/version="0.2-base0.4.1"
|
config/version="0.1-base0.2a"
|
||||||
run/main_scene="uid://qvo7vlvac8o5"
|
run/main_scene="uid://qvo7vlvac8o5"
|
||||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||||
config/icon="uid://dkesga4w80a58"
|
config/icon="uid://c3hmtf0h6vtnr"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
|
@ -32,5 +32,3 @@ renderer/rendering_method="gl_compatibility"
|
||||||
renderer/rendering_method.mobile="gl_compatibility"
|
renderer/rendering_method.mobile="gl_compatibility"
|
||||||
textures/vram_compression/import_etc2_astc=true
|
textures/vram_compression/import_etc2_astc=true
|
||||||
anti_aliasing/quality/msaa_3d=2
|
anti_aliasing/quality/msaa_3d=2
|
||||||
limits/opengl/max_renderable_lights=128
|
|
||||||
limits/opengl/max_lights_per_object=128
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue