feature/list-object-counter (#60)

Co-authored-by: VAILLANT Jeremy <vaillant.jeremy@dev-crea.com>
Reviewed-on: Athena/game-source#60
Co-authored-by: darknight <vaillant.jeremy@dev-crea.com>
Co-committed-by: darknight <vaillant.jeremy@dev-crea.com>
This commit is contained in:
darknight
2021-05-29 21:09:10 +02:00
parent 80890cbdce
commit ed20465f39
22 changed files with 475 additions and 165 deletions
+41 -52
View File
@@ -1,38 +1,36 @@
extends "res://db/MBase.gd"
var m_value = { "id": null, "value": null }
var m_lock = { "id": null, "value": null }
var m_value = 0
var m_lock = null
var m_label = null
var m_label_id = null
var m_tick_reference = { "id": null, "value": null }
var m_label_counter = null
var m_tick_reference = 0
var m_key = null
var m_level = null
var m_mesh = null
var m_counter = null
var m_row_id = null
const LOCK_ID = 0
const LABEL_ID = 1
const KEY_ID = 2
const LEVEL_ID = 3
const MESH_ID = 4
const LABEL_COUNTER = 5
const COUNTER_ID = 6
func _init(row_index):
table = Global.database.get_table_by_name("scenes")
m_row_id = row_index
var datas = table.get_data_at_row_idx(m_row_id)
var datas = table.get_data_at_row_idx(row_index)
if _get_level(datas) == Global.current_scene_int:
m_key = _get_key(datas)
m_value["value"] = _get_value(datas)
m_lock["value"] = _get_lock(datas)
m_lock = _get_lock(datas)
m_label = _get_label(datas)
m_label_id = _get_label_id(datas)
m_tick_reference["value"] = _get_tick_reference(datas)
m_label_counter = _get_label_counter(datas)
m_mesh = _get_mesh(datas)
func search_keys():
for prop_index in range(0, table.get_props_count()):
if table.get_prop_at(prop_index).get_prop_name() == "value" or \
table.get_prop_at(prop_index).get_prop_name() == "lock" or \
table.get_prop_at(prop_index).get_prop_name() == "tick_reference":
if m_value["id"] == null:
m_value["id"] = _get_value_id(prop_index)
if m_lock["id"] == null:
m_lock["id"] = _get_lock_id(prop_index)
if m_tick_reference["id"] == null:
m_tick_reference["id"] = _get_tick_reference_id(prop_index)
m_counter = _get_counter(datas)
func key():
return m_key
@@ -40,14 +38,14 @@ func key():
func label():
return m_label
func label_id():
return m_label_id
func label_counter():
return m_label_counter
func lock():
return m_lock["value"]
return m_lock
func set_lock(value):
m_lock["value"] = _set_data(value, m_lock["id"], gddb_types.e_prop_type_bool)
m_lock = _set_data(LOCK_ID, m_row_id, value)
func mesh():
return m_mesh
@@ -56,52 +54,43 @@ func set_mesh(value):
m_mesh = value
func tick_reference():
return m_tick_reference["value"]
return m_tick_reference
func set_tick_reference(value):
m_tick_reference["value"] = _set_data(value, m_tick_reference["id"], gddb_types.e_prop_type_int)
m_tick_reference = value
func value():
return m_value["value"]
return m_value
func set_value(value):
m_value["value"] = _set_data(value, m_value["id"], gddb_types.e_prop_type_float)
m_value = value
func audio_sound():
var stream = load("res://assets/sounds/objects/" + label() + ".ogg")
stream.set_loop(false)
return stream
func counter():
return m_counter
## PRIVATE
func _get_value(datas):
return _get_data(datas, 0) as float
func _get_value_id(index):
return _get_data_id("value", index)
func _get_lock(datas):
return int(_get_data(datas, 1)) as bool
func _get_lock_id(index):
return _get_data_id("lock", index)
return int(_get_data(datas, LOCK_ID)) as bool
func _get_label(datas):
return _get_data(datas, 2) as String
func _get_label_id(datas):
return _get_data(datas, 7) as String
func _get_tick_reference(datas):
return _get_data(datas, 3) as int
func _get_tick_reference_id(index):
return _get_data_id("tick_reference", index)
return _get_data(datas, LABEL_ID) as String
func _get_key(datas):
return _get_data(datas, 4) as String
return _get_data(datas, KEY_ID) as String
func _get_level(datas):
return _get_data(datas, 5) as int
return _get_data(datas, LEVEL_ID) as int
func _get_mesh(datas):
return "Hidden Objects Items/" + String(_get_data(datas, 6))
return "Hidden Objects Items/" + String(_get_data(datas, MESH_ID))
func _get_label_counter(datas):
return _get_data(datas, LABEL_COUNTER) as String
func _get_counter(datas):
return _get_data(datas, COUNTER_ID) as int