Merged branch 'master' of git://github.com/sriehl/MCServer
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||
|
||||
#include "BeaconEntity.h"
|
||||
#include <algorithm>
|
||||
#include "../BlockArea.h"
|
||||
#include "../Entities/Player.h"
|
||||
|
||||
@@ -227,10 +228,7 @@ void cBeaconEntity::GiveEffects(void)
|
||||
virtual bool Item(cPlayer * a_Player)
|
||||
{
|
||||
Vector3d PlayerPosition = Vector3d(a_Player->GetPosition());
|
||||
if (PlayerPosition.y > (double)m_PosY)
|
||||
{
|
||||
PlayerPosition.y = (double)m_PosY;
|
||||
}
|
||||
PlayerPosition.y = std::min(static_cast<double>(m_PosY), PlayerPosition.y);
|
||||
|
||||
// TODO: Vanilla minecraft uses an AABB check instead of a radius one
|
||||
Vector3d BeaconPosition = Vector3d(m_PosX, m_PosY, m_PosZ);
|
||||
@@ -255,7 +253,7 @@ void cBeaconEntity::GiveEffects(void)
|
||||
, m_PrimaryEffect(a_PrimaryEffect)
|
||||
, m_SecondaryEffect(a_SecondaryEffect)
|
||||
, m_EffectLevel(a_EffectLevel)
|
||||
{};
|
||||
{}
|
||||
|
||||
} PlayerCallback(Radius, m_PosX, m_PosY, m_PosZ, m_PrimaryEffect, SecondaryEffect, EffectLevel);
|
||||
GetWorld()->ForEachPlayer(PlayerCallback);
|
||||
@@ -288,7 +286,7 @@ void cBeaconEntity::UsedBy(cPlayer * a_Player)
|
||||
OpenWindow(new cBeaconWindow(m_PosX, m_PosY, m_PosZ, this));
|
||||
Window = GetWindow();
|
||||
}
|
||||
|
||||
|
||||
if (Window != NULL)
|
||||
{
|
||||
// if (a_Player->GetWindow() != Window)
|
||||
@@ -307,7 +305,3 @@ void cBeaconEntity::SendTo(cClientHandle & a_Client)
|
||||
{
|
||||
a_Client.SendUpdateBlockEntity(*this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ void cDispenserEntity::DropSpenseFromSlot(cChunk & a_Chunk, int a_SlotNum)
|
||||
{
|
||||
double MobX = 0.5 + (DispX + DispChunk->GetPosX() * cChunkDef::Width);
|
||||
double MobZ = 0.5 + (DispZ + DispChunk->GetPosZ() * cChunkDef::Width);
|
||||
if (m_World->SpawnMob(MobX, DispY, MobZ, (eMonsterType)m_Contents.GetSlot(a_SlotNum).m_ItemDamage) >= 0)
|
||||
if (m_World->SpawnMob(MobX, DispY, MobZ, static_cast<eMonsterType>(m_Contents.GetSlot(a_SlotNum).m_ItemDamage)) >= 0)
|
||||
{
|
||||
m_Contents.ChangeSlotCount(a_SlotNum, -1);
|
||||
}
|
||||
@@ -190,7 +190,7 @@ void cDispenserEntity::DropSpenseFromSlot(cChunk & a_Chunk, int a_SlotNum)
|
||||
|
||||
void cDispenserEntity::SpawnProjectileFromDispenser(int a_BlockX, int a_BlockY, int a_BlockZ, cProjectileEntity::eKind a_Kind, const Vector3d & a_ShootVector)
|
||||
{
|
||||
m_World->CreateProjectile((double)a_BlockX + 0.5, (double)a_BlockY + 0.5, (double)a_BlockZ + 0.5, a_Kind, NULL, NULL, &a_ShootVector);
|
||||
m_World->CreateProjectile(static_cast<double>(a_BlockX + 0.5), static_cast<double>(a_BlockY + 0.5), static_cast<double>(a_BlockZ + 0.5), a_Kind, NULL, NULL, &a_ShootVector);
|
||||
}
|
||||
|
||||
|
||||
@@ -275,6 +275,3 @@ bool cDispenserEntity::EmptyLiquidBucket(BLOCKTYPE a_BlockInFront, int a_SlotNum
|
||||
m_Contents.AddItem(EmptyBucket);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -70,19 +70,19 @@ void cDropSpenserEntity::DropSpense(cChunk & a_Chunk)
|
||||
SlotsCnt++;
|
||||
}
|
||||
} // for i - m_Contents[]
|
||||
|
||||
|
||||
if (SlotsCnt == 0)
|
||||
{
|
||||
// Nothing in the dropspenser, play the click sound
|
||||
m_World->BroadcastSoundEffect("random.click", m_PosX * 8, m_PosY * 8, m_PosZ * 8, 1.0f, 1.2f);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int RandomSlot = m_World->GetTickRandomNumber(SlotsCnt - 1);
|
||||
|
||||
|
||||
// DropSpense the item, using the specialized behavior in the subclasses:
|
||||
DropSpenseFromSlot(a_Chunk, OccupiedSlots[RandomSlot]);
|
||||
|
||||
|
||||
// Broadcast a smoke and click effects:
|
||||
NIBBLETYPE Meta = a_Chunk.GetMeta(m_RelX, m_PosY, m_RelZ);
|
||||
int SmokeDir = 0;
|
||||
@@ -132,7 +132,7 @@ bool cDropSpenserEntity::Tick(float a_Dt, cChunk & a_Chunk)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
m_ShouldDropSpense = false;
|
||||
DropSpense(a_Chunk);
|
||||
return true;
|
||||
@@ -160,7 +160,7 @@ void cDropSpenserEntity::UsedBy(cPlayer * a_Player)
|
||||
OpenWindow(new cDropSpenserWindow(m_PosX, m_PosY, m_PosZ, this));
|
||||
Window = GetWindow();
|
||||
}
|
||||
|
||||
|
||||
if (Window != NULL)
|
||||
{
|
||||
if (a_Player->GetWindow() != Window)
|
||||
@@ -205,7 +205,3 @@ void cDropSpenserEntity::DropFromSlot(cChunk & a_Chunk, int a_SlotNum)
|
||||
|
||||
m_World->SpawnItemPickups(Pickups, MicroX, MicroY, MicroZ, PickupSpeedX, PickupSpeedY, PickupSpeedZ);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ void cFlowerPotEntity::UsedBy(cPlayer * a_Player)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
cItem SelectedItem = a_Player->GetInventory().GetEquippedItem();
|
||||
if (IsFlower(SelectedItem.m_ItemType, SelectedItem.m_ItemDamage))
|
||||
{
|
||||
@@ -63,7 +63,7 @@ void cFlowerPotEntity::Destroy(void)
|
||||
cItems Pickups;
|
||||
Pickups.Add(m_Item);
|
||||
m_World->SpawnItemPickups(Pickups, m_PosX + 0.5, m_PosY + 0.5, m_PosZ + 0.5);
|
||||
|
||||
|
||||
m_Item.Empty();
|
||||
}
|
||||
}
|
||||
@@ -88,7 +88,7 @@ bool cFlowerPotEntity::IsFlower(short m_ItemType, short m_ItemData)
|
||||
}
|
||||
case E_BLOCK_TALL_GRASS:
|
||||
{
|
||||
return (m_ItemData == (short) 2);
|
||||
return (m_ItemData == static_cast<short>(2));
|
||||
}
|
||||
default:
|
||||
{
|
||||
@@ -96,7 +96,3 @@ bool cFlowerPotEntity::IsFlower(short m_ItemType, short m_ItemData)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -115,16 +115,16 @@ bool cFurnaceEntity::Tick(float a_Dt, cChunk & a_Chunk)
|
||||
FinishOne();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
m_TimeBurned++;
|
||||
if (m_TimeBurned >= m_FuelBurnTime)
|
||||
{
|
||||
// The current fuel has been exhausted, use another one, if possible
|
||||
BurnNewFuel();
|
||||
}
|
||||
|
||||
|
||||
UpdateProgressBars();
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ void cFurnaceEntity::BurnNewFuel(void)
|
||||
SetIsCooking(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Is the input and output ready for cooking?
|
||||
if (!CanCookInputToOutput())
|
||||
{
|
||||
@@ -217,12 +217,12 @@ void cFurnaceEntity::OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ASSERT(a_ItemGrid == &m_Contents);
|
||||
switch (a_SlotNum)
|
||||
{
|
||||
case fsInput: UpdateInput(); break;
|
||||
case fsFuel: UpdateFuel(); break;
|
||||
case fsInput: UpdateInput(); break;
|
||||
case fsFuel: UpdateFuel(); break;
|
||||
case fsOutput: UpdateOutput(); break;
|
||||
default: ASSERT(!"Invalid furnace slot update!"); break;
|
||||
}
|
||||
@@ -241,7 +241,7 @@ void cFurnaceEntity::UpdateInput(void)
|
||||
m_TimeCooked = 0;
|
||||
}
|
||||
m_LastInput = m_Contents.GetSlot(fsInput);
|
||||
|
||||
|
||||
cFurnaceRecipe * FR = cRoot::Get()->GetFurnaceRecipe();
|
||||
m_CurrentRecipe = FR->GetRecipeFrom(m_Contents.GetSlot(fsInput));
|
||||
if (!CanCookInputToOutput())
|
||||
@@ -254,7 +254,7 @@ void cFurnaceEntity::UpdateInput(void)
|
||||
{
|
||||
m_NeedCookTime = m_CurrentRecipe->CookTime;
|
||||
SetIsCooking(true);
|
||||
|
||||
|
||||
// Start burning new fuel if there's no flame now:
|
||||
if (GetFuelBurnTimeLeft() <= 0)
|
||||
{
|
||||
@@ -274,7 +274,7 @@ void cFurnaceEntity::UpdateFuel(void)
|
||||
// The current fuel is still burning, don't modify anything:
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// The current fuel is spent, try to burn some more:
|
||||
BurnNewFuel();
|
||||
}
|
||||
@@ -292,7 +292,7 @@ void cFurnaceEntity::UpdateOutput(void)
|
||||
SetIsCooking(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// No need to burn new fuel, the Tick() function will take care of that
|
||||
|
||||
// Can cook, start cooking if not already underway:
|
||||
@@ -311,7 +311,7 @@ bool cFurnaceEntity::CanCookInputToOutput(void) const
|
||||
// This input cannot be cooked
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
const cItem & Slot = m_Contents.GetSlot(fsOutput);
|
||||
if (Slot.IsEmpty())
|
||||
{
|
||||
@@ -324,13 +324,13 @@ bool cFurnaceEntity::CanCookInputToOutput(void) const
|
||||
// The output slot is blocked with something that cannot be stacked with the recipe's output
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (Slot.IsFullStack())
|
||||
{
|
||||
// Cannot add any more items to the output slot
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ void cFurnaceEntity::UpdateProgressBars(bool a_ForceUpdate)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int CurFuel = (m_FuelBurnTime > 0) ? 200 - (200 * m_TimeBurned / m_FuelBurnTime) : 0;
|
||||
BroadcastProgress(PROGRESSBAR_FUEL, static_cast<short>(CurFuel));
|
||||
|
||||
@@ -373,7 +373,3 @@ void cFurnaceEntity::SetIsCooking(bool a_IsCooking)
|
||||
m_World->FastSetBlock(m_PosX, m_PosY, m_PosZ, E_BLOCK_LIT_FURNACE, m_BlockMeta);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ bool cHopperEntity::Tick(float a_Dt, cChunk & a_Chunk)
|
||||
{
|
||||
UNUSED(a_Dt);
|
||||
Int64 CurrentTick = a_Chunk.GetWorld()->GetWorldAge();
|
||||
|
||||
|
||||
bool res = false;
|
||||
res = MoveItemsIn (a_Chunk, CurrentTick) || res;
|
||||
res = MovePickupsIn(a_Chunk, CurrentTick) || res;
|
||||
@@ -74,7 +74,7 @@ void cHopperEntity::SendTo(cClientHandle & a_Client)
|
||||
{
|
||||
// The hopper entity doesn't need anything sent to the client when it's created / gets in the viewdistance
|
||||
// All the actual handling is in the cWindow UI code that gets called when the hopper is rclked
|
||||
|
||||
|
||||
UNUSED(a_Client);
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ void cHopperEntity::UsedBy(cPlayer * a_Player)
|
||||
OpenNewWindow();
|
||||
Window = GetWindow();
|
||||
}
|
||||
|
||||
|
||||
// Open the window for the player:
|
||||
if (Window != NULL)
|
||||
{
|
||||
@@ -138,7 +138,7 @@ bool cHopperEntity::MoveItemsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
// Too early after the previous transfer
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Try moving an item in:
|
||||
bool res = false;
|
||||
switch (a_Chunk.GetBlock(m_RelX, m_PosY + 1, m_RelZ))
|
||||
@@ -161,17 +161,17 @@ bool cHopperEntity::MoveItemsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
case E_BLOCK_DROPPER:
|
||||
case E_BLOCK_HOPPER:
|
||||
{
|
||||
res = MoveItemsFromGrid(*(cBlockEntityWithItems *)a_Chunk.GetBlockEntity(m_PosX, m_PosY + 1, m_PosZ));
|
||||
res = MoveItemsFromGrid(*static_cast<cBlockEntityWithItems *>(a_Chunk.GetBlockEntity(m_PosX, m_PosY + 1, m_PosZ)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// If the item has been moved, reset the last tick:
|
||||
if (res)
|
||||
{
|
||||
m_LastMoveItemsInTick = a_CurrentTick;
|
||||
}
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -205,12 +205,12 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
}
|
||||
|
||||
Vector3f EntityPos = a_Entity->GetPosition();
|
||||
Vector3f BlockPos(m_Pos.x + 0.5f, (float)m_Pos.y + 1, m_Pos.z + 0.5f); // One block above hopper, and search from center outwards
|
||||
Vector3f BlockPos(m_Pos.x + 0.5f, static_cast<float>(m_Pos.y) + 1, m_Pos.z + 0.5f); // One block above hopper, and search from center outwards
|
||||
double Distance = (EntityPos - BlockPos).Length();
|
||||
|
||||
if (Distance < 0.5)
|
||||
{
|
||||
if (TrySuckPickupIn((cPickup *)a_Entity))
|
||||
if (TrySuckPickupIn(static_cast<cPickup *>(a_Entity)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -238,9 +238,9 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
m_bFoundPickupsAbove = true;
|
||||
|
||||
int PreviousCount = m_Contents.GetSlot(i).m_ItemCount;
|
||||
|
||||
|
||||
Item.m_ItemCount -= m_Contents.ChangeSlotCount(i, Item.m_ItemCount) - PreviousCount; // Set count to however many items were added
|
||||
|
||||
|
||||
if (Item.IsEmpty())
|
||||
{
|
||||
a_Pickup->Destroy(); // Kill pickup if all items were added
|
||||
@@ -280,7 +280,7 @@ bool cHopperEntity::MoveItemsOut(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
// Too early after the previous transfer
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Get the coords of the block where to output items:
|
||||
int OutX, OutY, OutZ;
|
||||
NIBBLETYPE Meta = a_Chunk.GetMeta(m_RelX, m_PosY, m_RelZ);
|
||||
@@ -294,7 +294,7 @@ bool cHopperEntity::MoveItemsOut(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
// Cannot output below the zero-th block level
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Convert coords to relative:
|
||||
int OutRelX = OutX - a_Chunk.GetPosX() * cChunkDef::Width;
|
||||
int OutRelZ = OutZ - a_Chunk.GetPosZ() * cChunkDef::Width;
|
||||
@@ -304,7 +304,7 @@ bool cHopperEntity::MoveItemsOut(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
// The destination chunk has been unloaded, don't tick
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Call proper moving function, based on the blocktype present at the coords:
|
||||
bool res = false;
|
||||
switch (DestChunk->GetBlock(OutRelX, OutY, OutRelZ))
|
||||
@@ -327,7 +327,7 @@ bool cHopperEntity::MoveItemsOut(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
case E_BLOCK_DROPPER:
|
||||
case E_BLOCK_HOPPER:
|
||||
{
|
||||
cBlockEntityWithItems * BlockEntity = (cBlockEntityWithItems *)DestChunk->GetBlockEntity(OutX, OutY, OutZ);
|
||||
cBlockEntityWithItems * BlockEntity = static_cast<cBlockEntityWithItems *>(DestChunk->GetBlockEntity(OutX, OutY, OutZ));
|
||||
if (BlockEntity == NULL)
|
||||
{
|
||||
LOGWARNING("%s: A block entity was not found where expected at {%d, %d, %d}", __FUNCTION__, OutX, OutY, OutZ);
|
||||
@@ -337,13 +337,13 @@ bool cHopperEntity::MoveItemsOut(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// If the item has been moved, reset the last tick:
|
||||
if (res)
|
||||
{
|
||||
m_LastMoveItemsOutTick = a_CurrentTick;
|
||||
}
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -354,7 +354,7 @@ bool cHopperEntity::MoveItemsOut(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
/// Moves items from a chest (dblchest) above the hopper into this hopper. Returns true if contents have changed.
|
||||
bool cHopperEntity::MoveItemsFromChest(cChunk & a_Chunk)
|
||||
{
|
||||
cChestEntity * MainChest = (cChestEntity *)a_Chunk.GetBlockEntity(m_PosX, m_PosY + 1, m_PosZ);
|
||||
cChestEntity * MainChest = static_cast<cChestEntity *>(a_Chunk.GetBlockEntity(m_PosX, m_PosY + 1, m_PosZ));
|
||||
if (MainChest == NULL)
|
||||
{
|
||||
LOGWARNING("%s: A chest entity was not found where expected, at {%d, %d, %d}", __FUNCTION__, m_PosX, m_PosY + 1, m_PosZ);
|
||||
@@ -365,7 +365,7 @@ bool cHopperEntity::MoveItemsFromChest(cChunk & a_Chunk)
|
||||
// Moved the item from the chest directly above the hopper
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Check if the chest is a double-chest (chest directly above was empty), if so, try to move from there:
|
||||
static const struct
|
||||
{
|
||||
@@ -395,7 +395,7 @@ bool cHopperEntity::MoveItemsFromChest(cChunk & a_Chunk)
|
||||
continue;
|
||||
}
|
||||
|
||||
cChestEntity * SideChest = (cChestEntity *)Neighbor->GetBlockEntity(m_PosX + Coords[i].x, m_PosY + 1, m_PosZ + Coords[i].z);
|
||||
cChestEntity * SideChest = static_cast<cChestEntity *>(Neighbor->GetBlockEntity(m_PosX + Coords[i].x, m_PosY + 1, m_PosZ + Coords[i].z));
|
||||
if (SideChest == NULL)
|
||||
{
|
||||
LOGWARNING("%s: A chest entity was not found where expected, at {%d, %d, %d}", __FUNCTION__, m_PosX + Coords[i].x, m_PosY + 1, m_PosZ + Coords[i].z);
|
||||
@@ -409,7 +409,7 @@ bool cHopperEntity::MoveItemsFromChest(cChunk & a_Chunk)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// The chest was single and nothing could be moved
|
||||
return false;
|
||||
}
|
||||
@@ -421,13 +421,13 @@ bool cHopperEntity::MoveItemsFromChest(cChunk & a_Chunk)
|
||||
/// Moves items from a furnace above the hopper into this hopper. Returns true if contents have changed.
|
||||
bool cHopperEntity::MoveItemsFromFurnace(cChunk & a_Chunk)
|
||||
{
|
||||
cFurnaceEntity * Furnace = (cFurnaceEntity *)a_Chunk.GetBlockEntity(m_PosX, m_PosY + 1, m_PosZ);
|
||||
cFurnaceEntity * Furnace = static_cast<cFurnaceEntity *>(a_Chunk.GetBlockEntity(m_PosX, m_PosY + 1, m_PosZ));
|
||||
if (Furnace == NULL)
|
||||
{
|
||||
LOGWARNING("%s: A furnace entity was not found where expected, at {%d, %d, %d}", __FUNCTION__, m_PosX, m_PosY + 1, m_PosZ);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Try move from the output slot:
|
||||
if (MoveItemsFromSlot(*Furnace, cFurnaceEntity::fsOutput, true))
|
||||
{
|
||||
@@ -435,7 +435,7 @@ bool cHopperEntity::MoveItemsFromFurnace(cChunk & a_Chunk)
|
||||
Furnace->SetOutputSlot(NewOutput.AddCount(-1));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// No output moved, check if we can move an empty bucket out of the fuel slot:
|
||||
if (Furnace->GetFuelSlot().m_ItemType == E_ITEM_BUCKET)
|
||||
{
|
||||
@@ -445,7 +445,7 @@ bool cHopperEntity::MoveItemsFromFurnace(cChunk & a_Chunk)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Nothing can be moved
|
||||
return false;
|
||||
}
|
||||
@@ -458,7 +458,7 @@ bool cHopperEntity::MoveItemsFromGrid(cBlockEntityWithItems & a_Entity)
|
||||
{
|
||||
cItemGrid & Grid = a_Entity.GetContents();
|
||||
int NumSlots = Grid.GetNumSlots();
|
||||
|
||||
|
||||
// First try adding items of types already in the hopper:
|
||||
for (int i = 0; i < NumSlots; i++)
|
||||
{
|
||||
@@ -519,7 +519,7 @@ bool cHopperEntity::MoveItemsFromSlot(cBlockEntityWithItems & a_Entity, int a_Sl
|
||||
// Plugin disagrees with the move
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
m_Contents.ChangeSlotCount(i, 1);
|
||||
return true;
|
||||
}
|
||||
@@ -535,7 +535,7 @@ bool cHopperEntity::MoveItemsFromSlot(cBlockEntityWithItems & a_Entity, int a_Sl
|
||||
bool cHopperEntity::MoveItemsToChest(cChunk & a_Chunk, int a_BlockX, int a_BlockY, int a_BlockZ)
|
||||
{
|
||||
// Try the chest directly connected to the hopper:
|
||||
cChestEntity * ConnectedChest = (cChestEntity *)a_Chunk.GetBlockEntity(a_BlockX, a_BlockY, a_BlockZ);
|
||||
cChestEntity * ConnectedChest = static_cast<cChestEntity *>(a_Chunk.GetBlockEntity(a_BlockX, a_BlockY, a_BlockZ));
|
||||
if (ConnectedChest == NULL)
|
||||
{
|
||||
LOGWARNING("%s: A chest entity was not found where expected, at {%d, %d, %d}", __FUNCTION__, a_BlockX, a_BlockY, a_BlockZ);
|
||||
@@ -578,7 +578,7 @@ bool cHopperEntity::MoveItemsToChest(cChunk & a_Chunk, int a_BlockX, int a_Block
|
||||
continue;
|
||||
}
|
||||
|
||||
cChestEntity * Chest = (cChestEntity *)Neighbor->GetBlockEntity(a_BlockX + Coords[i].x, a_BlockY, a_BlockZ + Coords[i].z);
|
||||
cChestEntity * Chest = static_cast<cChestEntity *>(Neighbor->GetBlockEntity(a_BlockX + Coords[i].x, a_BlockY, a_BlockZ + Coords[i].z));
|
||||
if (Chest == NULL)
|
||||
{
|
||||
LOGWARNING("%s: A chest entity was not found where expected, at {%d, %d, %d} (%d, %d)", __FUNCTION__, a_BlockX + Coords[i].x, a_BlockY, a_BlockZ + Coords[i].z, x, z);
|
||||
@@ -590,7 +590,7 @@ bool cHopperEntity::MoveItemsToChest(cChunk & a_Chunk, int a_BlockX, int a_Block
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// The chest was single and nothing could be moved
|
||||
return false;
|
||||
}
|
||||
@@ -602,7 +602,7 @@ bool cHopperEntity::MoveItemsToChest(cChunk & a_Chunk, int a_BlockX, int a_Block
|
||||
/// Moves items to the furnace at the specified coords. Returns true if contents have changed
|
||||
bool cHopperEntity::MoveItemsToFurnace(cChunk & a_Chunk, int a_BlockX, int a_BlockY, int a_BlockZ, NIBBLETYPE a_HopperMeta)
|
||||
{
|
||||
cFurnaceEntity * Furnace = (cFurnaceEntity *)a_Chunk.GetBlockEntity(a_BlockX, a_BlockY, a_BlockZ);
|
||||
cFurnaceEntity * Furnace = static_cast<cFurnaceEntity *>(a_Chunk.GetBlockEntity(a_BlockX, a_BlockY, a_BlockZ));
|
||||
if (a_HopperMeta == E_META_HOPPER_FACING_YM)
|
||||
{
|
||||
// Feed the input slot of the furnace
|
||||
@@ -684,7 +684,3 @@ bool cHopperEntity::MoveItemsToSlot(cBlockEntityWithItems & a_Entity, int a_DstS
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ bool cJukeboxEntity::EjectRecord(void)
|
||||
}
|
||||
|
||||
cItems Drops;
|
||||
Drops.push_back(cItem(m_Record, 1, 0));
|
||||
Drops.push_back(cItem(static_cast<short>(m_Record), 1, 0));
|
||||
m_Record = 0;
|
||||
m_World->SpawnItemPickups(Drops, m_PosX + 0.5, m_PosY + 1, m_PosZ + 0.5, 8);
|
||||
m_World->BroadcastSoundParticleEffect(1005, m_PosX, m_PosY, m_PosZ, 0);
|
||||
@@ -113,7 +113,3 @@ void cJukeboxEntity::SetRecord(int a_Record)
|
||||
{
|
||||
m_Record = a_Record;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ void cSignEntity::SetLines(const AString & a_Line1, const AString & a_Line2, con
|
||||
|
||||
void cSignEntity::SetLine(int a_Index, const AString & a_Line)
|
||||
{
|
||||
if ((a_Index < 0) || (a_Index >= (int)ARRAYCOUNT(m_Line)))
|
||||
if ((a_Index < 0) || (a_Index >= static_cast<int>(ARRAYCOUNT(m_Line))))
|
||||
{
|
||||
LOGWARNING("%s: setting a non-existent line %d (value \"%s\"", __FUNCTION__, a_Index, a_Line.c_str());
|
||||
return;
|
||||
@@ -59,7 +59,7 @@ void cSignEntity::SetLine(int a_Index, const AString & a_Line)
|
||||
|
||||
AString cSignEntity::GetLine(int a_Index) const
|
||||
{
|
||||
if ((a_Index < 0) || (a_Index >= (int)ARRAYCOUNT(m_Line)))
|
||||
if ((a_Index < 0) || (a_Index >= static_cast<int>(ARRAYCOUNT(m_Line))))
|
||||
{
|
||||
LOGWARNING("%s: requesting a non-existent line %d", __FUNCTION__, a_Index);
|
||||
return "";
|
||||
@@ -75,7 +75,3 @@ void cSignEntity::SendTo(cClientHandle & a_Client)
|
||||
{
|
||||
a_Client.SendUpdateSign(m_PosX, m_PosY, m_PosZ, m_Line[0], m_Line[1], m_Line[2], m_Line[3]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user