private static bool Prefix(RandomSeedSync __instance) { if (State.SaveState == null && State.NextSeed == 0) { return(true); } if (!__instance.isLocalPlayer || !NetworkServer.active) { return(false); } foreach (WorkStation workstation in Object.FindObjectsOfType <WorkStation>()) { var transform = workstation.transform; workstation.Networkposition = new Offset { position = transform.localPosition, rotation = transform.localRotation.eulerAngles, scale = Vector3.one }; } __instance.Networkseed = State.SaveState != null ? State.SaveState.Seed : State.NextSeed; return(false); }
public static bool Prefix(RandomSeedSync __instance) { try { if (__instance.isLocalPlayer && NetworkServer.active) { WorkStation[] array = UnityEngine.Object.FindObjectsOfType <WorkStation>(); foreach (WorkStation workStation in array) { workStation.Networkposition = new Offset { position = workStation.transform.localPosition, rotation = workStation.transform.localRotation.eulerAngles, scale = Vector3.one }; } if (Data.isRandom.value) { __instance.Networkseed = ConfigFile.ServerConfig.GetInt("map_seed", -1); } else { __instance.Networkseed = Data.currentSeed.value; } while (NetworkServer.active && __instance.seed == -1) { __instance.Networkseed = UnityEngine.Random.Range(-999999999, 999999999); Data.isRandom.value = true; } Data.currentSeed.value = __instance.Networkseed; } return(false); } catch { Exiled.API.Features.Log.Error("RandomSeedSync couldn't be patched..."); return(true); } }