MillersMan
9714cdcf4b
Liquids: Update flow on block load
...
When loading a block add liquid-nodes that might flow away or spread to
neighbours to the transforming_liquid queue.
2016-12-07 04:06:00 +00:00
MillersMan
cc36f5e99a
Liquids: Preserve flow state if 'ignore' is a neighbour
...
Prevent waterfalls from falling down or streams from flowing away when the
source node is in an unloaded block - Nodes near a CONTENT_IGNORE node will
be interpreted as if the ignored node is a liquid node that just supports
the current state of the nodes in question.
2016-12-07 03:54:32 +00:00
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