Moved cGhastFireballEntity out of ProjectileEntity.h
This commit is contained in:
parent
de7eaa5735
commit
cb93a57963
@ -19,6 +19,7 @@
|
|||||||
#include "ProjectileExpBottle.h"
|
#include "ProjectileExpBottle.h"
|
||||||
#include "ProjectileSnowball.h"
|
#include "ProjectileSnowball.h"
|
||||||
#include "ProjectileFireCharge.h"
|
#include "ProjectileFireCharge.h"
|
||||||
|
#include "ProjectileGhastFireball.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -478,47 +479,4 @@ void cFireworkEntity::Tick(float a_Dt, cChunk & a_Chunk)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_ExplodeTimer++;
|
m_ExplodeTimer++;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// cGhastFireballEntity :
|
|
||||||
|
|
||||||
cGhastFireballEntity::cGhastFireballEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed) :
|
|
||||||
super(pkGhastFireball, a_Creator, a_X, a_Y, a_Z, 1, 1)
|
|
||||||
{
|
|
||||||
SetSpeed(a_Speed);
|
|
||||||
SetGravity(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cGhastFireballEntity::Explode(int a_BlockX, int a_BlockY, int a_BlockZ)
|
|
||||||
{
|
|
||||||
m_World->DoExplosionAt(1, a_BlockX, a_BlockY, a_BlockZ, true, esGhastFireball, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cGhastFireballEntity::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 cGhastFireballEntity::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));
|
|
||||||
}
|
}
|
@ -134,37 +134,6 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class cGhastFireballEntity :
|
|
||||||
public cProjectileEntity
|
|
||||||
{
|
|
||||||
typedef cProjectileEntity super;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
// tolua_end
|
|
||||||
|
|
||||||
CLASS_PROTODEF(cGhastFireballEntity);
|
|
||||||
|
|
||||||
cGhastFireballEntity(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;
|
|
||||||
|
|
||||||
// TODO: Deflecting the fireballs by arrow- or sword- hits
|
|
||||||
|
|
||||||
// tolua_begin
|
|
||||||
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
|
|
||||||
|
44
src/Entities/ProjectileGhastFireball.cpp
Normal file
44
src/Entities/ProjectileGhastFireball.cpp
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||||
|
|
||||||
|
#include "ProjectileGhastFireball.h"
|
||||||
|
#include "../World.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cGhastFireballEntity::cGhastFireballEntity(cEntity * a_Creator, double a_X, double a_Y, double a_Z, const Vector3d & a_Speed) :
|
||||||
|
super(pkGhastFireball, a_Creator, a_X, a_Y, a_Z, 1, 1)
|
||||||
|
{
|
||||||
|
SetSpeed(a_Speed);
|
||||||
|
SetGravity(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cGhastFireballEntity::Explode(int a_BlockX, int a_BlockY, int a_BlockZ)
|
||||||
|
{
|
||||||
|
m_World->DoExplosionAt(1, a_BlockX, a_BlockY, a_BlockZ, true, esGhastFireball, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cGhastFireballEntity::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 cGhastFireballEntity::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));
|
||||||
|
}
|
38
src/Entities/ProjectileGhastFireball.h
Normal file
38
src/Entities/ProjectileGhastFireball.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// ProjectileGhastFireball.h
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "ProjectileEntity.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class cGhastFireballEntity :
|
||||||
|
public cProjectileEntity
|
||||||
|
{
|
||||||
|
typedef cProjectileEntity super;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// tolua_end
|
||||||
|
|
||||||
|
CLASS_PROTODEF(cGhastFireballEntity);
|
||||||
|
|
||||||
|
cGhastFireballEntity(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;
|
||||||
|
|
||||||
|
// TODO: Deflecting the fireballs by arrow- or sword- hits
|
||||||
|
|
||||||
|
// tolua_begin
|
||||||
|
|
||||||
|
} ;
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "Ghast.h"
|
#include "Ghast.h"
|
||||||
#include "../World.h"
|
#include "../World.h"
|
||||||
|
#include "../Entities/ProjectileGhastFireball.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include "../Entities/ProjectileEnderPearl.h"
|
#include "../Entities/ProjectileEnderPearl.h"
|
||||||
#include "../Entities/ProjectileSnowball.h"
|
#include "../Entities/ProjectileSnowball.h"
|
||||||
#include "../Entities/ProjectileFireCharge.h"
|
#include "../Entities/ProjectileFireCharge.h"
|
||||||
|
#include "../Entities/ProjectileGhastFireball.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