feat(runtime): seal dormant SetPosition evaluations
This commit is contained in:
parent
22651c823d
commit
99f867f053
16 changed files with 2298 additions and 62 deletions
|
|
@ -1,3 +1,4 @@
|
|||
using System.Collections.Frozen;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AcDream.Core.Items;
|
||||
|
|
@ -22,11 +23,29 @@ namespace AcDream.Core.Items;
|
|||
/// (0 = dwelling access only, 1 = storage access also). Retail's
|
||||
/// <c>IsAllowedIn</c> only consults key membership for entry; the permission
|
||||
/// value is preserved for wire fidelity but not consulted here.</param>
|
||||
public sealed record HouseRestrictionRecord(
|
||||
bool OpenToPublic,
|
||||
uint AllegianceMonarchId,
|
||||
IReadOnlyDictionary<uint, uint> Guests)
|
||||
public sealed record HouseRestrictionRecord
|
||||
{
|
||||
public HouseRestrictionRecord(
|
||||
bool OpenToPublic,
|
||||
uint AllegianceMonarchId,
|
||||
IReadOnlyDictionary<uint, uint> Guests)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(Guests);
|
||||
this.OpenToPublic = OpenToPublic;
|
||||
this.AllegianceMonarchId = AllegianceMonarchId;
|
||||
this.Guests = Guests.ToFrozenDictionary();
|
||||
}
|
||||
|
||||
public bool OpenToPublic { get; }
|
||||
public uint AllegianceMonarchId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Immutable snapshot of the wire permission table. The parser's mutable
|
||||
/// dictionary must never remain an untracked mutation path into live
|
||||
/// collision-entry authority.
|
||||
/// </summary>
|
||||
public IReadOnlyDictionary<uint, uint> Guests { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Verbatim port of retail <c>RestrictionDB::IsAllowedIn</c>
|
||||
/// (named-retail pc:444493-444516, 0x005ae8f0):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue