ClassicCityBuilderKit 1.8.8
|
building component that periodically consumes and produces items
production time is only started once the consumption items are all there
does not take care of item logistics
Classes | |
class | ProductionData |
Public Types | |
enum | ProductionState { Idle = 0 , Working = 10 , Done = 20 } |
Public Member Functions | |
override void | InitializeComponent () |
initialization is performed when the building is placed or loaded use to create references, register traits, ... | |
override void | OnReplacing (IBuilding replacement) |
called when a component gets replaced use to transfer resources, replace references | |
override void | TerminateComponent () |
termination is performed when the building is destroyed use to deregister traits, remove references from other systems | |
IEnumerable< Item > | GetReceiveItems () |
returns the kinds of items the receiver needs | |
int | GetReceiveCapacity (Item item) |
how much of the item the receiver can still fit | |
void | ReserveCapacity (Item item, int amount) |
reserves a capacity in the receiver so it is not filled up by someone else | |
void | UnreserveCapacity (Item item, int amount) |
releases capacity that was earlier reserved by ReserveCapacity(Item, int) call before actually moving items into the receiver or if the delivery was somehow interrupted | |
int | Receive (ItemStorage storage, Item item, int quantity) |
requests that a quantity of items is moved from the storage to the receiver if the full amount does not fit the remaining quantity is returned | |
IEnumerable< ItemLevel > | GetNeededItems () |
exposes the items the production component needs to work | |
IEnumerable< ItemLevel > | GetProducedItems () |
exposes the items the component can produce | |
override string | SaveData () |
serializes the objects state(usually to json) and returns it | |
override void | LoadData (string json) |
deserializes the serialized json data and loads the data as its new state | |
Public Member Functions inherited from CityBuilderCore.ProgressComponent | |
override string | GetDebugText () |
returns text that gets displayed for debugging in the scene editor | |
override void | InitializeComponent () |
initialization is performed when the building is placed or loaded use to create references, register traits, ... | |
Public Member Functions inherited from CityBuilderCore.BuildingComponent | |
virtual void | SetupComponent () |
only called when the building is originally placed, before Initialize | |
virtual void | OnMoving () |
called when the building is about to be moved can be used to remove/deregister stuff from the old position | |
virtual void | OnMoved (Vector2Int oldPoint, BuildingRotation oldRotation) |
called after a building has been moved can be used to register things at the new position | |
virtual void | SuspendComponent () |
temporarily stops the component from working | |
virtual void | ResumeComponent () |
resumes work in the component after SuspendComponent has been called | |
virtual string | GetDescription () |
gets displayed in dialogs to show the component status to players | |
Public Attributes | |
ItemConsumer[] | ItemsConsumers |
ItemProducer[] | ItemsProducers |
BoolEvent | HasRawMaterialsChanged |
BoolEvent | HasProductsChanged |
Public Attributes inherited from CityBuilderCore.ProgressComponent | |
float | ProgressInterval |
BoolEvent | IsProgressing |
Protected Member Functions | |
virtual void | Awake () |
virtual void | Start () |
virtual void | Update () |
virtual void | updateProduction () |
virtual void | setState (ProductionState productionState) |
virtual bool | canWork () |
virtual bool | canProduce () |
virtual void | produce () |
virtual void | onProduced (ItemProducer itemProducer) |
ItemConsumer | getConsumer (Item item) |
ItemProducer | getProducer (Item item) |
virtual void | onItemsChanged () |
void | saveData (ProductionData data) |
void | loadData (ProductionData data) |
Protected Member Functions inherited from CityBuilderCore.ProgressComponent | |
bool | addProgress (float multiplier) |
void | resetProgress () |
Protected Member Functions inherited from CityBuilderCore.BuildingComponent | |
T | getOther< T > () |
gets the first building component of the specified type on the same building | |
IEnumerable< T > | getOthers< T > () |
gets all building components of the specified type on the same building | |
BuildingComponentReference< T > | registerTrait< T > (T trait) |
registers the building component as a trait so it is globally accessible usually done in InitializeComponent | |
void | replaceTrait< T > (T trait, T replacement) |
replaces the reference a trait points to in the global manager done when a building is replaced(OnReplacing(IBuilding)) so the trait now points to the new component instead of the one that has been removed | |
void | deregisterTrait< T > (T trait) |
removes a previously registered trait usually when a building is removed which calls TerminateComponent | |
Protected Attributes | |
bool | _isProgressing |
ProductionState | _productionState |
Protected Attributes inherited from CityBuilderCore.ProgressComponent | |
float | _progressTime |
Properties | |
override string | Key [get] |
unique key used to identify the component in save/load | |
int | Priority [get] |
can be used so certain receivers are preferred over others for example construction sites or production may be more important that putting items into storage | |
ItemConsumer[] | Consumers [get] |
ItemProducer[] | Producers [get] |
BuildingComponentReference< IItemReceiver > | Reference [get, set] |
IItemContainer | ItemContainer [get] |
holds and manages the items for the owner | |
virtual bool | HasRawMaterials [get] |
virtual bool | HasProducts [get] |
ProductionState | CurrentProductionState [get] |
Properties inherited from CityBuilderCore.ProgressComponent | |
float | Progress [get] |
progress from 0 to 1 | |
Properties inherited from CityBuilderCore.BuildingComponent | |
string | Key [get] |
unique key used to identify the component in save/load | |
IBuilding | Building [get, set] |
the building the component is attached to is set by the building in awake | |
Properties inherited from CityBuilderCore.IBuildingComponent | |
Properties inherited from CityBuilderCore.IProgressComponent | |
Properties inherited from CityBuilderCore.IItemReceiver | |
Properties inherited from CityBuilderCore.IBuildingTrait< IItemReceiver > | |
BuildingComponentReference< T > | Reference [get, set] |
reference to the building trait, use when the building might be replaced and when the reference has to be saved | |
Properties inherited from CityBuilderCore.IItemOwner |
Additional Inherited Members | |
Events inherited from CityBuilderCore.ProgressComponent | |
Action | ProgressReset |
Action< float > | ProgressChanged |
Events inherited from CityBuilderCore.IProgressComponent | |
Action | ProgressReset |
progress has finished and is reset to 0 | |
Action< float > | ProgressChanged |
progress has changed, carries new progress | |
IEnumerable< ItemLevel > CityBuilderCore.ProductionComponent.GetNeededItems | ( | ) |
exposes the items the production component needs to work
Implements CityBuilderCore.IProductionComponent.
IEnumerable< ItemLevel > CityBuilderCore.ProductionComponent.GetProducedItems | ( | ) |
exposes the items the component can produce
Implements CityBuilderCore.IProductionComponent.
|
inline |
how much of the item the receiver can still fit
item |
Implements CityBuilderCore.IItemReceiver.
|
inline |
returns the kinds of items the receiver needs
Implements CityBuilderCore.IItemReceiver.
|
inlinevirtual |
initialization is performed when the building is placed or loaded
use to create references, register traits, ...
Reimplemented from CityBuilderCore.BuildingComponent.
|
inlinevirtual |
deserializes the serialized json data and loads the data as its new state
json |
Reimplemented from CityBuilderCore.BuildingComponent.
Reimplemented in CityBuilderCore.ProductionWalkerComponent, and CityBuilderTown.TownProductionComponent.
|
inlinevirtual |
called when a component gets replaced
use to transfer resources, replace references
replacement |
Reimplemented from CityBuilderCore.BuildingComponent.
|
inline |
requests that a quantity of items is moved from the storage to the receiver
if the full amount does not fit the remaining quantity is returned
storage | the storage that items will be taken from |
item | the item to receive |
quantity | the maximum quantity of items to receive |
Implements CityBuilderCore.IItemReceiver.
|
inline |
reserves a capacity in the receiver so it is not filled up by someone else
item | the item to be reserved |
quantity | the quantity to reserve |
Implements CityBuilderCore.IItemReceiver.
|
inlinevirtual |
serializes the objects state(usually to json) and returns it
Reimplemented from CityBuilderCore.BuildingComponent.
Reimplemented in CityBuilderCore.ProductionWalkerComponent, and CityBuilderTown.TownProductionComponent.
|
inlinevirtual |
termination is performed when the building is destroyed
use to deregister traits, remove references from other systems
Reimplemented from CityBuilderCore.BuildingComponent.
Reimplemented in CityBuilderTown.TownProductionComponent.
|
inline |
releases capacity that was earlier reserved by ReserveCapacity(Item, int)
call before actually moving items into the receiver or if the delivery was somehow interrupted
item | item to unreserve |
quantity | quantity to unreserve |
Implements CityBuilderCore.IItemReceiver.
|
get |
holds and manages the items for the owner
Implements CityBuilderCore.IItemOwner.
|
get |
unique key used to identify the component in save/load
Implements CityBuilderCore.IBuildingComponent.
|
get |
can be used so certain receivers are preferred over others
for example construction sites or production may be more important that putting items into storage
Implements CityBuilderCore.IItemReceiver.