riversong code showcase
This commit is contained in:
61
Source/Riversong/Game/World/Buildings/Building.cs
Normal file
61
Source/Riversong/Game/World/Buildings/Building.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user