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
nerzhul
eec01bc2fa
Re-apply 972d17baea81ffe6d508b291ef97207a4822e1da...
...
but not rename the container. Approved-By est31
2015-04-22 11:47:22 +02:00
kwolekr
e0eec201a1
Revert "m_active_object_messages is used like a queue. Use std::queue instead of std::list. Also rename to m_active_object_messages_queue"
...
This reverts commit 972d17baea81ffe6d508b291ef97207a4822e1da.
The commit being reverted was unauthorized. There had been no discussion,
review, or sign-off prior to submittal to upstream.
2015-04-21 18:12:01 -04:00
Loic Blot
972d17baea
m_active_object_messages is used like a queue. Use std::queue instead of std::list. Also rename to m_active_object_messages_queue
2015-04-21 23:28:13 +02:00
Loic Blot
0c634a9719
Use std::vector instead of std::set for Environment::getObjectsInsideRadius
...
We are only iterating sequentially, we don't need a set here
Also use a vector reference instead of a copy
2015-04-16 18:37:29 +02: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
kwolekr
b4247dff2e
Fix usage of destroyed mutex
...
Also fix a memory leak
Fix overloaded virtual warning in Player::move()
Remove some trailing whitespace
2015-03-31 23:50:38 -04:00
Craig Robbins
dbe5a446c3
Minor bug fix (lag between damage flash and hearts updating)
2015-03-17 17:39:59 +10:00
Craig Robbins
c552d293fa
Fix various damage related bugs (client-side)
...
E.g. spawning or teleporting into lava to become invinsible
2015-03-17 17:08:00 +10:00
Loic Blot
4e63c977c7
Use the new Player::isDead function when it's the case
2015-03-13 08:57:58 +01: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
Loic Blot
9749d9fee6
Fix issue #2441 : crash on respawn, since a conversion std::list to std::vector on Environment.cpp
...
* Also change some std::list to std::vector for ClientMap::renderMap
* Remove disabled code in ClientMap::renderMap, disabled since a long time
2015-03-05 15:36:20 +01:00
Loic Blot
365e4ae0fa
Performance improvement: Use std::list instead of std::vector for request_media, Server::getModNames, Environment::m_simple_objects.
...
* Also remove unused Server::m_modspaths
2015-03-05 10:44:48 +01:00
Loic Blot
b214cde5b4
Remove Queue class which uses std::list and use native std::queue
2015-03-05 16:49:51 +10:00
Loic Blot
cd684497c2
Use std::vector instead of std::list in StaticObjectList and MutexedMap::getValues()
2015-03-04 17:22:37 +01: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
7f8f9785d7
ASyncRunStep doesn't need to lock when do setTimeOfDaySpeed.
...
* setTimeOfDaySpeed already lock a mutex when modify the value, we don't need to lock all environment.
* add a fine grain lock for getTimeOfDay and setTimeOfDay to solve environment multithread modifications on this value
2015-03-04 11:46:31 +01:00
Loic Blot
2079462e62
Change many useless std::list into Environment class (m_players), ABMHandler and ActiveBlockList::update
...
This improve looping performances.
2015-02-17 16:50:03 +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
Loic Blot
c58d49977d
SAO: re-add old ActiveObjectTypes for a future migration layer
2015-02-17 11:37:55 +01:00
gregorycu
5e075c3344
Fix dying of lava causes repeated death This is a bugfix for issue #81
2015-02-05 17:32:35 +10:00
Anton
10e0cf8b2c
Use std::string::empty() instead of size() where applicable
2014-12-12 15:16:24 -05:00
Craig Robbins
2b119e1e19
Performance of main client loop up to 2x faster In places, up to 3 times faster
...
NOTE 1: This does not mean a 2x increase in framerate. Increase in fps may be up to 1-2fps
NOTE 2: This local 'caching' of settings is not optimal and an alternative solution will be worked on after 0.4.11 is released
2014-12-07 00:51:01 +10:00
Craig Robbins
5b8855e83c
Remove most exceptions from getNode() (and variants)
2014-11-14 18:05:34 +10:00
Kahrl
9b551d5cbc
Implement WieldMeshSceneNode which improves wield mesh rendering
...
- Don't create and cache an extruded mesh for every (non-node) item.
Instead use a single one per image resolution.
- For cubic nodes reuse a single wield mesh too
- Improve lighting of the wielded item
- Increase far value of wield mesh scene camera, fixes #1770
- Also includes some minor refactorings of Camera and GenericCAO.
2014-11-08 23:11:57 +01:00
SmallJoker
c40e993ce4
Replace setting unlimited_player_transfer_distance with player_transfer_distance
2014-11-08 14:56:09 +01:00
Pavel Puchkin
73bf791fe1
Remove remenants of mob code
...
Since minetest has no mobs within the core anymore, I suppose these
settings and code should go. Any mod that uses `minetest.setting_getbool`
will work with no problem since the default return value is `false`.
2014-10-23 20:54:33 -04:00
ShadowNinja
e9c9b66ae9
Make players check inventory modification properly
2014-10-01 18:44:36 -04:00
ShadowNinja
cd0df0d5e7
Simplify player modification checks
2014-10-01 18:44:36 -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
SmallJoker
3c5df42a17
Make player files saving again
2014-06-29 00:45:04 +02:00
ShadowNinja
089fc010ab
Store the maximum player file tries in a constant
2014-06-23 15:55:47 -04:00
ShadowNinja
e491f8cd48
Only try to load from possible player files
2014-06-23 15:45:59 -04:00
ShadowNinja
7e6db1b803
Only keep players loaded while they're connected
2014-06-23 15:45:59 -04:00
sapier
f6fc39e69a
Fix race condition on accessing m_time_of_day_speed causing day night race on some architectures
2014-06-23 00:26:57 +02:00
sapier
35ec3855f6
Speedup attachement handling by replacing vector search by direct array access and secondary child lookup vector
2014-06-23 00:13:41 +02:00
proller
0279f32db7
Remove liquid_finite and weather
2014-04-18 21:56:48 +04:00
Sfan5
118e2ae865
Fix all warnings reported by clang
2014-04-15 21:34:53 +02:00
Ciaran Gultnieks
564e11fc2f
Fix merge mistake when rebasing for PR #1169
2014-03-24 19:56:36 +01:00
Selat
2bc2ce3bd1
Remove goto from Environment::removePlayer
2014-03-12 17:02:52 -04:00
Ciaran Gultnieks
0643cef09a
Update ABM object counts when triggers add objects
...
Also fixes long-standing accuracy issue due to unknown wider
object count not being incremented.
2014-03-09 11:13:44 +01:00
Ciaran Gultnieks
db98ef6b45
Stop wasting time in abm - performance improvement
...
Unless I'm mistaken, the chunk of code I'm moving there is potentially
executed hundreds of times inside the loop to get the exact same result
every time
2014-03-06 19:18:36 +01:00
Ciaran Gultnieks
baee91bf78
Fix for unloaded but active block problem
2014-03-02 20:39:28 +01:00
kwolekr
89f7dc1efd
ServerEnvironment: Remove direct dependency on EmergeManager
2014-02-09 16:36:30 -05:00
Perttu Ahola
6a3fa9df12
Add player:override_day_night_ratio() for arbitrarily controlling sunlight brightness
2014-02-01 18:38:21 +01:00
Ilya Zhuravlev
a4c5f10ecf
Fix some errors reported by clang static analyzer.
2014-01-13 03:29:12 +04:00
Novatux
84b94eb198
Add forceloading
2014-01-11 17:54:00 +01:00
stujones11
d9ef072305
Make line_of_sight return blocking node position
2013-12-12 16:11:00 -05:00
Novatux
d879a539cd
Add minetest.swap_node
2013-11-30 18:37:56 +01:00
Perttu Ahola
21789ccc5f
Revert patch 58f036ad1 that causes object duplication (which tried to fix objects getting hidden from client) and fix the original problem correctly. This fixes the second distinct object duplication bug.
2013-11-17 14:46:01 -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
Perttu Ahola
b3591019ad
Fix object duplication bug (at least in the most reproducible UFO case)
2013-10-17 00:10:16 +03:00
kwolekr
9bccd75e34
Weather: Clean up getHeat/getHumidity somewhat
2013-09-16 23:33: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
BlockMen
7b13d119ed
Add support for different drowning damage and allow drowning in other nodetypes
2013-08-06 17:49:39 +02:00
Novatux
fe1fe1b1e4
Change large amount of objects to be configurable via a setting in minetest.conf (max_objects_per_block).
2013-08-04 15:28:01 +03:00
Perttu Ahola
742614180c
Fix anticheat
2013-08-03 23:16:37 +03:00
RealBadAngel
d19c8b815d
Add set_breath and get_breath to lua API.
2013-07-20 20:34:11 +02:00
sapier
88d43af276
Fix many formspec menu bugs
2013-07-07 19:49:52 -04:00
PilzAdam
280946ba83
Dont write player files all the time
2013-06-28 14:15:48 +00:00
PilzAdam
130464c268
Print playername when failing to read playerfile and ignore files starting with .
2013-06-22 21:39:47 +00:00
PilzAdam
53066024f6
Add drowning
2013-06-19 15:47:00 +00:00
Kahrl
261f559339
Show number of objects in client environment in profiler (F6)
2013-06-18 01:49:06 +02:00
PilzAdam
2cdf0ff4ab
Play player_damage.ogg when recieving damage and additionally play player_falling_damage.ogg when recieving falling damage
2013-06-12 20:27:06 +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
sapier
ab43377577
Move scriptapi to separate folder (by sapier)
...
On the lua side, notably minetest.env:<function>(<args>) should now
be replaced by minetest.<function>(<args>).
The old way is and will stay supported for a long time.
Also:
Update and clean up lua_api.txt (by celeron55)
Move EnvRef to lua and remove add_rat and add_firefly (by kahrl)
Add separate src/util/CMakeLists.txt, other minor fixes (by kahrl)
2013-05-25 00:51:02 +02:00
kwolekr
981c6c9bf2
Fix lava damage on player's upper body
2013-05-19 21:29:49 -04:00
kwolekr
d00e8bd31a
Fix nearly all warnings
2013-05-19 21:26:56 -04:00
sapier
58f036ad1d
fix static data not beeing stored correctly on deactivation
2013-05-06 19:05:44 +02:00
sapier
e9a4e98cb9
Improve getFree*ActiveObjectId to reduce common case cpu usage drasticaly
2013-04-24 21:59:09 -04:00
sapier
69367aa799
Add Dijkstra A* and A* without prefetching pathfind algorithms
2013-04-06 11:24:03 -04:00
MirceaKitsune
c5a8448c41
Allow modifying movement speed, jump height and gravity per-player via the Lua API.
2013-04-05 02:00:59 +02:00
sapier
8800896824
Closed add object <-> object collision handling
2013-03-28 00:09:24 +01:00
Ilya Zhuravlev
6a1670dbc3
Migrate to STL containers/algorithms.
2013-03-11 19:08:39 -04: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
MirceaKitsune
df3c925b3c
Improved Player Physics
2013-02-14 06:21:30 +10:00
kwolekr
11afcbff69
The new mapgen, noise functions, et al.
2013-01-21 21:41:33 +02:00
Jürgen Doser
076f13cc01
fixes node timer bug ( fixes #407 ).
...
Previously, when a block was activated, on_timer callbacks where
called with the relative position of the node inside the block,
instead of the absolute position of the node.
2013-01-11 18:59:27 +01:00
Perttu Ahola
2c472a66d1
Add ServerEnvironment::setNode()/removeNode() to allow setting nodes from the C++ side with proper script-defined initialization/destruction
2013-01-02 23:18:14 +02:00
Perttu Ahola
804a7875a2
Smooth day-night transitions
2012-12-02 18:02:45 +02:00
Perttu Ahola
6b927229f5
Default server step to 0.1s and sync object/player update intervals to it
2012-11-26 22:34:59 +02:00
Perttu Ahola
eca1c96412
Move util/serialize.h out from staticobject.h for smaller header dependencies
2012-11-26 11:18:34 +02:00
Perttu Ahola
4fa4340b95
Proper versioning of new network-serialized stuff
2012-11-26 09:49:31 +02:00
MirceaKitsune
52fcb0b4b9
Send animations, bone overrides and attachments in entity initialization. Clients no longer have to be near an object when an animation or attachment is set to see the changes, and newly connected clients (or a client that simply renders the object for the first time) will get all of those settings. Therefore, the lua script no longer needs to run every X seconds either, just once per entity.
...
Finish fixing the material color code. But it won't work until MineTest has dynamic lighting... another day another feature.
Extra checks for the bone positioning / rotation code
Many checks and consistency improvements to the client attachment code
Make a separate function for checking if a client object is attached. A more in-depth change will be needed here to fix reading of invalid pointers
Use a different method of fetching the parent. Fixes the mass segmentation faults when rendering an attachment (some still happen though)
Major change to how attachments are handled. Fix the last segmentaton fault, which was due to the parent becoming invalid while being refreshed / removed which would bause the child to remain attached to nothing. Parents remove their children when being deleted themselves and add them back when re-added. Attachments are stored inside a 2D a vector which easily allows both a child to find their parent and a parent to find its children.
Remove attachment list entry when an object is being permanently removed. Also avoid duplicate entries in this list when re-attaching the same object
The "big code comments" can now go away. Client attachments almost work properly, and I know what else needs to be done
2012-11-25 19:14:23 +02:00
Perttu Ahola
9cadaf824b
Add dtime_s to entity activation
2012-09-09 17:12:29 +03:00
Perttu Ahola
1cc1b93e65
Fix ServerActiveObject stuff
2012-09-09 16:11:05 +03:00
Perttu Ahola
c4f400acd0
Fix wielditem entity drawtype brightness control
2012-09-09 13:26:52 +03:00
Perttu Ahola
c129b3852b
Fix the bouncy node related stuff a bit
2012-09-01 13:21:52 +03:00
Perttu Ahola
3b43c69df4
Add bouncy node group
2012-09-01 12:58:37 +03:00
Perttu Ahola
b17d3e7ad7
Add disable_jump and fall_damage_add_percent node groups
2012-09-01 12:07:27 +03:00
darkrose
d05e3adbc7
fix node timers so on_timer gets the correct position
2012-08-12 15:28:31 +03:00
Perttu Ahola
1d44a98f2f
ABM and liquid overload skip
2012-07-27 13:45:49 +03:00
Perttu Ahola
98ff4eb4ee
Fix server build (a missing header)
2012-07-27 13:43:25 +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
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