Files
2026-05-21 16:04:49 +02:00

62 lines
1.5 KiB
C#

namespace DanieleMarotta.RiversongCodeShowcase
{
public class Building : Entity, IBuildingShape, IProductStorageEntity, IAgentSourceEntity
{
private ProductStorage _storage;
private ProductStoragePolicyState _productStoragePolicy;
private BuildingProductionState _productionState;
private AgentSourceState _agentsState;
private PopulationNeedsState _needsState;
private BuildingSleepState _sleepState;
public BuildingDefinition Definition { get; set; }
public TileRect Rect { get; set; }
public Directions Orientation { get; set; }
public int WeekCreated { get; set; }
public int TierIndex { get; set; }
public int PopulationCapacity { get; set; }
public float SpawnCooldown => Definition.SpawnCooldown;
public ref ProductStorage GetStorageRW()
{
return ref _storage;
}
public ref ProductStoragePolicyState GetProductStoragePolicyRW()
{
return ref _productStoragePolicy;
}
public ref BuildingProductionState GetProductionStateRW()
{
return ref _productionState;
}
public ref AgentSourceState GetAgentSourceStateRW()
{
return ref _agentsState;
}
public ref PopulationNeedsState GetNeedsStateRW()
{
return ref _needsState;
}
public ref BuildingSleepState GetSleepStateRW()
{
return ref _sleepState;
}
}
}