diff options
author | Mattes D <github@xoft.cz> | 2017-02-26 23:03:24 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2017-05-04 09:49:30 +0200 |
commit | 96fdd72d45221c03d9369c1edcddc83f27656fd4 (patch) | |
tree | fe96bbeaab2465924d4c613299c8002ba0b224e5 /tests/LoadablePieces | |
parent | Gen: Moved PiecePool into a separate file. (diff) | |
download | cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.tar cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.tar.gz cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.tar.bz2 cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.tar.lz cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.tar.xz cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.tar.zst cuberite-96fdd72d45221c03d9369c1edcddc83f27656fd4.zip |
Diffstat (limited to 'tests/LoadablePieces')
-rw-r--r-- | tests/LoadablePieces/Bindings.h | 15 | ||||
-rw-r--r-- | tests/LoadablePieces/LoadablePieces.cpp | 179 | ||||
-rw-r--r-- | tests/LoadablePieces/LuaState_Declaration.inc | 4 | ||||
-rw-r--r-- | tests/LoadablePieces/LuaState_Typedefs.inc | 19 | ||||
-rw-r--r-- | tests/LoadablePieces/Stubs.cpp | 290 | ||||
-rw-r--r-- | tests/LoadablePieces/Test.cubeset | 155 | ||||
-rw-r--r-- | tests/LoadablePieces/Test1.schematic | bin | 184 -> 0 bytes |
7 files changed, 0 insertions, 662 deletions
diff --git a/tests/LoadablePieces/Bindings.h b/tests/LoadablePieces/Bindings.h deleted file mode 100644 index 490830ac3..000000000 --- a/tests/LoadablePieces/Bindings.h +++ /dev/null @@ -1,15 +0,0 @@ - -// Bindings.h - -// Dummy include file needed for LuaState to compile successfully - - - - -struct lua_State; - -int tolua_AllToLua_open(lua_State * a_LuaState); - - - - diff --git a/tests/LoadablePieces/LoadablePieces.cpp b/tests/LoadablePieces/LoadablePieces.cpp deleted file mode 100644 index 58b65464d..000000000 --- a/tests/LoadablePieces/LoadablePieces.cpp +++ /dev/null @@ -1,179 +0,0 @@ - -// LoadablePieces.cpp - -// Implements the LoadablePieces test main entrypoint - -#include "Globals.h" -#ifdef _WIN32 - #include <direct.h> - #define GetCurrentFolder _getcwd -#else - #include <unistd.h> - #define GetCurrentFolder getcwd -#endif -#include "Generating/PrefabPiecePool.h" - - - - - -static int DoLoaderTest(void) -{ - cPrefabPiecePool test; - auto res = test.LoadFromFile("Test.cubeset", true); - if (!res) - { - LOGWARNING("Loading from file \"Test.cubeset\" failed."); - return 1; - } - LOG("Loaded %u regular pieces and %u starting pieces", static_cast<unsigned>(test.GetAllPiecesCount()), static_cast<unsigned>(test.GetStartingPiecesCount())); - - // Check that we loaded all the pieces: - testassert(test.GetAllPiecesCount() == 1); - testassert(test.GetStartingPiecesCount() == 1); - - return 0; -} - - - - - -static int DoParserTest(void) -{ - // Create one static prefab to test the parser: - static const cPrefab::sDef testPrefabDef = - { - // Size: - 7, 6, 7, // SizeX = 7, SizeY = 6, SizeZ = 7 - - // Hitbox (relative to bounding box): - 0, 0, 0, // MinX, MinY, MinZ - 6, 5, 6, // MaxX, MaxY, MaxZ - - // Block definitions: - ".: 0: 0\n" /* 0 */ - "a:112: 0\n" /* netherbrick */ - "b:113: 0\n" /* netherbrickfence */, - - // Block data: - // Level 1 - "aaaaaaa" - "aaaaaaa" - "aaaaaaa" - "aaaaaaa" - "aaaaaaa" - "aaaaaaa" - "aaaaaaa" - - // Level 2 - "aa...aa" - "a.....a" - "......." - "......." - "......." - "a.....a" - "aa...aa" - - // Level 3 - "aa...aa" - "a.....a" - "......." - "......." - "......." - "a.....a" - "aa...aa" - - // Level 4 - "aa...aa" - "a.....a" - "......." - "......." - "......." - "a.....a" - "aa...aa" - - // Level 5 - "aabbbaa" - "a.....a" - "b.....b" - "b.....b" - "b.....b" - "a.....a" - "aabbbaa" - - // Level 6 - "aaaaaaa" - "a.....a" - "a.....a" - "a.....a" - "a.....a" - "a.....a" - "aaaaaaa", - - // Connections: - "0: 0, 3, 2: 4\n" - "0: 2, 3, 0: 2\n", - - // AllowedRotations: - 7, /* 1, 2, 3 CCW rotations */ - - // Merge strategy: - cBlockArea::msImprint, - - // ExtendFloorStrategy: - cPrefab::efsNone, - - // DefaultWeight: - 10, - - // DepthWeight: - "", - - // AddWeightIfSame: - 1000, - - // MoveToGround: - false, - }; - - cPrefab testPrefab(testPrefabDef); - cPiece & prefabAsPiece(testPrefab); // GetConnectors() is private in cPrefab, need to cast to parent cPiece where it is public - if (prefabAsPiece.GetConnectors().size() != 2) - { - LOGWARNING("Piece parsing failed, connectors not parsed properly. Expected 2 connectors, got %u", static_cast<unsigned>(prefabAsPiece.GetConnectors().size())); - } - return 0; -} - - - - - -int main(int argc, char * argv[]) -{ - LOGD("Test started"); - - // Print the current directory for reference: - char folder[FILENAME_MAX]; - GetCurrentFolder(folder, sizeof(folder)); - LOG("Running cPrefabPiecePool test from folder \"%s\".", folder); - - // Run the Loader test: - int res = DoLoaderTest(); - LOG("cPrefabPiecePool loading test done: %s", (res == 0) ? "success" : "failure"); - if (res != 0) - { - return res; - } - - // Run the Parser test: - res = DoParserTest(); - LOG("cPrefab parser test done: %s", (res == 0) ? "success" : "failure"); - - return res; -} - - - - diff --git a/tests/LoadablePieces/LuaState_Declaration.inc b/tests/LoadablePieces/LuaState_Declaration.inc deleted file mode 100644 index 4019b26c6..000000000 --- a/tests/LoadablePieces/LuaState_Declaration.inc +++ /dev/null @@ -1,4 +0,0 @@ - -// LuaState_Declaration.inc - -// Dummy include file needed for LuaState to compile successfully diff --git a/tests/LoadablePieces/LuaState_Typedefs.inc b/tests/LoadablePieces/LuaState_Typedefs.inc deleted file mode 100644 index 5eba7c6f8..000000000 --- a/tests/LoadablePieces/LuaState_Typedefs.inc +++ /dev/null @@ -1,19 +0,0 @@ - -// LuaState_Typedefs.inc - -// Dummy include file needed for LuaState to compile successfully - - - - - -// Forward-declare classes that are used in the API but never called: -struct HTTPRequest; -struct HTTPTemplateRequest; -class cPluginLua; -class cBoundingBox; -template <typename T> class cItemCallback; -class cEntity; - - - diff --git a/tests/LoadablePieces/Stubs.cpp b/tests/LoadablePieces/Stubs.cpp deleted file mode 100644 index 0ad3eb365..000000000 --- a/tests/LoadablePieces/Stubs.cpp +++ /dev/null @@ -1,290 +0,0 @@ - -// Stubs.cpp - -// Implements stubs of various Cuberite methods that are needed for linking but not for runtime -// This is required so that we don't bring in the entire Cuberite via dependencies - -#include "Globals.h" -#include "BlockInfo.h" -#include "Bindings.h" -#include "Bindings/DeprecatedBindings.h" -#include "Bindings/LuaJson.h" -#include "Bindings/ManualBindings.h" -#include "BlockEntities/BlockEntity.h" -#include "Blocks/BlockHandler.h" -#include "Generating/ChunkDesc.h" -#include "DeadlockDetect.h" - - - - - -// fwd: -struct lua_State; - - - - - -// Prototypes, needed by clang: -extern "C" int luaopen_lsqlite3(lua_State * a_LuaState); -extern "C" int luaopen_lxp(lua_State * a_LuaState); - - - - - -void cManualBindings::Bind(lua_State * a_LuaState) -{ -} - - - - - -void DeprecatedBindings::Bind(lua_State * a_LuaState) -{ -} - - - - - -void cLuaJson::Bind(cLuaState & a_LuaState) -{ -} - - - - - -int tolua_AllToLua_open(lua_State * a_LuaState) -{ - return 0; -} - - - - - -extern "C" int luaopen_lsqlite3(lua_State * a_LuaState) -{ - return 0; -} - - - - - -extern "C" int luaopen_lxp(lua_State * a_LuaState) -{ - return 0; -} - - - - - -cBlockInfo::~cBlockInfo() -{ -} - - - - - -void cBlockInfo::Initialize(cBlockInfo::cBlockInfoArray & a_BlockInfos) -{ - // The piece-loading code uses the handlers for rotations, so we need valid handlers - // Insert dummy handlers: - for (size_t i = 0; i < ARRAYCOUNT(a_BlockInfos); i++) - { - a_BlockInfos[i].m_Handler = new cBlockHandler(static_cast<BLOCKTYPE>(i)); - } -} - - - - - -cBlockHandler::cBlockHandler(BLOCKTYPE a_BlockType) -{ -} - - - - - -bool cBlockHandler::GetPlacementBlockTypeMeta( - cChunkInterface & a_ChunkInterface, cPlayer * a_Player, - int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, - int a_CursorX, int a_CursorY, int a_CursorZ, - BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta -) -{ - return true; -} - - - - - -void cBlockHandler::OnUpdate(cChunkInterface & cChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_PluginInterface, cChunk & a_Chunk, int a_BlockX, int a_BlockY, int a_BlockZ) -{ -} - - - - - -void cBlockHandler::OnPlacedByPlayer(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, const sSetBlock & a_BlockChange) -{ -} - - - - - -void cBlockHandler::OnDestroyedByPlayer(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ) -{ -} - - - - - -void cBlockHandler::OnPlaced(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) -{ -} - - - - - -void cBlockHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ) -{ -} - - - - - -void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) -{ -} - - - - - -void cBlockHandler::ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) -{ -} - - - - - -void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_BlockPluginInterface, cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ, bool a_CanDrop) -{ -} - - - - - -bool cBlockHandler::CanBeAt(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, const cChunk & a_Chunk) -{ - return true; -} - - - - - -bool cBlockHandler::IsUseable() -{ - return false; -} - - - - - -bool cBlockHandler::IsClickedThrough(void) -{ - return false; -} - - - - - -bool cBlockHandler::DoesIgnoreBuildCollision(void) -{ - return (m_BlockType == E_BLOCK_AIR); -} - - - - - -bool cBlockHandler::DoesDropOnUnsuitable(void) -{ - return true; -} - - - - - -void cBlockHandler::Check(cChunkInterface & a_ChunkInterface, cBlockPluginInterface & a_PluginInterface, int a_RelX, int a_RelY, int a_RelZ, cChunk & a_Chunk) -{ -} - - - - - -ColourID cBlockHandler::GetMapBaseColourID(NIBBLETYPE a_Meta) -{ - return 0; -} - - - - - -bool cBlockHandler::IsInsideBlock(const Vector3d & a_Position, const BLOCKTYPE a_BlockType, const NIBBLETYPE a_BlockMeta) -{ - return true; -} - - - - - -cBlockEntity * cBlockEntity::CreateByBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World) -{ - return nullptr; -} - - - - - -void cDeadlockDetect::TrackCriticalSection(cCriticalSection & a_CS, const AString & a_Name) -{ -} - - - - - -void cDeadlockDetect::UntrackCriticalSection(cCriticalSection & a_CS) -{ -} - - - - diff --git a/tests/LoadablePieces/Test.cubeset b/tests/LoadablePieces/Test.cubeset deleted file mode 100644 index 956e6684e..000000000 --- a/tests/LoadablePieces/Test.cubeset +++ /dev/null @@ -1,155 +0,0 @@ - --- Test.cubeset - --- This simple cubeset file is used for testing the cPrefabPiecePool loader. - - - - - -Cubeset = -{ - Metadata = - { - CubesetFormatVersion = 1, - }, - - Pieces = - { - -- One piece with inline definition: - { - Size = - { - x = 4, - y = 4, - z = 4, - }, - Hitbox = - { - MinX = 0, - MinY = 0, - MinZ = 0, - MaxX = 3, - MaxY = 3, - MaxZ = 3, - }, - BlockDefinitions = - { - ".: 0: 0", -- air - "a: 1: 0", -- stone - "b: 24: 0", -- sandstone - "c: 8: 0", -- water - "d: 85: 0", -- fence - "m: 19: 0", -- sponge - }, - BlockData = - { - -- Level 0 - "aaaa", -- 0 - "aaaa", -- 1 - "aaaa", -- 2 - "aaaa", -- 3 - - -- Level 1 - "bbbb", -- 0 - "bccb", -- 1 - "bccb", -- 2 - "bbbb", -- 3 - - -- Level 2 - "bbbb", -- 0 - "bccb", -- 1 - "bccb", -- 2 - "bbbb", -- 3 - - -- Level 3 - "bbbb", -- 0 - "bccb", -- 1 - "bccb", -- 2 - "bbbb", -- 3 - }, - Connectors = - { - { - Type = 2, - RelX = 2, - RelY = 2, - RelZ = 0, - Direction = 2, -- Z- - }, - { - Type = 2, - RelX = 0, - RelY = 2, - RelZ = 1, - Direction = 4, -- X- - }, - { - Type = 2, - RelX = 1, - RelY = 2, - RelZ = 3, - Direction = 3, -- Z+ - }, - { - Type = 2, - RelX = 3, - RelY = 2, - RelZ = 2, - Direction = 5, -- X+ - }, - }, - Metadata = - { - ["DefaultWeight"] = "100", - ["AllowedRotations"] = "7", - ["MergeStrategy"] = "msSpongePrint", - ["IsStarting"] = "1", - ["DepthWeight"] = "", - ["ExpandFloorStrategy"] = "None", - ["MoveToGround"] = "1", - ["AddWeightIfSame"] = "0", - ["VerticalStrategy"] = "Fixed|150", - }, - }, - - -- One piece with external definition: - { - Hitbox = - { - MinX = 0, - MinY = 0, - MinZ = 0, - MaxX = 3, - MaxY = 3, - MaxZ = 3, - }, - SchematicFileName = "Test1.schematic", - Connectors = - { - { - Type = 2, - RelX = 2, - RelY = 2, - RelZ = 0, - Direction = 2, -- Z- - }, - }, - Metadata = - { - ["DefaultWeight"] = "100", - ["AllowedRotations"] = "7", - ["MergeStrategy"] = "msSpongePrint", - ["IsStarting"] = "0", - ["DepthWeight"] = "", - ["ExpandFloorStrategy"] = "None", - ["MoveToGround"] = "0", - ["AddWeightIfSame"] = "0", - }, - }, - }, -- Pieces -} - - - - diff --git a/tests/LoadablePieces/Test1.schematic b/tests/LoadablePieces/Test1.schematic Binary files differdeleted file mode 100644 index 6fe19e9db..000000000 --- a/tests/LoadablePieces/Test1.schematic +++ /dev/null |