cWorld: Added a self-test for LineBlockTracer, disabled by an #ifdef.
This commit is contained in:
parent
654714e7bc
commit
e21ed58d5f
@ -59,6 +59,9 @@
|
|||||||
|
|
||||||
#include "tolua++.h"
|
#include "tolua++.h"
|
||||||
|
|
||||||
|
// DEBUG: Test out the cLineBlockTracer class by tracing a few lines:
|
||||||
|
#include "LineBlockTracer.h"
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
@ -442,6 +445,60 @@ void cWorld::InitializeSpawn(void)
|
|||||||
|
|
||||||
// TODO: Better spawn detection - move spawn out of the water if it isn't set in the INI already
|
// TODO: Better spawn detection - move spawn out of the water if it isn't set in the INI already
|
||||||
m_SpawnY = (double)GetHeight((int)m_SpawnX, (int)m_SpawnZ) + 1.6f; // +1.6f eye height
|
m_SpawnY = (double)GetHeight((int)m_SpawnX, (int)m_SpawnZ) + 1.6f; // +1.6f eye height
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef TEST_LINEBLOCKTRACER
|
||||||
|
// DEBUG: Test out the cLineBlockTracer class by tracing a few lines:
|
||||||
|
class cTracerCallbacks :
|
||||||
|
public cBlockTracer::cCallbacks
|
||||||
|
{
|
||||||
|
virtual bool OnNextBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override
|
||||||
|
{
|
||||||
|
LOGD("Block {%d, %d, %d}: %d:%d (%s)",
|
||||||
|
a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta,
|
||||||
|
ItemToString(cItem(a_BlockType, 1, a_BlockMeta)).c_str()
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool OnNextBlockNoData(int a_BlockX, int a_BlockY, int a_BlockZ) override
|
||||||
|
{
|
||||||
|
LOGD("Block {%d, %d, %d}: no data available",
|
||||||
|
a_BlockX, a_BlockY, a_BlockZ
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool OnOutOfWorld(double a_BlockX, double a_BlockY, double a_BlockZ) override
|
||||||
|
{
|
||||||
|
LOGD("Out of world at {%f, %f, %f}", a_BlockX, a_BlockY, a_BlockZ);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool OnIntoWorld(double a_BlockX, double a_BlockY, double a_BlockZ) override
|
||||||
|
{
|
||||||
|
LOGD("Into world at {%f, %f, %f}", a_BlockX, a_BlockY, a_BlockZ);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void OnNoMoreHits(void) override
|
||||||
|
{
|
||||||
|
LOGD("No more hits");
|
||||||
|
}
|
||||||
|
} Callbacks;
|
||||||
|
LOGD("Spawn is at {%f, %f, %f}", m_SpawnX, m_SpawnY, m_SpawnZ);
|
||||||
|
LOGD("Tracing a line along +X:");
|
||||||
|
cLineBlockTracer::Trace(*this, Callbacks, m_SpawnX - 10, m_SpawnY, m_SpawnZ, m_SpawnX + 10, m_SpawnY, m_SpawnZ);
|
||||||
|
LOGD("Tracing a line along -Z:");
|
||||||
|
cLineBlockTracer::Trace(*this, Callbacks, m_SpawnX, m_SpawnY, m_SpawnZ + 10, m_SpawnX, m_SpawnY, m_SpawnZ - 10);
|
||||||
|
LOGD("Tracing a line along -Y, out of world:");
|
||||||
|
cLineBlockTracer::Trace(*this, Callbacks, m_SpawnX, 260, m_SpawnZ, m_SpawnX, -5, m_SpawnZ);
|
||||||
|
LOGD("Tracing a line along XY:");
|
||||||
|
cLineBlockTracer::Trace(*this, Callbacks, m_SpawnX - 10, m_SpawnY - 10, m_SpawnZ, m_SpawnX + 10, m_SpawnY + 10, m_SpawnZ);
|
||||||
|
LOGD("Tracing a line in generic direction:");
|
||||||
|
cLineBlockTracer::Trace(*this, Callbacks, m_SpawnX - 15, m_SpawnY - 5, m_SpawnZ + 7.5, m_SpawnX + 13, m_SpawnY - 10, m_SpawnZ + 8.5);
|
||||||
|
LOGD("Tracing tests done");
|
||||||
|
#endif // TEST_LINEBLOCKTRACER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user