Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }