ClassicCityBuilderKit 1.8.8
|
default building component for handling evolution
determines the current evolution stage inside its sequence based on layers, services and items
if the stage changes it waits for the delay specified in IBuildingManager before replacing the building
evolution components on lower buildings also need the recipients for higher ones in order to evolve
Classes | |
class | EvolutionData |
Public Member Functions | |
override void | OnReplacing (IBuilding replacement) |
called when a component gets replaced use to transfer resources, replace references | |
void | CheckLayers (IEnumerable< Vector2Int > positions) |
gets called when | |
void | CheckEvolution () |
manually check if the evolution has changed in case any circumstances outside the components control have changed | |
bool | HasServiceValue (Service service) |
whether the recipient handles a particular serviec for example a bar visualization should not be created on a building that does not even have the service that is visualized | |
float | GetServiceValue (Service service) |
check how much service value is left in the recipient | |
void | ModifyService (Service service, float amount) |
changes a services value in the recipient services have to be increased regularly or access will be lost | |
IEnumerable< Service > | GetAccessibleServices () |
IEnumerable< Item > | GetAccessibleItems () |
IEnumerable< Item > | GetRecipientItems () |
use this to check which items the recipient needs | |
IEnumerable< ItemQuantity > | GetRecipientItemQuantities () |
checks how much of every needed item the recipient currently has | |
void | FillRecipient (ItemStorage itemStorage) |
passes a storage to the recipient which will take any item from it that it needs | |
override string | GetDescription () |
gets displayed in dialogs to show the component status to players | |
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.BuildingComponent | |
virtual void | SetupComponent () |
only called when the building is originally placed, before Initialize | |
virtual void | InitializeComponent () |
initialization is performed when the building is placed or loaded use to create references, register traits, ... | |
virtual void | TerminateComponent () |
termination is performed when the building is destroyed use to deregister traits, remove references from other systems | |
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 | GetDebugText () |
returns text that gets displayed for debugging in the scene editor | |
Public Attributes | |
EvolutionSequence | EvolutionSequence |
ServiceRecipient[] | ServiceRecipients |
ServiceCategoryRecipient[] | ServiceCategoryRecipients |
ItemRecipient[] | ItemsRecipients |
ItemCategoryRecipient[] | ItemsCategoryRecipients |
Properties | |
override string | Key [get] |
unique key used to identify the component in save/load | |
IItemContainer | ItemContainer [get] |
holds and manages the items for the owner | |
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.IItemOwner |
Additional Inherited Members | |
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 | |
|
inline |
manually check if the evolution has changed in case any circumstances outside the components control have changed
Implements CityBuilderCore.IEvolution.
void CityBuilderCore.EvolutionComponent.CheckLayers | ( | IEnumerable< Vector2Int > | points | ) |
|
inline |
passes a storage to the recipient which will take any item from it that it needs
itemStorage | the storage the recipient will take from |
Implements CityBuilderCore.IItemRecipient.
|
inlinevirtual |
gets displayed in dialogs to show the component status to players
Reimplemented from CityBuilderCore.BuildingComponent.
IEnumerable< ItemQuantity > CityBuilderCore.EvolutionComponent.GetRecipientItemQuantities | ( | ) |
checks how much of every needed item the recipient currently has
Implements CityBuilderCore.IItemRecipient.
|
inline |
use this to check which items the recipient needs
Implements CityBuilderCore.IItemRecipient.
|
inline |
check how much service value is left in the recipient
service | the service for which we want the value |
Implements CityBuilderCore.IServiceRecipient.
bool CityBuilderCore.EvolutionComponent.HasServiceValue | ( | Service | service | ) |
whether the recipient handles a particular serviec
for example a bar visualization should not be created on a building that does not even have the service that is visualized
service | the service to check |
Implements CityBuilderCore.IServiceRecipient.
|
inlinevirtual |
deserializes the serialized json data and loads the data as its new state
json |
Reimplemented from CityBuilderCore.BuildingComponent.
|
inline |
changes a services value in the recipient
services have to be increased regularly or access will be lost
service | the service that will have its value changed |
amount | positive to refill the service, negative to bring down closer to losing access |
Implements CityBuilderCore.IServiceRecipient.
|
inlinevirtual |
called when a component gets replaced
use to transfer resources, replace references
replacement |
Reimplemented from CityBuilderCore.BuildingComponent.
|
inlinevirtual |
serializes the objects state(usually to json) and returns it
Reimplemented from CityBuilderCore.BuildingComponent.
|
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.