ClassicCityBuilderKit 1.8.8
|
default implementation for IBuilding
Classes | |
class | BuildingAddonMetaData |
class | BuildingComponentMetaData |
class | BuildingData |
Public Member Functions | |
virtual void | Initialize () |
initialization for buildings when placing and loading is not called when a building is replaced | |
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 string | SaveData () |
serializes the objects state(usually to json) and returns it | |
virtual void | LoadData (string json) |
deserializes the serialized json data and loads the data as its new state | |
Public Attributes | |
BuildingInfo | Info |
Transform | Pivot |
Protected Member Functions | |
virtual void | Awake () |
virtual void | Start () |
virtual void | onReplacing (IBuilding replacement) |
virtual void | onMoving () |
virtual void | onMoved (Vector2Int oldPoint, BuildingRotation oldRotation) |
virtual IEnumerable< Vector2Int > | getSpawnPoints () |
Protected Attributes | |
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>() |
Properties | |
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< 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 | |
|
inlinevirtual |
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
points | the points that will be added to the structure |
Implements CityBuilderCore.IStructure.
|
inline |
adds and initializes an addon onto the building from a prefab
T |
prefab |
Implements CityBuilderCore.IBuilding.
T | : | BuildingAddon |
|
inlinevirtual |
returns the first access point that is accessible with the given pathtype
type |
Implements CityBuilderCore.IBuilding.
Reimplemented in CityBuilderCore.Tests.DebugBuilding.
|
inlinevirtual |
returns any access points that is accessible with the given pathtype
type | |
tag |
Implements CityBuilderCore.IBuilding.
Reimplemented in CityBuilderCore.Tests.DebugBuilding.
|
inline |
get the first addon with the specified key
T | type of addon to look for(BuildingAddon for any type) |
key | key of the addon to look for |
Implements CityBuilderCore.IBuilding.
T | : | BuildingAddon |
|
inline |
get first addon of a type or null
T |
Implements CityBuilderCore.IBuilding.
T | : | BuildingAddon |
|
inline |
get all addons of a certain type
T |
Implements CityBuilderCore.IBuilding.
T | : | BuildingAddon |
|
inline |
get first component of a certain type or null
T |
Implements CityBuilderCore.IBuilding.
T | : | class | |
T | : | IBuildingComponent |
|
inline |
get all components of a certain type
T |
Implements CityBuilderCore.IBuilding.
T | : | IBuildingComponent |
|
inline |
returns all parts composing the building(components, addons)
T |
Implements CityBuilderCore.IBuilding.
|
virtual |
|
virtual |
retrieves the name of the structure for display in the UI
Implements CityBuilderCore.IStructure.
|
inline |
retrieves all the points the structure occupies
Implements CityBuilderCore.IStructure.
bool CityBuilderCore.Building.HasAccessPoint | ( | PathType | type, |
object | tag = null ) |
checks if the building can currently be accessed using the given pathtype
type |
Implements CityBuilderCore.IBuilding.
|
inline |
checks if a type of addon exists
T |
Implements CityBuilderCore.IBuilding.
T | : | BuildingAddon |
|
inline |
checks if a type of component exists
T |
Implements CityBuilderCore.IBuilding.
T | : | IBuildingComponent |
bool CityBuilderCore.Building.HasBuildingPart< T > | ( | ) |
checks if a type of part(components, addons) exists
T |
Implements CityBuilderCore.IBuilding.
bool CityBuilderCore.Building.HasPoint | ( | Vector2Int | point | ) |
checks if the structure occupies a certain point
point | a point on the map |
Implements CityBuilderCore.IStructure.
|
inlinevirtual |
initialization for buildings when placing and loading
is not called when a building is replaced
Implements CityBuilderCore.IBuilding.
Reimplemented in CityBuilderCore.ExpandableBuilding, and CityBuilderCore.Tests.DebugBuilding.
|
inlinevirtual |
deserializes the serialized json data and loads the data as its new state
json |
Implements CityBuilderCore.ISaveData.
|
inline |
moves the building to a different position
Implements CityBuilderCore.IBuilding.
|
inlinevirtual |
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
points | the points to remove |
Implements CityBuilderCore.IStructure.
|
inline |
terminates and removes the addon from the building
addon | the addon instance to remove |
Implements CityBuilderCore.IBuilding.
|
inline |
terminates and removes an addon from the building with the given key or returns false if none were found
key |
Implements CityBuilderCore.IBuilding.
|
inline |
replaces the building and all of its parts with another one
runtime values are transferred and references are reset to the new instances
T |
prefab |
Implements CityBuilderCore.IBuilding.
T | : | MonoBehaviour | |
T | : | IBuilding |
|
inlinevirtual |
resumes work in the building after Suspend has been called
Implements CityBuilderCore.IBuilding.
|
inlinevirtual |
serializes the objects state(usually to json) and returns it
Implements CityBuilderCore.ISaveData.
Reimplemented in CityBuilderCore.ExpandableBuilding.
|
inlinevirtual |
only called when the building is first placed
Implements CityBuilderCore.IBuilding.
Reimplemented in CityBuilderCore.Tests.DebugBuilding.
|
inlinevirtual |
temporarily stops the building from working
Implements CityBuilderCore.IBuilding.
|
inlinevirtual |
de-initializes the buildings and destroys it
Implements CityBuilderCore.IBuilding.
Reimplemented in CityBuilderCore.Tests.DebugBuilding.
|
getset |
reference to the building that keeps working even if the building is replaced
Implements CityBuilderCore.IBuilding.
|
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
Implements CityBuilderCore.IBuilding.
|
getset |
unique id for the building, used for saving is not carried over when replacing
Implements CityBuilderCore.IBuilding.
|
getset |
index of the prefab used, only relevant if the building has BuildingInfo.PrefabAlternatives
Implements CityBuilderCore.IBuilding.
|
get |
whether the structure is automatically removed when something is built on top of it
Implements CityBuilderCore.IStructure.
|
get |
whether the structure can be removed by the player
Implements CityBuilderCore.IStructure.
|
get |
whether the structure can be moved by the MoveTool
Implements CityBuilderCore.IStructure.
|
get |
building is temporarly disabled, can be used to stop work in a building without having to destroy and rebuild
Implements CityBuilderCore.IBuilding.
|
get |
whether walkers can pass the points of this structure
Implements CityBuilderCore.IStructure.
|
get |
whether a buildings efficiency is indisturbed
for example a farm on semi ideal land might not have full efficiency while still working
Implements CityBuilderCore.IBuilding.
|
get |
unique identifier among a type of objects(might be used in savegames, be careful when changing)
Implements CityBuilderCore.IKeyed.
|
get |
origin(bottomLeft) point on the grid, stays constant when rotated
Implements CityBuilderCore.IBuilding.
|
get |
size of the building without rotation
Implements CityBuilderCore.IBuilding.
|
get |
root transform used as a parent for things that belong to the building but should not be rotated in the pivot(walkers, bars)
Implements CityBuilderCore.IBuilding.
|
get |
rotation of the building on the grid, just a int from 0 to 3
Implements CityBuilderCore.IBuilding.
|
get |
size on the grid, always positive
Implements CityBuilderCore.IBuilding.
|
getset |
reference to the structure that keeps working even if the structure is replaced
Implements CityBuilderCore.IStructure.
|
get |
center position of the building in world space
Implements CityBuilderCore.IBuilding.