public void RegisterExtendedAccessors(Action <Action> RunWithExceptionHandler, ApiMemberAccessor GetOrSetMemberFunc) { if (this.RunOnExceptionHandler == null && this.GetOrSetMemberFunc == null) { this.RunOnExceptionHandler = RunWithExceptionHandler; this.GetOrSetMemberFunc = GetOrSetMemberFunc; VersionID = (Vector4I)(GetOrSetMemberFunc(null, (int)ClientDataAccessors.GetVersionID) ?? new Vector4I(0, 0, 0, 0)); ClientSubtype = (ClientSubtypes)(GetOrSetMemberFunc(null, (int)ClientDataAccessors.GetSubtype) ?? ClientSubtypes.Full); if (VersionID.X > 0) { VersionString = $"{VersionID.X}.{VersionID.Y}.{VersionID.Z}.{VersionID.W} ({apiVersionID})"; } } }
private BillBoardUtils() : base(ApiModuleTypes.BillBoardUtils, false, true) { if (instance != null) { throw new Exception($"Only one instance of {GetType().Name} can exist at once."); } bbBuf = new List <MyTriangleBillboard>(1000); var data = GetApiData(); GetOrSetMember = data.Item1; triangleList = data.Item2; flatTriangleList = data.Item3; matrixBuf = data.Item4; matrixTable = data.Item5; }