diff --git a/world/owniverse/owniverse_evolution.gd b/world/owniverse/owniverse_evolution.gd index 565cbeb..5bd82ff 100644 --- a/world/owniverse/owniverse_evolution.gd +++ b/world/owniverse/owniverse_evolution.gd @@ -4,6 +4,8 @@ class_name OwniverseEvolution var entities: Dictionary[String, 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 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): - for batch_name in batches: - pass - + var _time_delta = to_year - from_year + # 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: entities[entity.id] = entity @@ -74,6 +90,10 @@ func init_entity(entity: OwniverseEntity) -> void: if entity.lifespan > 0: evolving_entities.append(entity) + + if entity.auto > 0: + auto_producing_entities.append(entity) + auto_production_rest[entity.id] = 0 batches[entity.id] = []