public static bool Prefix(ChunkWorld __instance, ref int[] gg, ref int[] ggs) { if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout) { __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, gg, ggs)); return(false); } for (int i = 0; i < gg.Length; i++) { GadgetNetwork.ConvertIDToLocal(TileRegistry.GetSingleton(), ref gg[i]); } for (int i = 0; i < ggs.Length; i++) { GadgetNetwork.ConvertIDToLocal(TileRegistry.GetSingleton(), ref ggs[i]); } return(true); }
public static void Postfix(ChunkWorld __instance) { float spriteMultiple = 1 / Mathf.Sqrt(GadgetCoreAPI.spriteSheetSize); __instance.GetComponent <Renderer>().material.mainTextureScale = new Vector2(spriteMultiple, spriteMultiple); }
public static void Postfix(GameScript __instance, ref RaycastHit ___hit, ref int ___craftType, ref int ___slotID, ref bool ___shifting, ref Item[] ___inventory, ref Item[] ___craft, ref Item[] ___modSlot, ref int ___curBlockSlot, ref ChunkWorld ___chunkWorld, ref ChunkWorld ___chunkWorldWall, ref Item __state) { if (!GameScript.pausing && !GameScript.inventoryOpen && GameScript.buildMode && Input.GetMouseButtonDown(0) && ___inventory[___curBlockSlot].q > 0 && ItemRegistry.Singleton.HasEntry(___inventory[___curBlockSlot].id)) { int num4 = (int)__instance.hoverBuild.transform.position.x; int num5 = (int)__instance.hoverBuild.transform.position.y; int num6 = (num4 + 62) / 4; int num7 = (num5 + 62) / 4; if (num6 < 64 && num6 >= 0 && num7 < 64 && num7 >= 0) { ItemInfo item = ItemRegistry.Singleton.GetEntry(___inventory[___curBlockSlot].id); if (item.Tile != null && item.Tile.TryPlaceTile()) { if (item.Tile.Type == TileType.WALL) { if (___chunkWorldWall.grid[num6, num7] == 0) { int[] value = new int[] { num4, num5, GameScript.curBlockID }; __instance.WallManager.SendMessage("PlaceTile", value); __instance.hoverBuild.SendMessage("Refresh"); __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/emblem"), Menuu.soundLevel / 10f); ___inventory[___curBlockSlot].q--; RefreshSlot.Invoke(__instance, new object[] { ___curBlockSlot }); if (___inventory[___curBlockSlot].q <= 0 && GameScript.buildMode) { __instance.ExitBuildMode(); __instance.hoverSprite.GetComponent <Renderer>().material = (Material)Resources.Load("mat/trans"); GameScript.curBlockID = 0; } } } else if (item.Tile.Type == TileType.SOLID) { if (___chunkWorld.gridSpecial[num6, num7] == 0 && ___chunkWorld.grid[num6, num7] == 0) { int[] value3 = new int[] { num4, num5, GameScript.curBlockID }; __instance.TileManager.SendMessage("PlaceTile", value3); __instance.hoverBuild.SendMessage("Refresh"); __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/emblem"), Menuu.soundLevel / 10f); ___inventory[___curBlockSlot].q--; RefreshSlot.Invoke(__instance, new object[] { ___curBlockSlot }); if (___inventory[___curBlockSlot].q <= 0 && GameScript.buildMode) { __instance.ExitBuildMode(); __instance.hoverSprite.GetComponent <Renderer>().material = (Material)Resources.Load("mat/trans"); GameScript.curBlockID = 0; } } } else { if (___chunkWorld.gridSpecial[num6, num7] == 0 && ___chunkWorld.grid[num6, num7] == 0) { if (GameScript.curBlockID == 2107 && __instance.gatherer) { __instance.Error(11); } else { int[] value2 = new int[] { num4, num5, GameScript.curBlockID }; __instance.TileManager.SendMessage("PlaceTileSpecial", value2); __instance.hoverBuild.SendMessage("Refresh"); __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/emblem"), Menuu.soundLevel / 10f); ___inventory[___curBlockSlot].q--; RefreshSlot.Invoke(__instance, new object[] { ___curBlockSlot }); if (___inventory[___curBlockSlot].q <= 0 && GameScript.buildMode) { __instance.ExitBuildMode(); __instance.hoverSprite.GetComponent <Renderer>().material = (Material)Resources.Load("mat/trans"); GameScript.curBlockID = 0; } } } } } } } else if (MenuScript.player && !GameScript.pausing) { if (Input.GetMouseButtonDown(0) && GameScript.inventoryOpen && Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out ___hit, 7f)) { if (___hit.transform.gameObject.layer == 16) { if (___hit.transform.gameObject.tag == "craft") { if (MenuRegistry.Singleton[___craftType] is CraftMenuInfo craftMenu) { ___slotID = int.Parse(___hit.transform.gameObject.name); if (__state.id != 0) { Item holdingItem = __state; Item[] craftItems = ___craft; int slotID = ___slotID; if (craftMenu.SlotValidators.Any(x => x(holdingItem, craftItems, slotID))) { if (___craft[___slotID].id == __state.id) { __instance.InvokeMethod("CombineItemCraft", ___slotID); } else if (___craft[___slotID].id == 0) { __instance.InvokeMethod("PlaceItemCraft", ___slotID); } } } else if (___craft[___slotID].id != 0) { if (!___shifting) { __instance.InvokeMethod("SelectItemCraft", ___slotID); } else if (___shifting && __instance.menuCraft.activeSelf) { __instance.StartCoroutine(__instance.InvokeMethod <IEnumerator>("ShiftClickCraft", ___slotID)); } } } else if (___craftType == 0) { ___slotID = int.Parse(___hit.transform.gameObject.name); if (__state.id != 0 && ___craft[___slotID].id != __state.id) { if ((__state.id <= 100 || __state.id >= 200) && __instance.InvokeMethod <bool>("CanPlaceCraft", __state.id)) { ItemType?itemType = ItemRegistry.GetItem(__state.id)?.Type; if (itemType.HasValue && (itemType.Value & (ItemType.EMBLEM | ItemType.EQUIPABLE)) == ItemType.EMBLEM) { if (___craft[___slotID].id == 0) { __instance.InvokeMethod("PlaceItemCraft", ___slotID); } else { __instance.InvokeMethod("SwapItemCraft", ___slotID); } } } } } else if (___craftType == 1) { ___slotID = int.Parse(___hit.transform.gameObject.name); if (__state.id != 0 && ___craft[___slotID].id != __state.id) { if ((__state.id <= 10 || __state.id >= 40) && __instance.InvokeMethod <bool>("CanPlaceCraft", __state.id)) { ItemType?itemType = ItemRegistry.GetItem(__state.id)?.Type; if (itemType.HasValue && (itemType.Value & (ItemType.EMBLEM | ItemType.EQUIPABLE)) == ItemType.LOOT && (itemType.Value & ItemType.ORGANIC) == ItemType.ORGANIC) { if (___craft[___slotID].id == 0) { __instance.InvokeMethod("PlaceItemCraft", ___slotID); } else { __instance.InvokeMethod("SwapItemCraft", ___slotID); } } } } } else if (___craftType == 2) { ___slotID = int.Parse(___hit.transform.gameObject.name); if (__state.id != 0) { if (___slotID == 0 && ___craft[___slotID].id != __state.id) { if (___craft[0].id == 0 && (__state.id < 1000 || __state.id >= 1006) && (__state.id < 450 || __state.id >= 456) && (__state.id < 500 || __state.id >= 506) && (__state.id < 600 || __state.id >= 612) && (__state.id < 550 || __state.id >= 562) && (__state.id < 350 || __state.id >= 362) && (__state.id < 400 || __state.id >= 412) && (__state.id < 300 || __state.id >= 312) && (__state.id < 700 || __state.id >= 712) && (__state.id < 800 || __state.id >= 812)) { Item holdingItem = __state; if (GadgetCoreAPI.ultimateForgeRecipes.Any(x => x.Key.Item1 == holdingItem.id)) { if (__instance.InvokeMethod <int>("GetItemLevel", holdingItem.exp) >= 10) { __instance.InvokeMethod("PlaceItemCraft", ___slotID); } else { __instance.InvokeMethod("Error", 12); } } } } else if (___slotID == 2) { if (___craft[2].id == 0 && (__state.id < 89 || __state.id >= 92)) { Item holdingItem = __state; if (GadgetCoreAPI.ultimateForgeRecipes.Any(x => x.Key.Item2 == holdingItem.id)) { __instance.InvokeMethod("PlaceItemCraft", ___slotID); } } } } } else if (___craftType == 3) { ___slotID = int.Parse(___hit.transform.gameObject.name); if (__state.id != 0 && ___craft[___slotID].id != __state.id) { if ((__state.id <= 103 || __state.id >= 107) && (__state.id <= 113 || __state.id >= 117) && (__state.id <= 123 || __state.id >= 127) && (__state.id <= 133 || __state.id >= 137) && __instance.InvokeMethod <bool>("CanPlaceCraft2", __state.id)) { Item holdingItem = __state; if (GadgetCoreAPI.creationMachineRecipes.Any(x => x.Key == holdingItem.id)) { if (___craft[___slotID].id == 0) { __instance.InvokeMethod("PlaceItemCraft", ___slotID); } else { __instance.InvokeMethod("SwapItemCraft", ___slotID); } } } } } } else if (___hit.transform.gameObject.tag == "planet") { ___slotID = int.Parse(___hit.transform.gameObject.name); if (___slotID >= 14) { while (___slotID >= 14) { ___slotID -= 14; PlanetRegistry.PlanetSelectorPage++; } PlanetRegistry.UpdatePlanetSelector(); } int planetIndex = (PlanetRegistry.PlanetSelectorPage - 2) * 14 + ___slotID; if (planetIndex >= 0 && planetIndex < PlanetRegistry.selectorPlanets.Length && PlanetRegistry.selectorPlanets[planetIndex] is PlanetInfo planet) { if (planet.PortalUses > 0 || planet.PortalUses == -1) { InstanceTracker.GameScript.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/confirm"), Menuu.soundLevel / 10f); InstanceTracker.GameScript.planetSelector.transform.position = new Vector3(InstanceTracker.GameScript.planetGuard[___slotID].transform.position.x, InstanceTracker.GameScript.planetGuard[___slotID].transform.position.y, InstanceTracker.GameScript.planetSelector.transform.position.z); GameScript.curPlanet = ___slotID; InstanceTracker.GameScript.planetObj.GetComponent <Renderer>().material = (Material)Resources.Load("mat/planet" + planet.ID); InstanceTracker.GameScript.planetObj.GetComponent <Animation>().Play(); InstanceTracker.GameScript.txtPlanetName[0].text = planet.Name; InstanceTracker.GameScript.txtPlanetName[1].text = InstanceTracker.GameScript.txtPlanetName[0].text; InstanceTracker.GameScript.txtHostile[0].text = "Hostile Lv." + InstanceTracker.GameScript.InvokeMethod("GetPlanetHostile", planet.ID); InstanceTracker.GameScript.txtHostile[1].text = InstanceTracker.GameScript.txtHostile[0].text; if (planet.PortalUses > 0) { InstanceTracker.GameScript.txtPortalUses[0].text = "Portal Uses: " + planet.PortalUses; InstanceTracker.GameScript.txtPortalUses[1].text = InstanceTracker.GameScript.txtPortalUses[0].text; } else if (planet.PortalUses == -1) { InstanceTracker.GameScript.txtPortalUses[0].text = "Portal Uses: Infinite"; InstanceTracker.GameScript.txtPortalUses[1].text = InstanceTracker.GameScript.txtPortalUses[0].text; } } } } else if (___hit.transform.gameObject.tag == "mod") { ___slotID = int.Parse(___hit.transform.gameObject.name); Item holdingItem = __state; if (holdingItem.id != 0) { if ((holdingItem.id < 300 || holdingItem.id >= 1000) && (ItemRegistry.GetItem(holdingItem.id).Type & ItemType.MODABLE) == ItemType.MODABLE) { if (___modSlot[___slotID].id == 0) { __instance.PlaceItemMod(___slotID); } else { __instance.SwapItemMod(___slotID); } } } else if ((___modSlot[___slotID].id < 300 || ___modSlot[___slotID].id >= 1000) && (ItemRegistry.GetItem(___modSlot[___slotID].id).Type & ItemType.MODABLE) == ItemType.MODABLE) { __instance.SelectItemMod(___slotID); } } } else if (___hit.transform.gameObject.layer != 17) { switch (___hit.transform.gameObject.name) { case "bPlanetPageBack": __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/confirm"), Menuu.soundLevel / 10f); if (PlanetRegistry.PlanetSelectorPage <= 1) { PlanetRegistry.PlanetSelectorPage = PlanetRegistry.PlanetSelectorPages; } else { PlanetRegistry.PlanetSelectorPage--; } PlanetRegistry.UpdatePlanetSelector(); break; case "bPlanetPageForward": __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/confirm"), Menuu.soundLevel / 10f); if (PlanetRegistry.PlanetSelectorPage >= PlanetRegistry.PlanetSelectorPages) { PlanetRegistry.PlanetSelectorPage = 1; } else { PlanetRegistry.PlanetSelectorPage++; } PlanetRegistry.UpdatePlanetSelector(); break; } } } else if (Input.GetMouseButtonDown(1) && GameScript.inventoryOpen && Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out ___hit, 7f)) { if (___hit.transform.gameObject.layer == 16) { if (___hit.transform.gameObject.tag == "craft") { if (MenuRegistry.Singleton.GetEntry(___craftType) is CraftMenuInfo craftMenu) { ___slotID = int.Parse(___hit.transform.gameObject.name); if (__state.id != 0) { Item holdingItem = __state; Item[] craftItems = ___craft; int slotID = ___slotID; if (craftMenu.SlotValidators.Any(x => x(holdingItem, craftItems, slotID))) { if (___craft[___slotID].id == 0 || (GadgetCoreAPI.CanItemsStack(___craft[___slotID], __state) && ___craft[___slotID].q < 9999)) { __instance.InvokeMethod("PlaceOneItemCraft", ___slotID); } else { __instance.InvokeMethod("SwapItemCraft", ___slotID); } } } } } else if (___hit.transform.gameObject.tag == "mod") { ___slotID = int.Parse(___hit.transform.gameObject.name); Item holdingItem = __state; if (holdingItem.id != 0) { if ((holdingItem.id < 300 || holdingItem.id >= 1000) && (ItemRegistry.GetItem(holdingItem.id).Type & ItemType.MODABLE) == ItemType.MODABLE) { if (___modSlot[___slotID].id == 0) { __instance.PlaceItemMod(___slotID); } else { __instance.SwapItemMod(___slotID); } } } else if ((___modSlot[___slotID].id < 300 || ___modSlot[___slotID].id >= 1000) && (ItemRegistry.GetItem(holdingItem.id).Type & ItemType.MODABLE) == ItemType.MODABLE) { __instance.SelectItemMod(___slotID); } } } } } }
public static void Postfix(GameScript __instance, ref Item[] ___inventory, ref int ___curBlockSlot, ref ChunkWorld ___chunkWorld, ref ChunkWorld ___chunkWorldWall) { if (!GameScript.pausing && !GameScript.inventoryOpen && GameScript.buildMode && Input.GetMouseButtonDown(0) && ___inventory[___curBlockSlot].q > 0 && ItemRegistry.GetSingleton().HasEntry(___inventory[___curBlockSlot].id)) { int num4 = (int)__instance.hoverBuild.transform.position.x; int num5 = (int)__instance.hoverBuild.transform.position.y; int num6 = (num4 + 62) / 4; int num7 = (num5 + 62) / 4; if (num6 < 64 && num6 >= 0 && num7 < 64 && num7 >= 0) { ItemInfo item = ItemRegistry.GetSingleton().GetEntry(___inventory[___curBlockSlot].id); if (item.Tile != null && item.Tile.TryPlaceTile()) { if (item.Tile.Type == TileType.WALL) { if (___chunkWorldWall.grid[num6, num7] == 0) { int[] value = new int[] { num4, num5, GameScript.curBlockID }; __instance.WallManager.SendMessage("PlaceTile", value); __instance.hoverBuild.SendMessage("Refresh"); __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/emblem"), Menuu.soundLevel / 10f); ___inventory[___curBlockSlot].q--; RefreshSlot.Invoke(__instance, new object[] { ___curBlockSlot }); if (___inventory[___curBlockSlot].q <= 0 && GameScript.buildMode) { __instance.ExitBuildMode(); __instance.hoverSprite.GetComponent <Renderer>().material = (Material)Resources.Load("mat/trans"); GameScript.curBlockID = 0; } } } else if (item.Tile.Type == TileType.SOLID) { if (___chunkWorld.gridSpecial[num6, num7] == 0 && ___chunkWorld.grid[num6, num7] == 0) { int[] value3 = new int[] { num4, num5, GameScript.curBlockID }; __instance.TileManager.SendMessage("PlaceTile", value3); __instance.hoverBuild.SendMessage("Refresh"); __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/emblem"), Menuu.soundLevel / 10f); ___inventory[___curBlockSlot].q--; RefreshSlot.Invoke(__instance, new object[] { ___curBlockSlot }); if (___inventory[___curBlockSlot].q <= 0 && GameScript.buildMode) { __instance.ExitBuildMode(); __instance.hoverSprite.GetComponent <Renderer>().material = (Material)Resources.Load("mat/trans"); GameScript.curBlockID = 0; } } } else { if (___chunkWorld.gridSpecial[num6, num7] == 0 && ___chunkWorld.grid[num6, num7] == 0) { if (GameScript.curBlockID == 2107 && __instance.gatherer) { __instance.Error(11); } else { int[] value2 = new int[] { num4, num5, GameScript.curBlockID }; __instance.TileManager.SendMessage("PlaceTileSpecial", value2); __instance.hoverBuild.SendMessage("Refresh"); __instance.GetComponent <AudioSource>().PlayOneShot((AudioClip)Resources.Load("Au/emblem"), Menuu.soundLevel / 10f); ___inventory[___curBlockSlot].q--; RefreshSlot.Invoke(__instance, new object[] { ___curBlockSlot }); if (___inventory[___curBlockSlot].q <= 0 && GameScript.buildMode) { __instance.ExitBuildMode(); __instance.hoverSprite.GetComponent <Renderer>().material = (Material)Resources.Load("mat/trans"); GameScript.curBlockID = 0; } } } } } } } }
public static bool Prefix(ChunkWorld __instance, byte brick, Vector3 corner, Vector3 up, Vector3 right, bool reversed, List <Vector3> verts, List <Vector2> uvs, List <int> tris, int id, int face) { if (TileRegistry.GetSingleton().HasEntry(id)) { TileInfo tile = TileRegistry.GetSingleton().GetEntry(id); int count = verts.Count; if (tile.Type == TileType.SOLID || tile.Type == TileType.WALL) { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); } else { if (face == 4) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + up); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + up + right); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + right); } else if (face == 0 || face == 1) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up + right); verts.Add(corner + right); } else if (face != 5) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right + new Vector3(0f, 0f, 0.5f)); } else { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); } } uvs.Add(new Vector2(tile.Sprite.coords.x, tile.Sprite.coords.y)); uvs.Add(new Vector2(tile.Sprite.coords.x, tile.Sprite.coords.y + 1)); uvs.Add(new Vector2(tile.Sprite.coords.x + 1, tile.Sprite.coords.y + 1)); uvs.Add(new Vector2(tile.Sprite.coords.x + 1, tile.Sprite.coords.y)); if (reversed) { tris.Add(count); tris.Add(count + 1); tris.Add(count + 2); tris.Add(count + 2); tris.Add(count + 3); tris.Add(count); } else { tris.Add(count + 1); tris.Add(count); tris.Add(count + 2); tris.Add(count + 3); tris.Add(count + 2); tris.Add(count); } return(false); } return(true); }
public static bool Prefix(ChunkWorld __instance, byte brick, Vector3 corner, Vector3 up, Vector3 right, bool reversed, List <Vector3> verts, List <Vector2> uvs, List <int> tris, int id, int face) { if (TileRegistry.Singleton.HasEntry(id)) { TileInfo tile = TileRegistry.Singleton.GetEntry(id); if (tile.Type == TileType.SOLID || tile.Type == TileType.WALL) { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); } else { if (face == 4) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + up); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + up + right); verts.Add(corner + new Vector3(0f, 0f, 0.5f) + right); } else if (face == 0 || face == 1) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up + right); verts.Add(corner + right); } else if (face != 5) { verts.Add(corner + new Vector3(0f, 0f, 0.5f)); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right + new Vector3(0f, 0f, 0.5f)); } else { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); } } if (tile.Sprite != null) { uvs.Add(new Vector2(tile.Sprite.coords.x, tile.Sprite.coords.y)); uvs.Add(new Vector2(tile.Sprite.coords.x, tile.Sprite.coords.y + 1)); uvs.Add(new Vector2(tile.Sprite.coords.x + 1, tile.Sprite.coords.y + 1)); uvs.Add(new Vector2(tile.Sprite.coords.x + 1, tile.Sprite.coords.y)); } else { uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x, GadgetCoreAPI.MissingTexSprite.coords.y)); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x, GadgetCoreAPI.MissingTexSprite.coords.y + 1)); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x + 1, GadgetCoreAPI.MissingTexSprite.coords.y + 1)); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x + 1, GadgetCoreAPI.MissingTexSprite.coords.y)); } if (reversed) { tris.Add(verts.Count); tris.Add(verts.Count + 1); tris.Add(verts.Count + 2); tris.Add(verts.Count + 2); tris.Add(verts.Count + 3); tris.Add(verts.Count); } else { tris.Add(verts.Count + 1); tris.Add(verts.Count); tris.Add(verts.Count + 2); tris.Add(verts.Count + 3); tris.Add(verts.Count + 2); tris.Add(verts.Count); } return(false); } if (id == 2000 || id == 2001 || id == 2002 || id == 2200 || id == 2300) { return(true); } else { verts.Add(corner); verts.Add(corner + up); verts.Add(corner + up + right); verts.Add(corner + right); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x, GadgetCoreAPI.MissingTexSprite.coords.y)); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x, GadgetCoreAPI.MissingTexSprite.coords.y + 1)); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x + 1, GadgetCoreAPI.MissingTexSprite.coords.y + 1)); uvs.Add(new Vector2(GadgetCoreAPI.MissingTexSprite.coords.x + 1, GadgetCoreAPI.MissingTexSprite.coords.y)); if (reversed) { tris.Add(verts.Count); tris.Add(verts.Count + 1); tris.Add(verts.Count + 2); tris.Add(verts.Count + 2); tris.Add(verts.Count + 3); tris.Add(verts.Count); } else { tris.Add(verts.Count + 1); tris.Add(verts.Count); tris.Add(verts.Count + 2); tris.Add(verts.Count + 3); tris.Add(verts.Count + 2); tris.Add(verts.Count); } return(false); } }
private static IEnumerator WaitAndTryAgain(ChunkWorld __instance) { yield return(new WaitUntil(() => GadgetNetwork.MatrixReady || GadgetNetwork.GetTimeSinceConnect() > GadgetNetwork.MatrixTimeout)); OnServerInitialized.Invoke(__instance, new object[] { }); }