ClassicCityBuilderKit 1.8.8
|
special building that can have different sizes
for example bridges of variable size, fields, storage areas
only works combines with ExpandableBuildingInfo which defines how exactly the building can be expanded
Classes | |
class | ExpandableBuildingData |
Public Member Functions | |
override void | Initialize () |
initialization for buildings when placing and loading is not called when a building is replaced | |
override string | SaveData () |
serializes the objects state(usually to json) and returns it | |
Public Member Functions inherited from CityBuilderCore.Building | |
virtual void | Setup () |
only called when the building is first placed | |
T | Replace< T > (T prefab) |
replaces the building and all of its parts with another one runtime values are transferred and references are reset to the new instances | |
void | Move (Vector3 position, Quaternion rotation) |
moves the building to a different position | |
virtual void | Terminate () |
de-initializes the buildings and destroys it | |
bool | HasBuildingPart< T > () |
checks if a type of part(components, addons) exists | |
IEnumerable< T > | GetBuildingParts< T > () |
returns all parts composing the building(components, addons) | |
bool | HasBuildingComponent< T > () |
checks if a type of component exists | |
T | GetBuildingComponent< T > () |
get first component of a certain type or null | |
IEnumerable< T > | GetBuildingComponents< T > () |
get all components of a certain type | |
bool | HasBuildingAddon< T > () |
checks if a type of addon exists | |
T | GetBuildingAddon< T > () |
get first addon of a type or null | |
IEnumerable< T > | GetBuildingAddons< T > () |
get all addons of a certain type | |
T | AddAddon< T > (T prefab) |
adds and initializes an addon onto the building from a prefab | |
T | GetAddon< T > (string key) |
get the first addon with the specified key | |
void | RemoveAddon (BuildingAddon addon) |
terminates and removes the addon from the building | |
bool | RemoveAddon (string key) |
terminates and removes an addon from the building with the given key or returns false if none were found | |
virtual IEnumerable< Vector2Int > | GetAccessPoints (PathType type, object tag) |
returns any access points that is accessible with the given pathtype | |
virtual ? Vector2Int | GetAccessPoint (PathType type, object tag) |
returns the first access point that is accessible with the given pathtype | |
bool | HasAccessPoint (PathType type, object tag=null) |
checks if the building can currently be accessed using the given pathtype | |
IEnumerable< Vector2Int > | GetPoints () |
retrieves all the points the structure occupies | |
bool | HasPoint (Vector2Int position) |
checks if the structure occupies a certain point | |
virtual void | Add (IEnumerable< Vector2Int > points) |
adds points to a structure, for example a tree to a tree structure collection this may not be possible for structures with fixed points like buildings typically called in a structures Start method | |
virtual void | Remove (IEnumerable< Vector2Int > points) |
removes points from the structure, for some structures like buildings removing any point will remove the whole thing typically called in a structures OnDestroy method | |
virtual string | GetName () |
retrieves the name of the structure for display in the UI | |
virtual string | GetDescription () |
display description | |
virtual void | Suspend () |
temporarily stops the building from working | |
virtual void | Resume () |
resumes work in the building after Suspend has been called | |
virtual void | LoadData (string json) |
deserializes the serialized json data and loads the data as its new state | |
Public Attributes | |
Vector2Int | ManualExpansion |
Public Attributes inherited from CityBuilderCore.Building | |
BuildingInfo | Info |
Transform | Pivot |
Protected Member Functions | |
override void | Start () |
override void | onReplacing (IBuilding replacement) |
Protected Member Functions inherited from CityBuilderCore.Building | |
virtual void | Awake () |
virtual void | onMoving () |
virtual void | onMoved (Vector2Int oldPoint, BuildingRotation oldRotation) |
virtual IEnumerable< Vector2Int > | getSpawnPoints () |
Properties | |
ExpandableBuildingInfo | ExpandableInfo [get] |
override Vector2Int | RawSize [get] |
size of the building without rotation | |
Vector2Int | Expansion [get, set] |
Properties inherited from CityBuilderCore.Building | |
virtual Vector2Int | RawSize [get] |
size of the building without rotation | |
virtual Vector2Int | Point [get] |
origin(bottomLeft) point on the grid, stays constant when rotated | |
virtual Vector2Int | Size [get] |
size on the grid, always positive | |
BuildingRotation | Rotation [get] |
rotation of the building on the grid, just a int from 0 to 3 | |
Vector2Int | AccessPoint [get] |
Vector3 | WorldCenter [get] |
center position of the building in world space | |
virtual Vector3 | PrimaryPosition [get] |
virtual Vector3 | SecondaryPosition [get] |
StructureReference | StructureReference [get, set] |
reference to the structure that keeps working even if the structure is replaced | |
BuildingReference | BuildingReference [get, set] |
reference to the building that keeps working even if the building is replaced | |
string | Key [get] |
unique identifier among a type of objects(might be used in savegames, be careful when changing) | |
bool | IsDestructible [get] |
whether the structure can be removed by the player | |
bool | IsMovable [get] |
whether the structure can be moved by the MoveTool | |
virtual bool | IsDecorator [get] |
whether the structure is automatically removed when something is built on top of it | |
virtual bool | IsWalkable [get] |
whether walkers can pass the points of this structure | |
Guid | Id = Guid.NewGuid() [get, set] |
unique id for the building, used for saving is not carried over when replacing | |
bool | IsSuspended [get] |
building is temporarly disabled, can be used to stop work in a building without having to destroy and rebuild | |
int | Index [get, set] |
index of the prefab used, only relevant if the building has BuildingInfo.PrefabAlternatives | |
Transform | Root [get] |
root transform used as a parent for things that belong to the building but should not be rotated in the pivot(walkers, bars) | |
float | Efficiency [get] |
how efficient the building currently is, influenced by all parts implementing IEfficiencyFactor ranges from 0-1, a building with half its employees would have 0.5 efficiency | |
bool | IsWorking [get] |
whether a buildings efficiency is indisturbed for example a farm on semi ideal land might not have full efficiency while still working | |
IBuildingComponent[] | Components [get] |
IReadOnlyCollection< BuildingAddon > | Addons [get] |
Properties inherited from CityBuilderCore.IBuilding | |
Properties inherited from CityBuilderCore.IStructure | |
Properties inherited from CityBuilderCore.IKeyed |
Events | |
Action< Vector2Int > | ExpansionChanged |
Events inherited from CityBuilderCore.Building | |
Action< PointsChanged< IStructure > > | PointsChanged |
Action< IBuilding, IBuilding > | Replacing |
Events inherited from CityBuilderCore.IStructure | |
Action< PointsChanged< IStructure > > | PointsChanged |
has to be fired when a structures points changed so the manager can readjust paths only viable for structures that are stored in list form like underlying, collections and tiles other structures have to be reregistered | |
Additional Inherited Members | |
Protected Attributes inherited from CityBuilderCore.Building | |
int | _prefabIndex |
Vector2Int? | _point |
Vector2Int? | _size |
BuildingRotation | _rotation |
Vector2Int? | _accessPoint |
Vector3? | _worldCenter |
IBuildingComponent[] | _components |
List< BuildingAddon > | _addonsQueue = new List<BuildingAddon>() |
List< BuildingAddon > | _addons = new List<BuildingAddon>() |
|
inlinevirtual |
initialization for buildings when placing and loading
is not called when a building is replaced
Reimplemented from CityBuilderCore.Building.
|
inlineprotectedvirtual |
Reimplemented from CityBuilderCore.Building.
|
inlinevirtual |
serializes the objects state(usually to json) and returns it
Reimplemented from CityBuilderCore.Building.
|
inlineprotectedvirtual |
Reimplemented from CityBuilderCore.Building.
|
get |
size of the building without rotation
Implements CityBuilderCore.IBuilding.