62 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|