diff --git a/assets/props/apple/materials/MA_apple.material b/assets/props/apple/materials/MA_apple1.material similarity index 100% rename from assets/props/apple/materials/MA_apple.material rename to assets/props/apple/materials/MA_apple1.material diff --git a/assets/props/apple/materials/MA_apple2.material b/assets/props/apple/materials/MA_apple2.material new file mode 100644 index 0000000..8b8b71f Binary files /dev/null and b/assets/props/apple/materials/MA_apple2.material differ diff --git a/assets/props/apple/materials/MA_apple3.material b/assets/props/apple/materials/MA_apple3.material new file mode 100644 index 0000000..8b8b71f Binary files /dev/null and b/assets/props/apple/materials/MA_apple3.material differ diff --git a/assets/props/apple/materials/MA_apple4.material b/assets/props/apple/materials/MA_apple4.material new file mode 100644 index 0000000..8b8b71f Binary files /dev/null and b/assets/props/apple/materials/MA_apple4.material differ diff --git a/assets/props/apple/sm_apple.mesh b/assets/props/apple/sm_apple.mesh index c60dcf5..cb8b425 100644 Binary files a/assets/props/apple/sm_apple.mesh and b/assets/props/apple/sm_apple.mesh differ diff --git a/assets/props/stack gold/materials/MA_gold.material b/assets/props/stack gold/materials/MA_gold1.material similarity index 100% rename from assets/props/stack gold/materials/MA_gold.material rename to assets/props/stack gold/materials/MA_gold1.material diff --git a/assets/props/stack gold/materials/MA_gold2.material b/assets/props/stack gold/materials/MA_gold2.material new file mode 100644 index 0000000..909ab5a Binary files /dev/null and b/assets/props/stack gold/materials/MA_gold2.material differ diff --git a/assets/props/stack gold/materials/MA_gold3.material b/assets/props/stack gold/materials/MA_gold3.material new file mode 100644 index 0000000..909ab5a Binary files /dev/null and b/assets/props/stack gold/materials/MA_gold3.material differ diff --git a/assets/props/stack gold/sm_stackgold.mesh b/assets/props/stack gold/sm_stackgold.mesh index 64fa5fd..ed9bf6f 100644 Binary files a/assets/props/stack gold/sm_stackgold.mesh and b/assets/props/stack gold/sm_stackgold.mesh differ diff --git a/scenes/levels/warcraft/WarCraft.exr b/scenes/levels/warcraft/WarCraft.exr index 6b8a228..c15384e 100644 Binary files a/scenes/levels/warcraft/WarCraft.exr and b/scenes/levels/warcraft/WarCraft.exr differ diff --git a/scenes/levels/warcraft/WarCraft.exr.import b/scenes/levels/warcraft/WarCraft.exr.import index 1a8f516..cbfdd1f 100644 --- a/scenes/levels/warcraft/WarCraft.exr.import +++ b/scenes/levels/warcraft/WarCraft.exr.import @@ -21,4 +21,4 @@ flags/filter=true flags/mipmaps=false flags/srgb=false slices/horizontal=1 -slices/vertical=4 +slices/vertical=2 diff --git a/scenes/levels/warcraft/WarCraft.gd b/scenes/levels/warcraft/WarCraft.gd index 6b990c4..83998c8 100644 --- a/scenes/levels/warcraft/WarCraft.gd +++ b/scenes/levels/warcraft/WarCraft.gd @@ -5,112 +5,16 @@ const GYROSCOPE_MAX_DIFF = 0.5 const OFFSET_CAMERA_MAX = 0.12 const OFFSET_STEP_CHANGE = 0.01 -var gyroscope_value_old = Vector3(0, 0, 0) +onready var gyroscope_value_old = Vector3(0, 0, 0) +onready var table = Global.database.get_table_by_name("scenes") +onready var meshes = {} +onready var meshes2 = null -onready var meshes = { - "dagger": { - "mesh": $"Hidden Objects Items/dagger", - "value": 0.0, - "label": "Dagger", - "lock": false, - "tick_reference": null - }, - "fiole1": { - "mesh": $"Hidden Objects Items/Fioles x3/sm_fiole1", - "value": 0.0, - "label": "Fiole", - "lock": false, - "tick_reference": null - }, - "fiole2": { - "mesh": $"Hidden Objects Items/Fioles x3/sm_fiole2", - "value": 0.0, - "label": "Fiole", - "lock": false, - "tick_reference": null - }, - "fiole3": { - "mesh": $"Hidden Objects Items/Fioles x3/sm_fiole_socle/sm_fiole3", - "value": 0.0, - "label": "Fiole", - "lock": false, - "tick_reference": null - }, - "spyglass": { - "mesh": $"Hidden Objects Items/sm_spyglass", - "value": 0.0, - "label": "Spyglass", - "lock": false, - "tick_reference": null - }, - "coin1": { - "mesh": $"Hidden Objects Items/golds/sm_stackgold_1", - "value": 0.0, - "label": "Coins", - "lock": false, - "tick_reference": null - }, - "coin2": { - "mesh": $"Hidden Objects Items/golds/sm_stackgold_2", - "value": 0.0, - "label": "Coins", - "lock": false, - "tick_reference": null - }, - "coin3": { - "mesh": $"Hidden Objects Items/golds/sm_stackgold_3", - "value": 0.0, - "label": "Coins", - "lock": false, - "tick_reference": null - }, - "weapon": { - "mesh": $"Hidden Objects Items/sm_weapon_gun", - "value": 0.0, - "label": "Weapon Gun", - "lock": false, - "tick_reference": null - }, - "beer": { - "mesh": $"Hidden Objects Items/sm_pinte_beer", - "value": 0.0, - "label": "Beer Pinte", - "lock": false, - "tick_reference": null - }, - "apple1": { - "mesh": $"Hidden Objects Items/apples/sm_apple_1", - "value": 0.0, - "label": "Apple", - "lock": false, - "tick_reference": null - }, - "apple2": { - "mesh": $"Hidden Objects Items/apples/sm_apple_2", - "value": 0.0, - "label": "Apple", - "lock": false, - "tick_reference": null - }, - "apple3": { - "mesh": $"Hidden Objects Items/apples/sm_apple_3", - "value": 0.0, - "label": "Apple", - "lock": false, - "tick_reference": null - }, - "apple4": { - "mesh": $"Hidden Objects Items/apples/sm_apple_4", - "value": 0.0, - "label": "Apple", - "lock": false, - "tick_reference": null - } -} +var mscene = load("res://db/MScene.gd") func _ready(): - $Dialog/ConfirmEscape.set_title(tr("SCENE_WARCRAFT_DIALOG_QUIT_TITLE")) - $Dialog/ConfirmEscape.set_text(tr("SCENE_WARCRAFT_DIALOG_QUIT_QUESTION")) + _load_translations() + _load_meshes() func _process(_delta): _check_quit_scene() @@ -124,17 +28,20 @@ func _check_quit_scene(): func _check_dissolve_mesh(): # Event dissolve in object searched by gamer - for mesh in meshes: - if meshes[mesh]["lock"] == true and meshes[mesh]["mesh"] != null: - if meshes[mesh]["tick_reference"] == null: - meshes[mesh]["tick_reference"] = OS.get_ticks_msec() - - if OS.get_ticks_msec() < meshes[mesh]["tick_reference"] + TIME_MAX: - meshes[mesh]["value"] += 0.01 - meshes[mesh]["mesh"].get_surface_material(0).set("shader_param/dissolve_amount", meshes[mesh]["value"]) + for key in meshes: + if meshes[key].lock() == true and meshes[key].mesh() != null: + if meshes[key].tick_reference() == 0: + meshes[key].set_tick_reference(OS.get_ticks_msec()) + + if OS.get_ticks_msec() < meshes[key].tick_reference() + TIME_MAX: + meshes[key].set_value(meshes[key].value() + 0.01) + node_to_mesh(key).get_surface_material(0).set("shader_param/dissolve_amount", meshes[key].value()) else: - meshes[mesh]["mesh"].call_deferred("free") - meshes[mesh]["mesh"] = null + node_to_mesh(key).call_deferred("free") + meshes[key].set_mesh(null) + +func node_to_mesh(key): + return get_node(meshes[key].mesh()) func _check_change_angle_camera(): var camera = $"Main Camera" @@ -210,10 +117,10 @@ func _confirm_before_quit(): func _quit_to_menu(): Global.goto_scene("res://scenes/main.tscn") -func _initialize_mesh_ref(meshInstance, event): - if meshes[meshInstance]["lock"] == false and (event is InputEventMouseButton or event is InputEventScreenTouch): - meshes[meshInstance]["lock"] = true - +func _initialize_mesh_ref(key, event): + if meshes[key].lock() == false and (event is InputEventMouseButton or event is InputEventScreenTouch): + meshes[key].set_lock(true) + # Event when user click/touch dagger func _on_dagger_input_event(_camera, event, _click_position, _click_normal, _shape_idx): _initialize_mesh_ref("dagger", event) @@ -259,3 +166,20 @@ func _on_gold_3_input_event(_camera, event, _click_position, _click_normal, _sha func _on_ConfirmEscape_confirmed(): _quit_to_menu() + +## PRIVATE +func _load_translations(): + $Dialog/ConfirmEscape.set_title(tr("SCENE_WARCRAFT_DIALOG_QUIT_TITLE")) + $Dialog/ConfirmEscape.set_text(tr("SCENE_WARCRAFT_DIALOG_QUIT_QUESTION")) + +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 + + for key in meshes: + meshes[key].search_keys() diff --git a/scenes/levels/warcraft/WarCraft.lmbake b/scenes/levels/warcraft/WarCraft.lmbake index 652aa92..4bccd6d 100644 Binary files a/scenes/levels/warcraft/WarCraft.lmbake and b/scenes/levels/warcraft/WarCraft.lmbake differ diff --git a/scenes/levels/warcraft/WarCraft.tscn b/scenes/levels/warcraft/WarCraft.tscn index 351a686..6722089 100644 --- a/scenes/levels/warcraft/WarCraft.tscn +++ b/scenes/levels/warcraft/WarCraft.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=52 format=2] +[gd_scene load_steps=57 format=2] [ext_resource path="res://assets/props/candle/sm_candle_top.mesh" type="ArrayMesh" id=1] [ext_resource path="res://scenes/levels/warcraft/WarCraft.gd" type="Script" id=2] @@ -28,11 +28,16 @@ [ext_resource path="res://assets/props/fiole/materials/MA_fiole_green.material" type="Material" id=26] [ext_resource path="res://assets/props/fiole/materials/MA_fiole_red.material" type="Material" id=27] [ext_resource path="res://assets/props/fiole/materials/MA_fiole_blue.material" type="Material" id=28] +[ext_resource path="res://assets/props/apple/materials/MA_apple1.material" type="Material" id=29] [ext_resource path="res://assets/props/stack gold/sm_stackgold.mesh" type="ArrayMesh" id=30] -[ext_resource path="res://assets/props/stack gold/materials/MA_gold.material" type="Material" id=32] +[ext_resource path="res://assets/props/apple/materials/MA_apple3.material" type="Material" id=31] +[ext_resource path="res://assets/props/stack gold/materials/MA_gold3.material" type="Material" id=32] [ext_resource path="res://assets/props/pinte beer/materials/MA_pinte_beer.material" type="Material" id=33] [ext_resource path="res://assets/props/weapon gun/materials/MA_weapon_gun.material" type="Material" id=34] -[ext_resource path="res://assets/props/apple/materials/MA_apple.material" type="Material" id=35] +[ext_resource path="res://assets/props/apple/materials/MA_apple4.material" type="Material" id=35] +[ext_resource path="res://assets/props/apple/materials/MA_apple2.material" type="Material" id=36] +[ext_resource path="res://assets/props/stack gold/materials/MA_gold2.material" type="Material" id=37] +[ext_resource path="res://assets/props/stack gold/materials/MA_gold1.material" type="Material" id=38] [sub_resource type="CubeMesh" id=1] @@ -484,55 +489,55 @@ material/0 = ExtResource( 8 ) [node name="Hidden Objects Items" type="Spatial" parent="."] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.233905, 1.0296, -0.405055 ) -[node name="Fioles x3" type="Spatial" parent="Hidden Objects Items"] +[node name="fioles" type="Spatial" parent="Hidden Objects Items"] -[node name="sm_fiole1" type="MeshInstance" parent="Hidden Objects Items/Fioles x3"] +[node name="sm_fiole1" type="MeshInstance" parent="Hidden Objects Items/fioles"] transform = Transform( -0.210773, -0.635682, 0.742619, 0.949185, -0.314721, 0, 0.233718, 0.704883, 0.669714, 0.0481223, 0, -0.094099 ) mesh = ExtResource( 24 ) material/0 = ExtResource( 26 ) -[node name="AreaFiole1" type="Area" parent="Hidden Objects Items/Fioles x3/sm_fiole1"] +[node name="AreaFiole1" type="Area" parent="Hidden Objects Items/fioles/sm_fiole1"] -[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/Fioles x3/sm_fiole1/AreaFiole1"] +[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/fioles/sm_fiole1/AreaFiole1"] transform = Transform( 1, 2.98023e-08, -8.9407e-08, 0, -1.19209e-07, 1, -8.9407e-08, -1, 2.98023e-08, -5.96046e-08, 0.0801149, 0 ) shape = SubResource( 5 ) -[node name="sm_fiole2" type="MeshInstance" parent="Hidden Objects Items/Fioles x3"] +[node name="sm_fiole2" type="MeshInstance" parent="Hidden Objects Items/fioles"] 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 ) mesh = ExtResource( 24 ) material/0 = ExtResource( 27 ) -[node name="AreaFiole2" type="Area" parent="Hidden Objects Items/Fioles x3/sm_fiole2"] +[node name="AreaFiole2" type="Area" parent="Hidden Objects Items/fioles/sm_fiole2"] 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 ) -[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/Fioles x3/sm_fiole2/AreaFiole2"] +[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/fioles/sm_fiole2/AreaFiole2"] 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( 6 ) -[node name="sm_fiole_socle" type="MeshInstance" parent="Hidden Objects Items/Fioles x3"] +[node name="sm_fiole_socle" type="MeshInstance" parent="Hidden Objects Items/fioles"] 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 ) mesh = ExtResource( 25 ) material/0 = null -[node name="sm_fiole3" type="MeshInstance" parent="Hidden Objects Items/Fioles x3/sm_fiole_socle"] +[node name="sm_fiole3" type="MeshInstance" parent="Hidden Objects Items/fioles/sm_fiole_socle"] 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 ) mesh = ExtResource( 24 ) material/0 = ExtResource( 28 ) -[node name="AreaFiole3" type="Area" parent="Hidden Objects Items/Fioles x3/sm_fiole_socle/sm_fiole3"] +[node name="AreaFiole3" type="Area" parent="Hidden Objects Items/fioles/sm_fiole_socle/sm_fiole3"] -[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/Fioles x3/sm_fiole_socle/sm_fiole3/AreaFiole3"] +[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/fioles/sm_fiole_socle/sm_fiole3/AreaFiole3"] 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( 7 ) -[node name="dagger" type="MeshInstance" parent="Hidden Objects Items"] +[node name="sm_dagger" type="MeshInstance" parent="Hidden Objects Items"] transform = Transform( -0.625025, -0.77987, 0.0338859, 0, 0.0434097, 0.999058, -0.780606, 0.624436, -0.0271321, 0.697412, -0.0996332, 0.822543 ) mesh = ExtResource( 14 ) material/0 = ExtResource( 19 ) -[node name="Area" type="Area" parent="Hidden Objects Items/dagger"] +[node name="Area" type="Area" parent="Hidden Objects Items/sm_dagger"] -[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/dagger/Area"] +[node name="CollisionShape" type="CollisionShape" parent="Hidden Objects Items/sm_dagger/Area"] transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.0802139, 0 ) shape = SubResource( 8 ) @@ -573,7 +578,7 @@ shape = SubResource( 11 ) [node name="sm_apple_1" type="MeshInstance" parent="Hidden Objects Items/apples"] 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 ) mesh = ExtResource( 22 ) -material/0 = ExtResource( 35 ) +material/0 = ExtResource( 29 ) [node name="Area5" type="Area" parent="Hidden Objects Items/apples/sm_apple_1"] @@ -584,7 +589,7 @@ shape = SubResource( 12 ) [node name="sm_apple_2" type="MeshInstance" parent="Hidden Objects Items/apples"] transform = Transform( -0.190449, 0, 0.981697, 0, 1, 0, -0.981697, 0, -0.190449, -1.71166, -0.0869397, -1.29534 ) mesh = ExtResource( 22 ) -material/0 = ExtResource( 35 ) +material/0 = ExtResource( 36 ) [node name="Area6" type="Area" parent="Hidden Objects Items/apples/sm_apple_2"] @@ -595,7 +600,7 @@ shape = SubResource( 13 ) [node name="sm_apple_3" type="MeshInstance" parent="Hidden Objects Items/apples"] 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 ) mesh = ExtResource( 22 ) -material/0 = ExtResource( 35 ) +material/0 = ExtResource( 31 ) [node name="Area7" type="Area" parent="Hidden Objects Items/apples/sm_apple_3"] @@ -619,7 +624,7 @@ shape = SubResource( 15 ) [node name="sm_stackgold_1" type="MeshInstance" parent="Hidden Objects Items/golds"] transform = Transform( -0.958704, -0.0851446, 0.271362, -0.0825332, 0.996367, 0.0210433, -0.272167, -0.00222202, -0.962248, 0.234182, -0.0596957, 0.546686 ) mesh = ExtResource( 30 ) -material/0 = ExtResource( 32 ) +material/0 = ExtResource( 38 ) [node name="Area9" type="Area" parent="Hidden Objects Items/golds/sm_stackgold_1"] @@ -630,7 +635,7 @@ shape = SubResource( 16 ) [node name="sm_stackgold_2" type="MeshInstance" parent="Hidden Objects Items/golds"] transform = Transform( 0.250245, 2.79397e-09, -0.968183, 0.0456076, 0.99889, 0.0117882, 0.967108, -0.0471065, 0.249967, 0.752443, -0.0417374, 1.3694 ) mesh = ExtResource( 30 ) -material/0 = ExtResource( 32 ) +material/0 = ExtResource( 37 ) [node name="Area10" type="Area" parent="Hidden Objects Items/golds/sm_stackgold_2"] @@ -650,10 +655,10 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0358186, 0, 0.0109152 ) shape = SubResource( 18 ) [connection signal="confirmed" from="Dialog/ConfirmEscape" to="." method="_on_ConfirmEscape_confirmed"] -[connection signal="input_event" from="Hidden Objects Items/Fioles x3/sm_fiole1/AreaFiole1" to="." method="_on_fiole1_input_event"] -[connection signal="input_event" from="Hidden Objects Items/Fioles x3/sm_fiole2/AreaFiole2" to="." method="_on_fiole2_input_event"] -[connection signal="input_event" from="Hidden Objects Items/Fioles x3/sm_fiole_socle/sm_fiole3/AreaFiole3" to="." method="_on_fiole3_input_event"] -[connection signal="input_event" from="Hidden Objects Items/dagger/Area" to="." method="_on_dagger_input_event"] +[connection signal="input_event" from="Hidden Objects Items/fioles/sm_fiole1/AreaFiole1" to="." method="_on_fiole1_input_event"] +[connection signal="input_event" from="Hidden Objects Items/fioles/sm_fiole2/AreaFiole2" to="." method="_on_fiole2_input_event"] +[connection signal="input_event" from="Hidden Objects Items/fioles/sm_fiole_socle/sm_fiole3/AreaFiole3" to="." method="_on_fiole3_input_event"] +[connection signal="input_event" from="Hidden Objects Items/sm_dagger/Area" to="." method="_on_dagger_input_event"] [connection signal="input_event" from="Hidden Objects Items/sm_spyglass/Area2" to="." method="_on_spyglass_input_event"] [connection signal="input_event" from="Hidden Objects Items/sm_pinte_beer/Area3" to="." method="_on_pinte_beer_input_event"] [connection signal="input_event" from="Hidden Objects Items/sm_weapon_gun/Area4" to="." method="_on_weapon_gun_input_event"]