feature/connect-level-and-reset-btn (#77)
Co-authored-by: VAILLANT Jeremy <vaillant.jeremy@dev-crea.com> Reviewed-on: Athena/game-source#77 Co-authored-by: darknight <vaillant.jeremy@dev-crea.com> Co-committed-by: darknight <vaillant.jeremy@dev-crea.com>
This commit is contained in:
@@ -59,3 +59,6 @@ $RECYCLE.BIN/
|
||||
|
||||
# Ignore folders releases and build Android
|
||||
releases
|
||||
|
||||
# Ignore override godot
|
||||
override.cfg
|
||||
|
||||
@@ -1,102 +1,8 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://assets/props/book/sm_book_lod1.mesh" type="ArrayMesh" id=2]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
script/source = "# Copyright © 2020 Hugo Locurcio and contributors - MIT License
|
||||
# See `LICENSE.md` included in the source distribution for details.
|
||||
extends Spatial
|
||||
class_name LODSpatial, \"res://addons/lod/lod_spatial.svg\"
|
||||
|
||||
# If `false`, LOD won't update anymore. This can be used for performance comparison
|
||||
# purposes.
|
||||
export var enable_lod := true
|
||||
|
||||
# The maximum LOD 0 (high quality) distance in units.
|
||||
export(float, 0.0, 1000.0, 0.1) var lod_0_max_distance := 10
|
||||
|
||||
# The maximum LOD 1 (medium quality) distance in units.
|
||||
export(float, 0.0, 1000.0, 0.1) var lod_1_max_distance := 25
|
||||
|
||||
# The maximum LOD 2 (low quality) distance in units.
|
||||
# Past this distance, all LOD variants are hidden.
|
||||
export(float, 0.0, 1000.0, 0.1) var lod_2_max_distance := 100
|
||||
|
||||
# The rate at which LODs will be updated (in seconds). Lower values are more reactive
|
||||
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
|
||||
# Set this accordingly depending on your camera movement speed.
|
||||
# The default value should suit most projects already.
|
||||
# Note: Slow cameras don't need to have LOD-enabled objects update their status often.
|
||||
# This can overridden by setting the project setting `lod/refresh_rate`.
|
||||
var refresh_rate := 0.25
|
||||
|
||||
# The LOD bias in units.
|
||||
# Positive values will decrease the detail level and improve performance.
|
||||
# Negative values will improve visual appearance at the cost of performance.
|
||||
# This can overridden by setting the project setting `lod/bias`.
|
||||
var lod_bias := 0.0
|
||||
|
||||
# The internal refresh timer.
|
||||
var timer := 0.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if ProjectSettings.has_setting(\"lod/spatial_bias\"):
|
||||
lod_bias = ProjectSettings.get_setting(\"lod/spatial_bias\")
|
||||
if ProjectSettings.has_setting(\"lod/refresh_rate\"):
|
||||
refresh_rate = ProjectSettings.get_setting(\"lod/refresh_rate\")
|
||||
|
||||
# Add random jitter to the timer to ensure LODs don't all swap at the same time.
|
||||
randomize()
|
||||
timer += rand_range(0, refresh_rate)
|
||||
|
||||
|
||||
# Despite LOD not being related to physics, we chose to run in `_physics_process()`
|
||||
# to minimize the amount of method calls per second (and therefore decrease CPU usage).
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not enable_lod:
|
||||
return
|
||||
|
||||
# We need a camera to do the rest.
|
||||
var camera := get_viewport().get_camera()
|
||||
if camera == null:
|
||||
return
|
||||
|
||||
if timer <= refresh_rate:
|
||||
timer += delta
|
||||
return
|
||||
|
||||
timer = 0.0
|
||||
|
||||
var distance := camera.global_transform.origin.distance_to(global_transform.origin) + lod_bias
|
||||
# The LOD level to choose (lower is more detailed).
|
||||
var lod: int
|
||||
if distance < lod_0_max_distance:
|
||||
lod = 0
|
||||
elif distance < lod_1_max_distance:
|
||||
lod = 1
|
||||
elif distance < lod_2_max_distance:
|
||||
lod = 2
|
||||
else:
|
||||
# Hide the LOD object entirely.
|
||||
lod = 3
|
||||
|
||||
for node in get_children():
|
||||
# `-lod` also matches `-lod0`, `-lod1`, `-lod2`, …
|
||||
if node.has_method(\"set_visible\"):
|
||||
if \"-lod0\" in node.name:
|
||||
node.visible = lod == 0
|
||||
if \"-lod1\" in node.name:
|
||||
node.visible = lod == 1
|
||||
if \"-lod2\" in node.name:
|
||||
node.visible = lod == 2
|
||||
"
|
||||
|
||||
[node name="sm_book" type="Spatial"]
|
||||
script = SubResource( 1 )
|
||||
lod_0_max_distance = 1.0
|
||||
lod_1_max_distance = 5.0
|
||||
lod_2_max_distance = 10.0
|
||||
|
||||
[node name="sm_book-lod1" type="MeshInstance" parent="."]
|
||||
use_in_baked_light = true
|
||||
|
||||
@@ -7,11 +7,10 @@ func activatePaper(showPaper):
|
||||
if Engine.editor_hint:
|
||||
paper = showPaper
|
||||
|
||||
var parent = get_node(".").name
|
||||
print("[Parchment] Editor value " +String(showPaper) +" | " +String(parent))
|
||||
# var parent = get_node(".").name
|
||||
# print("[Parchment] Editor value " +String(showPaper) +" | " +String(parent))
|
||||
|
||||
$paper.set_visible(paper)
|
||||
|
||||
|
||||
func _ready():
|
||||
activatePaper(paper)
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ func _get_level(datas):
|
||||
return _get_data(datas, LEVEL_ID) as int
|
||||
|
||||
func _get_mesh(datas):
|
||||
return "Hidden Objects Items/" + String(_get_data(datas, MESH_ID))
|
||||
return "HiddenObjectsItems/" + String(_get_data(datas, MESH_ID))
|
||||
|
||||
func _get_label_counter(datas):
|
||||
return _get_data(datas, LABEL_COUNTER) as String
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@
|
||||
{"name":"resolution","type":"3","auto_increment":"0"},
|
||||
{"name":"fullscreen","type":"0","auto_increment":"0"}
|
||||
],
|
||||
"data":["1","0","0","1280 x 720","0"]
|
||||
"data":["0","0","0","1280 x 720","0"]
|
||||
},
|
||||
{
|
||||
"table_name":"levels",
|
||||
@@ -19,7 +19,7 @@
|
||||
{"name":"name","type":"3","auto_increment":"0"},
|
||||
{"name":"thumb","type":"4","auto_increment":"0"}
|
||||
],
|
||||
"data":["WarCraft","res://assets/levels/warcraft.jpg"]
|
||||
"data":["WarCraft","res://assets/levels/warcraft.jpg","Home","res://assets/levels/home.jpg"]
|
||||
},
|
||||
{
|
||||
"table_name":"scenes",
|
||||
@@ -32,7 +32,7 @@
|
||||
{"name":"label_counter","type":"1","auto_increment":"0"},
|
||||
{"name":"counter","type":"1","auto_increment":"0"}
|
||||
],
|
||||
"data":["0","Dagger","dagger","0","dagger","0","1","0","Fiole","fiole1","0","fioles/fiole1","1","3","0","Fiole","fiole2","0","fioles/fiole2","1","3","0","Fiole","fiole3","0","fioles/fiole_socle/fiole3","1","3","0","Spyglass","spyglass","0","spyglass","2","1","0","Coins","coin1","0","golds/coin1","3","3","0","Coins","coin2","0","golds/coin2","3","3","0","Coins","coin3","0","golds/coin3","3","3","0","Weapon Gun","weapon","0","weapon","4","1","0","Apple","apple1","0","apples/apple1","5","4","0","Apple","apple2","0","apples/apple2","5","4","0","Apple","apple3","0","apples/apple3","5","4","0","Apple","apple4","0","apples/apple4","5","4","0","Beer","beer","0","beer","6","1","0","SuperDagger","gadder","1","sm_super_dager","0","1"]
|
||||
"data":["0","Dagger","Dagger","0","Dagger","0","1","0","Fiole","Fiole1","0","Fioles/Fiole1","1","3","0","Fiole","Fiole2","0","Fioles/Fiole2","1","3","0","Fiole","Fiole3","0","Fioles/FioleSocle/Fiole3","1","3","0","Spyglass","Spyglass","0","Spyglass","2","1","0","Coins","Coin1","0","Coins/Coin1","3","3","0","Coins","Coin2","0","Coins/Coin2","3","3","0","Coins","Coin3","0","Coins/Coin3","3","3","0","Weapon Gun","Weapon","0","Weapon","4","1","0","Apple","Apple1","0","Apples/Apple1","5","4","0","Apple","Apple2","0","Apples/Apple2","5","4","0","Apple","Apple3","0","Apples/Apple3","5","4","0","Apple","Apple4","0","Apples/Apple4","5","4","0","Beer","Beer","0","Beer","6","1","0","SuperDagger","Gadder","1","sm_super_dager","0","1"]
|
||||
}
|
||||
]
|
||||
}
|
||||
+4
-7
@@ -204,6 +204,7 @@ config/name="Puzzle Quest"
|
||||
config/description="A treasure chest fill with any Jiggsaw !"
|
||||
run/main_scene="res://scenes/Main.tscn"
|
||||
boot_splash/image="res://releases/splash-screen.png"
|
||||
boot_splash/fullsize=false
|
||||
config/icon="res://icon.png"
|
||||
config/macos_native_icon="res://releases/mac/project.icns"
|
||||
config/windows_native_icon="res://releases/windows/project.ico"
|
||||
@@ -219,15 +220,11 @@ gddb_globals="*res://addons/godot_db_manager/core/GDDBGlobals.gd"
|
||||
Setting="*res://scripts/Setting.gd"
|
||||
Event="*res://scripts/Event.gd"
|
||||
|
||||
[debug]
|
||||
|
||||
settings/stdout/print_fps=true
|
||||
|
||||
[display]
|
||||
|
||||
window/size/width=1920
|
||||
window/size/height=1080
|
||||
window/size/fullscreen=true
|
||||
window/size/width=1280
|
||||
window/size/height=720
|
||||
window/size/resizable=false
|
||||
window/dpi/allow_hidpi=true
|
||||
window/handheld/orientation="sensor_landscape"
|
||||
window/stretch/mode="2d"
|
||||
|
||||
+12
-13
@@ -1,7 +1,8 @@
|
||||
extends Node
|
||||
|
||||
export (PackedScene) var settings = load("res://scenes/UI/settings/Settings.tscn")
|
||||
export (PackedScene) var scenes = load("res://scenes/UI/choose_scenes/ChooseScene.tscn")
|
||||
export (PackedScene) var title = load("res://scenes/UI/title/Title.tscn")
|
||||
export (PackedScene) var setting = load("res://scenes/UI/settings/Settings.tscn")
|
||||
export (PackedScene) var choose_scene = load("res://scenes/UI/choose_scenes/ChooseScene.tscn")
|
||||
|
||||
onready var current_scene = "title"
|
||||
onready var stream_button = preload("res://assets/sounds/click-button.ogg")
|
||||
@@ -11,7 +12,7 @@ func _ready():
|
||||
_translation()
|
||||
home.set_focus_mode(2)
|
||||
home.grab_focus()
|
||||
_apply_scene("Title")
|
||||
_apply_scene(title)
|
||||
_configure_sound()
|
||||
|
||||
func _configure_sound():
|
||||
@@ -25,29 +26,27 @@ func _translation():
|
||||
$MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/ButtonQuit/Label.text = tr("MAIN_BUTTON_QUIT")
|
||||
|
||||
func _apply_scene(actual_scene):
|
||||
var node = "MarginContainer/HBoxContainer/MarginContainer/"
|
||||
var node = get_node("MarginContainer/HBoxContainer/MarginContainer/")
|
||||
|
||||
for scene in ["Title", "Settings", "ChooseScene"]:
|
||||
get_node(node + scene).visible = true
|
||||
if actual_scene == scene:
|
||||
get_node(node + scene).visible = true
|
||||
else:
|
||||
get_node(node + scene).visible = false
|
||||
if node.get_child_count() != 0:
|
||||
node.get_child(0).queue_free()
|
||||
|
||||
node.add_child(actual_scene.instance())
|
||||
|
||||
# Load scene for select game
|
||||
func _on_ButtonPuzzle_pressed():
|
||||
_sound_button()
|
||||
_apply_scene("ChooseScene")
|
||||
_apply_scene(choose_scene)
|
||||
|
||||
# Load scene settings
|
||||
func _on_ButtonSetting_pressed():
|
||||
_sound_button()
|
||||
_apply_scene("Settings")
|
||||
_apply_scene(setting)
|
||||
|
||||
# Click to icon game
|
||||
func _on_TextureRect_pressed():
|
||||
_sound_button()
|
||||
_apply_scene("Title")
|
||||
_apply_scene(title)
|
||||
|
||||
# Quit the game
|
||||
func _on_ButtonQuit_pressed():
|
||||
|
||||
+25
-49
@@ -1,9 +1,6 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scenes/Main.gd" type="Script" id=1]
|
||||
[ext_resource path="res://scenes/UI/title/Title.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://scenes/UI/choose_scenes/ChooseScene.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://scenes/UI/settings/Settings.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://scenes/UI/background/Background.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://scenes/UI/summary/Summary.tscn" type="PackedScene" id=8]
|
||||
|
||||
@@ -26,85 +23,64 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
|
||||
margin_right = 1920.0
|
||||
margin_bottom = 1080.0
|
||||
margin_right = 1280.0
|
||||
margin_bottom = 720.0
|
||||
|
||||
[node name="UI_summary" parent="MarginContainer/HBoxContainer" instance=ExtResource( 8 )]
|
||||
anchor_bottom = 0.0
|
||||
margin_right = 446.0
|
||||
margin_bottom = 1080.0
|
||||
margin_bottom = 720.0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="PanelWood" parent="MarginContainer/HBoxContainer/UI_summary" index="0"]
|
||||
margin_bottom = 1080.0
|
||||
margin_bottom = 720.0
|
||||
|
||||
[node name="CenterContainer" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="0"]
|
||||
margin_bottom = 271.0
|
||||
margin_bottom = 128.0
|
||||
|
||||
[node name="TextureRect" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/CenterContainer" index="0"]
|
||||
margin_top = 71.0
|
||||
margin_bottom = 199.0
|
||||
margin_top = 0.0
|
||||
margin_bottom = 128.0
|
||||
|
||||
[node name="ButtonPuzzle" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="1"]
|
||||
margin_top = 301.0
|
||||
margin_bottom = 378.0
|
||||
margin_top = 158.0
|
||||
margin_bottom = 235.0
|
||||
|
||||
[node name="ButtonSetting" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="2"]
|
||||
margin_top = 408.0
|
||||
margin_bottom = 485.0
|
||||
margin_top = 265.0
|
||||
margin_bottom = 342.0
|
||||
|
||||
[node name="ButtonCredits" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="3"]
|
||||
margin_top = 515.0
|
||||
margin_bottom = 592.0
|
||||
margin_top = 372.0
|
||||
margin_bottom = 449.0
|
||||
|
||||
[node name="MarginContainer" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="4"]
|
||||
margin_top = 622.0
|
||||
margin_bottom = 893.0
|
||||
margin_top = 479.0
|
||||
margin_bottom = 533.0
|
||||
|
||||
[node name="ButtonQuit" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="5"]
|
||||
margin_top = 923.0
|
||||
margin_bottom = 1000.0
|
||||
margin_top = 563.0
|
||||
margin_bottom = 640.0
|
||||
|
||||
[node name="ContainerVersion" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="6"]
|
||||
margin_top = 1030.0
|
||||
margin_bottom = 1050.0
|
||||
margin_top = 670.0
|
||||
margin_bottom = 690.0
|
||||
|
||||
[node name="MarginContainerBottom" parent="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer" index="7"]
|
||||
margin_top = 1080.0
|
||||
margin_bottom = 1080.0
|
||||
margin_top = 720.0
|
||||
margin_bottom = 720.0
|
||||
|
||||
[node name="TextureRect" parent="MarginContainer/HBoxContainer/UI_summary" index="1"]
|
||||
margin_bottom = 1080.0
|
||||
margin_bottom = 720.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
|
||||
margin_left = 450.0
|
||||
margin_right = 1920.0
|
||||
margin_bottom = 1080.0
|
||||
margin_right = 1280.0
|
||||
margin_bottom = 720.0
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Title" parent="MarginContainer/HBoxContainer/MarginContainer" instance=ExtResource( 2 )]
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_right = 1470.0
|
||||
margin_bottom = 1080.0
|
||||
|
||||
[node name="Settings" parent="MarginContainer/HBoxContainer/MarginContainer" instance=ExtResource( 4 )]
|
||||
visible = false
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_left = 0.0
|
||||
margin_right = 1470.0
|
||||
margin_bottom = 1080.0
|
||||
|
||||
[node name="ChooseScene" parent="MarginContainer/HBoxContainer/MarginContainer" instance=ExtResource( 3 )]
|
||||
visible = false
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_right = 1470.0
|
||||
margin_bottom = 1080.0
|
||||
|
||||
[connection signal="pressed" from="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/CenterContainer/TextureRect" to="." method="_on_TextureRect_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/ButtonPuzzle" to="." method="_on_ButtonPuzzle_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/ButtonSetting" to="." method="_on_ButtonSetting_pressed"]
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
extends Control
|
||||
|
||||
export (PackedScene) var template = load("res://scenes/levels/parts/Template.tscn")
|
||||
|
||||
onready var mlevel = load("res://db/MLevel.gd")
|
||||
export (PackedScene) var template = load("res://scenes/UI/choose_scenes/parts/Template.tscn")
|
||||
|
||||
func _ready():
|
||||
_apply_scenes()
|
||||
_load_button_access_scenes()
|
||||
|
||||
## PRIVATE
|
||||
func _apply_scenes():
|
||||
func _load_button_access_scenes():
|
||||
for row_index in range(0, Global.database.get_table_by_name("levels").m_rows_count):
|
||||
_apply_scene(mlevel.new(row_index), 0)
|
||||
_apply_scene(load("res://db/MLevel.gd").new(row_index), row_index)
|
||||
|
||||
func _build_path(name):
|
||||
return "MarginContainer/"+name
|
||||
|
||||
func _build_method(name):
|
||||
return "_on_"+name.to_lower()+"_pressed"
|
||||
func _apply_scene(level, index):
|
||||
$MarginContainer.add_child(_load_scene(level.name()))
|
||||
var node = _build_path(level.name())
|
||||
|
||||
_configure_select(level, node)
|
||||
configure_reset(level, node, index, false)
|
||||
configure_counter(level, node)
|
||||
|
||||
func _load_scene(name):
|
||||
var template_instance = template.instance()
|
||||
@@ -24,17 +24,15 @@ func _load_scene(name):
|
||||
|
||||
return template_instance
|
||||
|
||||
func _build_path(name):
|
||||
return "MarginContainer/"+name
|
||||
|
||||
func _build_method(name):
|
||||
return "_on_"+name.to_lower()+"_pressed"
|
||||
|
||||
func _load_texture(thumbnail):
|
||||
return load(thumbnail)
|
||||
|
||||
func _apply_scene(level, index):
|
||||
$MarginContainer.add_child(_load_scene(level.name()))
|
||||
var node = _build_path(level.name())
|
||||
|
||||
_configure_select(level, node)
|
||||
configure_reset(level, node, index)
|
||||
configure_counter(level, node)
|
||||
|
||||
func _configure_select(level, node):
|
||||
var selector = get_node(node+"/MarginContainer/CenterAlign/MainButton")
|
||||
var thumbnail = get_node(node+"/MarginContainer/CenterAlign/MainButton/MarginStich/ThumbnailLevel")
|
||||
@@ -42,18 +40,31 @@ func _configure_select(level, node):
|
||||
thumbnail.set_texture(_load_texture(level.thumbnail()))
|
||||
selector.connect("pressed", Event, _build_method(level.name()))
|
||||
|
||||
func configure_reset(level, node, index):
|
||||
var reset = get_node(node+"/MarginContainer/CenterAlign/TabAlign/ButtonReset")
|
||||
|
||||
func configure_reset(level, node, index, animate):
|
||||
var reset = get_node(node+"/MarginContainer/CenterAlign/MainButton/TabAlign/ButtonReset")
|
||||
var animation = get_node(node+"/AnimationPlayer")
|
||||
if int(level.object_finding()) == 0:
|
||||
reset.set_disabled(true)
|
||||
if reset.is_connected("pressed", Event, "_on_reset_level"):
|
||||
reset.disconnect("pressed", Event, "_on_reset_level")
|
||||
_configure_reset_disable(animation, reset, animate)
|
||||
else:
|
||||
reset.set_disabled(false)
|
||||
reset.connect("pressed", Event, "_on_reset_level", [level, node, index, self])
|
||||
_configure_reset_enable(animation, reset, level, node, index)
|
||||
|
||||
func _configure_reset_disable(animation, reset, animate = false):
|
||||
animation.play("SlideReset")
|
||||
if !animate:
|
||||
animation.seek(1, false)
|
||||
|
||||
reset.set_disabled(true)
|
||||
reset.set_default_cursor_shape(CURSOR_ARROW)
|
||||
if reset.is_connected("pressed", Event, "_on_reset_level"):
|
||||
reset.disconnect("pressed", Event, "_on_reset_level")
|
||||
|
||||
func _configure_reset_enable(animation, reset, level, node, index):
|
||||
animation.play_backwards("SlideReset")
|
||||
reset.set_disabled(false)
|
||||
reset.set_default_cursor_shape(CURSOR_POINTING_HAND)
|
||||
reset.connect("pressed", Event, "_on_reset_level", [level, node, index, self])
|
||||
|
||||
func configure_counter(level, node):
|
||||
var count = get_node(node+"/MarginContainer/CenterAlign/TabAlign/ButtonCount/MarginBottom/Label")
|
||||
var count = get_node(node+"/MarginContainer/CenterAlign/MainButton/TabAlign/ButtonCount/MarginBottom/Label")
|
||||
|
||||
count.set_text(level.object_finding()+" / "+level.object_to_find())
|
||||
|
||||
@@ -14,8 +14,8 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="MarginContainer" type="GridContainer" parent="."]
|
||||
margin_right = 1920.0
|
||||
margin_bottom = 1080.0
|
||||
margin_right = 1280.0
|
||||
margin_bottom = 720.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
columns = 3
|
||||
|
||||
@@ -1,13 +1,36 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
[gd_scene load_steps=10 format=2]
|
||||
|
||||
[ext_resource path="res://assets/fonts/kirsty/kirsty_base.tres" type="DynamicFont" id=1]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-shadow.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Count.png" type="Texture" id=3]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset-disabled.png" type="Texture" id=4]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Count-hover.png" type="Texture" id=5]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset-hover.png" type="Texture" id=6]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-leather.png" type="Texture" id=7]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset.png" type="Texture" id=8]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset-hover.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset-disabled.png" type="Texture" id=3]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Count-hover.png" type="Texture" id=4]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset.png" type="Texture" id=5]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Count.png" type="Texture" id=6]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-shadow.png" type="Texture" id=7]
|
||||
[ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-leather.png" type="Texture" id=8]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
resource_name = "SlideReset"
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("MarginContainer/CenterAlign/MainButton/TabAlign/ButtonReset:rect_position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( ),
|
||||
"times": PoolRealArray( )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("MarginContainer/CenterAlign/MainButton/TabAlign/ButtonReset:rect_position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.506539, 0.5, -40, -0.236722, -22.5, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1 )
|
||||
}
|
||||
|
||||
[node name="TilePuzzle" type="Control"]
|
||||
margin_left = 320.0
|
||||
@@ -25,7 +48,7 @@ anchor_right = 0.5
|
||||
margin_left = -114.0
|
||||
margin_right = 115.0
|
||||
margin_bottom = 456.0
|
||||
texture = ExtResource( 2 )
|
||||
texture = ExtResource( 7 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
@@ -54,7 +77,7 @@ custom_constants/separation = 0
|
||||
margin_right = 209.0
|
||||
margin_bottom = 208.0
|
||||
mouse_default_cursor_shape = 2
|
||||
texture_normal = ExtResource( 7 )
|
||||
texture_normal = ExtResource( 8 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
@@ -94,37 +117,39 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="TabAlign" type="HBoxContainer" parent="MarginContainer/CenterAlign"]
|
||||
[node name="TabAlign" type="HBoxContainer" parent="MarginContainer/CenterAlign/MainButton"]
|
||||
show_behind_parent = true
|
||||
margin_top = 208.0
|
||||
margin_right = 209.0
|
||||
margin_bottom = 710.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
alignment = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ButtonReset" type="TextureButton" parent="MarginContainer/CenterAlign/TabAlign"]
|
||||
[node name="ButtonReset" type="TextureButton" parent="MarginContainer/CenterAlign/MainButton/TabAlign"]
|
||||
show_behind_parent = true
|
||||
margin_left = 1.0
|
||||
margin_right = 90.0
|
||||
margin_bottom = 57.0
|
||||
mouse_default_cursor_shape = 2
|
||||
size_flags_vertical = 0
|
||||
disabled = true
|
||||
texture_normal = ExtResource( 8 )
|
||||
texture_hover = ExtResource( 6 )
|
||||
texture_disabled = ExtResource( 4 )
|
||||
texture_focused = ExtResource( 6 )
|
||||
texture_normal = ExtResource( 5 )
|
||||
texture_hover = ExtResource( 2 )
|
||||
texture_disabled = ExtResource( 3 )
|
||||
|
||||
[node name="ButtonCount" type="TextureButton" parent="MarginContainer/CenterAlign/TabAlign"]
|
||||
[node name="ButtonCount" type="TextureButton" parent="MarginContainer/CenterAlign/MainButton/TabAlign"]
|
||||
margin_left = 94.0
|
||||
margin_right = 207.0
|
||||
margin_bottom = 57.0
|
||||
mouse_default_cursor_shape = 2
|
||||
size_flags_vertical = 0
|
||||
texture_normal = ExtResource( 3 )
|
||||
texture_hover = ExtResource( 5 )
|
||||
texture_focused = ExtResource( 5 )
|
||||
texture_normal = ExtResource( 6 )
|
||||
texture_hover = ExtResource( 4 )
|
||||
texture_focused = ExtResource( 4 )
|
||||
|
||||
[node name="MarginBottom" type="MarginContainer" parent="MarginContainer/CenterAlign/TabAlign/ButtonCount"]
|
||||
[node name="MarginBottom" type="MarginContainer" parent="MarginContainer/CenterAlign/MainButton/TabAlign/ButtonCount"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
custom_constants/margin_bottom = 10
|
||||
@@ -132,7 +157,7 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/CenterAlign/TabAlign/ButtonCount/MarginBottom"]
|
||||
[node name="Label" type="Label" parent="MarginContainer/CenterAlign/MainButton/TabAlign/ButtonCount/MarginBottom"]
|
||||
margin_right = 113.0
|
||||
margin_bottom = 47.0
|
||||
size_flags_horizontal = 3
|
||||
@@ -144,3 +169,6 @@ valign = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/SlideReset = SubResource( 1 )
|
||||
+92
-50
@@ -19,20 +19,39 @@ onready var mlevel = load("res://db/MLevel.gd")
|
||||
onready var mscene = load("res://db/MScene.gd")
|
||||
onready var victory_condition = 0
|
||||
onready var victory_progress = 0
|
||||
onready var last_btn = null
|
||||
onready var last_button = null
|
||||
onready var animation_player = null
|
||||
|
||||
func _ready():
|
||||
_load_translations()
|
||||
_load_meshes()
|
||||
_back_button()
|
||||
_prepare_victory_condition()
|
||||
_display_hud_menu()
|
||||
_play_ambient_sound()
|
||||
_load_back_button()
|
||||
_load_prepare_victory_condition()
|
||||
_load_hud_menu()
|
||||
_load_ambient_sound()
|
||||
|
||||
func _back_button():
|
||||
func _load_translations():
|
||||
pass
|
||||
|
||||
func _load_meshes():
|
||||
var scene_detail = null
|
||||
|
||||
for row_index in range(0, table.m_rows_count):
|
||||
scene_detail = mscene.new(row_index)
|
||||
|
||||
if scene_detail.key() != null:
|
||||
meshes[scene_detail.key()] = scene_detail
|
||||
|
||||
func _load_back_button():
|
||||
var _back = $Quit/TextureButton.connect("pressed", Event, "_on_main_scene_pressed")
|
||||
|
||||
func _display_hud_menu():
|
||||
func _load_prepare_victory_condition():
|
||||
var level = mlevel.new(Global.current_scene_int)
|
||||
|
||||
victory_condition = level.object_to_find()
|
||||
victory_progress = level.object_finding()
|
||||
|
||||
func _load_hud_menu():
|
||||
var counter = 0
|
||||
var scene = null
|
||||
var label_counter = null
|
||||
@@ -43,40 +62,69 @@ func _display_hud_menu():
|
||||
label_counter = scene.label_counter()
|
||||
counter = counter + 1
|
||||
|
||||
func _create_button_info(scene, counter, label_counter):
|
||||
var btn = null
|
||||
|
||||
if counter == 0:
|
||||
btn = object_first.instance()
|
||||
elif counter == meshes.size() - 1:
|
||||
btn = object_last.instance()
|
||||
else:
|
||||
btn = object_std.instance()
|
||||
|
||||
if label_counter != null and label_counter == scene.label_counter():
|
||||
last_btn.get_node("Label").set_text(last_btn.get_node("Label").text + " " + String(scene.counter()))
|
||||
last_btn.set_meta("name", scene.label())
|
||||
last_btn.set_meta("counter", scene.counter())
|
||||
last_btn.set_meta("counted", 0)
|
||||
else:
|
||||
$ListObjects/ListContainer.add_child(btn)
|
||||
btn.get_node("Label").set_text(scene.label())
|
||||
btn.set_meta("name", scene.label())
|
||||
btn.set_meta("counter", scene.counter())
|
||||
btn.set_meta("counted", 0)
|
||||
|
||||
last_btn = btn
|
||||
|
||||
func _play_ambient_sound():
|
||||
func _load_ambient_sound():
|
||||
if Setting.get_setting_ambient_sound():
|
||||
$AmbientSound.play()
|
||||
$AmbientSound.stream_paused = false
|
||||
|
||||
func _prepare_victory_condition():
|
||||
var level = mlevel.new(Global.current_scene_int)
|
||||
func _create_button_info(scene, counter, label_counter):
|
||||
var button = _search_button_to_use(counter)
|
||||
var name = scene.label()
|
||||
|
||||
victory_condition = level.object_to_find()
|
||||
victory_progress = level.object_finding()
|
||||
if label_counter != null and label_counter == scene.label_counter():
|
||||
name = last_button.get_node("Label").text + " " + String(scene.counter())
|
||||
_configure_button_object(last_button, scene, name)
|
||||
_create_animation_warning(_get_node_animated().get_node("Label"), name)
|
||||
else:
|
||||
$ListObjects/ListContainer.add_child(button)
|
||||
_configure_button_object(button, scene, name)
|
||||
_create_animation_slide(_get_node_animated(), name)
|
||||
|
||||
last_button = button
|
||||
|
||||
func _get_node_animated():
|
||||
return $ListObjects/ListContainer.get_child($ListObjects/ListContainer.get_child_count() - 1 )
|
||||
|
||||
func _search_button_to_use(counter):
|
||||
if counter == 0:
|
||||
return object_first.instance()
|
||||
elif counter == meshes.size() - 1:
|
||||
return object_last.instance()
|
||||
else:
|
||||
return object_std.instance()
|
||||
|
||||
func _configure_button_object(button, scene, label):
|
||||
button.get_node("Label").set_text(label)
|
||||
button.set_meta("animation", label)
|
||||
button.set_meta("name", scene.label())
|
||||
button.set_meta("counter", scene.counter())
|
||||
button.set_meta("counted", 0)
|
||||
|
||||
func _create_animation_slide(node, name):
|
||||
var animation = Animation.new()
|
||||
var track_index = animation.add_track(Animation.TYPE_BEZIER)
|
||||
var node_element = String(node.get_path()) + ":rect_position:x"
|
||||
|
||||
animation.track_set_path(track_index, node_element)
|
||||
animation.bezier_track_insert_key(track_index, 0.0, 0.0, Vector2(-0.25, 0), Vector2(0.031, 190.492))
|
||||
animation.bezier_track_insert_key(track_index, 1.0, 170, Vector2(-0.349, 2.576), Vector2(0.25, 0))
|
||||
|
||||
$ListObjects/AnimationPlayer.add_animation(name, animation)
|
||||
|
||||
func _create_animation_warning(node, name):
|
||||
var animation = Animation.new()
|
||||
var track_index = animation.add_track(Animation.TYPE_BEZIER)
|
||||
var node_element = String(node.get_path()) + ":rect_position:x"
|
||||
|
||||
animation.track_set_path(track_index, node_element)
|
||||
animation.bezier_track_insert_key(track_index, 0.0, 0.0, Vector2(-0.25, 0), Vector2(0, 78.1))
|
||||
animation.bezier_track_insert_key(track_index, 0.2, 34.9, Vector2(-0.25, 0), Vector2(0, -66))
|
||||
animation.bezier_track_insert_key(track_index, 0.4, 12.1, Vector2(0, 73.2), Vector2(0, -124.8))
|
||||
animation.bezier_track_insert_key(track_index, 0.6, -41.9, Vector2(-0.095, 109.2), Vector2(0.062, -58.8))
|
||||
animation.bezier_track_insert_key(track_index, 0.8, 13.3, Vector2(-0.188, 93.6), Vector2(0.196, 104.4))
|
||||
animation.bezier_track_insert_key(track_index, 1.0, 0.0, Vector2(-0.155, -135.5), Vector2(0.25, 0))
|
||||
|
||||
$ListObjects/AnimationPlayer.add_animation(name, animation)
|
||||
|
||||
func _process(_delta):
|
||||
_check_dissolve_mesh()
|
||||
@@ -172,7 +220,8 @@ func _start_dissolve(key):
|
||||
|
||||
func _check_victory_condition():
|
||||
if victory_condition == victory_progress:
|
||||
print("[levels#_check_victory_condition] \\o/")
|
||||
print("[levels#_check_victory_condition] \\o/\\o/ \\o/ \\o/ \\o/\\o/")
|
||||
print("[levels#_check_victory_condition] Win !!")
|
||||
Global.goto_scene("res://scenes/UI/ending/Ending.tscn")
|
||||
|
||||
func _node_to_mesh(key):
|
||||
@@ -182,30 +231,23 @@ func _node_to_area(key):
|
||||
return get_node(meshes[key].mesh()+"/Area")
|
||||
|
||||
func _node_object_list(key):
|
||||
var animation_played = null
|
||||
|
||||
for child in $ListObjects/ListContainer.get_children():
|
||||
if child.get_meta("name") == meshes[key].label():
|
||||
child.set_meta("counted", child.get_meta("counted") + 1)
|
||||
|
||||
if child.get_meta("counter") == child.get_meta("counted"):
|
||||
child.visible = false
|
||||
animation_played = child.get_meta("name")
|
||||
else:
|
||||
var diff = child.get_meta("counter") - child.get_meta("counted")
|
||||
var txt = child.get_meta("name")
|
||||
if diff != 1:
|
||||
txt = txt + " " + String(diff)
|
||||
animation_played = child.get_meta("animation")
|
||||
child.get_node("Label").set_text(txt)
|
||||
|
||||
func _load_translations():
|
||||
pass
|
||||
|
||||
func _load_meshes():
|
||||
var scene_detail = null
|
||||
|
||||
for row_index in range(0, table.m_rows_count):
|
||||
scene_detail = mscene.new(row_index)
|
||||
|
||||
if scene_detail.key() != null:
|
||||
meshes[scene_detail.key()] = scene_detail
|
||||
|
||||
$ListObjects/AnimationPlayer.queue(animation_played)
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventMouseButton or event is InputEventScreenTouch:
|
||||
|
||||
@@ -1,14 +1,46 @@
|
||||
[gd_scene load_steps=10 format=2]
|
||||
[gd_scene load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://assets/ui/themes/UI-Button-ItemsList-first-hover.png" type="Texture" id=1]
|
||||
[ext_resource path="res://assets/ui/themes/leather.theme" type="Theme" id=2]
|
||||
[ext_resource path="res://assets/fonts/kirsty/kirsty_base.tres" type="DynamicFont" id=3]
|
||||
[ext_resource path="res://assets/ui/icones/skull.png" type="Texture" id=4]
|
||||
[ext_resource path="res://assets/ui/themes/UI-Button-ItemsList.png" type="Texture" id=5]
|
||||
[ext_resource path="res://assets/ui/themes/UI-Button-ItemsList-last-hover.png" type="Texture" id=6]
|
||||
[ext_resource path="res://assets/ui/themes/UI-Button-ItemsList-hover.png" type="Texture" id=7]
|
||||
[ext_resource path="res://assets/ui/themes/UI-Button-ItemsList-last.png" type="Texture" id=8]
|
||||
[ext_resource path="res://assets/ui/themes/UI-Button-ItemsList-first.png" type="Texture" id=9]
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "ObjectFind"
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("ListContainer/TextureButtonLast/Label:rect_position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0, 78.1, 34.9, -0.25, 0, 0, -66, 12.1, 0, 73.2, 0, -124.8, -41.9, -0.0948485, 109.2, 0.0619706, -58.8, 13.3, -0.187989, 93.6, 0.196425, 104.4, 0, -0.154843, -135.5, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 0.2, 0.4, 0.6, 0.8, 1 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
resource_name = "ObjectFindAll"
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("ListContainer/TextureButtonLast:rect_position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.0305311, 190.492, 170, -0.349132, 2.57608, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("ListContainer/TextureButtonLast:rect_position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( ),
|
||||
"times": PoolRealArray( )
|
||||
}
|
||||
|
||||
[node name="Control" type="MarginContainer"]
|
||||
anchor_left = 1.0
|
||||
@@ -31,54 +63,14 @@ margin_bottom = 900.0
|
||||
rect_min_size = Vector2( 196, 900 )
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
custom_constants/separation = -10
|
||||
|
||||
[node name="TextureButtonFirst" type="TextureButton" parent="ListContainer"]
|
||||
visible = false
|
||||
margin_right = 196.0
|
||||
margin_bottom = 81.0
|
||||
focus_mode = 0
|
||||
texture_normal = ExtResource( 9 )
|
||||
texture_hover = ExtResource( 1 )
|
||||
texture_focused = ExtResource( 1 )
|
||||
|
||||
[node name="Label" type="Label" parent="ListContainer/TextureButtonFirst"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
custom_fonts/font = ExtResource( 3 )
|
||||
text = "First Entry"
|
||||
align = 1
|
||||
valign = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="TextureButtonMiddle" type="TextureButton" parent="ListContainer"]
|
||||
visible = false
|
||||
margin_top = 71.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 152.0
|
||||
focus_mode = 0
|
||||
texture_normal = ExtResource( 5 )
|
||||
texture_hover = ExtResource( 7 )
|
||||
texture_focused = ExtResource( 7 )
|
||||
|
||||
[node name="Label" type="Label" parent="ListContainer/TextureButtonMiddle"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
custom_fonts/font = ExtResource( 3 )
|
||||
text = "Middle"
|
||||
align = 1
|
||||
valign = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
custom_constants/separation = -14
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureButtonLast" type="TextureButton" parent="ListContainer"]
|
||||
visible = false
|
||||
margin_top = 142.0
|
||||
margin_top = 409.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 223.0
|
||||
margin_bottom = 490.0
|
||||
focus_mode = 0
|
||||
texture_normal = ExtResource( 8 )
|
||||
texture_hover = ExtResource( 6 )
|
||||
@@ -97,8 +89,10 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="ListContainer"]
|
||||
visible = false
|
||||
margin_top = 419.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 128.0
|
||||
margin_bottom = 547.0
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureButtonIndice" type="TextureButton" parent="ListContainer/HBoxContainer"]
|
||||
@@ -106,3 +100,7 @@ margin_left = 34.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 128.0
|
||||
texture_normal = ExtResource( 4 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/ObjectFind = SubResource( 2 )
|
||||
anims/ObjectFindAll = SubResource( 1 )
|
||||
|
||||
@@ -18,6 +18,7 @@ __meta__ = {
|
||||
[node name="Label" type="Label" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_right = -3.05176e-05
|
||||
custom_fonts/font = ExtResource( 2 )
|
||||
text = "First Entry"
|
||||
align = 1
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=62 format=2]
|
||||
[gd_scene load_steps=61 format=2]
|
||||
|
||||
[ext_resource path="res://scenes/levels/Levels.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://assets/props/stack gold/sm_stackgold.mesh" type="ArrayMesh" id=2]
|
||||
@@ -118,97 +118,7 @@ height = 0.169626
|
||||
radius = 0.0931278
|
||||
height = 0.171908
|
||||
|
||||
[sub_resource type="GDScript" id=17]
|
||||
script/source = "# Copyright © 2020 Hugo Locurcio and contributors - MIT License
|
||||
# See `LICENSE.md` included in the source distribution for details.
|
||||
extends Spatial
|
||||
class_name LODSpatial, \"res://addons/lod/lod_spatial.svg\"
|
||||
|
||||
# If `false`, LOD won't update anymore. This can be used for performance comparison
|
||||
# purposes.
|
||||
export var enable_lod := true
|
||||
|
||||
# The maximum LOD 0 (high quality) distance in units.
|
||||
export(float, 0.0, 1000.0, 0.1) var lod_0_max_distance := 10
|
||||
|
||||
# The maximum LOD 1 (medium quality) distance in units.
|
||||
export(float, 0.0, 1000.0, 0.1) var lod_1_max_distance := 25
|
||||
|
||||
# The maximum LOD 2 (low quality) distance in units.
|
||||
# Past this distance, all LOD variants are hidden.
|
||||
export(float, 0.0, 1000.0, 0.1) var lod_2_max_distance := 100
|
||||
|
||||
# The rate at which LODs will be updated (in seconds). Lower values are more reactive
|
||||
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
|
||||
# Set this accordingly depending on your camera movement speed.
|
||||
# The default value should suit most projects already.
|
||||
# Note: Slow cameras don't need to have LOD-enabled objects update their status often.
|
||||
# This can overridden by setting the project setting `lod/refresh_rate`.
|
||||
var refresh_rate := 0.25
|
||||
|
||||
# The LOD bias in units.
|
||||
# Positive values will decrease the detail level and improve performance.
|
||||
# Negative values will improve visual appearance at the cost of performance.
|
||||
# This can overridden by setting the project setting `lod/bias`.
|
||||
var lod_bias := 0.0
|
||||
|
||||
# The internal refresh timer.
|
||||
var timer := 0.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if ProjectSettings.has_setting(\"lod/spatial_bias\"):
|
||||
lod_bias = ProjectSettings.get_setting(\"lod/spatial_bias\")
|
||||
if ProjectSettings.has_setting(\"lod/refresh_rate\"):
|
||||
refresh_rate = ProjectSettings.get_setting(\"lod/refresh_rate\")
|
||||
|
||||
# Add random jitter to the timer to ensure LODs don't all swap at the same time.
|
||||
randomize()
|
||||
timer += rand_range(0, refresh_rate)
|
||||
|
||||
|
||||
# Despite LOD not being related to physics, we chose to run in `_physics_process()`
|
||||
# to minimize the amount of method calls per second (and therefore decrease CPU usage).
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not enable_lod:
|
||||
return
|
||||
|
||||
# We need a camera to do the rest.
|
||||
var camera := get_viewport().get_camera()
|
||||
if camera == null:
|
||||
return
|
||||
|
||||
if timer <= refresh_rate:
|
||||
timer += delta
|
||||
return
|
||||
|
||||
timer = 0.0
|
||||
|
||||
var distance := camera.global_transform.origin.distance_to(global_transform.origin) + lod_bias
|
||||
# The LOD level to choose (lower is more detailed).
|
||||
var lod: int
|
||||
if distance < lod_0_max_distance:
|
||||
lod = 0
|
||||
elif distance < lod_1_max_distance:
|
||||
lod = 1
|
||||
elif distance < lod_2_max_distance:
|
||||
lod = 2
|
||||
else:
|
||||
# Hide the LOD object entirely.
|
||||
lod = 3
|
||||
|
||||
for node in get_children():
|
||||
# `-lod` also matches `-lod0`, `-lod1`, `-lod2`, …
|
||||
if node.has_method(\"set_visible\"):
|
||||
if \"-lod0\" in node.name:
|
||||
node.visible = lod == 0
|
||||
if \"-lod1\" in node.name:
|
||||
node.visible = lod == 1
|
||||
if \"-lod2\" in node.name:
|
||||
node.visible = lod == 2
|
||||
"
|
||||
|
||||
[sub_resource type="ArrayMesh" id=18]
|
||||
[sub_resource type="ArrayMesh" id=17]
|
||||
lightmap_size_hint = Vector2( 158, 158 )
|
||||
surfaces/0 = {
|
||||
"aabb": AABB( -8.00194, 0.00112093, -7.00022, 10.0041, 0.0734728, 12.0031 ),
|
||||
@@ -223,12 +133,12 @@ surfaces/0 = {
|
||||
"vertex_count": 4110
|
||||
}
|
||||
|
||||
[sub_resource type="PanoramaSky" id=19]
|
||||
[sub_resource type="PanoramaSky" id=18]
|
||||
panorama = ExtResource( 11 )
|
||||
|
||||
[sub_resource type="Environment" id=20]
|
||||
[sub_resource type="Environment" id=19]
|
||||
background_mode = 3
|
||||
background_sky = SubResource( 19 )
|
||||
background_sky = SubResource( 18 )
|
||||
ambient_light_sky_contribution = 0.5
|
||||
fog_enabled = true
|
||||
fog_color = Color( 0.337255, 0.235294, 0.956863, 0.941176 )
|
||||
@@ -254,348 +164,324 @@ __meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="Hidden Objects Items" type="RayCast" parent="." index="5"]
|
||||
[node name="HiddenObjectsItems" type="RayCast" parent="." index="5"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.233905, 1.0296, -0.405055 )
|
||||
collision_mask = 2
|
||||
collide_with_areas = true
|
||||
collide_with_bodies = false
|
||||
|
||||
[node name="fioles" type="Spatial" parent="Hidden Objects Items" index="0"]
|
||||
[node name="Fioles" type="Spatial" parent="HiddenObjectsItems" index="0"]
|
||||
|
||||
[node name="fiole1" type="MeshInstance" parent="Hidden Objects Items/fioles" index="0"]
|
||||
[node name="Fiole1" type="MeshInstance" parent="HiddenObjectsItems/Fioles" index="0"]
|
||||
transform = Transform( -0.210773, -0.635682, 0.742619, 0.949185, -0.314721, 0, 0.233718, 0.704883, 0.669714, 0.0481223, 0, -0.094099 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 12 )
|
||||
material/0 = ExtResource( 13 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/fioles/fiole1" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Fioles/Fiole1" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/fioles/fiole1/Area" index="0"]
|
||||
[node name="CollisionShape" type="CollisionShape" parent="HiddenObjectsItems/Fioles/Fiole1/Area" index="0"]
|
||||
transform = Transform( 1, 2.98023e-08, -4.47035e-08, -2.98023e-08, -8.9407e-08, 1, -1.19209e-07, -1, -1.49012e-07, 0, 0.0801148, -2.98023e-08 )
|
||||
shape = SubResource( 3 )
|
||||
|
||||
[node name="fiole2" type="MeshInstance" parent="Hidden Objects Items/fioles" index="1"]
|
||||
[node name="Fiole2" type="MeshInstance" parent="HiddenObjectsItems/Fioles" index="1"]
|
||||
transform = Transform( 0.655275, 0.636944, -0.4061, 0.670978, -0.243833, 0.700239, 0.346993, -0.731333, -0.587153, -4.19531, -0.894133, 2.66915 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 12 )
|
||||
material/0 = ExtResource( 19 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/fioles/fiole2" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Fioles/Fiole2" index="0"]
|
||||
transform = Transform( 1, -2.98023e-08, 0, -2.98023e-08, 1, 0, 1.49012e-08, -1.19209e-07, 1, -2.38419e-07, -0.0202575, 0 )
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/fioles/fiole2/Area" index="0"]
|
||||
[node name="CollisionShape" type="CollisionShape" parent="HiddenObjectsItems/Fioles/Fiole2/Area" index="0"]
|
||||
transform = Transform( 1, 5.96046e-08, -8.9407e-08, 2.98023e-08, -8.9407e-08, 1, -8.9407e-08, -1, 0, 2.38419e-07, 0.0823998, -1.19209e-07 )
|
||||
shape = SubResource( 4 )
|
||||
|
||||
[node name="fiole_socle" type="MeshInstance" parent="Hidden Objects Items/fioles" index="2"]
|
||||
[node name="FioleSocle" type="MeshInstance" parent="HiddenObjectsItems/Fioles" index="2"]
|
||||
transform = Transform( 0.6773, -1.86265e-09, 0.735707, -0.0293841, 0.999202, 0.0270513, -0.73512, -0.03994, 0.67676, -2.27881, -0.11528, -1.23929 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 3 )
|
||||
material/0 = null
|
||||
|
||||
[node name="fiole3" type="MeshInstance" parent="Hidden Objects Items/fioles/fiole_socle" index="0"]
|
||||
[node name="Fiole3" type="MeshInstance" parent="HiddenObjectsItems/Fioles/FioleSocle" index="0"]
|
||||
transform = Transform( 0.919703, -0.349433, -0.179005, 0.316708, 0.929754, -0.187758, 0.232039, 0.115989, 0.965766, -1.19209e-07, 0.1147, 0.00100636 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 12 )
|
||||
material/0 = ExtResource( 21 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/fioles/fiole_socle/fiole3" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Fioles/FioleSocle/Fiole3" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/fioles/fiole_socle/fiole3/Area" index="0"]
|
||||
[node name="CollisionShape" type="CollisionShape" parent="HiddenObjectsItems/Fioles/FioleSocle/Fiole3/Area" index="0"]
|
||||
transform = Transform( 1, 2.08616e-07, -7.45058e-08, -5.96046e-08, -1.49012e-07, 1, 5.96046e-08, -1, -1.04308e-07, -1.78814e-07, 0.0560231, 0 )
|
||||
shape = SubResource( 5 )
|
||||
|
||||
[node name="dagger" type="MeshInstance" parent="Hidden Objects Items" index="1"]
|
||||
[node name="Dagger" type="MeshInstance" parent="HiddenObjectsItems" index="1"]
|
||||
transform = Transform( -0.625025, -0.777847, 0.0655765, 0, 0.0840072, 0.996466, -0.780606, 0.622816, -0.0525065, 0.69073, -0.117415, 0.830941 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 17 )
|
||||
material/0 = ExtResource( 14 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/dagger" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Dagger" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/dagger/Area" index="0"]
|
||||
[node name="CollisionShape" type="CollisionShape" parent="HiddenObjectsItems/Dagger/Area" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.0802139, 0 )
|
||||
shape = SubResource( 6 )
|
||||
|
||||
[node name="spyglass" type="MeshInstance" parent="Hidden Objects Items" index="2"]
|
||||
[node name="Spyglass" type="MeshInstance" parent="HiddenObjectsItems" index="2"]
|
||||
transform = Transform( 0.652362, 0.137749, 0.63579, -0.234678, 0.889605, 0.0480562, -0.606736, -0.195981, 0.665013, -2.884, -0.292075, -0.429783 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 23 )
|
||||
material/0 = ExtResource( 24 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/spyglass" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Spyglass" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/spyglass/Area" index="0"]
|
||||
[node name="CollisionShape" type="CollisionShape" parent="HiddenObjectsItems/Spyglass/Area" index="0"]
|
||||
transform = Transform( 1, 0, 2.98023e-08, 1.86265e-09, 1, 3.72529e-09, 0, 5.58794e-09, 1, 2.38419e-07, -1.19209e-07, 0.0177531 )
|
||||
shape = SubResource( 7 )
|
||||
|
||||
[node name="beer" type="MeshInstance" parent="Hidden Objects Items" index="3"]
|
||||
[node name="Beer" type="MeshInstance" parent="HiddenObjectsItems" index="3"]
|
||||
transform = Transform( 0.996658, -0.053142, 0.0620432, 0.0548108, 0.998171, -0.0255105, -0.060574, 0.0288258, 0.997748, -2.8842, 0.173697, 1.98168 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 22 )
|
||||
material/0 = ExtResource( 5 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/beer" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Beer" index="0"]
|
||||
transform = Transform( 1, 0, 7.45058e-09, -1.16415e-10, 1, -1.86265e-09, 0, 0, 1, -2.38419e-07, -0.21161, -1.19209e-07 )
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeBeer" type="CollisionShape" parent="Hidden Objects Items/beer/Area" index="0"]
|
||||
[node name="CollisionShapeBeer" type="CollisionShape" parent="HiddenObjectsItems/Beer/Area" index="0"]
|
||||
transform = Transform( 1, 0, -1.61817e-08, 1.83936e-08, -4.28408e-08, 1, 0, -1, -4.65661e-08, 9.53674e-07, 0.0746492, 2.38419e-07 )
|
||||
shape = SubResource( 8 )
|
||||
|
||||
[node name="weapon" type="MeshInstance" parent="Hidden Objects Items" index="4"]
|
||||
[node name="Weapon" type="MeshInstance" parent="HiddenObjectsItems" index="4"]
|
||||
transform = Transform( 0.540284, -0.813497, 0.215212, -0.009216, 0.250018, 0.968198, -0.841432, -0.525085, 0.127583, -2.7508, -0.359206, 1.19589 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 7 )
|
||||
material/0 = ExtResource( 8 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/weapon" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Weapon" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeWeapon" type="CollisionShape" parent="Hidden Objects Items/weapon/Area" index="0"]
|
||||
[node name="CollisionShapeWeapon" type="CollisionShape" parent="HiddenObjectsItems/Weapon/Area" index="0"]
|
||||
transform = Transform( -1.49012e-07, 0, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -5.21541e-08, 0.0388942, 0.0484145, -8.19564e-08 )
|
||||
shape = SubResource( 9 )
|
||||
|
||||
[node name="apples" type="Spatial" parent="Hidden Objects Items" index="5"]
|
||||
[node name="Apples" type="Spatial" parent="HiddenObjectsItems" index="5"]
|
||||
|
||||
[node name="apple1" type="MeshInstance" parent="Hidden Objects Items/apples" index="0"]
|
||||
[node name="Apple1" type="MeshInstance" parent="HiddenObjectsItems/Apples" index="0"]
|
||||
transform = Transform( 0.849809, -0.0462348, 0.525058, 0.0744364, 0.996689, -0.0327109, -0.521807, 0.0668814, 0.850438, -2.20275, -0.0779731, 2.45146 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 4 )
|
||||
material/0 = ExtResource( 15 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/apples/apple1" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Apples/Apple1" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeApple" type="CollisionShape" parent="Hidden Objects Items/apples/apple1/Area" index="0"]
|
||||
[node name="CollisionShapeApple" type="CollisionShape" parent="HiddenObjectsItems/Apples/Apple1/Area" index="0"]
|
||||
transform = Transform( -1.45286e-07, -2.98023e-08, 1, -1, -1.11759e-08, 0, 1.86265e-08, -1, -8.9407e-08, -1.90735e-06, 0.00575864, 0 )
|
||||
shape = SubResource( 10 )
|
||||
|
||||
[node name="apple2" type="MeshInstance" parent="Hidden Objects Items/apples" index="1"]
|
||||
[node name="Apple2" type="MeshInstance" parent="HiddenObjectsItems/Apples" index="1"]
|
||||
transform = Transform( -0.190449, 0, 0.981697, 0, 1, 0, -0.981697, 0, -0.190449, -1.71166, -0.0869397, -1.29534 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 4 )
|
||||
material/0 = ExtResource( 9 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/apples/apple2" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Apples/Apple2" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeApple2" type="CollisionShape" parent="Hidden Objects Items/apples/apple2/Area" index="0"]
|
||||
[node name="CollisionShapeApple2" type="CollisionShape" parent="HiddenObjectsItems/Apples/Apple2/Area" index="0"]
|
||||
transform = Transform( -1.49012e-07, 4.47035e-08, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -1.49012e-08, -4.76837e-07, -0.00566041, 0 )
|
||||
shape = SubResource( 11 )
|
||||
|
||||
[node name="apple3" type="MeshInstance" parent="Hidden Objects Items/apples" index="2"]
|
||||
[node name="Apple3" type="MeshInstance" parent="HiddenObjectsItems/Apples" index="2"]
|
||||
transform = Transform( 0.823731, 0.226496, -0.519776, -0.248954, 0.96813, 0.0273319, 0.509401, 0.106886, 0.853865, -0.718663, -0.36046, 1.92043 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 4 )
|
||||
material/0 = ExtResource( 20 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/apples/apple3" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Apples/Apple3" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeApple3" type="CollisionShape" parent="Hidden Objects Items/apples/apple3/Area" index="0"]
|
||||
[node name="CollisionShapeApple3" type="CollisionShape" parent="HiddenObjectsItems/Apples/Apple3/Area" index="0"]
|
||||
transform = Transform( -1.71363e-07, 0, 1, -1, -3.72529e-08, 1.49012e-08, 2.98023e-08, -1, -1.19209e-07, -3.57628e-07, 0.0142345, 2.38419e-07 )
|
||||
shape = SubResource( 12 )
|
||||
|
||||
[node name="apple4" type="MeshInstance" parent="Hidden Objects Items/apples" index="3"]
|
||||
[node name="Apple4" type="MeshInstance" parent="HiddenObjectsItems/Apples" index="3"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.38775, -0.940515, 0.233058 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 4 )
|
||||
material/0 = ExtResource( 10 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/apples/apple4" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Apples/Apple4" index="0"]
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeApple4" type="CollisionShape" parent="Hidden Objects Items/apples/apple4/Area" index="0"]
|
||||
[node name="CollisionShapeApple4" type="CollisionShape" parent="HiddenObjectsItems/Apples/Apple4/Area" index="0"]
|
||||
transform = Transform( -1.49012e-07, 0, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -5.21541e-08, -4.76837e-07, 0.00115258, -1.17347e-07 )
|
||||
shape = SubResource( 13 )
|
||||
|
||||
[node name="golds" type="Spatial" parent="Hidden Objects Items" index="6"]
|
||||
[node name="Coins" type="Spatial" parent="HiddenObjectsItems" index="6"]
|
||||
|
||||
[node name="coin1" type="MeshInstance" parent="Hidden Objects Items/golds" index="0"]
|
||||
[node name="Coin1" type="MeshInstance" parent="HiddenObjectsItems/Coins" index="0"]
|
||||
transform = Transform( -0.958704, -0.0851446, 0.271362, -0.0825332, 0.996367, 0.0210433, -0.272167, -0.00222202, -0.962248, 0.215021, 0.00178671, 0.520763 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 2 )
|
||||
material/0 = ExtResource( 18 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/golds/coin1" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Coins/Coin1" index="0"]
|
||||
transform = Transform( 1, -4.65661e-09, 0, 2.68919e-08, 1, 4.65661e-10, -1.19209e-07, -1.14087e-08, 1, -0.0781975, -0.0532835, -0.0615574 )
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeGold1" type="CollisionShape" parent="Hidden Objects Items/golds/coin1/Area" index="0"]
|
||||
[node name="CollisionShapeGold1" type="CollisionShape" parent="HiddenObjectsItems/Coins/Coin1/Area" index="0"]
|
||||
transform = Transform( 1, -4.65661e-08, 0, -1.38185e-07, 0.999999, 3.14321e-08, 4.17233e-07, -4.19095e-09, 1, 0.0276761, 0.00212932, 0.0336302 )
|
||||
shape = SubResource( 14 )
|
||||
|
||||
[node name="coin2" type="MeshInstance" parent="Hidden Objects Items/golds" index="1"]
|
||||
[node name="Coin2" type="MeshInstance" parent="HiddenObjectsItems/Coins" index="1"]
|
||||
transform = Transform( 0.250245, 2.79397e-09, -0.968183, 0.0456076, 0.99889, 0.0117882, 0.967108, -0.0471065, 0.249967, 0.752443, -0.000386238, 1.36745 )
|
||||
layers = 3
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 2 )
|
||||
material/0 = ExtResource( 16 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/golds/coin2" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Coins/Coin2" index="0"]
|
||||
transform = Transform( 1, -1.49012e-08, 0, 0, 1, 9.31323e-10, 1.49012e-08, -3.72529e-09, 1, -0.0553267, -0.0679173, -0.0739018 )
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeGold2" type="CollisionShape" parent="Hidden Objects Items/golds/coin2/Area" index="0"]
|
||||
[node name="CollisionShapeGold2" type="CollisionShape" parent="HiddenObjectsItems/Coins/Coin2/Area" index="0"]
|
||||
transform = Transform( 1, 0, 2.98023e-08, 7.45058e-09, 1, -9.31323e-10, 5.96046e-08, 0, 1, 0.0499306, 1.19209e-07, 0.0191208 )
|
||||
shape = SubResource( 15 )
|
||||
|
||||
[node name="coin3" type="MeshInstance" parent="Hidden Objects Items/golds" index="2"]
|
||||
[node name="Coin3" type="MeshInstance" parent="HiddenObjectsItems/Coins" index="2"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.74641, -0.885448, -0.198129 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 2 )
|
||||
material/0 = ExtResource( 6 )
|
||||
|
||||
[node name="Area" type="Area" parent="Hidden Objects Items/golds/coin3" index="0"]
|
||||
[node name="Area" type="Area" parent="HiddenObjectsItems/Coins/Coin3" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0744205, -0.0795707, -0.040606 )
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShapeGold3" type="CollisionShape" parent="Hidden Objects Items/golds/coin3/Area" index="0"]
|
||||
[node name="CollisionShapeGold3" type="CollisionShape" parent="HiddenObjectsItems/Coins/Coin3/Area" index="0"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0358186, 0, 0.0109152 )
|
||||
shape = SubResource( 16 )
|
||||
|
||||
[node name="Main Scene Props" type="Spatial" parent="." index="6"]
|
||||
[node name="MainSceneProps" type="Spatial" parent="." index="6"]
|
||||
|
||||
[node name="sm_book" parent="Main Scene Props" index="0" instance=ExtResource( 33 )]
|
||||
[node name="sm_book" parent="MainSceneProps" index="0" instance=ExtResource( 33 )]
|
||||
transform = Transform( 0.259561, 0, 0.965727, 0.0582327, 0.99818, -0.0156514, -0.963969, 0.0602995, 0.259089, 0.13025, 0.960907, -0.456389 )
|
||||
script = SubResource( 17 )
|
||||
lod_0_max_distance = 10.0
|
||||
lod_1_max_distance = 25.0
|
||||
lod_2_max_distance = 100.0
|
||||
|
||||
[node name="sm_book2" parent="Main Scene Props/sm_book" index="1" instance=ExtResource( 33 )]
|
||||
[node name="sm_book2" parent="MainSceneProps/sm_book" index="1" instance=ExtResource( 33 )]
|
||||
transform = Transform( 0.0229641, -0.00339183, -0.999731, 0.0393653, 0.999223, -0.00248598, 0.998961, -0.0392976, 0.0230803, 0.00279957, 0.066205, -0.000443451 )
|
||||
script = SubResource( 17 )
|
||||
lod_0_max_distance = 10.0
|
||||
lod_1_max_distance = 25.0
|
||||
lod_2_max_distance = 100.0
|
||||
|
||||
[node name="sm_book3" parent="Main Scene Props/sm_book/sm_book2" index="1" instance=ExtResource( 33 )]
|
||||
[node name="sm_book3" parent="MainSceneProps/sm_book/sm_book2" index="1" instance=ExtResource( 33 )]
|
||||
transform = Transform( 0.86032, -0.0497817, -0.507318, 0.0471006, 0.998725, -0.0181282, 0.507573, -0.00829895, 0.861568, 0.00110056, 0.070618, -0.00503528 )
|
||||
script = SubResource( 17 )
|
||||
lod_0_max_distance = 10.0
|
||||
lod_1_max_distance = 25.0
|
||||
lod_2_max_distance = 100.0
|
||||
|
||||
[node name="sm_candlestick" parent="Main Scene Props/sm_book/sm_book2/sm_book3" index="1" instance=ExtResource( 29 )]
|
||||
[node name="sm_candlestick" parent="MainSceneProps/sm_book/sm_book2/sm_book3" index="1" instance=ExtResource( 29 )]
|
||||
transform = Transform( 1.0543, -0.0109484, 1.03432, -0.0329634, 1.4758, 0.0492217, -1.03385, -0.0582193, 1.05321, 0.0299356, 0.0326169, -0.0690778 )
|
||||
|
||||
[node name="sm_table" parent="Main Scene Props" index="1" instance=ExtResource( 28 )]
|
||||
[node name="sm_table" parent="MainSceneProps" index="1" instance=ExtResource( 28 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0926853, 0.0400838, 0.290515 )
|
||||
|
||||
[node name="sm_stool_b" parent="Main Scene Props" index="2" instance=ExtResource( 31 )]
|
||||
[node name="sm_stool_b" parent="MainSceneProps" index="2" instance=ExtResource( 31 )]
|
||||
transform = Transform( -0.232037, 0, -0.972707, 0, 1, 0, 0.972707, 0, -0.232037, -2.91873, 0.0130518, 0.702275 )
|
||||
|
||||
[node name="sm_stool_b2" parent="Main Scene Props" index="3" instance=ExtResource( 31 )]
|
||||
[node name="sm_stool_b2" parent="MainSceneProps" index="3" instance=ExtResource( 31 )]
|
||||
transform = Transform( 0.769693, -0.034908, -0.637459, 0.0288114, 0.999386, -0.0199395, 0.637764, -0.00301879, 0.770226, -4.33166, 0.0231258, 1.08363 )
|
||||
|
||||
[node name="sm_stool_b3" parent="Main Scene Props" index="4" instance=ExtResource( 31 )]
|
||||
[node name="sm_stool_b3" parent="MainSceneProps" index="4" instance=ExtResource( 31 )]
|
||||
transform = Transform( 0.98104, 0, 0.193806, 0, 1, 0, -0.193806, 0, 0.98104, -3.04076, 0.0372323, -0.817556 )
|
||||
|
||||
[node name="sm_stool_b7" parent="Main Scene Props" index="5" instance=ExtResource( 31 )]
|
||||
[node name="sm_stool_b7" parent="MainSceneProps" index="5" instance=ExtResource( 31 )]
|
||||
transform = Transform( 0.656257, 0, 0.754538, 0, 1, 0, -0.754538, 0, 0.656257, -0.888955, 0.0130518, 1.64328 )
|
||||
|
||||
[node name="sm_stool_b4" parent="Main Scene Props" index="6" instance=ExtResource( 31 )]
|
||||
[node name="sm_stool_b4" parent="MainSceneProps" index="6" instance=ExtResource( 31 )]
|
||||
transform = Transform( 0.892389, 0, -0.451267, 0, 1, 0, 0.451267, 0, 0.892389, 1.35966, 0.013052, 1.23435 )
|
||||
|
||||
[node name="sm_stool_b5" parent="Main Scene Props" index="7" instance=ExtResource( 31 )]
|
||||
[node name="sm_stool_b5" parent="MainSceneProps" index="7" instance=ExtResource( 31 )]
|
||||
transform = Transform( 0.839193, 0, 0.543834, 0, 1, 0, -0.543834, 0, 0.839193, 0.474083, 0.013052, -1.39025 )
|
||||
|
||||
[node name="sm_book2" parent="Main Scene Props" index="8" instance=ExtResource( 33 )]
|
||||
[node name="sm_book2" parent="MainSceneProps" index="8" instance=ExtResource( 33 )]
|
||||
transform = Transform( 0.122577, 0.0288089, -0.992041, -0.0361233, 0.999045, 0.0245489, 0.991801, 0.0328267, 0.1235, 0.493202, 0.942654, -0.0854386 )
|
||||
script = SubResource( 17 )
|
||||
lod_0_max_distance = 10.0
|
||||
lod_1_max_distance = 25.0
|
||||
lod_2_max_distance = 100.0
|
||||
|
||||
[node name="sm_book3" parent="Main Scene Props" index="9" instance=ExtResource( 33 )]
|
||||
[node name="sm_book3" parent="MainSceneProps" index="9" instance=ExtResource( 33 )]
|
||||
transform = Transform( 0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, 0.5, 0.0106606, 0.96499, 0.981535 )
|
||||
script = SubResource( 17 )
|
||||
lod_0_max_distance = 10.0
|
||||
lod_1_max_distance = 25.0
|
||||
lod_2_max_distance = 100.0
|
||||
|
||||
[node name="sm_book" parent="Main Scene Props/sm_book3" index="1" instance=ExtResource( 33 )]
|
||||
[node name="sm_book" parent="MainSceneProps/sm_book3" index="1" instance=ExtResource( 33 )]
|
||||
transform = Transform( 0.992026, 0, 0.592682, 0, 1.15559, 0, -0.592682, 0, 0.992026, -0.000832617, 0.0791223, -0.012241 )
|
||||
script = SubResource( 17 )
|
||||
lod_0_max_distance = 10.0
|
||||
lod_1_max_distance = 25.0
|
||||
lod_2_max_distance = 100.0
|
||||
|
||||
[node name="sm_godet" parent="Main Scene Props" index="10" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet" parent="MainSceneProps" index="10" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.875311, 0.480987, 0.0498184, 0.0206958, 0.0656668, -0.997627, -0.483117, 0.874265, 0.0475244, -0.191043, 0.95253, 0.11484 )
|
||||
|
||||
[node name="sm_godet2" parent="Main Scene Props" index="11" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet2" parent="MainSceneProps" index="11" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.706057, 0, -0.708155, 0, 1, 0, 0.708155, 0, 0.706057, -0.112722, 0.901657, 0.00149509 )
|
||||
|
||||
[node name="sm_godet6" parent="Main Scene Props" index="12" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet6" parent="MainSceneProps" index="12" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.757895, 0, 0.652376, 0, 1, 0, -0.652376, 0, 0.757895, -0.28474, 0.905096, 0.78228 )
|
||||
|
||||
[node name="sm_godet5" parent="Main Scene Props" index="13" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet5" parent="MainSceneProps" index="13" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.886172, -0.463214, 0.0114893, -0.0309068, -0.0343508, 0.998932, -0.462324, -0.885581, -0.0447572, -0.0861932, 0.982616, 0.742759 )
|
||||
|
||||
[node name="sm_godet4" parent="Main Scene Props" index="14" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet4" parent="MainSceneProps" index="14" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.690251, 0, 0.72357, 0, 1, 0, -0.72357, 0, 0.690251, -0.333186, 0.901657, 0.177792 )
|
||||
|
||||
[node name="sm_growler" parent="Main Scene Props" index="15" instance=ExtResource( 34 )]
|
||||
[node name="sm_growler" parent="MainSceneProps" index="15" instance=ExtResource( 34 )]
|
||||
transform = Transform( 0.0876426, 0, -0.996152, 0, 1, 0, 0.996152, 0, 0.0876426, -0.316595, 0.905106, -0.0726386 )
|
||||
|
||||
[node name="sm_parchment" parent="Main Scene Props" index="16" instance=ExtResource( 30 )]
|
||||
[node name="Parchment" parent="MainSceneProps" index="16" instance=ExtResource( 30 )]
|
||||
transform = Transform( 0.796076, 0.00917861, -0.605127, 0, 0.999885, 0.0151663, 0.605197, -0.0120736, 0.795984, 0.543303, 0.962739, 0.755265 )
|
||||
paper = true
|
||||
|
||||
[node name="sm_parchment2" parent="Main Scene Props" index="17" instance=ExtResource( 30 )]
|
||||
[node name="ParchmentWithoutPaper" parent="MainSceneProps" index="17" instance=ExtResource( 30 )]
|
||||
transform = Transform( -0.596381, 0.0184557, 0.802489, 0.0225364, 0.999726, -0.00624354, -0.802385, 0.0143617, -0.596634, 0.281044, 0.958449, -0.253034 )
|
||||
|
||||
[node name="sm_candle_d2" type="MeshInstance" parent="Main Scene Props" index="18"]
|
||||
[node name="sm_candle_d2" type="MeshInstance" parent="MainSceneProps" index="18"]
|
||||
transform = Transform( -0.927966, 1.10978e-07, -0.372664, 6.91459e-08, 1, 1.25617e-07, 0.372664, 9.08001e-08, -0.927966, 0.457262, 1.00485, -0.058084 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 25 )
|
||||
material/0 = null
|
||||
|
||||
[node name="sm_candle_top2" type="MeshInstance" parent="Main Scene Props" index="19"]
|
||||
[node name="sm_candle_top2" type="MeshInstance" parent="MainSceneProps" index="19"]
|
||||
transform = Transform( 2.94906, 0, 0, 0, 2.85, 0, 0, 0, 2.94906, 0.347704, 1.00342, 1.16015 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 26 )
|
||||
material/0 = null
|
||||
|
||||
[node name="sm_candle_b" type="MeshInstance" parent="Main Scene Props/sm_candle_top2" index="0"]
|
||||
[node name="sm_candle_b" type="MeshInstance" parent="MainSceneProps/sm_candle_top2" index="0"]
|
||||
transform = Transform( 0.553417, 0, 0, 0, 0.553417, 0, 0, 0, 0.553417, 0.0504003, -0.0129334, 0.00162044 )
|
||||
use_in_baked_light = true
|
||||
mesh = ExtResource( 27 )
|
||||
material/0 = null
|
||||
|
||||
[node name="sm_table_left" parent="." index="7" instance=ExtResource( 28 )]
|
||||
[node name="Tableleft" parent="." index="7" instance=ExtResource( 28 )]
|
||||
transform = Transform( -0.958482, 0, -0.285153, 0, 1, 0, 0.285153, 0, -0.958482, -2.60247, 0.0491341, 2.15903 )
|
||||
|
||||
[node name="sm_growler" parent="sm_table_left" index="1" instance=ExtResource( 34 )]
|
||||
[node name="sm_growler" parent="Tableleft" index="1" instance=ExtResource( 34 )]
|
||||
transform = Transform( -0.958482, 0, 0.285153, 0, 1, 0, -0.285153, 0, -0.958482, 0.179069, 0.843493, 2.38419e-07 )
|
||||
|
||||
[node name="sm_godet" parent="sm_table_left" index="2" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet" parent="Tableleft" index="2" instance=ExtResource( 32 )]
|
||||
transform = Transform( -0.958482, 0.0116327, 0.284916, 0, 0.999168, -0.0407945, -0.285153, -0.0391008, -0.957684, 0.00578856, 0.850618, 0.189056 )
|
||||
|
||||
[node name="sm_godet2" parent="sm_table_left" index="3" instance=ExtResource( 32 )]
|
||||
[node name="sm_godet2" parent="Tableleft" index="3" instance=ExtResource( 32 )]
|
||||
transform = Transform( -0.958482, -0.0136413, 0.284827, 0, 0.998855, 0.0478387, -0.285153, 0.0458525, -0.957385, 0.102124, 0.837641, -0.25378 )
|
||||
|
||||
[node name="sm_table_right" parent="." index="8" instance=ExtResource( 28 )]
|
||||
[node name="TableRight" parent="." index="8" instance=ExtResource( 28 )]
|
||||
transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, -2.1664, 0.0295653, -2.02667 )
|
||||
|
||||
[node name="sm_growler" parent="sm_table_right" index="1" instance=ExtResource( 34 )]
|
||||
[node name="Growler" parent="TableRight" index="1" instance=ExtResource( 34 )]
|
||||
transform = Transform( 0.428226, 0, -0.903672, 0, 1, 0, 0.903672, 0, 0.428226, 0.260903, 0.870654, 0.24329 )
|
||||
|
||||
[node name="sm_godet" parent="sm_table_right" index="2" instance=ExtResource( 32 )]
|
||||
[node name="Godet" parent="TableRight" index="2" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.869771, 0, 0.493456, 0, 1, 0, -0.493456, 0, 0.869771, 0.124432, 0.85553, -0.0287701 )
|
||||
|
||||
[node name="sm_godet3" parent="sm_table_right" index="3" instance=ExtResource( 32 )]
|
||||
[node name="Godet3" parent="TableRight" index="3" instance=ExtResource( 32 )]
|
||||
transform = Transform( 0.979508, 0.200153, 0.0224678, -0.0198889, -0.0148863, 0.999692, 0.200426, -0.979652, -0.0106004, 0.511135, 0.919194, 0.249402 )
|
||||
|
||||
[node name="sm_godet4" parent="sm_table_right" index="4" instance=ExtResource( 32 )]
|
||||
[node name="Godet4" parent="TableRight" index="4" instance=ExtResource( 32 )]
|
||||
transform = Transform( -0.236782, -0.0445638, 0.970541, -0.0267146, 0.998868, 0.039347, -0.971196, -0.0166109, -0.237705, 0.291596, 0.864092, -0.00375021 )
|
||||
|
||||
[node name="Building" type="Spatial" parent="." index="9"]
|
||||
@@ -637,9 +523,9 @@ mesh_library = ExtResource( 37 )
|
||||
use_in_baked_light = true
|
||||
cell_center_y = false
|
||||
cell_center_z = false
|
||||
baked_meshes = [ SubResource( 18 ) ]
|
||||
baked_meshes = [ SubResource( 17 ) ]
|
||||
data = {
|
||||
"cells": PoolIntArray( 0, 0, 0, 65531, 0, 3, 65532, 0, 0, 65533, 0, 0, 65534, 0, -2147483648, 65535, 0, 0, 0, 1, 0, 65531, 1, 3, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 2, 0, 65531, 2, 536870915, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 0, 65533, 0, 65532, 65533, 0, 65533, 65533, 0, 65534, 65533, 0, 65535, 65533, 0, 0, 65534, 0, 65531, 65534, 3, 65532, 65534, 0, 65533, 65534, 0, 65534, 65534, 0, 65535, 65534, 0, 0, 65535, 0, 65531, 65535, 3, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, 0, 65535, 65535, 0 )
|
||||
"cells": PoolIntArray( 0, 0, 536870912, 65531, 0, 3, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 0, 0, 1, 0, 65531, 1, 3, 65532, 1, 536870912, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 2, 0, 65531, 2, 3, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 1073741824, 0, 65533, 0, 65532, 65533, 0, 65533, 65533, 0, 65534, 65533, 0, 65535, 65533, 536870912, 0, 65534, 536870912, 65531, 65534, 3, 65532, 65534, 0, 65533, 65534, 1610612736, 65534, 65534, 536870912, 65535, 65534, 0, 0, 65535, 0, 65531, 65535, 1073741827, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, 0, 65535, 65535, 0 )
|
||||
}
|
||||
__meta__ = {
|
||||
"_editor_clip_": 0,
|
||||
@@ -719,7 +605,7 @@ spot_range = 15.1
|
||||
spot_attenuation = 1.41
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="Lighting" index="2"]
|
||||
environment = SubResource( 20 )
|
||||
environment = SubResource( 19 )
|
||||
|
||||
[node name="Blue Color Right" type="SpotLight" parent="Lighting" index="3"]
|
||||
transform = Transform( -0.994228, 0.0863279, -0.0637094, 0.0626716, 0.949248, 0.308222, 0.0870842, 0.302451, -0.949179, -4.00108, 2.13555, -5.73587 )
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ func _on_home_pressed():
|
||||
func _on_reset_level(level, node, index, parent):
|
||||
Global.current_scene_int = index
|
||||
level.reset()
|
||||
parent.configure_reset(level, node, index)
|
||||
parent.configure_reset(level, node, index, true)
|
||||
parent.configure_counter(level, node)
|
||||
Global.current_scene_int = null
|
||||
|
||||
|
||||
@@ -17,8 +17,6 @@ func _ready():
|
||||
_initialize_loading_scene()
|
||||
|
||||
func _initialize_loading_scene():
|
||||
print("[global#goto_scene] establish signal before")
|
||||
|
||||
animation.connect("animation_started", Event, "_loading_is_started")
|
||||
animation.connect("animation_finished", Event, "_loading_is_finished")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user