Commit Graph

5149 Commits

Author SHA1 Message Date
SmallJoker 03caa1e319 Damage: Remove damage ignore timer 2017-12-10 14:23:45 +00:00
adrido d677f292cc Use std::vector instead of dynamic C-Array (#6744) 2017-12-10 09:07:24 +01:00
Lars Hofhansl 9c669016d1 Add an active object step time budget #6721
This can be set via the active_object_interval option.
2017-12-06 12:21:54 -08:00
you e049405fdc Add coloured logs (#4549)
The setting log_colour can be used to en-/disable or autodetect it.
2017-12-06 18:50:39 +01:00
Luis Cáceres 2b5341c518 Ensure no item stack is being held before crafting (#4779) 2017-12-06 17:32:05 +01:00
Lars Hofhansl fd9f195fcc Use Irrlicht's mesh cache for animated meshes.
Fixes #6676.
Allow animated meshes to be cached in Irrlicht's builtin mesh cache.
Use Material.EmmissiveColor instead of manipulating the mesh' vertex colors.
2017-12-04 22:29:11 -08:00
paramat f470cb7270 Zoom: Set zoom FOV per-player using a player object property
Remove player object property 'can zoom'.
Add player object property 'zoom fov'.
Remove clientside setting for 'zoom fov'.
Object property default is 15 degrees in creative mode, zoom disabled
in survival mode.

Needed due to zoom now loading and/or generating distant world
according to zoom FOV.

Update object properties serialisation version to 3.
2017-12-04 02:25:10 +00:00
Lars Hofhansl 5a03b1f5f9 Optionally extend the active object in a players camera direction.
See #6667

By setting active_object_send_range_blocks > active_block_range a server admin
can allow clients to retrieve active objects futher out from the player at
relatively low cost to the server
(only objects in the players' view cone are considered).
2017-12-03 17:52:05 -08:00
raymoo 83b12ed481 Shut down mapgen threads before other shutdown tasks (#6689)
Solves some issues with ModStorage functionality in mapgen threads
that occurred when mapgen threads continued to run after the main
server thread had stopped. Also shuts down mapgen threads before
shutdown callbacks are called.
2017-12-03 10:28:35 +01:00
SmallJoker 089f594582 CAO/SAO: Nicer velocity-controlled, interpolated rotation property:
'automatic_face_movement_max_rotation_per_sec'.
Rotate towards the smaller angle.
2017-12-01 05:36:49 +00:00
Lars Hofhansl f4fedfed07 Turn off verbose info message introduced accidentally with ae9b1aa 2017-11-29 22:55:37 -08:00
paramat ea1ae07beb F5 Debug info: More compact, return to 2 lines
All data fits on width 960, most useful data still visible on width 800.
2017-11-27 01:28:47 +00:00
sfan5 813d819d15 Hint at problematic code when logging deprecated calls 2017-11-27 01:28:39 +00:00
paramat 03c11a73d8 Light curve: Add and tune mid boost gaussian
Create a closer match to the light curve of 0.4.16 stable.
Results in darker shadows while maintaining the 'brightness' and light
spread.
2017-11-27 01:28:29 +00:00
SmallJoker 990d0b0264 Inventory: Restrict access from too far away 2017-11-24 05:39:47 +00:00
paramat 912ba1e47f Clearobjects: Send progress messages to terminal using actionstream
Change default mode to 'quick' as 'full' can lock up a server for a
long time.
2017-11-24 05:38:53 +00:00
paramat 4b553ece09 Stratum ore: Add option for a constant thickness stratum
Add a 'stratum thickness' integer parameter, as an alternative
to providing a 2nd noise parameter for thickness variation.
2017-11-19 00:25:39 +00:00
shivajiva101 3f8e2e8c38 Fix mousewheel behaviour in textarea (#6641)
Allowing scrolling with the mousewheel when the vertical scrollbar is
hidden, unnecessarily exposes oversized containers and newlines at the
end of the text. For example try scrolling over the textareas in the
pause menu. This PR addresses the issue by requiring the scrollbar to be
visible before allowing the scrolling with the mousewheel.
2017-11-18 14:58:08 +01:00
Vitaliy 0780ee51c5 Fix dark liquids (#6621)
* Update light storage format
2017-11-18 10:57:22 +01:00
paramat ec93893c7f Biome dust node: Only place on 'walkable' cubic non-liquid drawtypes
No longer decide placement on 'buildable_to' parameter.
Dust nodes only look acceptable placed on cubic nodes.
Modders may not want to make their plantlike decorations 'buildable_to'.
2017-11-17 19:27:06 +00:00
number Zero 05d93c7fa1 Load files from subfolders in texturepacks
Updated and rebased version of a PR by red-001
2017-11-17 19:23:08 +00:00
Lars Hofhansl ae9b1aa177 Allow zoom to actually show more data.
This allows the client to retrieve blocks at a greater distance
from the server, thus allowing for a real zoom.
2017-11-15 22:03:58 -08:00
Vitaliy ee6bb5a315 Fix item and wield meshes (#6596) 2017-11-14 19:23:34 +01:00
paramat a0c8c05242 PlayerSAO damage: Update to cope with variable player heights
Nearby codestyle cleanup.
2017-11-14 00:38:36 +00:00
Vitaliy 20a85d76d9 Move files to subdirectories (#6599)
* Move files around
2017-11-08 23:56:20 +01:00
sfan5 b692454f70 Add minetest.safe_write_file() to script API 2017-11-08 16:14:05 +01:00
Muhammad Rifqi Priyo Susanto 9526c68699 Fix issue Minetest crash when custom font path is not exist
We try to use default fallback for both mono and main font when custom font path is not exist. This way, if Minetest is not corrupted, we could avoid crash.
2017-11-08 16:14:00 +01:00
paramat 179476d833 LINT: Add files to whitelist, fix detected indent errors 2017-11-06 12:54:08 +00:00
paramat 4c40e0775c Player eye height: Make this a settable player object property 2017-11-06 12:54:00 +00:00
Lars Hofhansl 6be6fb78a4 Do not scale texture unless necessary.
This avoids scaling textures to 'texture_min_size' unless it is actually
required (because either auto-scaling or bi/trilinear filtering is enabled)
2017-11-04 18:05:55 -07:00
sfan5 21f3237fe9 httpfetch: Enable gzip support 2017-11-04 22:19:27 +01:00
Vitaliy 28841961ba Rewrite rendering engine (#6253)
* Clean draw_*() arguments

* Split rendering core

* Add anaglyph 3D

* Interlaced 3D

* Drop obsolete methods
2017-10-31 19:27:10 +01:00
Rob Blanckaert 65c5539035 Add sha1 to lua utils. (#6563) 2017-10-30 08:18:18 +01:00
miqlas a95e0d1876 Initial Haiku support (#6568)
* Iitial Haiku support
2017-10-30 08:17:43 +01:00
rubenwardy cd1140f69c Fix day_night_ratio_do_override not being initialised server-side
Causes get_day_night_ratio() to return unpredictable results.
2017-10-29 18:31:53 +00:00
lisacvuk c252ed506e CSM: Add a way to get current locale from CSM 2017-10-29 12:05:16 +00:00
paramat 241fe649f7 Biome API: Add decoration flags for underground decorations
Add "all_floors" and "all_ceilings" flags for simple and schematic
decorations. Decorations are placed on all floor and/or ceiling surfaces.
Decorations are placed before dungeon generation so placement in dungeons
is not possible.

Add 'getSurfaces()' function to mapgen.cpp that returns 2 arrays of y
coordinates for all floor and ceiling surfaces in a specified node column.

Move 'getHeight()' checks into DecoSimple and DecoSchematic. Delete
'getHeight()' functions.
2017-10-29 12:02:55 +00:00
raymoo a637107a4e Allow overriding tool capabilities through itemstack metadata
This makes it possible to modify the tool capabilities of individual
itemstacks by calling a method on itemstack metadata references.
2017-10-29 11:57:38 +00:00
lhofhansl 610ea6f216 Avoid filtering low-res textures for animated meshes (incl. players) (#6562) 2017-10-28 10:33:47 +02:00
Esteban I. Ruiz Moreno 2efccb3536 Add missing? include 2017-10-26 20:35:32 +02:00
Lars Hofhansl 0732bf73a4 Reduce server FOV with forward speed
This causes blocks in front of the player to be rendered sooner and
blocks in the periphal view (that would soon be out of view) a bit later.
Overall this leads to smoother rendering as the player is moving around.
2017-10-25 23:13:06 -07:00
Muhammad Rifqi Priyo Susanto a1e1a19ac3 Improvements/fixes for noise parameter input in advanced settings
Formspec input for each individual noise parameter and flag.
Allow noise flags to be set in advanced settings, previously only settable
in minetest.conf.

Standardise 'group format' for noise parameters set in minetest.conf, as
only these support noise flags. However the older 'single line' format is
still accepted to support existing minetest.conf files.
Therefore auto-generate minetest.conf.example with noise parameters in
'group format'.

Setting 'type' in settingtypes.txt is now either 'noise_params_2D' or
'noise_params_3D', the dimension number is displayed in the advanced
settings edit page.
2017-10-23 01:28:13 +01:00
Lars Hofhansl cdedaac5e2 Set range of blocks to retrieve per roundtrip to 2.
This is a small, partial revert of #6483, which had set this to 1.
2017-10-19 09:47:58 -07:00
Loic Blot f36e323175
directiontables.cpp: fix a warning reported by VS2017 2017-10-17 22:29:15 +02:00
asl97 38b0e26679 Fix inventory drag drop flag (#6416) 2017-10-17 21:50:58 +02:00
Esteban I. RM 5e24ca05fd
Add updated settings_translation_file 2017-10-17 19:22:10 +02:00
Esteban I. RM 792e013eaf
don't pass g_settings around, and use it directly 2017-10-17 19:22:09 +02:00
Esteban I. RM 93d185ee5d
Regenerate minetest.conf.example and translation file 2017-10-17 19:21:35 +02:00
Esteban I. RM 0e8ee84d74
Implement #6096 2017-10-17 19:21:32 +02:00
SmallJoker 46f7fe91a2 Fix strict_protocol_version_checking functionality after ee9a442 2017-10-16 20:12:48 +02:00
Esteban I. RM 90e7d42375 Don't try to craft a non-existent item 2017-10-16 10:13:45 +02:00
Vitaliy 75320e7e88 Real global textures (#6105)
* Real global textures

* Add world-aligned textures
* Update minimal to support world-aligned tiles
* Update minimal
2017-10-15 09:34:14 +02:00
lhofhansl 6bab695479 Cache server config settings. (#6530)
* Cache server config settings.
2017-10-15 09:32:17 +02:00
Lars Hofhansl b97b9a550f Retrieve a small cone of blocks in the direction of the players velocity.
This helps retrieving the right set of blocks when the player is falling,
traveling on cart, or in general traveling in a direction different from
the view direction.
2017-10-13 20:43:58 -07:00
SmallJoker 6b23cabe51 Formspec: Fallback to 'label' in readonly textarea[]
Guarantees backwards compatibility for this formspec element change
2017-10-13 23:14:39 +02:00
paramat 9a41a3d0f1 Simple decorations: Make 'place_offset_y' usable with simple decorations
Necessary for placing the base cube of 'plantlike_rooted' drawtype in the
seabed instead of on it.
Useful for placing decorations sunk into, or buried in, the ground.
2017-10-10 19:57:28 +01:00
DTA7 2cf9014160 Smooth lighting: Fix light leaking through edge-connected corners
For solid nodes, the lighting at a corner becomes face-dependent, which
means that only the four nodes in face-direction contribute to the
lighting (getSmoothLightSolid).
For special nodes, which use the lighting values at the eight corners of
a node, the lighting is not face-dependent, but certain nodes of the
eight surrounding nodes of a corner (here indices 4, 5, 6 and 7) can be
obstructed.

Ambient occlusion now also occurs for solid nodes, if two, three or four
of the four nodes in face-direction are solid.
2017-10-10 19:53:13 +01:00
Loic Blot 1ff5c20442
Fix warnings introduced by 9b8fa99fe3 2017-10-10 19:30:18 +02:00
Loïc Blot 32ae492657 Thread: fix a crash on Windows due to data race condition on Thread::m_start_finished_mutex (#6515) 2017-10-10 12:27:08 +02:00
Loic Blot 9d295906ef
NetworkPacket::putRawPacket: resize m_data to datasize + memcpy
In some cases NetworkPacket was created using default constructor and m_data is not properly sized.
This fixed out of bounds memory copy
Also use memcpy instead of std::vector affectation to enhance packet creation
2017-10-10 00:47:46 +02:00
paramat 0c9ca27ffc Simple decorations: Add 'param2_max' parameter for random param2
If 'param2_max' is not used, parameter 'param2' works as before for
compatibility.
If 'param2_max' is used, 'param2' and 'param2_max' become the lower
and upper bounds of a per-decoration random param2.
2017-10-09 18:27:17 +01:00
Loïc Blot 17016090e3 Travis: Update clang from 4.0 to 5.0 (#6467)
* Update clang from 4.0 to 5.0
2017-10-09 11:32:06 +02:00
adrido e6e5fa3bf8
Formspec: textarea with scrollbar improvements
Increase scrollrate depending on fontsize

Scroll on mousewheel

Allow scrolling and marking text on non writable textareas

Update lua api about readonly mode

Show scrollbar if text overflows
2017-10-09 08:11:03 +02:00
adelcoding1 9b8fa99fe3
FormSpec : Add an auto vertical scrollbar to the textarea 2017-10-09 08:11:00 +02:00
adrido c830347a57 Replace deprecated WINAPI GetVersionInfoEx (#6496)
* Replace deprecated WINAPI GetVersionInfoEx
2017-10-07 15:13:13 +02:00
Rob Blanckaert 3c93a56e16 Add setting for near plane distance. (#6395)
* Allow setting the near plane

* - Add near_plane limit of 0.5 to prevent x-ray.
- Add more details to near_plane setting.
2017-10-07 15:11:48 +02:00
SmallJoker f547452685 Unkown nodes: Provide position on interact (#6505)
* Unkown nodes: Provide position on interact
2017-10-07 15:11:07 +02:00
Vincent Glize 4e19791cde [CSM] Add callback on open inventory (#5793) 2017-10-02 22:09:49 +02:00
SmallJoker b9fb3cea33 ParticleSpawner::step cleanup and rotation fix (#6486)
* Particles: Move spawner code to a separate fucntion
2017-10-02 20:40:59 +02:00
paramat ee0bfbede1 CAO footstep sounds: Reduce gain to balance volume 2017-10-02 17:54:08 +01:00
paramat e2afcf85ce Stratum ore: Allow use with no noise for simple horizontal strata
If either of the 2 noise parameters are omitted the ore will occur from y_min
to y_max in a simple horizontal stratum. As this does not compute noise
performance improves, and is ideal for placing many layers.

Clean up some nearby ore documentation.
2017-10-01 22:31:44 +01:00
Loïc Blot 9fa78b7387 game.cpp: remove dead code for proto v25 compat (#6481)
Protocol v25 is not supported anymore
2017-09-30 16:41:18 +02:00
raymoo 8c16f18fdb Fix attached particle spawners far from spawn (#6479)
* Fix attached particle spawners far from spawn

When far from spawn, attached particle spawners
did not spawn particles.
2017-09-30 15:23:51 +02:00
Loïc Blot be10c0893e Make Player::peer_id server-side only and add getters and setters (#6478)
* Make Player::peer_id server-side only and add getters and setters

Player::peer_id has no sense client side, move it to server, make it private and add setter and getter
Also add some PEER_ID_INEXISTENT instead of harcoded 0
2017-09-30 12:00:05 +02:00
SmallJoker f729b5d2bd Localplayer: Fix disable_jump effect and getStandingNodePos()
Leave the old move code untouched.
2017-09-28 20:36:53 +01:00
orwell96 08846cd05c Add static_save property to luaentites to not save them statically. (#5112)
* Add no_static_save property to luaentites to not save them statically.
This allows for temporary objects that would get deleted anyway as soon as they are loaded again without the static saving overhead.

* Use positive meaning for static_save object property

* Invert meaning also for the LUA parameter
Note: getboolfield() does not change &result when field does not exist, so it defaults to the default value in the header file, which is 'true'.

* Extend push_object_properties()
2017-09-28 17:11:51 +02:00
Loïc Blot 2afe62952c Server: affect bind_addr on constructor instead of start() (#6474)
bind_addr is already ready when using constructor as we read is.IPv6 from it, instead pass the whole address
2017-09-28 13:47:30 +02:00
Loic Blot 27eeb3581f
Fix some forgotten u16 -> session_t in ad7daf7b52 2017-09-27 23:48:12 +02:00
Paramat 0df3671a34 Fix recent commit: std::max -> std::fmax for floats (#6469)
Fixes commit a455297d29
<cmath> header was already present in commit.
2017-09-27 23:03:41 +02:00
Loic Blot 43951cf646
Lint fix 2017-09-27 22:41:50 +02:00
Loïc Blot ad7daf7b52 Add session_t typedef + remove unused functions (#6470)
* Add session_t typedef + remove unused functions

u16 peer_id is used everywhere, to be more consistent and permit some evolutions on this type in the future (i'm working on a PoC), uniformize u16 peer_id to SessionId peer_id
2017-09-27 19:47:36 +02:00
SmallJoker 50b2185ced Update version correctly again (#6462)
* Update version correctly again
Partial revert of PR 6331

* It doesn't update automatically
2017-09-26 20:30:42 +02:00
Loïc Blot 50423d8c72 Update JsonCPP to 1.8.3 (#6466)
* Update JsonCPP to 1.8.3

* Fix deprecated functions

Json::FastWriter, Json::StyledWriter and Json::Reader are marked deprecated since 1.1 and are deprecated in 0.8 but not shown at compilation time.

Use new methods to serialize/deserialize
2017-09-26 20:30:14 +02:00
DTA7 9eb163ab4f Add mute setting (toggled by the mute key and in the volume menu) (#6415)
* Add mute setting (toggled by the mute key and in the volume menu)
2017-09-26 08:17:50 +02:00
Loïc Blot 6f1c907204 Implement mod communication channels (#6351)
Implement network communication for channels

* Implement ModChannel manager server side to route incoming messages from clients to other clients
* Add signal handler switch on client & ModChannelMgr on client to handle channels
* Add Lua API bindings + client packet sending + unittests
* Implement server message sending
* Add callback from received message handler to Lua API using registration method
2017-09-26 00:11:20 +02:00
paramat a455297d29 Positional sound: Limit volume when closer than 1 node
Change OpenAL distance model from AL_INVERSE_DISTANCE to
AL_INVERSE_DISTANCE_CLAMPED to avoid excessive volume when very close
to the sound location, for example MTG doors, and MTG fire sounds which
are combined at an average position and often located in air nodes.

Because AL_REFERENCE_DISTANCE has been reduced to 1 node (the distance
under which gain is clamped), multiply volume by the same factor to keep
sound gains the same as before, since the gain is calculated as:

gain = (AL_REFERENCE_DISTANCE / distance)
2017-09-25 19:09:21 +01:00
sfan5 d5a97e00ea Fix blocks written by vmanip not being marked as modified
This bug can be triggered by e.g. calling minetest.place_schematic()
and stopping the server immediately afterwards.
2017-09-23 17:09:11 +02:00
DTA7 5a3b8e34b3 Set placer to nil instead of a non-functional one in item_OnPlace (#6449)
* Set placer to nil instead of a non-functional one

This requires nil checks in core.rotate_node and core.rotate_and_place.
2017-09-21 21:52:52 +02:00
SmallJoker 67f97f8d32 on_death: Fix callback number of pushed arguments (Fixes #6451) 2017-09-21 19:56:24 +02:00
Loic Blot 080899b0f1
keycode.cpp: use std::unordered_map for keypress cache 2017-09-21 18:47:42 +02:00
jcalve 69f3c424c1 Fix compile error in openbsd (#6430)
Include the header that defines AF_INET and AF_INET6
2017-09-20 23:29:47 +02:00
paramat d8f20d029a Leveled nodebox: Change levels from 1/63rds to 1/64ths
Add missing documentation of leveled nodebox to lua_api.txt, plus
a little cleaning up nearby.
2017-09-18 11:05:39 +01:00
paramat 27144b4716 Biome API: Revert biomes, decos, ores being relative to water level
Feature is unnecessary and would greatly complicate future development,
it would also make 'get biome at pos' extremely complex.
Mgv7: Revert option to repeat surface biomes in floatlands, which
depended on the above.
2017-09-17 05:31:48 +01:00
paramat 76817fdf98 Biome generation: Fix layers of 'filler' nodes at biome y limits
Error was exposed by commit a1389c3865
'nplaced' was not set to U16_MAX when biome 'stone' was placed, so when
biome was recalculated in a column of stone, the 'nplaced' value
caused a few remaining filler nodes to be placed.
Occurs when the lower biome has a deeper depth of 'top' plus 'filler'
than the upper biome.
2017-09-17 03:20:20 +01:00
DTA7 45e9f80811 Correct tooltip_append_itemstring terminology (#6421) 2017-09-16 18:42:17 +02:00
Greg 45a7dd1ec4 Fix addModsFormConfig typo (#6420) 2017-09-16 18:40:19 +02:00
paramat a1389c3865 Generate biomes: Recalculate biome at biome lower limit
Prevents biome nodes passing below the defined y_min of that biome.
2017-09-16 05:14:04 +01:00
DTA7 808ada11db Add setting to display the itemstring after the tooltip in the inventory. (#6413)
* Add setting to display the itemstring after the tooltip in the inventory.
2017-09-15 14:31:32 +02:00
sfan5 04839f233f ServerEnv: Clean up object lifecycle handling (#6414)
* ServerEnv: Clean up object lifecycle handling
2017-09-15 12:19:01 +02:00
SmallJoker edbc533414 Customizeable max breath for players (#6411)
* Customizeable maximal breath for players
2017-09-15 12:18:47 +02:00
paramat 7640749d68 Cavegen: Avoid unsupported biome 'top' or 'filler' nodes
For 3D noise tunnels only, replace unsupported biome 'top' and 'filler'
nodes in tunnel roof with the defined biome 'stone'.
This makes terrain created by 3D noise tunnels consistent with the rest
of mapgen, which does exactly the same in this situation.
2017-09-14 04:13:47 +01:00
Rob Blanckaert a9d43a0471 Object properties: Add 'glow', disables light's effect if negative
The 'glow' value is added to the ambient light value.
Negative 'glow' disables light's effect on object colour, for faking
self-lighting, UI-style entities, or programmatic colouring in mods.
2017-09-14 04:06:05 +01:00
SmallJoker 5e141ac920 Network: Fix logging into older worlds with base64 hashes 2017-09-12 20:26:03 +02:00
SmallJoker ee9a442ecc Network: Remove large parts of deprecated legacy code (#6404)
Also remove the setting 'send_pre_v25_init'
Keep old enum entries for obsolete commands
2017-09-12 19:48:09 +02:00
sfan5 7f2a19da11 Fix failing linter (travis) 2017-09-12 19:35:31 +02:00
Kahrl 17fd5fe935 Make INodeDefManager::getIds return a vector, not a set 2017-09-12 19:31:46 +02:00
Auke Kok 5b3fbf9cf7 Implement client node dig prediction
Dig prediction allows clients to remove dug nodes without
waiting for server acknowledgement.
This patch allows mods to override dig prediction,
it can either be turned off or a different "prediction node"
can be selected.
2017-09-11 20:54:20 +02:00
SmallJoker 5f489efc69 Object properties: Fix loss of custom selectionbox
Only adjust it to the collisionbox value when the collisionbox was really set.
2017-09-10 20:26:03 +02:00
rubenwardy 829bbafb27 Fix incorrect buffer size calculation on creation of HUD status messages
Fixes #6400
2017-09-10 02:53:23 +01:00
paramat 51002b1629 Schematic decorations: Add 'place_offset_y' placement parameter
For precise control of schematic vertical position relative to the
'place_on' node.
Avoids workarounds that add empty nodes to a schematic and therefore
reduce performance.

Also remove long-unused decoration cutoff code.
2017-09-10 01:31:30 +01:00
rubenwardy 557bbc6704 Fix empty legacy meta being persisted 2017-09-10 01:30:42 +01:00
SmallJoker 745a90dc84 Server: Calculate maximal total block sends dynamically (#6393)
The block sends per client is 1/2 when reaching the maximal player count.
2017-09-09 00:36:48 +02:00
SmallJoker 1105a14bcc Particles: Do not add digging particles for airlike nodes (#6392) 2017-09-08 18:39:24 +02:00
Loic Blot 151c95bb9b
main.cpp: server-only builds should not include client headers 2017-09-07 23:51:06 +02:00
Loic Blot a3c298e1d1
Use a Buffer instead of SharedBuffer in ConnectionCommand
This fixes #6373
2017-09-05 22:14:56 +02:00
Wuzzy f231112cc4 Make HUD status messages translatable (#5795)
* Make HUD status messages translatable

* Make strings in showStatusTextSimple translatable
2017-09-05 21:57:29 +02:00
Rui 87c5a3fb2f Remove DSTACK keybind setting (#6378) 2017-09-05 20:00:36 +02:00
paramat 115f52af86 Network protocol documentation: Add 'can_zoom' to version 36 2017-09-05 00:28:18 +01:00
Loïc Blot 40dd03e328 Implement minetest.register_can_bypass_userlimit (#6369)
* Implement minetest.register_on_userlimit_check

This new callback permits to bypass the max_users parameter with new mods condition, based on player name or IP
Only one mod needs to permit it.

Move core part for builtin privileges checks to builtin
2017-09-04 22:08:59 +02:00
Loïc Blot c05228fa6d Re-apply previous commit with a typo fix 2017-09-04 17:37:08 +02:00
Loïc Blot 31e0f0efe9 Revert "Network: fix a concurrency problem, by re-adding a copy in ConnectionCommand"
This reverts commit 5b04f5e7d2.
2017-09-04 17:28:29 +02:00
Loïc Blot 5b04f5e7d2 Network: fix a concurrency problem, by re-adding a copy in ConnectionCommand 2017-09-04 16:46:03 +02:00
paramat a383eb0eb9 World start time: Add setting for this, default unchanged 2017-09-04 05:10:52 +01:00
you ad9786c44b Add build date to minetest --version and increase readability (#6331) 2017-09-03 22:32:30 +02:00
Paramat 9f6d90aa81 Ores: Add stratum ore (#6352)
Creates a single undulating ore stratum that is continuous across mapchunk
borders and horizontally spans the world.
Due to being continuous is ideal for creating bands of alternative stone
type running through cliffs and mountains, or underground layers.

Add missing documentation of 'ore_param2' parameter.
2017-09-03 22:32:21 +02:00
Dharkael 5bef339388 Use member initialization list instead of the constructor's body (#6371)
* Use member initialization list instead of the constructor's body
2017-09-03 19:33:22 +02:00
Loic Blot eabf04bd34
Network part requires SharedBuffers to be pass as value
This can trigger unreproductible crashes due to concurrency problem on SharedBuffers

This fixes #6354
2017-09-03 19:01:53 +02:00
Vaughan Lapsley 2ac5a45faa Remove 3D noise from getSteps function (#6360) 2017-09-02 18:01:13 +02:00
Rui c0dac4d928 Remove nodeupdate completely (#6358) 2017-09-01 13:40:09 +02:00
sapier bf403b923a Fix animation frame_speed and blend loosing precision due to incorrec… (#6357)
* Fix animation frame_speed and blend loosing precision due to incorrect data type
Add lua function set_animation_frame_speed to update the frame speed without resetting the animation to start
2017-09-01 11:15:12 +02:00
paramat 561a01cc2a Zoom: Move enabling zoom to a new player object property
Default enabled for no change in default behaviour.
Remove 'zoom' privilege.
2017-08-30 19:39:05 +01:00
Loïc Blot bd6b90359c Remove DSTACK support (#6346)
Debugstacks is not useful, we don't really use it, the DebugStack is not pertinent, gdb and lldb are better if we really want to debug.
2017-08-30 08:09:41 +02:00
Loïc Blot 1d4a2a6ea7 Network proto handlers/container fixes (#6334)
* Fix HP transport + some double <-> float problems

TOCLIENT_HP transport u16 hp as a u8, use u16 HP, this prevent HP over 255 to overflow across network

* Fix more double/float problem in serverpackethandler & remove implicit struct type for TileAnimationParams

* Fix connection unittests container
2017-08-29 20:37:54 +02:00
Loic Blot 35a4082727
Pushing typo fix introduced in b7ee608e70 2017-08-29 20:21:14 +02:00
SmallJoker b7ee608e70 Bump minimal protocol version to 36 (#6319)
* Bump minimal protocol version to 36
Item/Node/TileDef, NodeBox, TileAnimation: Remove old compat code

* Accept future serialisation versions
2017-08-29 19:26:55 +02:00
Loïc Blot 1b3e4e1736 Formspec: Add options to set background color and opacity (fullscreen mode + default mode) (#5493)
* Formspec: Add options to set background color and opacity (fullscreen mode)

* Enhance previous comment: Set formspec background when regenerate UI.

* This permit to do the calcul only at regen and override it with bgcolor tag
* Add a setting for default background color into formspec, separated from fullscreen
* Add a little performance gain on formspecs using a const ref instead of copying formspec string
2017-08-29 19:25:16 +02:00
you 7e38475554 mapblock_mesh.cpp: Fix code style and simplify a bit code (#4558)
* mapblock_mesh.cpp: Fix code style and simplify a bit code
2017-08-28 20:02:51 +02:00
Loïc Blot 5f38fe33f8 Clientevent refactor (#6320)
* Refactor clientevent structure

* Move structure outside of client header

* Create client events on heap not stack, this remove the ClientEvent object copy

* Use clientEventHandler to route events
2017-08-28 20:02:23 +02:00
Loïc Blot 6fd8a27c91 Pass SharedBuffer as value to increment reference count
This should fix #6332
Refcount is not increased due to reference, it can make this refcount incorrect in a multithread context
2017-08-28 17:12:46 +02:00
Dániel Juhász 04158d0c84 Use crack animation on all tile layers (#6104) 2017-08-28 07:51:55 +02:00
Nathanaël Courant 520b481383 Statbars: fix incorrect half-images in non-standard orientations (fixes #6198) 2017-08-27 19:06:40 +02:00
you e09c7fceaa core.get_objects_inside_radius: Omit removed objects (#6318)
Fixes #6294
2017-08-27 18:38:50 +02:00
Nathanaël Courant 5a6618cc57 Add '@n' escape sequences and some documentation on translated strings. 2017-08-26 09:43:08 +02:00
Ben Deutsch fc13c00ef3 Alternative code for slipping (#6256)
* Alternative code for slipping

- does not depend on frame rate
- controllable via environment variables for now

* Adjust slipping speed for item entities too.

* Final version of framerate-independent slippery code

* Remove dead code and fix formatting

* getStandingNodePos should only look 0.05 nodes downwards

This ensures that, even if the player is standing on a partially
filled node, this node is used as the standing node and not the
node below it.

Specific use: enables slippery slabs

* Exchange global getStandingPosNode change for local inline change

Reverts previous commit

* Revert the item movement changes

* Slippery nodes now slip over cliffs and edges

Players no longer suddenly stop before falling off.
Also refactored slippery code into getSlipFactor method.

* Slipping over an edge gated by player's is_slipping state

A new flag for just this case, to reduce costly node lookups in
the normal case of leaning over a non-slippery edge.
Public access for consistency and potential future uses.

* Minor code tweaks / cosmetics

* Add temp variable to improve readability and fix indentation issues
2017-08-26 09:01:09 +02:00
Paramat 0e0643df35 Android stepheight: Only increase if 'touching ground' (#6313) 2017-08-26 08:45:09 +02:00
Paramat e55aeec2e2 Mgfractal: Use 'switch case' instead of 'if else' (#6314) 2017-08-26 08:43:50 +02:00
rubenwardy ad9677a14f Check item_drop amount clientside (#6242) 2017-08-26 08:11:59 +02:00
Loïc Blot 3cea7a349a Network cleanup (#6310)
* Move Connection threads to dedicated files + various cleanups

* ConnectionReceiveThread::processPacket now uses function pointer table to route MT packet types
* Various code style fixes

* Code style with clang-format

* Various SharedBuffer copy removal

* SharedBuffer cannot be copied anymore using Buffer
* Fix many SharedBuffer copy (thanks to delete operator)
2017-08-25 15:53:56 +02:00
Dániel Juhász f6a33a1a7a Overlays for wield and inventory images (#6107)
* Overlays for wield and inventory images
2017-08-25 13:20:53 +02:00
Ekdohibs 6761e21383 Translations: prevent remote crash with invalid translations 2017-08-25 13:06:59 +02:00
Ekdohibs b24e6433df Add clientside translations. 2017-08-24 17:54:10 +02:00
adrido 017840f9b1 Dont define min/max macros in minwindef.h (#6308) 2017-08-24 17:13:53 +02:00
Pavel Puchkin caf61f3b4d Fix OSX builds caused by __WORDSIZE again (#6307) 2017-08-24 10:02:23 +02:00
stujones11 ac4884c3d6 Make entity selection and collision boxes independently settable (#6218)
* Make entity selection and collision boxes independently settable
2017-08-24 10:01:16 +02:00
Dániel Juhász 01c319d778 Fix Android node selection distance (#6187) 2017-08-24 08:31:33 +02:00
Ben Deutsch 397a701f98 Safe digging and placing (#6127)
* Setting: Safe digging and placing

* New setting 'safe_dig_and_place' under Controls
* If set, digging and placing will not auto-repeat
* Releasing buttons unblocks the respective action again
* Useful for inexperienced users in creative mode where default
  repeat times may be too short

* Safe placing (right click repetition) does not need a guarding flag

* Added new setting to minetest.conf.example
2017-08-24 08:30:46 +02:00
Loïc Blot c7160cb629 Network cleanup (#6302)
* Cleanup network headers

* Move peerhandler to a specific header to reduce compilation times
* Move socket.cpp/h to network folder

* More work

* Network code cleanups

* Move socket.{cpp,h} to network folder
* Move Address object to network/address.{cpp,h}
* Move network exceptions to network/networkexceptions.h
* Client: use unique_ptr for Connection
* Server/ClientIface: use shared_ptr for Connection

* Format fixes

* Remove socket.cpp socket.h from clang-format whitelist

* Also fix NetworkPacket code style & make it under clang-format
2017-08-24 08:28:54 +02:00
Pavel Puchkin 928609c8bd Fix OSX builds (closes #6289, fixes #6270) (#6306)
Of course, this is not ideal solution, but we want our users to be happy in the
first place, right?
2017-08-24 07:58:12 +02:00
SmallJoker f7d50a8078 Respect object property hp_max field for players (#6287)
* Respect object property hp_max field for players
This allows modders to configure the maximal HP per player

* Statbars: Downscale bar to full 20 HP when exceeding this value
Add default max HP for players and breath constants to builtin
Document the constants

* Rename PLAYER_MAX_HP -> PLAYER_MAX_HP_DEFAULT
2017-08-23 22:32:10 +02:00
stujones11 d01b65abeb Do not add base position to player selection box (#6241) 2017-08-23 14:18:44 +02:00
Loïc Blot e2a6b7c8d2 serialize: use a temporary for SerializeException
Exception must always use temporary instead of global copied exception instances, it's not recommended and should have undefined issues
2017-08-21 16:07:39 +02:00
paramat 1dd535c0c6 Mgv6: Remove incorrectly defined and unused 'volume nodes' 2017-08-20 23:59:02 +01:00
paramat 7657fe7a50 Minimap: Add new HUD flag for minimap radar mode
Flag default is true to not change default behaviour.
The existing minimap HUD flag remains the master control for minimap.
2017-08-20 23:58:15 +01:00
Loic Blot a3441638c6
Fix a formspec crash triggered by ae9b5e0098 2017-08-20 20:24:26 +02:00
Jens Rottmann 9d8cb510b3 Change BS constant from implicit double to float (#6286)
the BS constant
implicitly promotes all position calculations it is used in to double even
though positions (= v3f) are only meant to be floats.

There are many, many similar occurrences everywhere, but I'm not willing to
hunt down all; I only fixed the little part I'm already familiar with.
2017-08-20 19:37:55 +02:00
Loïc Blot ae9b5e0098 Modernize code: very last fixes (#6290)
Last modernization fixes
2017-08-20 19:37:29 +02:00
Loïc Blot 1c1c97cbd1 Modernize source code: last part (#6285)
* Modernize source code: last par

* Use empty when needed
* Use emplace_back instead of push_back when needed
* For range-based loops
* Initializers fixes
* constructors, destructors default
* c++ C stl includes
2017-08-20 13:30:50 +02:00
Loïc Blot 50669cd282 Fix shader.h inclusion place in game.cpp 2017-08-19 22:24:30 +02:00
Loïc Blot 88b436e6a9 Code modernization: subfolders (#6283)
* Code modernization: subfolders

Modernize various code on subfolders client, network, script, threading, unittests, util

* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* C++ STL header style
* Make connection.cpp readable in a pointed place + typo
2017-08-19 22:23:47 +02:00
Loïc Blot 7528986e44 Code modernization: src/p*, src/q*, src/r*, src/s* (partial) (#6282)
* Code modernization: src/p*, src/q*, src/r*, src/s* (partial)

* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* C++ STL header style
* Spelling: vertice -> vertex
2017-08-19 14:25:35 +02:00
Loïc Blot 1992db1395 Code modernization: src/n*, src/o* (#6280)
* Code modernization: src/n*, src/o*

* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* remove unused IWritableNodeDefManager::clone()
* C++ STL header style
* Pointer constness in some functions
2017-08-19 11:30:46 +02:00
SmallJoker 4a1265ceb5 GenericCAO: Fix light position for non-players, remove deprecated initialisation code (#6281) 2017-08-19 11:30:09 +02:00
Loïc Blot de4c2e4250 ServerMap saving: cleanups (#6274)
* remove sector meta loading/saving from files which targets dead code (differs_from_disk is always empty)
* this remove empty ServerMapSector and ClientMapSector, remove MapSector childs
2017-08-19 11:29:46 +02:00
Loïc Blot b82884aa62 ItemCAO removal (#6279)
This object is from 0.3 era and was never used since 0.4.X and GenericCAO usage
2017-08-19 09:30:43 +02:00
Loic Blot d382483fa7
Code modernization: src/m* (part 3)
* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* remove some unused headers in some cpp variable
2017-08-19 09:29:55 +02:00
Loic Blot b5f7249a7e
Code modernization: src/m* (part 2)
* empty function
* default constructor/destructor
* remove unused Map::emergeSector(a,b)
* for range-based loops
* migrate a dirs[7] table to direction tables
* remove various old unused function
2017-08-19 09:12:54 +02:00
Paramat e53d8a7536 Banmanager: Move 'creating' message from warningstream to infostream (#6277) 2017-08-19 08:06:22 +02:00
Loïc Blot fd3afbced5 Optimize headers (part 2) (#6272)
* Optimize headers (part 2)

* less debug.h in headers
* less remoteplayer.h for everybody

* Cleanup (part 2)

* camera.h: mesh.h
* mapgen.h: mapnode.h
* serverenvironment.h: mapblock.h
* nodedef.h: shader.h
2017-08-18 19:25:07 +02:00
Loïc Blot c427533389 Modernize various files (src/m*) (#6267)
* Modernize various files (src/m*)

* range-based for loops
* code style
* C++ headers instead of C headers
* Default operators
* empty function

Thanks to clang-tidy
2017-08-18 18:18:25 +02:00
Loïc Blot fb196be8cf server.cpp: unroll setting when sending mapblocks (#6265)
* server.cpp: unroll setting when sending mapblocks

* Improve a little bit performance when sending mapblocks massively
* Use a range based for
* Code style fixes
2017-08-18 12:17:30 +02:00
adrido 1d055aad0f Add missing ctime include (#6269) 2017-08-18 12:17:19 +02:00
Loic Blot 951f1201c4
Modernize various files (src/k*, src/l*)
* range-based for loops
* code style
* C++ headers instead of C headers
* Default operators
2017-08-18 08:21:01 +02:00
Loic Blot 1d086aee7c
Modernize various files (part 2)
* range-based for loops
* emplace_back instead of push_back
* code style
* C++ headers instead of C headers
* Default operators
* empty stl function
2017-08-18 08:07:59 +02:00
Loic Blot 55ab4264dc
Modernize various files
* range-based for loops
* emplace_back instead of push_back
* code style
* C++ headers instead of C headers
* Default operators
* empty stl function
2017-08-18 07:44:52 +02:00
Loïc Blot 13e995b811 Modernize src/c* src/d* and src/e* files (#6263)
* Modernize src/c* src/d* and src/e* files

* default operator
* redundant init
* delete default constructors on CraftDefinition childs (never used)
* fix some missing init values
* const ref fix reported by clang-tidy
* ranged-based for loops
* simple conditions & returns
* empty stl function instead of size
* emplace_back stl function instead of push_back + construct temp obj
* auto for some iterators
* code style fixes
* c++ stl headers instead of C stl headers (stdio.h -> cstdio)
2017-08-17 23:02:50 +02:00
Loïc Blot 921151d97a C++ modernize: Pragma once (#6264)
* Migrate cpp headers to pragma once
2017-08-17 22:19:39 +02:00
Loïc Blot c738d1eeab clientobject, clouds, collision, clientsimpleobject: code modernization (#6260)
* clientobject, clouds, collision, clientsimpleobject: code modernization

* use range-based for loops
* simplify some tests
* various code style fixes
* use emplace_back instead of push_back when necessary
* use auto on some iterators
* use default operator when needed
* unroll v3s16 creation on collisionMoveSimple
2017-08-17 20:23:54 +02:00
Loïc Blot 9bd18874a1 Reduce dedicated server step to 0.09 (#6252)
Minetest performance improvement has been huge since months, server step reduction will permit to handle client events a little bit faster without too many penalty costs due to core engine
2017-08-17 19:16:02 +02:00
Loic Blot 8432efa308
Typo fix in compat code from commit 1d8d01074f 2017-08-17 19:15:12 +02:00
Loic Blot b204bc4da9
clientmap, clientmedia: code modernization
* use range-based for loops
* simplify some tests
* various code style fixes
* remove debugprint in ClientMap::getBackgroundBrightness, debug code was not intended to be there
* remove unused fields in MapDrawControl
* use emplace_back instead of push_back when necessary
2017-08-17 08:26:52 +02:00
Loic Blot 3e80bf933f
l_server, clientenvironment, clientiface: code modernization
* use range-based for loops
* use refs on some exceptions & one setter
2017-08-17 08:11:39 +02:00
Vitaliy 9c8fec83af New lighting curve (#5279)
* New lighting curve

* Make polynomial lighting curve

* Update default lighting settings
2017-08-17 00:23:20 +02:00
Loïc Blot 1d8d01074f ClientInterface: add a function to verify (correctly) if user limit was reached (#6258)
* ClientInterface: add a function to verify (correctly) if user limit was reached

CS_HelloSent is a better indicator of active slots than CS_Created, which are session objects created after init packet reception

Switch existing checks to ClientInterface::isUserLimitReached()

Use range-based for loop for getClientIds() used function too

This will fix #6254 (not the memory overhead if init is flooded)
2017-08-16 23:48:29 +02:00
Loïc Blot 85511a642f Cleanup various headers to reduce compilation times (#6255)
* Cleanup various headers to reduce compilation times
2017-08-16 22:11:45 +02:00
Loic Blot 816bca32ac
client.cpp: modernize code
* Range based for loops
* Empty operator on stl containers
2017-08-16 08:53:52 +02:00
Loic Blot 90dfafcda2
cavegen.cpp, chat.cpp: modernize code 2017-08-16 08:26:04 +02:00
Loïc Blot 9dd0f952e0 Modernize client code (#6250)
* Various code style fixes
* Use range based for loops
* Use empty instead of empty objects
* Use C++11 default keyword for trivial constructors and destructors
* Drop some useless casts
* Use emplace_back instead of push_back to improve performance of some vectors push
2017-08-15 20:30:30 +02:00
Loic Blot 64c7a689ad
bab.cpp: code modernization
* Use for range based loops
* Simplify some tests
* Code style fixes
2017-08-15 09:39:58 +02:00
Loic Blot 342e9336ae
server.cpp: code modernization
* Use more for range based loops
* Simplify some tests
* Code style fixes
* connection.h: better PeerChange constructor instead of creating uninitalized object and then affect variables
2017-08-15 09:30:31 +02:00
Loic Blot 618e0dd417
Lint fix on localplayer.h 2017-08-15 09:15:04 +02:00