removed alternative name "pressure" from param2

This commit is contained in:
Perttu Ahola 2011-01-25 09:53:21 +02:00
parent de3fdba568
commit d3a6a12bae
6 changed files with 41 additions and 66 deletions

@ -236,7 +236,7 @@ Map:
NOTE: There are some lighting-related todos and fixmes in NOTE: There are some lighting-related todos and fixmes in
ServerMap::emergeBlock. And there always will be. 8) 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 - Create surface areas based on central points; a given point's
area type is given by the nearest central point area type is given by the nearest central point
- Separate points for heightmap, caves, plants and minerals? - Separate points for heightmap, caves, plants and minerals?
@ -247,17 +247,32 @@ TODO: Map generator version 2
- Create a system that allows a huge amount of different "map - Create a system that allows a huge amount of different "map
generator modules/filters" 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 TODO: Change AttributeList to split the area into smaller sections so
that searching won't be as heavy. 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: Remove HMParams
TODO: Flowing water to actually contain flow direction information TODO: Flowing water to actually contain flow direction information
TODO: Remove duplicate lighting implementation from Map (leave TODO: Remove duplicate lighting implementation from Map (leave
VoxelManipulator) VoxelManipulator, which is faster)
Doing now: Doing now:
---------- ----------

@ -1804,7 +1804,7 @@ ServerMap::ServerMap(std::string savedir, HMParams hmp, MapParams mp):
float randmax = 0; float randmax = 0;
float randfactor = 0; float randfactor = 0;
if(myrand()%5 == 0) /*if(myrand()%5 == 0)
{ {
baseheight = 100; baseheight = 100;
randmax = 50; randmax = 50;
@ -1833,7 +1833,11 @@ ServerMap::ServerMap(std::string savedir, HMParams hmp, MapParams mp):
baseheight = -3; baseheight = -3;
randmax = 20; randmax = 20;
randfactor = 0.5; randfactor = 0.5;
} }*/
baseheight = 0;
randmax = 15;
randfactor = 0.63;
list_baseheight->addPoint(p, Attribute(baseheight)); list_baseheight->addPoint(p, Attribute(baseheight));
list_randmax->addPoint(p, Attribute(randmax)); list_randmax->addPoint(p, Attribute(randmax));

@ -1504,13 +1504,13 @@ void MapBlock::serialize(std::ostream &os, u8 version)
if(version >= 10) if(version >= 10)
{ {
// Get and compress pressure // Get and compress param2
SharedBuffer<u8> pressuredata(nodecount); SharedBuffer<u8> param2data(nodecount);
for(u32 i=0; i<nodecount; i++) 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) // All other versions (newest)
@ -1544,10 +1544,10 @@ void MapBlock::serialize(std::ostream &os, u8 version)
databuf[i+nodecount] = data[i].param; databuf[i+nodecount] = data[i].param;
} }
// Get pressure // Get param2
for(u32 i=0; i<nodecount; i++) 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) if(version >= 10)
{ {
// Uncompress and set pressure data // Uncompress and set param2 data
std::ostringstream os(std::ios_base::binary); std::ostringstream os(std::ios_base::binary);
decompress(is, os, version); decompress(is, os, version);
std::string s = os.str(); std::string s = os.str();
@ -1630,7 +1630,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version)
("MapBlock::deSerialize: invalid format"); ("MapBlock::deSerialize: invalid format");
for(u32 i=0; i<s.size(); i++) 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]; data[i].param = s[i+nodecount];
} }
// Set pressure // Set param2
for(u32 i=0; i<nodecount; i++) for(u32 i=0; i<nodecount; i++)
{ {
data[i].pressure = s[i+nodecount*2]; data[i].param2 = s[i+nodecount*2];
} }
} }
} }

@ -375,11 +375,6 @@ struct MapNode
{ {
u8 param2; u8 param2;
/*
Pressure for liquids
*/
u8 pressure;
/* /*
Direction for torches and other stuff. Direction for torches and other stuff.
Format is freeform. e.g. packDir or encode_dirs can be used. Format is freeform. e.g. packDir or encode_dirs can be used.
@ -392,18 +387,18 @@ struct MapNode
*this = n; *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; d = data;
param = a_param; param = a_param;
pressure = a_pressure; param2 = a_param2;
} }
bool operator==(const MapNode &other) bool operator==(const MapNode &other)
{ {
return (d == other.d return (d == other.d
&& param == other.param && param == other.param
&& pressure == other.pressure); && param2 == other.param2);
} }
bool light_propagates() bool light_propagates()
@ -557,7 +552,7 @@ struct MapNode
{ {
dest[0] = d; dest[0] = d;
dest[1] = param; dest[1] = param;
dest[2] = pressure; dest[2] = param2;
} }
} }
void deSerialize(u8 *source, u8 version) void deSerialize(u8 *source, u8 version)
@ -587,7 +582,7 @@ struct MapNode
{ {
d = source[0]; d = source[0];
param = source[1]; param = source[1];
pressure = source[2]; param2 = source[2];
} }
} }
}; };

@ -23,51 +23,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "main.h" #include "main.h"
#include <string> #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 These can either be real paths or generated names of preloaded
textures (like "mud.png_sidegrass") textures (like "mud.png_sidegrass")
*/ */
std::string g_tile_texture_paths[TILES_COUNT]; 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) const char * tile_texture_path_get(u32 i)
{ {
assert(i < TILES_COUNT); assert(i < TILES_COUNT);

@ -96,7 +96,7 @@ void VoxelManipulator::print(std::ostream &o, VoxelPrintMode mode)
{ {
c = 'X'; c = 'X';
u8 m = m_data[m_area.index(x,y,z)].d; 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(mode == VOXELPRINT_MATERIAL)
{ {
if(m <= 9) if(m <= 9)