summaryrefslogtreecommitdiffstats
path: root/source/TNTEntity.cpp
diff options
context:
space:
mode:
authorkeyboard.osh@gmail.com <keyboard.osh@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-04-18 04:42:45 +0200
committerkeyboard.osh@gmail.com <keyboard.osh@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-04-18 04:42:45 +0200
commitb75fc5f4e8dc837f069e89541b52144defa2d1b9 (patch)
tree2e9a05e1ed16da917c5e8651b1bb70100a9db153 /source/TNTEntity.cpp
parentNoise: removed the unused SSE branches and unused interpolation methods. Removed the Noise.inc file. (diff)
downloadcuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.tar
cuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.tar.gz
cuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.tar.bz2
cuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.tar.lz
cuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.tar.xz
cuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.tar.zst
cuberite-b75fc5f4e8dc837f069e89541b52144defa2d1b9.zip
Diffstat (limited to '')
-rw-r--r--source/TNTEntity.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/source/TNTEntity.cpp b/source/TNTEntity.cpp
new file mode 100644
index 000000000..636c9535c
--- /dev/null
+++ b/source/TNTEntity.cpp
@@ -0,0 +1,70 @@
+#include "Globals.h"
+
+#include "TNTEntity.h"
+#include "World.h"
+#include "ClientHandle.h"
+
+
+
+
+
+cTNTEntity::cTNTEntity(int a_X,int a_Y,int a_Z,float a_MaxFuseTime) :
+ super(etTNT, a_X + 0.5f, a_Y + 0.5f, a_Z + 0.5f)
+{
+ m_MaxFuseTime = a_MaxFuseTime;
+ m_Counter = 0;
+}
+
+
+
+
+
+cTNTEntity::cTNTEntity(const Vector3i a_Pos,float a_MaxFuseTime) :
+ super(etTNT, a_Pos.x,a_Pos.y,a_Pos.z)
+{
+ m_MaxFuseTime = a_MaxFuseTime;
+ m_Counter = 0;
+}
+
+
+
+
+void cTNTEntity::Initialize(cWorld * a_World)
+{
+ super::Initialize(a_World);
+ a_World->BroadcastSpawn(*this);
+}
+
+
+
+
+
+void cTNTEntity::SpawnOn(cClientHandle & a_ClientHandle)
+{
+ a_ClientHandle.SendSpawnObject(*this,50,1,0,0); //50 means TNT
+ m_bDirtyPosition = false;
+ m_bDirtySpeed = false;
+ m_bDirtyOrientation = false;
+ m_bDirtyHead = false;
+}
+
+
+
+
+
+void cTNTEntity::Tick(float a_Dt, cChunk & a_Chunk)
+{
+ float delta_time = a_Dt / 1000; //Convert miliseconds to seconds
+ m_Counter += delta_time;
+ if (m_Counter > m_MaxFuseTime) //Check if we go KABOOOM
+ {
+ Destroy();
+ LOGD("BOOM at {%f,%f,%f}",GetPosX(),GetPosY(),GetPosZ());
+ m_World->DoExplosiontAt(4.0,(int)floor(GetPosX()),(int)floor(GetPosY()),(int)floor(GetPosZ()));
+ return;
+ }
+}
+
+
+
+