Show / Hide Table of Contents

Class Settlement

A settlement defines 'influence' in the world upon which its government is applied and land can be claimed. It also maintains a list of citizens associated with the government, and polices for changing citizens.

Inheritance
System.Object
SimpleEntry
Settlement
Implements
ILinkableParameterized<System.Boolean>
ILinkableParameterized<SimpleEntry.NamingOptions>
IValidity
IDescribable
ISuffixName
IThreadSafeSubscriptions
ISubscriptions<ThreadSafeSubscriptions>
ISubscriptions
IInitializationSubscribable
IInfluencer
IHostedObject
ILinkable
IHasTeleportOption
IAnnexable
IGivesReputation
IReputationAssociated
ICachesValidity
IHasID
IController
IViewController
IHasUniversalID
INamed
IReInitializable
IHasReferenceableSerializableID
IHasSerializableID
System.ComponentModel.INotifyPropertyChanged
Inherited Members
SimpleEntry.Description()
SimpleEntry.PostLoad()
SimpleEntry.ToString()
SimpleEntry.SaveInRegistrar()
SimpleEntry.UILinkContent()
SimpleEntry.UILinkContent(SimpleEntry.NamingOptions)
SimpleEntry.OnLinkClicked(TooltipOrigin, TooltipClickContext, User)
SimpleEntry.ReInitialize()
SimpleEntry.MarkDirty()
SimpleEntry.UserDescription
SimpleEntry.Name
SimpleEntry.Creator
SimpleEntry.NameSuffix
SimpleEntry.CreationTime
SimpleEntry.CachedValidity
SimpleEntry.IsDestroyed
SimpleEntry.OnValidityChanged
SimpleEntry.Initialized
SimpleEntry.MarkedUpName
SimpleEntry.Id
SimpleEntry.Registrar
SimpleEntry.WorldTimeSinceCreation
SimpleEntry.TextName
SimpleEntry.Scannable
SimpleEntry.Style
SimpleEntry.ControllerID
SimpleEntry.TrueResult
SimpleEntry.Subscriptions
SimpleEntry.PropertyChanged
Namespace: Eco.Gameplay.Settlements
Assembly: Eco.Gameplay.dll
Syntax
[ExactlyOnePerHost]
public sealed class Settlement : SimpleEntry, ILinkableParameterized<bool>, ILinkableParameterized<SimpleEntry.NamingOptions>, IValidity, IDescribable, ISuffixName, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IInitializationSubscribable, IInfluencer, IHostedObject, ILinkable, IHasTeleportOption, IAnnexable, IGivesReputation, IReputationAssociated, ICachesValidity, IHasID, IController, IViewController, IHasUniversalID, INamed, IReInitializable, IHasReferenceableSerializableID, IHasSerializableID, INotifyPropertyChanged

Constructors

Settlement()

Declaration
public Settlement()

Settlement(SettlementType, Vector3i, WorldObject)

Declaration
public Settlement(SettlementType type, Vector3i position, WorldObject host)
Parameters
Type Name Description
SettlementType type
Vector3i position
WorldObject host

Fields

FoundedEvent

Declaration
public ThreadSafeAction FoundedEvent
Field Value
Type Description
ThreadSafeAction

Founders

Declaration
public ThreadSafeList<User> Founders
Field Value
Type Description
ThreadSafeList<User>

WorldObjectsWithAssignedJurisdiction

Tracks all world objects that have a jurisdiction which is assigned to us.

Declaration
public ThreadSafeHashSet<WorldObject> WorldObjectsWithAssignedJurisdiction
Field Value
Type Description
ThreadSafeHashSet<WorldObject>

Properties

AdvertisementToNewPeopleEnteringWorld

Declaration
public string AdvertisementToNewPeopleEnteringWorld { get; set; }
Property Value
Type Description
System.String

AllCurrentCivicArticlesCached

All the active articles, from both the constitution and any amendments that modify that list. Will contain invalid articles too.

