From b3feddfef372618c8a9d7a0abcaf18cfad866c18 Mon Sep 17 00:00:00 2001 From: daoge <3523206925@qq.com> Date: Tue, 3 Mar 2026 03:04:10 +0800 Subject: feat: TU19 (Dec 2014) Features & Content (#155) * try to resolve merge conflict * feat: TU19 (Dec 2014) Features & Content (#32) * December 2014 files * Working release build * Fix compilation issues * Add sound to Windows64Media * Add DLC content and force Tutorial DLC * Revert "Add DLC content and force Tutorial DLC" This reverts commit 97a43994725008e35fceb984d5549df9c8cea470. * Disable broken light packing * Disable breakpoint during DLC texture map load Allows DLC loading but the DLC textures are still broken * Fix post build not working * ... * fix vs2022 build * fix cmake build --------- Co-authored-by: Loki --- Minecraft.World/BoatItem.cpp | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'Minecraft.World/BoatItem.cpp') diff --git a/Minecraft.World/BoatItem.cpp b/Minecraft.World/BoatItem.cpp index 3499bc02..d5628f09 100644 --- a/Minecraft.World/BoatItem.cpp +++ b/Minecraft.World/BoatItem.cpp @@ -9,10 +9,10 @@ BoatItem::BoatItem(int id) : Item( id ) { - this->maxStackSize = 1; + maxStackSize = 1; } -bool BoatItem::TestUse(Level *level, shared_ptr player) +bool BoatItem::TestUse(shared_ptr itemInstance, Level *level, shared_ptr player) { // 4J-PB - added for tooltips to test use // 4J TODO really we should have the crosshair hitresult telling us if it hit water, and at what distance, so we don't need to do this again @@ -105,22 +105,28 @@ shared_ptr BoatItem::use(shared_ptr itemInstance, Le int yt = hr->y; int zt = hr->z; - if (!level->isClientSide) + if (level->getTile(xt, yt, zt) == Tile::topSnow_Id) yt--; + if( level->countInstanceOf(eTYPE_BOAT, true) < Level::MAX_XBOX_BOATS ) // 4J - added limit { - if (level->getTile(xt, yt, zt) == Tile::topSnow_Id) yt--; - if( level->countInstanceOf(eTYPE_BOAT, true) < Level::MAX_XBOX_BOATS ) // 4J - added limit + shared_ptr boat = shared_ptr( new Boat(level, xt + 0.5f, yt + 1.0f, zt + 0.5f) ); + boat->yRot = ((Mth::floor(player->yRot * 4.0F / 360.0F + 0.5) & 0x3) - 1) * 90; + if (!level->getCubes(boat, boat->bb->grow(-.1, -.1, -.1))->empty()) { - level->addEntity( shared_ptr( new Boat(level, xt + 0.5f, yt + 1.0f, zt + 0.5f) ) ); - if (!player->abilities.instabuild) - { - itemInstance->count--; - } + return itemInstance; } - else + if (!level->isClientSide) { - // display a message to say max boats has been hit - player->displayClientMessage(IDS_MAX_BOATS ); + level->addEntity(boat); } + if (!player->abilities.instabuild) + { + itemInstance->count--; + } + } + else + { + // display a message to say max boats has been hit + player->displayClientMessage(IDS_MAX_BOATS ); } } delete hr; -- cgit v1.2.3