示例#1
0
        internal static void GenerateSpriteSheet()
        {
            GadgetCoreAPI.spriteSheetSize = MathUtils.SmallestPerfectSquare(GadgetCoreAPI.spriteSheetSprites.Count + 16);
            int spritesOnAxis          = (int)Mathf.Sqrt(GadgetCoreAPI.spriteSheetSize);
            int spritesOnFirstFourRows = spritesOnAxis - 4;
            int spriteSheetDimensions  = spritesOnAxis * 32;

            GadgetCoreAPI.spriteSheet = new Texture2D(spriteSheetDimensions, spriteSheetDimensions, InstanceTracker.GameScript.TileManager.GetComponent <ChunkWorld>().Texture.format, false, false)
            {
                filterMode = FilterMode.Point
            };
            for (int i = 0; i < GadgetCoreAPI.spriteSheetSprites.Count; i++)
            {
                Vector2 coords;
                if (i < spritesOnFirstFourRows * 4)
                {
                    coords = new Vector2(4 + (i % spritesOnFirstFourRows), i / spritesOnFirstFourRows);
                }
                else
                {
                    coords = new Vector2((i - (spritesOnFirstFourRows * 4)) % spritesOnAxis, 4 + ((i - (spritesOnFirstFourRows * 4)) / spritesOnAxis));
                }
                GadgetCoreAPI.spriteSheetSprites[i].coords = coords;
                GadgetUtils.SafeCopyTexture(GadgetCoreAPI.spriteSheetSprites[i].tex, 0, 0, 0, 0, 32, 32, GadgetCoreAPI.spriteSheet, 0, 0, (int)coords.x * 32, (int)coords.y * 32);
            }
        }
示例#2
0
        internal void RPCCreateMarketStand(int itemID, Vector3 pos, int cost, bool isBuild, bool isCredits, bool isTrophies, NetworkViewID viewID)
        {
            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
            {
                StartCoroutine(GadgetUtils.WaitAndInvoke(typeof(RPCHooks).GetMethod("RPCCreateMarketStand", BindingFlags.NonPublic | BindingFlags.Instance), GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, this, itemID, pos, cost, isBuild, isCredits, isTrophies, viewID));
                return;
            }
            ItemInfo    item      = ItemRegistry.Singleton[ItemRegistry.Singleton.ConvertIDToLocal(itemID)];
            GameObject  shopStand = Instantiate(SceneInjector.BuildStand, SceneInjector.BuildStand.transform.parent);
            NetworkView view      = shopStand.GetComponent <NetworkView>();

            if (view == null)
            {
                view = shopStand.AddComponent <NetworkView>();
            }
            view.viewID = viewID;
            shopStand.transform.localPosition = new Vector3(pos.x, pos.y, SceneInjector.BuildStand.transform.position.z);
            shopStand.name = isBuild ? "buildStand" : "kylockeStand";
            KylockeStand standScript = shopStand.GetComponent <KylockeStand>();

            standScript.isTrophies = isTrophies;
            standScript.isCredits  = isCredits;
            standScript.isBuild    = isBuild;
            standScript.itemID     = item.ID;
            standScript.cost       = cost;
            standScript.currency.GetComponent <MeshRenderer>().material = isBuild ? isCredits ? isTrophies ? GadgetCoreAPI.GetItemMaterial(59) : GadgetCoreAPI.GetItemMaterial(52) : GadgetCoreAPI.GetItemMaterial(57) : GadgetCoreAPI.GetItemMaterial(51);
            standScript.icon.GetComponent <MeshRenderer>().material     = item.Mat;
            standScript.txtName[0].text = item.GetName();
            standScript.txtName[1].text = standScript.txtName[0].text;
            standScript.txtCost[0].text = string.Empty + standScript.cost;
            standScript.txtCost[1].text = standScript.txtCost[0].text;
        }
 public static bool Prefix(NetworkView __instance, string name, RPCMode mode, ref object[] args)
 {
     if (Assembly.GetCallingAssembly().Equals(typeof(GameScript).Assembly))
     {
         switch (name)
         {
         case "Set":
             if (args.Length == 3)
             {
                 if (args[0] is int)
                 {
                     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                     {
                         InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                         return(true);
                     }
                     GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref args[0]);
                 }
             }
             else if (args.Length == 1)
             {
                 if (args[0] is int[] arr && arr.Length == 2)
                 {
                     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                     {
                         InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                         return(true);
                     }
                     ItemStandScript itemStandScript = __instance.GetComponent <ItemStandScript>();
                     if (itemStandScript == null || !itemStandScript.isChipStand)
                     {
                         args[0] = new int[]
                         {
                             GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, arr[0]),
                             arr[1],
                         };
                     }
                     else
                     {
                         args[0] = new int[]
                         {
                             GadgetNetwork.ConvertIDToHost(ChipRegistry.Singleton, arr[0]),
                             arr[1],
                         };
                     }
                 }
                 else if (args[0] is Package2 pack2)
                 {
                     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                     {
                         InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                         return(true);
                     }
                     GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref pack2.id);
                 }
             }
             break;
 public static bool Prefix(Projectile __instance, int dmg, ref int id, Vector3 dir)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, dmg, id, dir));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton /* ProjectileRegistry */, ref id);
     return(true);
 }
 public static bool Prefix(SpawnerScript __instance, ref int[] s)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, s));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(PlanetRegistry.Singleton, ref s[0]);
     return(true);
 }
 public static bool Prefix(ItemStandScript __instance, ref int[] p)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, p));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(__instance.isChipStand ? (Registry)ChipRegistry.Singleton : ItemRegistry.Singleton, ref p[0]);
     return(true);
 }
 public static bool Prefix(PortalAppearance __instance, ref int b, int h, int num)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, b, h, num));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(PlanetRegistry.Singleton, ref b);
     return(true);
 }
