mirror of
https://github.com/minetest/minetest.git
synced 2024-11-30 11:33:44 +01:00
moved map generator to separate source files
This commit is contained in:
parent
b55d2d4a65
commit
f2c26e2014
@ -61,6 +61,7 @@ configure_file(
|
|||||||
)
|
)
|
||||||
|
|
||||||
set(common_SRCS
|
set(common_SRCS
|
||||||
|
mapgen.cpp
|
||||||
content_inventory.cpp
|
content_inventory.cpp
|
||||||
content_nodemeta.cpp
|
content_nodemeta.cpp
|
||||||
content_craft.cpp
|
content_craft.cpp
|
||||||
|
@ -29,16 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "map.h"
|
#include "map.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
|
|
||||||
/*
|
#include "mapgen.h"
|
||||||
Temporarily exposed map generator stuff
|
|
||||||
Should only be used for testing
|
|
||||||
*/
|
|
||||||
//extern double base_rock_level_2d(u64 seed, v2s16 p);
|
|
||||||
//extern double get_mud_add_amount(u64 seed, v2s16 p);
|
|
||||||
extern s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision);
|
|
||||||
extern bool get_have_sand(u64 seed, v2s16 p2d);
|
|
||||||
extern double tree_amount_2d(u64 seed, v2s16 p);
|
|
||||||
|
|
||||||
|
|
||||||
FarMesh::FarMesh(
|
FarMesh::FarMesh(
|
||||||
scene::ISceneNode* parent,
|
scene::ISceneNode* parent,
|
||||||
@ -127,14 +118,14 @@ HeightPoint ground_height(u64 seed, v2s16 p2d)
|
|||||||
if(n)
|
if(n)
|
||||||
return n->getValue();
|
return n->getValue();
|
||||||
HeightPoint hp;
|
HeightPoint hp;
|
||||||
s16 level = find_ground_level_from_noise(seed, p2d, 3);
|
s16 level = mapgen::find_ground_level_from_noise(seed, p2d, 3);
|
||||||
hp.gh = (level-4)*BS;
|
hp.gh = (level-4)*BS;
|
||||||
hp.ma = (4)*BS;
|
hp.ma = (4)*BS;
|
||||||
/*hp.gh = BS*base_rock_level_2d(seed, p2d);
|
/*hp.gh = BS*base_rock_level_2d(seed, p2d);
|
||||||
hp.ma = BS*get_mud_add_amount(seed, p2d);*/
|
hp.ma = BS*get_mud_add_amount(seed, p2d);*/
|
||||||
hp.have_sand = get_have_sand(seed, p2d);
|
hp.have_sand = mapgen::get_have_sand(seed, p2d);
|
||||||
if(hp.gh > BS*WATER_LEVEL)
|
if(hp.gh > BS*WATER_LEVEL)
|
||||||
hp.tree_amount = tree_amount_2d(seed, p2d);
|
hp.tree_amount = mapgen::tree_amount_2d(seed, p2d);
|
||||||
else
|
else
|
||||||
hp.tree_amount = 0;
|
hp.tree_amount = 0;
|
||||||
// No mud has been added if mud amount is less than 1
|
// No mud has been added if mud amount is less than 1
|
||||||
|
1905
src/map.cpp
1905
src/map.cpp
File diff suppressed because it is too large
Load Diff
1936
src/mapgen.cpp
Normal file
1936
src/mapgen.cpp
Normal file
File diff suppressed because it is too large
Load Diff
51
src/mapgen.h
Normal file
51
src/mapgen.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
Minetest-c55
|
||||||
|
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MAPGEN_HEADER
|
||||||
|
#define MAPGEN_HEADER
|
||||||
|
|
||||||
|
#include "common_irrlicht.h"
|
||||||
|
|
||||||
|
struct BlockMakeData;
|
||||||
|
class MapBlock;
|
||||||
|
|
||||||
|
namespace mapgen
|
||||||
|
{
|
||||||
|
// Finds precise ground level at any position
|
||||||
|
s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision);
|
||||||
|
|
||||||
|
// Find out if block is completely underground
|
||||||
|
bool block_is_underground(u64 seed, v3s16 blockpos);
|
||||||
|
|
||||||
|
// Main map generation routine
|
||||||
|
void make_block(BlockMakeData *data);
|
||||||
|
|
||||||
|
// Add objects according to block content
|
||||||
|
void add_random_objects(MapBlock *block);
|
||||||
|
|
||||||
|
/*
|
||||||
|
These are used by FarMesh
|
||||||
|
*/
|
||||||
|
bool get_have_sand(u64 seed, v2s16 p2d);
|
||||||
|
double tree_amount_2d(u64 seed, v2s16 p);
|
||||||
|
|
||||||
|
}; // namespace mapgen
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -2546,12 +2546,12 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Send the removal to all other clients.
|
Send the removal to all close-by players.
|
||||||
- If other player is close, send REMOVENODE
|
- If other player is close, send REMOVENODE
|
||||||
- Otherwise set blocks not sent
|
- Otherwise set blocks not sent
|
||||||
*/
|
*/
|
||||||
core::list<u16> far_players;
|
core::list<u16> far_players;
|
||||||
sendRemoveNode(p_under, peer_id, &far_players, 100);
|
sendRemoveNode(p_under, peer_id, &far_players, 30);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Update and send inventory
|
Update and send inventory
|
||||||
@ -2714,10 +2714,10 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
|||||||
n.dir = packDir(p_under - p_over);
|
n.dir = packDir(p_under - p_over);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Send to all players
|
Send to all close-by players
|
||||||
*/
|
*/
|
||||||
core::list<u16> far_players;
|
core::list<u16> far_players;
|
||||||
sendAddNode(p_over, n, 0, &far_players, 100);
|
sendAddNode(p_over, n, 0, &far_players, 30);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Handle inventory
|
Handle inventory
|
||||||
|
@ -17,10 +17,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
(c) 2010 Perttu Ahola <celeron55@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SERVER_HEADER
|
#ifndef SERVER_HEADER
|
||||||
#define SERVER_HEADER
|
#define SERVER_HEADER
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user