Show / Hide Table of Contents

Class SettlementCitizenship

Tracks the citizens of a settlement using a Roster type, so new citizens can apply/be invited/accepted/etc.

Inheritance
System.Object
SettlementCitizenship
Implements
IThreadSafeSubscriptions
ISubscriptions<ThreadSafeSubscriptions>
ISubscriptions
IController
IViewController
IHasUniversalID
System.ComponentModel.INotifyPropertyChanged
Namespace: Eco.Gameplay.Settlements
Assembly: Eco.Gameplay.dll
Syntax
public class SettlementCitizenship : Object, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IController, IViewController, IHasUniversalID, INotifyPropertyChanged
Remarks

Also tracks the number of claims and stakes that get spawned as population increases.

Constructors

SettlementCitizenship()

Declaration
public SettlementCitizenship()

Fields

UserRemovalTimers

Declaration
public ThreadSafeDictionary<User, double> UserRemovalTimers
Field Value
Type Description
ThreadSafeDictionary<User, System.Double>

Properties

AbandonedCitizens

Declaration
public IEnumerable<User> AbandonedCitizens { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<User>

ActiveCitizenCount

Declaration
public int ActiveCitizenCount { get; }
Property Value
Type Description
System.Int32

AllCitizens

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

BecameCitizenEvent

Declaration
public static ThreadSafeAction<HashSet<User>, Settlement> BecameCitizenEvent { get; set; }
Property Value
Type Description
ThreadSafeAction<System.Collections.Generic.HashSet<User>, Settlement>

CitizenCount

Declaration
public int CitizenCount { get; }
Property Value
Type Description
System.Int32

CitizensChangedEvent

Declaration
public ThreadSafeAction CitizensChangedEvent { get; set; }
Property Value
Type Description
ThreadSafeAction

CitizensChangedGlobalEvent

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

CitizenshipChanged

Declaration
public static ThreadSafeAction<User, Settlement, bool> CitizenshipChanged { get; set; }
Property Value
Type Description
ThreadSafeAction<User, Settlement, System.Boolean>

CitizenTimes

Declaration
public ThreadSafeDictionary<User, TimeLog> CitizenTimes { get; set; }
Property Value
Type Description
ThreadSafeDictionary<User, TimeLog>

ControllerID

Declaration
public ref int ControllerID { get; }
Property Value
Type Description
System.Int32

DirectCitizenRoster

Declaration
public UserRoster DirectCitizenRoster { get; }
Property Value
Type Description
UserRoster

LeftCitizenshipEvent

Declaration
public static ThreadSafeAction<HashSet<User>, Settlement> LeftCitizenshipEvent { get; set; }
Property Value
Type Description
ThreadSafeAction<System.Collections.Generic.HashSet<User>, Settlement>

NonAbandonedCitizens

Declaration
public IEnumerable<User> NonAbandonedCitizens { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<User>

Subscriptions

Declaration
public ref ThreadSafeSubscriptions Subscriptions { get; }
Property Value
Type Description
ThreadSafeSubscriptions

Methods

Destroy()

Declaration
public void Destroy()

FastTick()

Declaration
public void FastTick()

HasCitizen(User)

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

HasDirectCitizen(User)

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

QueueCitizensCacheUpdate()

Event to update our citizens in any roster, as well as citizens in our children settlements.

Declaration
public void QueueCitizensCacheUpdate()

RemoveAllDirectCitizens(Boolean, IEnumerable<User>, Boolean)

Declaration
public void RemoveAllDirectCitizens(bool joinParentUponLeaving, IEnumerable<User> usersToKeep = null, bool forceRemove = false)
Parameters
Type Name Description
System.Boolean joinParentUponLeaving
System.Collections.Generic.IEnumerable<User> usersToKeep
System.Boolean forceRemove

RemoveCitizen(User)

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

RemoveCitizenNonVoluntarily(User)

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

UpdateName()

Declaration
public void UpdateName()

WatchUserCitizenshipChanged(User, Action)

Declaration
public static void WatchUserCitizenshipChanged(User user, Action action)
Parameters
Type Name Description
User user
System.Action action

Events

PropertyChanged

Declaration
public event PropertyChangedEventHandler PropertyChanged
Event Type
Type Description
System.ComponentModel.PropertyChangedEventHandler

Implements

IThreadSafeSubscriptions
ISubscriptions<TSubscriptionsList>
ISubscriptions
IController
IViewController
IHasUniversalID
System.ComponentModel.INotifyPropertyChanged

Extension Methods

TagUtils.TagNames(Object, Boolean)
TagUtils.TagDisplayNames(Object, Boolean)
ClientSetViewExtensions.SetClassOfProperty(Object, Player, String, String, Int32)
TypeTooltipExtensions.UILinkGeneric(Object)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