Ender Crytal Fix and report proper cmake file for luabindingscheck fail (#5017)
* fixed network fixed explosion fixed ticking added network broadcast to Setter method added nullptr protection using macros in 1.10 Protocol_1_10.cpp revealed functions to LUA API small fixups, typos, less functions used fixed more doc readded info that saving is done only if the beam is displayed made the constructor transfer all needed members fixed wrong commit removed default parameters on SpawnEnderCrystal fixed wrong metadata moved call to destroy in the right place fixed some typos Fixed Ender Crystal * fixed documentation * fixed doc and added proper error message * Parameters, arrows * Parameters Co-authored-by: 12xx12 <12xx12100@gmail.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
This commit is contained in:
@@ -10,8 +10,19 @@
|
||||
|
||||
|
||||
|
||||
cEnderCrystal::cEnderCrystal(Vector3d a_Pos, bool a_ShowBottom):
|
||||
cEnderCrystal::cEnderCrystal(Vector3d a_Pos, bool a_ShowBottom) :
|
||||
cEnderCrystal(a_Pos, {}, false, a_ShowBottom)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cEnderCrystal::cEnderCrystal(Vector3d a_Pos, Vector3i a_BeamTarget, bool a_DisplayBeam, bool a_ShowBottom) :
|
||||
Super(etEnderCrystal, a_Pos, 1.0, 1.0),
|
||||
m_BeamTarget(a_BeamTarget),
|
||||
m_DisplayBeam(a_DisplayBeam),
|
||||
m_ShowBottom(a_ShowBottom)
|
||||
{
|
||||
SetMaxHealth(5);
|
||||
@@ -21,9 +32,40 @@ cEnderCrystal::cEnderCrystal(Vector3d a_Pos, bool a_ShowBottom):
|
||||
|
||||
|
||||
|
||||
void cEnderCrystal::SetShowBottom(bool a_ShowBottom)
|
||||
{
|
||||
m_ShowBottom = a_ShowBottom;
|
||||
m_World->BroadcastEntityMetadata(*this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cEnderCrystal::SetBeamTarget(Vector3i a_BeamTarget)
|
||||
{
|
||||
m_BeamTarget = a_BeamTarget;
|
||||
m_World->BroadcastEntityMetadata(*this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cEnderCrystal::SetDisplayBeam(bool a_DisplayBeam)
|
||||
{
|
||||
m_DisplayBeam = a_DisplayBeam;
|
||||
m_World->BroadcastEntityMetadata(*this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cEnderCrystal::SpawnOn(cClientHandle & a_ClientHandle)
|
||||
{
|
||||
a_ClientHandle.SendSpawnEntity(*this);
|
||||
a_ClientHandle.SendEntityMetadata(*this);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,10 +75,9 @@ void cEnderCrystal::SpawnOn(cClientHandle & a_ClientHandle)
|
||||
void cEnderCrystal::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
|
||||
{
|
||||
UNUSED(a_Dt);
|
||||
// No further processing (physics e.t.c.) is needed
|
||||
if (m_World->GetDimension() == dimEnd)
|
||||
if ((m_World->GetDimension() == dimEnd) && (m_World->GetBlock(POS_TOINT) != E_BLOCK_FIRE))
|
||||
{
|
||||
m_World->SetBlock(POS_TOINT.addedY(1), E_BLOCK_FIRE, 0);
|
||||
m_World->SetBlock(POS_TOINT, E_BLOCK_FIRE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,11 +89,11 @@ void cEnderCrystal::KilledBy(TakeDamageInfo & a_TDI)
|
||||
{
|
||||
Super::KilledBy(a_TDI);
|
||||
|
||||
m_World->DoExplosionAt(6.0, GetPosX(), GetPosY(), GetPosZ(), true, esEnderCrystal, this);
|
||||
m_World->DoExplosionAt(6.0, GetPosX(), GetPosY() + (GetHeight() / 2.0), GetPosZ(), true, esEnderCrystal, this);
|
||||
|
||||
Destroy();
|
||||
|
||||
m_World->SetBlock(POSX_TOINT, POSY_TOINT, POSZ_TOINT, E_BLOCK_FIRE, 0);
|
||||
m_World->SetBlock(POS_TOINT, E_BLOCK_FIRE, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user