From 36ad1a341e2306ec18abfff72a189c588f4c3acf Mon Sep 17 00:00:00 2001 From: Tranqlmao <110073921+Tranqlmao@users.noreply.github.com> Date: Mon, 16 Mar 2026 20:33:21 -0400 Subject: [PATCH] Sea Lanterns Added Prismarine Crystals and Sea Lanterns --- .../Common/Media/MediaWindows64.arc | Bin 57352133 -> 57352167 bytes .../Common/UI/IUIScene_CreativeMenu.cpp | 2 + .../res/textures/blocks/prismarine_rough.png | Bin 0 -> 1896 bytes .../res/textures/blocks/sea_lantern.png | Bin 0 -> 3033 bytes .../res/textures/blocks/sea_lantern.txt | 40 ++++++++++++++++++ Minecraft.Client/PreStitchedTextureMap.cpp | 3 ++ Minecraft.Client/Windows64Media/strings.h | 2 + Minecraft.World/Item.cpp | 3 ++ Minecraft.World/Item.h | 4 ++ Minecraft.World/SeaLanternTile.cpp | 30 +++++++++++++ Minecraft.World/SeaLanternTile.h | 15 +++++++ Minecraft.World/Tile.cpp | 6 +++ Minecraft.World/Tile.h | 2 + 13 files changed, 107 insertions(+) create mode 100644 Minecraft.Client/Common/res/TitleUpdate/res/textures/blocks/prismarine_rough.png create mode 100644 Minecraft.Client/Common/res/TitleUpdate/res/textures/blocks/sea_lantern.png create mode 100644 Minecraft.Client/Common/res/TitleUpdate/res/textures/blocks/sea_lantern.txt create mode 100644 Minecraft.World/SeaLanternTile.cpp create mode 100644 Minecraft.World/SeaLanternTile.h diff --git a/Minecraft.Client/Common/Media/MediaWindows64.arc b/Minecraft.Client/Common/Media/MediaWindows64.arc index ea0095ab44fa22d6e1488a1dec70ca92dc78ec1c..67f9d1886af95e72154eb7919f1c7034c3053e43 100644 GIT binary patch delta 10542 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 delta 10515 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 F{trnm1c(3t diff --git a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp index 85178827..fa377ad0 100644 --- a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp +++ b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp @@ -75,6 +75,7 @@ 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::gravel_Id) ITEM(Tile::redBrick_Id) ITEM(Tile::mossyCobblestone_Id) @@ -590,6 +591,7 @@ 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) diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/textures/blocks/prismarine_rough.png b/Minecraft.Client/Common/res/TitleUpdate/res/textures/blocks/prismarine_rough.png new file mode 100644 index 0000000000000000000000000000000000000000..305f27766b7d789a9d49b8941e99b7c62dd05b63 GIT binary patch literal 1896 zcmV-u2bcJXP)Nkg+k2CJ|P^5k>7a3^(!fiLID6x z0@Lr_Dqw125`dZ6C&WS_j6#7#e1zr9O90aE-V*6NhFScGmfv_owD&amjW?>AFgY09 zsMolDCB^-xGgzihI1Fy^CP~Cc@cQ)6*c_67 zygr@f%u6Dj#{h`-o>tNX z0f1WIHk%8eb$YJHE)OGff&Ofo>+T&;S5agYY2z%wcMS&ql{co*J?xwE1;4I%(3u zX|(xuNBbCi)tZu_Ni!r^q`1MNU8W`D1<+RV3u?|{Dxv5GOG1(NApMLszq1b>q@Ssg z-I>14)ZjTaDz~iteK4TnG_k0FjY3uhiaVvb;zW1CU&St8{Bu_@%KML-bR7#~7Wb(B z_kaA`{8?FhH1=DL2Xr<*{fFZLy@ie12W@_x$FE)x>1+dFwEu#VCKcTmY9+tG;@WdO zzxisi38-pcKm3N#{tGH-uUb=XbW6K4ecQeZU;g#GroLSvajg%-s$*t~=-U+l%9SeJ zSL4LOK9;|KORXb7BWE&kV;IA#?@K6Gs-%A~`820*bfDG|P<;pj?c+VIJqq|qTyq|-Qqj#oDg*<5Y8?S; z4lsGG4~Sq`b(X(>i$TPB^dzoo0Kb6+ONiKUs!cMIcJ(QuH@Qa{f&stn#N4Bd{rGll>UN!5mf8nlpNiAk z$9wE9AMm&&Y`+?}E$*;OI5Cn?Gc!f#2tcLU@1TiV2pVVi+>EW$56zqYS! zp@4TRLdnylR3rlsrx70_&Hu-K#=j|2?t3Qz8A@q+~ViC()%7_LJ(z z_v(dnV8};y)oyV5wMnGwFy_`ShphE7;gdnE^)drPKBg|6z$g?*zcy7cfVs6xeWyZd zx*u!3tdgmHF!OK?-;n?VLq5!{U8T2VH8~pgP_mjTxw*BAwO)4if%9G{EVA|!i=$x= zBCllGi3MD;n)r?cn7VYr*#}NVHv_5QI}+e%*rR|`mrlSL`_=F9kMGfz(;o<*3{tY1 zEnrCokX@})->HyD9#`*;a;6D&JCGJ8>U&|Rz;e3cFtx!)!yb}n`fUlKN4=G9?e2ds zxa8Smwx^Li)4%TncXvgK8?3ZD({hhjD_Kp9uKnQpPKE61{uB<5PvkA9Kj1qOurJec z`h)#$yj~_X-Os>~Pr1@9%l*9|ahh$>eX#p`!CEhqNFGKg~uGWck9ahd1X##RzsFKyhS})`I-BPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^r7 z2|EA0E0n*0fS`Phc#=B?d~?BfBPplGaP48 zH>`)AP}Mk&I0-AfF`_~iCohKm(rxF$5$_Tdi;W;!$XP{VoHgFM<26y*P+%y9 zy{&CLXV@1Gzxxx>%(;E#J-)p6fHpL!DvKBpRTKb05waIll|D`UdjApr_|JShC1Trl z+*)2@Q8m<}v~>kOBJLQ1yWd~Ch#)E;pb~H#1kyNy6f{i} zC+l+{Ma)5*5F$BEEV>1#()TMC-4-b)BI49-gLz@A z=~xeI+O7c;O3rj`OR`K52m(`@sH&PSM4BMPAV#6^(W8&q+u5bhiBCSbPhPFrd+&YH zH1TS6j=R$|H9sEz!jHea;D@6_%<{~GhmSsGZ)b-u?jNvISGWst=PGUvvEs^d2{=S|g1r4{zK=tA?l=kh&pIs5TiFb%J#BTrl@hDr-U& zX>vlmq8}0}g7)Kz=z@w;sp1&oHQ~_&k;74uH8KB7pObA8AY!FKEt%)BXa4 z86Yz

d=psdS0ze3)#0+5V=|SdXDS!m53=p=dNle2C?!;6QPft&{+ALtPV7qRRGNBHr zQY@jWm=|2O8Pmv{VdUxSV=yOrF`l2kMsPm=V4pKh?8FK~5M%xnC!11-#Ow8%|9tiX z&)=K?N_2OgJU&GB_YwVpvx{>C6mpcf-;|+jJzG zl`95eoJQ(uo`TwT&#J2QG*y4C2)85GXLR*nQ(OYEzw1| zwR?r%JlLm|no2Tt?B@0bf+#)%o+Sfg4t#n405juH|67Q4Y`DF(O&2N}Nwl#ghCuO* zxPr`b>wr`XV8Dv-;mtj$lo(^gtD2fMP25J6jXuU%?!^%lvxEXoYzR8guLslx?WYw1 zA!>zg?2KqY5t6M*WxZiT#3=ye0wLCzJ28fqo0qR3v+Pqa#09f~Al*!(yhdY7AX3~w zgzH<|EV?Z;suDuL%qdP33x;$~ zDl4kEgbkTx1DWID0xO1gRm=ICbB1hyfXtI8B6Rg7>bRUC;#WLmv^Fpz_(T1}5kA^a)xe8NBJbUws)vD(-L0=}^XJ43eCKum445>JM zab8`ld2;d+93sVdetLnGANbvi>Z%+Xsf^c;B z4gTwa(#OTK{@Tu$SFZket7kQ=Vxy?`u>PT*CN0B>R)_)aRwUZ z*{>^d%5y@!%s!|J-m%`uO`G7q1ynp2yIVDbqHJD*B^7Qzar^l~&a`@*t zf;5iofASeOb}#em`v>eq1qraTQKF{f%5ob4)_LUa?p6NX3hY1P@Voyb5+Zl5UgL{< z59mZeB5eqB>k5d^TICy6N+t36y?xBT=bK?d>#E^{ttAT;+Nxq1BO!pwEOVkpP>3RQ zarO;efQL8tplW8b9h;6S2(<_r1f4q;^MR6w%@Ac=3d>N@hK4+jL;)Sf35tQgv-yT- zz-$0oLRgS&O&}0;_6x-w(MT$W##nJ}XBSn$Wjp1EUa!v(9PO%__1g>9d1J0+E?dx!Vm-o0tQNEV@pqn2sM?Nx9MP#{QivFZb)N7| zGF2dIOAHH2Nt>!<3PKQPwd#RFoJ!&6v)8=WEhyb=UzXGxGWl%tq{iKt46=`$tSA2R z_BEIiEhV0v9Al;M_jf)-HEjTDv#}_Knd2%1caB#hUq3zK`PnG|QB-+yc!=*mL_^?W zy=GZO_V3*0YPZDAIG+acl(A58^zu0`FWzu;_?Si45JL#`{lGW>{a<_=0wGkClK6uM z#AhzVrXr0KUAH8tvRa+9SZ*;*X^x<2DoiStoBM-$vA~Ms9%!qY$($fcrNWd(s=A^L z6-}qaK*7X0I5=Q$=L(}6kM?d;`jMMguQ8>}>-EK4^B8%0{EDBBU-IPfW?vX{X8%{8 zuy^^&e18yYL_jXjHP@!$+H!&7^u@Tfvjfb|_51I>B?`*z-K+e=g993=Q8B6ziGS0m zO(cCGvn%95k?d7CD!;7J9thjh{!8$p4 z-hQb<%b3nKqH5%PLDU*-4&O?lX*-4~5hpKDg*oq@$rh+p2wIbEg&>4b&oB|iP-3i@ z#&OQglrlfRIpO+Zi(J+0b`3&AJrcCW9q>6iGbh<>`F}e31ve*B3eQeoW9EE*?;&qf zV#haj$3QmbBD)baaD0BwAD{ok&u>o=WOnOM9zVt(euzGcoUhIS;nTbKxVGFz5Z;a} zhA9)Pz|o5r{QUNWCx?&eni~1tSO4tmRS#ldj@A{WsetBaseItemTypeAndMaterial(eBaseItemType_sword, eMaterial_wood) ->setIconName(L"swordWood")->setDescriptionId(IDS_ITEM_SWORD_WOOD)->setUseDescriptionId(IDS_DESC_SWORD); @@ -524,6 +526,7 @@ void Item::staticCtor() Item::rabbits_foot = ( new Item(158) ) ->setIconName(L"rabbitsFoot")->setDescriptionId(IDS_ITEM_RABBIT_FOOT)->setUseDescriptionId(IDS_DESC_RABBIT_FOOT); 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(161))->setIconName(L"prismarineCrystal")->setDescriptionId(IDS_ITEM_PRISMARINE_CRYSTAL)->setUseDescriptionId(IDS_DESC_BRICK); } diff --git a/Minecraft.World/Item.h b/Minecraft.World/Item.h index c6e54c02..c58fd76b 100644 --- a/Minecraft.World/Item.h +++ b/Minecraft.World/Item.h @@ -432,6 +432,8 @@ public: static Item* rabbits_foot; static Item* armor_stand; + static Item* prismarine_crystal; + static const int shovel_iron_Id = 256; @@ -657,6 +659,8 @@ public: static const int rabbit_hide_Id = 415; static const int armor_stand_Id = 416; + static const int prismarine_cystal_Id = 417; + public: const int id; diff --git a/Minecraft.World/SeaLanternTile.cpp b/Minecraft.World/SeaLanternTile.cpp new file mode 100644 index 00000000..411e52d8 --- /dev/null +++ b/Minecraft.World/SeaLanternTile.cpp @@ -0,0 +1,30 @@ +#include "stdafx.h" +#include "SeaLanternTile.h" + +SeaLanternTile::SeaLanternTile(int id, Material* material) : Tile(id, material) +{ +} +int SeaLanternTile::getResourceCountForLootBonus(int bonusLevel, Random* random) +{ + return Mth::clamp(getResourceCount(random) + random->nextInt(bonusLevel + 1), 1, 4); +} + +int SeaLanternTile::getResourceCount(Random* random) +{ + return 2 + random->nextInt(3); +} + +int SeaLanternTile::getResource(int data, Random* random, int playerBonusLevel) +{ + return Item::prismarine_crystal->id; +} + +void SeaLanternTile::registerIcons(IconRegister* iconRegister) +{ + icon = iconRegister->registerIcon(L"sea_lantern"); +} + +Icon* SeaLanternTile::getTexture(int face, int data) +{ + return icon; +} \ No newline at end of file diff --git a/Minecraft.World/SeaLanternTile.h b/Minecraft.World/SeaLanternTile.h new file mode 100644 index 00000000..5013249c --- /dev/null +++ b/Minecraft.World/SeaLanternTile.h @@ -0,0 +1,15 @@ +#pragma once +#include "Tile.h" + +class SeaLanternTile : public Tile +{ +public: + SeaLanternTile(int id, Material* material); + virtual void registerIcons(IconRegister* iconRegister); + virtual Icon* getTexture(int face, int data); + virtual int getResourceCountForLootBonus(int bonusLevel, Random* random); + virtual int getResourceCount(Random* random); + virtual int getResource(int data, Random* random, int playerBonusLevel); +private: + Icon* icon; +}; \ No newline at end of file diff --git a/Minecraft.World/Tile.cpp b/Minecraft.World/Tile.cpp index cac85e14..3d49896a 100644 --- a/Minecraft.World/Tile.cpp +++ b/Minecraft.World/Tile.cpp @@ -16,6 +16,8 @@ #include "net.minecraft.world.h" #include "net.minecraft.h" #include "Tile.h" +#include "SeaLanternTile.h" +#include "SeaLanternTile.cpp" wstring Tile::TILE_DESCRIPTION_PREFIX = L"Tile."; @@ -246,6 +248,7 @@ Tile* Tile::darkGate = nullptr; Tile* Tile::invertedDaylightDetector = nullptr; Tile* Tile::red_sandstone = nullptr; Tile* Tile::stairs_red_sandstone = nullptr; +Tile* Tile::seaLantern = nullptr; Tile* Tile::tree2Trunk = nullptr; @@ -496,6 +499,9 @@ void Tile::staticCtor() Tile::door_jungle = (new DoorTile(195, Material::wood, L"doorJungle"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_jungle")->setDescriptionId(IDS_TILE_DOOR_JUNGLE)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); Tile::door_acacia = (new DoorTile(196, Material::wood, L"doorAcacia"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_acacia")->setDescriptionId(IDS_TILE_DOOR_ACACIA)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); 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); + // Special cases for certain items since they can have different icons Item::items[wool_Id] = ( new WoolTileItem(Tile::wool_Id- 256) )->setIconName(L"cloth")->setDescriptionId(IDS_TILE_CLOTH)->setUseDescriptionId(IDS_DESC_WOOL); diff --git a/Minecraft.World/Tile.h b/Minecraft.World/Tile.h index 86a4d72c..12e8ac10 100644 --- a/Minecraft.World/Tile.h +++ b/Minecraft.World/Tile.h @@ -388,6 +388,7 @@ public: static const int darkFence_Id = 191; static const int acaciaFence_Id = 192; + static const int seaLantern_Id = 198; static Tile *stone; static GrassTile *grass; @@ -590,6 +591,7 @@ public: static Tile* red_sandstone; static Tile* stairs_red_sandstone; static Tile* tree2Trunk; + static Tile* seaLantern; static void staticCtor();