Duplicate material coin/apple

This commit is contained in:
VAILLANT Jeremy
2021-05-14 18:23:23 +02:00
parent bea9b3827f
commit b810e857ce
12 changed files with 73 additions and 147 deletions
+41 -117
View File
@@ -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()