aboutsummaryrefslogtreecommitdiff
path: root/util/test_multiplayer.sh (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-01-29New timer design.Auke Kok2-59/+33
I could honestly not make much sense of the timer implementation that was here. Instead I've implemented the type of timer algorithm that I've used before, and tested it instead. The concept is extremely simple: all timers are put in an ordered list. We check every server tick if any of the timers have elapsed, and execute the function associated with this timer. We know that many timers by themselves cause new timers to be added to this list, so we iterate *backwards* over the timer list. This means that new timers being added while timers are being executed, can never be executed in the same function pass, as they are always appended to the table *after* the end of the table, which we will never reach in the current pass over all the table elements. We switch time keeping to minetest.get_us_time(). dtime is likely unreliable and we have our own high-res timer that we can fix if it is indeed broken. This removes the need to do any sort of time keeping.
2016-01-29Clocksource: use a better clock if available.Auke Kok2-22/+35
clock_gettime() is a far better clock than gettimeofday(). Even better than clock_gettime() is that you can select either CLOCK_MONOTONIC, or even CLOCK_MONOTONIC_RAW. These clocks offer high precision time. And the _RAW variant will never roll back due to NTP drift or daylight savings, or otherwise. I've adjusted this code to select the right clock method auto- matically based on what's available in the OS. This means that if you're running a very old linux version, MacOS or other, you will automatically get the best clocksource available. I've tested all Linux clocksources by selectively compiling and running a 10k+ timer test suite. In all cases I confirmed that the 3 POSIX Linux clocksources worked properly, and were selected properly. I've modified the OS X compile path to use the high-res clock source for all time functions, but I can't confirm it works or that it compiles. As for WIN32, I confirmed that the used clocksource is indeed a Monotonic clocksource, so good news: that code section appears to be exactly what it should be.
2016-01-28Don't print whole json data buffer to errorstream on errorest312-3/+15
`errorstream` must not be overly verbose as clientside it is directly printed onto the ingame chat window. These days, the serverlist can contain > 200k bytes, so better print it to warningstream if the data buffer is too long.
2016-01-25Translated using Weblate (Italian)Paolo DGZ1-116/+80
Currently translated at 52.0% (410 of 787 strings)
2016-01-25Translated using Weblate (Hungarian)Kisbenedek Márton1-66/+74
Currently translated at 32.4% (255 of 787 strings)
2016-01-25Translated using Weblate (Dutch)Tobyplowy1-13/+16
Currently translated at 95.5% (752 of 787 strings)
2016-01-25Translated using Weblate (Portuguese (Brazil))Ian giestas pauli1-142/+170
Currently translated at 41.6% (328 of 787 strings)
2016-01-25Translated using Weblate (Portuguese (Brazil))Ian giestas pauli1-16/+20
Currently translated at 26.6% (210 of 787 strings)
2016-01-25Translated using Weblate (Portuguese)Ian giestas pauli1-7/+7
Currently translated at 23.6% (186 of 787 strings)
2016-01-25Translated using Weblate (Japanese)Rui1-22/+39
Currently translated at 43.4% (342 of 787 strings)
2016-01-25Translated using Weblate (Japanese)Rui1-30/+17
Currently translated at 42.0% (331 of 787 strings)
2016-01-25Translated using Weblate (Danish)Peter Mikkelsen1-133/+114
Currently translated at 30.1% (237 of 787 strings)
2016-01-25Translated using Weblate (Chinese (China))Jun Zhang1-74/+62
Currently translated at 34.8% (274 of 787 strings)
2016-01-23Fix world config menu ignoring `name` in `mod.conf`.Diego Martinez1-18/+18
2016-01-23Backface culling: Ignore setting in tiledef from old servers.Auke Kok3-10/+31
Outdated servers are always sending tiledefs with culling enabled no matter what, as the value was previously entirely ignored. To compensate, we must (1) detect that we're running against an old server with a new client, and (2) disable culling for mesh, plantlike, firelike and liquid draw types no matter what the server is telling us. In order to achieve this, we need to bump the protocol version since we cannot rely on the tiledef version, and test for it being older. I've bumped the protocol version, although that should have likely happened in the actual change that introduced the new backface_culling PR #3578. Fortunately that's only 2 commits back at this point. We also explicitly test for the drawtype to assure we are not changing the culling value for other nodes, where it should remain enabled. This was tested against various pub servers, including 0.4.13 and 0.4.12. Fixes #3598
2016-01-23Fix compilation warning if compiling for android with c++11est311-2/+2
2016-01-23Fix texture tear issueRealBadAngel1-0/+1
2016-01-23Fix C++11 compilabilityest317-5/+43
Previous commits broke it... :(
2016-01-20Liquid flow: Prevent water spreading on ignoreparamat1-2/+5
2016-01-20Allow per-tiles culling.Auke Kok3-14/+23
Backface culling is enabled by default for all tiles, as this is how the lua parser initializes each tiledef. We revert to always using the value from the tiledef since it is always read and serialized. Mods that wish to enable culling for e.g. mesh nodes, now can specify the following to enable backface culling: tiles = {{ name = "tex.png", backface_culling = true }}, Note the double '{' and use of 'name' key here! In the same fashion, backface_culling can be disabled for any node now. I've tested this against the new door models and this properly allows me to disable culling per node. I've also tested this against my crops mod which uses mesh nodes where culling needs to be disabled, and tested also with plantlike drawtype nodes where we want this to continue to be disabled. No default setting has changed. The defaults are just migrated from nodedef.cpp to c_content.cpp.
2016-01-19EmergeManager: Do not queue duplicate block requestskwolekr2-6/+18
2016-01-19Fix Settings::remove() always returning trueKahrl1-2/+8
2016-01-18Show infotext with description for item entitiesRealBadAngel7-2/+21
2016-01-18Correct overflowing rivers in Valleys mapgen.Duane Robertson1-3/+3
2016-01-18Fix wield item glitchRealBadAngel1-1/+1
2016-01-16corrected minetest.pos_to_string()Pinky Snow1-1/+2
corrected this bit reflect the function properly.
2016-01-16Fix error message in settings tab overlapping 'save' buttonRogier1-1/+1
The save button is now fully functional again when an error message is shown. After an invalid value is entered in the settings tab dialog, the GUI label for the error message that is shown was partly overlapping the 'save' button, so that the top half of the button could not be clicked on.
2016-01-16Prevent spawning in rivers with valleys mapgen. Remove unecessary whitespace.Duane Robertson2-47/+61
2016-01-15Make ItemStack:set_count(0) clear the item stacksfan51-1/+1
fixes minetest/minetest_game#786
2016-01-15Make all mesh manipulators in mesh.cpp work with any vertex typeKahrl1-124/+145
cloneMesh() has to use a switch in order to create a different mesh buffer type depending on vertex type. (Credit: the new cloneMesh was written by RealBadAngel.) To avoid repetitive code, all other methods use getVertexPitchFromType() to automatically adapt the indexing to the vertex type at runtime.
2016-01-14Add Valleys mapgen.Duane Robertson7-0/+1300
2016-01-14Mgv7/flat/fractal: Place biome top node on tunnel entrance floorparamat3-34/+91
2016-01-11Mapgen: Various fixes and improvementsparamat7-14/+22
Lua_api.txt: Document 'minetest.registered_biomes' Minimal: Remove 'mapgen_air' alias Cavegen: Add fallback node for 'mapgen_ice' Dungeongen: Add fallback node for 'mapgen_river_water_source' Mgv5: Remove unnecessary '#include util/directiontables.h' Add missing 'this->'s in makeChunk() Mgv6: Edit empty line formatting Remove leading spaces in makeChunk() Add missing spaces after 'for' and 'if' Mgv7: Edit empty line formatting
2016-01-10Mgflat: Set blank default spflags. Unhideparamat3-4/+4
2016-01-10Fix the checking of flags values in the settings tabRogier1-2/+2
Changes: - Accept setting an empty flags-type value in the settings tab if the variable specification permits it - Don't accept substrings of flag values E.g. with values: 'one,two,three', 'hree', 'w', etc. used to be accepted. Not any more - Don't accept flags with random pattern-matching special characters E.g. with values: 'one,two,three', 'on.', '(o)[n]e*' etc. used to be accepted. Not any more.
2016-01-10Improve parsing of setting types from settingtypes.txt for settings tabRogier1-12/+24
- Accept numbers prefixed with '+' - Accept multiple spaces instead of just a single one where spaces are expected - Allow flags to have an empty default value
2016-01-09Cache disable_anticheat and check it for "interacted_too_far"ASL971-2/+4