Loading...
Searching...
No Matches
CityBuilderCore.IStructure Interface Reference

Detailed Description

interface for anything placed on the map(roads, decorators, buildings, ....)

Inheritance diagram for CityBuilderCore.IStructure:
CityBuilderCore.IKeyed CityBuilderCore.IBuilding CityBuilderCore.RoadNetwork CityBuilderCore.StructureCollection CityBuilderCore.StructureCollectionFloat CityBuilderCore.StructureDecorators CityBuilderCore.StructureTerrainDetails CityBuilderCore.StructureTerrainTreeVariants CityBuilderCore.StructureTerrainTrees CityBuilderCore.StructureTiles CityBuilderCore.Tests.DebugStructure

Public Member Functions

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
 
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
 

Static Public Member Functions

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
 

Properties

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
 
- Properties inherited from CityBuilderCore.IKeyed
string Key [get]
 unique identifier among a type of objects(might be used in savegames, be careful when changing)
 

Events

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

◆ Add()

void CityBuilderCore.IStructure.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

Parameters
pointsthe points that will be added to the structure

Implemented in CityBuilderCore.Building, CityBuilderCore.RoadNetwork, CityBuilderCore.StructureCollection, CityBuilderCore.StructureCollectionFloat, CityBuilderCore.StructureDecorators, CityBuilderCore.StructureTerrainDetails, CityBuilderCore.StructureTerrainTrees, CityBuilderCore.StructureTerrainTreeVariants, CityBuilderCore.StructureTiles, and CityBuilderCore.Tests.DebugStructure.

◆ GetName()

◆ GetPoints()

◆ HasPoint()

bool CityBuilderCore.IStructure.HasPoint ( Vector2Int point)

◆ Remove()

void CityBuilderCore.IStructure.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

Parameters
pointsthe points to remove

Implemented in CityBuilderCore.Building, CityBuilderCore.RoadNetwork, CityBuilderCore.StructureCollection, CityBuilderCore.StructureCollectionFloat, CityBuilderCore.StructureDecorators, CityBuilderCore.StructureTerrainDetails, CityBuilderCore.StructureTerrainTrees, CityBuilderCore.StructureTerrainTreeVariants, CityBuilderCore.StructureTiles, and CityBuilderCore.Tests.DebugStructure.

◆ ReplacePoints() [1/2]

static void CityBuilderCore.IStructure.ReplacePoints ( IStructure a,
IStructure b,
IEnumerable< Vector2Int > points,
bool keepRandomization = true,
bool keepVariant = true )
inlinestatic

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

Parameters
apoint will be removed from this structure
bpoint will be added to this structure
pointspoints on the map
keepRandomizationtransfer over any size/color randomizations, only works when the structure are of the same type
keepVarianttransfer over the variant index

◆ ReplacePoints() [2/2]

static void CityBuilderCore.IStructure.ReplacePoints ( IStructure a,
IStructure b,
Vector2Int point,
bool keepRandomization = true,
bool keepVariant = true )
inlinestatic

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)

Parameters
apoint will be removed from this structure
bpoint will be added to this structure
pointpoint on the map
keepRandomizationtransfer over any size/color randomizations, only works when the structure are of the same type
keepVarianttransfer over the variant index

Property Documentation

◆ IsDecorator

bool CityBuilderCore.IStructure.IsDecorator
get

whether the structure is automatically removed when something is built on top of it

Implemented in CityBuilderCore.Building, CityBuilderCore.RoadNetwork, and CityBuilderCore.Tests.DebugStructure.

◆ IsDestructible

bool CityBuilderCore.IStructure.IsDestructible
get

whether the structure can be removed by the player

Implemented in CityBuilderCore.Building, CityBuilderCore.RoadNetwork, and CityBuilderCore.Tests.DebugStructure.

◆ IsMovable

bool CityBuilderCore.IStructure.IsMovable
get

whether the structure can be moved by the MoveTool

Implemented in CityBuilderCore.Building, CityBuilderCore.RoadNetwork, and CityBuilderCore.Tests.DebugStructure.

◆ IsWalkable

bool CityBuilderCore.IStructure.IsWalkable
get

whether walkers can pass the points of this structure

Implemented in CityBuilderCore.Building, CityBuilderCore.RoadNetwork, CityBuilderCore.Tests.DebugBuilding, and CityBuilderCore.Tests.DebugStructure.

◆ Level

int CityBuilderCore.IStructure.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

Implemented in CityBuilderCore.RoadNetwork, and CityBuilderCore.Tests.DebugStructure.

◆ StructureReference