aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/BoatItem.cpp
diff options
context:
space:
mode:
authordaoge <3523206925@qq.com>2026-03-03 03:04:10 +0800
committerGitHub <noreply@github.com>2026-03-03 03:04:10 +0800
commitb3feddfef372618c8a9d7a0abcaf18cfad866c18 (patch)
tree267761c3bb39241ba5c347bfbe2254d06686e287 /Minecraft.World/BoatItem.cpp
parent84c31a2331f7a0ec85b9d438992e244f60e5020f (diff)
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 <lokirautio@gmail.com>
Diffstat (limited to 'Minecraft.World/BoatItem.cpp')
-rw-r--r--Minecraft.World/BoatItem.cpp32
1 files changed, 19 insertions, 13 deletions
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> player)
+bool BoatItem::TestUse(shared_ptr<ItemInstance> itemInstance, Level *level, shared_ptr<Player> 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<ItemInstance> BoatItem::use(shared_ptr<ItemInstance> 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> boat = shared_ptr<Boat>( 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<Boat>( 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;