now it works nicely
This commit is contained in:
parent
52d99fef31
commit
21372749f5
|
@ -989,7 +989,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
s32 t = (((m_time_of_day.get())%24000)/(24000/d));
|
s32 t = (((m_time_of_day.get())%24000)/(24000/d));
|
||||||
u32 dr;
|
u32 dr;
|
||||||
if(t < nightlength/2 || t >= d - nightlength/2)
|
if(t < nightlength/2 || t >= d - nightlength/2)
|
||||||
dr = 400;
|
dr = 300;
|
||||||
else if(t >= d/2 - daytimelength/2 && t < d/2 + daytimelength/2)
|
else if(t >= d/2 - daytimelength/2 && t < d/2 + daytimelength/2)
|
||||||
dr = 1000;
|
dr = 1000;
|
||||||
else
|
else
|
||||||
|
|
|
@ -39,7 +39,7 @@ void set_default_settings()
|
||||||
g_settings.setDefault("random_input", "false");
|
g_settings.setDefault("random_input", "false");
|
||||||
g_settings.setDefault("client_delete_unused_sectors_timeout", "1200");
|
g_settings.setDefault("client_delete_unused_sectors_timeout", "1200");
|
||||||
g_settings.setDefault("enable_fog", "true");
|
g_settings.setDefault("enable_fog", "true");
|
||||||
g_settings.setDefault("new_style_water", "true");
|
g_settings.setDefault("new_style_water", "false");
|
||||||
g_settings.setDefault("new_style_leaves", "true");
|
g_settings.setDefault("new_style_leaves", "true");
|
||||||
g_settings.setDefault("frametime_graph", "false");
|
g_settings.setDefault("frametime_graph", "false");
|
||||||
|
|
||||||
|
|
64
src/map.cpp
64
src/map.cpp
|
@ -2077,13 +2077,15 @@ double base_rock_level_2d(u64 seed, v2s16 p)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos,
|
MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos,
|
||||||
core::map<v3s16, MapBlock*> &changed_blocks)
|
core::map<v3s16, MapBlock*> &changed_blocks,
|
||||||
|
bool force)
|
||||||
{
|
{
|
||||||
DSTACK(__FUNCTION_NAME);
|
DSTACK(__FUNCTION_NAME);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Don't generate if already fully generated
|
Don't generate if already fully generated
|
||||||
*/
|
*/
|
||||||
|
if(force == false)
|
||||||
{
|
{
|
||||||
MapChunk *chunk = getChunk(chunkpos);
|
MapChunk *chunk = getChunk(chunkpos);
|
||||||
if(chunk != NULL && chunk->getGenLevel() == GENERATED_FULLY)
|
if(chunk != NULL && chunk->getGenLevel() == GENERATED_FULLY)
|
||||||
|
@ -2427,7 +2429,7 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos,
|
||||||
/*
|
/*
|
||||||
Make dungeons
|
Make dungeons
|
||||||
*/
|
*/
|
||||||
u32 dungeons_count = relative_volume / 400000;
|
u32 dungeons_count = relative_volume / 600000;
|
||||||
u32 bruises_count = relative_volume * stone_surface_max_y / 40000000;
|
u32 bruises_count = relative_volume * stone_surface_max_y / 40000000;
|
||||||
if(stone_surface_max_y < WATER_LEVEL)
|
if(stone_surface_max_y < WATER_LEVEL)
|
||||||
bruises_count = 0;
|
bruises_count = 0;
|
||||||
|
@ -2648,7 +2650,7 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos,
|
||||||
/*
|
/*
|
||||||
Make ore veins
|
Make ore veins
|
||||||
*/
|
*/
|
||||||
for(u32 jj=0; jj<relative_volume/2000; jj++)
|
for(u32 jj=0; jj<relative_volume/1000; jj++)
|
||||||
{
|
{
|
||||||
s16 max_vein_diameter = 3;
|
s16 max_vein_diameter = 3;
|
||||||
|
|
||||||
|
@ -2681,7 +2683,11 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Randomize mineral
|
// Randomize mineral
|
||||||
u8 mineral = myrand_range(1, MINERAL_COUNT-1);
|
u8 mineral;
|
||||||
|
if(myrand()%3 != 0)
|
||||||
|
mineral = MINERAL_COAL;
|
||||||
|
else
|
||||||
|
mineral = MINERAL_IRON;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Generate some vein starting from orp
|
Generate some vein starting from orp
|
||||||
|
@ -2696,7 +2702,7 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos,
|
||||||
);
|
);
|
||||||
v3f vec = rp - orp;*/
|
v3f vec = rp - orp;*/
|
||||||
|
|
||||||
v3s16 maxlen(10, 10, 10);
|
v3s16 maxlen(5, 5, 5);
|
||||||
v3f vec(
|
v3f vec(
|
||||||
(float)(myrand()%(maxlen.X*2))-(float)maxlen.X,
|
(float)(myrand()%(maxlen.X*2))-(float)maxlen.X,
|
||||||
(float)(myrand()%(maxlen.Y*2))-(float)maxlen.Y,
|
(float)(myrand()%(maxlen.Y*2))-(float)maxlen.Y,
|
||||||
|
@ -3756,8 +3762,37 @@ MapSector * ServerMap::emergeSector(v2s16 p2d,
|
||||||
/*
|
/*
|
||||||
generateChunk should have generated the sector
|
generateChunk should have generated the sector
|
||||||
*/
|
*/
|
||||||
assert(0);
|
//assert(0);
|
||||||
|
|
||||||
|
dstream<<"WARNING: ServerMap::emergeSector: Cannot find sector ("
|
||||||
|
<<p2d.X<<","<<p2d.Y<<" and chunk is already generated. "
|
||||||
|
<<std::endl;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
dstream<<"WARNING: Creating an empty sector."<<std::endl;
|
||||||
|
|
||||||
|
return createSector(p2d);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
dstream<<"WARNING: Forcing regeneration of chunk."<<std::endl;
|
||||||
|
|
||||||
|
// Generate chunk
|
||||||
|
generateChunkRaw(chunkpos, changed_blocks, true);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Return sector if it exists now
|
||||||
|
*/
|
||||||
|
sector = getSectorNoGenerateNoEx(p2d);
|
||||||
|
if(sector != NULL)
|
||||||
|
return sector;
|
||||||
|
|
||||||
|
dstream<<"ERROR: Could not get sector from anywhere."<<std::endl;
|
||||||
|
|
||||||
|
assert(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Generate directly
|
Generate directly
|
||||||
*/
|
*/
|
||||||
|
@ -4763,7 +4798,7 @@ void ServerMap::saveMapMeta()
|
||||||
|
|
||||||
createDir(m_savedir);
|
createDir(m_savedir);
|
||||||
|
|
||||||
std::string fullpath = m_savedir + "/meta.txt";
|
std::string fullpath = m_savedir + "/map_meta.txt";
|
||||||
std::ofstream os(fullpath.c_str(), std::ios_base::binary);
|
std::ofstream os(fullpath.c_str(), std::ios_base::binary);
|
||||||
if(os.good() == false)
|
if(os.good() == false)
|
||||||
{
|
{
|
||||||
|
@ -4789,7 +4824,7 @@ void ServerMap::loadMapMeta()
|
||||||
dstream<<"INFO: ServerMap::loadMapMeta(): Loading chunk metadata"
|
dstream<<"INFO: ServerMap::loadMapMeta(): Loading chunk metadata"
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
|
|
||||||
std::string fullpath = m_savedir + "/meta.txt";
|
std::string fullpath = m_savedir + "/map_meta.txt";
|
||||||
std::ifstream is(fullpath.c_str(), std::ios_base::binary);
|
std::ifstream is(fullpath.c_str(), std::ios_base::binary);
|
||||||
if(is.good() == false)
|
if(is.good() == false)
|
||||||
{
|
{
|
||||||
|
@ -4921,10 +4956,10 @@ void ServerMap::saveSectorMeta(ServerMapSector *sector)
|
||||||
std::string dir = getSectorDir(pos);
|
std::string dir = getSectorDir(pos);
|
||||||
createDir(dir);
|
createDir(dir);
|
||||||
|
|
||||||
std::string fullpath = dir + "/heightmap";
|
std::string fullpath = dir + "/meta";
|
||||||
std::ofstream o(fullpath.c_str(), std::ios_base::binary);
|
std::ofstream o(fullpath.c_str(), std::ios_base::binary);
|
||||||
if(o.good() == false)
|
if(o.good() == false)
|
||||||
throw FileNotGoodException("Cannot open master heightmap");
|
throw FileNotGoodException("Cannot open sector metafile");
|
||||||
|
|
||||||
sector->serialize(o, version);
|
sector->serialize(o, version);
|
||||||
|
|
||||||
|
@ -4938,10 +4973,10 @@ MapSector* ServerMap::loadSectorMeta(std::string dirname)
|
||||||
v2s16 p2d = getSectorPos(dirname);
|
v2s16 p2d = getSectorPos(dirname);
|
||||||
std::string dir = m_savedir + "/sectors/" + dirname;
|
std::string dir = m_savedir + "/sectors/" + dirname;
|
||||||
|
|
||||||
std::string fullpath = dir + "/heightmap";
|
std::string fullpath = dir + "/meta";
|
||||||
std::ifstream is(fullpath.c_str(), std::ios_base::binary);
|
std::ifstream is(fullpath.c_str(), std::ios_base::binary);
|
||||||
if(is.good() == false)
|
if(is.good() == false)
|
||||||
throw FileNotGoodException("Cannot open sector heightmap");
|
throw FileNotGoodException("Cannot open sector metafile");
|
||||||
|
|
||||||
ServerMapSector *sector = ServerMapSector::deSerialize
|
ServerMapSector *sector = ServerMapSector::deSerialize
|
||||||
(is, this, p2d, m_sectors);
|
(is, this, p2d, m_sectors);
|
||||||
|
@ -4975,7 +5010,10 @@ bool ServerMap::loadSectorFull(v2s16 p2d)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Load blocks
|
||||||
|
*/
|
||||||
std::vector<fs::DirListNode> list2 = fs::GetDirListing
|
std::vector<fs::DirListNode> list2 = fs::GetDirListing
|
||||||
(m_savedir+"/sectors/"+sectorsubdir);
|
(m_savedir+"/sectors/"+sectorsubdir);
|
||||||
std::vector<fs::DirListNode>::iterator i2;
|
std::vector<fs::DirListNode>::iterator i2;
|
||||||
|
|
|
@ -364,7 +364,8 @@ public:
|
||||||
All chunks touching this one can be altered also.
|
All chunks touching this one can be altered also.
|
||||||
*/
|
*/
|
||||||
MapChunk* generateChunkRaw(v2s16 chunkpos,
|
MapChunk* generateChunkRaw(v2s16 chunkpos,
|
||||||
core::map<v3s16, MapBlock*> &changed_blocks);
|
core::map<v3s16, MapBlock*> &changed_blocks,
|
||||||
|
bool force=false);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Generate a chunk and its neighbors so that it won't be touched
|
Generate a chunk and its neighbors so that it won't be touched
|
||||||
|
|
|
@ -661,7 +661,7 @@ void MapBlock::updateMesh(u32 daynight_ratio)
|
||||||
|
|
||||||
float node_water_level = 1.0;
|
float node_water_level = 1.0;
|
||||||
if(new_style_water)
|
if(new_style_water)
|
||||||
node_water_level = 0.9;
|
node_water_level = 0.85;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
We are including the faces of the trailing edges of the block.
|
We are including the faces of the trailing edges of the block.
|
||||||
|
@ -1157,13 +1157,13 @@ void MapBlock::updateMesh(u32 daynight_ratio)
|
||||||
video::S3DVertex(BS/2,0,-BS/2, 0,0,0, c, 1,1),
|
video::S3DVertex(BS/2,0,-BS/2, 0,0,0, c, 1,1),
|
||||||
video::S3DVertex(BS/2,0,BS/2, 0,0,0, c, 1,0),
|
video::S3DVertex(BS/2,0,BS/2, 0,0,0, c, 1,0),
|
||||||
video::S3DVertex(-BS/2,0,BS/2, 0,0,0, c, 0,0),*/
|
video::S3DVertex(-BS/2,0,BS/2, 0,0,0, c, 0,0),*/
|
||||||
video::S3DVertex(-BS/2,0,-BS/2, 0,0,0, c,
|
|
||||||
pa_water1.x0(), pa_water1.y1()),
|
|
||||||
video::S3DVertex(BS/2,0,-BS/2, 0,0,0, c,
|
|
||||||
pa_water1.x1(), pa_water1.y1()),
|
|
||||||
video::S3DVertex(BS/2,0,BS/2, 0,0,0, c,
|
|
||||||
pa_water1.x1(), pa_water1.y0()),
|
|
||||||
video::S3DVertex(-BS/2,0,BS/2, 0,0,0, c,
|
video::S3DVertex(-BS/2,0,BS/2, 0,0,0, c,
|
||||||
|
pa_water1.x0(), pa_water1.y1()),
|
||||||
|
video::S3DVertex(BS/2,0,BS/2, 0,0,0, c,
|
||||||
|
pa_water1.x1(), pa_water1.y1()),
|
||||||
|
video::S3DVertex(BS/2,0,-BS/2, 0,0,0, c,
|
||||||
|
pa_water1.x1(), pa_water1.y0()),
|
||||||
|
video::S3DVertex(-BS/2,0,-BS/2, 0,0,0, c,
|
||||||
pa_water1.x0(), pa_water1.y0()),
|
pa_water1.x0(), pa_water1.y0()),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue