public static bool Prefix(MenuScript __instance) { if (GadgetNetwork.connectTime < 0) { GadgetNetwork.connectTime = Time.realtimeSinceStartup; } if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { if (InstanceTracker.GameScript.gameObject.GetComponent <RPCHooks>() == null) { InstanceTracker.GameScript.gameObject.AddComponent <RPCHooks>(); } RPCHooks.InitiateGadgetNetwork(); __instance.StartCoroutine(WaitAndTryAgain(__instance)); return(false); } else { if (!GadgetNetwork.MatrixReady) { GadgetNetwork.InitializeVanillaIDMatrix(); } return(true); } }
public static bool Prefix(ChunkWorld __instance) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { if (InstanceTracker.GameScript.gameObject.GetComponent <RPCHooks>() == null) { InstanceTracker.GameScript.gameObject.AddComponent <RPCHooks>(); } RPCHooks.InitiateGadgetNetwork(); __instance.StartCoroutine(WaitAndTryAgain(__instance)); return(false); } else { return(true); } }
public static bool Prefix(GameScript __instance) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { if (InstanceTracker.GameScript.gameObject.GetComponent <RPCHooks>() == null) { InstanceTracker.GameScript.gameObject.AddComponent <RPCHooks>(); } RPCHooks.InitiateGadgetNetwork(); __instance.StartCoroutine(WaitAndTryAgain(__instance)); return(false); } else { if (GadgetNetwork.GetTimeSinceConnect() > GadgetNetwork.MatrixTimeout && Gadgets.ListAllGadgetInfos().Any(x => x.Attribute.RequiredOnClients)) { GadgetCore.CoreLogger.LogWarning("Disconnecting from server due to timout! You can try raising NetworkTimeout in the config."); Network.Disconnect(); return(false); } return(true); } }