Loic Blot [Tue, 31 Mar 2015 08:35:51 +0000 (10:35 +0200)]
Connection::Receive(): receive Network Packet instead of SharedBuffer<u8>.
Because we get a Buffer<u8> from ConnectionEvent, don't convert it to SharedBuffer<u8> and return it to Server/Client::Receive which will convert it to NetworkPacket
Instead, put the Buffer<u8> directly to NetworkPacket and return it to packet processing
This remove a long existing memory copy
Also check the packet size directly into Connection::Receive instead of packet processing
Loic Blot [Tue, 31 Mar 2015 07:22:44 +0000 (09:22 +0200)]
RunCommandQueues: little optimization
remove command from queue on success, else do nothing, instead of remove command from queue and push it front on success
Aaron Suen [Tue, 31 Mar 2015 00:04:19 +0000 (20:04 -0400)]
Move texture_min_size even further down the pipe. Now, textures are JIT-upscaled using an image transformation, right at the time they're added to a mesh or particle; images used in 2D elements are left unscaled. This should fix any remaining issues with HUD elements.
Craig Robbins [Sat, 28 Mar 2015 05:24:35 +0000 (15:24 +1000)]
On Android enable always fast
Invert the meaning of holding down the fast button (i.e. holding down the fast button -- if there is one -- means walk), unless performing an action, sneaking or jumping.
Still requires fast move to be toggled on (and fast priv)
ShadowNinja [Fri, 27 Feb 2015 23:05:29 +0000 (18:05 -0500)]
Clean up and tweak build system
* Combine client and server man pages.
* Update unit test options and available databases in man page.
* Add `--worldname` to man page.
* Fix a bunch of places where `"Minetest"` was used directly instead of `PROJECT_NAME`.
* Disable server build by default on all operating systems.
* Make `ENABLE_FREETYPE` not fail if FreeType isn't found.
* Enable LevelDB, Redis, and FreeType detection by default.
* Remove the `VERSION_PATCH_ORIG` hack.
* Add option to search for and use system JSONCPP.
* Remove broken LuaJIT version detection.
* Rename `DISABLE_LUAJIT` to `ENABLE_LUAJIT`.
* Rename `minetest_*` variables in `version.{h,cpp}` to `g_*`.
* Clean up style of CMake files.
Loic Blot [Tue, 24 Mar 2015 08:36:54 +0000 (09:36 +0100)]
Don't send an InventoryAction at each setInventoryModified, we only need one SendInventory per inventory modification
Client doesn't like to receive multiples SendInventory for one action, this can trigger glitches on clients (sometimes due to incorrect UDP packet ordering due to UDP protocol)
kwolekr [Mon, 23 Mar 2015 22:19:19 +0000 (18:19 -0400)]
Do not enable texture_clean_transparent by default
This feature is still experimental and has some issues. Also,
increase texture_min_size to 64 px. The setting was initially
a conservative 16 so that the effect would not be noticable
for players who aren't using aniso/bi/trilinear filtering. This
isn't necessary now that texture_clean_transparent is disabled
by default.
est31 [Sun, 22 Mar 2015 23:46:55 +0000 (00:46 +0100)]
Fix Android build on 32 bit
Remove the --system=linux-x86_64 which isn't neccessary on 64 bit,
as, when given no --system parameter, the standalone-toolchain.sh script
figures out the platform on itself. Naturally, the hardcoded setting broke
android building on 32 bit systems.
Loic Blot [Sun, 22 Mar 2015 19:09:44 +0000 (20:09 +0100)]
Protect Player::hud from concurrent modifications
Sometimes HUD can be modified by ServerThread and EmergeThread results in a crash on client side because the HUD is not correct
Loic Blot [Sun, 22 Mar 2015 11:18:16 +0000 (12:18 +0100)]
Remove unused ConnectionCommand::sendToAll function. NetworkPacket::oldForgePacket returns Buffer instead of SharedBuffer and is used in ConnectionCommand instead of Connection::Send
This remove the NetworkPacket buffer => SharedBuffer => Buffer copy. Now NetworkPacket => Buffer
poet-nohit [Sat, 21 Mar 2015 19:41:32 +0000 (13:41 -0600)]
SendInventory when handleCommand_Interact is a use.
This call was missing when change looping to triggering SendInventory: 1b2f64473ed4f222d3b7f02df853730d4382105e
Aaron Suen [Sat, 21 Mar 2015 13:59:06 +0000 (09:59 -0400)]
Fix composite textures with texture_min_size. Moved upscaling of textures to later in the process, when images are converted to textures, instead of right after image load, so the original image is unmodified for generateImagePart.
Loic Blot [Tue, 17 Mar 2015 08:13:12 +0000 (09:13 +0100)]
Server::step throw is never catched in minetestserver
Replace it with an errorstream + assert for server
This throw can be trigger by LuaError exception or ConnectionBindFailed exception in the following functions:
* EmergeThread::Thread()
* ScriptApiEnv::environment_Step()
* ScriptApiEnv::player_event()
* ServerThread::Thread()
Loic Blot [Mon, 16 Mar 2015 19:25:35 +0000 (20:25 +0100)]
Server::step throw is never catched. Replace it with an errorstream + assert
This throw can be trigger by LuaError exception or ConnectionBindFailed exception in the following functions:
* EmergeThread::Thread()
* ScriptApiEnv::environment_Step()
* ScriptApiEnv::player_event()
* ServerThread::Thread()
Loic Blot [Mon, 16 Mar 2015 11:39:27 +0000 (12:39 +0100)]
Move client packet generators to dedicated functions for:
* TOSERVER_INIT_LEGACY
* TOSERVER_DELETEDBLOCKS
* TOSERVER_GOTBLOCKS
* TOSERVER_REMOVED_SOUNDS
Also use a std::vector instead of std::set for TOSERVER_REMOVED_SOUNDS
Loic Blot [Mon, 16 Mar 2015 09:01:56 +0000 (10:01 +0100)]
If player is dead, permit it to respawn, even if damages are not enabled
* Mods can do setHP function to do damages and override the enable_damage value sometimes
Loic Blot [Fri, 13 Mar 2015 15:35:21 +0000 (16:35 +0100)]
Prepare Protocol v25 init & authentication.
* TOSERVER_INIT and TOCLIENT_INIT renamed to _LEGACY
* TOSERVER_PASSWORD merged from dev-0.5, can use protocol v24 and v25
* TOCLIENT_ACCESS_DENIED merged from dev-0.5, can use protocol v24 and v25, with normalized strings an a custom id for custom errors
* new TOSERVER_INIT packet only send MT version, supported compressions, protocols and serialization, this permit to rework everything later without break the _INIT packet
* new TOSERVER_AUTH packet which auth the client
* new TOCLIENT_HELLO packet which send server serialization version atm
* new TOCLIENT_AUTH_ACCEPTED which is send when TOCLIENT_AUTH was okay. After this packet, the client load datas from servers, like after TOCLIENT_INIT_LEGACY packet
Loic Blot [Fri, 13 Mar 2015 13:14:48 +0000 (14:14 +0100)]
Handle the newly added TOCLIENT_ACCESS_DENIED and TOCLIENT_DELETE_PARTICLESPAWNER
* Rename the handlers from _Legacy to regular, because here we can use same handlers
* Fix some packet names and pseudo handlers
est31 [Tue, 10 Mar 2015 15:22:56 +0000 (16:22 +0100)]
Unescape tooltip texts
Previously, tooltips didn't unescape escaped formspec texts.
Item descriptions that trigger tooltips like inside inventories or for item_image_button
don't need to get unescaped, as they don't get set using formspec, but from lua.