Moved cFireChargeEntity out of ProjectileEntity.h
This commit is contained in:
parent
08b77f4880
commit
de7eaa5735
@ -18,6 +18,7 @@
|
|||||||
#include "ProjectileEnderPearl.h"
|
#include "ProjectileEnderPearl.h"
|
||||||
#include "ProjectileExpBottle.h"
|
#include "ProjectileExpBottle.h"
|
||||||
#include "ProjectileSnowball.h"
|
#include "ProjectileSnowball.h"
|
||||||
|
#include "ProjectileFireCharge.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -521,56 +522,3 @@ void cGhastFireballEntity::OnHitEntity(cEntity & a_EntityHit, const Vector3d & a
|
|||||||
Destroy();
|
Destroy();
|
||||||
Explode((int)floor(a_HitPos.x), (int)floor(a_HitPos.y), (int)floor(a_HitPos.z));
|
Explode((int)floor(a_HitPos.x), (int)floor(a_HitPos.y), (int)floor(a_HitPos.z));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// cFireChargeEntity :
|
|
||||||
|
|
||||||
cFireChargeEntity::cFireChargeEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed) :
|
|
||||||
super(pkFireCharge, a_Creator, a_X, a_Y, a_Z, 0.3125, 0.3125)
|
|
||||||
{
|
|
||||||
SetSpeed(a_Speed);
|
|
||||||
SetGravity(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cFireChargeEntity::Explode(int a_BlockX, int a_BlockY, int a_BlockZ)
|
|
||||||
{
|
|
||||||
if (m_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ) == E_BLOCK_AIR)
|
|
||||||
{
|
|
||||||
m_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_FIRE, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cFireChargeEntity::OnHitSolidBlock(const Vector3d & a_HitPos, eBlockFace a_HitFace)
|
|
||||||
{
|
|
||||||
Destroy();
|
|
||||||
Explode((int)floor(a_HitPos.x), (int)floor(a_HitPos.y), (int)floor(a_HitPos.z));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cFireChargeEntity::OnHitEntity(cEntity & a_EntityHit, const Vector3d & a_HitPos)
|
|
||||||
{
|
|
||||||
Destroy();
|
|
||||||
Explode((int)floor(a_HitPos.x), (int)floor(a_HitPos.y), (int)floor(a_HitPos.z));
|
|
||||||
|
|
||||||
// TODO: Some entities are immune to hits
|
|
||||||
a_EntityHit.StartBurning(5 * 20); // 5 seconds of burning
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,34 +165,6 @@ protected:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class cFireChargeEntity :
|
|
||||||
public cProjectileEntity
|
|
||||||
{
|
|
||||||
typedef cProjectileEntity super;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
// tolua_end
|
|
||||||
|
|
||||||
CLASS_PROTODEF(cFireChargeEntity);
|
|
||||||
|
|
||||||
cFireChargeEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
void Explode(int a_BlockX, int a_BlockY, int a_BlockZ);
|
|
||||||
|
|
||||||
// cProjectileEntity overrides:
|
|
||||||
virtual void OnHitSolidBlock(const Vector3d & a_HitPos, eBlockFace a_HitFace) override;
|
|
||||||
virtual void OnHitEntity(cEntity & a_EntityHit, const Vector3d & a_HitPos) override;
|
|
||||||
|
|
||||||
// tolua_begin
|
|
||||||
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
|
|
||||||
|
50
src/Entities/ProjectileFireCharge.cpp
Normal file
50
src/Entities/ProjectileFireCharge.cpp
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||||
|
|
||||||
|
#include "ProjectileFireCharge.h"
|
||||||
|
#include "../World.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cFireChargeEntity::cFireChargeEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed) :
|
||||||
|
super(pkFireCharge, a_Creator, a_X, a_Y, a_Z, 0.3125, 0.3125)
|
||||||
|
{
|
||||||
|
SetSpeed(a_Speed);
|
||||||
|
SetGravity(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cFireChargeEntity::Explode(int a_BlockX, int a_BlockY, int a_BlockZ)
|
||||||
|
{
|
||||||
|
if (m_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ) == E_BLOCK_AIR)
|
||||||
|
{
|
||||||
|
m_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_FIRE, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cFireChargeEntity::OnHitSolidBlock(const Vector3d & a_HitPos, eBlockFace a_HitFace)
|
||||||
|
{
|
||||||
|
Destroy();
|
||||||
|
Explode((int)floor(a_HitPos.x), (int)floor(a_HitPos.y), (int)floor(a_HitPos.z));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cFireChargeEntity::OnHitEntity(cEntity & a_EntityHit, const Vector3d & a_HitPos)
|
||||||
|
{
|
||||||
|
Destroy();
|
||||||
|
Explode((int)floor(a_HitPos.x), (int)floor(a_HitPos.y), (int)floor(a_HitPos.z));
|
||||||
|
|
||||||
|
// TODO: Some entities are immune to hits
|
||||||
|
a_EntityHit.StartBurning(5 * 20); // 5 seconds of burning
|
||||||
|
}
|
36
src/Entities/ProjectileFireCharge.h
Normal file
36
src/Entities/ProjectileFireCharge.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// ProjectileFireCharge.h
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "ProjectileEntity.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class cFireChargeEntity :
|
||||||
|
public cProjectileEntity
|
||||||
|
{
|
||||||
|
typedef cProjectileEntity super;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// tolua_end
|
||||||
|
|
||||||
|
CLASS_PROTODEF(cFireChargeEntity);
|
||||||
|
|
||||||
|
cFireChargeEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void Explode(int a_BlockX, int a_BlockY, int a_BlockZ);
|
||||||
|
|
||||||
|
// cProjectileEntity overrides:
|
||||||
|
virtual void OnHitSolidBlock(const Vector3d & a_HitPos, eBlockFace a_HitFace) override;
|
||||||
|
virtual void OnHitEntity(cEntity & a_EntityHit, const Vector3d & a_HitPos) override;
|
||||||
|
|
||||||
|
// tolua_begin
|
||||||
|
|
||||||
|
} ;
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "Blaze.h"
|
#include "Blaze.h"
|
||||||
#include "../World.h"
|
#include "../World.h"
|
||||||
|
#include "../Entities/ProjectileFireCharge.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include "../Entities/ProjectileEgg.h"
|
#include "../Entities/ProjectileEgg.h"
|
||||||
#include "../Entities/ProjectileEnderPearl.h"
|
#include "../Entities/ProjectileEnderPearl.h"
|
||||||
#include "../Entities/ProjectileSnowball.h"
|
#include "../Entities/ProjectileSnowball.h"
|
||||||
|
#include "../Entities/ProjectileFireCharge.h"
|
||||||
#include "../Entities/TNTEntity.h"
|
#include "../Entities/TNTEntity.h"
|
||||||
#include "../Entities/ExpOrb.h"
|
#include "../Entities/ExpOrb.h"
|
||||||
#include "../Entities/HangingEntity.h"
|
#include "../Entities/HangingEntity.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user