ClassicCityBuilderKit 1.9.1
|
default implementation for IBuilding
Classes | |
class | BuildingAddonMetaData |
class | BuildingComponentMetaData |
class | BuildingData |
Public Member Functions | |
virtual void | Setup () |
only called when the building is first placed | |
virtual void | Initialize () |
initialization for buildings when placing and loading is not called when a building is replaced | |
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 point) |
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 |
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 | |
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] |
![]() | |
![]() | |
![]() |
Events | |
Action< PointsChanged< IStructure > > | PointsChanged |
Action< IBuilding, IBuilding > | Replacing |
![]() | |
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 | |
![]() | |
static void | ReplacePoints (IStructure a, IStructure b, Vector2Int point, bool keepRandomization=true, bool keepVariant=true) |
removes a point from one structure and adds it to another while trying to carry over its look both structures need to be StructureCollectionFloat, StructureTerrainTrees or StructureTerrainTreeVariants) | |
static void | ReplacePoints (IStructure a, IStructure b, IEnumerable< Vector2Int > points, bool keepRandomization=true, bool keepVariant=true) |
removes points from one structure and adds them to another while trying to carry over its look both structures need to be StructureCollectionFloat, StructureTerrainTrees or StructureTerrainTreeVariants) used in town so bushes keep their look(size, rotation, color) when berries grown on them would also carry the variant index for trees in town if there were any | |
|
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.