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 03a58378..fa8d9bd1 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 c0625d2e..35d0b5b8 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 24faaebe..48a04e15 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 1706a7ce..652a730c 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 de113714..e80ac108 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();