Commit Graph

7004 Commits

Author SHA1 Message Date
paramat dc9e4517a8 Mgv7: Add option to repeat surface biomes in floatlands 2017-07-22 00:56:55 +01:00
TeTpaAka 49920cfe8d Player collisionbox: Make settable
Breaks compatibility with old clients.
2017-07-21 02:03:22 +01:00
Lars Hofhansl 5045bdc6d8 In-cloud fog: Strengthen effect when small view range is used
Ensure in-cloud fog is always stronger than outside-of-cloud-fog even when
using a small view range.
Also limit in-cloud fog range to a maximum of 32 nodes to keep it fairly
strong when using a large view range.
2017-07-18 22:16:41 +01:00
paramat 5f37efbec4 Window size: use 1024x600 to avoid a smaller UI
The change from 800x600 to 1024x576 (16:9) was a reduction in height which caused
user interface to become smaller.
Continue to use width 1024 as it is a common small screen width.
2017-07-18 22:11:34 +01:00
Loïc Blot 79f19b8369 [CSM] Add flavour limits controlled by server (#5930)
* [CSM] Add flavour limits controlled by server

Server send flavour limits to client permitting to disable or limit some Lua calls

* Add limits for reading nodedefs and itemdefs

* flavour: Add lookup node limits

* Merge get_node_or_nil into get_node.

Sending fake node doesn't make sense in CSM, just return nil if node is not available for any reason

* Add node range customization when noderange flavour is enabled (default 8 nodes)

* Limit nodes range & disable chat message sending by default

* Bump protocol version
2017-07-18 21:39:55 +02:00
adrido 7e3cdf7088 Copy lua51.dll (luajit) to bindir (#6148) 2017-07-18 21:29:23 +02:00
Loic Blot a8c405b04e
LBM content mapping map doesn't need to be ordered, use std::unordered_map
Also rename helper to lbm_map instead of container_map
2017-07-18 08:23:37 +02:00
Loic Blot 14a1a712de
Very little performance fix on correctBlockNodeIds
+ C++11 codestyle
2017-07-18 08:18:13 +02:00
paramat 5117ce4c90 Mgfractal: Improve spawning behaviour
Spawn player 1 node higher to avoid spawning waist-deep in a possible
biome 'dust' node, such as tundra snowblock.
Tune default offset to spawn players in a more interesting location on the
mandelbrot sets, on a raised area that looks like a spawn platform.
Tune julia parameters to help avoid spawn search failing, especially for
fractal 6.
2017-07-17 20:19:43 +01:00
number Zero 20936e1c3e Mesh generation: Fix performance regression caused by 'plantlike_rooted' PR
Regression caused by ef285b2815
2017-07-17 20:13:53 +01:00
Paramat d3d3638f48 Chat: Move chat text down to not overlap 3rd line of debug text (#6145) 2017-07-17 13:53:14 +02:00
cx384 d60434c7b1 Add information about the button height 2017-07-16 13:10:34 +02:00
Paramat d4cc49e9a7 F5 debug display: Reformat and remove some information (#6125)
For consistency return to 'FPS =', add comma before FPS.
Remove 'R' from 'range_all' as may be re-keymapped.
Remove inconsistent brackets from 'range_all'.
Change 'v_range' to 'view_range'.
Add 'pos = ' before co-ordinates.
Add spaces around '=' in yaw display.
Remove brackets from around 'yaw' and 'seed'.
Move 'pointing_at' to 3rd line.
Remove 'param1' (0 for all solid nodes and unreadable for light sources due to
light bank encoding).
Remove file name of pointed node top tile (this also removes the need to get
ContentFeatures for the node, slightly improving performance).
Replace quotes around node data with brackets, looks better and more consistent.

Add 'guitext3' for third line.
Use 'setVisible' for all 3 lines to control the setting of each text rectangle.
Improve logic of 3rd line to only run code it needs to depending on whether
pointing data is avaialble and whether node is not 'ignore' and not 'unknown'.
2017-07-16 12:33:09 +02:00
Loïc Blot 7ddf67aa14 Chat protocol rewrite (#5117)
* New TOCLIENT_CHAT_MESSAGE packet

* Rename old packet to TOCLIENT_CHAT_MESSAGE_OLD for compat
* Handle TOCLIENT_CHAT_MESSAGE new structure client side
* Client chat queue should use a specific object
* SendChatMessage: use the right packet depending on protocol version (not complete yet)
* Add chatmessage(type) objects and handle them client side (partially)
* Use ChatMessage instead of std::wstring server side

* Update with timestamp support
2017-07-16 10:47:31 +02:00
kilbith ecbc972ea6 Camera: Fix wieldmesh glitch after teleporting (#6138) 2017-07-15 20:15:36 +02:00
Loic Blot 84aa845911
Revert "CSM: Revert "[CSM] Add send_chat_message and run_server_chatcommand""
This reverts commit bdac12761c.
2017-07-15 09:28:10 +02:00
paramat fafa51202c Default window size: Increase to 1024x576, aspect ratio 16:9 2017-07-15 01:36:37 +01:00
rubenwardy bdac12761c CSM: Revert "[CSM] Add send_chat_message and run_server_chatcommand"
Original PR: #5747.
This reverts commit 39f4a2f607.
2017-07-15 01:35:18 +01:00
SmallJoker a5c37717ff Sneak: Stripped down version
Fix taking damage caused by sneaking over a nodebox gap.
Fix strange behaviour on stair nodeboxes.
Enable jumping from node edges while sneaking.
Enable movement around corners while sneaking on a 1-node-high groove in a wall.
2017-07-15 01:27:37 +01:00
Elijah Duffy dc3ca09e0e Remove remaining modstore code (#6120) 2017-07-14 20:37:58 +02:00
adrido 32b68de65a Dont search for locale folders if gettext is disabled (#6133)
If gettext is disabled, it is defined as 0.
2017-07-14 17:31:18 +02:00
paramat 0b3a8deb2c Advanced settings: Reformat noise parameter format example
Previously the example ran off the edge of the formspec.
Also include 'lacunarity' in the format instead of treating it as an option.
2017-07-11 01:15:01 +01:00
paramat 8299e4b67e Biomes/decorations/ores: Make relative to 'water_level' setting
Add 'biome_zero_level' argument to 'generateBiomes()', 'deco_zero_level'
argument to 'placeAllDecos()' and 'ore_zero_level' to 'placeAllOres()'
to allow mapgens to vertically shift the registered biomes, decorations
and ores per-mapchunk.
Will also allow many realm possibilities in future mapgens.
2017-07-11 01:14:24 +01:00
number Zero ef285b2815 Add 'plantlike_rooted' drawtype
Useful for underwater plants.
Node consists of a base cube plus a plantlike extension that can pass through
liquid nodes above without creating air bubbles or interfering with liquid flow.
Uses paramtype2 'leveled', param2 defines height of plantlike extension.
2017-07-11 01:02:22 +01:00
vlapsley f871852f13 Mapgen Carpathian: Add lava_depth parameter 2017-07-07 22:28:40 +01:00
Dániel Juhász 3caad3f3c9 Expose getPointedThing to Lua
This commit introduces Raycast, a Lua user object, which can be
used to perform a raycast on the map. The ray is continuable, so one can
also get hidden nodes (for example to see trough glass).
2017-07-07 22:28:23 +01:00
Vaughan Lapsley a80ecbee1e Mapgen: Add Carpathian mapgen (#6015) 2017-07-06 13:53:56 +02:00
Ben Deutsch 6bedb6de40 Fog effect when camera is inside cloud
Fixes issue #3576

* Clouds now take camera position as 3D, not 2D

* Cloud grid filling extracted to gridFilled method

* Clouds detect whether camera is inside cloud

* Camera in cloud changes fog by overriding sky colors
  with cloud color

* Sun, moon and stars can be temporarily disabled
  with setBodiesVisible

* Disabling fog also disables all "inside cloud" behaviors
2017-07-05 15:39:49 +02:00
Vincent Glize 61a3de42fd Treegen: Fix s16 overflow warning (#6082) 2017-07-04 23:18:28 +02:00
Elijah Duffy 66c4108581 Main Menu: Allow copying directories from non-Minetest locations (#6095)
Allow `core.copy_dir` (main menu API) to copy directories from a
non-Minetest location. The check to disallow copying to non-Minetest
locations is retained.
2017-07-04 09:27:29 +02:00
kilbith 7c24889773 Camera: Arm inertia code cleanup (#6094) 2017-07-04 09:25:36 +02:00
Loic Blot 014a1a0805
Fix crash due to missing pointer validation
Fix #6092
2017-07-02 22:26:25 +02:00
Loïc Blot 94c294bfdc Irrlicht cleanup: cleanup various object to use RenderingEngine (#6088)
* Irrlicht cleanup: cleanup various object to use RenderingEngine

* CAO doesn't need scenemanager in addToScene
* Camera doesn't need VideoDriver pointer or SceneManager in constructor
* Hud doesn't need driver & scene manager in constructor
* Hud doesn't need scenemanager pointer
* Tile.h doesn't need IrrlichtDevice header (just SMaterial)
* WieldMeshSceneNode: only take scene, we always use scene root node as parent
2017-07-02 20:29:58 +02:00
Jean-Patrick Guerrero 51104d9cd4 Camera: Improve arm inertia 2017-07-02 13:34:03 +01:00
paramat ab746b0704 Dungeons: Add setting to prevent projecting dungeons
Prevents dungeons generating into ignore nodes in ungenerated mapchunks,
which can occasionally result in a dungeon projecting from the terrain.
2017-07-02 13:33:21 +01:00
stujones11 c358004368 Include TILE_MATERIAL_OPAQUE in shaders header (#6086) 2017-07-01 18:01:07 +02:00
Vincent Glize c772e0e18c C++11 cleanup inventorymanager (#6077)
* C++11 cleanup inventorymanager
2017-07-01 14:07:40 +02:00
stujones11 6e5588c8e1 Tile material: Add 'TILE_MATERIAL_OPAQUE', use for drawtype 'NDT_NORMAL'
Prevents normal drawtype nodes having transparency.
Avoids clients cheating by using 'x-ray' texture packs with transparent textures.
2017-07-01 04:43:55 +01:00
red-001 f3ad75691a Create a filesystem abstraction layer for CSM and only allow accessing files that are scanned into it. (#5965)
* Load client-side mods into memory before executing them.

This removes the remaining filesystem access that client-sided mods had and it will hopefully make then more secure.

* Lua Virtual filesystem: don't load the files into memory just scan the filenames into memory.

* Fix the issues with backtrace

* fix most of the issues

* fix code style.

* add a comment
2017-06-30 20:14:39 +02:00
Paramat 2e53801fc0 Mapgen: Remove unnecessary 'this->' from constructors (#6069) 2017-06-30 15:32:35 +02:00
Vincent Glize 367d218f2b Change the server description after a search (#6074) 2017-06-29 07:53:44 +02:00
paramat 6d2833a887 Mgv7: Fix undefined 'float_mount_height'
Commit cad10ce3b7 altered the parameter
'float_mount_height' but was missing the necessary line in the constructor
to get the altered value from 'params'.

Fixes 3D floatland terrain generating everywhere.
2017-06-28 11:48:17 +01:00
Jesse McDonald 85d7b18d85 Fix for empty key/value when reading item string with wear but no metadata (#6058) 2017-06-27 12:34:11 +02:00
adrido d7343b6c93 Fix msvc annoyances (#5963)
* MSVC: Fix '/std:c++11' is not a valid compiler option

* MSVC/MINGW: Define 'WIN32_LEAN_AND_MEAN' for the whole project

In some obscure cases 'Windows.h" got includet before that definition, which leaded to compilation warnings+errors

* MSVC: '/arch:SSE' is only available for x86

* MSVC: Fix float conversation

* MSVC/MINGW: use winthreads on Windows

* MSVC: 'USE_CMAKE_CONFIG' might be already definied by CMake build system

* MSVC: Use all available cpu cores for compiling

* Add missing include ctime and use std::time_t
2017-06-27 11:54:40 +02:00
kilbith 48cd217e3b Fix arm inertia limit case 2017-06-27 11:26:37 +02:00
Loic Blot 53a6b5439e
Fix undefined behaviour in arm movement when dividing by zero 2017-06-26 23:22:42 +02:00
Loïc Blot b3a36f7378 Isolate irrlicht references and use a singleton (#6041)
* Add Device3D class which will contain IrrlichtDevice interface

move getSupportedVideoDrivers to Device3D

Add Device3D singleton & use it in various places

Rename Device3D to Rendering engine & add helper functions to various device pointers

More singleton work

RenderingEngine owns draw_load_screen

move draw functions to RenderingEngine

Reduce IrrlichtDevice exposure and guienvironment

RenderingEngine: Expose get_timer_time() to remove device from guiEngine

Make irrlichtdevice & scene manager less exposed

* Code style fixes

* Move porting::getVideoDriverName, getVideoDriverFriendlyName, getDisplayDensity, getDisplaySize to RenderingEngine

Fix XORG_USED macro -> RenderingEngine + create_engine_device from RenderingEngine constructor directly

* enum paralax => enum parallax
2017-06-26 20:11:17 +02:00
Loic Blot a8650e785d
Fix Camera::add_arm_inertia -> addArmInertia 2017-06-26 20:10:11 +02:00
kilbith 1d1d922a7a Add Arm Inertia (#6050) 2017-06-26 20:03:48 +02:00
paramat 936d67dad4 Ores: Make 'absheight' flag non-functional
The 'absheight' flag was added years ago for the floatlands of 'indev'
mapgen (now deleted). The feature mirrored all ore placement around y = 0
to place ores in floatlands.

In MTG we now use dedicated ore registrations for floatlands.

The feature is crude, inflexible, problematic and very rarely used, it
also makes ore vertical range code more complex.
Minetest 0.5 is a good chance to remove the feature.

The flag itself remains to not break flag values.
2017-06-26 04:38:36 +01:00