summaryrefslogtreecommitdiffstats
path: root/source/Defines.h
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-10-03 20:41:19 +0200
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-10-03 20:41:19 +0200
commit386d58b5862d8b76925c6523721594887606e82a (patch)
treeef073e7a843f4b75a4008d4b7383f7cdf08ceee5 /source/Defines.h
parentVisual Studio 2010 solution and project files (diff)
downloadcuberite-386d58b5862d8b76925c6523721594887606e82a.tar
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.gz
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.bz2
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.lz
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.xz
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.zst
cuberite-386d58b5862d8b76925c6523721594887606e82a.zip
Diffstat (limited to '')
-rw-r--r--source/Defines.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/source/Defines.h b/source/Defines.h
new file mode 100644
index 000000000..1b176208c
--- /dev/null
+++ b/source/Defines.h
@@ -0,0 +1,129 @@
+#pragma once
+
+#include "MemoryLeak.h"
+
+//tolua_begin
+// emissive blocks
+extern char g_BlockLightValue[];
+// whether blocks allow spreading
+extern char g_BlockSpreadLightFalloff[];
+// whether blocks are transparent (light can shine though)
+extern bool g_BlockTransparent[];
+// one hit break blocks
+extern bool g_BlockOneHitDig[];
+//tolua_end
+
+//--DO NOT DELETE THIS COMMENT-- //tolua_export
+
+inline bool IsValidBlock( int a_BlockID ) //tolua_export
+{ //tolua_export
+ if( a_BlockID > -1 &&
+ a_BlockID <= 96 &&
+ a_BlockID != 29 &&
+ a_BlockID != 33 &&
+ a_BlockID != 34 &&
+ a_BlockID != 36 )
+ {
+ return true;
+ }
+ return false;
+} //tolua_export
+
+inline bool isValidItem( int a_ItemID ) //tolua_export
+{ //tolua_export
+ if( (a_ItemID >= 256 && a_ItemID <= 358)
+ || (a_ItemID == 2256 || a_ItemID == 2257) )
+ {
+ return true;
+ }
+
+ if( a_ItemID == 0 )
+ return false;
+
+ return IsValidBlock( a_ItemID );
+} //tolua_export
+
+inline void AddDirection( int & a_X, char & a_Y, int & a_Z, char a_Direction, bool a_bInverse = false ) //tolua_export
+{//tolua_export
+ if( !a_bInverse )
+ {
+ switch( a_Direction )
+ {
+ case 0:
+ a_Y--;
+ break;
+ case 1:
+ a_Y++;
+ break;
+ case 2:
+ a_Z--;
+ break;
+ case 3:
+ a_Z++;
+ break;
+ case 4:
+ a_X--;
+ break;
+ case 5:
+ a_X++;
+ break;
+ };
+ }
+ else
+ {
+ switch( a_Direction ) // other way around
+ {
+ case 0:
+ a_Y++;
+ break;
+ case 1:
+ a_Y--;
+ break;
+ case 2:
+ a_Z++;
+ break;
+ case 3:
+ a_Z--;
+ break;
+ case 4:
+ a_X++;
+ break;
+ case 5:
+ a_X--;
+ break;
+ };
+ }
+}//tolua_export
+
+#include <math.h>
+#define PI 3.14159265358979323846264338327950288419716939937510582097494459072381640628620899862803482534211706798f
+#define MIN(a,b) (((a)>(b))?(b):(a))
+#define MAX(a,b) (((a)>(b))?(a):(b))
+inline void EulerToVector( float a_Pan, float a_Pitch, float & a_X, float & a_Y, float & a_Z )
+{
+// a_X = sinf ( a_Pan / 180 * PI ) * cosf ( a_Pitch / 180 * PI );
+// a_Y = -sinf ( a_Pitch / 180 * PI );
+// a_Z = -cosf ( a_Pan / 180 * PI ) * cosf ( a_Pitch / 180 * PI );
+a_X = cos(a_Pan / 180 * PI)*cos(a_Pitch / 180 * PI);
+a_Y = sin(a_Pan / 180 * PI)*cos(a_Pitch / 180 * PI);
+a_Z = sin(a_Pitch / 180 * PI);
+}
+
+inline void VectorToEuler( float a_X, float a_Y, float a_Z, float & a_Pan, float & a_Pitch )
+{
+ if( a_X != 0 )
+ a_Pan = atan2( a_Z, a_X ) * 180 / PI - 90;
+ else
+ a_Pan = 0;
+ a_Pitch = atan2(a_Y, sqrtf((a_X * a_X) + (a_Z * a_Z))) * 180 / PI;
+}
+
+inline float GetSignf( float a_Val )
+{
+ return (a_Val < 0.f)?-1.f:1.f;
+}
+
+inline float GetSpecialSignf( float a_Val )
+{
+ return (a_Val <= 0.f)?-1.f:1.f;
+}