Loading...
Searching...
No Matches
CityBuilderCore.TerrainRoadNetwork Class Reference

Detailed Description

RoadNetwork implementation that visualizes the roads of the network on a Terrain
the RoadStage.Index determines which terrain layer is used
when a road is removed the layer at the groundIndex is set

Inheritance diagram for CityBuilderCore.TerrainRoadNetwork:
CityBuilderCore.RoadNetwork CityBuilderCore.IStructure CityBuilderCore.ILayerDependency CityBuilderCore.IKeyed

Public Member Functions

 TerrainRoadNetwork (GridPathfindingSettings pathfindingSettings, Road road, Terrain terrain, bool persist, int groundIndex=0, int level=0)
 
override void Initialize ()
 
void Reload ()
 
override void CheckLayers (IEnumerable< Vector2Int > points)
 gets called when
 
override bool TryGetRoad (Vector2Int point, out Road road, out string stage)
 
override RoadsData SaveData ()
 
override void LoadData (RoadsData roadsData)
 
- Public Member Functions inherited from CityBuilderCore.RoadNetwork
 RoadNetwork (GridPathfindingSettings pathfindingSettings, Road road, int level=0)
 
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< IGridLinkGetLinks (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)
 
bool CheckPoint (Vector2Int point)
 checks if a point is defined by the network itself
points registered from the outside return false
 

Protected Member Functions

override void setPoint (Vector2Int point, Road road)
 
override bool checkPoint (Vector2Int point)
 
- Protected Member Functions inherited from CityBuilderCore.RoadNetwork
void onPointsChanged (PointsChanged< IStructure > pointsChanged)
 

Properties

Terrain Terrain [get]
 
- Properties inherited from CityBuilderCore.RoadNetwork
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

Additional Inherited Members

- Events inherited from CityBuilderCore.RoadNetwork
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
 

Member Function Documentation

◆ CheckLayers()

override void CityBuilderCore.TerrainRoadNetwork.CheckLayers ( IEnumerable< Vector2Int > points)
inlinevirtual

gets called when

Parameters
points

Reimplemented from CityBuilderCore.RoadNetwork.

◆ checkPoint()

override bool CityBuilderCore.TerrainRoadNetwork.checkPoint ( Vector2Int point)
inlineprotectedvirtual

Reimplemented from CityBuilderCore.RoadNetwork.

◆ Initialize()

override void CityBuilderCore.TerrainRoadNetwork.Initialize ( )
inlinevirtual

Reimplemented from CityBuilderCore.RoadNetwork.

◆ LoadData()

override void CityBuilderCore.TerrainRoadNetwork.LoadData ( RoadsData roadsData)
inlinevirtual

Reimplemented from CityBuilderCore.RoadNetwork.

◆ SaveData()

override RoadsData CityBuilderCore.TerrainRoadNetwork.SaveData ( )
inlinevirtual

Reimplemented from CityBuilderCore.RoadNetwork.

◆ setPoint()

override void CityBuilderCore.TerrainRoadNetwork.setPoint ( Vector2Int point,
Road road )
inlineprotectedvirtual

Reimplemented from CityBuilderCore.RoadNetwork.

◆ TryGetRoad()

override bool CityBuilderCore.TerrainRoadNetwork.TryGetRoad ( Vector2Int point,
out Road road,
out string stage )
inlinevirtual

Reimplemented from CityBuilderCore.RoadNetwork.