mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2024-12-29 12:21:25 +00:00
33 lines
1.4 KiB
C#
33 lines
1.4 KiB
C#
// tracks SyncVar read/write access when processing NetworkBehaviour,
|
|
// to later be replaced by SyncVarAccessReplacer.
|
|
using System.Collections.Generic;
|
|
using Mono.Cecil;
|
|
|
|
namespace Mirror.Weaver
|
|
{
|
|
// This data is flushed each time - if we are run multiple times in the same process/domain
|
|
public class SyncVarAccessLists
|
|
{
|
|
// setter functions that replace [SyncVar] member variable references. dict<field, replacement>
|
|
public Dictionary<FieldDefinition, MethodDefinition> replacementSetterProperties =
|
|
new Dictionary<FieldDefinition, MethodDefinition>();
|
|
|
|
// getter functions that replace [SyncVar] member variable references. dict<field, replacement>
|
|
public Dictionary<FieldDefinition, MethodDefinition> replacementGetterProperties =
|
|
new Dictionary<FieldDefinition, MethodDefinition>();
|
|
|
|
// amount of SyncVars per class. dict<className, amount>
|
|
// necessary for SyncVar dirty bits, where inheriting classes start
|
|
// their dirty bits at base class SyncVar amount.
|
|
public Dictionary<string, int> numSyncVars = new Dictionary<string, int>();
|
|
|
|
public int GetSyncVarStart(string className) =>
|
|
numSyncVars.TryGetValue(className, out int value) ? value : 0;
|
|
|
|
public void SetNumSyncVars(string className, int num)
|
|
{
|
|
numSyncVars[className] = num;
|
|
}
|
|
}
|
|
}
|