ClassicCityBuilderKit 1.8.8
|
helper used by IRoadManager to manage a single road network
it holds the pathfinding for both regular and blocked road pathing
also it counts as a IStructure and can therefore be queried and checked against using IStructureManager
this basic RoadNetwork is not visualized in any way, it is only a logical helper
for a visualized network inherit this class and implement setPoint(Vector2Int, Road) and checkPoint(Vector2Int)
examples of this can be found in TilemapRoadNetwork and TerrainRoadNetwork
Classes | |
class | RoadData |
class | RoadsData |
Public Member Functions | |
RoadNetwork (GridPathfindingSettings pathfindingSettings, Road road, int level=0) | |
virtual void | Initialize () |
virtual void | Dispose () |
void | Calculate (int maxCalculations=PathQuery.DEFAULT_MAX_CALCULATIONS) |
string | GetName () |
retrieves the name of the structure for display in the UI | |
IEnumerable< Vector2Int > | GetPoints () |
retrieves all the points the structure occupies | |
bool | HasPoint (Vector2Int point) |
checks if the structure occupies a certain point | |
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 | |
List< Vector2Int > | Add (IEnumerable< Vector2Int > points, Road road) |
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 | |
void | Register (IEnumerable< Vector2Int > points) |
void | Deregister (IEnumerable< Vector2Int > points) |
void | RegisterLink (IGridLink link) |
void | DeregisterLink (IGridLink link) |
IEnumerable< IGridLink > | GetLinks (Vector2Int start) |
IGridLink | GetLink (Vector2Int start, Vector2Int end) |
void | RegisterSwitch (Vector2Int point, RoadNetwork other) |
void | RegisterSwitch (Vector2Int entry, Vector2Int point, Vector2Int exit, RoadNetwork other) |
void | Block (IEnumerable< Vector2Int > points) |
void | Unblock (IEnumerable< Vector2Int > points) |
void | BlockTags (IEnumerable< Vector2Int > points, IEnumerable< object > tags) |
void | UnblockTags (IEnumerable< Vector2Int > points, IEnumerable< object > tags) |
virtual void | CheckLayers (IEnumerable< Vector2Int > points) |
gets called when | |
virtual bool | TryGetRoad (Vector2Int point, out Road road, out string stage) |
bool | CheckPoint (Vector2Int point) |
checks if a point is defined by the network itself points registered from the outside return false | |
virtual RoadsData | SaveData () |
virtual void | LoadData (RoadsData roadsData) |
Protected Member Functions | |
virtual void | setPoint (Vector2Int point, Road road) |
virtual bool | checkPoint (Vector2Int point) |
void | onPointsChanged (PointsChanged< IStructure > pointsChanged) |
Properties | |
Road | Road [get] |
GridPathfindingBase | DefaultPathfinding [get] |
GridPathfindingBase | BlockedPathfinding [get] |
List< Vector2Int > | Blocked [get] |
StructureReference | StructureReference [get, set] |
reference to the structure that keeps working even if the structure is replaced | |
bool | IsDestructible [get] |
whether the structure can be removed by the player | |
bool | IsMovable [get] |
whether the structure can be moved by the MoveTool | |
bool | IsDecorator [get] |
whether the structure is automatically removed when something is built on top of it | |
bool | IsWalkable [get] |
whether walkers can pass the points of this structure | |
int | Level [get] |
the structure level mask of this structure determines which levels a structure occupies structures that have no levels in common can be placed on top of each other | |
string | Key [get] |
unique identifier among a type of objects(might be used in savegames, be careful when changing) | |
Properties inherited from CityBuilderCore.IStructure | |
Properties inherited from CityBuilderCore.IKeyed |
Events | |
Action< PointsChanged< IStructure > > | PointsChanged |
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 | |
void CityBuilderCore.RoadNetwork.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
points | the points that will be added to the structure |
Implements CityBuilderCore.IStructure.
|
inlinevirtual |
gets called when
points |
Implements CityBuilderCore.ILayerDependency.
Reimplemented in CityBuilderCore.TerrainRoadNetwork, and CityBuilderCore.TilemapRoadNetwork.
bool CityBuilderCore.RoadNetwork.CheckPoint | ( | Vector2Int | point | ) |
checks if a point is defined by the network itself
points registered from the outside return false
point | a point on the map |
string CityBuilderCore.RoadNetwork.GetName | ( | ) |
retrieves the name of the structure for display in the UI
Implements CityBuilderCore.IStructure.
IEnumerable< Vector2Int > CityBuilderCore.RoadNetwork.GetPoints | ( | ) |
retrieves all the points the structure occupies
Implements CityBuilderCore.IStructure.
bool CityBuilderCore.RoadNetwork.HasPoint | ( | Vector2Int | point | ) |
checks if the structure occupies a certain point
point | a point on the map |
Implements CityBuilderCore.IStructure.
|
inline |
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.
|
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 |
whether walkers can pass the points of this structure
Implements CityBuilderCore.IStructure.
|
get |
unique identifier among a type of objects(might be used in savegames, be careful when changing)
Implements CityBuilderCore.IKeyed.
|
get |
the structure level mask of this structure
determines which levels a structure occupies
structures that have no levels in common can be placed on top of each other
Implements CityBuilderCore.IStructure.
|
getset |
reference to the structure that keeps working even if the structure is replaced
Implements CityBuilderCore.IStructure.