Commit Graph

236 Commits

Author SHA1 Message Date
Craig Robbins d25ff8fd25 Remove workaround in itemdef.cpp to enable/disable/enable "enable_shaders" setting
* Increase performance (client)
* Avoid changing a global value to solve a local problem
2015-02-11 16:02:16 +10:00
Loic Blot a704c04f00 Network Layer 7 rework (Packet handling)
* Move networkcode to a dedicated directory
* Rename clientserver.h to network/networkprotocol.h (Better name) and sanitize some includes
* Create object NetworkPacket
  * It stores command (opcode) and data separated
  * It also stores peer_id
  * Data reading can be done by using a streaming interface
* Change packet routing analysis
  * Remove old conditional analysis
  * Now uses function pointed analysis and add connection state ({Client,Server}::handlers)
  * Connection state permit to categorize condition to handle before analyze packets
  * Create a handler for depreciated messages, instead of duplicating code
2015-02-10 20:04:08 +10:00
Craig Robbins 38561023b4 Fix local map saving when joining a local server from the server tab
Disables local map saving for all local server types

See: https://github.com/minetest/minetest/issues/2024
2015-01-31 00:42:08 +10:00
kwolekr 38bd9e93a2 Fix all warnings and remove -Wno-unused-but-set cflag 2015-01-18 23:29:19 -05:00
sapier 63867b1a37 Fix memory leaks due to messed up memory handling for particles as well as their spawners 2015-01-09 15:23:49 +01:00
Craig Robbins 2b119e1e19 Performance of main client loop up to 2x faster In places, up to 3 times faster
NOTE 1: This does not mean a 2x increase in framerate. Increase in fps may be up to 1-2fps
NOTE 2: This local 'caching' of settings is not optimal and an alternative solution will be worked on after 0.4.11 is released
2014-12-07 00:51:01 +10:00
Craig Robbins 691b18c41b Fix node 0,0,0 being highlighted when enable_node_highlighting == false
Without this patch node 0,0,0 is highlighted when enable_node_highligting is false
There is a minor lighting issue remaining, however it seems to be related to a different bug (https://github.com/minetest/minetest/issues/1887)
2014-12-01 22:13:21 +10:00
Craig Robbins 26cf98ccfc Fix client "double saving" simple singleplayer local maps 2014-11-26 00:49:54 +10:00
sfan5 9d69436052 Add (optional) client-side saving of server map to disk 2014-11-19 15:11:23 +01:00
RealBadAngel d221917170 Recalculate normals for cached meshes.
Check if mesh is here before adding to meshcollector.

Fix deleting the meshes.
2014-10-21 18:43:29 +02:00
BlockMen a020d1b653 Allow taking screenshots of formspecs and move message to chat 2014-09-21 19:15:48 +02:00
RealBadAngel 58e6d25e03 Node highlighting. 2014-09-17 22:06:13 +02:00
sapier d3ee617f37 Fix heart + bubble bar size on different texture packs
Add DPI support for statbar
Move heart+bubble bar to Lua HUD
Add statbar size (based upon an idea by blue42u)
Add support for customizing breath and statbar
2014-05-07 21:46:27 +02:00
sapier c03d7dc8a7 Add download rate to media progress bar (non http mode only!)
Minor coding style fixes
2014-04-29 20:45:16 +02:00
sapier eda9214f81 Bunch of small fixes (coding style, very unlikely errors, warning messages) 2014-04-19 11:56:19 +02:00
sapier 142e2d3b74 Cleanup client init states by bumping protocol version
Don't use TOSERVER_RECEIVED_MEDIA but TOSERVER_CLIENT_READY as indicatio for client ready
Handle clients with protocol version < 23 (almost) same way as before
Make client tell server about it's version
Add client state to not send bogus player position updates prior init complete
Add access to statistics information (peer connction time,rtt,version)
Fix clients standing stalled in world while preloading item visuals (new clients only)
Add get_player_information to read client specific information from lua
2014-04-08 21:12:20 +02:00
Selat 7cac34c807 Pass arguments by reference 2014-03-12 17:34:48 -04:00
Novatux 062de11b4c Fix rendering glitches when far from the center of the map 2014-03-04 20:12:10 +01:00
sapier f4f98c9550 Remove lots of dead code
Add check for datatype overflows
use native datatype indices instead of fixed 16bit/32bit ones
2014-02-07 21:39:45 +01:00
Perttu Ahola 6a3fa9df12 Add player:override_day_night_ratio() for arbitrarily controlling sunlight brightness 2014-02-01 18:38:21 +01:00
Perttu Ahola 86a6cca3cf Add player:set_sky() with simple skybox support 2014-02-01 18:34:26 +01:00
RealBadAngel 21f1bec724 New HUD element - waypoint. 2014-01-26 21:31:59 +01:00
khonkhortisan 2b1eff7725 Allow vertical axis particle rotation constraint
Use tables for adding particles, deprecate former way.

separate particles(pawner) definition, add default values, work with no
arguments
2014-01-13 17:34:56 -05:00
sapier 8b0b857eaa Make MutexQueue use jsemaphore for signaling 2014-01-10 10:10:45 +01:00
Perttu Ahola d76957ee22 Create new instance of mesh every time it's required (Solves #703) 2014-01-06 13:24:31 +02:00
sapier e9e9fd7c3f Replace SimpleThread by JThread now implementing same features 2013-12-15 13:39:42 +01:00
Kahrl 0404bbf671 Rewrite client media download and support hash-based remote download
Move most of the media-related code in client.cpp into a new class
ClientMediaDownloader (clientmedia.cpp, clientmedia.h). Among other
things, this class does the following things:

- Download [remote_server][sha1] instead of [remote_server][name]. This
is to support servers that provide the same file name with different
contents.
- Initially fetch [remote_server]index.mth. This file should follow the
Minetest Hashset format (currently version 1) and contain a list of SHA1
hashes that exist on the server.
- The list of needed SHA1s is uploaded (via HTTP POST) when index.mth is
requested, so servers can optionally narrow down the list to the needs
of the client.
- If index.mth is missing (HTTP response code 404), we enter compat mode,
fetching [remote_server][name] as before this commit.
- remote_server can now contain multiple servers, separated by commas.
The downloader code attempts to split requests between the different
servers, as permitted by each server's index.mth. If one server claims
to have a file but actually doesn't (or something fails), we ask a
different server that also claims to have it.
- As before, when none of the remote servers provide a particular
file, we download it via the conventional method, i.e. using
the minetest protocol: TOSERVER_REQUEST_MEDIA / TOCLIENT_MEDIA.
- Bugfix: Every downloaded file's SHA1 is now verified against the SHA1
announced by the minetest server (before loading it and inserting it
into the file cache).
- Bugfix: Only send TOSERVER_RECEIVED_MEDIA when we actually have all
media. This should fix #863.
2013-12-13 18:05:20 +01:00
Novatux d879a539cd Add minetest.swap_node 2013-11-30 18:37:56 +01:00
kwolekr d308352dbd Always use builtin JThread library 2013-09-15 23:00:01 -04:00
Kahrl 4e1f50035e Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
Kahrl c8930850e3 Remove farmesh 2013-08-13 09:25:13 +02:00
RealBadAngel d19c8b815d Add set_breath and get_breath to lua API. 2013-07-20 20:34:11 +02:00
proller f960c3be31 Add support for IPv6
Two new configuration options are added:
     - "enable_ipv6" to enable/disable the overall use of IPv6
     - "ipv6_server" to enable/disable the use of IPv6 sockets when running
       a server (when "enable_ipv6" is enabled)
2013-06-23 11:31:22 +04:00
PilzAdam 53066024f6 Add drowning 2013-06-19 15:47:00 +00:00
Zeg9 bda62bd3bf Add progress bar to item visuals preloading 2013-05-13 17:08:51 +02:00
kwolekr d3f0ce6224 Generalize hud_builtin_enable into hud_set_flags 2013-04-25 19:37:36 -04:00
Diego Martínez e703c5b81f Added support to disable built-in HUD elements 2013-04-24 17:28:00 +03:00
Diego Martínez 9894167bbf Added offset support for HUD items 2013-04-23 09:34:11 +03:00
Diego Martínez 7c37b1891a Added support for alignment in HUD items 2013-04-23 09:34:10 +03:00
kwolekr 666aae3593 Split HUD code off to hud.cpp, make into a class, extensive Lua HUD modification 2013-04-18 02:19:31 -04:00
Jonathon Anderson 49f6e347f0 Lua HUD 2013-04-18 02:14:33 -04:00
PilzAdam b0e6806077 Fix nick completion 2013-04-05 02:31:58 +02:00
Jeija e1ff5b1361 Allow spawning particles from the server, from lua
Spawn single particles or make use of ParticleSpawner for many randomly spawned particles.
Accessible in Lua using minetest.spawn_particle and minetest.add_particlespawner.
Increase Protocol Version to 17.

Conflicts:
	src/clientserver.h
2013-03-23 23:16:29 +01:00
Ilya Zhuravlev 6a1670dbc3 Migrate to STL containers/algorithms. 2013-03-11 19:08:39 -04:00
Sfan5 6d0ea26c2d Update Copyright Years 2013-02-24 20:15:24 +01:00
PilzAdam 497ff1ecd6 Change Minetest-c55 to Minetest 2013-02-24 18:49:03 +01:00
Jeija 61f5ca6b16 Add particles 2013-01-14 15:27:00 +01:00
sapier 0b1d09ff4f Fix buttons not working for Lua-triggered formspecs 2013-01-07 19:00:33 +02:00
sapier da9707950e Add TOCLIENT_SHOW_FORMSPEC to display formspecs at client from lua 2013-01-02 20:59:37 +02:00
Ilya Zhuravlev e9006f904c Make m_media_fetch_threads to contain MediaFetchThread* instead of MediaFetchThread 2012-12-17 20:56:59 +04:00
Ilya Zhuravlev 3578e1d4a7 Added ability to fetch media from remote server (using cURL library) 2012-12-16 15:20:18 +04:00
Kahrl 22e6fb7056 ShaderSource and silly example shaders 2012-12-02 00:46:18 +02:00
Perttu Ahola 6b927229f5 Default server step to 0.1s and sync object/player update intervals to it 2012-11-26 22:34:59 +02:00
Perttu Ahola 2ac20982e0 Detached inventories 2012-07-24 20:57:17 +03:00
Perttu Ahola 4cc98d7add minetest.register_on_player_receive_fields() 2012-07-22 17:40:48 +03:00
Perttu Ahola 9f031a6759 Optimize headers 2012-06-17 04:03:39 +03:00
Perttu Ahola d0ea6f9920 Properly and efficiently use split utility headers 2012-06-17 02:40:36 +03:00
Perttu Ahola 037b259197 Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2/later, by agreement of major contributors 2012-06-05 18:54:07 +03:00
Perttu Ahola d7447cdf9e Implement sign using form field protocol 2012-06-03 22:31:01 +03:00
Perttu Ahola 52122c342d Add 'fly' and 'fast' privileges and the underlying privileges-to-client system 2012-03-31 16:25:02 +03:00
Perttu Ahola 1cac1de3b2 Almost support loading sounds from server 2012-03-25 14:48:22 +03:00
Perttu Ahola f801e16b78 Texture cache -> Media cache WIP 2012-03-25 11:51:33 +03:00
Jonathan Neuschäfer 4bf5065a9c Cache textures by checksum 2012-03-25 11:51:00 +03:00
Perttu Ahola 601d1936c9 Lua API for playing sounds 2012-03-24 19:01:26 +02:00
Perttu Ahola 6c14025b2d Add event manager and use it to trigger sounds 2012-03-24 04:24:26 +02:00
Perttu Ahola 8c2f3bb378 c55sound continued 2012-03-24 04:24:25 +02:00
Perttu Ahola c301e3c82a celeron55's sound system initial framework 2012-03-24 04:24:23 +02:00
Perttu Ahola 2e90ed07ac Dynamic sky, fog and cloud colors; sun and moon 2012-03-18 13:42:18 +02:00
Perttu Ahola 58bed83d03 Move ClientMap to clientmap.{h,cpp} 2012-03-16 00:25:18 +02:00
Perttu Ahola 54917e3062 Add Client::getEnv() and remove some unnecessary wrappers 2012-03-15 23:54:10 +02:00
Kahrl 807a0d313b MapBlockMesh, mesh animation system, urgent mesh updates, athmospheric light, removed footprints 2012-03-15 21:45:44 +02:00
Kahrl 967f25461b Chat console, including a number of rebases and modifications.
Defaults modified from original: alpha=200, key=F10
2012-03-10 20:11:10 +02:00
Kahrl b4dd5d3bd7 Client-side prediction of inventory changes, and some inventory menu fixes 2012-01-22 17:31:20 +02:00
Kahrl 6a76c226e1 The huge item definition and item namespace unification patch (itemdef), see http://c55.me/minetest/wiki/doku.php?id=changes:itemdef 2012-01-12 06:10:39 +01:00
Perttu Ahola 0e1f448b61 Texture cache on client (mostly made by sapier) (breaks network compatibility) 2012-01-02 13:31:50 +02:00
Perttu Ahola 103173fc9b Add InvRef and InvStack (currently untested and unusable) 2012-01-02 01:49:38 +02:00
Kahrl d6b30dd3a5 CraftItem rework and Lua interface 2011-11-29 19:13:58 +02:00
Perttu Ahola 9d5b458479 Crafting definition in scripts 2011-11-29 19:13:48 +02:00
Perttu Ahola c0f6395cf0 Node definition names 2011-11-29 19:13:46 +02:00
Perttu Ahola 7696a38543 Improve loading screen and protocol 2011-11-29 19:13:45 +02:00
Perttu Ahola ba762bcd49 Clean mapnode.h and fix other files accordingly 2011-11-29 19:13:44 +02:00
Perttu Ahola 01ae0daea5 Properly update textures in node definitions 2011-11-29 19:13:43 +02:00
Perttu Ahola c6fd2986d4 GameDef compiles 2011-11-29 19:13:42 +02:00
Perttu Ahola abceeee92f Create framework for getting rid of global definitions of node/tool/item/whatever types 2011-11-29 19:13:41 +02:00
Perttu Ahola 4b6138e69b Improve Connection with threading and some kind of congestion control 2011-10-20 23:04:09 +03:00
Perttu Ahola 558a133044 Display RTT (round trip time, ping) on client status text 2011-10-17 17:18:50 +03:00
Perttu Ahola 74febd5c31 Handle death and respawn better 2011-10-15 14:46:59 +03:00
Perttu Ahola 5341bf59c2 Improve mobv2 2011-10-15 12:17:21 +03:00
Perttu Ahola 43a28f04fa mobv2 2011-10-15 02:28:57 +03:00
Kahrl 36bcbca9ac Added sprite extruder 2011-09-19 03:01:11 +02:00
Kahrl 71418639d3 attempting to merge Queatz/the-wielded-tool and kahrl/viewbobbing, something doesn't work right yet 2011-09-08 14:21:56 +02:00
Kahrl baf7da9d4a Collected and moved existing camera infrastructure from game.cpp to camera.cpp and camera.h. Introduced configuration settings 'fov' which chooses the camera's (vertical) field of view and 'view_bobbing' which currently does nothing. Other code refactored to not expect the FOV to be a build time constant. 2011-09-08 01:08:47 +02:00
Kahrl c0b35fa429 Removed unused camera_position and camera_direction fields from Client. Moved ClientEnvironment::drawPostFx to ClientMap::renderPostFx -- this will make the camera management classes easier to write, as ClientMap already knows the camera position but ClientEnvironment doesn't and has to be told about it. This also eliminates the need for Client::getEnv(). Made the post effect color a content feature defined in content_mapnode.h. 2011-09-07 19:21:28 +02:00
JacobF f31b0a3361 Display which tool the player is holding
And some simple animation when trying to dig...
2011-09-07 10:56:04 -04:00
Giuseppe Bilotta 9c94538fb7 Change way commands are displayed in chat window 2011-08-22 13:43:53 +02:00
Giuseppe Bilotta ecd5c5f920 Clients inform server on wielded item
This is done with the new TOSERVER_PLAYERITEM message, that informs the
server on the index of the wielded item.
2011-08-11 15:22:36 +02:00
Giuseppe Bilotta 91d1186cbb Keep track of player item 2011-08-11 15:22:36 +02:00
Giuseppe Bilotta b318e82356 Refactor player's eye position coding
Collect the player's eye position coding in a Player method, and
use it in client to pass the eye position information to the game.
2011-08-11 15:22:35 +02:00
Perttu Ahola 7b290660ea made screen go slightly blue when underwater 2011-07-01 21:25:31 +03:00
Perttu Ahola dd22ea051a map unloading is now a whole lot better 2011-06-27 00:27:17 +03:00
Perttu Ahola bb940a946d even more code refactoring 2011-06-26 02:34:36 +03:00
Perttu Ahola 7773e68c2a farmesh is now usable. 2011-06-18 12:42:17 +03:00
Perttu Ahola 63611932eb player passwords and privileges in world/auth.txt
--HG--
extra : rebase_source : 7260636295d9068fbeeddf4143c89f2b8a91446c
2011-05-29 21:11:16 +03:00
Ciaran Gultnieks a8a3271470 Added the ability to change your password (via pause menu)
--HG--
extra : rebase_source : e8ec407f60711d42d33be4811b2880088f617b5b
2011-05-22 21:09:12 +01:00
Ciaran Gultnieks d4d49ee8f4 Passwords - password entry at main menu, stored and checked by server 2011-05-20 20:28:03 +01:00
Perttu Ahola c638442e78 Some work-in-progress in hp and mobs and a frightening amount of random fixes. 2011-04-21 19:35:17 +03:00
Perttu Ahola fd7a0735c9 new object system 2011-04-10 04:15:10 +03:00
Perttu Ahola 4b54b291ae Some progress on transitioning from MapBlockObject to ActiveObject. 2011-04-08 00:47:14 +03:00
Perttu Ahola 4a92df6ff0 Chests work now! 2011-04-04 15:13:19 +03:00
Perttu Ahola fa736e138c fully implemented the sign with the new framework 2011-04-04 05:12:33 +03:00
Perttu Ahola fa08294d09 Node metadata framework 2011-04-04 03:45:08 +03:00
Perttu Ahola 2f466726e6 Made a proper queued thread to client for handling some block mesh updates. Also made client mutex-free to allow easier adding of new stuff. 2011-04-04 02:05:12 +03:00
Perttu Ahola 01c2b003e1 commit before some more radical changes 2011-04-03 16:21:06 +03:00
Perttu Ahola c8be58a65c A third try on terrain generation. No trees yet. 2011-02-28 02:01:40 +02:00
Perttu Ahola c57637b4c3 Temporary commit; lots of test code and stuff 2011-02-21 00:45:14 +02:00
Perttu Ahola 9f882bf74d Reworked texture, material, mineral and whatever handling 2011-01-26 00:41:06 +02:00
Perttu Ahola 0fa0e0752a old water removed, some fixes here and there 2011-01-17 14:57:37 +02:00
Perttu Ahola ec509fac12 removed Client::isFetchingBlocks 2011-01-07 14:53:01 +02:00
Perttu Ahola 4ba5cd580d drawing range updater update and myrand() (but not usage of it) 2010-12-26 13:33:20 +02:00
Perttu Ahola 582af0cb21 new viewing range updater algorithm 2010-12-26 03:58:19 +02:00
Perttu Ahola f15670379d base stuff for item->object conversion 2010-12-24 03:08:05 +02:00
Perttu Ahola 10b06419ab changes to handing of digging (non backwards-compatible i guess) 2010-12-23 22:35:53 +02:00
Perttu Ahola a55850e4dc fixed crack animation timing in client 2010-12-23 12:10:46 +02:00
Perttu Ahola 3de176cc58 crafting system! 2010-12-22 16:30:23 +02:00
Perttu Ahola 3b0bff2f74 Cracking blocks while digging 2010-12-21 02:25:47 +02:00
Perttu Ahola 5a36956f75 working time-of-day sending from server to client 2010-12-20 14:04:31 +02:00
Perttu Ahola ab7477c4c3 added dedicated server build without irrlicht 2010-12-19 19:11:05 +02:00
Perttu Ahola 0ca9423b8b day/night working client side 2010-12-19 16:51:45 +02:00
Perttu Ahola 240499dc2c before daynight mesh cache 2010-12-18 17:46:00 +02:00
Perttu Ahola 15a43c5ed0 before adding day/night lighting
--HG--
rename : data/light.png => data/cloud.png
2010-12-18 13:10:37 +02:00
Perttu Ahola f501cfd799 tinkering around 2010-12-14 13:14:43 +02:00
Perttu Ahola 626ed6338a in before messing with face drawing orientation 2010-12-14 00:21:18 +02:00
Perttu Ahola fc26dcdb19 license stuff
--HG--
rename : src/licensecomment.txt => licensecomment.txt
2010-11-29 20:13:04 +02:00
Perttu Ahola a18525a14e fixed face updating slowness bug 2010-11-29 14:03:40 +02:00
Perttu Ahola 24c4b7c68d Working version before block send priorization update 2010-11-27 17:18:34 +02:00
Perttu Ahola 4e249fb3fb Initial files 2010-11-27 01:02:21 +02:00