diff options
Diffstat (limited to 'Minecraft.World/BucketItem.cpp')
| -rw-r--r-- | Minecraft.World/BucketItem.cpp | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/Minecraft.World/BucketItem.cpp b/Minecraft.World/BucketItem.cpp index 0aac9c83..d3570cd7 100644 --- a/Minecraft.World/BucketItem.cpp +++ b/Minecraft.World/BucketItem.cpp @@ -24,7 +24,7 @@ BucketItem::BucketItem(int id, int content) : Item( id ) this->content = content; } -bool BucketItem::TestUse(Level *level, std::shared_ptr<Player> player) +bool BucketItem::TestUse(Level *level, shared_ptr<Player> player) { // double x = player->xo + (player->x - player->xo); // double y = player->yo + (player->y - player->yo) + 1.62 - player->heightOffset; @@ -47,7 +47,7 @@ bool BucketItem::TestUse(Level *level, std::shared_ptr<Player> player) } if (content == 0) - { + { if (!player->mayBuild(xt, yt, zt)) return false; if (level->getMaterial(xt, yt, zt) == Material::water && level->getData(xt, yt, zt) == 0) { @@ -73,7 +73,7 @@ bool BucketItem::TestUse(Level *level, std::shared_ptr<Player> player) if (hr->f == 3) zt++; if (hr->f == 4) xt--; if (hr->f == 5) xt++; - + if (!player->mayBuild(xt, yt, zt)) return false; if (level->isEmptyTile(xt, yt, zt) || !level->getMaterial(xt, yt, zt)->isSolid()) @@ -99,7 +99,7 @@ bool BucketItem::TestUse(Level *level, std::shared_ptr<Player> player) return false; } -std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> itemInstance, Level *level, std::shared_ptr<Player> player) +shared_ptr<ItemInstance> BucketItem::use(shared_ptr<ItemInstance> itemInstance, Level *level, shared_ptr<Player> player) { float a = 1; @@ -120,19 +120,19 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item if (!level->mayInteract(player, xt, yt, zt,content)) { app.DebugPrintf("!!!!!!!!!!! Can't place that here\n"); - std::shared_ptr<ServerPlayer> servPlayer = dynamic_pointer_cast<ServerPlayer>(player); + shared_ptr<ServerPlayer> servPlayer = dynamic_pointer_cast<ServerPlayer>(player); if( servPlayer != NULL ) { app.DebugPrintf("Sending ChatPacket::e_ChatCannotPlaceLava to player\n"); - servPlayer->connection->send( std::shared_ptr<ChatPacket>( new ChatPacket(L"", ChatPacket::e_ChatCannotPlaceLava ) ) ); + servPlayer->connection->send( shared_ptr<ChatPacket>( new ChatPacket(L"", ChatPacket::e_ChatCannotPlaceLava ) ) ); } - + delete hr; return itemInstance; } if (content == 0) - { + { if (!player->mayBuild(xt, yt, zt)) return itemInstance; if (level->getMaterial(xt, yt, zt) == Material::water && level->getData(xt, yt, zt) == 0) { @@ -145,13 +145,13 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item if (--itemInstance->count <= 0) { - return std::shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_water) ); + return shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_water) ); } else { - if (!player->inventory->add(std::shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_water)))) + if (!player->inventory->add(shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_water)))) { - player->drop(std::shared_ptr<ItemInstance>(new ItemInstance(Item::bucket_water_Id, 1, 0))); + player->drop(shared_ptr<ItemInstance>(new ItemInstance(Item::bucket_water_Id, 1, 0))); } return itemInstance; } @@ -160,7 +160,7 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item { if( level->dimension->id == -1 ) player->awardStat( - GenericStats::netherLavaCollected(), + GenericStats::netherLavaCollected(), GenericStats::param_noArgs() ); @@ -172,13 +172,13 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item } if (--itemInstance->count <= 0) { - return std::shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_lava) ); + return shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_lava) ); } else { - if (!player->inventory->add(std::shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_lava)))) + if (!player->inventory->add(shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_lava)))) { - player->drop(std::shared_ptr<ItemInstance>(new ItemInstance(Item::bucket_lava_Id, 1, 0))); + player->drop(shared_ptr<ItemInstance>(new ItemInstance(Item::bucket_lava_Id, 1, 0))); } return itemInstance; } @@ -187,7 +187,7 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item else if (content < 0) { delete hr; - return std::shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_empty) ); + return shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_empty) ); } else { @@ -197,13 +197,13 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item if (hr->f == 3) zt++; if (hr->f == 4) xt--; if (hr->f == 5) xt++; - + if (!player->mayBuild(xt, yt, zt)) return itemInstance; if (emptyBucket(level, x, y, z, xt, yt, zt) && !player->abilities.instabuild) { - return std::shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_empty) ); + return shared_ptr<ItemInstance>( new ItemInstance(Item::bucket_empty) ); } } @@ -217,13 +217,13 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item delete hr; if (--itemInstance->count <= 0) { - return std::shared_ptr<ItemInstance>( new ItemInstance(Item::milk) ); + return shared_ptr<ItemInstance>( new ItemInstance(Item::milk) ); } else { - if (!player->inventory->add(std::shared_ptr<ItemInstance>( new ItemInstance(Item::milk)))) + if (!player->inventory->add(shared_ptr<ItemInstance>( new ItemInstance(Item::milk)))) { - player->drop(std::shared_ptr<ItemInstance>(new ItemInstance(Item::milk_Id, 1, 0))); + player->drop(shared_ptr<ItemInstance>(new ItemInstance(Item::milk_Id, 1, 0))); } return itemInstance; } @@ -234,22 +234,22 @@ std::shared_ptr<ItemInstance> BucketItem::use(std::shared_ptr<ItemInstance> item return itemInstance; } -bool BucketItem::emptyBucket(Level *level, double x, double y, double z, int xt, int yt, int zt) +bool BucketItem::emptyBucket(Level *level, double x, double y, double z, int xt, int yt, int zt) { if (content <= 0) return false; - if (level->isEmptyTile(xt, yt, zt) || !level->getMaterial(xt, yt, zt)->isSolid()) + if (level->isEmptyTile(xt, yt, zt) || !level->getMaterial(xt, yt, zt)->isSolid()) { - if (level->dimension->ultraWarm && content == Tile::water_Id) + if (level->dimension->ultraWarm && content == Tile::water_Id) { level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, eSoundType_RANDOM_FIZZ, 0.5f, 2.6f + (level->random->nextFloat() - level->random->nextFloat()) * 0.8f); - for (int i = 0; i < 8; i++) + for (int i = 0; i < 8; i++) { level->addParticle(eParticleType_largesmoke, xt + Math::random(), yt + Math::random(), zt + Math::random(), 0, 0, 0); } - } - else + } + else { level->setTileAndData(xt, yt, zt, content, 0); } |
