From 5295de161f4f532f140253a6d937fa3963f50337 Mon Sep 17 00:00:00 2001 From: Tranqlmao <110073921+Tranqlmao@users.noreply.github.com> Date: Wed, 18 Mar 2026 20:48:28 -0400 Subject: [PATCH] Prismarine Patch Added the rest of prismarine items and blocks. Added recipes for blocks (lantern excluded) Parity crafting and creative menu locations --- .../Common/Media/MediaWindows64.arc | Bin 28736031 -> 28736049 bytes .../Common/UI/IUIScene_CreativeMenu.cpp | 9 ++++-- Minecraft.Client/PreStitchedTextureMap.cpp | 2 ++ Minecraft.Client/Windows64Media/strings.h | 3 +- Minecraft.World/Item.cpp | 2 ++ Minecraft.World/Item.h | 3 +- Minecraft.World/Recipes.cpp | 28 ++++++++++++++++++ Minecraft.World/Tile.cpp | 7 ++++- Minecraft.World/Tile.h | 3 ++ 9 files changed, 51 insertions(+), 6 deletions(-) diff --git a/Minecraft.Client/Common/Media/MediaWindows64.arc b/Minecraft.Client/Common/Media/MediaWindows64.arc index ac5821f0c3a2a1ab13346bb9b87f2b238560e269..789e1e1b074f450eb70cf8a47a8b570860782f31 100644 GIT binary patch delta 4019 zcmZA3d3?-w9>?+TH?)p~43e14^_wgAQR0dOjjN70LV}Puevu(VjxjSKJ+whvMG^f} z9aY5HDkUh}t=5rhZP~CzmzL@-MOUibZdtUY?@y8$(LbKA$AjnKFVJz=EY z`p}?`9g;gFdS*=#BM-*Wd-_N@lg{cD%U~gH9~5Cj9BRJ9omZl|^M^W$OS>i2&&|qd zL7@h-tfj67vo2eR`^h4BNQqiEsdK}E*|rLD8MIxN36VWaXne!|6K0>jgprJgBcq*O zwQeh8u82a!I8^MX5$x_*SGOJ|9NsNLaD}Nmc!{sG@dkyrN=!X#2KL- z=9o3gm9Kgo4a+|~=6DTeoE59E;syCFnsFQLtF#p6u0rggIO0(*5qjJ$tsLX0eyN{bX zU9_v8Tlc*ESC@C(DMZq5LYwLEdY#2nJ-tiwoh6Mon0MbnXRH?aKHauj0-TRixGhqC zOKG+!e31nCWQ1pOb+bAMMQEsWO7OSC20B=6ACXp0~8O`W;Eb*>$3*Rwn}M z4ro|w;o%RcJf?m4cC2++wC15kD=m7eh<3%8WFI<-TIpttBJ-(rtWADNNwIc0hQ`Dy z+37+ID63!Acdo^O)xthaiXe}xQ1uizJc-^iudFKlM2Pm|L{OHq$l-4IrIA&OO+qyJ ztl@7Po|CMq_>O8~!;IKiQz_ck9Z~nX`ks`mTDgN{T$pYrjy@%Vvr0+|vz#uEf7$gf zP{%lJ_7EX@o)8+}u>bJg1}#QTi4fmNWv5hL@!sTrGFixLx z7dOCyJ-XF=e6jp8`mSP6jt*m1(XP>$e~~>KdXOgGj2Eb5yu~yJ6O$jA==&_>-dP`z zD_)T|r~-AAve=abkn?$#Q7nK5(1zJG=<0D zacBn3p#`*rKnQ|X&>Dh418tx!w1W@`g)nFjS_lUn=)nL+Fo6PQuz(e8V222ZgeZuH z7>I>9h=&B=eLn#mpd%zfC+G}apeuBPWathlkh(u4u}46VOj^-CrAL8`nqQvM1A6W+ zPwCZWK^skm+vzD%-Ogf%IkN!&RheH=-3y+CH0TX|pfB`;{_qqGfPpXw217awfuS%A zhC>F7fRT_1SuhGl!x+ehu`mvDAQ#5N1egeuK!rS*47@i7Oo6FT08W?&)1eTGpcqQP z1v9`69`Hgb%!FA`22aB?@GLwBv*CGo0m@+x%!PUIBD@4I!+dxJ7QjMS1h2wkSOQC- z0+zvRK=3*&hc{patb|pt8s3C8@D{9vb+8^PVFPT0O|TiZz*cx0-hplKE^LP#@E+`h zT~GzPVGrzu_hBFGhrhrF@K^W{4!}q7F&u0i>EFAnuR#e+K zc1{E*k`u*==EQJfIdPnLP68*9^8}{@rz0nc(}~lW(}mNO(~XnN>CQ>vq;h(2dUASk zp5&x)dUN`4`f~bl`g5M*4B!mp4B`ytq;rOFhH{2+hI2AFBRC^DnVc-nD9&ik7)~~4 zEN2`ihm*@0&zZoP$eF}ZIeDDPoP3UhGlesiQ^0X@rg5fo3OPlbVonLi#hJlzb37a` zr<603GmBHkd7ASK=UL8koY|b`IWKU^IdeF3IrBI#a$e%R%$d)5g|mROkh6&MDrYfg z31=y%g0qbC8izQqbCz@7;H==RR%$z}d*z#M#W*!r97s loAVB58|PilcFqpYdz_t|U7RY;Zq6RgUU?9|S#s&VKLF?=Oo#vg delta 4001 zcmZA3d3=o59>?)>VkcyfL}qW;WC@9Xcbd}5RZ?E&|VIEwxb}+WiQC??Z_`|*`#c4+TbS?qBF|t)Iw*} zbP?i3f(Yv6vX@S3R=!}mWeT}1Dsxa=~f2C>glM? zAe+z)bOrsUQ{*1f>XoM73DJ4D2YZFQ|Md0B8~JCJxYo}BQq$`pwVv?qSXjdueZbFv5#_ea25Hl zA>&qc8f#E+7MFgeT^IZk@JiG5|hn!nVc}ke}mJp443YBlzzp0^d@w7qF%Zc={Vvwil zrlQsc3$f@n&n@)eM6d4LuwGB8t}!fN`g4jgs!fNU2+{1N2=UKLb>}+0zPmZ>hsWeF zD!MC}^o^+NpXA^2@csvAgV89f&qgexY!aL4HA)QAaYB`9A6I(q{teiFZAi&xEpF5hbUziDb;#3mHk$%+9+BD-E-z5BB?4b$ zj>QyE?Pr>AvB<@=&tk4#@C^IP5?WensZaMUwW?*{zTOiG|5^3gjnBT>kxbSoxs!TY zt#TQ;t&stfp3@p@bW&rybE~o6@-0=|jpL^?IDve9(08{++RoBTt6rWWz0D*)r*<~8 zvZeI723K6mfAJ%q&7f&Ei@Z!*Y~}#h3p#DH$|(BL7AcogXn2&oO3C5Y;R}UGju0Wf zCHi--xS^cg2k}aT{&m>5rJOt1Z<1bwzJ9d-aXC$Q>14P?#?#$!t4yZA2nE}ZjnK=! z)B`Q1oCt$FLvtd`GLUvfSY!vf5MiiajLRAzs(Z#b^GknTzJ6YnUPh?p1X4%pWLIht zsmOUWAW{h_5hAFqsL3j?m4zbjzDCq4J)nH8 zc_+5hw5SH^HCXF}sKY}QR+`@>gNmaJvJriWs^~$KBKuLDXp8)mnnYV=XBrr-q_+~H zYf;&#Abpq6qelRQwp^{y|qU`iTg6ZS>W_D_7CR7_}TjAH`@B@8SlS zu*U*>HojPX8GToAAfr0Q%%XmUG5;b5Hbs*v)`%CVajePU!o-BvCi*@Ld2sx8a>pw2 z8ZALHsW?`Te-$sFyXbzbLAt3{oLNq$_&7_`?s&UZ*mj}URp7MernuaNZvR3b+#V!E z!bMS|Yk}RJ;~e1`A`j`KXjYsBU)hd0Mb@U%aW+Zx09`gSIDSrWyo3O#1eKu*RE26# z9cn;Ls0D#g8|pw1sGu&?gZdB*ArJ};APm%?0WIi24+c=c2qrLt1*~9$aEO3Nh=OQ{ zfmnzG-giT21dX8yG=*l+99lq2NPt$52uX*7<68#=O5@4~iLG;F_?&5pt)b1~X^Cy? zzCCC2$+plAlA%3xfR4}!Izt!e3f-VP^njkw3wlEz=nE)<_D4;x@3Y=X_O1-8OA*bX~jC+vdV@ILH;y|538p#=8B0XPUBz#%vce}fO<@9+^E zfury-9E0O<0zQG0@F{!-pTj9Q4PU?+I1A_CJY0Y;;Uatm|A0$y8Lq%p_$Pb~*Wfz* z3vR$o_y)d(@8I9?AGig#;lFSP?!rCz9{vYEz7ER34VrO;Q#Oleuc;I1fIe( zcn-h8@9+n_fS2<(pOlM%6Tqp&sm!UusmiIwsm`gvsmZCu3FOq~)ZqkiRGhk;dYt;4 zU`_}pl+%C{#!+)L94$x3(Q^zOg=6HHIA#w1AGGVG$FDHfb2B#kZ02m?Y~^g@Z0GFY?Bwj??B=}B*~8h(*~cm7lyLTQ P4sZ_2WBARIiw^w>`#)lh diff --git a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp index d70230fc..42f89698 100644 --- a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp +++ b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp @@ -75,8 +75,6 @@ void IUIScene_CreativeMenu::staticCtor() ITEM_AUX(Tile::treeTrunk_Id, TreeTile::JUNGLE_TRUNK) ITEM_AUX(Tile::tree2Trunk_Id, TreeTile2::ACACIA_TRUNK) ITEM_AUX(Tile::tree2Trunk_Id, TreeTile2::DARK_TRUNK) - ITEM(Tile::seaLantern_Id) - ITEM(Tile::prismarine_Id) ITEM(Tile::gravel_Id) ITEM(Tile::redBrick_Id) ITEM(Tile::mossyCobblestone_Id) @@ -88,6 +86,10 @@ void IUIScene_CreativeMenu::staticCtor() ITEM(Tile::netherRack_Id) ITEM(Tile::soulsand_Id) ITEM(Tile::glowstone_Id) + ITEM(Tile::seaLantern_Id) + ITEM(Tile::prismarine_Id) + ITEM(Tile::prismarinedark_Id) + ITEM(Tile::prismarinebrick_Id) ITEM(Tile::fence_Id) ITEM_AUX(Tile::dirt_Id, DirtTile::COARSE_DIRT) @@ -597,11 +599,12 @@ void IUIScene_CreativeMenu::staticCtor() ITEM(Item::feather_Id) ITEM(Item::flint_Id) ITEM(Item::leather_Id) - ITEM(Item::prismarine_cystal_Id) ITEM(Item::rabbit_hide_Id) ITEM(Item::gunpowder_Id) ITEM(Item::clay_Id) ITEM(Item::yellowDust_Id) + ITEM(Item::prismarine_cystal_Id) + ITEM(Item::prismarine_shard_Id) ITEM(Item::seeds_wheat_Id) ITEM(Item::seeds_melon_Id) ITEM(Item::seeds_pumpkin_Id) diff --git a/Minecraft.Client/PreStitchedTextureMap.cpp b/Minecraft.Client/PreStitchedTextureMap.cpp index 7eb5077e..81ce5c0d 100644 --- a/Minecraft.Client/PreStitchedTextureMap.cpp +++ b/Minecraft.Client/PreStitchedTextureMap.cpp @@ -567,6 +567,8 @@ void PreStitchedTextureMap::loadUVs() ADD_ICON(14, 5, L"rabbitsFoot") ADD_ICON(14, 6, L"rabbitHide") ADD_ICON(13, 14, L"prismarineCrystal"); + ADD_ICON(13, 13, L"prismarineShard"); + ADD_ICON_WITH_NAME(14, 7, L"compassP0", L"compass") // 4J Added ADD_ICON_WITH_NAME(14, 8, L"compassP1", L"compass") // 4J Added ADD_ICON_WITH_NAME(14, 9, L"compassP2", L"compass") // 4J Added diff --git a/Minecraft.Client/Windows64Media/strings.h b/Minecraft.Client/Windows64Media/strings.h index 2029b1f2..329da70a 100644 --- a/Minecraft.Client/Windows64Media/strings.h +++ b/Minecraft.Client/Windows64Media/strings.h @@ -2344,4 +2344,5 @@ #define IDS_RICHPRESENCESTATE_TRADING 2338 #define IDS_TILE_PRISMARINE 2339 #define IDS_TILE_PRISMARINE_DARK 2340 -#define IDS_TILE_PRISMARINE_BRICKS 2341 \ No newline at end of file +#define IDS_TILE_PRISMARINE_BRICKS 2341 +#define IDS_ITEM_PRISMARINE_SHARD 2342 \ No newline at end of file diff --git a/Minecraft.World/Item.cpp b/Minecraft.World/Item.cpp index 0793f7d2..e792111c 100644 --- a/Minecraft.World/Item.cpp +++ b/Minecraft.World/Item.cpp @@ -267,6 +267,7 @@ Item* Item::rabbit_hide = nullptr; Item* Item::armor_stand = nullptr; Item* Item::prismarine_crystal = nullptr; +Item* Item::prismarine_shard = nullptr; void Item::staticCtor() { @@ -527,6 +528,7 @@ void Item::staticCtor() Item::armor_stand = (new ArmorStandItem(160)) ->setBaseItemTypeAndMaterial(eBaseItemType_HangingItem,eMaterial_cloth)->setIconName(L"armorStand")->setDescriptionId(IDS_ITEM_ARMOR_STAND)->setUseDescriptionId(IDS_DESC_ARMOR_STAND); Item::prismarine_crystal = (new Item(176))->setIconName(L"prismarineCrystal")->setDescriptionId(IDS_ITEM_PRISMARINE_CRYSTAL)->setUseDescriptionId(IDS_DESC_BRICK); + Item::prismarine_shard = (new Item(177))->setIconName(L"prismarineShard")->setDescriptionId(IDS_ITEM_PRISMARINE_SHARD)->setUseDescriptionId(IDS_DESC_BRICK); } diff --git a/Minecraft.World/Item.h b/Minecraft.World/Item.h index 8c18e051..f5b4b2cb 100644 --- a/Minecraft.World/Item.h +++ b/Minecraft.World/Item.h @@ -433,7 +433,7 @@ public: static Item* armor_stand; static Item* prismarine_crystal; - + static Item* prismarine_shard; static const int shovel_iron_Id = 256; @@ -660,6 +660,7 @@ public: static const int armor_stand_Id = 416; static const int prismarine_cystal_Id = 432; + static const int prismarine_shard_Id = 433; public: const int id; diff --git a/Minecraft.World/Recipes.cpp b/Minecraft.World/Recipes.cpp index 73b9846c..da02cb55 100644 --- a/Minecraft.World/Recipes.cpp +++ b/Minecraft.World/Recipes.cpp @@ -7,6 +7,7 @@ #include "ItemInstance.h" #include "net.minecraft.world.level.tile.h" #include "net.minecraft.world.item.crafting.h" +#include "DyePowderItem.h" Recipes *Recipes::instance = nullptr; ArmorRecipes *Recipes::pArmorRecipes=nullptr; @@ -455,6 +456,33 @@ Recipes::Recipes() L'#', Item::snowBall, L'S'); + addShapedRecipy(new ItemInstance(Tile::prismarine, 1), // + L"sscig", + L"##", // + L"##", // + + L'#', Item::prismarine_shard, + L'S'); + + addShapedRecipy(new ItemInstance(Tile::prismarinebrick, 1), // + L"ssscig", + L"###", // + L"###", // + L"###", + + L'#', Item::prismarine_shard, + L'S'); + + + addShapedRecipy(new ItemInstance(Tile::prismarinedark, 1), // + L"ssscicig", + L"###", // + L"#X#", // + L"###", // + + L'#', Item::prismarine_shard, L'X', new ItemInstance(Item::dye_powder, 1, DyePowderItem::BLACK), + L'S'); + addShapedRecipy(new ItemInstance(Tile::topSnow, 6), // L"sctg", L"###", // diff --git a/Minecraft.World/Tile.cpp b/Minecraft.World/Tile.cpp index e8edeb56..276f43e9 100644 --- a/Minecraft.World/Tile.cpp +++ b/Minecraft.World/Tile.cpp @@ -252,6 +252,8 @@ Tile* Tile::red_sandstone = nullptr; Tile* Tile::stairs_red_sandstone = nullptr; Tile* Tile::seaLantern = nullptr; Tile* Tile::prismarine = nullptr; +Tile* Tile::prismarinedark = nullptr; +Tile* Tile::prismarinebrick = nullptr; Tile* Tile::tree2Trunk = nullptr; Tile* Tile::packed_ice = nullptr; @@ -509,7 +511,10 @@ void Tile::staticCtor() Tile::door_dark = (new DoorTile(197, Material::wood, L"doorDark"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_dark")->setDescriptionId(IDS_TILE_DOOR_DARK)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); Tile::seaLantern = (new SeaLanternTile(198, Material::glass))->setBaseItemTypeAndMaterial(Item::eBaseItemType_torch, Item::eMaterial_glowstone)->setDestroyTime(0.3f)->setSoundType(Tile::SOUND_GLASS)->setLightEmission(1.0f)->setIconName(L"glowstone")->setDescriptionId(IDS_TILE_SEA_LANTERN)->setUseDescriptionId(IDS_DESC_GLOWSTONE); - Tile::prismarine = (new PrismarineTile(200, Material::stone))->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(Tile::SOUND_STONE)->setIconName(L"stone")->setDescriptionId(IDS_TILE_PRISMARINE)->setUseDescriptionId(IDS_DESC_STONE); + Tile::prismarine = (new PrismarineTile(200, Material::stone))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(Tile::SOUND_STONE)->setIconName(L"stone")->setDescriptionId(IDS_TILE_PRISMARINE)->setUseDescriptionId(IDS_DESC_STONE); + Tile::prismarinedark = (new Tile(201, Material::stone))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(Tile::SOUND_STONE)->setIconName(L"prismarine_dark")->setDescriptionId(IDS_TILE_PRISMARINE_DARK)->setUseDescriptionId(IDS_DESC_STONE_BRICK); + Tile::prismarinebrick = (new Tile(202, Material::stone))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(Tile::SOUND_STONE)->setIconName(L"prismarine_bricks")->setDescriptionId(IDS_TILE_PRISMARINE_BRICKS)->setUseDescriptionId(IDS_DESC_STONE_BRICK); + // Special cases for certain items since they can have different icons diff --git a/Minecraft.World/Tile.h b/Minecraft.World/Tile.h index 9da05fe9..9cf6a153 100644 --- a/Minecraft.World/Tile.h +++ b/Minecraft.World/Tile.h @@ -397,6 +397,8 @@ public: static const int seaLantern_Id = 198; static const int prismarine_Id = 200; + static const int prismarinedark_Id = 201; + static const int prismarinebrick_Id = 202; static Tile *stone; static GrassTile *grass; @@ -605,6 +607,7 @@ public: static Tile* seaLantern; static Tile* prismarine; static Tile* prismarinedark; + static Tile* prismarinebrick; static void staticCtor();