add all files
This commit is contained in:
parent
feb5df41ea
commit
371bda867d
34 changed files with 1875 additions and 14 deletions
15
.gitignore
vendored
15
.gitignore
vendored
|
@ -1,17 +1,4 @@
|
||||||
# ---> Godot
|
|
||||||
# Godot 4+ specific ignores
|
# Godot 4+ specific ignores
|
||||||
.godot/
|
.godot/
|
||||||
|
/android/
|
||||||
# Godot-specific ignores
|
|
||||||
.import/
|
|
||||||
export.cfg
|
|
||||||
export_presets.cfg
|
export_presets.cfg
|
||||||
|
|
||||||
# Imported translations (automatically generated from CSV files)
|
|
||||||
*.translation
|
|
||||||
|
|
||||||
# Mono-specific ignores
|
|
||||||
.mono/
|
|
||||||
data_*/
|
|
||||||
mono_crash.*.json
|
|
||||||
|
|
||||||
|
|
BIN
Models/3stHelen.glb
Normal file
BIN
Models/3stHelen.glb
Normal file
Binary file not shown.
37
Models/3stHelen.glb.import
Normal file
37
Models/3stHelen.glb.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://f0fkcs7erhop"
|
||||||
|
path="res://.godot/imported/3stHelen.glb-c3541fdb7863c3136dcc986fabbb06be.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Models/3stHelen.glb"
|
||||||
|
dest_files=["res://.godot/imported/3stHelen.glb-c3541fdb7863c3136dcc986fabbb06be.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
|
BIN
Models/3stHelen_beak.png
Normal file
BIN
Models/3stHelen_beak.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 178 B |
38
Models/3stHelen_beak.png.import
Normal file
38
Models/3stHelen_beak.png.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bprmuf7jpffy3"
|
||||||
|
path.s3tc="res://.godot/imported/3stHelen_beak.png-da72f62ca7ac7e5bf5593b4d1be3a7ee.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "e62a49cd7edd0e5c4fe2d3d2bc6a61b9"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Models/3stHelen_beak.png"
|
||||||
|
dest_files=["res://.godot/imported/3stHelen_beak.png-da72f62ca7ac7e5bf5593b4d1be3a7ee.s3tc.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
|
BIN
Models/3stHelen_shoes.png
Normal file
BIN
Models/3stHelen_shoes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 180 B |
38
Models/3stHelen_shoes.png.import
Normal file
38
Models/3stHelen_shoes.png.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cm8h5o5urcvym"
|
||||||
|
path.s3tc="res://.godot/imported/3stHelen_shoes.png-97c060c3fc3442bff6f75c94bc90506a.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "239e23627ba253afcd70dc24f1087fb1"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Models/3stHelen_shoes.png"
|
||||||
|
dest_files=["res://.godot/imported/3stHelen_shoes.png-97c060c3fc3442bff6f75c94bc90506a.s3tc.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
|
38
Models/Chuck.fbx.import
Normal file
38
Models/Chuck.fbx.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://cs0va7jp6fjfa"
|
||||||
|
path="res://.godot/imported/Chuck.fbx-e0f76e66bd2d66a68bf43edbd8d1d948.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3-Stage/Models/Chuck.fbx"
|
||||||
|
dest_files=["res://.godot/imported/Chuck.fbx-e0f76e66bd2d66a68bf43edbd8d1d948.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=true
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
fbx/importer=0
|
||||||
|
fbx/allow_geometry_helper_nodes=false
|
||||||
|
fbx/embedded_image_handling=1
|
38
Models/Helen.fbx.import
Normal file
38
Models/Helen.fbx.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://5i7srffes8ut"
|
||||||
|
path="res://.godot/imported/Helen.fbx-a3dcdd674756aa7b6860353ece3f39df.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3-Stage/Models/Helen.fbx"
|
||||||
|
dest_files=["res://.godot/imported/Helen.fbx-a3dcdd674756aa7b6860353ece3f39df.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=true
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
fbx/importer=0
|
||||||
|
fbx/allow_geometry_helper_nodes=false
|
||||||
|
fbx/embedded_image_handling=1
|
38
Models/Jasper.fbx.import
Normal file
38
Models/Jasper.fbx.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://b4xrsr1w4t017"
|
||||||
|
path="res://.godot/imported/Jasper.fbx-172cc49326619adb06baca5b9e28470b.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3-Stage/Models/Jasper.fbx"
|
||||||
|
dest_files=["res://.godot/imported/Jasper.fbx-172cc49326619adb06baca5b9e28470b.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=true
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
fbx/importer=0
|
||||||
|
fbx/allow_geometry_helper_nodes=false
|
||||||
|
fbx/embedded_image_handling=1
|
38
Models/Munch.fbx.import
Normal file
38
Models/Munch.fbx.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://y5jsfwdmgwkq"
|
||||||
|
path="res://.godot/imported/Munch.fbx-5aedcf1ca9583a75c301f71dc6519957.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3-Stage/Models/Munch.fbx"
|
||||||
|
dest_files=["res://.godot/imported/Munch.fbx-5aedcf1ca9583a75c301f71dc6519957.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=true
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
fbx/importer=0
|
||||||
|
fbx/allow_geometry_helper_nodes=false
|
||||||
|
fbx/embedded_image_handling=1
|
38
Models/Pasqually.fbx.import
Normal file
38
Models/Pasqually.fbx.import
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://c66qevr67an0l"
|
||||||
|
path="res://.godot/imported/Pasqually.fbx-764599cdc792a8e7936bfd485f85d0d3.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3-Stage/Models/Pasqually.fbx"
|
||||||
|
dest_files=["res://.godot/imported/Pasqually.fbx-764599cdc792a8e7936bfd485f85d0d3.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=true
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
fbx/importer=0
|
||||||
|
fbx/allow_geometry_helper_nodes=false
|
||||||
|
fbx/embedded_image_handling=1
|
BIN
Models/Room.glb
Normal file
BIN
Models/Room.glb
Normal file
Binary file not shown.
37
Models/Room.glb.import
Normal file
37
Models/Room.glb.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://bhoeqcsdb0fx2"
|
||||||
|
path="res://.godot/imported/Room.glb-057b6820edeabb93a1fe769eeffdac34.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Models/Room.glb"
|
||||||
|
dest_files=["res://.godot/imported/Room.glb-057b6820edeabb93a1fe769eeffdac34.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
|
BIN
Models/Stage.glb
Normal file
BIN
Models/Stage.glb
Normal file
Binary file not shown.
37
Models/Stage.glb.import
Normal file
37
Models/Stage.glb.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://btvomf1ayoypu"
|
||||||
|
path="res://.godot/imported/Stage.glb-38d445218888b57ffbbfd79eb6fd72c0.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Models/Stage.glb"
|
||||||
|
dest_files=["res://.godot/imported/Stage.glb-38d445218888b57ffbbfd79eb6fd72c0.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
|
42
Scenes/GUI/Controls/FlowSlider.tscn
Normal file
42
Scenes/GUI/Controls/FlowSlider.tscn
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://blg1c3v4o44of"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://blhv0kms1sleu" path="res://Scripts/FlowSlider.gd" id="1_q164o"]
|
||||||
|
|
||||||
|
[node name="FlowSlider" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_right = -1280.0
|
||||||
|
offset_bottom = -720.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_q164o")
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_right = 96.0
|
||||||
|
offset_bottom = 32.0
|
||||||
|
|
||||||
|
[node name="Slider" type="HSlider" parent="Panel"]
|
||||||
|
layout_mode = 2
|
||||||
|
offset_left = 4.0
|
||||||
|
offset_right = 64.0
|
||||||
|
offset_bottom = 32.0
|
||||||
|
size_flags_vertical = 1
|
||||||
|
max_value = 5.0
|
||||||
|
step = 0.1
|
||||||
|
value = 1.0
|
||||||
|
|
||||||
|
[node name="ValueLabel" type="Label" parent="Panel"]
|
||||||
|
layout_mode = 2
|
||||||
|
offset_left = 64.0
|
||||||
|
offset_right = 96.0
|
||||||
|
offset_bottom = 32.0
|
||||||
|
size_flags_horizontal = 8
|
||||||
|
size_flags_vertical = 1
|
||||||
|
text = "1.0"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[connection signal="value_changed" from="Panel/Slider" to="." method="_on_slider_value_changed"]
|
49
Scenes/GUI/Controls/IndicatorLight.tscn
Normal file
49
Scenes/GUI/Controls/IndicatorLight.tscn
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://cbf3x44mvo701"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cg157l4uo7ki8" path="res://Scripts/IndicatorLight.gd" id="1_l718a"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1pi70"]
|
||||||
|
bg_color = Color(0, 0, 0, 1)
|
||||||
|
corner_radius_top_left = 12
|
||||||
|
corner_radius_top_right = 12
|
||||||
|
corner_radius_bottom_right = 12
|
||||||
|
corner_radius_bottom_left = 12
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5m0fm"]
|
||||||
|
bg_color = Color(0, 1, 0, 1)
|
||||||
|
corner_radius_top_left = 12
|
||||||
|
corner_radius_top_right = 12
|
||||||
|
corner_radius_bottom_right = 12
|
||||||
|
corner_radius_bottom_left = 12
|
||||||
|
|
||||||
|
[node name="IndicatorLight" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_right = -1280.0
|
||||||
|
offset_bottom = -720.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_l718a")
|
||||||
|
|
||||||
|
[node name="Container" type="Panel" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_right = 32.0
|
||||||
|
offset_bottom = 32.0
|
||||||
|
|
||||||
|
[node name="Black" type="Panel" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 4.0
|
||||||
|
offset_top = 4.0
|
||||||
|
offset_right = 28.0
|
||||||
|
offset_bottom = 28.0
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_1pi70")
|
||||||
|
|
||||||
|
[node name="Green" type="Panel" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 4.0
|
||||||
|
offset_top = 4.0
|
||||||
|
offset_right = 28.0
|
||||||
|
offset_bottom = 28.0
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_5m0fm")
|
1040
Scenes/GUI/EditorScreen.tscn
Normal file
1040
Scenes/GUI/EditorScreen.tscn
Normal file
File diff suppressed because it is too large
Load diff
4
Scenes/GUI/FlyoutButtonGroup.tres
Normal file
4
Scenes/GUI/FlyoutButtonGroup.tres
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[gd_resource type="ButtonGroup" format=3 uid="uid://bij2tonqeslpt"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
allow_unpress = true
|
46
Scenes/Stages/HelenHouse.tscn
Normal file
46
Scenes/Stages/HelenHouse.tscn
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://btre5j66mpchy"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://f0fkcs7erhop" path="res://Models/3stHelen.glb" id="2_e7oou"]
|
||||||
|
[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/HelenController.gd" id="3_e2vvs"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bhoeqcsdb0fx2" path="res://Models/Room.glb" id="4_pv43k"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://btvomf1ayoypu" path="res://Models/Stage.glb" id="5_afett"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_axk5g"]
|
||||||
|
ambient_light_source = 1
|
||||||
|
|
||||||
|
[node name="HelenHouse" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="3stHelen" parent="." instance=ExtResource("2_e7oou")]
|
||||||
|
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0.25, 0)
|
||||||
|
script = ExtResource("3_e2vvs")
|
||||||
|
|
||||||
|
[node name="Room" parent="." instance=ExtResource("4_pv43k")]
|
||||||
|
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="Stage" parent="." instance=ExtResource("5_afett")]
|
||||||
|
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(-1, 1.31601e-08, -1.50421e-07, 0, 0.996195, 0.0871557, 1.50996e-07, 0.0871557, -0.996195, 0, 1.5, -3)
|
||||||
|
fov = 60.0
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_axk5g")
|
||||||
|
|
||||||
|
[node name="SpotLight3D" type="SpotLight3D" parent="."]
|
||||||
|
transform = Transform3D(-0.972974, -0.0597654, 0.223048, 2.26267e-08, 0.965926, 0.258819, -0.230916, 0.251824, -0.939821, 0.217544, 1.75308, -1.04223)
|
||||||
|
light_color = Color(1, 0.9625, 0.85, 1)
|
||||||
|
light_energy = 2.0
|
||||||
|
spot_range = 1.3068
|
||||||
|
spot_angle = 27.449
|
||||||
|
spot_angle_attenuation = 0.1
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2.5, -3)
|
||||||
|
light_color = Color(1, 0.960784, 0.85098, 1)
|
||||||
|
light_energy = 0.5
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2.5, -3)
|
||||||
|
light_color = Color(1, 0.960784, 0.85098, 1)
|
||||||
|
light_energy = 0.5
|
161
Scripts/EditorScreen.gd
Normal file
161
Scripts/EditorScreen.gd
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
signal movement_in(movement, rate)
|
||||||
|
signal movement_out(movement, rate)
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
var animatronic = $"SubViewport/HelenHouse/3stHelen"
|
||||||
|
movement_in.connect(animatronic._movement_in)
|
||||||
|
movement_out.connect(animatronic._movement_out)
|
||||||
|
movement_in.connect(self._movement_in)
|
||||||
|
movement_out.connect(self._movement_out)
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if event.is_action_pressed("toggle_editor_screen"):
|
||||||
|
$CameraPreview.visible = !$CameraPreview.visible;
|
||||||
|
$CameraFullScreen.visible = !$CameraFullScreen.visible;
|
||||||
|
|
||||||
|
func _on_movements_flyout_button_toggled(toggled_on: bool) -> void:
|
||||||
|
$Movements.visible = toggled_on
|
||||||
|
|
||||||
|
func _on_flows_flyout_button_toggled(toggled_on: bool) -> void:
|
||||||
|
$FlowControls.visible = toggled_on
|
||||||
|
|
||||||
|
func _movement_in(movement, rate):
|
||||||
|
get_node("Movements/IndicatorLights/" + movement).turn_on();
|
||||||
|
|
||||||
|
func _movement_out(movement, rate):
|
||||||
|
get_node("Movements/IndicatorLights/" + movement).turn_off();
|
||||||
|
|
||||||
|
|
||||||
|
func _on_mouth_button_down() -> void:
|
||||||
|
movement_in.emit("Mouth", $FlowControls/InFlows/MouthFlow.value)
|
||||||
|
|
||||||
|
func _on_mouth_button_up() -> void:
|
||||||
|
movement_out.emit("Mouth", $FlowControls/OutFlows/MouthFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_left_ear_button_down() -> void:
|
||||||
|
movement_in.emit("Left Ear", $FlowControls/InFlows/LeftEarFlow.value)
|
||||||
|
|
||||||
|
func _on_left_ear_button_up() -> void:
|
||||||
|
movement_out.emit("Left Ear", $FlowControls/OutFlows/LeftEarFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_right_ear_button_down() -> void:
|
||||||
|
movement_in.emit("Right Ear", $FlowControls/InFlows/RightEarFlow.value)
|
||||||
|
|
||||||
|
func _on_right_ear_button_up() -> void:
|
||||||
|
movement_out.emit("Right Ear", $FlowControls/OutFlows/RightEarFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_left_eyelid_button_down() -> void:
|
||||||
|
movement_in.emit("Left Eyelid", $FlowControls/InFlows/LeftEyelidFlow.value)
|
||||||
|
|
||||||
|
func _on_left_eyelid_button_up() -> void:
|
||||||
|
movement_out.emit("Left Eyelid", $FlowControls/OutFlows/LeftEyelidFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_right_eyelid_button_down() -> void:
|
||||||
|
movement_in.emit("Right Eyelid", $FlowControls/InFlows/RightEyelidFlow.value)
|
||||||
|
|
||||||
|
func _on_right_eyelid_button_up() -> void:
|
||||||
|
movement_out.emit("Right Eyelid", $FlowControls/OutFlows/RightEyelidFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_eyes_left_button_down() -> void:
|
||||||
|
movement_in.emit("Eyes Left", $FlowControls/InFlows/EyesLeftFlow.value)
|
||||||
|
|
||||||
|
func _on_eyes_left_button_up() -> void:
|
||||||
|
movement_out.emit("Eyes Left", $FlowControls/OutFlows/EyesLeftFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_eyes_right_button_down() -> void:
|
||||||
|
movement_in.emit("Eyes Right", $FlowControls/InFlows/EyesRightFlow.value)
|
||||||
|
|
||||||
|
func _on_eyes_right_button_up() -> void:
|
||||||
|
movement_out.emit("Eyes Right", $FlowControls/OutFlows/EyesRightFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_head_left_button_down() -> void:
|
||||||
|
movement_in.emit("Head Left", $FlowControls/InFlows/HeadLeftFlow.value)
|
||||||
|
|
||||||
|
func _on_head_left_button_up() -> void:
|
||||||
|
movement_out.emit("Head Left", $FlowControls/OutFlows/HeadLeftFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_head_right_button_down() -> void:
|
||||||
|
movement_in.emit("Head Right", $FlowControls/InFlows/HeadRightFlow.value)
|
||||||
|
|
||||||
|
func _on_head_right_button_up() -> void:
|
||||||
|
movement_out.emit("Head Right", $FlowControls/OutFlows/HeadRightFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_head_up_button_down() -> void:
|
||||||
|
movement_in.emit("Head Up", $FlowControls/InFlows/HeadUpFlow.value)
|
||||||
|
|
||||||
|
func _on_head_up_button_up() -> void:
|
||||||
|
movement_out.emit("Head Up", $FlowControls/OutFlows/HeadUpFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_left_arm_up_button_down() -> void:
|
||||||
|
movement_in.emit("Left Arm Up", $FlowControls/InFlows/LeftArmUpFlow.value)
|
||||||
|
|
||||||
|
func _on_left_arm_up_button_up() -> void:
|
||||||
|
movement_out.emit("Left Arm Up", $FlowControls/OutFlows/LeftArmUpFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_left_arm_twist_button_down() -> void:
|
||||||
|
movement_in.emit("Left Arm Twist", $FlowControls/InFlows/LeftArmTwistFlow.value)
|
||||||
|
|
||||||
|
func _on_left_arm_twist_button_up() -> void:
|
||||||
|
movement_out.emit("Left Arm Twist", $FlowControls/OutFlows/LeftArmTwistFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_left_elbow_button_down() -> void:
|
||||||
|
movement_in.emit("Left Elbow", $FlowControls/InFlows/LeftElbowFlow.value)
|
||||||
|
|
||||||
|
func _on_left_elbow_button_up() -> void:
|
||||||
|
movement_out.emit("Left Elbow", $FlowControls/OutFlows/LeftElbowFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_right_arm_up_button_down() -> void:
|
||||||
|
movement_in.emit("Right Arm Up", $FlowControls/InFlows/RightArmUpFlow.value)
|
||||||
|
|
||||||
|
func _on_right_arm_up_button_up() -> void:
|
||||||
|
movement_out.emit("Right Arm Up", $FlowControls/OutFlows/RightArmUpFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_right_arm_twist_button_down() -> void:
|
||||||
|
movement_in.emit("Right Arm Twist", $FlowControls/InFlows/RightArmTwistFlow.value)
|
||||||
|
|
||||||
|
func _on_right_arm_twist_button_up() -> void:
|
||||||
|
movement_out.emit("Right Arm Twist", $FlowControls/OutFlows/RightArmTwistFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_right_elbow_button_down() -> void:
|
||||||
|
movement_in.emit("Right Elbow", $FlowControls/InFlows/RightElbowFlow.value)
|
||||||
|
|
||||||
|
func _on_right_elbow_button_up() -> void:
|
||||||
|
movement_out.emit("Right Elbow", $FlowControls/OutFlows/RightElbowFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_left_button_down() -> void:
|
||||||
|
movement_in.emit("Body Left", $FlowControls/InFlows/BodyLeftFlow.value)
|
||||||
|
|
||||||
|
func _on_body_left_button_up() -> void:
|
||||||
|
movement_out.emit("Body Left", $FlowControls/OutFlows/BodyLeftFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_right_button_down() -> void:
|
||||||
|
movement_in.emit("Body Right", $FlowControls/InFlows/BodyRightFlow.value)
|
||||||
|
|
||||||
|
func _on_body_right_button_up() -> void:
|
||||||
|
movement_out.emit("Body Right", $FlowControls/OutFlows/BodyRightFlow.value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_lean_button_down() -> void:
|
||||||
|
movement_in.emit("Body Lean", $FlowControls/InFlows/BodyLeanFlow.value)
|
||||||
|
|
||||||
|
func _on_body_lean_button_up() -> void:
|
||||||
|
movement_out.emit("Body Lean", $FlowControls/OutFlows/BodyLeanFlow.value)
|
1
Scripts/EditorScreen.gd.uid
Normal file
1
Scripts/EditorScreen.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://dfiwoln8mdwm8
|
10
Scripts/FlowSlider.gd
Normal file
10
Scripts/FlowSlider.gd
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
@export var value : float = 1.0
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$Panel/Slider.value = self.value
|
||||||
|
|
||||||
|
func _on_slider_value_changed(value: float) -> void:
|
||||||
|
self.value = $Panel/Slider.value
|
||||||
|
$Panel/ValueLabel.text = str(self.value)
|
1
Scripts/FlowSlider.gd.uid
Normal file
1
Scripts/FlowSlider.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://blhv0kms1sleu
|
14
Scripts/HelenController.gd
Normal file
14
Scripts/HelenController.gd
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
var animation_player
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
animation_player = $AnimationPlayer
|
||||||
|
|
||||||
|
func _movement_in(movement, rate):
|
||||||
|
animation_player.speed_scale = rate
|
||||||
|
animation_player.play(movement)
|
||||||
|
|
||||||
|
func _movement_out(movement, rate):
|
||||||
|
animation_player.speed_scale = rate
|
||||||
|
animation_player.play_backwards(movement)
|
1
Scripts/HelenController.gd.uid
Normal file
1
Scripts/HelenController.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://bu68w4jnh0n2b
|
22
Scripts/IndicatorLight.gd
Normal file
22
Scripts/IndicatorLight.gd
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
@export var on: bool = false
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$Green.visible = self.on
|
||||||
|
|
||||||
|
func turn_on() -> void:
|
||||||
|
self.on = true
|
||||||
|
$Green.visible = self.on
|
||||||
|
|
||||||
|
func turn_off() -> void:
|
||||||
|
self.on = false
|
||||||
|
$Green.visible = self.on
|
||||||
|
|
||||||
|
func toggle() -> void:
|
||||||
|
self.on = !self.on
|
||||||
|
$Green.visible = self.on
|
||||||
|
|
||||||
|
func set_state(value: bool) -> void:
|
||||||
|
self.on = value
|
||||||
|
$Green.visible = self.on
|
1
Scripts/IndicatorLight.gd.uid
Normal file
1
Scripts/IndicatorLight.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cg157l4uo7ki8
|
BIN
UI/BlankCam.png
Normal file
BIN
UI/BlankCam.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
34
UI/BlankCam.png.import
Normal file
34
UI/BlankCam.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://s3yr2wasxv03"
|
||||||
|
path="res://.godot/imported/BlankCam.png-3a3fce0de965b84e3e9f90ae65ca082a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://UI/BlankCam.png"
|
||||||
|
dest_files=["res://.godot/imported/BlankCam.png-3a3fce0de965b84e3e9f90ae65ca082a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
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=1
|
BIN
icon.png
Normal file
BIN
icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
34
icon.png.import
Normal file
34
icon.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dhjuhhilgmxq3"
|
||||||
|
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.png"
|
||||||
|
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
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=1
|
37
project.godot
Normal file
37
project.godot
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=5
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="Pneumatic Plaything"
|
||||||
|
config/version="v0.1"
|
||||||
|
run/main_scene="uid://oiehbor0dlqx"
|
||||||
|
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||||
|
boot_splash/show_image=false
|
||||||
|
config/icon="uid://dhjuhhilgmxq3"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/viewport_width=1280
|
||||||
|
window/size/viewport_height=720
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
toggle_editor_screen={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
renderer/rendering_method="gl_compatibility"
|
||||||
|
renderer/rendering_method.mobile="gl_compatibility"
|
Loading…
Add table
Add a link
Reference in a new issue