// return true if modified public bool Process() { // only process once if (WasProcessed(netBehaviourSubclass)) { return(false); } Weaver.DLog(netBehaviourSubclass, "Found NetworkBehaviour " + netBehaviourSubclass.FullName); if (netBehaviourSubclass.HasGenericParameters) { Weaver.Error($"{netBehaviourSubclass.Name} cannot have generic parameters", netBehaviourSubclass); // originally Process returned true in every case, except if already processed. // maybe return false here in the future. return(true); } Weaver.DLog(netBehaviourSubclass, "Process Start"); MarkAsProcessed(netBehaviourSubclass); // deconstruct tuple and set fields (syncVars, syncVarNetIds) = SyncVarProcessor.ProcessSyncVars(netBehaviourSubclass); syncObjects = SyncObjectProcessor.FindSyncObjectsFields(netBehaviourSubclass); ProcessMethods(); SyncEventProcessor.ProcessEvents(netBehaviourSubclass, eventRpcs, eventRpcInvocationFuncs); if (Weaver.WeavingFailed) { // originally Process returned true in every case, except if already processed. // maybe return false here in the future. return(true); } GenerateConstants(); GenerateSerialization(); if (Weaver.WeavingFailed) { // originally Process returned true in every case, except if already processed. // maybe return false here in the future. return(true); } GenerateDeSerialization(); Weaver.DLog(netBehaviourSubclass, "Process Done"); return(true); }
// return true if modified public bool Process(ref bool WeavingFailed) { // only process once if (WasProcessed(netBehaviourSubclass)) { return(false); } MarkAsProcessed(netBehaviourSubclass); // deconstruct tuple and set fields (syncVars, syncVarNetIds) = syncVarAttributeProcessor.ProcessSyncVars(netBehaviourSubclass, ref WeavingFailed); syncObjects = SyncObjectProcessor.FindSyncObjectsFields(writers, readers, Log, netBehaviourSubclass, ref WeavingFailed); ProcessMethods(ref WeavingFailed); if (WeavingFailed) { // originally Process returned true in every case, except if already processed. // maybe return false here in the future. return(true); } // inject initializations into static & instance constructor InjectIntoStaticConstructor(ref WeavingFailed); InjectIntoInstanceConstructor(ref WeavingFailed); GenerateSerialization(ref WeavingFailed); if (WeavingFailed) { // originally Process returned true in every case, except if already processed. // maybe return false here in the future. return(true); } GenerateDeSerialization(ref WeavingFailed); return(true); }