Add action buttons and related functionality; refactor production logic and update entity definitions

This commit is contained in:
Kirill
2026-06-03 23:26:44 +03:00
parent c21048add3
commit 934d890887
11 changed files with 253 additions and 25 deletions
+34 -8
View File
@@ -12,6 +12,7 @@ var entities: Dictionary[String, OwniverseEntity] = {}
var items_to_update: Dictionary[String, float] = {}
var cumulative_amount: Dictionary[String, float] = {}
var current_amount: Dictionary[String, float] = {}
var auto_production: Array = []
var locked_entities: Array = []
@@ -23,12 +24,24 @@ func cycle(delta: float) -> void:
func produce(item_id: String, amount: int) -> void:
print("prdcng ", item_id, " ", amount)
#if item_id == "S" or item_id == 'H':
#entities[item_id].amount += 1
entities[item_id].amount += amount
var entity: OwniverseEntity = entities[item_id]
_process_enitity(entity, amount)
var entity_transaction = {}
for elem in entity.cost:
if current_amount[elem] < amount * entity.cost[elem]:
return
if entity.cost[elem] == 0: continue
entity_transaction[elem] = -amount * entity.cost[elem]
print("→: ", entity_transaction)
for elem in entity_transaction:
_process_enitity(elem, amount)
_process_enitity(entity, amount)
func automated_production(_delta: float) -> void:
@@ -37,14 +50,24 @@ func automated_production(_delta: float) -> void:
var amount_to_produce = int(entity.amount * entity.product_per_year_amount * _delta)
func get_available_to_produce(item_id: String) -> float:
#print(item_id)
return 1_000
# add to all lists
func _process_enitity(entity: OwniverseEntity, amount: int) -> void:
_count_cumulative(entity, amount)
if amount == 0: return
_count_amount(entity, amount)
items_to_update[entity.id] = current_amount[entity.id]
func _count_amount(entity: OwniverseEntity, amount: int) -> void:
current_amount[entity.id] += amount
if entity.group_as != "":
current_amount[entity.group_as] += amount
items_to_update[entity.id] = entity.amount
func _count_cumulative(entity: OwniverseEntity, amount: int) -> void:
if amount <= 0: return
cumulative_amount[entity.id] += amount
if entity.group_as != "":
cumulative_amount[entity.group_as] += amount
@@ -69,8 +92,11 @@ func init_enitities() -> void:
entity.init_entity(Global.OwniverseEntities[entity_id])
entities[entity_id] = entity
current_amount[entity_id] = 0
cumulative_amount[entity_id] = 0
cumulative_amount[entity.group_as] = 0
if entity.group_as != "":
current_amount[entity.group_as] = 0
cumulative_amount[entity.group_as] = 0
if entity.unlock != {}:
locked_entities.append(entity)