示例#8
0
 public static bool Prefix(Chunk __instance, ref int a)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, a));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(null /* WorldRegistry */, ref a);
     return(true);
 }
示例#9
0
 public static bool Prefix(ItemScript __instance, ref int id)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, id));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ChipRegistry.GetSingleton(), ref id);
     return(true);
 }
 public static bool Prefix(DroidManager __instance, ref int[] d)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, d));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref d[0]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref d[1]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref d[2]);
     return(true);
 }
示例#11
0
 public static void Prefix(GameScript __instance)
 {
     InstanceTracker.GameScript = __instance;
     GadgetCore.GenerateSpriteSheet();
     GadgetUtils.SafeCopyTexture(__instance.TileManager.GetComponent <ChunkWorld>().Texture, 0, 0, 0, 0, 128, 128, GadgetCoreAPI.spriteSheet, 0, 0, 0, 0);
     __instance.TileManager.GetComponent <ChunkWorld>().Texture = GadgetCoreAPI.spriteSheet;
     __instance.WallManager.GetComponent <ChunkWorld>().Texture = GadgetCoreAPI.spriteSheet;
     foreach (GadgetModInfo mod in GadgetMods.ListAllModInfos())
     {
         __instance.gameObject.AddComponent <GadgetModHookScript>().Mod = mod;
     }
 }
 public static bool Prefix(ChunkWorld __instance, ref int[] gg)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, gg));
         return(false);
     }
     for (int i = 0; i < gg.Length; i++)
     {
         GadgetNetwork.ConvertIDToLocal(TileRegistry.Singleton, ref gg[i]);
     }
     return(true);
 }
 public static bool Prefix(GameScript __instance, ref int[] st, Vector3 pos)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, st, pos));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref st[0]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref st[5]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref st[6]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref st[7]);
     return(true);
 }
示例#14
0
 public static bool Prefix(SpawnerScript __instance, ref int[] s)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, s));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(null /* WorldRegistry */, ref s[0]);
     for (int i = 1; i < s.Length; i++)
     {
         GadgetNetwork.ConvertIDToLocal(TileRegistry.GetSingleton(), ref s[i]);
     }
     return(true);
 }
 public static bool Prefix(PlayerAppearance __instance, ref int[] ei, int a, bool dead)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, ei, a, dead));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref ei[0]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref ei[1]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref ei[2]);
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.Singleton, ref ei[3]);
     GadgetNetwork.ConvertIDToLocal(null /* RaceRegistry */, ref ei[4]);
     GadgetNetwork.ConvertIDToLocal(null /* UniformRegistry */, ref ei[6]);
     GadgetNetwork.ConvertIDToLocal(null /* AugmentRegistry */, ref ei[7]);
     return(true);
 }
