MillersMan
2829742ae8
Map::isValidPosition: Return false instead of throwing exception
2016-12-07 03:51:44 +00:00
Dániel Juhász
bcb06aeb85
Cleanup
2016-10-27 08:04:42 +02:00
Dániel Juhász
be39f61359
Use node lighting for liquid spreading
...
This commit modifies the liquid transforming procedure to light and
unlight nodes instead of whole map blocks.
2016-10-27 08:04:42 +02:00
Dániel Juhász
c071efaa43
Improved lighting
...
This commit rewrites the procedure that is responsible for light
updating.
this commit
-provides iterative solutions for unlighting and light spreading
-introduces a new priority queue-like container for the iteration
-creates per-node MapBlock caching to reduce retrieving MapBlocks from
the map
-calculates with map block positions and in-block relative node
coordinates
-skips light updating if it is not necessary since the node's new light
will be the same as its old light was
2016-10-27 08:04:42 +02:00
kwolekr
3c63c3044d
Add MapSettingsManager and new mapgen setting script API functions
...
This commit refactors the majority of the Mapgen settings system.
- MapgenParams is now owned by MapSettingsManager, itself a part of ServerMap,
instead of the EmergeManager.
- New Script API functions added:
core.get_mapgen_setting
core.get_mapgen_setting_noiseparams,
core.set_mapgen_setting, and
core.set_mapgen_setting_noiseparams.
- minetest.get/set_mapgen_params are deprecated by the above new functions.
- It is now possible to view and modify any arbitrary mapgen setting from a mod,
rather than the base MapgenParams structure.
- MapgenSpecificParams has been removed.
2016-07-03 15:38:36 -04:00
Ekdohibs
559dd99469
Make node timers more efficient
2016-06-11 23:35:17 +01:00
Loic Blot
ce42ff9cf7
Implement a PostgreSQL backend
2016-05-22 11:34:47 +02:00
Loic Blot
143401451c
DB::loadBlock copy removal & DB backend cleanup
...
* Remove the copy from db::loadBlock by using a pointer to the destination
* cleanup db backend, the child backend doesn't have to set their functions as virtual
2016-05-17 06:52:16 +02:00
gregorycu
f9a90383e1
Remove expensive copy of ContentFeatures
2016-03-30 11:38:42 -04:00
paramat
0459eca8eb
Liquid flow: Prevent water spreading on ignore
2016-01-20 00:37:00 +00:00
paramat
0bbbc6e13d
Liquids: Flow into and destroy 'floodable' nodes
...
Add new node property 'floodable', default false
Define "air" as floodable = true in C++ and lua
2016-01-07 05:57:19 +00:00
ShadowNinja
6f2d785d0f
Rename macros with two leading underscores
...
These names are reserved for the compiler/library implementations.
2015-10-14 02:39:37 -04:00
ShadowNinja
96cc5b34fe
Use warningstream for log messages with WARNING
...
Remove DTIME macro and its uses, too
2015-10-14 01:36:48 -04:00
kwolekr
0850d3bb93
Add emerge completion callback mechanism
...
Major refactor of emerge.cpp and Map::init/finishBlockMake
2015-10-04 16:27:50 -04:00
kwolekr
f0cd5da687
Define and use limit constants for Irrlicht fixed-width types
2015-10-04 04:00:16 -04:00
kwolekr
f062bbd7a1
Add /emergeblocks command and core.emerge_area() Lua API
2015-09-23 15:56:24 -04:00
Perttu Ahola
def274a583
Fix segfault caused by a8e238ed06ee8285ed4459e9deda3117419837f6
2015-08-13 19:02:48 +03:00
est31
a8e238ed06
Add count based unload limit for mapblocks
2015-08-13 07:56:07 +02:00
rubenwardy
ec796b8e81
Add map limit config option
2015-08-02 14:27:04 +02:00
kwolekr
46684beec1
Record MapBlock modification reasons as flags instead of strings
...
This improves performance of MapBlock::raiseModified by a factor of 6.
Also, clean up mapblock.h a bit and inline small functions.
2015-05-17 22:14:26 -04:00
kwolekr
ff740a4179
Ensure that Map::findNodesWithMetadata() reports nodes strictly within the node-granular area
2015-05-08 13:31:03 -04:00
kwolekr
b785577f03
Add core.find_nodes_with_meta() script API
2015-05-05 16:21:59 -04:00
Craig Robbins
9527984dbc
Move globals from main.cpp to more sane locations
...
Move debug streams to log.cpp|h
Move GUI-related globals to clientlauncher
Move g_settings and g_settings_path to settings.cpp|h
Move g_menuclouds to clouds.cpp|h
Move g_profiler to profiler.cpp|h
2015-04-01 23:04:25 +10:00
ngosang
f6e4c5d9cf
Respect game mapgen flags and save world noise params
2015-03-07 15:53:39 -05:00
Craig Robbins
ced6d20295
For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives
2015-03-07 22:41:47 +10:00
ShadowNinja
e9eda2b0d0
Don't start a server for map migration
2015-03-06 00:20:45 -05:00
ShadowNinja
708337dfc2
Clean up database API and save the local map on an interval
2015-03-06 00:20:45 -05:00
Loic Blot
06f328207f
ABMHandler and player_collisions use sequential read/write. Switch from std::list to std::vector
...
* Also remove dead code Map::unloadUnusedData which is dead since a long time
2015-03-04 17:02:36 +01:00
Loic Blot
27d4e89d32
Fix unused (and so, broken) enable_rollback_recording. This option must be reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable)
...
ok @ShadowNinja
2015-02-18 09:28:39 +01:00
Loic Blot
fd70f4f2f0
Replace std::list by std::vector into ClientMap::updateDrawList, Map::timerUpdate and ServerMap::save().
...
This will speedup the loop reading into those functions
2015-02-17 15:28:49 +01:00
Loic Blot
3c91ad8fc2
Replace std::list by std::vector into timerUpdate calls
2015-02-17 15:08:37 +01:00
Loic Blot
718bcafd51
Replace std::list by std::vector into ServerMap::listAllLoadableBlocks ServerMap::listAllLoadedBlocks and their database backends.
...
This adds a speedup on database migration and /clearobjects command
2015-02-17 14:35:44 +01:00
kwolekr
eeea454bff
Fix missing map_meta.txt error when creating new worlds
...
A missing map_meta.txt should be treated simply as if there were a blank file.
2015-01-27 02:10:04 -05:00
kwolekr
38bd9e93a2
Fix all warnings and remove -Wno-unused-but-set cflag
2015-01-18 23:29:19 -05:00
gregorycu
db3466dbe8
Water fixes
...
Change must_reflow to a deque
Add overload for MapBlock::raiseModified that takes a const char*. This is a speed improvement.
Comment out unused variable
Optimisations to block offset calculations
2015-01-18 20:30:33 +10:00
Craig Robbins
805c8e51e5
Create empty default constructor for MapNode
2015-01-18 13:39:50 +10:00
kwolekr
9736548720
Add ability to delete MapBlocks from map
...
Also add a Lua API and chatcommand for this
2015-01-15 16:48:56 -05:00
unknown
bd0d786590
Change UniqueQueue to use a queue and a set.
2015-01-15 21:08:35 +10:00
Craig Robbins
57f2fa57cd
Fix use of uninitialized data
2015-01-14 15:43:33 +10:00
kwolekr
714a4f8507
Attempt to fix occasional issue of uninitialized MapBlock data
2015-01-12 22:31:08 -05:00
kwolekr
2d849b0a19
Shorten ManualMapVoxelManipulator to MMVManip
2015-01-05 02:42:27 -05:00
Craig Robbins
3993102e88
Fix -Wtype-limits warnings and remove disabling of -Wtype-limits
2014-12-29 23:56:40 +10:00
kwolekr
cc3ab5efa5
LuaVoxelManip: Remove blank allocator
2014-12-29 01:31:37 -05:00
kwolekr
8334100fe1
LuaVoxelManip: Add option to allocate blank data
2014-12-27 23:09:36 -05:00
Craig Robbins
7b93408884
Make limiting of the reflow liquids queue size optional
...
If liquid_queue_purge_time == 0 then disable the queue size limiting and make this the default setting
Additionally, liquid_loop_max now defaults to 100000
2014-12-23 15:47:06 +10:00
Craig Robbins
082256a9f8
Do not allow the m_transforming_liquid queue to increase until all RAM is consumed
2014-12-18 03:32:19 +10:00
Anton
10e0cf8b2c
Use std::string::empty() instead of size() where applicable
2014-12-12 15:16:24 -05:00
Craig Robbins
5b8855e83c
Remove most exceptions from getNode() (and variants)
2014-11-14 18:05:34 +10:00
kwolekr
9e811a92e7
Split up mapgen.cpp
2014-11-01 13:16:23 -04:00
ShadowNinja
6bc4cad0ed
Split settings into seperate source and header files
...
This also cleans up settings a bit
2014-09-21 14:39:35 -04:00
kwolekr
9e4e7072da
Update Mapgen VoxelManipulator on buffer invalidation
2014-09-01 15:12:22 -04:00
kwolekr
3fa4f782d9
Save previously generated blocks on Mapgen blitback
2014-09-01 14:58:05 -04:00
sfan5
eec456be63
Move MapBlock (de)serializing code out of Database class
2014-07-12 17:38:17 +02:00
kwolekr
a2e1b0fc7f
Don't copy back already generated blocks on map generation
2014-07-07 01:51:04 -04:00
kwolekr
8b3ed78e53
Don't unload blocks if save failed
...
Improve error handling in saveBlock()
2014-07-07 01:20:25 -04:00
sapier
b3a2ef1a91
Remove MapVoxelManipulator not really used by anyone
2014-06-23 00:13:41 +02:00
sapier
8ad83767cf
Remove emerge and speedup addArea by using memcopy instead of one by one assignment
2014-06-23 00:13:41 +02:00
sapier
9d57413af0
Minor stability improvements in block emerge handling
2014-06-15 18:18:57 +02:00
proller
4977b736e3
Fix warnings
2014-04-19 02:24:45 +04:00
proller
0279f32db7
Remove liquid_finite and weather
2014-04-18 21:56:48 +04:00
Sfan5
674be38fc2
Add redis database backend
2014-04-16 22:05:06 +02:00
Sfan5
118e2ae865
Fix all warnings reported by clang
2014-04-15 21:34:53 +02:00
kwolekr
89f7dc1efd
ServerEnvironment: Remove direct dependency on EmergeManager
2014-02-09 16:36:30 -05:00
kwolekr
5a34f40d80
Huge overhaul of the entire MapgenParams system
...
MapgenParams is no longer a polymorphic class, eliminating the need for messy and bug-prone reallocations.
Separation between the common and mapgen-specific parameters is now strongly defined.
Mapgen parameters objects are now properly encapsulated within the proper subsystems.
2014-02-03 22:50:14 -05:00
ShadowNinja
0fd5c61c00
Revert "Improve (re)spawn, add cache_block_before_spawn and max_spawn_height settings"
...
The commit didn't work because the blocks weren't loaded yet.
This reverts commit 22dbbf0a6fc9547f0dbdb7f6076337b8c6acd48b.
Conflicts:
minetest.conf.example
2014-01-06 21:25:10 -05:00
sweetbomber
22dbbf0a6f
Improve (re)spawn, add cache_block_before_spawn and max_spawn_height settings
2013-12-05 16:09:02 -05:00
sapier
04e9a9d541
Cleanup jthread and fix win32 build
2013-12-01 16:25:46 +01:00
Novatux
d879a539cd
Add minetest.swap_node
2013-11-30 18:37:56 +01:00
MetaDucky
5be786c804
Fixed potential NULL pointer and leak when setting node metadata
2013-11-29 23:35:16 -05:00
kwolekr
e396fb2984
Actually fix weather
...
The real problem was that MapBlocks were not activated before getting sent to the client
2013-11-17 01:59:04 -05:00
kwolekr
b401e58c0d
Weather: Fix uninitialized weather_update_time (sorry proller)
2013-11-09 15:29:22 -05:00
kwolekr
e46c527733
Accept hexadecimal and string values for seeds
2013-11-04 23:59:26 -05:00
PilzAdam
0d35350b69
Fix liquid_range
...
* Prevent graphical glitches on old servers
* Fix flowing of liquids with viscosity != 1 and range != 8
* Fix range = 0, no flowing nodes will appear
2013-11-02 15:47:44 +01:00
proller
f7ee5da4c1
Fix null dereference in weather update functions
2013-09-18 01:37:47 +04:00
kwolekr
c0398224ef
Fix some warnings and other minor details
2013-09-16 23:52:42 -04:00
kwolekr
9bccd75e34
Weather: Clean up getHeat/getHumidity somewhat
2013-09-16 23:33:53 -04:00
Kahrl
168fa2ffe0
Fix loading leveldb worlds
2013-09-10 18:16:36 +02:00
Sfan5
f1e4a671dc
Use STL containers instead of irr::core::list
2013-09-09 22:50:51 +02:00
Sfan5
7e44c2ace1
Make it compile
2013-09-09 22:50:50 +02:00
Ilya Zhuravlev
58841ef12f
Add dummy and LevelDB database backends
2013-09-09 22:50:50 +02:00
proller
902d5927f0
Normalized heat and adjusted humidity
2013-08-30 00:42:53 +04:00
Kahrl
4e1f50035e
Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu
2013-08-14 21:03:33 +02:00
PilzAdam
d718b0b34e
Dont write directly to files but rather write and copy a tmp file
2013-08-13 22:05:45 +02:00
kwolekr
c06caa14c3
Decoration: Fix schematic probability mess with new MTS file version
2013-08-11 15:34:49 -04:00
proller
06cdce1e12
Weather backward compatibility
2013-08-02 00:51:36 +04:00
proller
174285f298
Warnings fix
2013-07-29 00:11:33 +04:00
proller
037e84d377
Better snow fall, finite liquid transform, leveled nodes api
2013-07-28 17:14:31 +04:00
proller
3aedfac968
Weather support
2013-07-27 23:21:48 +04:00
PilzAdam
413f0d0353
Add liquid_range to nodedef
2013-07-20 20:41:17 +02:00
PilzAdam
ecb024af64
Fix lighting bug caused by disappearing lava
2013-07-16 01:51:04 +02:00
proller
92833a07d1
Improve finite liquid distribution, fix small bug
2013-07-05 00:11:11 +04:00
sapier
967121a34b
Replace C++ mainmenu by formspec powered one
2013-07-02 19:58:20 -04:00
kwolekr
2c0b51795e
Fix issue of VManip occasionally not blitting back blocks, and pitch black lighting bug
2013-06-27 22:35:35 -04:00
PilzAdam
b1ebd9f79c
Add a setting for max loop count per step in liquid update
2013-06-20 22:31:46 +00:00
Kahrl
e988df0fbd
Add and implement setting max_clearobjects_extra_loaded_blocks.
...
Now Environment::clearAllObjects() unloads unused blocks in an interval
defined by max_clearobjects_extra_loaded_blocks (default 4096).
2013-06-03 20:09:32 +02:00
proller
6b2c46c431
Liquid adjusting: continue to drop
2013-05-31 22:59:09 +04:00
kwolekr
d00e8bd31a
Fix nearly all warnings
2013-05-19 21:26:56 -04:00
proller
d83602d98e
Tune finite liquids, indev huge caves
2013-04-25 22:59:32 +04:00
sapier
7d002b60ff
fix emergemanager memory leaks
2013-04-09 02:34:11 -04:00
proller
d50b2ede92
Adjusting water removing above unloaded blocks
2013-04-07 00:05:39 +04:00
kwolekr
453d79e3a2
Don't re-write entire map_meta.txt if a setting is missing
2013-04-06 13:36:51 -04:00
proller
120f02e20b
Don't flow finite liquid into an unloaded chunk
2013-04-06 12:09:59 -04:00
kwolekr
8f0d29f931
Fix Map::initBlockMake to actually use chunksize setting
2013-03-18 22:19:02 -04:00
Ilya Zhuravlev
d207d359d1
Don't erase modified_blocks
2013-03-17 21:17:13 +04:00
proller
165498cecf
initial mapgen indev version with farscale feature and huge caves
2013-03-16 21:48:32 -04:00
proller
f5ab056b38
Liquid fine tuning
2013-03-14 17:06:25 -04:00
Ilya Zhuravlev
6a1670dbc3
Migrate to STL containers/algorithms.
2013-03-11 19:08:39 -04:00
kwolekr
d31f07bd4b
Fix most warnings, re-fix MSVC compile error
2013-02-26 01:57:59 -05:00
kwolekr
979ca23f1e
Merge pull request #482 from proller/liquid
...
finite liquid
2013-02-25 20:52:24 -08:00
kwolekr
5bd50a2d90
Fix most walled-off caves
2013-02-25 23:08:55 -05:00
kwolekr
67c59645ec
Misc. cleanup and minor fixes
2013-02-25 23:08:33 -05:00
kwolekr
5ec5b1cbd6
Add multi-Emerge thread support
2013-02-25 23:08:26 -05:00
kwolekr
b9d8e59bbf
Add emerge.cpp, initial EmergeThread changes
...
- Neatly placed all emerge related code into a new file, emerge.cpp
- Greatly cleaned up the code in EmergeThread::Thread()
- Reworked Emerge queue. Now an actual std::queue of v3s16 block positions
- Removed the completely unnecessary map of peer ids requesting blocks
2013-02-25 22:56:18 -05:00
Sfan5
6d0ea26c2d
Update Copyright Years
2013-02-24 20:15:24 +01:00
PilzAdam
497ff1ecd6
Change Minetest-c55 to Minetest
2013-02-24 18:49:03 +01:00
proller
b90e431fc7
new adjustable finite liquid
2013-02-24 18:39:07 +04:00
kwolekr
97260d09a8
Add flag string settings, flat map option
2013-02-06 16:52:48 -05:00
kwolekr
a73905401a
Improve random map seed generation
2013-02-06 01:10:37 -05:00
kwolekr
91e88196c7
Make mapgen factory setup more elegant, add mapgen_v6.h
2013-01-23 16:16:49 -05:00
kwolekr
b87cd8c58b
Use a string identifier for a mapgen instead of version
2013-01-21 21:41:37 +02:00
kwolekr
278d93a3ee
Removed Mapgen V7 for now
2013-01-21 21:41:37 +02:00
kwolekr
631a835e07
Finish and clean up mapgen configuration
2013-01-21 21:41:37 +02:00
kwolekr
cde3d38766
Clean up EmergeManager, do initial work on Mapgen configuration
2013-01-21 21:41:37 +02:00
kwolekr
d5029958b9
Readded and optimized mapgen V6
2013-01-21 21:41:37 +02:00
kwolekr
11afcbff69
The new mapgen, noise functions, et al.
2013-01-21 21:41:33 +02:00
kwolekr
a785522194
Only clear block modified flag if writing to db was successful
2013-01-21 21:41:09 +02:00
Jürgen Doser
183c81b5ec
fix integer overflow ( fixes #414 )
...
liquid_kind was declared as an u8, but used to hold a content_t value, which is delcared to be a u16.
changing this fixes (at least for me) the problem reported in bug #414 .
2013-01-12 23:32:09 +04:00
Ilya Zhuravlev
926830e0df
Add liquid_renewable property.
2012-09-07 20:48:12 +04:00
Perttu Ahola
ee2d9d973a
Reorganize ClientMap rendering code for a bit more performance
...
- Don't select blocks for drawing in every frame
- Sort meshbuffers by material before drawing
2012-09-04 22:41:03 +03:00
Perttu Ahola
3e754382af
Tweak rollback and liquids
2012-07-27 15:46:51 +03:00
Perttu Ahola
7ef0a13250
Tweak rollback stuff
2012-07-27 14:52:29 +03:00
Perttu Ahola
1d44a98f2f
ABM and liquid overload skip
2012-07-27 13:45:49 +03:00
Perttu Ahola
a9d8df83d2
Make the rollback system VERY FUCKING GOD DAMN POWERFUL
2012-07-27 13:24:28 +03:00
Perttu Ahola
508b7b5e51
Don't track liquids for rollback because of too much log
2012-07-27 02:46:54 +03:00
Perttu Ahola
0190f9b077
Experimental-ish rollback functionality
2012-07-27 02:27:18 +03:00
darkrose
cd6becd442
Implement node timers
2012-07-23 08:18:37 +03:00
Perttu Ahola
d0ea6f9920
Properly and efficiently use split utility headers
2012-06-17 02:40:36 +03:00
Perttu Ahola
037b259197
Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2/later, by agreement of major contributors
2012-06-05 18:54:07 +03:00
Perttu Ahola
f48882213e
Add ignore_world_load_errors configuration option and provide better error messages
2012-06-04 22:34:40 +03:00
Perttu Ahola
3899f83da8
NodeMetaRef:{to,from}_table and lua_api.txt additions
2012-06-03 22:31:01 +03:00
Kahrl
704782c95b
WIP node metadata, node timers
2012-06-03 22:31:00 +03:00
Perttu Ahola
582ca33507
Remove unnecessary debug output
2012-03-29 01:38:13 +03:00
Perttu Ahola
02c035c548
Reduce EnvRef:set_node() time tenfold by postponing the dayNightDiff update until it is actually needed
2012-03-29 00:28:48 +03:00
Perttu Ahola
4f01db256f
Re-implement and re-tune mapgen v2
2012-03-27 19:05:59 +03:00
Perttu Ahola
8609af54fc
Remove usage of mapgen::add_random_objects(block)
2012-03-27 19:01:52 +03:00
Perttu Ahola
d629f4d2fb
Remove some debug output
2012-03-27 19:01:52 +03:00
Perttu Ahola
8cb7badd63
Do post-mapgen lighting using the VoxelManipulator-based functions (causes glitches currently)
2012-03-27 19:01:51 +03:00
Perttu Ahola
0f3c2f6541
voxalgo::clearLightAndCollectSources
2012-03-27 19:01:51 +03:00
Perttu Ahola
a32706bc26
Post-mapgen lighting optimization
2012-03-27 18:52:36 +03:00
Perttu Ahola
bdcca4767c
Make mapgen generate stuff in chunks of 3^3 mapblocks
2012-03-27 18:52:36 +03:00