aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp23
-rw-r--r--src/map.cpp8
-rw-r--r--src/mapblock.cpp20
-rw-r--r--src/mapnode.h15
-rw-r--r--src/tile.cpp39
-rw-r--r--src/voxel.cpp2
6 files changed, 41 insertions, 66 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 858d25fa1..171f1538a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -236,7 +236,7 @@ Map:
NOTE: There are some lighting-related todos and fixmes in
ServerMap::emergeBlock. And there always will be. 8)
-TODO: Map generator version 2
+FEATURE: Map generator version 2
- Create surface areas based on central points; a given point's
area type is given by the nearest central point
- Separate points for heightmap, caves, plants and minerals?
@@ -246,18 +246,33 @@ TODO: Map generator version 2
where some minerals are found
- Create a system that allows a huge amount of different "map
generator modules/filters"
+
+FEATURE: The map could be generated procedually:
+ - This would need the map to be generated in larger pieces
+ - How large? How do they connect to each other?
+ * Make the stone level with a heightmap
+ * Carve out stuff in the stone
+ * Dump dirt all around, and simulate it falling off steep
+ places
+ * Erosion simulation at map generation time
+ - Simulate water flows, which would carve out dirt fast and
+ then turn stone into gravel and sand and relocate it.
+ - How about relocating minerals, too? Coal and gold in
+ downstream sand and gravel would be kind of cool
+ - This would need a better way of handling minerals, mainly
+ to have mineral content as a separate field
+ - Simulate rock falling from cliffs when water has removed
+ enough solid rock from the bottom
TODO: Change AttributeList to split the area into smaller sections so
that searching won't be as heavy.
-TODO: Change AttributeList to be 2D, as it would be too slow to search
- in 3D fields anyway.
TODO: Remove HMParams
TODO: Flowing water to actually contain flow direction information
TODO: Remove duplicate lighting implementation from Map (leave
- VoxelManipulator)
+ VoxelManipulator, which is faster)
Doing now:
----------
diff --git a/src/map.cpp b/src/map.cpp
index bbcc0f36f..0b5872e05 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1804,7 +1804,7 @@ ServerMap::ServerMap(std::string savedir, HMParams hmp, MapParams mp):
float randmax = 0;
float randfactor = 0;
- if(myrand()%5 == 0)
+ /*if(myrand()%5 == 0)
{
baseheight = 100;
randmax = 50;
@@ -1833,7 +1833,11 @@ ServerMap::ServerMap(std::string savedir, HMParams hmp, MapParams mp):
baseheight = -3;
randmax = 20;
randfactor = 0.5;
- }
+ }*/
+
+ baseheight = 0;
+ randmax = 15;
+ randfactor = 0.63;
list_baseheight->addPoint(p, Attribute(baseheight));
list_randmax->addPoint(p, Attribute(randmax));
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 620c29fdd..3eb65b4da 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -1504,13 +1504,13 @@ void MapBlock::serialize(std::ostream &os, u8 version)
if(version >= 10)
{
- // Get and compress pressure
- SharedBuffer<u8> pressuredata(nodecount);
+ // Get and compress param2
+ SharedBuffer<u8> param2data(nodecount);
for(u32 i=0; i<nodecount; i++)
{
- pressuredata[i] = data[i].pressure;
+ param2data[i] = data[i].param2;
}
- compress(pressuredata, os, version);
+ compress(param2data, os, version);
}
}
// All other versions (newest)
@@ -1544,10 +1544,10 @@ void MapBlock::serialize(std::ostream &os, u8 version)
databuf[i+nodecount] = data[i].param;
}
- // Get pressure
+ // Get param2
for(u32 i=0; i<nodecount; i++)
{
- databuf[i+nodecount*2] = data[i].pressure;
+ databuf[i+nodecount*2] = data[i].param2;
}
/*
@@ -1621,7 +1621,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version)
if(version >= 10)
{
- // Uncompress and set pressure data
+ // Uncompress and set param2 data
std::ostringstream os(std::ios_base::binary);
decompress(is, os, version);
std::string s = os.str();
@@ -1630,7 +1630,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version)
("MapBlock::deSerialize: invalid format");
for(u32 i=0; i<s.size(); i++)
{
- data[i].pressure = s[i];
+ data[i].param2 = s[i];
}
}
}
@@ -1662,10 +1662,10 @@ void MapBlock::deSerialize(std::istream &is, u8 version)
{
data[i].param = s[i+nodecount];
}
- // Set pressure
+ // Set param2
for(u32 i=0; i<nodecount; i++)
{
- data[i].pressure = s[i+nodecount*2];
+ data[i].param2 = s[i+nodecount*2];
}
}
}
diff --git a/src/mapnode.h b/src/mapnode.h
index 286edcc2b..69a5a08cd 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -374,11 +374,6 @@ struct MapNode
union
{
u8 param2;
-
- /*
- Pressure for liquids
- */
- u8 pressure;
/*
Direction for torches and other stuff.
@@ -392,18 +387,18 @@ struct MapNode
*this = n;
}
- MapNode(u8 data=CONTENT_AIR, u8 a_param=0, u8 a_pressure=0)
+ MapNode(u8 data=CONTENT_AIR, u8 a_param=0, u8 a_param2=0)
{
d = data;
param = a_param;
- pressure = a_pressure;
+ param2 = a_param2;
}
bool operator==(const MapNode &other)
{
return (d == other.d
&& param == other.param
- && pressure == other.pressure);
+ && param2 == other.param2);
}
bool light_propagates()
@@ -557,7 +552,7 @@ struct MapNode
{
dest[0] = d;
dest[1] = param;
- dest[2] = pressure;
+ dest[2] = param2;
}
}
void deSerialize(u8 *source, u8 version)
@@ -587,7 +582,7 @@ struct MapNode
{
d = source[0];
param = source[1];
- pressure = source[2];
+ param2 = source[2];
}
}
};
diff --git a/src/tile.cpp b/src/tile.cpp
index 79d68d4c3..18a2f155a 100644
--- a/src/tile.cpp
+++ b/src/tile.cpp
@@ -23,51 +23,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "main.h"
#include <string>
-// A mapping from tiles to paths of textures
-
-/*const char * g_tile_texture_filenames[TILES_COUNT] =
-{
- NULL,
- "stone.png",
- "water.png",
- "grass.png",
- "tree.png",
- "leaves.png",
- "grass_footsteps.png",
- "mese.png",
- "mud.png",
- "tree_top.png",
- "mud.png_sidegrass",
- "cloud.png",
- "coalstone.png",
- "wood.png",
-};*/
-
/*
These can either be real paths or generated names of preloaded
textures (like "mud.png_sidegrass")
*/
std::string g_tile_texture_paths[TILES_COUNT];
-/*std::string g_tile_texture_path_strings[TILES_COUNT];
-const char * g_tile_texture_paths[TILES_COUNT] = {0};
-
-void init_tile_texture_paths()
-{
- for(s32 i=0; i<TILES_COUNT; i++)
- {
- const char *filename = g_tile_texture_filenames[i];
-
- if(filename != NULL)
- {
- g_tile_texture_path_strings[i] =
- porting::getDataPath(filename);
- g_tile_texture_paths[i] =
- g_tile_texture_path_strings[i].c_str();
- }
- }
-}*/
-
const char * tile_texture_path_get(u32 i)
{
assert(i < TILES_COUNT);
diff --git a/src/voxel.cpp b/src/voxel.cpp
index a0cc44d71..272e11ccc 100644
--- a/src/voxel.cpp
+++ b/src/voxel.cpp
@@ -96,7 +96,7 @@ void VoxelManipulator::print(std::ostream &o, VoxelPrintMode mode)
{
c = 'X';
u8 m = m_data[m_area.index(x,y,z)].d;
- u8 pr = m_data[m_area.index(x,y,z)].pressure;
+ u8 pr = m_data[m_area.index(x,y,z)].param2;
if(mode == VOXELPRINT_MATERIAL)
{
if(m <= 9)