Enhance production logic: add auto-producing entities and implement production calculations

This commit is contained in:
Kirill
2026-08-02 23:55:58 +03:00
parent 9d917e95ab
commit d9cae38a11
+23 -3
View File
@@ -4,6 +4,8 @@ class_name OwniverseEvolution
var entities: Dictionary[String, OwniverseEntity] = {} var entities: Dictionary[String, OwniverseEntity] = {}
var producing_entities: Array[OwniverseEntity] = [] var producing_entities: Array[OwniverseEntity] = []
var auto_producing_entities: Array[OwniverseEntity] = []
var auto_production_rest: Dictionary[String, float] = {}
var evolving_entities: Array[OwniverseEntity] = [] var evolving_entities: Array[OwniverseEntity] = []
var batches: Dictionary[String, Array] = {} var batches: Dictionary[String, Array] = {}
@@ -63,9 +65,23 @@ func process(from_year: float, to_year: float) -> void:
func produce(from_year: float, to_year: float): func produce(from_year: float, to_year: float):
for batch_name in batches: var _time_delta = to_year - from_year
pass # get entity array for production
for _entity: OwniverseEntity in producing_entities:
var _to_produce: float = 0
var _new_batch_array:= []
for _batch: Dictionary in batches[_entity.id]:
_to_produce += _batch.amount
# production
_to_produce *= _time_delta * _entity.product_per_year_amount
var _auto_production_part: float = 0
if _entity.auto > 0:
_auto_production_part = _entity.auto * _to_produce
# and rest
# energy = wasted vs rest !!
func init_entity(entity: OwniverseEntity) -> void: func init_entity(entity: OwniverseEntity) -> void:
entities[entity.id] = entity entities[entity.id] = entity
@@ -74,6 +90,10 @@ func init_entity(entity: OwniverseEntity) -> void:
if entity.lifespan > 0: if entity.lifespan > 0:
evolving_entities.append(entity) evolving_entities.append(entity)
if entity.auto > 0:
auto_producing_entities.append(entity)
auto_production_rest[entity.id] = 0
batches[entity.id] = [] batches[entity.id] = []