From 6d606fe90f4bd991f3c60e246b526cc51c004e44 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 23 Jul 2012 06:59:22 +0300 Subject: [PATCH] Add rule for 0.3.1 --- rules.d/000-0.3.1/tag | 1 + rules.d/000-0.3.1/unistd.patch | 12 ++ .../worldtest_load_check_set_0.3.patch | 160 ++++++++++++++++++ 3 files changed, 173 insertions(+) create mode 100644 rules.d/000-0.3.1/tag create mode 100644 rules.d/000-0.3.1/unistd.patch create mode 100644 rules.d/000-0.3.1/worldtest_load_check_set_0.3.patch diff --git a/rules.d/000-0.3.1/tag b/rules.d/000-0.3.1/tag new file mode 100644 index 0000000..9e11b32 --- /dev/null +++ b/rules.d/000-0.3.1/tag @@ -0,0 +1 @@ +0.3.1 diff --git a/rules.d/000-0.3.1/unistd.patch b/rules.d/000-0.3.1/unistd.patch new file mode 100644 index 0000000..788ea8d --- /dev/null +++ b/rules.d/000-0.3.1/unistd.patch @@ -0,0 +1,12 @@ +diff --git a/src/filesys.cpp b/src/filesys.cpp +index ab950d4..bd82a4c 100644 +--- a/src/filesys.cpp ++++ b/src/filesys.cpp +@@ -214,6 +214,7 @@ bool DeleteSingleFileOrEmptyDirectory(std::string path) + #include + #include + #include ++#include + + std::vector GetDirListing(std::string pathstring) + { diff --git a/rules.d/000-0.3.1/worldtest_load_check_set_0.3.patch b/rules.d/000-0.3.1/worldtest_load_check_set_0.3.patch new file mode 100644 index 0000000..bc4793e --- /dev/null +++ b/rules.d/000-0.3.1/worldtest_load_check_set_0.3.patch @@ -0,0 +1,160 @@ +diff --git a/src/server.cpp b/src/server.cpp +index 52e9dc8..1e98a56 100644 +--- a/src/server.cpp ++++ b/src/server.cpp +@@ -165,6 +165,10 @@ void * EmergeThread::Thread() + */ + + bool only_from_disk = true; ++ // ++ // This doesn't seem to really work in our case ++ only_from_disk = false; ++ // + + { + core::map::Iterator i; +@@ -987,6 +991,20 @@ u32 PIChecksum(core::list &l) + // Load players + infostream<<"Server: Loading players"< ++ // Load or generate blocks near origin ++ dstream< + } + + Server::~Server() +@@ -1204,6 +1222,123 @@ void Server::AsyncRunStep() + } + } + ++ // ++ // Quit when blocks near origin have been loaded or generated ++ { ++ JMutexAutoLock envlock(m_env_mutex); ++ // Make sure EmergeThread runs ++ m_emergethread.trigger(); ++ // Check area near origin ++ Map *map = &m_env.getMap(); ++ if( ++ !m_shutdown_requested && ++ map->getBlockNoCreateNoEx(v3s16(0,0,0)) && ++ map->getBlockNoCreateNoEx(v3s16(0,0,0))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(0,0,-1)) && ++ map->getBlockNoCreateNoEx(v3s16(0,0,-1))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(0,-1,0)) && ++ map->getBlockNoCreateNoEx(v3s16(0,-1,0))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(0,-1,-1)) && ++ map->getBlockNoCreateNoEx(v3s16(0,-1,-1))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(-1,0,0)) && ++ map->getBlockNoCreateNoEx(v3s16(-1,0,0))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(-1,0,-1)) && ++ map->getBlockNoCreateNoEx(v3s16(-1,0,-1))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(-1,-1,0)) && ++ map->getBlockNoCreateNoEx(v3s16(-1,-1,0))->isGenerated() && ++ map->getBlockNoCreateNoEx(v3s16(-1,-1,-1)) && ++ map->getBlockNoCreateNoEx(v3s16(-1,-1,-1))->isGenerated() ++ ){ ++ dstream<getNodeNoEx(v3s16(-1,-1,-1)); ++ NODECHECK(n.getContent() == CONTENT_NC); ++ } ++ { ++ MapNode n = map->getNodeNoEx(v3s16(0,3,0)); ++ NODECHECK(n.getContent() == CONTENT_NC); ++ } ++ { ++ MapNode n = map->getNodeNoEx(v3s16(0,2,0)); ++ NODECHECK(n.getContent() == CONTENT_TORCH); ++ NODECHECK(n.getLight(LIGHTBANK_DAY) == 13); ++ NODECHECK(n.getLight(LIGHTBANK_NIGHT) == 13); ++ } ++ { ++ MapNode n = map->getNodeNoEx(v3s16(0,1,0)); ++ NODECHECK(n.getContent() == CONTENT_GLASS); ++ NODECHECK(n.getLight(LIGHTBANK_DAY) == 12); ++ NODECHECK(n.getLight(LIGHTBANK_NIGHT) == 12); ++ } ++ { ++ MapNode n = map->getNodeNoEx(v3s16(0,0,0)); ++ NODECHECK(n.getContent() == CONTENT_AIR); ++ NODECHECK(n.getLight(LIGHTBANK_DAY) == 11); ++ NODECHECK(n.getLight(LIGHTBANK_NIGHT) == 11); ++ } ++ dstream<<"ERRORS: "<setNode(v3s16(x,y,z), n); ++ } ++ { ++ MapNode n(CONTENT_TORCH); ++ n.setLight(LIGHTBANK_DAY, 13); ++ n.setLight(LIGHTBANK_NIGHT, 13); ++ map->setNode(v3s16(0,2,0), n); ++ } ++ { ++ MapNode n(CONTENT_GLASS); ++ n.setLight(LIGHTBANK_DAY, 12); ++ n.setLight(LIGHTBANK_NIGHT, 12); ++ map->setNode(v3s16(0,1,0), n); ++ } ++ { ++ MapNode n(CONTENT_AIR); ++ n.setLight(LIGHTBANK_DAY, 11); ++ n.setLight(LIGHTBANK_NIGHT, 11); ++ map->setNode(v3s16(0,0,0), n); ++ } ++ { ++ MapNode n(CONTENT_SIGN_WALL); ++ map->setNode(v3s16(0,0,2), n); ++ map->setNodeMetadata(v3s16(0,0,2), new SignNodeMetadata("Foo Bar")); ++ } ++ dstream< ++ + { + JMutexAutoLock lock(m_env_mutex); + // Step environment