Duane Robertson [Tue, 31 Jan 2017 04:37:04 +0000 (22:37 -0600)]
Tell on_punch to expect a return value
The return value should be interpreted as a boolean saying whether
the lua on_punch function handled damage or the system needs to.
paramat [Mon, 30 Jan 2017 18:06:17 +0000 (18:06 +0000)]
Mgvalleys: Fix missing decorations and incorrect function order
Fix missing decorations at horizontal chunk borders by adding
'updateHeightmap()' after terrain generation.
Swap order of 'calculateNoise' and 'calcBiomeNoise' because
'calculateNoise' modifies the heat and humidity maps created in
'calcBiomeNoise'.
Remove confusing comment, code block is not just for mods and
seems essential for correct mapgen behaviour.
Ekdohibs [Mon, 30 Jan 2017 06:58:43 +0000 (07:58 +0100)]
Fix anticheat resetting client position after the client is teleported
Previously, m_move_pool could accomodate the client moving from the new
position to the old one, and the server accepted the client to go back
to its old position. However, it couldn't then accomodate the client
moving from its old to its new position, and therefore would reset position
to the old position. Thus, by emptying m_move_pool after a teleport, the
server no longer accepts the client to go back to its old position. A
drawback is however that a laggy client *will* trigger a few
"moved_too_fast" anticheats before being told about its new position.
Don't report player cheated if caused by lag.
Fixes #5118
Nathanaël Courant [Tue, 31 Jan 2017 23:02:30 +0000 (00:02 +0100)]
Make facedir_to_dir and wallmounted_to_dir work with coloured nodes as well. (#5153)
numberZero [Tue, 31 Jan 2017 07:42:39 +0000 (11:42 +0400)]
Fix fog weirdness (#5146)
paramat [Sun, 29 Jan 2017 06:29:40 +0000 (06:29 +0000)]
Plantlike visual scale: Send sqrt(visual_scale) to old clients
Keep compatibility with protocol < 30 clients now that visual_scale
is no longer applied twice to plantlike drawtype and mods are being
updated to a new value.
sapier [Sat, 14 Jan 2017 22:16:58 +0000 (23:16 +0100)]
Add multiply texture modifier
Allows colorizing of textures using a color multiplication method.
Dániel Juhász [Mon, 30 Jan 2017 07:18:18 +0000 (08:18 +0100)]
Use fabs() instead of abs() (#5141)
Dániel Juhász [Mon, 30 Jan 2017 01:47:36 +0000 (02:47 +0100)]
Re-add halo highlight (#5130)
Due to a rebase mistake halo highlighting was disabled. This commit
re-adds that feature.
Ezhh [Sun, 29 Jan 2017 16:10:17 +0000 (16:10 +0000)]
Add console height setting (#5136)
Zeno- [Sun, 29 Jan 2017 09:26:00 +0000 (19:26 +1000)]
Rename height to scale for openConsole() (#5139)
For Game::openConsole() and GUIChatConsole::openConsole() the
parameter name 'height' is misleading because it's actually a
percentage of the screen/window height.
ShadowNinja [Sat, 28 Jan 2017 22:23:30 +0000 (17:23 -0500)]
Fix AIX threading build
ShadowNinja [Sat, 28 Jan 2017 22:02:43 +0000 (17:02 -0500)]
Fix synchronization issue at thread start
If a newly spawned thread called getThreadId or getThreadHandle before
the spawning thread finished saving the thread handle, then the
handle/id would be used uninitialized. This would cause the threading
tests to fail since isCurrentThread would return false, and if Minetest
is built with C++11 support the std::thread object pointer would be
dereferenced while ininitialized, causing a segmentation fault.
This fixes the issue by using a mutex to force the spawned thread to
wait for the spawning thread to finish initializing the thread object.
An alternative way to handle this would be to also set the thread
handle/id in the started thread but this wouldn't work for C++11
builds because there's no way to get the partially constructed object.
SmallJoker [Mon, 2 Jan 2017 14:17:28 +0000 (15:17 +0100)]
from_table: Fix crash for missing inventory or field
sapier [Sat, 21 Jan 2017 14:58:07 +0000 (15:58 +0100)]
Make entity on_punch have same signature and behaviour as player on_punch
Paramat [Sat, 28 Jan 2017 10:07:35 +0000 (10:07 +0000)]
Plantlike: Fix visual_scale being applied squared (#5115)
Visual_scale was applied twice to plantlike by accident sometime between
2011 and 2013, squaring the requested scale value. Visual_scale is
correctly applied once in it's other uses in signlike and torchlike.
Two lines of code are removed, they also had no effect for the vast
majority of nodes with the default visual_scale of 1.0.
The texture continues to have it's base at ground level.
Loïc Blot [Fri, 27 Jan 2017 07:59:30 +0000 (08:59 +0100)]
Implement player attribute backend (#4155)
* This backend permit mods to store extra players attributes to a common interface.
* Add the obj:set_attribute(attr, value) Lua call
* Add the obj:get_attribute(attr) Lua call
Examples:
* player:set_attribute("home:home", "10,25,-78")
* player:get_attribute("default:mana")
Attributes are saved as a json in the player file in extended_attributes
key
They are saved only if a modification on the attributes occurs and loaded
when emergePlayer is called (they are attached to PlayerSAO).
paramat [Thu, 26 Jan 2017 15:38:18 +0000 (15:38 +0000)]
Dungeongen: Fix selection of diagonal corridors
The do .. while loop is waiting for both dir.X and dir.Z to be non-zero,
so should continue to loop if either dir.X or dir.Z are zero. The brackets
present suggest this was intended to be OR not AND.
paramat [Mon, 23 Jan 2017 08:07:34 +0000 (08:07 +0000)]
Dungeons: Add nodebox stairs to desert and sandstone dungeons
Desert and sandstone dungeons have 2 node wide corridors. Previously,
nodebox stairs were disabled because dungeon generation code did not
support nodebox stairs wider than 1 node, now it does.
Add 'stair desert stone' content id to MappgenBasic.
Requires 'mapgen stair desert stone' to be added to Minetest Game.
Dániel Juhász [Thu, 26 Jan 2017 15:10:56 +0000 (16:10 +0100)]
Fix after hardware node coloring (#5114)
paramat [Wed, 25 Jan 2017 15:23:29 +0000 (15:23 +0000)]
Dungeongen: Fix out-of-voxelmanip access segfault
My recent dungeon commit allowed stairs to be placed across the full
width of corridors, but some of the new node positions accessed were
missing checks for being within the voxelmanip, causing occasional
segfaults near dungeons with corridors wider than 1 node.
Add 'vm->m_area.contains(pos)' checks just before stair position
voxelmanip access. This allows an earlier check to be removed as it
is now redundant.
rubenwardy [Wed, 25 Jan 2017 09:57:33 +0000 (09:57 +0000)]
Block spam messages before calling on_chatmessage callbacks (#4805)
Fixes #4799
number Zero [Tue, 24 Jan 2017 21:33:01 +0000 (00:33 +0300)]
Add smooth lighting for all nodes
Note: Smooth lighting disables the mesh cache.
raymoo [Tue, 24 Jan 2017 16:25:11 +0000 (08:25 -0800)]
Wrap to positive degree values (#5106)
sfan5 [Tue, 24 Jan 2017 14:19:29 +0000 (15:19 +0100)]
Initialize TileAnimationParams to prevent crashes/bugs for legacy invocations of add_particle{,spawner} (fixes #5108)
paramat [Sun, 22 Jan 2017 04:21:29 +0000 (04:21 +0000)]
Zoom FOV: Reduce minimum zoom FOV to 7 degrees
The default of 15 is unchanged.
7 degrees is x10 magnification which is common for binoculars.
Alter hardcoded limits in camera.cpp:
Minimum 7 degrees.
Maximum 160 degrees to match upper limits in advanced settings.
paramat [Sat, 21 Jan 2017 06:30:33 +0000 (06:30 +0000)]
Dungeons: Support nodebox stairs wider than 1 node
Previously, code did not support stair nodeboxes in corridors wider
than 1 node.
Make stair nodeboxes full width even in corridors with different
widths in X and Z directions.
Auke Kok [Thu, 12 Jan 2017 19:56:41 +0000 (11:56 -0800)]
core: Add dir_to_yaw and yaw_to_dir helpers
These are needed to go from things like entity yaw to a vector
and vice versa.
Auke Kok [Thu, 12 Jan 2017 19:27:39 +0000 (11:27 -0800)]
Vector: Add vector.sort(a, b): return box edges
This function returns the box corners of the smallest box
that includes the two given coordinates.
Dániel Juhász [Thu, 12 Jan 2017 14:46:30 +0000 (15:46 +0100)]
Add hardware node coloring. Includes:
- Increase ContentFeatures serialization version
- Color property and palettes for nodes
- paramtype2 = "color", "colored facedir" or "colored wallmounted"
sfan5 [Sun, 22 Jan 2017 19:17:13 +0000 (20:17 +0100)]
Fix potential crash in chat handling (since
2f56a00d9eef82052614e5854a07b39b087efd0b)
Loïc Blot [Sat, 21 Jan 2017 21:05:54 +0000 (22:05 +0100)]
Remove os.exit from the Lua secure sandbox (#5090)
os.exit will exit not using proper resource liberation paths.
Mods should call the proper exit mod using our API
Loïc Blot [Sat, 21 Jan 2017 18:30:42 +0000 (19:30 +0100)]
Add show_statusline_on_connect setting (#5084)
Add show_statusline_on_connect setting
Loïc Blot [Sat, 21 Jan 2017 16:30:55 +0000 (17:30 +0100)]
Revert "Detach the player from entities on death." (#5087)
sapier [Sat, 21 Jan 2017 16:11:06 +0000 (17:11 +0100)]
Fix unknown command message not providing number of cmd
sapier [Sat, 14 Jan 2017 18:32:10 +0000 (19:32 +0100)]
Add Entity get_texture_mod() to Lua API
Send texture modifier to clients connecting later too
red-001 [Sat, 21 Jan 2017 15:11:55 +0000 (15:11 +0000)]
Detach the player from entities on death. (#5077)
Loïc Blot [Sat, 21 Jan 2017 10:29:18 +0000 (11:29 +0100)]
Warning fix for
2ea60156437962d7d29d20606bf5d9189059f76b (#5082)
Neither flag as force delete nor show the warning when mapblock is full and object is a player
Loïc Blot [Sat, 21 Jan 2017 09:41:00 +0000 (10:41 +0100)]
Do not force deletion of players when mapblock is full (#5081)
This fixes #4067
red-001 [Fri, 20 Jan 2017 22:19:41 +0000 (22:19 +0000)]
Remove `mathconstants.h` and use the correct way to get `M_PI` in MSVC. (#5072)
Elijah Duffy [Fri, 20 Jan 2017 18:49:20 +0000 (10:49 -0800)]
Add chatcommand unregister and override API (#5076)
Introduces two functions to unregister and override chatcommands.
minetest.unregister_chatcommand("<name>") and
minetest.override_chatcommand("<name>", {<redifinition>})
SmallJoker [Wed, 18 Jan 2017 20:03:15 +0000 (21:03 +0100)]
Fix MSVC build Build broken by
98e36d7
sfan5 [Sat, 14 Jan 2017 15:48:49 +0000 (16:48 +0100)]
Add particle animation, glow
This is implemented by reusing and extending the
TileAnimation code for the methods used by particles.
rubenwardy [Wed, 18 Jan 2017 10:19:57 +0000 (10:19 +0000)]
Add minetest.player_exists() (#5064)
rubenwardy [Wed, 18 Jan 2017 06:48:25 +0000 (06:48 +0000)]
Add search to advanced settings (#4806)
* Add search to advanced settings
* Press enter again to go to next result
* Use keyword based search, auto select best option
sapier [Tue, 17 Jan 2017 18:41:52 +0000 (19:41 +0100)]
Fix typo in alias for deprecated settexturemod
Ezhh [Tue, 17 Jan 2017 14:41:25 +0000 (14:41 +0000)]
Improve priv descriptions (#5047)
red-001 [Mon, 16 Jan 2017 23:09:47 +0000 (23:09 +0000)]
Remove client-side chat prediction. (#5055)
Network lag isn't really a big issue with chat and chat prediction makes writing mods harder.
rubenwardy [Mon, 16 Jan 2017 15:15:43 +0000 (15:15 +0000)]
Adjust formspec spacing on the Client tab of the mainmenu
rubenwardy [Mon, 16 Jan 2017 13:08:59 +0000 (13:08 +0000)]
Rename ObjectRef methods to be consistent and predictable
red-001 [Fri, 6 Jan 2017 20:29:29 +0000 (20:29 +0000)]
Add keyword based search to serverlist
sapier [Sun, 15 Jan 2017 12:36:53 +0000 (13:36 +0100)]
Added lua tracebacks to some errors where you have been blind to what… (#5043)
* Added lua tracebacks to some errors where you have been blind to what actually went wrong
paramat [Sun, 15 Jan 2017 01:21:36 +0000 (01:21 +0000)]
Documentation: Correct biome heat / humidity noise parameters
When the new set of biomes was added in MTGame the 'spread' for heat
and humidity noise parameters was increased to 1000, i forgot to update
settingtypes.txt and minetest.conf.
sapier [Sat, 14 Jan 2017 21:30:03 +0000 (22:30 +0100)]
Add color names from web page referenced in luaapi doc
lhofhansl [Sat, 14 Jan 2017 21:30:14 +0000 (13:30 -0800)]
Only set material flag on rendered meshes (#5023)
sfan5 [Sat, 14 Jan 2017 11:28:43 +0000 (12:28 +0100)]
Fix build with freetype support disabled
Loic Blot [Sat, 14 Jan 2017 11:20:59 +0000 (12:20 +0100)]
Fix another missing const reported by clang & @sfan5
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
Loic Blot [Sat, 14 Jan 2017 11:03:50 +0000 (12:03 +0100)]
Fix missing const in ServerActiveObject::getStaticData
This fixes #5033
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
ShadowNinja [Thu, 15 Oct 2015 17:16:26 +0000 (13:16 -0400)]
Organize defaultsettings.cpp
ShadowNinja [Thu, 15 Oct 2015 17:05:33 +0000 (13:05 -0400)]
Main menu tweaks
Loic Blot [Wed, 11 Jan 2017 21:48:14 +0000 (22:48 +0100)]
Optimize SAO getStaticData by using std::string pointer instead of return copy
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
Rogier [Wed, 11 Jan 2017 19:25:25 +0000 (04:25 +0900)]
Cleanup content_sao by factorizing similar code parts
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
ShadowNinja [Sun, 9 Oct 2016 18:36:22 +0000 (14:36 -0400)]
Enable mod security by default
paramat [Sat, 24 Dec 2016 06:40:57 +0000 (06:40 +0000)]
Meshes: Make object mesh face shading consistent
Previously, object meshes had their North and South faces darker than
East and West faces, the opposite of nodes and meshnodes. This commit
corrects this.
State constants as float-literals not double-literals.
Simplify code.
Add comment.
Rui [Wed, 11 Jan 2017 19:25:25 +0000 (04:25 +0900)]
Make nametag removable with set_nametag_attributes (#5021)
Loic Blot [Wed, 11 Jan 2017 08:03:07 +0000 (09:03 +0100)]
Cleanup some header inclusions to improve compilation times
Rogier [Mon, 9 Jan 2017 19:39:45 +0000 (04:39 +0900)]
Performance fix + SAO factorization
Original credits goes to @Rogier-5
* Merge common attributes between LuaEntitySAO & PlayerSAO to UnitSAO
* Make some functions const
* Improve some lists performance by returning const ref
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
Rui [Mon, 9 Jan 2017 19:39:45 +0000 (04:39 +0900)]
Add staticdata parameter to add_entity (#5009)
* Add staticdata parameter to add_entity
* Add add_entity_with_staticdata to core.features
Ner'zhul [Mon, 9 Jan 2017 19:39:22 +0000 (20:39 +0100)]
Environment & IGameDef code refactoring (#4985)
* Environment code refactoring
* Cleanup includes & class declarations in client & server environment to improve build speed
* ServerEnvironment::m_gamedef is now a pointer to Server instead of IGameDef, permitting to cleanup many casts.
* Cleanup IGameDef
* Move ITextureSource* IGameDef::getTextureSource() to Client only.
* Also move ITextureSource *IGameDef::tsrc() helper
* drop getShaderSource, getSceneManager, getSoundManager & getCamera abstract call
* drop unused emerge() call
* cleanup server unused functions (mentionned before)
* Drop one unused parameter from ContentFeatures::updateTextures
* move checkLocalPrivilege to Client
* Remove some unnecessary casts
* create_formspec_menu: remove IWritableTextureSource pointer, as client already knows it
* Fix some comments
* Change required IGameDef to Server/Client pointers
* Previous change that game.cpp sometimes calls functions with Client + InventoryManager + IGameDef in same functions but it's the same objects
* Remove duplicate Client pointer in GUIFormSpecMenu::GUIFormSpecMenu
* drop ClientMap::sectorWasDrawn which is unused
zeuner [Mon, 9 Jan 2017 16:03:13 +0000 (17:03 +0100)]
support older PostGreSQL versions (#4999)
* support older PostGreSQL versions
* documentation accuracy
* improve performance by affecting less rows in UPDATE queries
sfan5 [Mon, 9 Jan 2017 15:39:40 +0000 (16:39 +0100)]
builtin/.../falling.lua: Avoid crash when hitting unknown nodes
paramat [Sat, 7 Jan 2017 21:24:31 +0000 (21:24 +0000)]
Map generation limit: Cache as 'const' not 'const static'
paramat [Tue, 27 Dec 2016 17:00:47 +0000 (17:00 +0000)]
Map generation limit: Fix checks for block/sector over-limit
Fix the maths that check if any part of a mapblock or sector is over the
set map_generation_limit.
Therefore avoid the loading of any over-limit blocks that were previously
generated when map_generation_limit was larger. The set limit can vary
for a world because it is not yet a per-world mapgen parameter, even when
it is sometimes it will be changed deliberately.
Therefore avoid a player being returned to world centre if they re-enter
a world while being over-limit.
Fix the createSector() crash caused by a mob spawning over-limit in an
over-limit mapblock
Lars Hofhansl [Sun, 8 Jan 2017 17:32:16 +0000 (09:32 -0800)]
Minor: Fix indentation in serverenvironment.cpp
Loic Blot [Sun, 8 Jan 2017 10:01:35 +0000 (11:01 +0100)]
Move ServerEnvironment to dedicated cpp/header files
* also cleanup some unneeded inclusions
Loic Blot [Sun, 8 Jan 2017 09:49:47 +0000 (10:49 +0100)]
Move ClientEnvironment to dedicated cpp/header files
lhofhansl [Sun, 8 Jan 2017 07:42:25 +0000 (23:42 -0800)]
Get neighbor from same map block if possible in ABMHandler (#4998)
Ezhh [Sat, 7 Jan 2017 11:33:38 +0000 (11:33 +0000)]
Make column alignment consistent in advanced settings (#5004)
sfan5 [Sat, 7 Jan 2017 10:05:05 +0000 (11:05 +0100)]
Revert "Extend minetest.is_yes()"
This reverts commit
c435eabf3ffb77eab955d5faeb5450da1befc149.
red-001 [Sat, 3 Dec 2016 11:38:07 +0000 (11:38 +0000)]
Extend minetest.is_yes()
LNJ [Thu, 5 Jan 2017 20:28:58 +0000 (21:28 +0100)]
README.txt: Update the License to 2010-2017
LNJ [Thu, 5 Jan 2017 21:38:43 +0000 (22:38 +0100)]
lua_api.txt: Add registered_chatcommands to global tables
Wayward1 [Thu, 5 Jan 2017 00:44:11 +0000 (19:44 -0500)]
Add raycast.cpp and tileanimation.cpp to Android.mk
rubenwardy [Wed, 28 Dec 2016 13:01:32 +0000 (13:01 +0000)]
Expose and document chatcommands as minetest.registered_chatcommands
Lars Hofhansl [Wed, 4 Jan 2017 19:11:55 +0000 (11:11 -0800)]
Fixes for using std:vector in ABMHander and further perf improvements
Rogier-5 [Wed, 4 Jan 2017 05:23:22 +0000 (21:23 -0800)]
Use std::vector instead of std::map in class ABMHandler
Dániel Juhász [Wed, 4 Jan 2017 18:18:40 +0000 (19:18 +0100)]
Improve getPointedThing() (#4346)
* Improved getPointedThing()
The new algorithm checks every node exactly once.
Now the point and normal vector of the collision is also returned in the
PointedThing (currently they are not used outside of the function).
Now the CNodeDefManager keeps the union of all possible nodeboxes, so
the raycast won't miss any nodes. Also if there are only small
nodeboxes, getPointedThing() is exceptionally fast.
Also adds unit test for VoxelLineIterator.
* Cleanup, code move
This commit moves getPointedThing() and
Client::getSelectedActiveObject() to ClientEnvironment.
The map nodes now can decide which neighbors they are connecting to
(MapNode::getNeighbors()).
Loïc Blot [Wed, 4 Jan 2017 13:36:51 +0000 (14:36 +0100)]
Travis: Build server too for UNIX
Lars Hofhansl [Sat, 31 Dec 2016 20:40:31 +0000 (12:40 -0800)]
Pull occlusion check out of loop, and minor code cleanups.
Thomas--S [Mon, 2 Jan 2017 21:42:50 +0000 (22:42 +0100)]
Fix display gamma documentation
Overlooked in #4873
sfan5 [Fri, 23 Dec 2016 13:43:56 +0000 (14:43 +0100)]
Add 2D sheet animation for nodes
Luke Puchner-Hardman [Tue, 23 Sep 2014 12:39:34 +0000 (14:39 +0200)]
Added "[sheet" to the texture special commands.
"[sheet:WxH:X,Y" assumes the base image is a tilesheet with W*H tiles
on it and crops to the tile at position X,Y. Basically it works
like "[verticalframe" but in 2D.
For testing, I combined the four default_chest images into one.
sfan5 [Fri, 23 Dec 2016 12:48:32 +0000 (13:48 +0100)]
Move TileAnimation code to seperate file
Loic Blot [Sun, 1 Jan 2017 22:57:37 +0000 (23:57 +0100)]
Fix non reverted change on TOSERVER_BREATH compat
Loic Blot [Sun, 1 Jan 2017 15:13:01 +0000 (16:13 +0100)]
Breath cheat fix: server side
Breath is now handled server side. Changing this behaviour required some modifications to core:
* Ignore TOSERVER_BREATH package, marking it as obsolete
* Clients doesn't send the breath to server anymore
* Use PlayerSAO pointer instead of peer_id in Server::SendPlayerBreath to prevent a useless lookup (little perf gain)
* drop a useless static_cast in emergePlayer
Dorian Wouters [Sat, 31 Dec 2016 17:12:26 +0000 (18:12 +0100)]
Fix /grant & /revoke not working with custom auth handler (#4974)
core.auth_table is not supposed to be accessed directly.
sfan5 [Thu, 29 Dec 2016 18:35:22 +0000 (19:35 +0100)]
Fix interact range check (thanks to @lhofhansl)
Rogier-5 [Thu, 29 Dec 2016 12:44:47 +0000 (13:44 +0100)]
Use the outgoing split sequence number for every outgoing packet (#4864)
(instead of the last incoming sequence number...)
Fixes #4848
sfan5 [Thu, 29 Dec 2016 12:17:24 +0000 (13:17 +0100)]
Buildbot: Update Gettext version (#4971)
Auke Kok [Fri, 9 Dec 2016 01:37:13 +0000 (17:37 -0800)]
Redo light.cpp.
Remake the light_decode_table.
The table starts out without pre-filled in values since those
are always discarded by the code apparently. We calculate a
pseudo curve with gamma power function, and then apply a new
adjustment table.
The adjustment table is setup to make the default gamma of 2.2
look decent: not too dark at light level 3 or so, but too dark
at 1 and below to be playable. The curve is much smoother than
before and looks reasonable at the whole range, offering a
pleasant decay of light levels away from lights.
The `display_gamma` setting now actually does something logical:
the game is darker at values below 2.2, and brighter at values
above 2.2. At 3.0, the game is very bright, but still has a good
light scale. At 1.1 or so, the bottom 5 light levels are virtually
black, but you can still see enough detail at light levels 7-8,
so the range and spread is adequate.
I must add that my monitor is somewhat dark to begin with, since
I have a `hc` screen that doesn't dynamic range colors or try to
pull up `black` pixels for me (it is tuned for accurate color and
light levels), so this should look even better on more dynamic
display tunings.