Renamed "select..." methods to "set..." and better IsValidEffect() function.
This commit is contained in:
parent
c49d4fd215
commit
6b1f7e7a45
@ -64,54 +64,18 @@ char cBeaconEntity::CalculatePyramidLevel(void)
|
|||||||
|
|
||||||
bool cBeaconEntity::IsValidEffect(cEntityEffect::eType a_Effect, char a_BeaconLevel)
|
bool cBeaconEntity::IsValidEffect(cEntityEffect::eType a_Effect, char a_BeaconLevel)
|
||||||
{
|
{
|
||||||
if (a_Effect == cEntityEffect::effNoEffect)
|
switch (a_Effect)
|
||||||
{
|
{
|
||||||
return true;
|
case cEntityEffect::effRegeneration: return (a_BeaconLevel >= 4);
|
||||||
|
case cEntityEffect::effStrength: return (a_BeaconLevel >= 3);
|
||||||
|
case cEntityEffect::effResistance: return (a_BeaconLevel >= 2);
|
||||||
|
case cEntityEffect::effJumpBoost: return (a_BeaconLevel >= 2);
|
||||||
|
case cEntityEffect::effSpeed: return (a_BeaconLevel >= 1);
|
||||||
|
case cEntityEffect::effHaste: return (a_BeaconLevel >= 1);
|
||||||
|
case cEntityEffect::effNoEffect: return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (a_BeaconLevel)
|
LOGD("%s: Invalid beacon effect: %d", __FUNCTION__, (int)a_Effect);
|
||||||
{
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
// Beacon level 4
|
|
||||||
if (a_Effect == cEntityEffect::effRegeneration)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
// Beacon level 3
|
|
||||||
if (a_Effect == cEntityEffect::effStrength)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
// Beacon level 2
|
|
||||||
switch (a_Effect)
|
|
||||||
{
|
|
||||||
case cEntityEffect::effResistance:
|
|
||||||
case cEntityEffect::effJumpBoost:
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
// Beacon level 1
|
|
||||||
switch (a_Effect)
|
|
||||||
{
|
|
||||||
case cEntityEffect::effSpeed:
|
|
||||||
case cEntityEffect::effHaste:
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +83,7 @@ bool cBeaconEntity::IsValidEffect(cEntityEffect::eType a_Effect, char a_BeaconLe
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool cBeaconEntity::SelectPrimaryEffect(cEntityEffect::eType a_Effect)
|
bool cBeaconEntity::SetPrimaryEffect(cEntityEffect::eType a_Effect)
|
||||||
{
|
{
|
||||||
if (!IsValidEffect(a_Effect, m_BeaconLevel))
|
if (!IsValidEffect(a_Effect, m_BeaconLevel))
|
||||||
{
|
{
|
||||||
@ -140,7 +104,7 @@ bool cBeaconEntity::SelectPrimaryEffect(cEntityEffect::eType a_Effect)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool cBeaconEntity::SelectSecondaryEffect(cEntityEffect::eType a_Effect)
|
bool cBeaconEntity::SetSecondaryEffect(cEntityEffect::eType a_Effect)
|
||||||
{
|
{
|
||||||
if (!IsValidEffect(a_Effect, m_BeaconLevel))
|
if (!IsValidEffect(a_Effect, m_BeaconLevel))
|
||||||
{
|
{
|
||||||
|
@ -55,11 +55,11 @@ public:
|
|||||||
cEntityEffect::eType GetPrimaryEffect(void) const { return m_PrimaryEffect; }
|
cEntityEffect::eType GetPrimaryEffect(void) const { return m_PrimaryEffect; }
|
||||||
cEntityEffect::eType GetSecondaryEffect(void) const { return m_SecondaryEffect; }
|
cEntityEffect::eType GetSecondaryEffect(void) const { return m_SecondaryEffect; }
|
||||||
|
|
||||||
/** Select the primary effect. Returns false when the effect is invalid.*/
|
/** Sets the primary effect. Returns false when the effect is invalid. */
|
||||||
bool SelectPrimaryEffect(cEntityEffect::eType a_Effect);
|
bool SetPrimaryEffect(cEntityEffect::eType a_Effect);
|
||||||
|
|
||||||
/** Select the secondary effect. Returns false when the effect is invalid. */
|
/** Sets the secondary effect. Returns false when the effect is invalid. */
|
||||||
bool SelectSecondaryEffect(cEntityEffect::eType a_Effect);
|
bool SetSecondaryEffect(cEntityEffect::eType a_Effect);
|
||||||
|
|
||||||
/** Calculate the amount of layers the pyramid below the beacon has. */
|
/** Calculate the amount of layers the pyramid below the beacon has. */
|
||||||
char CalculatePyramidLevel(void);
|
char CalculatePyramidLevel(void);
|
||||||
|
@ -792,8 +792,8 @@ void cClientHandle::HandleBeaconSelection(const char * a_Data, size_t a_Length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Window->SetSlot(*m_Player, 0, cItem());
|
Window->SetSlot(*m_Player, 0, cItem());
|
||||||
BeaconWindow->GetBeaconEntity()->SelectPrimaryEffect(PrimaryEffect);
|
BeaconWindow->GetBeaconEntity()->SetPrimaryEffect(PrimaryEffect);
|
||||||
BeaconWindow->GetBeaconEntity()->SelectSecondaryEffect(SecondaryEffect);
|
BeaconWindow->GetBeaconEntity()->SetSecondaryEffect(SecondaryEffect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -771,13 +771,13 @@ void cWSSAnvil::LoadBeaconFromNBT(cBlockEntityList & a_BlockEntities, const cPar
|
|||||||
CurrentLine = a_NBT.FindChildByName(a_TagIdx, "Primary");
|
CurrentLine = a_NBT.FindChildByName(a_TagIdx, "Primary");
|
||||||
if (CurrentLine >= 0)
|
if (CurrentLine >= 0)
|
||||||
{
|
{
|
||||||
Beacon->SelectPrimaryEffect((cEntityEffect::eType)a_NBT.GetInt(CurrentLine));
|
Beacon->SetPrimaryEffect((cEntityEffect::eType)a_NBT.GetInt(CurrentLine));
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentLine = a_NBT.FindChildByName(a_TagIdx, "Secondary");
|
CurrentLine = a_NBT.FindChildByName(a_TagIdx, "Secondary");
|
||||||
if (CurrentLine >= 0)
|
if (CurrentLine >= 0)
|
||||||
{
|
{
|
||||||
Beacon->SelectSecondaryEffect((cEntityEffect::eType)a_NBT.GetInt(CurrentLine));
|
Beacon->SetSecondaryEffect((cEntityEffect::eType)a_NBT.GetInt(CurrentLine));
|
||||||
}
|
}
|
||||||
|
|
||||||
// We are better than mojang, we load/save the beacon inventory!
|
// We are better than mojang, we load/save the beacon inventory!
|
||||||
|
Loading…
Reference in New Issue
Block a user