diff options
author | Perttu Ahola <celeron55@gmail.com> | 2010-11-29 12:16:17 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2010-11-29 12:16:17 +0200 |
commit | c18af6e728fc15ccec65c5c3c8a5c44f0d0a86a1 (patch) | |
tree | fef01c5239c0ed359737038ba3fe9d1dc24ade6f | |
parent | b326e75baac47c616913b91b94ff542f0d3c4f92 (diff) | |
download | minetest-c18af6e728fc15ccec65c5c3c8a5c44f0d0a86a1.tar.gz minetest-c18af6e728fc15ccec65c5c3c8a5c44f0d0a86a1.tar.bz2 minetest-c18af6e728fc15ccec65c5c3c8a5c44f0d0a86a1.zip |
- added map generating script
- dropped support for versions older than 2 because of lighting support
-rwxr-xr-x | genmap.py | 38 | ||||
-rw-r--r-- | src/client.cpp | 4 | ||||
-rw-r--r-- | src/map.cpp | 60 | ||||
-rw-r--r-- | src/serialization.h | 4 |
4 files changed, 66 insertions, 40 deletions
diff --git a/genmap.py b/genmap.py new file mode 100755 index 000000000..8949888a4 --- /dev/null +++ b/genmap.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import struct +import random + +def getrand(): + i = random.randrange(0,2) + if i==0: + return 0 + return 254 + +""" +Map format: +map/sectors/XXXXZZZZ/YYYY + +XXXX,YYYY,ZZZZ = coordinates in hexadecimal + +fffe = -2 +ffff = -1 +0000 = 0 +0001 = 1 +""" + +f = open("map/sectors/00000000/ffff", "wb") + +# version +f.write(struct.pack('B', 2)) +# is_underground +f.write(struct.pack('B', 0)) + +for i in range(0,16*16*16): + # Material content + f.write(struct.pack('B', getrand())) + # Brightness + f.write(struct.pack('B', 15)) + +f.close() + diff --git a/src/client.cpp b/src/client.cpp index cf9feed7d..b461549d2 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -148,9 +148,9 @@ void Client::step(float dtime) counter -= dtime; if(counter <= 0.0) { - counter = 10.0; + counter = 20.0; - dout_client<<"Client packetcounter:"<<std::endl; + dout_client<<"Client packetcounter (20s):"<<std::endl; m_packetcounter.print(dout_client); m_packetcounter.clear(); } diff --git a/src/map.cpp b/src/map.cpp index f5b63d5af..1fbaf0899 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1780,16 +1780,15 @@ MapBlock * ServerMap::emergeBlock( MapNode n; n.d = MATERIAL_MESE; - if(rand()%8 == 0) - block->setNode(cp, n); + if(is_ground_material(block->getNode(cp).d)) + if(rand()%8 == 0) + block->setNode(cp, n); for(u16 i=0; i<26; i++) { - if(!is_ground_material(block->getNode(cp+g_26dirs[i]).d)) - continue; - - if(rand()%8 == 0) - block->setNode(cp+g_26dirs[i], n); + if(is_ground_material(block->getNode(cp+g_26dirs[i]).d)) + if(rand()%8 == 0) + block->setNode(cp+g_26dirs[i], n); } } } @@ -1798,15 +1797,25 @@ MapBlock * ServerMap::emergeBlock( /* Create a few rats in empty blocks underground */ - /*if(is_underground && low_block_is_empty == true) + if(is_underground) { //for(u16 i=0; i<2; i++) { - v3s16 pos(8, 1, 8); - RatObject *obj = new RatObject(NULL, -1, intToFloat(pos)); - block->addObject(obj); + v3s16 cp( + (rand()%(MAP_BLOCKSIZE-2))+1, + (rand()%(MAP_BLOCKSIZE-2))+1, + (rand()%(MAP_BLOCKSIZE-2))+1 + ); + + // Check that the place is empty + //if(!is_ground_material(block->getNode(cp).d)) + if(1) + { + RatObject *obj = new RatObject(NULL, -1, intToFloat(cp)); + block->addObject(obj); + } } - }*/ + } /* Add block to sector. @@ -2491,31 +2500,8 @@ void ServerMap::loadBlock(std::string sectordir, std::string blockfile, MapSecto Convert old formats to new and save */ - if(version == 0 || version == 1) - { - dstream<<"Block ("<<p3d.X<<","<<p3d.Y<<","<<p3d.Z<<")" - " is in old format. Updating lighting and saving" - " modified blocks in new format."<<std::endl; - - // Old version has zero lighting, update it - core::map<v3s16, MapBlock*> blocks_changed; - blocks_changed.insert(block->getPos(), block); - core::map<v3s16, MapBlock*> modified_blocks; - updateLighting(blocks_changed, modified_blocks); - - // Close input file - is.close(); - - // Save modified blocks - core::map<v3s16, MapBlock * >::Iterator i = modified_blocks.getIterator(); - for(; i.atEnd() == false; i++) - { - MapBlock *b2 = i.getNode()->getValue(); - saveBlock(b2); - } - } - // Save blocks in new format - else if(version < SER_FMT_VER_HIGHEST) + // Save old format blocks in new format + if(version < SER_FMT_VER_HIGHEST) { saveBlock(block); } diff --git a/src/serialization.h b/src/serialization.h index fd9b39535..b55625a4b 100644 --- a/src/serialization.h +++ b/src/serialization.h @@ -15,8 +15,10 @@ loadable by any version. Other compatibility is not maintained. Serialization format versions: + == Unsupported == 0: original networked test with 1-byte nodes 1: update with 2-byte nodes + == Supported == 2: lighting is transmitted in param 3: optional fetching of far blocks 4: block compression @@ -31,7 +33,7 @@ // Highest supported serialization version #define SER_FMT_VER_HIGHEST 9 // Lowest supported serialization version -#define SER_FMT_VER_LOWEST 0 +#define SER_FMT_VER_LOWEST 2 #define ser_ver_supported(v) (v >= SER_FMT_VER_LOWEST && v <= SER_FMT_VER_HIGHEST) |