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
System.ComponentModel.INotifyPropertyChanged
Assembly: Eco.Gameplay.dll
Syntax
public class SettlementCitizenship : Object, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IController, IViewController, IHasUniversalID, INotifyPropertyChanged
Constructors
SettlementCitizenship()
Declaration
public SettlementCitizenship()
Fields
UserRemovalTimers
Declaration
public ThreadSafeDictionary<User, double> UserRemovalTimers
Field Value
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
BecameCitizenEvent
Declaration
public static ThreadSafeAction<HashSet<User>, Settlement> BecameCitizenEvent { get; set; }
Property Value
CitizenCount
Declaration
public int CitizenCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
CitizensChangedEvent
Declaration
public ThreadSafeAction CitizensChangedEvent { get; set; }
Property Value
CitizensChangedGlobalEvent
Declaration
public static ThreadSafeAction<Settlement> CitizensChangedGlobalEvent { get; set; }
Property Value
CitizenshipChanged
Declaration
public static ThreadSafeAction<User, Settlement, bool> CitizenshipChanged { get; set; }
Property Value
CitizenTimes
Declaration
public ThreadSafeDictionary<User, TimeLog> CitizenTimes { get; set; }
Property Value
ControllerID
Declaration
public ref int ControllerID { get; }
Property Value
Type |
Description |
System.Int32 |
|
DirectCitizenRoster
Declaration
public UserRoster DirectCitizenRoster { get; }
Property Value
LeftCitizenshipEvent
Declaration
public static ThreadSafeAction<HashSet<User>, Settlement> LeftCitizenshipEvent { get; set; }
Property Value
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
Methods
Destroy()
Declaration
FastTick()
Declaration
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
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
System.ComponentModel.INotifyPropertyChanged
Extension Methods