summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/Entity.cpp20
-rw-r--r--source/Entity.h9
2 files changed, 29 insertions, 0 deletions
diff --git a/source/Entity.cpp b/source/Entity.cpp
index 5f14a5e53..c614c8e9c 100644
--- a/source/Entity.cpp
+++ b/source/Entity.cpp
@@ -33,6 +33,7 @@ cEntity::cEntity(eEntityType a_EntityType, double a_X, double a_Y, double a_Z)
, m_HeadYaw( 0.0 )
, m_Rot(0.0, 0.0, 0.0)
, m_Pos(a_X, a_Y, a_Z)
+ , m_Mass (0.001) //Default 1g
, m_bDirtyHead(true)
, m_bDirtyOrientation(true)
, m_bDirtyPosition(true)
@@ -506,6 +507,25 @@ void cEntity::SetHeadYaw(double a_HeadYaw)
+void cEntity::SetMass(double a_Mass)
+{
+ if (a_Mass > 0)
+ {
+ m_Mass = a_Mass;
+ }
+ else
+ {
+ //Make sure that mass is not zero. 1g is the default because we
+ //have to choose a number. It's perfectly legal to have a mass
+ //less than 1g as long as is NOT equal or less than zero.
+ m_Mass = 0.001;
+ }
+}
+
+
+
+
+
void cEntity::SetRotation(double a_Rotation)
{
m_Rot.x = a_Rotation;
diff --git a/source/Entity.h b/source/Entity.h
index 3009bc611..779ce5358 100644
--- a/source/Entity.h
+++ b/source/Entity.h
@@ -107,6 +107,7 @@ public:
cWorld * GetWorld(void) const { return m_World; }
double GetHeadYaw (void) const {return m_HeadYaw; }
+ double GetMass (void) const {return m_Mass; }
const Vector3d & GetPosition (void) const {return m_Pos; }
double GetPosX (void) const {return m_Pos.x; }
double GetPosY (void) const {return m_Pos.y; }
@@ -125,6 +126,7 @@ public:
int GetChunkZ(void) const {return FAST_FLOOR_DIV(((int)m_Pos.z), cChunkDef::Width); }
void SetHeadYaw (double a_HeadYaw);
+ void SetMass (double a_Mass);
void SetPosX (double a_PosX);
void SetPosY (double a_PosY);
void SetPosZ (double a_PosZ);
@@ -247,11 +249,18 @@ protected:
void ReferencedBy( cEntity*& a_EntityPtr );
void Dereference( cEntity*& a_EntityPtr );
private:
+ //Measured in degrees (MAX 360°)
double m_HeadYaw;
+ //Measured in meter/second (m/s)
Vector3d m_Speed;
+ //Measured in degrees (MAX 360°)
Vector3d m_Rot;
+ //Measured in meters (1 meter = 1 block) (m)
Vector3d m_Pos;
+ //Measured in meter/second
Vector3d m_WaterSpeed;
+ //Measured in Kilograms (Kg)
+ double m_Mass
} ; // tolua_export
typedef std::list<cEntity *> cEntityList;