From 9a6d126ae14dc3b615085afc225f086976fb6da3 Mon Sep 17 00:00:00 2001 From: Lord Cambion Date: Mon, 23 Mar 2026 03:15:02 +0100 Subject: [PATCH] Stained Glass Survival Integration & Crafting UI Fix (#1195) * Added Stained Glass i found out that stained glass was not accessible in survival, then i saw they disabled it in the code * Grouping glass correctly in crafting table I removed the #if/endif from the ClothDyeRecipes.cpp and added a different one in StructureRecipies.cpp also changed the Tile definition giving it the same setBaseItemTypeAndMaterial of stained glass to group it correctly inside the crafting table UI. also aincremented the Vertical Slot for crafting table to include many more craftings in the same group --- .../Common/UI/IUIScene_CraftingMenu.h | 6 ++-- Minecraft.World/ClothDyeRecipes.cpp | 28 +++++++++---------- Minecraft.World/Recipes.cpp | 1 + Minecraft.World/StructureRecipies.cpp | 22 +++++++++++++++ Minecraft.World/Tile.cpp | 7 ++++- 5 files changed, 46 insertions(+), 18 deletions(-) diff --git a/Minecraft.Client/Common/UI/IUIScene_CraftingMenu.h b/Minecraft.Client/Common/UI/IUIScene_CraftingMenu.h index 03a58378c..fa8d9bd16 100644 --- a/Minecraft.Client/Common/UI/IUIScene_CraftingMenu.h +++ b/Minecraft.Client/Common/UI/IUIScene_CraftingMenu.h @@ -20,9 +20,9 @@ protected: eGroupTab_Right }; - static const int m_iMaxHSlotC = 12; - static const int m_iMaxHCraftingSlotC = 10; - static const int m_iMaxVSlotC = 17; + static const int m_iMaxHSlotC = 40; + static const int m_iMaxHCraftingSlotC = 40; + static const int m_iMaxVSlotC = 99; static const int m_iMaxDisplayedVSlotC = 3; static const int m_iIngredients3x3SlotC = 9; static const int m_iIngredients2x2SlotC = 4; diff --git a/Minecraft.World/ClothDyeRecipes.cpp b/Minecraft.World/ClothDyeRecipes.cpp index c0625d2e1..35d0b5b84 100644 --- a/Minecraft.World/ClothDyeRecipes.cpp +++ b/Minecraft.World/ClothDyeRecipes.cpp @@ -21,20 +21,20 @@ void ClothDyeRecipes::addRecipes(Recipes *r) L'#', new ItemInstance(Tile::clayHardened), L'X', new ItemInstance(Item::dye_powder, 1, i),L'D'); -#if 0 - r->addShapedRecipy(new ItemInstance(Tile::stained_glass, 8, ColoredTile::getItemAuxValueForTileData(i)), // - L"sssczczg", - L"###", - L"#X#", - L"###", - L'#', new ItemInstance(Tile::glass), - L'X', new ItemInstance(Item::dye_powder, 1, i), L'D'); - r->addShapedRecipy(new ItemInstance(Tile::stained_glass_pane, 16, i), // - L"ssczg", - L"###", - L"###", - L'#', new ItemInstance(Tile::stained_glass, 1, i), L'D'); -#endif +//#if 0 +// r->addShapedRecipy(new ItemInstance(Tile::stained_glass, 8, ColoredTile::getItemAuxValueForTileData(i)), // +// L"sssczczg", +// L"###", +// L"#X#", +// L"###", +// L'#', new ItemInstance(Tile::glass), +// L'X', new ItemInstance(Item::dye_powder, 1, i), L'D'); +// r->addShapedRecipy(new ItemInstance(Tile::stained_glass_pane, 16, i), // +// L"ssczg", +// L"###", +// L"###", +// L'#', new ItemInstance(Tile::stained_glass, 1, i), L'D'); +//#endif } // some dye recipes diff --git a/Minecraft.World/Recipes.cpp b/Minecraft.World/Recipes.cpp index 24faaebec..48a04e15a 100644 --- a/Minecraft.World/Recipes.cpp +++ b/Minecraft.World/Recipes.cpp @@ -299,6 +299,7 @@ Recipes::Recipes() pClothDyeRecipes->addRecipes(this); + addShapedRecipy(new ItemInstance(Tile::snow, 1), // L"sscig", L"##", // diff --git a/Minecraft.World/StructureRecipies.cpp b/Minecraft.World/StructureRecipies.cpp index 1706a7ced..652a730cb 100644 --- a/Minecraft.World/StructureRecipies.cpp +++ b/Minecraft.World/StructureRecipies.cpp @@ -115,6 +115,28 @@ void StructureRecipies::addRecipes(Recipes *r) L'#', Tile::glass, L'D'); + + + + +// Stained Glass block + pane per color +for (int i = 0; i < 16; i++) +{ + r->addShapedRecipy(new ItemInstance(Tile::stained_glass, 8, ColoredTile::getItemAuxValueForTileData(i)), + L"sssczczg", + L"###", + L"#X#", + L"###", + L'#', new ItemInstance(Tile::glass), + L'X', new ItemInstance(Item::dye_powder, 1, i), + L'D'); + r->addShapedRecipy(new ItemInstance(Tile::stained_glass_pane, 16, ColoredTile::getItemAuxValueForTileData(i)), + L"ssczg", + L"###", + L"###", + L'#', new ItemInstance(Tile::stained_glass, 1, ColoredTile::getItemAuxValueForTileData(i)), + L'D'); +} r->addShapedRecipy(new ItemInstance(Tile::netherBrick, 1), // L"sscig", diff --git a/Minecraft.World/Tile.cpp b/Minecraft.World/Tile.cpp index de113714d..e80ac1081 100644 --- a/Minecraft.World/Tile.cpp +++ b/Minecraft.World/Tile.cpp @@ -371,7 +371,12 @@ void Tile::staticCtor() Tile::ironFence = (new ThinFenceTile(101, L"iron_bars", L"iron_bars", Material::metal, true)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_fence, Item::eMaterial_iron)->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_METAL)->setDescriptionId(IDS_TILE_IRON_FENCE)->setUseDescriptionId(IDS_DESC_IRON_FENCE); - Tile::thinGlass = (new ThinFenceTile(102, L"glass", L"glass_pane_top", Material::glass, false)) ->setDestroyTime(0.3f)->setSoundType(SOUND_GLASS)->setDescriptionId(IDS_TILE_THIN_GLASS)->setUseDescriptionId(IDS_DESC_THIN_GLASS); + Tile::thinGlass = (new ThinFenceTile(102, L"glass", L"glass_pane_top", Material::glass, false)) + ->setBaseItemTypeAndMaterial(Item::eBaseItemType_glass, Item::eMaterial_glass) + ->setDestroyTime(0.3f) + ->setSoundType(SOUND_GLASS) + ->setDescriptionId(IDS_TILE_THIN_GLASS) + ->setUseDescriptionId(IDS_DESC_THIN_GLASS); Tile::melon = (new MelonTile(103)) ->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setIconName(L"melon")->setDescriptionId(IDS_TILE_MELON)->setUseDescriptionId(IDS_DESC_MELON_BLOCK); Tile::pumpkinStem = (new StemTile(104, Tile::pumpkin)) ->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setIconName(L"pumpkin_stem")->setDescriptionId(IDS_TILE_PUMPKIN_STEM)->sendTileData(); Tile::melonStem = (new StemTile(105, Tile::melon)) ->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setIconName(L"melon_stem")->setDescriptionId(IDS_TILE_MELON_STEM)->sendTileData();