Refactor state structure; encapsulate datetime and year within a time dictionary and update related logic
This commit is contained in:
+76
-5
@@ -264,9 +264,9 @@ func _page_action_pressed(page_id: int, action_amount: float) -> void:
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var inited_result = owniverse.init_enitities()
|
||||
var inited_result = init_enitities()
|
||||
locked_items = inited_result.locked_items
|
||||
owniverse.load_data()
|
||||
load_data()
|
||||
_init_owniverse_items()
|
||||
|
||||
g_counters.swipe.sec = 0.2
|
||||
@@ -279,7 +279,7 @@ func _ready() -> void:
|
||||
func _process(delta: float) -> void:
|
||||
|
||||
owniverse.evolute(delta)
|
||||
set_datetime(owniverse.state.year)
|
||||
set_datetime(owniverse.state.time.year)
|
||||
|
||||
#owniverse.cycle(delta)
|
||||
|
||||
@@ -324,6 +324,77 @@ func _on_topmenu_button_pressed(ButtonName) -> void:
|
||||
|
||||
|
||||
func _on_unlock_and_save_timeout() -> void:
|
||||
owniverse.save_data()
|
||||
|
||||
save_data()
|
||||
_unlock_items()
|
||||
|
||||
|
||||
#region Init save load routines
|
||||
|
||||
|
||||
func load_data() -> bool:
|
||||
# Получаем версию приложения
|
||||
var app_version = ProjectSettings.get_setting("application/config/version")
|
||||
print("Версия приложения: ", app_version)
|
||||
|
||||
var game_data: Dictionary = SaveManager.load_data("owniverse", "qwerty")
|
||||
if game_data == {}: return false
|
||||
#if game_data.get('version', '0.0.1') != 'app_version': return false
|
||||
if game_data.get('version', str(app_version)) != '0.1.0':
|
||||
print(game_data.get('version', 7))
|
||||
print('wrong load version')
|
||||
return false
|
||||
|
||||
owniverse.state = game_data["state"]
|
||||
|
||||
for item in owniverse.state.amount:
|
||||
owniverse.items_to_update[item] = owniverse.state.amount[item]
|
||||
return true
|
||||
|
||||
|
||||
func save_data() -> void:
|
||||
var game_data: Dictionary = {}
|
||||
game_data["state"] = owniverse.state
|
||||
|
||||
SaveManager.save_data("owniverse", "qwerty", game_data)
|
||||
print("saved ", game_data.version, "\n\n\n")
|
||||
|
||||
|
||||
func init_enitities() -> Dictionary:
|
||||
var _result := {
|
||||
'locked_items': [],
|
||||
}
|
||||
for entity_id in Global.OwniverseEntities:
|
||||
var entity = OwniverseEntity.new(Global.OwniverseEntities[entity_id])
|
||||
owniverse.entities[entity_id] = entity
|
||||
|
||||
owniverse.state.stats.total_amount[entity_id] = 0
|
||||
owniverse.state.amount[entity_id] = 0
|
||||
if entity.lifespan > 0:
|
||||
owniverse.state.batches[entity.id] = []
|
||||
owniverse.add_entity_to_batch(entity_id, 0, 0)
|
||||
if entity.group_as != "":
|
||||
owniverse.state.amount[entity.group_as] = 0
|
||||
|
||||
owniverse.state.stats.total_amount[entity.group_as] = 0
|
||||
|
||||
if entity.unlock != {}:
|
||||
owniverse.locked_entities.append(entity)
|
||||
_result.locked_items.append(entity.id)
|
||||
|
||||
if entity.product_per_year_type != "":
|
||||
owniverse.auto_production.append(entity)
|
||||
|
||||
# groups
|
||||
if entity.group_as != "":
|
||||
if !owniverse.entity_groups.has(entity.group_as):
|
||||
owniverse.entity_groups[entity.group_as] = []
|
||||
owniverse.entity_groups[entity.group_as].append(entity_id)
|
||||
|
||||
if entity.event_group != "":
|
||||
if !owniverse.entity_event_groups.has(entity.event_group):
|
||||
owniverse.entity_event_groups[entity.event_group] = []
|
||||
owniverse.entity_event_groups[entity.event_group].append(entity_id)
|
||||
|
||||
return _result
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user