diff options
author | keyboard.osh@gmail.com <keyboard.osh@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-04-18 04:42:45 +0200 |
---|---|---|
committer | keyboard.osh@gmail.com <keyboard.osh@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-04-18 04:42:45 +0200 |
commit | b75fc5f4e8dc837f069e89541b52144defa2d1b9 (patch) | |
tree | 2e9a05e1ed16da917c5e8651b1bb70100a9db153 /source/TNTEntity.cpp | |
parent | Noise: removed the unused SSE branches and unused interpolation methods. Removed the Noise.inc file. (diff) | |
download | cuberite-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 'source/TNTEntity.cpp')
-rw-r--r-- | source/TNTEntity.cpp | 70 |
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;
+ }
+}
+
+
+
+
|