示例#16
0
        public static bool Prefix(NetworkView __instance, string name, RPCMode mode, ref object[] args)
        {
            if (Assembly.GetCallingAssembly().Equals(typeof(GameScript).Assembly))
            {
                switch (name)
                {
                case "Set":
                    if (args.Length == 3)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref args[0]);
                        }
                    }
                    else if (args.Length == 1)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length == 2)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            ItemStandScript itemStandScript = __instance.GetComponent <ItemStandScript>();
                            if (itemStandScript == null || !itemStandScript.isChipStand)
                            {
                                GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[0]);
                            }
                            else
                            {
                                GadgetNetwork.ConvertIDToHost(ChipRegistry.Singleton, ref (args[0] as int[])[0]);
                            }
                        }
                        else if (args[0] is Package2)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref (args[0] as Package2).id);
                        }
                    }
                    break;

                case "UA":
                    if (args.Length == 3)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length == 8)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[0]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[1]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[2]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[3]);
                            GadgetNetwork.ConvertIDToHost(null /* RaceRegistry */, ref (args[0] as int[])[4]);
                            GadgetNetwork.ConvertIDToHost(null /* UniformRegistry */, ref (args[0] as int[])[6]);
                            GadgetNetwork.ConvertIDToHost(null /* AugmentRegistry */, ref (args[0] as int[])[7]);
                        }
                    }
                    else if (args.Length == 1)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length == 3)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[0]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[1]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[2]);
                        }
                    }
                    break;

                case "ShootProjectile":
                    if (args.Length == 3)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[0]);
                        }
                    }
                    break;

                case "CreateWorld":
                    if (args.Length == 1)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length > 1)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref (args[0] as int[])[0]);
                            for (int i = 1; i < (args[0] as int[]).Length; i++)
                            {
                                GadgetNetwork.ConvertIDToHost(TileRegistry.Singleton, ref (args[0] as int[])[i]);
                            }
                        }
                    }
                    break;

                case "CreateTown":
                    if (args.Length == 1)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length == 2)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref (args[0] as int[])[0]);
                        }
                    }
                    break;

                case "SpawnProjectile":
                    if (args.Length == 4)
                    {
                        if (args[1] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[1]);
                        }
                    }
                    break;

                case "SetNetworked":
                    if (args.Length == 3)
                    {
                        if (args[1] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[1]);
                        }
                    }
                    break;

                case "SetName":
                    if (args.Length == 1)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref args[0]);
                        }
                    }
                    break;

                case "Staff":
                    if (args.Length == 3)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[0]);
                        }
                    }
                    break;

                case "ShootSpecial":
                    if (args.Length == 3)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[0]);
                        }
                    }
                    break;

                case "ShootProjectile2":
                    if (args.Length == 4)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[0]);
                        }
                    }
                    break;

                case "NetworkedProjectile":
                    if (args.Length == 4)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton /* ProjectileRegistry */, ref args[0]);
                        }
                    }
                    break;

                case "Init":
                    if (args.Length == 1)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length >= 11)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[0]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[5]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[6]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[7]);
                        }
                    }
                    break;

                case "Chip":
                    if (args.Length == 1)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ChipRegistry.Singleton, ref args[0]);
                        }
                    }
                    break;

                case "SpawnItem":
                    if (args.Length == 2)
                    {
                        if (args[0] is int[] && (args[0] as int[]).Length >= 11)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[0]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[5]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[6]);
                            GadgetNetwork.ConvertIDToHost(ItemRegistry.Singleton, ref (args[0] as int[])[7]);
                        }
                    }
                    break;

                case "ChangePortal":
                    if (args.Length == 2)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref args[0]);
                        }
                    }
                    break;

                case "ChangePortal2":
                    if (args.Length == 2)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref args[0]);
                        }
                    }
                    break;

                case "RefreshWall":
                    if (args.Length == 1)
                    {
                        if (args[0] is int[] arr)
                        {
                            for (int i = 0; i < arr.Length; i++)
                            {
                                if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                                {
                                    InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                    return(false);
                                }
                                GadgetNetwork.ConvertIDToHost(TileRegistry.Singleton, ref arr[i]);
                            }
                        }
                    }
                    break;

                case "RefreshShip":
                    if (args.Length == 2)
                    {
                        if (args[0] is int[] arr1 && args[1] is int[] arr2)
                        {
                            for (int i = 0; i < arr1.Length; i++)
                            {
                                if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                                {
                                    InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                    return(false);
                                }
                                GadgetNetwork.ConvertIDToHost(TileRegistry.Singleton, ref arr1[i]);
                            }
                            for (int i = 0; i < (arr2 as int[]).Length; i++)
                            {
                                if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                                {
                                    InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                    return(false);
                                }
                                GadgetNetwork.ConvertIDToHost(TileRegistry.Singleton, ref arr2[i]);
                            }
                        }
                    }
                    break;

                case "SetMaterial":
                    if (args.Length == 1)
                    {
                        if (args[0] is int)
                        {
                            if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
                            {
                                InstanceTracker.GameScript.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, name, mode, args));
                                return(false);
                            }
                            GadgetNetwork.ConvertIDToHost(PlanetRegistry.Singleton, ref args[0]);
                        }
                    }
                    break;
                }
            }
            return(true);
        }