Minor improvements
This commit is contained in:
@@ -130,18 +130,19 @@ func get_total_currency_acquired(currency: Resource) -> BigNumber:
|
||||
func get_total_currency_acquired_by_id(currency_id: StringName) -> BigNumber:
|
||||
return _get_total_currency_ref(currency_id)
|
||||
|
||||
func register_generator(generator_id: StringName, unlocked: bool = false, available: bool = false) -> void:
|
||||
func register_generator(generator_id: StringName, unlocked: bool = false, available: bool = false, owned: int = 0) -> void:
|
||||
var key: String = String(generator_id)
|
||||
if key.is_empty():
|
||||
return
|
||||
var default_owned: int = _to_non_negative_int(owned, 0)
|
||||
|
||||
if generator_states.has(key):
|
||||
var existing_raw: Variant = generator_states.get(key)
|
||||
if existing_raw is Dictionary:
|
||||
generator_states[key] = _sanitize_generator_state(existing_raw, unlocked, available)
|
||||
generator_states[key] = _sanitize_generator_state(existing_raw, unlocked, available, default_owned)
|
||||
return
|
||||
|
||||
var new_state: Dictionary = _default_generator_state(unlocked, available)
|
||||
var new_state: Dictionary = _default_generator_state(unlocked, available, default_owned)
|
||||
generator_states[key] = new_state
|
||||
generator_state_changed.emit(StringName(key), new_state.duplicate(true))
|
||||
|
||||
@@ -446,10 +447,11 @@ func _set_total_currency(currency_id: StringName, value: BigNumber) -> void:
|
||||
return
|
||||
_total_currency_acquired[normalized_currency_id] = _copy_big_number(value)
|
||||
|
||||
func _default_generator_state(unlocked: bool, available: bool) -> Dictionary:
|
||||
func _default_generator_state(unlocked: bool, available: bool, owned: int = 0) -> Dictionary:
|
||||
var owned_value: int = _to_non_negative_int(owned, 0)
|
||||
return {
|
||||
GENERATOR_OWNED_KEY: 0,
|
||||
GENERATOR_PURCHASED_COUNT_KEY: 0,
|
||||
GENERATOR_OWNED_KEY: owned_value,
|
||||
GENERATOR_PURCHASED_COUNT_KEY: owned_value,
|
||||
GENERATOR_UNLOCKED_KEY: unlocked,
|
||||
GENERATOR_AVAILABLE_KEY: available,
|
||||
}
|
||||
@@ -457,19 +459,19 @@ func _default_generator_state(unlocked: bool, available: bool) -> Dictionary:
|
||||
func _get_generator_state(generator_id: StringName) -> Dictionary:
|
||||
var key: String = String(generator_id)
|
||||
if key.is_empty():
|
||||
return _default_generator_state(false, false)
|
||||
return _default_generator_state(false, false, 0)
|
||||
|
||||
if not generator_states.has(key):
|
||||
register_generator(generator_id)
|
||||
|
||||
var existing_raw: Variant = generator_states.get(key, _default_generator_state(false, false))
|
||||
var existing_raw: Variant = generator_states.get(key, _default_generator_state(false, false, 0))
|
||||
if existing_raw is Dictionary:
|
||||
var state: Dictionary = existing_raw
|
||||
var sanitized: Dictionary = _sanitize_generator_state(state, false, false)
|
||||
var sanitized: Dictionary = _sanitize_generator_state(state, false, false, 0)
|
||||
generator_states[key] = sanitized
|
||||
return sanitized
|
||||
|
||||
var fallback: Dictionary = _default_generator_state(false, false)
|
||||
var fallback: Dictionary = _default_generator_state(false, false, 0)
|
||||
generator_states[key] = fallback
|
||||
return fallback
|
||||
|
||||
@@ -478,7 +480,7 @@ func _set_generator_state(generator_id: StringName, state: Dictionary) -> void:
|
||||
if key.is_empty():
|
||||
return
|
||||
|
||||
var sanitized: Dictionary = _sanitize_generator_state(state, false, false)
|
||||
var sanitized: Dictionary = _sanitize_generator_state(state, false, false, 0)
|
||||
generator_states[key] = sanitized
|
||||
generator_state_changed.emit(StringName(key), sanitized.duplicate(true))
|
||||
|
||||
@@ -668,8 +670,9 @@ func _deserialize_generator_state_entry(raw_state: Dictionary) -> Dictionary:
|
||||
|
||||
return parsed_state
|
||||
|
||||
func _sanitize_generator_state(raw_state: Dictionary, default_unlocked: bool, default_available: bool) -> Dictionary:
|
||||
var owned_value: int = _to_non_negative_int(raw_state.get(GENERATOR_OWNED_KEY, 0), 0)
|
||||
func _sanitize_generator_state(raw_state: Dictionary, default_unlocked: bool, default_available: bool, default_owned: int = 0) -> Dictionary:
|
||||
var normalized_default_owned: int = _to_non_negative_int(default_owned, 0)
|
||||
var owned_value: int = _to_non_negative_int(raw_state.get(GENERATOR_OWNED_KEY, normalized_default_owned), normalized_default_owned)
|
||||
var purchased_value: int = _to_non_negative_int(raw_state.get(GENERATOR_PURCHASED_COUNT_KEY, owned_value), owned_value)
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user