Enhance production logic: add auto-producing entities and implement production calculations
This commit is contained in:
@@ -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,8 +65,22 @@ 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:
|
||||
@@ -75,6 +91,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] = []
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user