Declaration
public IEnumerable<CivicArticle> AllCurrentCivicArticlesCached { get; set; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<CivicArticle>

AllowAnyUnaffiliatedHomesteadDeedToExpandWithinOurInfluence

Declaration
public bool AllowAnyUnaffiliatedHomesteadDeedToExpandWithinOurInfluence { get; }
Property Value
Type Description
System.Boolean

AllowBrandNewPeopleChangedEvent

Declaration
public static ThreadSafeAction AllowBrandNewPeopleChangedEvent { get; }
Property Value
Type Description
ThreadSafeAction

AssignedCulturalDeeds

The cultrual properties chosen on a diplomacy desk, foreced to be part of the set of influencing deeds.

Declaration
public ThreadSafeList<Deed> AssignedCulturalDeeds { get; set; }
Property Value
Type Description
ThreadSafeList<Deed>

CachedData

Declaration
[NewTooltipChildren]
public SettlementCachedData CachedData { get; set; }
Property Value
Type Description
SettlementCachedData

CanBeDeleted

Declaration
public override bool CanBeDeleted { get; }
Property Value
Type Description
System.Boolean
Overrides
SimpleEntry.CanBeDeleted

CitizenDemographic

Declaration
public Demographic CitizenDemographic { get; set; }
Property Value
Type Description
Demographic

Citizens

Declaration
public ThreadSafeHashSet<User> Citizens { get; }
Property Value
Type Description
ThreadSafeHashSet<User>

Citizenship

Declaration
[NewTooltipChildren]
public SettlementCitizenship Citizenship { get; set; }
Property Value
Type Description
SettlementCitizenship

Color

Declaration
public Color Color { get; }
Property Value
Type Description
Color

Constitution

Declaration
public Constitution Constitution { get; set; }
Property Value
Type Description
Constitution

CultureBoost

Declaration
public float CultureBoost { get; set; }
Property Value
Type Description
System.Single

DefaultCurrency

Declaration
public Currency DefaultCurrency { get; set; }
Property Value
Type Description
Currency

ElectionProcess

Declaration
public ElectionProcess ElectionProcess { get; set; }
Property Value
Type Description
ElectionProcess

Enabled

Declaration
public bool Enabled { get; set; }
Property Value
Type Description
System.Boolean

Founded

Declaration
public bool Founded { get; }
Property Value
Type Description
System.Boolean

FoundingElection

Declaration
public Election FoundingElection { get; set; }
Property Value
Type Description
Election

FoundingPosition

Declaration
public Vector3i FoundingPosition { get; }
Property Value
Type Description
Vector3i

HasValidConstitution

Returns false when where is currently no active and valid constitution.

Declaration
public bool HasValidConstitution { get; }
Property Value
Type Description
System.Boolean

HostObject

Declaration
public WorldObjectHandle HostObject { get; }
Property Value
Type Description
WorldObjectHandle

IconName

Declaration
public override string IconName { get; }
Property Value
Type Description
System.String
Overrides
SimpleEntry.IconName

IgnoreRequiresHost

Declaration
public bool IgnoreRequiresHost { get; set; }
Property Value
Type Description
System.Boolean

ImmigrationPolicy

Declaration
public ImmigrationPolicy ImmigrationPolicy { get; set; }
Property Value
Type Description
ImmigrationPolicy

Influence

Declaration
[NewTooltipChildren]
public SettlementInfluence Influence { get; set; }
Property Value
Type Description
SettlementInfluence

InfluenceSourceDeeds

The current cached list of influence source deeds, which can change when none are assigned. It uses all the assigned ones, then takes remaining ones in descending order to reach the max count.

Declaration
public ControllerList<Deed> InfluenceSourceDeeds { get; set; }
Property Value
Type Description
ControllerList<Deed>

Initializer

Declaration
public Initializer Initializer { get; }
Property Value
Type Description
Initializer

IsActive

Declaration
public bool IsActive { get; }
Property Value
Type Description
System.Boolean

LastAnnexedTime

Declaration
public double LastAnnexedTime { get; set; }
Property Value
Type Description
System.Double

LastValidTime

Declaration
public double LastValidTime { get; set; }
Property Value
Type Description
System.Double

Leader

Declaration
public ElectedTitle Leader { get; set; }
Property Value
Type Description
ElectedTitle

LeaderAndCitizensUpdatedEvent

Declaration
public static ThreadSafeAction<Settlement> LeaderAndCitizensUpdatedEvent { get; }
Property Value
Type Description
ThreadSafeAction<Settlement>

Legal

Declaration
public SettlementLegal Legal { get; set; }
Property Value
Type Description
SettlementLegal

Markers

Declaration
public ControllerList<WorldMarker> Markers { get; }
Property Value
Type Description
ControllerList<WorldMarker>

OriginalName

Declaration
public string OriginalName { get; set; }
Property Value
Type Description
System.String

Parentage

Declaration
public SettlementParentage Parentage { get; }
Property Value
Type Description
SettlementParentage

ParentSettlement

Declaration
public Settlement ParentSettlement { get; }
Property Value
Type Description
Settlement

Picture

Declaration
public PictureItem Picture { get; }
Property Value
Type Description
Eco.Mods.TechTree.PictureItem

Position

Declaration
public Vector3i Position { get; }
Property Value
Type Description
Vector3i

Property

Declaration
[NewTooltipChildren]
public SettlementProperty Property { get; set; }
Property Value
Type Description
SettlementProperty

ProposableUpdatedEvent

Declaration
public ThreadSafeAction<IProposable> ProposableUpdatedEvent { get; }
Property Value
Type Description
ThreadSafeAction<IProposable>

RequiresHost

Declaration
public bool RequiresHost { get; }
Property Value
Type Description
System.Boolean

ScanPeriodically

Declaration
public bool ScanPeriodically { get; set; }
Property Value
Type Description
System.Boolean

SettlementLineageNameChangedEvent

Declaration
public ThreadSafeAction SettlementLineageNameChangedEvent { get; }
Property Value
Type Description
ThreadSafeAction

SettlementType

Declaration
public SettlementType SettlementType { get; }
Property Value
Type Description
SettlementType

Taxes

Declaration
public SettlementTaxes Taxes { get; set; }
Property Value
Type Description
SettlementTaxes

TimeFounded

Declaration
public double TimeFounded { get; }
Property Value
Type Description
System.Double

TreasuryBankAccount

Declaration
public BankAccount TreasuryBankAccount { get; set; }
Property Value
Type Description
BankAccount

TypeAndName

The type of settlement prepending the name. IE, "Town Johnkville"

Declaration
public LocString TypeAndName { get; }
Property Value
Type Description
LocString

WasRemoved

Declaration
public bool WasRemoved { get; }
Property Value
Type Description
System.Boolean

Methods

AssignHostObject(WorldObject)

Declaration
public void AssignHostObject(WorldObject newHost)
Parameters
Type Name Description
WorldObject newHost

CanBeAssignedTo(IOrphanAssignment)

Declaration
public bool CanBeAssignedTo(IOrphanAssignment container)
Parameters
Type Name Description
IOrphanAssignment container
Returns
Type Description
System.Boolean

ClearCoreProposables()

Remove all references to the core proposables, as in cases of annexing where we dont want them to get updated.

Declaration
public void ClearCoreProposables()

CreatorText(Player)

Declaration
public override LocString CreatorText(Player reader)
Parameters
Type Name Description
Player reader
Returns
Type Description
LocString
Overrides
SimpleEntry.CreatorText(Player)

Destroyed()

Declaration
public override void Destroyed()
Overrides
SimpleEntry.Destroyed()

DisableHostedObject()

Declaration
public void DisableHostedObject()

FastTick()

Declaration
public void FastTick()

FounderDesc()

Declaration
public LocString FounderDesc()
Returns
Type Description
LocString

FoundSettlement(IEnumerable<User>, Election)

Declaration
public void FoundSettlement(IEnumerable<User> founders, Election election = null)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<User> founders
Election election

GetCoreProposable(Type)

Provides any of the built-in proposables the settlement makes.

Declaration
public IHasID GetCoreProposable(Type type)
Parameters
Type Name Description
System.Type type
Returns
Type Description
IHasID

GetCoreSettlementParts()

Itrerates through the linked parts of the settlement.

Declaration
public IEnumerable<IHasID> GetCoreSettlementParts()
Returns
Type Description
System.Collections.Generic.IEnumerable<IHasID>

HasAncestor(Settlement)

Declaration
public bool HasAncestor(Settlement settlement)
Parameters
Type Name Description
Settlement settlement
Returns
Type Description
System.Boolean

HasAuth(User)

Declaration
public bool HasAuth(User user)
Parameters
Type Name Description
User user
Returns
Type Description
System.Boolean

HasCitizen(User)

Declaration
public bool HasCitizen(User user)
Parameters
Type Name Description
User user
Returns
Type Description
System.Boolean

HostObjectSetup(WorldObject)

Declaration
public void HostObjectSetup(WorldObject hostObject)
Parameters
Type Name Description
WorldObject hostObject

Influences(Vector2i)

Returns true if the settlement influences the given position.

Declaration
public bool Influences(Vector2i pos)
Parameters
Type Name Description
Vector2i pos
Returns
Type Description
System.Boolean

Influences(PlotPos)

Declaration
public bool Influences(PlotPos pos)
Parameters
Type Name Description
PlotPos pos
Returns
Type Description
System.Boolean

Initialize()

Declaration
public override void Initialize()
Overrides
SimpleEntry.Initialize()

IsSettlementCoreProposable(IProposable)

Returns true if the given proposable is one our special ones listed above.

Declaration
public bool IsSettlementCoreProposable(IProposable proposable)
Parameters
Type Name Description
IProposable proposable
Returns
Type Description
System.Boolean

OnCreationCompleted()

Declaration
public void OnCreationCompleted()

PositionTooltip()

Declaration
public LocString PositionTooltip()
Returns
Type Description
LocString

SetSettlementPicture(PictureItem)

Assign Picture to the Settlement from its Foundation and notify clients.

Declaration
public void SetSettlementPicture(PictureItem picture)
Parameters
Type Name Description
Eco.Mods.TechTree.PictureItem picture

Tick()

Declaration
public void Tick()

UILinkContent(Boolean)

Declaration
public override LocString UILinkContent(bool param)
Parameters
Type Name Description
System.Boolean param
Returns
Type Description
LocString
Overrides
SimpleEntry.UILinkContent(Boolean)

UnfoundSettlement()

Revert to unfounded, which happens when annexed into the same type of settlement.

Declaration
public void UnfoundSettlement()

UpdatedProposable(IProposable)

Declaration
public void UpdatedProposable(IProposable element)
Parameters
Type Name Description
IProposable element

Explicit Interface Implementations

ICachesValidity.IgnoreValidity

Declaration
bool ICachesValidity.IgnoreValidity { get; }
Returns
Type Description
System.Boolean

IGivesReputation.DisplayPriority

Declaration
int IGivesReputation.DisplayPriority { get; }
Returns
Type Description
System.Int32

IGivesReputation.GivableReputationPerDay

Declaration
float IGivesReputation.GivableReputationPerDay { get; }
Returns
Type Description
System.Single

IGivesReputation.GivableReputationPerDayPerTarget

Declaration
float IGivesReputation.GivableReputationPerDayPerTarget { get; }
Returns
Type Description
System.Single

IGivesReputation.GivableReputationToSingleTargetTotal

Declaration
Range IGivesReputation.GivableReputationToSingleTargetTotal { get; }
Returns
Type Description
Range

IInfluencer.Priority

Declaration
int IInfluencer.Priority { get; }
Returns
Type Description
System.Int32

IHostedObject.CanBeEdited

Declaration
bool IHostedObject.CanBeEdited { get; set; }
Returns
Type Description
System.Boolean

IHostedObject.ExpirationWarningsIssued

Declaration
int IHostedObject.ExpirationWarningsIssued { get; set; }
Returns
Type Description
System.Int32

IHostedObject.HostingSettlement

Declaration
Settlement IHostedObject.HostingSettlement { get; }
Returns
Type Description
Settlement

IHostedObject.ReenableHostedObject()

Declaration
void IHostedObject.ReenableHostedObject()

IAnnexable.Citizens()

Declaration
IEnumerable<User> IAnnexable.Citizens()
Returns
Type Description
System.Collections.Generic.IEnumerable<User>

IAnnexable.CultureTotal

Declaration
float IAnnexable.CultureTotal { get; }
Returns
Type Description
System.Single

IAnnexable.DistanceTo(Vector2i)

Declaration
float IAnnexable.DistanceTo(Vector2i worldPos)
Parameters
Type Name Description
Vector2i worldPos
Returns
Type Description
System.Single

IAnnexable.Notify(LocString)

Declaration
void IAnnexable.Notify(LocString s)
Parameters
Type Name Description
LocString s

IAnnexable.Parent

Declaration
Settlement IAnnexable.Parent { get; }
Returns
Type Description
Settlement

IAnnexable.PlotPosSet

Declaration
HashSet<PlotPos> IAnnexable.PlotPosSet { get; }
Returns
Type Description
System.Collections.Generic.HashSet<PlotPos>

IAnnexable.ReductionPercentageForAnnexation

Declaration
float IAnnexable.ReductionPercentageForAnnexation { get; }
Returns
Type Description
System.Single

IAnnexable.SettlementIDtoAnnexWarningIssued

Declaration
ThreadSafeDictionary<int, int> IAnnexable.SettlementIDtoAnnexWarningIssued { get; set; }
Returns
Type Description
ThreadSafeDictionary<System.Int32, System.Int32>

IAnnexable.SettlementType

Declaration
Nullable<SettlementType> IAnnexable.SettlementType { get; }
Returns
Type Description
System.Nullable<SettlementType>

IAnnexable.TypeDisplayName

Declaration
LocString IAnnexable.TypeDisplayName { get; }
Returns
Type Description
LocString

Implements

ILinkableParameterized<T>
ILinkableParameterized<T>
IValidity
IDescribable
ISuffixName
IThreadSafeSubscriptions
ISubscriptions<TSubscriptionsList>
ISubscriptions
IInitializationSubscribable
IInfluencer
IHostedObject
ILinkable
IHasTeleportOption
IAnnexable
IGivesReputation
IReputationAssociated
ICachesValidity
IHasID
IController
IViewController
IHasUniversalID
INamed
IReInitializable
IHasReferenceableSerializableID
IHasSerializableID
System.ComponentModel.INotifyPropertyChanged

Extension Methods

TagUtils.TagNames(Object, Boolean)
TagUtils.TagDisplayNames(Object, Boolean)
SettlementCivicActionsUtils.CanInviteOrApply(Settlement, Settlement, Boolean)
SettlementConfigExtensions.ClaimStakeItemType(Settlement)
SettlementConfigExtensions.ClaimStakeItem(Settlement)
SettlementConfigExtensions.ClaimStakeObject(Settlement)
SettlementInfluenceUtils.HasSatisfactoryCoverage(Settlement, IAnnexable, out Single, IEnumerable<PlotPos>, IEnumerable<PlotPos>)
SettlementInfluenceUtils.CouldInfluence(Settlement, PlotPos)
SettlementInfluenceUtils.DistanceToNearestInfluence(Settlement, PlotPos)
SettlementInfluenceUtils.DistanceToNearestInfluence(Settlement, Vector2i)
SettlementUtils.GetCommonAncestor(Settlement, IAnnexable)
SettlementUtils.Leaders(Settlement)
SettlementUtils.ChatToCitizensMailToLeaders(Settlement, LocString)
SettlementUtils.SelfOrParent(Settlement, SettlementType)
SettlementUtils.SelfAndParents(Settlement)
SettlementUtils.AllParents(Settlement)
SettlementUtils.TopParent(Settlement)
SettlementUtils.HasChildOrSelf(Settlement, Settlement)
SettlementUtils.NotifyLoc(Settlement, FormattableString)
SettlementUtils.Notify(Settlement, LocString)
SettlementUtils.SelfAndAllChildrenSettlementsRecursive(Settlement)
SettlementUtils.ChildrenRecurisve(Settlement)
SettlementUtils.CanSecedeFromParents(Settlement, out Settlement)
SettlementUtils.AllowOwnership(Settlement, IAlias)
SettlementUtils.AllowDeedInteraction(Settlement, Deed)
SettlementUtils.DestroySettlement(Settlement, LocString)
ClientSetViewExtensions.SetClassOfProperty(Object, Player, String, String, Int32)
CivicPowersManager.GetCivicPower(Settlement, User, Type)
TypeTooltipExtensions.UILinkGeneric(Object)
MiscTooltipLibrary.SimpleEntryTooltip(SimpleEntry, User)
MiscTooltipLibrary.SimpleEntryTitle(SimpleEntry)
SettlementTooltipLibrary.SettlementHeaderTooltip(Settlement, User)
SettlementTooltipLibrary.SettlementTooltip(Settlement)
SettlementTooltipLibrary.CitizenRemovalTooltip(Settlement)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