Struct DiplomacyColdDataNative
ENGINE LAYER - Cold data for diplomatic relations using NativeCollections
Architecture:
- Struct (not class) for Burst compatibility
- NativeList for modifiers (dynamic growth, zero GC)
- Stored in NativeList{DiplomacyColdDataNative} in DiplomacySystem
Memory: ~24 bytes + modifiers
public struct DiplomacyColdDataNative
Fields
lastInteractionTick
Last tick when this relationship changed Used for decay calculations and debugging
public int lastInteractionTick
Field Value
- int
modifiers
Active opinion modifiers affecting this relationship NativeList for efficient iteration and zero allocations
public NativeList<OpinionModifier> modifiers
Field Value
- NativeList<OpinionModifier>
Methods
AddModifier(OpinionModifier)
Add a modifier to this relationship
public void AddModifier(OpinionModifier modifier)
Parameters
modifierOpinionModifier
CalculateModifierTotal(int)
Calculate total opinion from all active modifiers
public FixedPoint64 CalculateModifierTotal(int currentTick)
Parameters
currentTickint
Returns
Create(Allocator)
Create new cold data with allocated modifier list
public static DiplomacyColdDataNative Create(Allocator allocator)
Parameters
allocatorAllocator
Returns
Dispose()
Dispose of NativeList to prevent memory leaks
public void Dispose()
HasActiveModifiers(int)
Check if this cold data has any active modifiers Used to determine if cold data can be removed
public bool HasActiveModifiers(int currentTick)
Parameters
currentTickint
Returns
- bool
RemoveDecayedModifiers(int)
Remove all fully decayed modifiers Returns number of modifiers removed
public int RemoveDecayedModifiers(int currentTick)
Parameters
currentTickint
Returns
- int