Compare commits

..

554 Commits

Author SHA1 Message Date
zaoqi
094097ee71 cheat:Privilege+NoSendDamage 2018-02-08 12:23:28 +08:00
you
87e08b1b3a Add minetest.is_player (#7013)
* Add minetest.is_player

* First use for is_player
2018-02-05 15:17:10 +01:00
paramat
b7ff40eea2 Lua_api.txt: Document 'wielditem' visual in object properties 2018-02-05 05:07:36 +00:00
paramat
520293b4cb Item entity: Prevent motion in ignore nodes 2018-02-05 05:07:29 +00:00
Wuzzy
7b2687ffc6 Add kill chat command (#6992)
Replace minetest.* with core.* in 1 file
2018-02-04 19:21:41 +01:00
lisacvuk
4f5090ff68 Make hud_get return aligment, offset and size. (#7006)
* Make hud_get return aligment and offset.

* Return size aswell.
2018-02-04 10:17:46 +01:00
Dániel Juhász
735fc2a1f2 Remove unused light updating code
Also remove the unit test that tests the removed algorithms.
2018-02-04 03:16:45 +00:00
sfan5
cf0bcebc76 Refine movement anticheat again (#7004)
* Account for walking speed in vertical dir
* Avoid undefined behaviour due to division-by-zero
2018-02-02 23:34:09 +01:00
number Zero
49b65a5593 Fix liquid bottoms not being rendered 2018-01-30 21:13:24 +01:00
Wayward One
cc400581e2 Add Android drivers to the video_driver drop-down menu
Adds the Android video drivers ogles1 and ogles2 to the video_drivers drop-down menu
2018-01-30 21:11:47 +01:00
Loïc Blot
584d00a01c
Add minetest.bulk_set_node call + optimize Environment::set_node call (#6958)
* Add minetest.bulk_set_node call + experimental mod unittest

* Optimize set_node function to prevent triple lookup on contentfeatures

Do only one lookup for old, and try to merge old and new lookup if node is same than previous node

* Add benchmark function + optimize vector population to have real results
2018-01-30 00:30:02 +01:00
Wuzzy
3b4df956b1 Make chat command + privilege help slightly more accurate (#6964)
* Make chat command help slightly more accurate

* Slightly more accurate privilege help

* Simplify command/priv help

* More command/priv help tweaks
2018-01-29 23:39:36 +01:00
sfan5
de2c40c8fc Apply physics overrides correctly during anticheat calculations (#6970) 2018-01-28 10:21:21 +01:00
SmallJoker
7d3295e21f [CSM] HUD Fix not updating server HUDs caused by 4f688d5 2018-01-26 21:27:30 +01:00
red-001
4f688d5616 Fix issues with earlier CSM HUD commit (#6940)
The CSM HUD PR caused some strange behavior including aborts due to parts of it using some slightly hacky code, the event refactor changing how events are processed and a minor oversight.
2018-01-26 16:05:47 +01:00
Tre
3a5959ae6b Main menu: Change tabs to 'Start Game' and 'Join Game' (#6955) 2018-01-25 20:59:24 +01:00
lisacvuk
62c10e3d08 Disable fall damage when "immortal" group set (#6946) 2018-01-23 19:28:21 +01:00
Muhammad Nur Hidayat Yasuyoshi (MNH48.com)
04e5a65c65 Add missing languages from menu (#6953)
The following languages exist in Minetest PO folder were missing from the selection menu:
- dv (Dhivehi)
- ms (Malay)
- sl (Slovenian)
- sv (Swedish)
- sw (Swahili)
2018-01-23 19:27:41 +01:00
Paramat
01bc817fe0 Intersects_protection(): Move from Minetest Game to builtin (#6952)
A useful function that applies 'core.is_protected()' to a 3D lattice of
points evenly spaced throughout a defined volume, with a parameter for
the maximum spacing of points.
2018-01-23 19:04:58 +01:00
red-001
0425c6b8c8 CSM: Remove screenshot API
Reverted from commit 19960e26c672c6337f8c6ffbe27f2c6bca49750c
(* [CSM] add screenshot api lua)
2018-01-23 05:27:38 +00:00
red-001
d6050bee51 [CSM] Don't Load the package library (#6944)
Already removed by a latter step in CSM init so this just saves on pointless work.
2018-01-22 08:34:49 +01:00
Wayward One
684e70477d Change include from "cmake_config.h" to "config.h"
Fixes #6894
2018-01-21 23:25:04 +01:00
red-001
49ff1d2ea8 [CSM] Remove on_connect callback (#6941)
Fixes #6939
2018-01-21 18:27:27 +01:00
red-001
5dab742645 [CSM] Add functions to create particles and particlespawners. (#6072) 2018-01-20 23:31:53 +01:00
Loïc Blot
da80e8af8a
Add minetest issue template (#6936)
* Add minetest issue template

This permits end user to have a basic template permitting to do issue triage and for users to know what we expect.
2018-01-20 23:31:15 +01:00
Loic Blot
99c9e7a986 Game refactor [4/X]: keycache is now owned by InputHandler
* Make InputHandler own the key cache
* Add a helper function InputHandler::cancelPressed to avoid multiple similar calls in game.cpp
* Move RandomInputHandler::step definition into cpp file
2018-01-20 16:38:38 +01:00
Loic Blot
f5a006dce7 Game refactor [3/X]: Move keycache to inputhandler 2018-01-20 16:38:38 +01:00
Loic Blot
64fe79b53b Game refactor [2/X]: Various moves (profilergraph, nodePlacementPrediction, create_formspec_menu)
* Move profilergraph to dedicated files
* Move nodePlacementPrediction to Game class
* Rename create_formspec_menu to GUIFormSpecMenu::create
2018-01-20 16:38:38 +01:00
Loic Blot
362323cdc2 Game/Input refactor [1/X]: make RealInputHandler handle joystick inputs with standard input
Joystick input is a RealInputHandler only usage, make it intelligent and handle the joystick with keyboard direct.
This permits to remove many getters in game which should be owned by RealInputHandler
2018-01-20 16:38:38 +01:00
red-001
9649e47214 [CSM] Add basic HUD manipulation. (#6067)
* [CSM] Add basic HUD manipulation.

Workaround for on_connect not working right now.
2018-01-20 14:09:58 +01:00
paramat
d45e5da8ca Biomes: Add 'get heat', 'get humidity', 'get biome data' APIs
'get biome data' returns biome id, heat and humidity.
Clean up nearby lines in lua_api.txt.
2018-01-16 08:47:07 +00:00
red-001
4c0d4e4105 Load a texturepack from the 'textures' subfolder of a game 2018-01-16 08:45:17 +00:00
paramat
70a90bc83a Lua_api.txt: Various improvements
Improve documentation for formspec 'position' and 'anchor' elements.
Add missing documentation of 'animation' and 'glow' for particle spawners.
2018-01-15 04:42:14 +00:00
paramat
142474196a Mapgen folder: Update and improve copyright information of files 2018-01-15 04:42:08 +00:00
ezhh
5435b07d4e Lua_api.txt: Improve bullet point indentation consistency 2018-01-13 19:37:17 +00:00
Muhammad Rifqi Priyo Susanto
670f8afd18 Registration confirmation dialog: Fix grammar
Fixes commit 792752997c5ae2aaa4f54d0a2e2af2a96d7d1e9f.
2018-01-13 19:30:34 +00:00
ezhh
8349a3db10 Lua_api.txt: Add chat command params info 2018-01-13 14:59:18 +00:00
Muhammad Rifqi Priyo Susanto
792752997c Add confirmation on new player registration (#6849)
* Attempt to add registration confirmation

Using SRP auth mechanism, if server sent AUTH_MECHANISM_FIRST_SRP that means the player isn't exist.
Also tell player about the server and chosen username.
Local game has localhost as IP address of the server.
Add RenderingEngine::draw_menu_scene() to draw GUI and clouds background.
aborted -> connection_aborted

* Rewrite information message text

Client::promptConfirmRegister() -> Client::promptConfirmRegistration()
2018-01-13 12:07:16 +01:00
Lars Hofhansl
fad263dec9 Revert "Add an active object step time budget #6721"
This reverts commit 9c669016d1578a5c62f932c6ccb7a2b4b1e21f0a.
See #6907
2018-01-12 23:47:39 -08:00
Loïc Blot
7e50529867
Add a build step to test non freetype builds (#6908)
* Add a build step to test non freetype builds
2018-01-12 15:36:54 +01:00
Loic Blot
6f2fe8a554
Forget to fix non freetype build in StaticText 2018-01-12 08:36:38 +01:00
paramat
62872dabac Lua_api.txt: Fix, improve and add to Object Properties documentation
Correct 'automatic rotate' to be a number instead of a bool.
2018-01-12 05:51:40 +00:00
paramat
05e9e128b9 Lua_api.txt: Improve and complete ABM documentation
Document 'active object count (wider)'.
2018-01-12 05:45:39 +00:00
paramat
b8fc6a1955 Settingtypes.txt: Correct value of 'max block send distance' 2018-01-12 05:45:39 +00:00
number Zero
b4df0d67dd Fix ambient occlusion and dark lines at mapblock borders 2018-01-12 05:44:11 +00:00
Pedro Gimeno
f77f19a941 Fix off-by-one in log output line length (#6896) 2018-01-09 19:07:14 +01:00
Pedro Gimeno
63f4ee21b0 Fix buffer parameter not working in LuaPerlinNoiseMap::l_getMapSlice() 2018-01-08 20:32:15 +00:00
Sokomine
2992b774fe Lua API docs: Add warning that schematic placing is cached 2018-01-07 11:47:52 +01:00
rubenwardy
0a83c42dfd
Fix naming conventions of noise userdata 2018-01-07 01:06:18 +00:00
Loic Blot
9146c6a50f Don't recalculate statustext initial color everytime & review fixes 2018-01-05 20:59:30 +01:00
Loic Blot
f40f4143df GameUI refactor (part 7/7): Finish to include profiler things to GameUI
Other changes:
* Add GameUI clarification comment
* Move force_fog_off & disable_camera_update flags from GameUI to Game, it's not UI related
* Properly init GameUI::Flags
* Move toggleChat toggleHud & toggleProfiler to GameUI
* Add gameui.cpp to LINT whitelist
2018-01-05 20:59:30 +01:00
Loic Blot
02f82eca0b GameUI refactor (part 6/X): Move Game::guitext_profiler & showStatusTextSimple to GameUI class
Other enhancements:
* Move showStatusTextSimple to GameUI class & rename to showTranslatedStatusText
2018-01-05 20:59:30 +01:00
Loic Blot
326b0faa5e GameUI refactor (part 5/X): Move Game::guitext_chat to GameUI class
Other enhancements:
* Move update_profiler_gui to Game class
* Move updateChat to Game class
2018-01-05 20:59:30 +01:00
Loic Blot
fe510d90c1 GameUI refactor (part 4/X): Move Game::guitext_status, Game::m_statustext, GameRunData::statustext_time to GameUI class
Other enhancements:
* Simplify setStatusText to showStatusText, as it shows the label too (preventing almost every setStatusText to call setStatusTextTime(0)
* Add unittests
2018-01-05 20:59:30 +01:00
Loic Blot
aab3b18e4b GameUI refactor (part 3/X): Move Game::guitext2, Game::guitext_info, Game::infotext to GameUI class
Other enhancements:
* Drop unused GameRunData::time_of_day
* Little GameUI::update code path optimizations
2018-01-05 20:59:30 +01:00
Loic Blot
3a772e7ed6 GameUI refactor (part 2/X): Move Game::guitext to GameUI + enhancements on StaticText
Other enhancements:
* C++ friendlyness for addStaticText() -> move to static StaticText::add()
2018-01-05 20:59:30 +01:00
Loic Blot
0ebaed430a GameUI refactor (part 1/X): GameUI object creation + GameUIFlags move to GameUI
Game class is too huge and has too specialization on various subjects, like UI, formspecs, client, renderer. Start to move UI related things to GameUI object and cleanup them

Other improvements:
* updateChat: more performance on error messages by remove string copies
* Initialize all game class members in definition instead of constructor (with nullptr instead of NULL)
* Drop unused Client::show{GameChat,GameHud,Profiler,GameFog}
* Add GameUI unittests
2018-01-05 20:59:30 +01:00
Paramat
549cfd9db8 Biomes: Add vertical biome blend (#6853)
Add 'vertical blend' parameter to biome registration that defines how
many nodes above the biome's 'y max' limit the blend will extend.
2018-01-05 00:10:55 +01:00
Wayward One
ff2ceed381 Prevent Android from automatically locking display (#6876)
As mentioned in #5759
2018-01-04 21:18:18 +01:00
you
e7b44c3295 Fix Wstringop-overflow warning from util/srp.cpp (#6855)
* Fix Wstringop-overflow warning from util/srp.cpp
2018-01-04 14:25:20 +01:00
red-001
30821ad8de [CSM] Don't load the IO library. (#6087)
* [CSM] Don't load the IO library.

* Rename the function to match the Lua API function name and add a missing `const`

* Add a comment to explain some strange code and fix the other issues pointed out by shadowninja.
2018-01-04 08:21:12 +01:00
paramat
e7396a0c50 Mgv7: Add docs for the new floatland exponent parameter 2018-01-04 04:29:04 +00:00
rubenwardy
2af47e6f5f Fix crash on can_bypass_userlimit returning non-boolean 2018-01-03 14:18:13 +00:00
paramat
2aad3be2cb Mgv7 floatlands: Add exponent parameter
Allows more control over shape of floatland mountain terrain.
Terrain shape is unchanged.
2018-01-03 04:05:55 +00:00
Thomas--S
f3b9d87076 Connected Nodeboxes: Add disconnected boxes
The `disconnected_*` boxes are the opposites of the `connect_*` ones,
i.e. when a node has no suitable neighbours on the respective side, the
according disconnected box is drawn.

* disconnected_top
* disconnected_bottom
* disconnected_front
* disconnected_left
* disconnected_back
* disconnected_right
* disconnected (when there is *no* neighbour)
* disconnected_sides (when there are *no* neighbours to the sides)
2018-01-03 04:05:21 +00:00
Hybrid Dog
345e1041a2 Tool.cpp/.h, lua_api/l_util.cpp: Tidy up code and remove dead code 2018-01-03 04:01:15 +00:00
Hybrid Dog
d7c1f6c92e Tool getDigParams: Fix selecting the best fitting time
Previously, time was compared with result_time before dividing it by
the level difference.
2018-01-03 03:58:11 +00:00
Loïc Blot
0d6b58a772
Add unittests on ActiveObject and BanManager class (#6866)
* Add unittests on ActiveObject and BanManager class

This also permit to fix a bug in ban manager setting bans modified when no modification occurs
2018-01-01 18:48:52 +01:00
Loïc Blot
9f6d84aee3
Update README.md copyright notice too 2018-01-01 17:17:31 +01:00
Loïc Blot
f6a97c5c8a
Happy new year 2018: update LICENSE.txt 2018-01-01 17:13:37 +01:00
Muhammad Rifqi Priyo Susanto
4e652ea9dd Advanced settings: Add range check for float type 2017-12-26 21:55:58 +00:00
rubenwardy
026ad912af Fix rounding error in g/set_node caused by truncation to float 2017-12-26 21:55:08 +00:00
rubenwardy
0bcc2f33eb Add check to pause game on lost window focus 2017-12-26 21:53:45 +00:00
Dániel Juhász
2153965cf9 Line_of_sight: Improve using VoxelLineIterator
This commit rewrites line_of_sight with VoxelLineIterator.
Stepsize is no longer needed, the results will be always accurate.
2017-12-26 21:51:32 +00:00
sofar
ca64f564cd Wireshark plugin: Complete all commands. (#6841)
This still leaves plenty of data undecoded, but just having the packet
types all covered 100% for 0.4.16 will make looking at traces a lot
simpler than seeing half the packets show up as unknown.
2017-12-26 14:06:31 +01:00
number Zero
189daf87a0 Fix dancing text 2017-12-25 15:00:50 +01:00
Rob Blanckaert
787cd15c14 - Clear colors when reading property info.
- Set vertex colors on upright_sprites.
2017-12-25 15:00:25 +01:00
nOOb3167
8037eda42c Fix error if setting menu_last_game is not a valid game 2017-12-22 10:39:51 +00:00
nOOb3167
7354d0f3d8 Fix undefined behaviour on getting pointer to data in empty vector
`&vector[0]` is undefined if vector.empty(), causing build failure on MSVC
2017-12-22 10:39:25 +00:00
Vitaliy
257626ceed Fix wrong scrolling (#6809) 2017-12-21 20:58:06 +01:00
Paramat
d04c41ad80 Vector functions: Fix vector.direction() function, improve documentation (#6801)
vector.direction() now returns a normalised vector with direction p1 to p2.
2017-12-21 20:57:42 +01:00
Jordan Irwin
18b921015a Allow 'default' parameter in 'settings:get_bool' function
Default value is used when the setting key is not found in the config
file. If default value is not set, 'nil' is returned.

#6188
2017-12-17 15:27:37 +00:00
Ezhh
26c7e98e3d Adjust default console height
#6797
2017-12-17 04:38:54 +00:00
Ezhh
649eef9e4f Give subgames the ability to disallow specific mapgens (#6792) 2017-12-16 17:02:08 +01:00
Vitaliy
770eb09adc Fix items turning black (#6780) 2017-12-16 17:01:37 +01:00
Tre
fd71a7c163 Change Normal Map setting to be less ambigous 2017-12-16 04:05:36 +00:00
paramat
f1d2bc0965 Zoom: Add 'disabled by game or mod' message 2017-12-14 20:59:54 +00:00
paramat
8a99c8c94a Minimap messages: Improve 'disabled by server' message 2017-12-14 20:59:54 +00:00
ashtrayoz
abd8a30c05 Add callback to preserve node metadata as item metadata 2017-12-14 20:54:04 +00:00
SmallJoker
6e5109fd46
Chat: Remove prompt history duplicates (#6762) 2017-12-14 19:47:29 +01:00
adrido
551c12391a directiontables: Fix MSVC compiler error (#6785) 2017-12-14 19:46:42 +01:00
Vitaliy
2d9f0d344e Update light decoding table size (#6696)
Fix old undiminish_light bug
2017-12-12 19:29:55 +01:00
SmallJoker
b19241b9bc Builtin: Fix handle_node_drops crash with nil digger 2017-12-12 19:19:04 +01:00
Loïc Blot
308bb69eef
CSM fixes: load mods after flavours & add flavour to block mod loading (#6738)
* CSM fixes: load mods after flavours & add flavour to block mod loading

* Don't permit to load mods twice

* Prepare builtin integrity global algorithm

* Add missing doc & use a nicer byteflag for LOAD_CLIENT_MODS flavour

* flag typo fix

* Invert CSM_FL_LOOKUP_NODES & CSM_FL_LOAD_CLIENT_MODS ids
2017-12-11 17:33:44 +01:00
ashtrayoz
02cc257fe0 Lua_api.txt: Fix a spelling error 2017-12-10 14:30:37 +00:00
ThomasMonroe314
419799b831 F5 debug info: Add colons, use lowercase except for FPS and RTT 2017-12-10 14:24:28 +00:00
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
Paramat
da298a26ff Pointed thing to face pos: Use 'eye height' object property (#6754) 2017-12-09 14:30:26 +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
sfan5
4edf087090 Auth handler: Player deletion & Iterator (#6741)
* Add player deletion method to auth handler (fixes #6653)
* Support iterating over the auth database

There was no way to do this previously and a recent commit
broke doing this the "hacky" way by accessing `core.auth_table`.
2017-12-06 17:32:49 +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
stujones11
2507d32afe Android: Update build system for ndk-r15x
Add workarounds for ndk-r16.
2017-12-04 02:20:32 +00:00
Lars Hofhansl
2174298ffa Document extended meaning of active_object_send_range_blocks setting. 2017-12-03 17:56:39 -08: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
sfan5
ab947bd582 Update documentation regarding authentication handler and related functions
Properly document it instead of referencing the builtin handler as
authoritative "example" code.
Also adds definition of get_auth_handler() which was missing previously.
2017-12-01 09:30:03 +01:00
sfan5
36838ea22f Make core.auth_table private and structure builtin/auth.lua
If you give modders the ability to do something, they will...
2017-12-01 09:30:03 +01:00
ezhh
6efb453cdb Lua_api.txt: Remove MT version, fix spelling and clean up
Removes references to MT version in intro section.
Update bump_version.sh to no longer manage version information.
2017-12-01 05:43:30 +00: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
Bluebird
8b1a844e69 Fix spelling mistakes in client_lua_api.txt 2017-11-29 02:24:40 +00:00
paramat
18b914ac74 Client lua api documentation: .md -> .txt
For consistency, and for much improved access on Github.

On Github:
.md disables being able to link to a line, needed daily when
quickly referring people to particular lines.
Search returns results in .md files, but you cannot then click
the line number to go to that line in the document, making searching
difficult.
Line numbers are not displayed for .md documents.
2017-11-28 23:45:57 +00:00
ezhh
b312ab4455 Fix lua_api.txt indentation issues 2017-11-28 23:45:51 +00:00
Ezhh
c0dd4ea46a Fix documentation formatting for on_death callback 2017-11-28 00:38:35 +00: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
Ezhh
76eb3f2b7a Improve documentation for player:set_attribute() 2017-11-25 23:18:50 +00:00
gituser2194
637ea86069 Fix misspellings
"diffferent" to "different"
"occuring" to "occurring"
"determin" to "determine"
"ommited" to "omitted"
"authetification" to "authentication"
"conponent" to "component"
"ommitted" to "omitted"
"celcius" to "Celsius"
"succesful" to "successful"

Misspellings found using GNU Spell version 1.0
2017-11-24 05:41:31 +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
SmallJoker
f7733f41ea
core.rotate_node: Run callbacks like with any regular placed node (#6648) 2017-11-21 20:21:52 +01: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
ezhh
c655984849 Mainmenu: Improve button alignment 2017-11-19 00:24:40 +00:00
Reedych
a02a36183c README.md: Add table of Linux dependencies 2017-11-19 00:20:43 +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
24c1c2fd0f Ore API documentation: Update and improve 2017-11-17 19:27:14 +00: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
ezhh
8ea86338ab Mainmenu: Make capitalisation consistent in mainmenu and advanced settings 2017-11-14 00:39:04 +00:00
paramat
a0c8c05242 PlayerSAO damage: Update to cope with variable player heights
Nearby codestyle cleanup.
2017-11-14 00:38:36 +00:00
Auke Kok
41bc0efe71 Sounds: Add falling node sounds
Falling nodes should make a sound. This can only be done here,
so for simplicity we just call the sound_play() here with the node
place sound. We ignore any gain value in the sound spec since a
falling node should be loud, so the 1.0 default gain makes sense
here.
2017-11-14 00:37:31 +00:00
ezhh
5b7687c08c Improve Settings tab button alignments 2017-11-13 03:40:20 +00:00
paramat
4d83eb796b Lua_api.txt: Add documentation of required mapgen aliases 2017-11-13 03:40:11 +00:00
Ezhh
66ec50db3a Remove incorrect entry from settingtypes 2017-11-12 00:45:22 +00:00
Vitaliy
20a85d76d9 Move files to subdirectories (#6599)
* Move files around
2017-11-08 23:56:20 +01:00
sfan5
fc9747eb4b Make use of safe file writing in auth handler (fixes #6576) 2017-11-08 16:14:05 +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
d693f95fc3 Lua_api.txt: Add documentation for 'eye_height' player object property 2017-11-06 13:54:42 +00:00
DTA7
ce832eb421 Item entities: Enable item collision detection for sudden movement 2017-11-06 13:51:26 +00: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
Ezhh
a07d2594e3 Fix Settings tab formspec alignment (#6585) 2017-11-05 11:15:32 +01: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
raymoo
a5d5728f24 Fix default item callbacks to work with nil users (#5819)
* Fix default item callbacks to work with nil users

* item.lua: Handle node drops for invalid players

The if-condition for the dropping loop is the same as `inv`, which means that the 2nd possible definition of `give_item` is never used.
Remove redundant `local _, dropped_item`
2017-10-28 10:30:50 +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
paramat
166ded4a11 Minetest.conf.example(.extra): Updates due to noise group format
Autogenerate minetest.conf.example to convert noises to the now standard
'group format'.
Delete the now unnecessary minetest.conf.example.extra.
2017-10-23 05:32:26 +01:00
Muhammad Rifqi Priyo Susanto
63c26413b6 Lua_api.txt: Revert changes to NoiseParams format example 2017-10-23 05:30:45 +01: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
Auke Kok
c60abb2aec Correct prot_vers in lua_api.txt.
We should avoid providing incorrect struct members in documentation
since people will be coding based on them.
2017-10-19 21:39:45 -07: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
rubenwardy
9f3a585937 Profiler: Fix var args not being passed to callback register function
Fixes #6517
2017-10-14 18:28:56 +01: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 9b8fa99fe30728c1fcfa73cdf74211841bdae9fb 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
lhofhansl
d386586201 Do not grant all privs to the admin - changes game behavior (#6460)
* Do not grant all privs to admins.

* Default give_to_admin to give_to_singleplayer
2017-10-07 15:12:09 +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
James Alexander Stevenson
00ceec9ff9 settingtypes.txt: Update zoom description (#6443) 2017-10-06 19:56:05 +02:00
James Alexander Stevenson
4337b48962 Move register_on_modchannel_signal() (#6497)
Moved from lua_api.txt to client_lua_api.md.
2017-10-05 16:14:10 +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
Hybrid Dog
7e488b926b Lua_api.txt: Clarify arguments of functions, plus some cleanup 2017-09-28 20:32:16 +01:00
raymoo
5258f3b857 Document orientation parameter of set_attach (#6473) 2017-09-28 18:40:47 +02: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 ad7daf7b52348e1b71aa803be10de5b2134cba11 2017-09-27 23:48:12 +02:00
Paramat
0df3671a34 Fix recent commit: std::max -> std::fmax for floats (#6469)
Fixes commit a455297d297c0819a7eff89e51e5f01a5ac731c3
<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
Loic Blot
f7e57a0d20
preview: try to send mod channel messages 4 seconds after joining, not after loading mod 2017-09-26 08:32:07 +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
6df312a608 Can_zoom player object property: Add missing documentation 2017-09-25 19:33:31 +01: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
a016b64838 Rooted plantlike drawtype: Add remaining documentation
Plus a small clarification of 'glasslike framed' documentation.
2017-09-19 09:35:28 +01: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 a1389c38658fe69c3bd25c3099bae9a4e51ed401
'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
tenplus1
5b6d4482ee Fix Rotate Node Placement (#6424)
This properly checks for creative mode or privilege when using fixed rotate_node() function.
2017-09-16 22:39:38 +02: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
Paramat
604fe2083d Item drop: Tune to land exactly 2 nodes away with level view (#6410) 2017-09-13 00:01:50 +02: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
sfan5
6fa2f6b4aa Fix core.wrap_text and make its behaviour consistent with the docs
Code based on initial implementation by @dsohler.
2017-09-12 19:33:00 +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
red-001
d10cccee31 Allow the join/leave message to be overridden by mods. 2017-09-11 20:54:07 +02:00
you
bb225672f9 Fix dropped item look (#6370)
* Abort set_item when it does nothing

* Do not adjust dropped item size linearly

Instead use cube root because the item count is proportional to the volume, not to the length.

* Make the item rotate slower when it's bigger

Bigger items chafe more on the ground, so they can't rotate as fast as small ones

* Fix items flying in air
2017-09-11 08:20:06 +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
rubenwardy
faad6479de Fix crash on revocation of removed privilege 2017-09-08 23:45:56 +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
Wuzzy
e3093cbe85 Prevent /spawnentity from spawning unknown entity (#6388) 2017-09-08 18:39:02 +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
04cf7a0d81 Conf.example: Update using auto-generation 2017-09-05 00:28:27 +01: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 5b04f5e7d231437b534f4cad39da78624d97c584.
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
Rui
b8f06ad37e Remove nodeupdate and nodeupdate_single 2017-08-30 19:39:10 +01: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
Ben Deutsch
43f9e948a1 Documentation for 'slippery' node group (#6345) 2017-08-29 21:48:43 +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 b7ee608e70f8e031e3e01c9672bedb16efa648b8 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
rubenwardy
72c09f524b Fix mistake when calling on_priv_grant/revoke, and document them (#6341) 2017-08-29 07:57:56 +02:00
paramat
2bd1a31239 Advanced settings: Make 'controls', 'graphics', 'sound' more accessible
Move client 'controls', 'graphics' and 'sound' into the first level to be
immediately visible to players who may not realise these come under 'client'.
These are the settings that new players or players on a server are likely to
want to access while not having understanding of what comes under 'client'.

Leave client 'network' and 'advanced' under 'client' as these are more
advanced.

Move 'show entity selection boxes' from the bizarre location in
'client'>'network' to 'graphics'>'in game'>'advanced'.
2017-08-28 20:57:22 +01: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
zeuner
1f207a3ddb Lua API: Add function to deregister single biomes (#5445) 2017-08-27 18:39:47 +02:00
you
e09c7fceaa core.get_objects_inside_radius: Omit removed objects (#6318)
Fixes #6294
2017-08-27 18:38:50 +02:00
Dharkael
de331b18e9 More readable default controls in README 2017-08-27 14:12:52 +01: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
096ea031de Add on_grant and on_revoke callbacks (#4713)
* Add register_on_priv_grant/revoke, and on_grant/revoke to privs. Call from /grant and /revoke

* Call on_grant and on_revoke callbacks from set_privs
2017-08-26 08:17:05 +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
SmallJoker
d3f1743fdd Builtin item: Tidy up (#4370)
New code structure
Use setting movement_gravity
Reset age on merge
Set merge radius to 1.0m
2017-08-24 23:06:36 +02:00
Ekdohibs
8221d3bc53 Add translation of LANG_CODE in all languages 2017-08-24 18:56:28 +02:00
Ekdohibs
b47c19c06f Fix updatepo.sh and run it.
It was broken due to the presence of "µ" utf-8 characters in builtin/profiler/reporter.lua.
2017-08-24 18:44:38 +02:00
Ekdohibs
b24e6433df Add clientside translations. 2017-08-24 17:54:10 +02:00
Loïc Blot
b28af0ed07 Verify compiler version before building anything (#6293)
GCC 4.9 and Clang 3.4 are the minimum
2017-08-24 17:16:55 +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 ae9b5e00989756bb676429530dfe81039009001c 2017-08-20 20:24:26 +02:00
Loic Blot
226acaeb9e
Add missing ENABLE_SYSTEM_JSONCPP in docs 2017-08-20 19:38:18 +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
Juozas
c8d3d11339 Travis-ci build: fix osx jpeg installation failure, git ambiguous argument error (caused by merging commits) and add a workaround for travis commit range bug (#6227)
* common.sh: fix travis-ci build bugs
install_macosx_deps: check if jpeg is installed, if not - upgrade it.
needs_compile: Check if $TRAVIS_COMMIT_RANGE is valid, if not, rewrite
the range with the correct one, and fix git ambiguous argument error.

* Changed detection method and removed commments
2017-08-20 17:27:26 +02:00
Loïc Blot
c99dcbaca9 New version scheme (#6292)
* Version changes: current dev version is now 0.5.0

* This change permit to have multi branches with various versions
* Dev version is 0.5.0-dev and next release will be 0.5.0
2017-08-20 17:20:11 +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
lisacvuk
d1a39f0140 Make world creation menu automatically generate a random world name (#6257)
* Make world creation menu automatically generate a name.

* Name is now initialy empty, and generated if player tries to create a world without a name.
2017-08-18 19:39:44 +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
rubenwardy
a039d981ac Change README to Markdown format, add LICENSE.txt (#6244) 2017-08-18 10:47:40 +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 1d8d01074fdb52946f81110bebf1d001185b394b 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
paramat
940bd93e88 Advanced settings: Re-organise mapgen settings for ease of use
Add a comment about the auto-generated minetest.conf.example possibly
appearing in the bin folder.
2017-08-14 12:53:12 +01:00
Dániel Juhász
71b02d626f Make dropped items colorable 2017-08-14 12:52:13 +01:00
Hybrid Dog
4493d47a51 L-system: Fix leaves cutting through stems 2017-08-14 12:38:21 +01:00
Loic Blot
3eb9ff555f
Player::getSpeed/setSpeed use const refs 2017-08-14 10:56:06 +02:00
Loic Blot
ab9f3b92f2
Player class: disable copy 2017-08-14 10:52:59 +02:00
Loic Blot
182bd6ab45
Various server.cpp cleanups
* Modernize many for loops
* Use constness on many loops
* use empty function on many strings tests
* various code style fixes
2017-08-14 01:06:12 +02:00
Loic Blot
5d06ecb366
Server::AsyncRunStep + Server::sendAddNode: modernize code
* Use various modern for loops
* Make some loop iterator constants, whereas there weren't
* Use empty on some size() > 0 tests
* Various little codestyle fixes
* Fix an hidden scope variable in Server::SendBlockNoLock
2017-08-14 00:44:45 +02:00
Loic Blot
725a0f56db
LocalPlayer::accelerateHorizontal: cleanups
* Properly use v3f default constructor
* v3f d_wanted = target_speed - m_speed; and d_wanted = target_speed * 0.1f - m_speed * 0.1f; can be factorized to d_wanted = (target_speed - m_speed) * 0.1f; => d_wanted *= 0.1f;
2017-08-13 23:08:17 +02:00
Loic Blot
d65d6160d8
Cleanup LocalPlayer::applyControl
* Use Environment interface instead of ClientEnvironemnt
* Don't create slippery variable and then re-affect it
* itemgroup_get return a int, properly test != 0 to be clearer
2017-08-13 23:02:32 +02:00
Wuzzy
2ea26e655d Add slippery group for nodes (players/items slide) 2017-08-13 21:39:08 +01:00
SmallJoker
4381fe0a0a Trigger on_rightclick regardless on the formspec meta field
Document behaviour for older clients.
2017-08-13 21:37:30 +01:00
Wuzzy
fa7fe40509 Add short description for disabled texture packs 2017-08-13 21:35:53 +01:00
TeTpaAka
028c9f899f Change “Use” key name to “Special” 2017-08-13 21:35:42 +01:00
Fixer
e44f13aecb Full viewing range key message clarified
To make it sound less confusing to players
2017-08-12 19:37:53 +01:00
Ben Deutsch
9ef9c72e5a Remove cloud_height setting
With the cloud API, the cloud_height setting has become obsolete
and replaceable by a mod. It, and supporting code, can be
removed.
2017-08-12 19:37:53 +01:00
Hybrid Dog
7e23532bc2 Abort if static_spawnpoint is an invalid setting instead of just giving an error log 2017-08-12 19:37:53 +01:00
paramat
3aab517775 Mgv5: Make spawn position search more reliable 2017-08-12 19:37:53 +01:00
Loic Blot
bb1c711586
ServerEnvironment::step: modernize loops
Use various ranged-based for loops in ServerEnvironment::step
Also set ServerObject::getBasePosition const to be compliant
ServerEnvironment::deleteParticleSpawner: use a const iterator
2017-08-11 09:57:27 +02:00
paramat
a4048e4e2e Mgv7: Raise spawn point by 1 node for no mountain case 2017-08-09 11:06:33 +01:00
paramat
3d0e8a691f Step height: Add as a player object property
Add settable player step height using the existing object property.
Breaks compatibility with old clients, add to protocol version 35.
2017-08-09 11:06:22 +01:00
Jens Rottmann
7cd1251d83 Minimap: Leaner minimap arrow makes it easier to see the direction
The arrow symbolizing the player in the square minimap looks almost like a
triangle, making it a bit hard to see which direction it is currently
pointing in when in a hurry.

Redraw it leaner, pointier. Colors unchanged.
2017-08-09 11:04:09 +01:00
Wuzzy
f3394095a1 Key change menu: Expose more keys 2017-08-09 11:00:24 +01:00
Juozas
837328fbac Fix error not printed to console when no name is provided
When minetest is launched, if there was no nameprovided in
configuration or parameters, the game would not show any error in
console. if the --go parameter was also prowided, the game would
exit without an error. This is undesired behavior, so this merged
commit add the missing function that displays the missing error
message in console.
2017-08-09 02:04:06 +01:00
Zeno-
b9ab51dd81 Update credits (#6228) 2017-08-09 00:11:41 +10:00
SmallJoker
154b61ac5e Singleplayer: Pause game in the key change dialog
Fixes #6201. @t0ny2 pointed to the right place. Thanks!
2017-08-07 15:29:46 +02:00
JRottm
8325d7f482 Start off newly generated worlds early at sunrise, 5:15am (#6211)
Gives starting singleplayer games this subtle "dawn of a new world" feel.
I would have set it even earlier (up to 4:45am), but I was worried that in
some pre-existing games the player could be overwhelmed by hostile
mobs right at the start, seriously changing gameplay.

It's just the default, individual games should be able to override it, and
for public servers it's irrelevant anyway, because only the first player to
set foot in the world will notice, and that's usually the server admin.
2017-08-05 21:08:21 +02:00
Jens Rottmann
248a1a8d65 Add tiny Y offset in collisionMoveSimple() to tweak performance
Another small general problem: the player is always standing exactly on the
bondary between 2 nodes e.g. Y=1.5 is exactly between nodes Y=1 and Y=2.
floatToInt() and myround() will round +/-n.5 always 'outwards' to +/-(n+1),
which means they behave differently depending on where you are: they round
upwards above sea level and downwards when underground. This inconsistency
comes from the way the coordinates are calculated, independent of the
specific C++ code.

The result is a tiny bit of lost performance when moving underground,
because 1 node level more than necessary is checked for collisions. This can
be amended by adding a tiny offset to minpos_f.Y, like @paramat suggested.
This is not an elegant solution, but still better than wasting CPU.
2017-08-05 12:38:11 +02:00
Jens Rottmann
0c893ea123 Fix player coordinate rounding in collisionMoveSimple() (#6197)
To determine the area (nodes) where a player movement took place
collisionMoveSimple() first took the old/new player coordinates and rounded
them to integers, then added the player character's collision box and
implicitely rounded the result. This has 2 problems:

Rounding the position and the box seperately, then adding the resulting
integers means you get twice the rounding error. And implicit rounding
always rounds towards 0.0, unlike floatToInt(), which rounds towards the
closest integer.

Previous (simplified) behavior: round(pos)+(int)box, for example player at
Y=0.9, body is 1.75m high: round(0.9)+(int)1.75 = 1+1 = 2.
==> A character's height of 1.75m always got rounded down to 1m, its width
of +/-0.3 even became 0.

Fixed by adding the floats first, then rounding properly: round(pos+box) =
round(0.9+1.75) = round(2.65) = 3.
2017-08-05 12:38:11 +02:00
Thomas--S
e63df5ce80 Sort box corners correctly 2017-08-04 21:57:50 +02:00
Wuzzy
86c0b27c33 Update minetest.conf.example for keymap_slot* 2017-08-04 21:52:32 +02:00
Juozas Pocius
80ded73f68 Fix crash when using --go in command line 2017-08-03 14:03:15 +02:00
paramat
b20d01a3f1 Dungeons: Use biome 'node_stone' if normal stone types not detected
Construct dungeons from the node defined as biome 'node_stone' if
'mapgen_stone', 'mapgen_desert_stone' and 'mapgen_sandstone' are not
detected.
Feature long-intended by kwolekr/hmmmm and present in code as a TODO.
2017-07-30 18:40:55 +01:00
paramat
238d752fa3 GenericCAO: Fix dark model below y = 0
Move point at which light is sampled up to 0.5 nodes above foot level,
to avoid that point sometimes passing into the node below causing the
model to go dark.
2017-07-30 18:40:45 +01:00
Lars Hofhansl
d1a130488e Darkness detection: Reduce chance of false positives darkening the skybox
The getBackgroundBrightness() function detects darkness in the view direction
to decide when to make the skybox dark. The volume checked was too narrow and
missed the left and right edges of the view, too easily causing a dark skybox.

Widen the checked volume to match a FOV of 72 degrees and a 16:9 aspect ratio
game window.
2017-07-30 18:28:16 +01:00
Wuzzy
640ba77276 Make direct item selection keys freely bindable 2017-07-30 18:24:45 +01:00
TeTpaAka
d504831ee2 Move the nametag back to the top of the player (#6179)
read the actual height of the collisionbox
2017-07-29 19:24:10 +02:00
SmallJoker
765fd9a0bc Noise: Prevent unittest crash caused by division by zero 2017-07-29 19:01:14 +02:00
Loïc Blot
e9d7005799 Revert "Noise::perlinMap2D,3D: replace a loop init with a single memset call"
This reverts commit bc1654feedc90caa8c26328ca6f0fc59fbe5b76c.
2017-07-27 17:12:18 +02:00
Loïc Blot
2015aaba96 Fix a warning introduced by 4eb59aeeb2f2b535f4eb2a1608189bb03098454e 2017-07-27 16:55:32 +02:00
Loïc Blot
550c0404a8 Add LuaEntity on_death callback (#6177)
Add LuaEntity on_death callback

This fixes #5474
2017-07-27 11:32:35 +02:00
Loic Blot
ba959ce27f Rename previous_was_found to previous_exists 2017-07-27 07:56:48 +02:00
Loic Blot
4eb59aeeb2 MapBlock::actuallyUpdateDayNightDiff(): little performance optimization
don't check isLightDayNightEq if checked on previous node
2017-07-27 07:56:48 +02:00
Loic Blot
c27504a322 compressZlib: don't use a SharedBuffer but a raw u8 * pointer
Remove usage of the SharedBuffer in zlib compression which has two problems:
* We copied the whole memory block to compress it (not good with mapblocks)
* We copied sometimes strings to SharedBuffer to SharedBuffer (2nd time)

Use this method in MapNode::serializeBulk + optimize serialization but merging 3 identical loops in a single loop
2017-07-27 07:56:48 +02:00
Loic Blot
61e4877190 Massive performance improvement on correctBlockNodeIds
correctBlockNodeIds does 2 lookups for each loaded node, one to translate DB ID to name and a second to translate name to real ID. Name to real ID is very consumming if done on every node. As mapblocks are in most cases composed of many identical adjacent nodes, cache previous source and destination id and use them on the next node to prevent any lookup on those maps.

This reduce the function load from 15% of my CPU usage to ~0.7%, on the test, calls was reduced from 2.5M lookups to 42k lookups, it's a huge performance gain
2017-07-27 07:56:48 +02:00
Loic Blot
bc1654feed
Noise::perlinMap2D,3D: replace a loop init with a single memset call 2017-07-27 00:24:14 +02:00
Loic Blot
c8faee4eda
Remove one unused variable in Server::Receive function 2017-07-27 00:16:20 +02:00
Loic Blot
9d412dd075
Remove unused Map::getDayNightDiff + fix one undefined variable in mapblock.cpp 2017-07-26 23:11:46 +02:00
Loïc Blot
3e50850260 TileLayer: use shared_ptr for FrameSpec vector (#6171)
* TileLayer: use shared_ptr for vector framespec
This reduce memory copy of TileLayer from (4 to 16) * FrameSpec where FrameSpec = (sizeof(int) + 3 * sizeof(ptr)) to int + sizeof(ptr)

Callgrind difference

Before: https://lut.im/RGkiJqQb8T/LeQIEXpAuRzfl7gd.png
After: https://lut.im/bcqmwee1xu/cTwtptY5tRuS9lp0.png

* Fix one push_back to use vector::emplace_back & optimize inclusions
2017-07-26 20:12:48 +02:00
Loïc Blot
9a17b65f26 VoxelManip cleanups (const ref, const move) + function removal (#6169)
* VoxelManip cleanups (const ref, const move) permitting to improve a little bit performance

* VoxelArea: precalculate extent (performance enhancement)

This permits to reduce extend high cost to zero and drop many v3s16 object creation/removal to calculate extent
It rebalance the client thread update to updateFastFaceRow instead of MapBlockMesh generation
This will also benefits to mapgen
2017-07-26 07:35:09 +02:00
paramat
0c99da4255 Create_schematic documentation: Update for per-node force-place
The probability list has to also encode per-node force-place.
2017-07-26 02:41:41 +01:00
paramat
f61928d3fc Mgv7: Add 'mount_zero_level' parameter
Allows setting of the mountain 'zero level' (y where density gradient is zero).

It is easy to vertically shift smooth terrain by editing noise parameter 'offset',
but vertically shifting mountain terrain was complex and imprecise, involving
making a calculation based on an average of the mountain height parameter.
2017-07-26 02:41:30 +01:00
Loic Blot
31b84ce1f2
Move MapEditEventAreaIgnorer to emerge.cpp
It's only used in emerge threads and it's a local object, don't expose it to the whole Minetest
2017-07-25 08:47:52 +02:00
Paramat
4a4eba7a6c Network protocol: Document settable player collisionbox (#6168) 2017-07-25 07:32:44 +02:00
Ben Deutsch
c50a57c070 Clouds API: change speed from 'y' to 'z', ColorSpecs in Lua docs (#6164) 2017-07-24 18:04:00 +02:00
Loic Blot
befc3bba3d
LBM: use range based for and fixed a loop variable overloading in applyLBMs 2017-07-24 08:26:19 +02:00
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 ef285b2815962a7a01791059ed984cb12fdba4dd
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 bdac12761cd92960c3df83c932aa610f2322215f.
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 39f4a2f607d44738d60db84eba4b30e3d7450204.
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 cad10ce3b747b721fd63784915e05f12bc488128 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
Loic Blot
1237206d4b
Revert "Ores: Make 'absheight' flag non-functional"
This reverts commit 90ed6fc732ca667ca970b7c38d39c809e5c3553e.
2017-06-25 23:08:31 +02:00
SmallJoker
c08cc0533f Inventory: Fix wrong stack size behaviour and item loss (#6039)
Also fix itemFits and remove constness-nonsense
2017-06-25 11:39:39 +02:00
paramat
cad10ce3b7 Mgv7: Clean up divide-by-zero fix 2017-06-25 05:01:50 +01:00
paramat
90ed6fc732 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-25 05:01:42 +01:00
Dániel Juhász
5a41a98ff6 Helper methods for hardware colorization (#5870) 2017-06-24 20:15:09 +02:00
Dániel Juhász
c2df1a0835 Emit liquid sound if the player walks in liquid (#6040) 2017-06-24 20:15:00 +02:00
Vincent Glize
9da5fb1583 C++11 cleanup on constructors guiEngine (#6036)
* C++11 cleanup on constructors guiEngine
2017-06-24 13:41:30 +02:00
Loic Blot
8a84e89922
Game::showOverlayMessage: securise function
Do wgettext call directly in the function instead of caller, as we destroy wstd inside it
2017-06-24 11:43:17 +02:00
paramat
34e8e0e5ce Mgv7: Avoid divide-by-zero errors
Some settings of paramters can cause mgv7 variables to be -inf, nan or -nan.
This can cause massive vertical columns of water to appear above sea level.
2017-06-24 01:48:29 +01:00
paramat
9a77397fbf Mgvalleys: Use existing 'lava_max_height' value in CavesRandomWalk
Now that lava depth in large caves is variable we can use the already
present 'lava_max_height' value to set the lava depth in them.
2017-06-24 01:48:20 +01:00
Wuzzy
08f57e1e38 Show param1 and param2 in debug screen (#6031)
* Show param1 and param2 in debug screen

* Add units and some formatting to debug screen

* Minor refactor of param1/param2 debug display
2017-06-23 13:31:01 +02:00
Loïc Blot
8dd548c0b4 LINT fix 2017-06-22 13:20:20 +02:00
red-001
8b9f40d12f Fix CSM crash caused by move to C++11. (#6027) 2017-06-22 13:18:58 +02:00
paramat
2652d8db19 CavesRandomWalk: Make 'lava_depth' a mapgen parameter
As with 'large_cave_depth', lava depth was previously a fixed y value and
therefore incompatible with the ability to shift terrain vertically.

Add 'lava_depth' mapgen parameter to mgflat, mgfractal, mgv5, mgv7.
2017-06-22 03:14:56 +01:00
Gael-de-Sailly
bc53c82bcf Add minetest.rgba function that returns ColorString from RGBA or RGB values 2017-06-22 03:11:50 +01:00
Loïc Blot
1425c6def1 Cpp11 initializers: last src root changeset (#6022)
* Cpp11 initializers: last src root changeset

Finish to migrate all src root folder files to C++11 constructor initializers
2017-06-21 11:51:29 +02:00
Dániel Juhász
12aad731ad Fix render order of overlays (#6008)
* Fix render order of overlays

* Use C++11 loops

* Fix time_t
2017-06-21 10:47:31 +02:00
Vincent Glize
8daf5b5338 C++11 cleanup on constructors dir network (#6021)
* C++11 cleanup on constructors dir network
2017-06-21 08:28:57 +02:00
Vincent Glize
af3badf7a9 C++11 cleanup on constructors dir client (#6012)
* C++11 cleanup on constructors dir client
2017-06-21 08:04:45 +02:00
Ezhh
76074ad81a Fix console resize issue when maximising game window (#6023) 2017-06-21 07:50:57 +02:00
paramat
b8237099b2 Mgv5/v7/fractal: Add 'large_cave_depth' parameter to replace fixed value
The value cannot be fixed because we can shift terrain vertically.
This also makes these mapgens consistent with mgflat and mgvalleys which
have 'large_cave_depth' parameters.
2017-06-21 01:58:04 +01:00
Jesse McDonald
e6a9e6066a Inventory: Make addItem for empty ItemStacks respect max stack size
When adding items to an empty ItemStack, limit the number of items taken
based on the maximum stack size in the item description.
Likewise, when checking whether items will fit into an empty ItemStack,
only absorb as many items as are allowed in a single stack and return the rest.
2017-06-21 01:53:57 +01:00
Loïc Blot
16938adfc0 Merge cguittfont lib in irrlicht change folder. (#6016)
* Merge cguittfont lib in irrlicht change folder.

This remove hack and static lib for FreeType
2017-06-20 17:18:34 +02:00
Zeno-
318106223f Fix console not being properly resized after window size changed (#6020) 2017-06-20 12:36:58 +02:00
Dániel Juhász
0fcaf9fb1b Automatic item and node colorization (#5640)
* Automatic item and node colorization

Now nodes with a palette yield colored item stacks, and colored items
place colored nodes by default. The client predicts the colorization.

* Backwards compatibility

* Use nil

* Style fixes

* Fix code style

* Document changes
2017-06-20 11:19:56 +02:00
Loïc Blot
7c07cb4ec2 Add new travis required configuration for trusty 2017-06-20 09:39:20 +02:00
Loic Blot
b2977e7691
Fix 1 more warning reported by GCC
We don't write in correct buffer size in analyze_block
2017-06-20 00:19:29 +02:00
Loic Blot
b32f36bf34
Fix 2 warnings reported by GCC
* ClientEnvironment::m_irr is not used anymore since a recent cleanup
* l_vmanip constructor ordering
2017-06-20 00:04:18 +02:00
Vincent Glize
4a5e8ad343 C++11 cleanup on constructors (#6000)
* C++11 cleanup on constructors dir script
2017-06-19 23:54:58 +02:00
Loïc Blot
4a78949083 Remove IrrlichtDevice unused pointer from ClientActiveObject class & childs (#6010) 2017-06-19 16:49:34 +02:00
SmallJoker
6eb03c135f find_nodes_in_area: Extend maximal count to U32_MAX (#5277)
Extend documentation, limit area volume
Remove u16 count limitation

* Prevent integer overflow, replace minp/maxp with pos1/pos2
2017-06-19 16:30:26 +02:00
Loïc Blot
071736ba3f hud.h: add missing false default state on use_hotbar_selected_image 2017-06-19 15:41:33 +02:00
Loïc Blot
53acc32bee hud.cpp: fix wrong indent in drawItem 2017-06-19 15:20:30 +02:00
Loïc Blot
4dcc5985df Verify HudSetParams input when hotbar textures are set (#6013)
* Verify HudSetParams input when hotbar textures are set

This fix #6011
2017-06-19 14:10:30 +02:00
paramat
0c429bd164 Mgv7: Do not limit river generation if no floatlands
Previously, the carving of rivers was disabled above 'shadow_limit' even if
floatlands were disabled. This caused rivers to be unnecessarily disabled if
mapgen was customised to have surface level above y = 1024.
2017-06-19 02:20:14 +01:00
paramat
ea4d407082 Mgv7 spawn search: Cope with extreme custom terrain and biome 'dust'
Previously, maximum spawn level was set to 'water_level + 16'. This would result
in spawn search failing if terrain had been customised to be much higher than
'water_level' at all points.

Also raise spawn level by 1 node to avoid spawning half-buried in a biome 'dust'
node such as 'default:snowblock'.
2017-06-19 02:20:04 +01:00
Loic Blot
8f2e60a961
Client::makeScreenshot: remove device param
We already have the device param as class member
2017-06-19 00:00:55 +02:00
Loïc Blot
4faaadc8d5 Cpp11 patchset 11: continue working on constructor style migration (#6004) 2017-06-18 19:55:15 +02:00
Loïc Blot
8f7785771b Cpp11 initializers 2 (#5999)
* C++11 patchset 10: continue cleanup on constructors

* Drop obsolete bool MainMenuData::enable_public (setting is called with cURL in server loop)

* More classes cleanup

* More classes cleanup + change NULL tests to boolean tests
2017-06-17 19:11:28 +02:00
Loïc Blot
76be103a91 C++11 patchset 9: move hardcoded init parameters to class definitions (part 1) (#5984)
* C++11 patchset 9: move hardcoded init parameters to class definitions

C++11 introduced the possibility to define the default values directly in class definitions, do it on current code

Also remove some unused attributes

* CollisionInfo::bouncy
* collisionMoveResult::collides_xy
* collisionMoveResult::standing_on_unloaded
* Clouds::speed

* More constructor cleanups + some variables removal

* remove only write guiFormSpecMenu::m_old_tooltip
* move header included inside defintions in genericobject.h
* remove some unused since years exception classes
* remove unused & empty debug_stacks_init
* remove unused & empty content_nodemeta_serialize_legacy
* remove forgotten useless bool (bouncy) in collision.cpp code
2017-06-16 11:25:52 +02:00
Rui
49d6e5f4ab Fix deserialization of ItemDefinition (#5995) 2017-06-16 07:17:30 +02:00
paramat
212945c7a3 Mgv6 mudflow: Also check for 'ignore' nodes
Previously, when removing decorations we searched upwards and removed until we
found air or water. However, the node above the decoration can be 'ignore' if
a stacked decoration extends into the volume above the mapchunk. The result
could be a problematic column of air placed in the volume of 'ignore'. The
unnecessary placing of air also slows the function.

Add a check for 'ignore' nodes when removing decorations.
2017-06-16 02:17:25 +01:00
Ezhh
2ab09bb486 Improve chatcommand params consistency (#5985)
* Fix and improve params consistency

* Move parenthesis requirement to descriptions
2017-06-15 22:38:41 +02:00
paramat
f55816f93a Mgv6 mudflow: Avoid partially removed stacked decorations
Recently we started to remove decorations if the dirt below was flowed away,
but this did not check for stacked decorations, causing them to have only
their lowest node removed.
Also, placed mud could partially bury stacked decorations.

Remove 'old_is_water' bool which on testing is never true.
Add new function 'moveMud()' to reduce indentation.
Remove stacked decoration nodes above a removed decoration.
Remove stacked decorations partially buried in placed mud.
2017-06-15 00:38:08 +01:00
Rui
bbe3dd9a7a Fix no sound bug (#5968) 2017-06-14 17:21:08 +02:00
Loïc Blot
ddcd026344 Remove legacy content_abm.{cpp,h} 2017-06-14 16:23:08 +02:00
sfan5
4783ff956b Update list of installed files concerning server and non-RUN_IN_PLACE builds (#5976)
* mods/mods_here.txt should be present on servers
* client/serverlist/ can be omitted for RUN_IN_PLACE=0
* clientmods/ is not used on servers
2017-06-14 08:04:39 +02:00
Rui
683ab3a154 Fix the serialization error by ff73c7a (#5964) 2017-06-11 21:20:50 +02:00
Loïc Blot
65819f3b9f Use thread_local instead from some static settings (#5955)
thread_local permits to limit variable lifetime to thread duration. Use it on each setting place which uses static to cache variable result only for thread lifetime. This permits to keep the same performance level & reconfigure server from MT gui in those various variables places.

Add thread_local to undersampling calculation too.
2017-06-11 13:58:43 +02:00
Rui
ff73c7a5da Sound: Add pitch option (#5960)
* Sound: Add pitch option
2017-06-11 13:58:26 +02:00
Loïc Blot
03ff53e16b Remove minetestmapper from this repository (#5901)
It's now located at https://github.com/minetest/minetestmapper

Remove colors.txt and sectors2sqlite too
2017-06-11 12:49:30 +02:00
red-001
26e2eb019a Improve the path select GUI (#5852)
- Allow lua to chose whatever directories or files can be selected
- Fix selecting directories
- Rename dialog to `guiPathSelectMenu` from `guiFileSelectMenu`
- Rename lua function for opening the menu from `show_file_open_dialog` to `show_path_select_dialog`
- Remove duplicate code and fix code style.

Related changes
- fix `clang-format` whitelist.
- Regenerate minetest.conf.example
2017-06-11 09:43:31 +02:00
ShadowNinja
6c5e5e2023 Remove threads.h and replace its definitions with their C++11 equivalents (#5957)
This also changes threadProc's signature, since C++11 supports arbitrary
thread function signatures.
2017-06-11 09:43:05 +02:00
QrchackOfficial
5cc8ad946e Remove superfluous pointer null checks 2017-06-10 21:04:47 -04:00
number Zero
7bfd53ba58 Plantlike meshoptions: Fix inverted random vertical offset 2017-06-11 02:12:33 +01:00
paramat
842acbfad2 (Re)spawn players within 'mapgen_limit'
Previously, findSpawnPos() did not take the 'mapgen_limit' setting into account,
a small limit often resulted in a spawn out in the void.
Use the recently added 'calcMapgenEdges()' to get max spawn range through a new
mapgenParams function 'getSpawnRangeMax()'.

Previously, when a player respawned into a world, 'objectpos_over_limit()' was
used as a check, which was inaccurate.
Use the recently added 'saoPosOverLimit()' to get exact mapgen edges.

Also fix default value of 'm_sao_limit_min'.
2017-06-11 02:11:08 +01:00
Elijah Duffy
a9f02ab51c Menu: Do not use textlist for shaders in settings tab (#5820)
Replace the textlist used if the shaders checkbox is unchecked in the settings tab of the main menu with labels. This makes the formspec feel more consistent as the items do not move when shaders is unchecked but only change colour and the checkboxes beside them disappear.
2017-06-10 20:14:26 +02:00
red-001
25ae0739ed Add a server-sided way to remove color codes from incoming chat messages (#5948)
These code be generated by CSM, a modded client or just copy and pasted by the player.

Changes
- Update configuration example and setting translation file.
- Remove colour codes before logging chat.
- Add setting to remove colour codes before processing the chat.
2017-06-10 13:49:44 +02:00
DS
07be63b287 fix an example in lua_api (#5604) 2017-06-10 13:49:28 +02:00
Loïc Blot
ab128e03ff C++11 patchset 6: forbid object copy using assigment/copy function deleters (#5945)
C++11 implement function deleting, it's generally used to prevent some object copy
In script API use this function removal on ScriptApiBase instead of ScriptApiClient/Server/MainMenu, this affect all ScriptApis
Move DISABLE_CLASS_COPY with constructor, the deleted function permit to replace function in its original place
2017-06-10 13:49:15 +02:00
Thomas--S
9c497aa71f Order es_DrawType exactly like enum NodeDrawType in nodedef.h (#5946)
This will help to avoid some strange bugs.
2017-06-10 13:24:05 +02:00
red-001
740b4bec07 Fix sending color codes to clients that don't support them. (#5950)
Also remove `disable_escape_sequences` since it's not needed anymore.
2017-06-09 21:39:25 +02:00
DS
44495ea719 CSM: Fix documentation error for register_on_*_chat_messages (#5917) 2017-06-09 15:48:04 +02:00
Loïc Blot
312ca0382b buildbot: exit 0 at the end of the script
This permits script to return correct state when skipping packaging
2017-06-09 12:05:37 +02:00
Loïc Blot
d74385be24 Implement GItlab CI daily builds for windows platform (32 & 64) (#5923)
* Implement win32 & win64 builds in Gitlab CI + pkg improvements

* windows buildbot: split build & deploy steps
* move deb artifacts to root folder to have a nicer artifact
* add windows build + packaging on xenial
2017-06-08 16:30:30 +02:00
red-001
4221c1b441 Have the server send the player list to the client (#5924)
* Have the server send the player list to the client

Currently the client generates the player list based on the Client active object list, the issue with this is that we can't be sure all player active objects will be sent to the client, so this could result in players showing up when someone run `/status` but auto complete not working with their nick and CSM not being aware of the player
2017-06-08 15:30:09 +02:00
Loïc Blot
5bd33a1586 C++11 patchset 5: use std::threads and remove old compat layer (#5928)
* C++11 patchset 5: use std::threads and remove old compat layer

* use pragma once in modified headers
* use C++11 function delete for object copy
2017-06-08 10:40:11 +02:00
Paramat
0a5c3c2852 Autorun: Change to 'autoforward' (#5926)
Minetest does not have 'run'.
Automatic forwards is very often used while flying or swimming, so a general
word is more suitable.
2017-06-08 09:57:00 +02:00
red-001
47bcf2f7ac Use a settings object when generating world.mt and set player_backend to sqlite. (#5940)
* Use a settings object when generating world.mt and set player_backend to sqlite.

* Update subgame.cpp
2017-06-08 09:50:51 +02:00
DS
00dfced195 make ret variable in /builtin/mainmenu/tab_credits.lua local (#5942) 2017-06-07 19:11:28 +02:00
red-001
c91a8c7061 [CSM] Add function to get player privileges (#5933)
* [CSM] Add function to get player privileges + move related help functions to common

* Added @Zeno- const
2017-06-07 09:09:06 +02:00
Loic Blot
6c55874417
DragonflyBSD & NetBSD build fix 2017-06-06 23:02:03 +02:00
Loic Blot
47f5e7fd0f
Fix bump_version.sh & client_lua_api.md
This modification was forgotten at release
2017-06-06 19:56:15 +02:00
red-001
33b513f76c Fix typos/mistakes in the documentation for colour related functions. (#5936) 2017-06-06 17:02:44 +02:00
Loïc Blot
d4c0f91275 Use C++11 mutexes only (remove compat code) (#5922)
* Fix event LINT & remove default constructor/destructors
* remove compat code & modernize autolock header
2017-06-06 16:29:28 +02:00
Loïc Blot
8bdde45895 Revert "Remove deprecated code segments (#5891)"
This reverts commit 599e13e95e81aadb959c9f3715aec9b425ede084.
2017-06-06 16:19:04 +02:00
Elijah Duffy
fee5171298 Main Menu: Add get_clientmodpath API (#5912)
Add `core.get_clientmodpath` to main menu API (also possible in async calls).
2017-06-06 14:34:31 +02:00
Loïc Blot
b3dfe5332c C++11 patchset 3: remove Atomic/GenericAtomic and use std::atomic (#5906) 2017-06-06 14:34:14 +02:00
red-001
a6678d6e5a Remove old network code (#5921) 2017-06-06 07:57:35 +02:00
Vincent Glize
dfd79c086b Fixed #5907 Documentation for screen_h and screen_w (#5909) 2017-06-05 09:43:21 +02:00
Loic Blot
718121df91
Remove SharedPtr, it's not used and will be never used, we use C++11 2017-06-05 09:36:13 +02:00
Loic Blot
bfacfc2062
Gitlab CI: Fix Ubuntu 14.04/Debian 8 build by using GCC 6 toolchain
+ indent fix
2017-06-05 00:06:01 +02:00
Thomas--S
599e13e95e Remove deprecated code segments (#5891) 2017-06-04 21:42:32 +02:00
Loïc Blot
a98baef5e4 C++11 patchset 2: remove util/cpp11.h and util/cpp11_container.h (#5821) 2017-06-04 21:00:04 +02:00
Loic Blot
2362d3f926 JsonCPP update from 0.10.6 to 1.8.0 2017-06-04 09:57:08 +02:00
Loic Blot
bf6569b570 Minetest for C++11 (CMakeLists + Travis)
* Move GCC to GCC 6 & GCC 7
* Move Clang to Clang 3.6 & Clang 4.0
* LINT moves from Clang 3.9 to Clang 4.0
* Move XCode 7.3 to 8.0
* Use more travis tricks to install compilers instead of adding complexity to our build script
* Clang format fixes on checked files (compat Cpp11 instead of Cpp03)
* Mingw GCC update from 4.8.4 to 5.3 (Ubuntu Xenial)
* Drop mingw cmake generated files and add them to gitignore
2017-06-04 09:57:08 +02:00
Casimir
0e58168fe5 Mapgen v6: Use snow blocks in tundra and remove them from taiga (#5827)
* Mapgen v6: Use snow blocks in tundra and remove them from taiga

* Use snowblocks in tundra above dirt with snow
2017-06-04 09:37:30 +02:00
ShadowNinja
7786521f15 Fix segmentation fault with tool capabilities (#5899) 2017-06-03 23:59:17 +02:00
Vincent Glize
dd0a058e1f Snake case for screen options in minetest.conf (#5792) 2017-06-03 22:02:07 +02:00
ShadowNinja
63ca71e9d2 Continue with 0.4.16-dev 2017-06-03 14:42:10 -04:00
636 changed files with 50728 additions and 44027 deletions

View File

@ -2,7 +2,7 @@ BasedOnStyle: LLVM
IndentWidth: 8
UseTab: Always
BreakBeforeBraces: Custom
Standard: Cpp03
Standard: Cpp11
BraceWrapping:
AfterClass: true
AfterControlStatement: false
@ -17,7 +17,7 @@ AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
AccessModifierOffset: -8
ColumnLimit: 90
AllowShortFunctionsOnASingleLine: Inline
AllowShortFunctionsOnASingleLine: InlineOnly
SortIncludes: false
IncludeCategories:
- Regex: '^".*'
@ -26,3 +26,5 @@ IncludeCategories:
Priority: 1
AlignAfterOpenBracket: DontAlign
ContinuationIndentWidth: 16
ConstructorInitializerIndentWidth: 16
BreakConstructorInitializers: AfterColon

31
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,31 @@
##### Issue type
<!-- Pick one below and delete others -->
- Bug report
- Feature request
- Documentation issue
- Build issue
##### Minetest version
<!--
Paste Minetest version between quotes below
If you are on a devel version, please add git commit hash
You can use `minetest --version` to find it.
-->
```
```
##### OS / Hardware
<!-- General information about your hardware and operating system -->
Operating system:
CPU:
<!-- For graphical issues only -->
GPU model:
OpenGL version:
##### Summary
<!-- Describe your problem here -->
##### Steps to reproduce
<!-- For bug reports or build issues, explain how the problem happened -->

2
.gitignore vendored
View File

@ -86,6 +86,8 @@ locale/
*.gch
cmake-build-debug/
cmake-build-release/
cmake_config.h
cmake_config_githash.h
## Android build files
build/android/src/main/assets

View File

@ -22,7 +22,7 @@ variables:
- make install
artifacts:
when: on_success
expire_in: 1h
expire_in: 2h
paths:
- artifact/*
@ -39,12 +39,12 @@ variables:
- rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git
- sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control
- sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control
- cd build/deb/ && dpkg-deb -b minetest/
- cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../
artifacts:
when: on_success
expire_in: 30 day
expire_in: 90 day
paths:
- build/deb/*.deb
- ./*.deb
.debpkg_install: &debpkg_install
stage: deploy
@ -52,7 +52,7 @@ variables:
- apt-get update -y
- apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g
script:
- dpkg -i build/deb/*.deb
- dpkg -i ./*.deb
##
## Debian
@ -64,8 +64,13 @@ build:debian-8:
<<: *build_definition
image: debian:8
before_script:
- echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
- apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
variables:
CC: gcc-6
CXX: g++-6
package:debian-8:
image: debian:8
@ -115,11 +120,16 @@ deploy:debian-9:
# Trusty
build:ubuntu-14.04:
<<: *build_definition
image: ubuntu:trusty
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
<<: *build_definition
image: ubuntu:trusty
before_script:
- echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
- apt-get update -y
- apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
variables:
CC: gcc-6
CXX: g++-6
package:ubuntu-14.04:
image: ubuntu:trusty
@ -140,11 +150,11 @@ deploy:ubuntu-14.04:
# Xenial
build:ubuntu-16.04:
<<: *build_definition
image: ubuntu:xenial
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
<<: *build_definition
image: ubuntu:xenial
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
package:ubuntu-16.04:
image: ubuntu:xenial
@ -165,11 +175,11 @@ deploy:ubuntu-16.04:
# Yakkety
build:ubuntu-16.10:
<<: *build_definition
image: ubuntu:yakkety
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
<<: *build_definition
image: ubuntu:yakkety
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
package:ubuntu-16.10:
image: ubuntu:yakkety
@ -190,11 +200,11 @@ deploy:ubuntu-16.10:
# Zesty
build:ubuntu-17.04:
<<: *build_definition
image: ubuntu:zesty
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
<<: *build_definition
image: ubuntu:zesty
before_script:
- apt-get update -y
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
package:ubuntu-17.04:
image: ubuntu:zesty
@ -221,3 +231,80 @@ build:fedora-24:
image: fedora:24
before_script:
- dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
##
## Mingw for Windows
##
.generic_win_template: &generic_win_template
image: ubuntu:xenial
before_script:
- apt-get update -y
- apt-get install -y p7zip-full wget unzip git cmake gettext
- wget http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_7.1.1_ubuntu14.04.7z -O mingw.7z > /dev/null
- sed -e "s|%PREFIX%|${WIN_ARCH}-w64-mingw32|" -e "s|%ROOTPATH%|/usr/${WIN_ARCH}-w64-mingw32|" < util/travis/toolchain_mingw.cmake.in > ${TOOLCHAIN_OUTPUT}
- 7z x -y -o/usr mingw.7z > /dev/null
.build_win_template: &build_win_template
<<: *generic_win_template
stage: build
artifacts:
when: on_success
expire_in: 2h
paths:
- build/*
.package_win_template: &package_win_template
<<: *generic_win_template
stage: package
script:
- cd build/minetest/_build
- make package
- cd ../../../
- mkdir minetest-win-${WIN_ARCH}
- unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH}
- cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
- cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
- cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
artifacts:
when: on_success
expire_in: 90 day
paths:
- minetest-win-*/*
build:win32:
<<: *build_win_template
script:
- ./util/buildbot/buildwin32.sh build
variables:
NO_PACKAGE: "1"
WIN_ARCH: "i686"
TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw.cmake"
package:win32:
<<: *package_win_template
dependencies:
- build:win32
variables:
NO_PACKAGE: "1"
WIN_ARCH: "i686"
TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw.cmake"
build:win64:
<<: *build_win_template
script:
- ./util/buildbot/buildwin64.sh build
variables:
NO_PACKAGE: "1"
WIN_ARCH: "x86_64"
TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw64.cmake"
package:win64:
<<: *package_win_template
dependencies:
- build:win64
variables:
NO_PACKAGE: "1"
WIN_ARCH: "x86_64"
TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw64.cmake"

View File

@ -2,6 +2,8 @@ language: cpp
before_install: ./util/travis/before_install.sh
script: ./util/travis/script.sh
sudo: required
dist: trusty
group: edge
notifications:
email: false
matrix:
@ -10,30 +12,90 @@ matrix:
- env: PLATFORM=Win32
compiler: gcc
os: linux
addons:
apt:
packages: ['gcc-mingw-w64-i686', 'g++-mingw-w64-i686', 'binutils-mingw-w64-i686']
sources: &sources
- ubuntu-toolchain-r-test
- sourceline: 'deb http://mirrors.kernel.org/ubuntu xenial main universe'
- env: PLATFORM=Win64
compiler: gcc
os: linux
- env: PLATFORM=Unix COMPILER=clang
addons:
apt:
packages: ['gcc-mingw-w64-x86-64', 'g++-mingw-w64-x86-64', 'binutils-mingw-w64-x86-64']
sources: &sources
- ubuntu-toolchain-r-test
- sourceline: 'deb http://mirrors.kernel.org/ubuntu xenial main universe'
- env: PLATFORM=Unix
compiler: clang
os: osx
- env: PLATFORM=Unix COMPILER=g++
osx_image: xcode8
- env: PLATFORM=Unix COMPILER=gcc-6
compiler: gcc
os: linux
- env: PLATFORM=Unix COMPILER=clang
compiler: clang
os: linux
- env: PLATFORM=Unix COMPILER=clang VALGRIND=1
compiler: clang
os: linux
dist: trusty
- env: COMPILER=none LINT=1
compiler: clang
os: linux
dist: trusty
- env: PLATFORM=Unix COMPILER=g++-6
addons:
apt:
packages: ['gcc-6', 'g++-6']
sources: &sources
- ubuntu-toolchain-r-test
- env: PLATFORM=Unix COMPILER=gcc-7
compiler: gcc
os: linux
addons:
apt:
sources: &sources
- ubuntu-toolchain-r-test
addons:
apt:
packages: ['gcc-7', 'g++-7']
sources: &sources
- ubuntu-toolchain-r-test
- env: PLATFORM=Unix COMPILER=clang-3.6
compiler: clang
os: linux
addons:
apt:
packages: ['clang-3.6', 'clang++-3.6']
sources: &sources
- llvm-toolchain-trusty-3.6
- env: PLATFORM=Unix COMPILER=clang-5.0
compiler: clang
os: linux
addons:
apt:
packages: ['clang-5.0', 'clang++-5.0']
sources: &sources
- llvm-toolchain-trusty-5.0
- env: PLATFORM=Unix COMPILER=clang-5.0 FREETYPE=0
compiler: clang
os: linux
addons:
apt:
packages: ['clang-5.0', 'clang++-5.0']
sources: &sources
- llvm-toolchain-trusty-5.0
- env: PLATFORM=Unix COMPILER=clang-5.0 VALGRIND=1
compiler: clang
os: linux
addons:
apt:
packages: ['valgrind', 'clang-5.0', 'clang++-5.0']
sources: &sources
- llvm-toolchain-trusty-5.0
- env: LINT=1
compiler: clang
os: linux
addons:
apt:
packages: ['clang-format-5.0']
sources: &sources
- llvm-toolchain-trusty-5.0

View File

@ -9,15 +9,19 @@ endif()
project(minetest)
set(PROJECT_NAME_CAPITALIZED "Minetest")
# Works only for cmake 3.1 and greater
set(CMAKE_CXX_STANDARD 11)
set(GCC_MINIMUM_VERSION "4.8")
set(CLANG_MINIMUM_VERSION "3.4")
# Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing
set(VERSION_MAJOR 0)
set(VERSION_MINOR 4)
set(VERSION_PATCH 16)
set(VERSION_MINOR 5)
set(VERSION_PATCH 0)
set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
# Change to false for releases
set(DEVELOPMENT_BUILD FALSE)
set(DEVELOPMENT_BUILD TRUE)
set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
if(VERSION_EXTRA)
@ -155,21 +159,26 @@ endif()
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/builtin" DESTINATION "${SHAREDIR}")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client" DESTINATION "${SHAREDIR}")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/clientmods" DESTINATION "${SHAREDIR}")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games" DESTINATION "${SHAREDIR}" PATTERN ".git*" EXCLUDE)
if(BUILD_CLIENT)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/textures/base/pack" DESTINATION "${SHAREDIR}/textures/base")
endif()
if(RUN_IN_PLACE)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/mods/mods_here.txt" DESTINATION "${SHAREDIR}/mods")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/texture_packs_here.txt" DESTINATION "${SHAREDIR}/textures")
endif()
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games" DESTINATION "${SHAREDIR}" PATTERN ".git*" EXCLUDE)
if(BUILD_CLIENT)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client/shaders" DESTINATION "${SHAREDIR}/client")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/textures/base/pack" DESTINATION "${SHAREDIR}/textures/base")
if(RUN_IN_PLACE)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/clientmods" DESTINATION "${SHAREDIR}")
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client/serverlist" DESTINATION "${SHAREDIR}/client")
endif()
endif()
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/fonts" DESTINATION "${SHAREDIR}")
install(FILES "README.txt" DESTINATION "${DOCDIR}")
install(FILES "README.md" DESTINATION "${DOCDIR}")
install(FILES "LICENSE.txt" DESTINATION "${DOCDIR}")
install(FILES "doc/lua_api.txt" DESTINATION "${DOCDIR}")
install(FILES "doc/menu_lua_api.txt" DESTINATION "${DOCDIR}")
install(FILES "doc/texture_packs.txt" DESTINATION "${DOCDIR}")
@ -196,6 +205,23 @@ find_package(GMP REQUIRED)
find_package(Json REQUIRED)
find_package(Lua REQUIRED)
# JsonCPP doesn't compile well on GCC 4.8
if(NOT ENABLE_SYSTEM_JSONCPP)
set(GCC_MINIMUM_VERSION "4.9")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${GCC_MINIMUM_VERSION}")
message(FATAL_ERROR "Insufficient gcc version, found ${CMAKE_CXX_COMPILER_VERSION}. "
"Version ${GCC_MINIMUM_VERSION} or higher is required.")
endif()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${CLANG_MINIMUM_VERSION}")
message(FATAL_ERROR "Insufficient clang version, found ${CMAKE_CXX_COMPILER_VERSION}. "
"Version ${CLANG_MINIMUM_VERSION} or higher is required.")
endif()
endif()
# Subdirectories
# Be sure to add all relevant definitions above this

160
LICENSE.txt Normal file
View File

@ -0,0 +1,160 @@
License of Minetest textures and sounds
---------------------------------------
This applies to textures and sounds contained in the main Minetest
distribution.
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/
Authors of media files
-----------------------
Everything not listed in here:
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
ShadowNinja:
textures/base/pack/smoke_puff.png
paramat:
textures/base/pack/menu_header.png
erlehmann:
misc/minetest-icon-24x24.png
misc/minetest-icon.ico
misc/minetest.svg
textures/base/pack/logo.png
JRottm
textures/base/pack/player_marker.png
License of Minetest source code
-------------------------------
Minetest
Copyright (C) 2010-2018 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Irrlicht
---------------
This program uses the Irrlicht Engine. http://irrlicht.sourceforge.net/
The Irrlicht Engine License
Copyright © 2002-2005 Nikolaus Gebhardt
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute
it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you
must not claim that you wrote the original software. If you use
this software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
JThread
---------------
This program uses the JThread library. License for JThread follows:
Copyright (c) 2000-2006 Jori Liesenborgs (jori.liesenborgs@gmail.com)
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
Lua
---------------
Lua is licensed under the terms of the MIT license reproduced below.
This means that Lua is free software and can be used for both academic
and commercial purposes at absolutely no cost.
For details and rationale, see https://www.lua.org/license.html .
Copyright (C) 1994-2008 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Fonts
---------------
Bitstream Vera Fonts Copyright:
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
a trademark of Bitstream, Inc.
Arimo - Apache License, version 2.0
Digitized data copyright (c) 2010-2012 Google Corporation.
Cousine - Apache License, version 2.0
Digitized data copyright (c) 2010-2012 Google Corporation.
DroidSansFallBackFull:
Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

444
README.md Normal file
View File

@ -0,0 +1,444 @@
Minetest
========
[![Build Status](https://travis-ci.org/minetest/minetest.svg?branch=master)](https://travis-ci.org/minetest/minetest)
[![Translation status](https://hosted.weblate.org/widgets/minetest/-/svg-badge.svg)](https://hosted.weblate.org/engage/minetest/?utm_source=widget)
[![License](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
An InfiniMiner/Minecraft inspired game.
Copyright (c) 2010-2018 Perttu Ahola <celeron55@gmail.com>
and contributors (see source file comments and the version control log)
In case you downloaded the source code:
---------------------------------------
If you downloaded the Minetest Engine source code in which this file is
contained, you probably want to download the [Minetest Game](https://github.com/minetest/minetest_game/)
project too. See its README.txt for more information.
Further documentation
----------------------
- Website: http://minetest.net/
- Wiki: http://wiki.minetest.net/
- Developer wiki: http://dev.minetest.net/
- Forum: http://forum.minetest.net/
- Github: https://github.com/minetest/minetest/
- doc/ directory of source distribution
This game is not finished
--------------------------
- Don't expect it to work as well as a finished game will.
- Please report any bugs. When doing that, debug.txt is useful.
Default controls
----------------
All controls are re-bindable using settings.
Some can be changes in the key config dialog in the settings tab.
| Button | Action |
|-------------------------------|----------------------------------------------------------------|
| Move mouse | Look around |
| W, A, S, D | Move |
| Space | Jump/move up |
| Shift | Sneak/move down |
| Q | Drop itemstack |
| Shift + Q | Drop single item |
| Left mouse button | Dig/punch/take item |
| Right mouse button | Place/use |
| Shift + right mouse button | Build (without using) |
| I | Inventory menu |
| Mouse wheel | Select item |
| 0-9 | Select item |
| Z | Zoom (needs zoom privilege) |
| T | Chat |
| / | Command |
| Esc | Pause menu/abort/exit (pauses only singleplayer game) |
| R | Enable/disable full range view |
| + | Increase view range |
| - | Decrease view range |
| K | Enable/disable fly mode (needs fly privilege) |
| J | Enable/disable fast mode (needs fast privilege) |
| H | Enable/disable noclip mode (needs noclip privilege) |
| E | Move fast in fast mode |
| F1 | Hide/show HUD |
| F2 | Hide/show chat |
| F3 | Disable/enable fog |
| F4 | Disable/enable camera update (Mapblocks are not updated anymore when disabled, disabled in release builds) |
| F5 | Cycle through debug info screens |
| F6 | Cycle through profiler info screens |
| F7 | Cycle through camera modes |
| F8 | Toggle cinematic mode |
| F9 | Cycle through minimap modes |
| Shift + F9 | Change minimap orientation |
| F10 | Show/hide console |
| F12 | Take screenshot |
Paths
-----
Locations:
* bin - Compiled binaries
* share - Distributed read-only data
* user - User-created modifiable data
Where each location is on each platform:
* Windows .zip / RUN_IN_PLACE source:
* bin = bin
* share = .
* user = .
* Linux installed:
* bin = /usr/bin
* share = /usr/share/minetest
* user = ~/.minetest
* macOS:
* bin = Contents/MacOS
* share = Contents/Resources
* user = Contents/User OR ~/Library/Application Support/minetest
Worlds can be found as separate folders in: user/worlds/
Configuration file:
-------------------
- Default location:
`user/minetest.conf`
- It is created by Minetest when it is ran the first time.
- A specific file can be specified on the command line:
`--config <path-to-file>`
- A run-in-place build will look for the configuration file in
`location_of_exe/../minetest.conf` and also `location_of_exe/../../minetest.conf`
Command-line options:
---------------------
- Use --help
Compiling
---------
### Compiling on GNU/Linux
#### Dependencies
| Dependency | Version | Commentary |
|------------|---------|------------|
| GCC | 4.9+ | Can be replaced with Clang 3.4+ |
| CMake | 2.6+ | |
| Irrlicht | 1.7.3+ | |
| SQLite3 | 3.0+ | |
| LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present |
| GMP | 5.0.0+ | Bundled mini-GMP is used if not present |
| JsonCPP | 1.0.0+ | Bundled JsonCPP is used if not present |
For Debian/Ubuntu:
$ sudo apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
For Fedora users:
$ sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
#### Download
You can install git for easily keeping your copy up to date.
If you dont want git, read below on how to get the source without git.
This is an example for installing git on Debian/Ubuntu:
$ sudo apt-get install git
For Fedora users:
$ sudo dnf install git
Download source (this is the URL to the latest of source repository, which might not work at all times) using git:
$ git clone --depth 1 https://github.com/minetest/minetest.git
$ cd minetest
Download minetest_game (otherwise only the "Minimal development test" game is available) using git:
$ git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
Download source, without using git:
$ wget https://github.com/minetest/minetest/archive/master.tar.gz
$ tar xf master.tar.gz
$ cd minetest-master
Download minetest_game, without using git:
$ cd games/
$ wget https://github.com/minetest/minetest_game/archive/master.tar.gz
$ tar xf master.tar.gz
$ mv minetest_game-master minetest_game
$ cd ..
#### Build
Build a version that runs directly from the source directory:
$ cmake . -DRUN_IN_PLACE=TRUE
$ make -j <number of processors>
Run it:
$ ./bin/minetest
- Use cmake . -LH to see all CMake options and their current state
- If you want to install it system-wide (or are making a distribution package),
you will want to use -DRUN_IN_PLACE=FALSE
- You can build a bare server by specifying -DBUILD_SERVER=TRUE
- You can disable the client build by specifying -DBUILD_CLIENT=FALSE
- You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
- Debug build is slower, but gives much more useful output in a debugger
- If you build a bare server, you don't need to have Irrlicht installed.
In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
### CMake options
General options:
BUILD_CLIENT - Build Minetest client
BUILD_SERVER - Build Minetest server
CMAKE_BUILD_TYPE - Type of build (Release vs. Debug)
Release - Release build
Debug - Debug build
SemiDebug - Partially optimized debug build
RelWithDebInfo - Release build with Debug information
MinSizeRel - Release build with -Os passed to compiler to make executable as small as possible
ENABLE_CURL - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
ENABLE_CURSES - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
ENABLE_FREETYPE - Build with FreeType2; Allows using TTF fonts
ENABLE_GETTEXT - Build with Gettext; Allows using translations
ENABLE_GLES - Search for Open GLES headers & libraries and use them
ENABLE_LEVELDB - Build with LevelDB; Enables use of LevelDB map backend
ENABLE_POSTGRESQL - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
ENABLE_REDIS - Build with libhiredis; Enables use of Redis map backend
ENABLE_SPATIAL - Build with LibSpatial; Speeds up AreaStores
ENABLE_SOUND - Build with OpenAL, libogg & libvorbis; in-game Sounds
ENABLE_LUAJIT - Build with LuaJIT (much faster than non-JIT Lua)
ENABLE_SYSTEM_GMP - Use GMP from system (much faster than bundled mini-gmp)
ENABLE_SYSTEM_JSONCPP - Use JsonCPP from system
RUN_IN_PLACE - Create a portable install (worlds, settings etc. in current directory)
USE_GPROF - Enable profiling using GProf
VERSION_EXTRA - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
Library specific options:
BZIP2_INCLUDE_DIR - Linux only; directory where bzlib.h is located
BZIP2_LIBRARY - Linux only; path to libbz2.a/libbz2.so
CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll
CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located
CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
EGL_INCLUDE_DIR - Only if building with GLES; directory that contains egl.h
EGL_LIBRARY - Only if building with GLES; path to libEGL.a/libEGL.so
FREETYPE_INCLUDE_DIR_freetype2 - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it
FREETYPE_INCLUDE_DIR_ft2build - Only if building with Freetype2; directory that contains ft2build.h
FREETYPE_LIBRARY - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib
FREETYPE_DLL - Only if building with Freetype2 on Windows; path to libfreetype.dll
GETTEXT_DLL - Only when building with Gettext on Windows; path to libintl3.dll
GETTEXT_ICONV_DLL - Only when building with Gettext on Windows; path to libiconv2.dll
GETTEXT_INCLUDE_DIR - Only when building with Gettext; directory that contains iconv.h
GETTEXT_LIBRARY - Only when building with Gettext on Windows; path to libintl.dll.a
GETTEXT_MSGFMT - Only when building with Gettext; path to msgfmt/msgfmt.exe
IRRLICHT_DLL - Only on Windows; path to Irrlicht.dll
IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h
IRRLICHT_LIBRARY - Path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a/Irrlicht.lib
LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h
LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll
PostgreSQL_INCLUDE_DIR - Only when building with PostgreSQL; directory that contains libpq-fe.h
POSTGRESQL_LIBRARY - Only when building with PostgreSQL; path to libpq.a/libpq.so
REDIS_INCLUDE_DIR - Only when building with Redis; directory that contains hiredis.h
REDIS_LIBRARY - Only when building with Redis; path to libhiredis.a/libhiredis.so
SPATIAL_INCLUDE_DIR - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located
LUA_LIBRARY - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
MINGWM10_DLL - Only if compiling with MinGW; path to mingwm10.dll
OGG_DLL - Only if building with sound on Windows; path to libogg.dll
OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h
OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
OPENAL_DLL - Only if building with sound on Windows; path to OpenAL32.dll
OPENAL_INCLUDE_DIR - Only if building with sound; directory where al.h is located
OPENAL_LIBRARY - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
OPENGLES2_INCLUDE_DIR - Only if building with GLES; directory that contains gl2.h
OPENGLES2_LIBRARY - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
SQLITE3_INCLUDE_DIR - Directory that contains sqlite3.h
SQLITE3_LIBRARY - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
VORBISFILE_DLL - Only if building with sound on Windows; path to libvorbisfile-3.dll
VORBISFILE_LIBRARY - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
VORBIS_DLL - Only if building with sound on Windows; path to libvorbis-0.dll
VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so
ZLIB_DLL - Only on Windows; path to zlib1.dll
ZLIBWAPI_DLL - Only on Windows; path to zlibwapi.dll
ZLIB_INCLUDE_DIR - Directory that contains zlib.h
ZLIB_LIBRARY - Path to libz.a/libz.so/zlibwapi.lib
### Compiling on Windows
* This section is outdated. In addition to what is described here:
* In addition to minetest, you need to download minetest_game.
* If you wish to have sound support, you need libogg, libvorbis and libopenal
* You need:
* CMake:
http://www.cmake.org/cmake/resources/software.html
* A compiler
* MinGW: http://www.mingw.org/
* or Visual Studio: http://msdn.microsoft.com/en-us/vstudio/default
* Irrlicht SDK 1.7:
http://irrlicht.sourceforge.net/downloads.html
* Zlib headers (zlib125.zip)
http://www.winimage.com/zLibDll/index.html
* Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
http://www.winimage.com/zLibDll/index.html
* SQLite3 headers and library
https://www.sqlite.org/download.html
* Optional: gettext library and tools:
http://gnuwin32.sourceforge.net/downlinks/gettext.php
* This is used for other UI languages. Feel free to leave it out.
* And, of course, Minetest:
http://minetest.net/download
* Steps:
* Select a directory called DIR hereafter in which you will operate.
* Make sure you have CMake and a compiler installed.
* Download all the other stuff to DIR and extract them into there.
("extract here", not "extract to packagename/")
* NOTE: zlib125dll.zip needs to be extracted into zlib125dll
* NOTE: You need to extract sqlite3.h & sqlite3ext.h from sqlite3 source
and sqlite3.dll & sqlite3.def from sqlite3 precompiled binaries
into "sqlite3" directory, and generate sqlite3.lib using command
"LIB /DEF:sqlite3.def /OUT:sqlite3.lib"
* All those packages contain a nice base directory in them, which
should end up being the direct subdirectories of DIR.
* You will end up with a directory structure like this (+=dir, -=file):
-----------------
+ DIR
* zlib-1.2.5.tar.gz
* zlib125dll.zip
* irrlicht-1.8.3.zip
* sqlite-amalgamation-3130000.zip (SQLite3 headers)
* sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
* 110214175330.zip (or whatever, this is the minetest source)
+ zlib-1.2.5
* zlib.h
+ win32
...
+ zlib125dll
* readme.txt
+ dll32
...
+ irrlicht-1.8.3
+ lib
+ include
...
+ sqlite3
sqlite3.h
sqlite3ext.h
sqlite3.lib
sqlite3.dll
+ gettext (optional)
+bin
+include
+lib
+ minetest
+ src
+ doc
* CMakeLists.txt
...
-----------------
* Start up the CMake GUI
* Select "Browse Source..." and select DIR/minetest
* Now, if using MSVC:
* Select "Browse Build..." and select DIR/minetest-build
* Else if using MinGW:
* Select "Browse Build..." and select DIR/minetest
* Select "Configure"
* Select your compiler
* It will warn about missing stuff, ignore that at this point. (later don't)
* Make sure the configuration is as follows
(note that the versions may differ for you):
BUILD_CLIENT [X]
BUILD_SERVER [ ]
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX DIR/minetest-install
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
RUN_IN_PLACE [X]
WARN_ALL [ ]
ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
GETTEXT_BIN_DIR DIR/gettext/bin
GETTEXT_INCLUDE_DIR DIR/gettext/include
GETTEXT_LIBRARIES DIR/gettext/lib/intl.lib
GETTEXT_MSGFMT DIR/gettext/bin/msgfmt
* If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
SQLITE3_LIBRARY manually.
* If you want to build 64-bit minetest, you will need to build 64-bit version
of irrlicht engine manually, as only 32-bit pre-built library is provided.
* Hit "Configure"
* Hit "Configure" once again 8)
* If something is still coloured red, you have a problem.
* Hit "Generate"
If using MSVC:
* Open the generated minetest.sln
* The project defaults to the "Debug" configuration. Make very sure to
select "Release", unless you want to debug some stuff (it's slower
and might not even work at all)
* Build the ALL_BUILD project
* Build the INSTALL project
* You should now have a working game with the executable in
DIR/minetest-install/bin/minetest.exe
* Additionally you may create a zip package by building the PACKAGE
project.
If using MinGW:
* Using the command line, browse to the build directory and run 'make'
(or mingw32-make or whatever it happens to be)
* You may need to copy some of the downloaded DLLs into bin/, see what
running the produced executable tells you it doesn't have.
* You should now have a working game with the executable in
DIR/minetest/bin/minetest.exe
### Bat script to build Windows releases of Minetest
This is how we build Windows releases.
set sourcedir=%CD%
set installpath="C:\tmp\minetest_install"
set irrlichtpath="C:\tmp\irrlicht-1.7.2"
set builddir=%sourcedir%\bvc10
mkdir %builddir%
pushd %builddir%
cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
popd
echo Finished.
exit /b 0
:fail
popd
echo Failed.
exit /b 1
Version scheme
--------------
Minetest doesn't follow semver. Instead, we do something roughly similar to 0.major.minor.
Since 0.5.0-dev and 0.4.17-dev, the dev notation refers to the next release,
ie: 0.5.0-dev is the development version leading to 0.5.0.
Prior to that, we used oldversion-dev.

View File

@ -1,557 +0,0 @@
Minetest
========
An InfiniMiner/Minecraft inspired game.
Copyright (c) 2010-2017 Perttu Ahola <celeron55@gmail.com>
and contributors (see source file comments and the version control log)
In case you downloaded the source code:
---------------------------------------
If you downloaded the Minetest Engine source code in which this file is
contained, you probably want to download the minetest_game project too:
https://github.com/minetest/minetest_game/
See the README.txt in it.
Further documentation
----------------------
- Website: http://minetest.net/
- Wiki: http://wiki.minetest.net/
- Developer wiki: http://dev.minetest.net/
- Forum: http://forum.minetest.net/
- Github: https://github.com/minetest/minetest/
- doc/ directory of source distribution
This game is not finished
--------------------------
- Don't expect it to work as well as a finished game will.
- Please report any bugs. When doing that, debug.txt is useful.
Default controls
-----------------
- Move mouse: Look around
- W, A, S, D: Move
- Space: Jump/move up
- Shift: Sneak/move down
- Q: Drop itemstack
- Shift + Q: Drop single item
- Left mouse button: Dig/punch/take item
- Right mouse button: Place/use
- Shift + right mouse button: Build (without using)
- I: Inventory menu
- Mouse wheel: Select item
- 0-9: Select item
- Z: Zoom (needs zoom privilege)
- T: Chat
- /: Command
- Esc: Pause menu/abort/exit (pauses only singleplayer game)
- R: Enable/disable full range view
- +: Increase view range
- -: Decrease view range
- K: Enable/disable fly mode (needs fly privilege)
- J: Enable/disable fast mode (needs fast privilege)
- H: Enable/disable noclip mode (needs noclip privilege)
- F1: Hide/show HUD
- F2: Hide/show chat
- F3: Disable/enable fog
- F4: Disable/enable camera update (Mapblocks are not updated anymore when disabled, disabled in release builds)
- F5: Cycle through debug info screens
- F6: Cycle through profiler info screens
- F7: Cycle through camera modes
- F8: Toggle cinematic mode
- F9: Cycle through minimap modes
- Shift + F9: Change minimap orientation
- F10: Show/hide console
- F12: Take screenshot
- P: Write stack traces into debug.txt
Most controls are settable in the configuration file, see the section below.
Paths
------
$bin - Compiled binaries
$share - Distributed read-only data
$user - User-created modifiable data
Windows .zip / RUN_IN_PLACE source:
$bin = bin
$share = .
$user = .
Linux installed:
$bin = /usr/bin
$share = /usr/share/minetest
$user = ~/.minetest
macOS:
$bin = Contents/MacOS
$share = Contents/Resources
$user = Contents/User OR ~/Library/Application Support/minetest
World directory
----------------
- Worlds can be found as separate folders in:
$user/worlds/
Configuration file:
-------------------
- Default location:
$user/minetest.conf
- It is created by Minetest when it is ran the first time.
- A specific file can be specified on the command line:
--config <path-to-file>
- A run-in-place build will look for the configuration file in
$location_of_exe/../minetest.conf and also $location_of_exe/../../minetest.conf
Command-line options:
---------------------
- Use --help
Compiling on GNU/Linux:
-----------------------
Install dependencies. Here's an example for Debian/Ubuntu:
$ sudo apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
For Fedora users:
$ sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
You can install git for easily keeping your copy up to date.
If you dont want git, read below on how to get the source without git.
This is an example for installing git on Debian/Ubuntu:
$ sudo apt-get install git
For Fedora users:
$ sudo dnf install git
Download source (this is the URL to the latest of source repository, which might not work at all times) using git:
$ git clone --depth 1 https://github.com/minetest/minetest.git
$ cd minetest
Download minetest_game (otherwise only the "Minimal development test" game is available) using git:
$ git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
Download source, without using git:
$ wget https://github.com/minetest/minetest/archive/master.tar.gz
$ tar xf master.tar.gz
$ cd minetest-master
Download minetest_game, without using git:
$ cd games/
$ wget https://github.com/minetest/minetest_game/archive/master.tar.gz
$ tar xf master.tar.gz
$ mv minetest_game-master minetest_game
$ cd ..
Build a version that runs directly from the source directory:
$ cmake . -DRUN_IN_PLACE=TRUE
$ make -j <number of processors>
Run it:
$ ./bin/minetest
- Use cmake . -LH to see all CMake options and their current state
- If you want to install it system-wide (or are making a distribution package),
you will want to use -DRUN_IN_PLACE=FALSE
- You can build a bare server by specifying -DBUILD_SERVER=TRUE
- You can disable the client build by specifying -DBUILD_CLIENT=FALSE
- You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
- Debug build is slower, but gives much more useful output in a debugger
- If you build a bare server, you don't need to have Irrlicht installed.
In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
CMake options
-------------
General options:
BUILD_CLIENT - Build Minetest client
BUILD_SERVER - Build Minetest server
CMAKE_BUILD_TYPE - Type of build (Release vs. Debug)
Release - Release build
Debug - Debug build
SemiDebug - Partially optimized debug build
RelWithDebInfo - Release build with Debug information
MinSizeRel - Release build with -Os passed to compiler to make executable as small as possible
ENABLE_CURL - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
ENABLE_CURSES - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
ENABLE_FREETYPE - Build with FreeType2; Allows using TTF fonts
ENABLE_GETTEXT - Build with Gettext; Allows using translations
ENABLE_GLES - Search for Open GLES headers & libraries and use them
ENABLE_LEVELDB - Build with LevelDB; Enables use of LevelDB map backend
ENABLE_POSTGRESQL - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
ENABLE_REDIS - Build with libhiredis; Enables use of Redis map backend
ENABLE_SPATIAL - Build with LibSpatial; Speeds up AreaStores
ENABLE_SOUND - Build with OpenAL, libogg & libvorbis; in-game Sounds
ENABLE_LUAJIT - Build with LuaJIT (much faster than non-JIT Lua)
ENABLE_SYSTEM_GMP - Use GMP from system (much faster than bundled mini-gmp)
RUN_IN_PLACE - Create a portable install (worlds, settings etc. in current directory)
USE_GPROF - Enable profiling using GProf
VERSION_EXTRA - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
Library specific options:
BZIP2_INCLUDE_DIR - Linux only; directory where bzlib.h is located
BZIP2_LIBRARY - Linux only; path to libbz2.a/libbz2.so
CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll
CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located
CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
EGL_INCLUDE_DIR - Only if building with GLES; directory that contains egl.h
EGL_LIBRARY - Only if building with GLES; path to libEGL.a/libEGL.so
FREETYPE_INCLUDE_DIR_freetype2 - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it
FREETYPE_INCLUDE_DIR_ft2build - Only if building with Freetype2; directory that contains ft2build.h
FREETYPE_LIBRARY - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib
FREETYPE_DLL - Only if building with Freetype2 on Windows; path to libfreetype.dll
GETTEXT_DLL - Only when building with Gettext on Windows; path to libintl3.dll
GETTEXT_ICONV_DLL - Only when building with Gettext on Windows; path to libiconv2.dll
GETTEXT_INCLUDE_DIR - Only when building with Gettext; directory that contains iconv.h
GETTEXT_LIBRARY - Only when building with Gettext on Windows; path to libintl.dll.a
GETTEXT_MSGFMT - Only when building with Gettext; path to msgfmt/msgfmt.exe
IRRLICHT_DLL - Only on Windows; path to Irrlicht.dll
IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h
IRRLICHT_LIBRARY - Path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a/Irrlicht.lib
LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h
LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll
PostgreSQL_INCLUDE_DIR - Only when building with PostgreSQL; directory that contains libpq-fe.h
POSTGRESQL_LIBRARY - Only when building with PostgreSQL; path to libpq.a/libpq.so
REDIS_INCLUDE_DIR - Only when building with Redis; directory that contains hiredis.h
REDIS_LIBRARY - Only when building with Redis; path to libhiredis.a/libhiredis.so
SPATIAL_INCLUDE_DIR - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located
LUA_LIBRARY - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
MINGWM10_DLL - Only if compiling with MinGW; path to mingwm10.dll
OGG_DLL - Only if building with sound on Windows; path to libogg.dll
OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h
OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
OPENAL_DLL - Only if building with sound on Windows; path to OpenAL32.dll
OPENAL_INCLUDE_DIR - Only if building with sound; directory where al.h is located
OPENAL_LIBRARY - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
OPENGLES2_INCLUDE_DIR - Only if building with GLES; directory that contains gl2.h
OPENGLES2_LIBRARY - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
SQLITE3_INCLUDE_DIR - Directory that contains sqlite3.h
SQLITE3_LIBRARY - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
VORBISFILE_DLL - Only if building with sound on Windows; path to libvorbisfile-3.dll
VORBISFILE_LIBRARY - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
VORBIS_DLL - Only if building with sound on Windows; path to libvorbis-0.dll
VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so
ZLIB_DLL - Only on Windows; path to zlib1.dll
ZLIBWAPI_DLL - Only on Windows; path to zlibwapi.dll
ZLIB_INCLUDE_DIR - Directory that contains zlib.h
ZLIB_LIBRARY - Path to libz.a/libz.so/zlibwapi.lib
Compiling on Windows:
---------------------
- This section is outdated. In addition to what is described here:
- In addition to minetest, you need to download minetest_game.
- If you wish to have sound support, you need libogg, libvorbis and libopenal
- You need:
* CMake:
http://www.cmake.org/cmake/resources/software.html
* MinGW or Visual Studio
http://www.mingw.org/
http://msdn.microsoft.com/en-us/vstudio/default
* Irrlicht SDK 1.7:
http://irrlicht.sourceforge.net/downloads.html
* Zlib headers (zlib125.zip)
http://www.winimage.com/zLibDll/index.html
* Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
http://www.winimage.com/zLibDll/index.html
* SQLite3 headers and library
https://www.sqlite.org/download.html
* Optional: gettext library and tools:
http://gnuwin32.sourceforge.net/downlinks/gettext.php
- This is used for other UI languages. Feel free to leave it out.
* And, of course, Minetest:
http://minetest.net/download
- Steps:
- Select a directory called DIR hereafter in which you will operate.
- Make sure you have CMake and a compiler installed.
- Download all the other stuff to DIR and extract them into there.
("extract here", not "extract to packagename/")
NOTE: zlib125dll.zip needs to be extracted into zlib125dll
NOTE: You need to extract sqlite3.h & sqlite3ext.h from sqlite3 source
and sqlite3.dll & sqlite3.def from sqlite3 precompiled binaries
into "sqlite3" directory, and generate sqlite3.lib using command
"LIB /DEF:sqlite3.def /OUT:sqlite3.lib"
- All those packages contain a nice base directory in them, which
should end up being the direct subdirectories of DIR.
- You will end up with a directory structure like this (+=dir, -=file):
-----------------
+ DIR
- zlib-1.2.5.tar.gz
- zlib125dll.zip
- irrlicht-1.8.3.zip
- sqlite-amalgamation-3130000.zip (SQLite3 headers)
- sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
- 110214175330.zip (or whatever, this is the minetest source)
+ zlib-1.2.5
- zlib.h
+ win32
...
+ zlib125dll
- readme.txt
+ dll32
...
+ irrlicht-1.8.3
+ lib
+ include
...
+ sqlite3
sqlite3.h
sqlite3ext.h
sqlite3.lib
sqlite3.dll
+ gettext (optional)
+bin
+include
+lib
+ minetest
+ src
+ doc
- CMakeLists.txt
...
-----------------
- Start up the CMake GUI
- Select "Browse Source..." and select DIR/minetest
- Now, if using MSVC:
- Select "Browse Build..." and select DIR/minetest-build
- Else if using MinGW:
- Select "Browse Build..." and select DIR/minetest
- Select "Configure"
- Select your compiler
- It will warn about missing stuff, ignore that at this point. (later don't)
- Make sure the configuration is as follows
(note that the versions may differ for you):
-----------------
BUILD_CLIENT [X]
BUILD_SERVER [ ]
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX DIR/minetest-install
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
RUN_IN_PLACE [X]
WARN_ALL [ ]
ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
GETTEXT_BIN_DIR DIR/gettext/bin
GETTEXT_INCLUDE_DIR DIR/gettext/include
GETTEXT_LIBRARIES DIR/gettext/lib/intl.lib
GETTEXT_MSGFMT DIR/gettext/bin/msgfmt
-----------------
- If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
SQLITE3_LIBRARY manually.
- If you want to build 64-bit minetest, you will need to build 64-bit version
of irrlicht engine manually, as only 32-bit pre-built library is provided.
- Hit "Configure"
- Hit "Configure" once again 8)
- If something is still coloured red, you have a problem.
- Hit "Generate"
If using MSVC:
- Open the generated minetest.sln
- The project defaults to the "Debug" configuration. Make very sure to
select "Release", unless you want to debug some stuff (it's slower
and might not even work at all)
- Build the ALL_BUILD project
- Build the INSTALL project
- You should now have a working game with the executable in
DIR/minetest-install/bin/minetest.exe
- Additionally you may create a zip package by building the PACKAGE
project.
If using MinGW:
- Using the command line, browse to the build directory and run 'make'
(or mingw32-make or whatever it happens to be)
- You may need to copy some of the downloaded DLLs into bin/, see what
running the produced executable tells you it doesn't have.
- You should now have a working game with the executable in
DIR/minetest/bin/minetest.exe
Windows releases of minetest are built using a bat script like this:
--------------------------------------------------------------------
set sourcedir=%CD%
set installpath="C:\tmp\minetest_install"
set irrlichtpath="C:\tmp\irrlicht-1.7.2"
set builddir=%sourcedir%\bvc10
mkdir %builddir%
pushd %builddir%
cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
popd
echo Finished.
exit /b 0
:fail
popd
echo Failed.
exit /b 1
License of Minetest textures and sounds
---------------------------------------
This applies to textures and sounds contained in the main Minetest
distribution.
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/
Authors of media files
-----------------------
Everything not listed in here:
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
ShadowNinja:
textures/base/pack/smoke_puff.png
Paramat:
textures/base/pack/menu_header.png
erlehmann:
misc/minetest-icon-24x24.png
misc/minetest-icon.ico
misc/minetest.svg
textures/base/pack/logo.png
License of Minetest source code
-------------------------------
Minetest
Copyright (C) 2010-2017 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Irrlicht
---------------
This program uses the Irrlicht Engine. http://irrlicht.sourceforge.net/
The Irrlicht Engine License
Copyright © 2002-2005 Nikolaus Gebhardt
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute
it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you
must not claim that you wrote the original software. If you use
this software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
JThread
---------------
This program uses the JThread library. License for JThread follows:
Copyright (c) 2000-2006 Jori Liesenborgs (jori.liesenborgs@gmail.com)
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
Lua
---------------
Lua is licensed under the terms of the MIT license reproduced below.
This means that Lua is free software and can be used for both academic
and commercial purposes at absolutely no cost.
For details and rationale, see https://www.lua.org/license.html .
Copyright (C) 1994-2008 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Fonts
---------------
Bitstream Vera Fonts Copyright:
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
a trademark of Bitstream, Inc.
Arimo - Apache License, version 2.0
Digitized data copyright (c) 2010-2012 Google Corporation.
Cousine - Apache License, version 2.0
Digitized data copyright (c) 2010-2012 Google Corporation.
DroidSansFallBackFull:
Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -6,7 +6,8 @@ OS := $(shell uname)
# GPROF = 1
# build for build platform
APP_PLATFORM = android-9
API = 14
APP_PLATFORM = android-$(API)
ANDR_ROOT = $(shell pwd)
PROJ_ROOT = $(shell realpath $(ANDR_ROOT)/../..)
@ -30,7 +31,7 @@ TARGET_HOST = arm-linux
TARGET_ABI = armeabi-v7a
TARGET_LIBDIR = armeabi-v7a
TARGET_TOOLCHAIN = arm-linux-androideabi-
TARGET_CFLAGS_ADDON = -mfloat-abi=softfp -mfpu=vfpv3 -O3
TARGET_CFLAGS_ADDON = -mfloat-abi=softfp -mfpu=vfpv3 -O3 -D__ANDROID_API__=$(API)
TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON)
TARGET_ARCH = armv7
CROSS_PREFIX = arm-linux-androideabi-
@ -131,7 +132,6 @@ SQLITE3_URL = https://www.sqlite.org/2017/$(SQLITE3_FOLDER).zip
ANDROID_SDK = $(shell grep '^sdk\.dir' local.properties | sed 's/^.*=[[:space:]]*//')
ANDROID_NDK = $(shell grep '^ndk\.dir' local.properties | sed 's/^.*=[[:space:]]*//')
NDK_MODULE_PATH = $(ANDROID_NDK)/toolchains
#use interim target variable to switch leveldb on or off
ifeq ($(HAVE_LEVELDB),1)
@ -217,14 +217,10 @@ $(OPENAL_LIB): $(OPENAL_TIMESTAMP)
if [ $$REFRESH -ne 0 ] ; then \
echo "changed timestamp for openal detected building..."; \
cd ${OPENAL_DIR}; \
export APP_PLATFORM=${APP_PLATFORM}; \
export TARGET_ABI=${TARGET_ABI}; \
${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \
NDK_MODULE_PATH=${NDK_MODULE_PATH} APP_ABI=${TARGET_ABI} \
TARGET_ARCH_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \
PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \
PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \
TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \
TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \
TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \
NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Deps.mk || exit 1; \
touch ${OPENAL_TIMESTAMP}; \
touch ${OPENAL_TIMESTAMP_INT}; \
else \
@ -248,7 +244,6 @@ ogg_download :
git clone ${OGG_URL_GIT}|| exit 1; \
cd libvorbis-libogg-android ; \
patch -p1 < ${ANDR_ROOT}/patches/libvorbis-libogg-fpu.patch || exit 1; \
sed -i 's-:-?-' jni/Application.mk; \
fi
ogg : $(OGG_LIB)
@ -265,14 +260,10 @@ $(OGG_LIB): $(OGG_TIMESTAMP)
if [ $$REFRESH -ne 0 ] ; then \
echo "changed timestamp for ogg detected building..."; \
cd ${OGG_DIR}; \
export APP_PLATFORM=${APP_PLATFORM}; \
export TARGET_ABI=${TARGET_ABI}; \
${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \
NDK_MODULE_PATH=${NDK_MODULE_PATH} \
APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \
PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \
PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \
TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \
TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \
TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \
NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Deps.mk || exit 1; \
touch ${OGG_TIMESTAMP}; \
touch ${OGG_TIMESTAMP_INT}; \
else \
@ -317,7 +308,7 @@ $(OPENSSL_LIB): $(OPENSSL_TIMESTAMP) $(GMP_LIB)
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-openssl; \
${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \
--platform=android-9 \
--platform=${APP_PLATFORM} \
--install-dir=$${TOOLCHAIN}; \
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
CC=${CROSS_PREFIX}gcc ./Configure enable-gmp -DL_ENDIAN -I${GMP_DIR} -L${GMP_DIR}/usr/lib android-${TARGET_ARCH};\
@ -368,7 +359,7 @@ $(LEVELDB_LIB): $(LEVELDB_TIMESTAMP)
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-leveldb; \
${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \
--platform=android-9 \
--platform=${APP_PLATFORM} \
--install-dir=$${TOOLCHAIN}; \
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
export CC=${CROSS_PREFIX}gcc; \
@ -420,14 +411,10 @@ $(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP)
mkdir -p ${FREETYPE_DIR}; \
echo "changed timestamp for freetype detected building..."; \
cd ${FREETYPE_DIR}/Android/jni; \
export APP_PLATFORM=${APP_PLATFORM}; \
export TARGET_ABI=${TARGET_ABI}; \
${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \
NDK_MODULE_PATH=${NDK_MODULE_PATH} \
APP_PLATFORM=${APP_PLATFORM} APP_ABI=${TARGET_ABI} \
PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \
PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \
TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \
TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \
TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \
NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Deps.mk || exit 1; \
touch ${FREETYPE_TIMESTAMP}; \
touch ${FREETYPE_TIMESTAMP_INT}; \
else \
@ -478,9 +465,10 @@ $(ICONV_LIB) : $(ICONV_TIMESTAMP)
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-iconv; \
${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \
--platform=android-9 \
--platform=${APP_PLATFORM} \
--install-dir=$${TOOLCHAIN}; \
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \
export CC=${CROSS_PREFIX}gcc; \
export CXX=${CROSS_PREFIX}g++; \
export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \
@ -513,6 +501,7 @@ irrlicht_download :
patch -p1 < ${ANDR_ROOT}/patches/irrlicht-touchcount.patch || exit 1; \
patch -p1 < ${ANDR_ROOT}/patches/irrlicht-back_button.patch || exit 1; \
patch -p1 < ${ANDR_ROOT}/patches/irrlicht-texturehack.patch || exit 1; \
patch -p1 < ${ANDR_ROOT}/patches/irrlicht-native_activity.patch || exit 1; \
fi
$(IRRLICHT_TIMESTAMP) : irrlicht_download
@ -538,14 +527,10 @@ $(IRRLICHT_LIB): $(IRRLICHT_TIMESTAMP) $(FREETYPE_LIB)
mkdir -p ${IRRLICHT_DIR}; \
echo "changed timestamp for irrlicht detected building..."; \
cd deps/irrlicht/source/Irrlicht/Android; \
export APP_PLATFORM=${APP_PLATFORM}; \
export TARGET_ABI=${TARGET_ABI}; \
${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \
NDK_MODULE_PATH=${NDK_MODULE_PATH} \
APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \
PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \
PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \
TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \
TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \
TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \
NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Irrlicht.mk || exit 1; \
touch ${IRRLICHT_TIMESTAMP}; \
touch ${IRRLICHT_TIMESTAMP_INT}; \
else \
@ -593,7 +578,7 @@ $(CURL_LIB): $(CURL_TIMESTAMP) $(OPENSSL_LIB)
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-curl; \
${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \
--platform=android-9 \
--platform=${APP_PLATFORM} \
--install-dir=$${TOOLCHAIN}; \
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
export CC=${CROSS_PREFIX}gcc; \
@ -653,7 +638,7 @@ $(GMP_LIB): $(GMP_TIMESTAMP)
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-gmp; \
${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \
--platform=android-9 \
--platform=${APP_PLATFORM} \
--install-dir=$${TOOLCHAIN}; \
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
export CC=${CROSS_PREFIX}gcc; \
@ -767,15 +752,11 @@ clean_assets :
apk: local.properties assets $(ICONV_LIB) $(IRRLICHT_LIB) $(CURL_LIB) $(GMP_LIB) $(LEVELDB_TARGET) \
$(OPENAL_LIB) $(OGG_LIB) prep_srcdir $(ANDR_ROOT)/jni/src/android_version.h \
$(ANDR_ROOT)/jni/src/android_version_githash.h sqlite3_download
+ @${ANDROID_NDK}/ndk-build NDK_MODULE_PATH=${NDK_MODULE_PATH} \
GPROF=${GPROF} APP_ABI=${TARGET_ABI} HAVE_LEVELDB=${HAVE_LEVELDB} \
APP_PLATFORM=${APP_PLATFORM} \
PRIVATE_CC=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}gcc \
PRIVATE_CXX=${NDK_MODULE_PATH}/${TARGET_TOOLCHAIN}${COMPILER_VERSION}/prebuilt/linux-x86_64/bin/${TARGET_TOOLCHAIN}g++ \
TARGET_LIBDIR=${TARGET_LIBDIR} \
TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \
TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \
TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \
+ @export TARGET_LIBDIR=${TARGET_LIBDIR}; \
export HAVE_LEVELDB=${HAVE_LEVELDB}; \
export APP_PLATFORM=${APP_PLATFORM}; \
export TARGET_ABI=${TARGET_ABI}; \
${ANDROID_NDK}/ndk-build || exit 1; \
if [ ! -e ${APP_ROOT}/jniLibs ]; then \
ln -s ${ANDR_ROOT}/libs ${APP_ROOT}/jniLibs || exit 1; \
fi; \

View File

@ -16,8 +16,8 @@ android {
defaultConfig {
versionCode 17
versionName "${System.env.VERSION_STR}.${versionCode}"
minSdkVersion 9
targetSdkVersion 9
minSdkVersion 14
targetSdkVersion 14
applicationId "net.minetest.minetest"
manifestPlaceholders = [ package: "net.minetest.minetest", project: project.name ]
}

View File

@ -114,7 +114,7 @@ LOCAL_C_INCLUDES := \
LOCAL_SRC_FILES := \
jni/src/ban.cpp \
jni/src/camera.cpp \
jni/src/cavegen.cpp \
jni/src/mapgen/cavegen.cpp \
jni/src/chat.cpp \
jni/src/client.cpp \
jni/src/clientenvironment.cpp \
@ -124,7 +124,6 @@ LOCAL_SRC_FILES := \
jni/src/clientobject.cpp \
jni/src/clouds.cpp \
jni/src/collision.cpp \
jni/src/content_abm.cpp \
jni/src/content_cao.cpp \
jni/src/content_cso.cpp \
jni/src/content_mapblock.cpp \
@ -133,14 +132,13 @@ LOCAL_SRC_FILES := \
jni/src/content_sao.cpp \
jni/src/convert_json.cpp \
jni/src/craftdef.cpp \
jni/src/database-dummy.cpp \
jni/src/database-files.cpp \
jni/src/database-sqlite3.cpp \
jni/src/database.cpp \
jni/src/database/database-dummy.cpp \
jni/src/database/database-files.cpp \
jni/src/database/database-sqlite3.cpp \
jni/src/database/database.cpp \
jni/src/debug.cpp \
jni/src/defaultsettings.cpp \
jni/src/drawscene.cpp \
jni/src/dungeongen.cpp \
jni/src/mapgen/dungeongen.cpp \
jni/src/emerge.cpp \
jni/src/environment.cpp \
jni/src/face_position_cache.cpp \
@ -150,19 +148,21 @@ LOCAL_SRC_FILES := \
jni/src/game.cpp \
jni/src/genericobject.cpp \
jni/src/gettext.cpp \
jni/src/guiChatConsole.cpp \
jni/src/guiEngine.cpp \
jni/src/guiFileSelectMenu.cpp \
jni/src/guiFormSpecMenu.cpp \
jni/src/guiKeyChangeMenu.cpp \
jni/src/guiPasswordChange.cpp \
jni/src/guiTable.cpp \
jni/src/gui/guiChatConsole.cpp \
jni/src/gui/guiEditBoxWithScrollbar.cpp \
jni/src/gui/guiEngine.cpp \
jni/src/gui/guiPathSelectMenu.cpp \
jni/src/gui/guiFormSpecMenu.cpp \
jni/src/gui/guiKeyChangeMenu.cpp \
jni/src/gui/guiPasswordChange.cpp \
jni/src/gui/guiTable.cpp \
jni/src/guiscalingfilter.cpp \
jni/src/guiVolumeChange.cpp \
jni/src/gui/guiVolumeChange.cpp \
jni/src/gui/profilergraph.cpp \
jni/src/httpfetch.cpp \
jni/src/hud.cpp \
jni/src/imagefilters.cpp \
jni/src/intlGUIEditBox.cpp \
jni/src/gui/intlGUIEditBox.cpp \
jni/src/inventory.cpp \
jni/src/inventorymanager.cpp \
jni/src/itemdef.cpp \
@ -176,23 +176,24 @@ LOCAL_SRC_FILES := \
jni/src/map_settings_manager.cpp \
jni/src/mapblock.cpp \
jni/src/mapblock_mesh.cpp \
jni/src/mapgen.cpp \
jni/src/mapgen_flat.cpp \
jni/src/mapgen_fractal.cpp \
jni/src/mapgen_singlenode.cpp \
jni/src/mapgen_v5.cpp \
jni/src/mapgen_v6.cpp \
jni/src/mapgen_v7.cpp \
jni/src/mapgen_valleys.cpp \
jni/src/mapgen/mapgen.cpp \
jni/src/mapgen/mapgen_carpathian.cpp \
jni/src/mapgen/mapgen_flat.cpp \
jni/src/mapgen/mapgen_fractal.cpp \
jni/src/mapgen/mapgen_singlenode.cpp \
jni/src/mapgen/mapgen_v5.cpp \
jni/src/mapgen/mapgen_v6.cpp \
jni/src/mapgen/mapgen_v7.cpp \
jni/src/mapgen/mapgen_valleys.cpp \
jni/src/mapnode.cpp \
jni/src/mapsector.cpp \
jni/src/mesh.cpp \
jni/src/mesh_generator_thread.cpp \
jni/src/metadata.cpp \
jni/src/mg_biome.cpp \
jni/src/mg_decoration.cpp \
jni/src/mg_ore.cpp \
jni/src/mg_schematic.cpp \
jni/src/mapgen/mg_biome.cpp \
jni/src/mapgen/mg_decoration.cpp \
jni/src/mapgen/mg_ore.cpp \
jni/src/mapgen/mg_schematic.cpp \
jni/src/minimap.cpp \
jni/src/mods.cpp \
jni/src/nameidmapping.cpp \
@ -228,7 +229,7 @@ LOCAL_SRC_FILES := \
jni/src/subgame.cpp \
jni/src/tileanimation.cpp \
jni/src/tool.cpp \
jni/src/treegen.cpp \
jni/src/mapgen/treegen.cpp \
jni/src/version.cpp \
jni/src/voxel.cpp \
jni/src/voxelalgorithms.cpp \
@ -270,7 +271,9 @@ LOCAL_SRC_FILES := \
jni/src/settings.cpp \
jni/src/wieldmesh.cpp \
jni/src/client/clientlauncher.cpp \
jni/src/client/hud.cpp \
jni/src/client/inputhandler.cpp \
jni/src/client/renderingengine.cpp \
jni/src/client/tile.cpp \
jni/src/client/joystick_controller.cpp \
jni/src/irrlicht_changes/static_text.cpp
@ -324,6 +327,7 @@ LOCAL_SRC_FILES += \
jni/src/script/lua_api/l_noise.cpp \
jni/src/script/lua_api/l_object.cpp \
jni/src/script/lua_api/l_particles.cpp \
jni/src/script/lua_api/l_particles_local.cpp\
jni/src/script/lua_api/l_rollback.cpp \
jni/src/script/lua_api/l_server.cpp \
jni/src/script/lua_api/l_settings.cpp \

View File

@ -1,9 +1,9 @@
# NDK_TOOLCHAIN_VERSION := clang3.8
APP_PLATFORM := android-9
APP_MODULES := minetest
APP_PLATFORM := ${APP_PLATFORM}
APP_ABI := ${TARGET_ABI}
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION := 4.9
APP_DEPRECATED_HEADERS := true
APP_MODULES := minetest
APP_CPPFLAGS += -fexceptions
APP_GNUSTL_FORCE_CPP_FEATURES := rtti

View File

@ -0,0 +1,8 @@
APP_PLATFORM := ${APP_PLATFORM}
APP_ABI := ${TARGET_ABI}
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION := 4.9
APP_DEPRECATED_HEADERS := true
APP_CLAFGS += -mfloat-abi=softfp -mfpu=vfpv3 -O3
APP_CPPFLAGS += -fexceptions

View File

@ -0,0 +1,9 @@
APP_PLATFORM := ${APP_PLATFORM}
APP_ABI := ${TARGET_ABI}
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION := 4.9
APP_DEPRECATED_HEADERS := true
APP_MODULES := Irrlicht
APP_CLAFGS += -mfloat-abi=softfp -mfpu=vfpv3 -O3
APP_CPPFLAGS += -fexceptions

View File

@ -0,0 +1,12 @@
--- irrlicht/source/Irrlicht/CEGLManager.cpp.orig 2017-11-15 18:19:58.467279274 +0000
+++ irrlicht/source/Irrlicht/CEGLManager.cpp 2017-11-15 18:19:54.175279087 +0000
@@ -8,6 +8,9 @@
#include "irrString.h"
#include "os.h"
+#if defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
+#include <android/native_activity.h>
+#endif
namespace irr
{

View File

@ -10,6 +10,7 @@ public class MtNativeActivity extends NativeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
m_MessagReturnCode = -1;
m_MessageReturnValue = "";

View File

@ -1,7 +1,7 @@
-- Minetest: builtin/client/chatcommands.lua
core.register_on_sending_chat_messages(function(message)
core.register_on_sending_chat_message(function(message)
if message:sub(1,2) == ".." then
return false
end

View File

@ -1,5 +1,5 @@
-- Minetest: builtin/client/init.lua
local scriptpath = core.get_builtin_path()..DIR_DELIM
local scriptpath = core.get_builtin_path()
local clientpath = scriptpath.."client"..DIR_DELIM
local commonpath = scriptpath.."common"..DIR_DELIM

View File

@ -60,9 +60,8 @@ end
core.registered_globalsteps, core.register_globalstep = make_registration()
core.registered_on_shutdown, core.register_on_shutdown = make_registration()
core.registered_on_connect, core.register_on_connect = make_registration()
core.registered_on_receiving_chat_messages, core.register_on_receiving_chat_messages = make_registration()
core.registered_on_sending_chat_messages, core.register_on_sending_chat_messages = make_registration()
core.registered_on_receiving_chat_message, core.register_on_receiving_chat_message = make_registration()
core.registered_on_sending_chat_message, core.register_on_sending_chat_message = make_registration()
core.registered_on_death, core.register_on_death = make_registration()
core.registered_on_hp_modification, core.register_on_hp_modification = make_registration()
core.registered_on_damage_taken, core.register_on_damage_taken = make_registration()
@ -71,3 +70,6 @@ core.registered_on_dignode, core.register_on_dignode = make_registration()
core.registered_on_punchnode, core.register_on_punchnode = make_registration()
core.registered_on_placenode, core.register_on_placenode = make_registration()
core.registered_on_item_use, core.register_on_item_use = make_registration()
core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration()
core.registered_on_modchannel_signal, core.register_on_modchannel_signal = make_registration()
core.registered_on_inventory_open, core.register_on_inventory_open = make_registration()

View File

@ -97,7 +97,7 @@ end
if INIT == "client" then
core.register_chatcommand("help", {
params = gettext("[all/<cmd>]"),
params = gettext("[all | <cmd>]"),
description = gettext("Get help for commands"),
func = function(param)
return do_help_cmd(nil, param)
@ -105,7 +105,7 @@ if INIT == "client" then
})
else
core.register_chatcommand("help", {
params = "[all/privs/<cmd>]",
params = "[all | privs | <cmd>]",
description = "Get help for commands or list privileges",
func = do_help_cmd,
})

View File

@ -308,59 +308,25 @@ function core.formspec_escape(text)
end
function core.wrap_text(text, charlimit)
local retval = {}
local current_idx = 1
local start,stop = string_find(text, " ", current_idx)
local nl_start,nl_stop = string_find(text, "\n", current_idx)
local gotnewline = false
if nl_start ~= nil and (start == nil or nl_start < start) then
start = nl_start
stop = nl_stop
gotnewline = true
end
local last_line = ""
while start ~= nil do
if string.len(last_line) + (stop-start) > charlimit then
retval[#retval + 1] = last_line
last_line = ""
end
if last_line ~= "" then
last_line = last_line .. " "
end
last_line = last_line .. string_sub(text, current_idx, stop - 1)
if gotnewline then
retval[#retval + 1] = last_line
last_line = ""
gotnewline = false
end
current_idx = stop+1
start,stop = string_find(text, " ", current_idx)
nl_start,nl_stop = string_find(text, "\n", current_idx)
if nl_start ~= nil and (start == nil or nl_start < start) then
start = nl_start
stop = nl_stop
gotnewline = true
end
function core.wrap_text(text, max_length, as_table)
local result = {}
local line = {}
if #text <= max_length then
return as_table and {text} or text
end
--add last part of text
if string.len(last_line) + (string.len(text) - current_idx) > charlimit then
retval[#retval + 1] = last_line
retval[#retval + 1] = string_sub(text, current_idx)
else
last_line = last_line .. " " .. string_sub(text, current_idx)
retval[#retval + 1] = last_line
for word in text:gmatch('%S+') do
local cur_length = #table.concat(line, ' ')
if cur_length > 0 and cur_length + #word + 1 >= max_length then
-- word wouldn't fit on current line, move to next line
table.insert(result, table.concat(line, ' '))
line = {}
end
table.insert(line, word)
end
return retval
table.insert(result, table.concat(line, ' '))
return as_table and result or table.concat(result, '\n')
end
--------------------------------------------------------------------------------
@ -379,41 +345,20 @@ if INIT == "game" then
end
local undef = core.registered_nodes[unode.name]
if undef and undef.on_rightclick then
undef.on_rightclick(pointed_thing.under, unode, placer,
return undef.on_rightclick(pointed_thing.under, unode, placer,
itemstack, pointed_thing)
return
end
local fdir = core.dir_to_facedir(placer:get_look_dir())
local wield_name = itemstack:get_name()
local fdir = placer and core.dir_to_facedir(placer:get_look_dir()) or 0
local above = pointed_thing.above
local under = pointed_thing.under
local iswall = (above.y == under.y)
local isceiling = not iswall and (above.y < under.y)
local anode = core.get_node_or_nil(above)
if not anode then
return
end
local pos = pointed_thing.above
local node = anode
if undef and undef.buildable_to then
pos = pointed_thing.under
node = unode
iswall = false
end
if core.is_protected(pos, placer:get_player_name()) then
core.record_protection_violation(pos,
placer:get_player_name())
return
end
local ndef = core.registered_nodes[node.name]
if not ndef or not ndef.buildable_to then
return
end
if orient_flags.force_floor then
iswall = false
isceiling = false
@ -427,31 +372,26 @@ if INIT == "game" then
iswall = not iswall
end
local param2 = fdir
if iswall then
core.set_node(pos, {name = wield_name,
param2 = dirs1[fdir + 1]})
param2 = dirs1[fdir + 1]
elseif isceiling then
if orient_flags.force_facedir then
core.set_node(pos, {name = wield_name,
param2 = 20})
cparam2 = 20
else
core.set_node(pos, {name = wield_name,
param2 = dirs2[fdir + 1]})
param2 = dirs2[fdir + 1]
end
else -- place right side up
if orient_flags.force_facedir then
core.set_node(pos, {name = wield_name,
param2 = 0})
else
core.set_node(pos, {name = wield_name,
param2 = fdir})
param2 = 0
end
end
if not infinitestacks then
itemstack:take_item()
return itemstack
end
local old_itemstack = ItemStack(itemstack)
local new_itemstack, removed = core.item_place_node(
itemstack, placer, pointed_thing, param2
)
return infinitestacks and old_itemstack or new_itemstack
end
@ -459,12 +399,18 @@ if INIT == "game" then
--Wrapper for rotate_and_place() to check for sneak and assume Creative mode
--implies infinite stacks when performing a 6d rotation.
--------------------------------------------------------------------------------
local creative_mode_cache = core.settings:get_bool("creative_mode")
local function is_creative(name)
return creative_mode_cache or
core.check_player_privs(name, {creative = true})
end
core.rotate_node = function(itemstack, placer, pointed_thing)
local name = placer and placer:get_player_name() or ""
local invert_wall = placer and placer:get_player_control().sneak or false
core.rotate_and_place(itemstack, placer, pointed_thing,
core.settings:get_bool("creative_mode"),
{invert_wall = placer:get_player_control().sneak})
is_creative(name),
{invert_wall = invert_wall})
return itemstack
end
end
@ -511,6 +457,12 @@ function core.explode_scrollbar_event(evt)
return retval
end
--------------------------------------------------------------------------------
function core.rgba(r, g, b, a)
return a and string.format("#%02X%02X%02X%02X", r, g, b, a) or
string.format("#%02X%02X%02X", r, g, b)
end
--------------------------------------------------------------------------------
function core.pos_to_string(pos, decimal_places)
local x = pos.x
@ -599,7 +551,7 @@ end
--------------------------------------------------------------------------------
if INIT == "mainmenu" then
function core.get_game(index)
local games = game.get_games()
local games = core.get_games()
if index > 0 and index <= #games then
return games[index]
@ -642,44 +594,26 @@ end
local ESCAPE_CHAR = string.char(0x1b)
-- Client-side mods don't have access to settings
if core.settings and core.settings:get_bool("disable_escape_sequences") then
function core.get_color_escape_sequence(color)
return ""
end
function core.get_background_escape_sequence(color)
return ""
end
function core.colorize(color, message)
return message
end
else
function core.get_color_escape_sequence(color)
return ESCAPE_CHAR .. "(c@" .. color .. ")"
end
function core.get_background_escape_sequence(color)
return ESCAPE_CHAR .. "(b@" .. color .. ")"
end
function core.colorize(color, message)
local lines = tostring(message):split("\n", true)
local color_code = core.get_color_escape_sequence(color)
for i, line in ipairs(lines) do
lines[i] = color_code .. line
end
return table.concat(lines, "\n") .. core.get_color_escape_sequence("#ffffff")
end
function core.get_color_escape_sequence(color)
return ESCAPE_CHAR .. "(c@" .. color .. ")"
end
function core.get_background_escape_sequence(color)
return ESCAPE_CHAR .. "(b@" .. color .. ")"
end
function core.colorize(color, message)
local lines = tostring(message):split("\n", true)
local color_code = core.get_color_escape_sequence(color)
for i, line in ipairs(lines) do
lines[i] = color_code .. line
end
return table.concat(lines, "\n") .. core.get_color_escape_sequence("#ffffff")
end
function core.strip_foreground_colors(str)
return (str:gsub(ESCAPE_CHAR .. "%(c@[^)]+%)", ""))
end
@ -692,10 +626,51 @@ function core.strip_colors(str)
return (str:gsub(ESCAPE_CHAR .. "%([bc]@[^)]+%)", ""))
end
function core.translate(textdomain, str, ...)
local start_seq
if textdomain == "" then
start_seq = ESCAPE_CHAR .. "T"
else
start_seq = ESCAPE_CHAR .. "(T@" .. textdomain .. ")"
end
local arg = {n=select('#', ...), ...}
local end_seq = ESCAPE_CHAR .. "E"
local arg_index = 1
local translated = str:gsub("@(.)", function(matched)
local c = string.byte(matched)
if string.byte("1") <= c and c <= string.byte("9") then
local a = c - string.byte("0")
if a ~= arg_index then
error("Escape sequences in string given to core.translate " ..
"are not in the correct order: got @" .. matched ..
"but expected @" .. tostring(arg_index))
end
if a > arg.n then
error("Not enough arguments provided to core.translate")
end
arg_index = arg_index + 1
return ESCAPE_CHAR .. "F" .. arg[a] .. ESCAPE_CHAR .. "E"
elseif matched == "n" then
return "\n"
else
return matched
end
end)
if arg_index < arg.n + 1 then
error("Too many arguments provided to core.translate")
end
return start_seq .. translated .. end_seq
end
function core.get_translator(textdomain)
return function(str, ...) return core.translate(textdomain or "", str, ...) end
end
--------------------------------------------------------------------------------
-- Returns the exact coordinate of a pointed surface
--------------------------------------------------------------------------------
function core.pointed_thing_to_face_pos(placer, pointed_thing)
local eye_height = placer:get_properties().eye_height
local eye_offset_first = placer:get_eye_offset()
local node_pos = pointed_thing.under
local camera_pos = placer:get_pos()
@ -715,7 +690,7 @@ function core.pointed_thing_to_face_pos(placer, pointed_thing)
end
local fine_pos = {[nc] = node_pos[nc] + offset}
camera_pos.y = camera_pos.y + 1.625 + eye_offset_first.y / 10
camera_pos.y = camera_pos.y + eye_height + eye_offset_first.y / 10
local f = (node_pos[nc] + offset - camera_pos[nc]) / look_dir[nc]
for i = 1, #oc do
@ -723,3 +698,28 @@ function core.pointed_thing_to_face_pos(placer, pointed_thing)
end
return fine_pos
end
function core.string_to_privs(str, delim)
assert(type(str) == "string")
delim = delim or ','
local privs = {}
for _, priv in pairs(string.split(str, delim)) do
privs[priv:trim()] = true
end
return privs
end
function core.privs_to_string(privs, delim)
assert(type(privs) == "table")
delim = delim or ','
local list = {}
for priv, bool in pairs(privs) do
if bool then
list[#list + 1] = priv
end
end
return table.concat(list, delim)
end
assert(core.string_to_privs("a,b").b == true)
assert(core.privs_to_string({a=true,b=true}) == "a,b")

View File

@ -63,34 +63,13 @@ function vector.distance(a, b)
end
function vector.direction(pos1, pos2)
local x_raw = pos2.x - pos1.x
local y_raw = pos2.y - pos1.y
local z_raw = pos2.z - pos1.z
local x_abs = math.abs(x_raw)
local y_abs = math.abs(y_raw)
local z_abs = math.abs(z_raw)
if x_abs >= y_abs and
x_abs >= z_abs then
y_raw = y_raw * (1 / x_abs)
z_raw = z_raw * (1 / x_abs)
x_raw = x_raw / x_abs
end
if y_abs >= x_abs and
y_abs >= z_abs then
x_raw = x_raw * (1 / y_abs)
z_raw = z_raw * (1 / y_abs)
y_raw = y_raw / y_abs
end
if z_abs >= y_abs and
z_abs >= x_abs then
x_raw = x_raw * (1 / z_abs)
y_raw = y_raw * (1 / z_abs)
z_raw = z_raw / z_abs
end
return {x=x_raw, y=y_raw, z=z_raw}
return vector.normalize({
x = pos2.x - pos1.x,
y = pos2.y - pos1.y,
z = pos2.z - pos1.z
})
end
function vector.add(a, b)
if type(b) == "table" then
return {x = a.x + b.x,

View File

@ -1,42 +1,17 @@
-- Minetest: builtin/auth.lua
--
-- Authentication handler
-- Builtin authentication handler
--
function core.string_to_privs(str, delim)
assert(type(str) == "string")
delim = delim or ','
local privs = {}
for _, priv in pairs(string.split(str, delim)) do
privs[priv:trim()] = true
end
return privs
end
function core.privs_to_string(privs, delim)
assert(type(privs) == "table")
delim = delim or ','
local list = {}
for priv, bool in pairs(privs) do
if bool then
list[#list + 1] = priv
end
end
return table.concat(list, delim)
end
assert(core.string_to_privs("a,b").b == true)
assert(core.privs_to_string({a=true,b=true}) == "a,b")
core.auth_file_path = core.get_worldpath().."/auth.txt"
core.auth_table = {}
local auth_file_path = core.get_worldpath().."/auth.txt"
local auth_table = {}
local function read_auth_file()
local newtable = {}
local file, errmsg = io.open(core.auth_file_path, 'rb')
local file, errmsg = io.open(auth_file_path, 'rb')
if not file then
core.log("info", core.auth_file_path.." could not be opened for reading ("..errmsg.."); assuming new world")
core.log("info", auth_file_path.." could not be opened for reading ("..errmsg.."); assuming new world")
return
end
for line in file:lines() do
@ -52,14 +27,14 @@ local function read_auth_file()
end
end
io.close(file)
core.auth_table = newtable
auth_table = newtable
core.notify_authentication_modified()
end
local function save_auth_file()
local newtable = {}
-- Check table for validness before attempting to save
for name, stuff in pairs(core.auth_table) do
for name, stuff in pairs(auth_table) do
assert(type(name) == "string")
assert(name ~= "")
assert(type(stuff) == "table")
@ -67,16 +42,15 @@ local function save_auth_file()
assert(type(stuff.privileges) == "table")
assert(stuff.last_login == nil or type(stuff.last_login) == "number")
end
local file, errmsg = io.open(core.auth_file_path, 'w+b')
if not file then
error(core.auth_file_path.." could not be opened for writing: "..errmsg)
end
for name, stuff in pairs(core.auth_table) do
local content = ""
for name, stuff in pairs(auth_table) do
local priv_string = core.privs_to_string(stuff.privileges)
local parts = {name, stuff.password, priv_string, stuff.last_login or ""}
file:write(table.concat(parts, ":").."\n")
content = content .. table.concat(parts, ":") .. "\n"
end
if not core.safe_file_write(auth_file_path, content) then
error(auth_file_path.." could not be written to")
end
io.close(file)
end
read_auth_file()
@ -89,13 +63,13 @@ core.builtin_auth_handler = {
-- usually empty too)
local new_password_hash = ""
-- If not in authentication table, return nil
if not core.auth_table[name] then
if not auth_table[name] then
return nil
end
-- Figure out what privileges the player should have.
-- Take a copy of the privilege table
local privileges = {}
for priv, _ in pairs(core.auth_table[name].privileges) do
for priv, _ in pairs(auth_table[name].privileges) do
privileges[priv] = true
end
-- If singleplayer, give all privileges except those marked as give_to_singleplayer = false
@ -108,36 +82,48 @@ core.builtin_auth_handler = {
-- For the admin, give everything
elseif name == core.settings:get("name") then
for priv, def in pairs(core.registered_privileges) do
privileges[priv] = true
if def.give_to_admin then
privileges[priv] = true
end
end
end
-- All done
return {
password = core.auth_table[name].password,
password = auth_table[name].password,
privileges = privileges,
-- Is set to nil if unknown
last_login = core.auth_table[name].last_login,
last_login = auth_table[name].last_login,
}
end,
create_auth = function(name, password)
assert(type(name) == "string")
assert(type(password) == "string")
core.log('info', "Built-in authentication handler adding player '"..name.."'")
core.auth_table[name] = {
auth_table[name] = {
password = password,
privileges = core.string_to_privs(core.settings:get("default_privs")),
last_login = os.time(),
}
save_auth_file()
end,
delete_auth = function(name)
assert(type(name) == "string")
if not auth_table[name] then
return false
end
core.log('info', "Built-in authentication handler deleting player '"..name.."'")
auth_table[name] = nil
save_auth_file()
return true
end,
set_password = function(name, password)
assert(type(name) == "string")
assert(type(password) == "string")
if not core.auth_table[name] then
if not auth_table[name] then
core.builtin_auth_handler.create_auth(name, password)
else
core.log('info', "Built-in authentication handler setting password of player '"..name.."'")
core.auth_table[name].password = password
auth_table[name].password = password
save_auth_file()
end
return true
@ -145,12 +131,27 @@ core.builtin_auth_handler = {
set_privileges = function(name, privileges)
assert(type(name) == "string")
assert(type(privileges) == "table")
if not core.auth_table[name] then
if not auth_table[name] then
core.builtin_auth_handler.create_auth(name,
core.get_password_hash(name,
core.settings:get("default_password")))
end
core.auth_table[name].privileges = privileges
-- Run grant callbacks
for priv, _ in pairs(privileges) do
if not auth_table[name].privileges[priv] then
core.run_priv_callbacks(name, priv, nil, "grant")
end
end
-- Run revoke callbacks
for priv, _ in pairs(auth_table[name].privileges) do
if not privileges[priv] then
core.run_priv_callbacks(name, priv, nil, "revoke")
end
end
auth_table[name].privileges = privileges
core.notify_authentication_modified(name)
save_auth_file()
end,
@ -160,11 +161,41 @@ core.builtin_auth_handler = {
end,
record_login = function(name)
assert(type(name) == "string")
assert(core.auth_table[name]).last_login = os.time()
assert(auth_table[name]).last_login = os.time()
save_auth_file()
end,
iterate = function()
local names = {}
for k in pairs(auth_table) do
names[k] = true
end
return pairs(names)
end,
}
core.register_on_prejoinplayer(function(name, ip)
if core.registered_auth_handler ~= nil then
return -- Don't do anything if custom auth handler registered
end
if auth_table[name] ~= nil then
return
end
local name_lower = name:lower()
for k in pairs(auth_table) do
if k:lower() == name_lower then
return string.format("\nCannot create new player called '%s'. "..
"Another account called '%s' is already registered. "..
"Please check the spelling if it's your account "..
"or use a different nickname.", name, k)
end
end
end)
--
-- Authentication API
--
function core.register_authentication_handler(handler)
if core.registered_auth_handler then
error("Add-on authentication handler already registered by "..core.registered_auth_handler_modname)
@ -190,28 +221,10 @@ end
core.set_player_password = auth_pass("set_password")
core.set_player_privs = auth_pass("set_privileges")
core.remove_player_auth = auth_pass("delete_auth")
core.auth_reload = auth_pass("reload")
local record_login = auth_pass("record_login")
core.register_on_joinplayer(function(player)
record_login(player:get_player_name())
end)
core.register_on_prejoinplayer(function(name, ip)
local auth = core.auth_table
if auth[name] ~= nil then
return
end
local name_lower = name:lower()
for k in pairs(auth) do
if k:lower() == name_lower then
return string.format("\nCannot create new player called '%s'. "..
"Another account called '%s' is already registered. "..
"Please check the spelling if it's your account "..
"or use a different nickname.", name, k)
end
end
end)

View File

@ -71,7 +71,7 @@ end
--
core.register_chatcommand("me", {
params = "<action>",
description = "Display chat action (e.g., '/me orders a pizza' displays"
description = "Show chat action (e.g., '/me orders a pizza' displays"
.. " '<player name> orders a pizza')",
privs = {shout=true},
func = function(name, param)
@ -82,7 +82,7 @@ core.register_chatcommand("me", {
core.register_chatcommand("admin", {
description = "Show the name of the server owner",
func = function(name)
local admin = minetest.settings:get("name")
local admin = core.settings:get("name")
if admin then
return true, "The administrator of this server is "..admin.."."
else
@ -92,8 +92,8 @@ core.register_chatcommand("admin", {
})
core.register_chatcommand("privs", {
params = "<name>",
description = "Print privileges of player",
params = "[<name>]",
description = "Show privileges of yourself or another player",
func = function(caller, param)
param = param:trim()
local name = (param ~= "" and param or caller)
@ -104,7 +104,7 @@ core.register_chatcommand("privs", {
})
local function handle_grant_command(caller, grantname, grantprivstr)
local caller_privs = minetest.get_player_privs(caller)
local caller_privs = core.get_player_privs(caller)
if not (caller_privs.privs or caller_privs.basic_privs) then
return false, "Your privileges are insufficient."
end
@ -132,6 +132,9 @@ local function handle_grant_command(caller, grantname, grantprivstr)
if privs_unknown ~= "" then
return false, privs_unknown
end
for priv, _ in pairs(grantprivs) do
core.run_priv_callbacks(grantname, priv, caller, "grant")
end
core.set_player_privs(grantname, privs)
core.log("action", caller..' granted ('..core.privs_to_string(grantprivs, ', ')..') privileges to '..grantname)
if grantname ~= caller then
@ -145,8 +148,8 @@ local function handle_grant_command(caller, grantname, grantprivstr)
end
core.register_chatcommand("grant", {
params = "<name> <privilege>|all",
description = "Give privilege to player",
params = "<name> (<privilege> | all)",
description = "Give privileges to player",
func = function(name, param)
local grantname, grantprivstr = string.match(param, "([^ ]+) (.+)")
if not grantname or not grantprivstr then
@ -157,7 +160,7 @@ core.register_chatcommand("grant", {
})
core.register_chatcommand("grantme", {
params = "<privilege>|all",
params = "<privilege> | all",
description = "Grant privileges to yourself",
func = function(name, param)
if param == "" then
@ -168,8 +171,8 @@ core.register_chatcommand("grantme", {
})
core.register_chatcommand("revoke", {
params = "<name> <privilege>|all",
description = "Remove privilege from player",
params = "<name> (<privilege> | all)",
description = "Remove privileges from player",
privs = {},
func = function(name, param)
if not core.check_player_privs(name, {privs=true}) and
@ -193,12 +196,18 @@ core.register_chatcommand("revoke", {
end
end
if revoke_priv_str == "all" then
revoke_privs = privs
privs = {}
else
for priv, _ in pairs(revoke_privs) do
privs[priv] = nil
end
end
for priv, _ in pairs(revoke_privs) do
core.run_priv_callbacks(revoke_name, priv, name, "revoke")
end
core.set_player_privs(revoke_name, privs)
core.log("action", name..' revoked ('
..core.privs_to_string(revoke_privs, ', ')
@ -254,7 +263,7 @@ core.register_chatcommand("setpassword", {
core.register_chatcommand("clearpassword", {
params = "<name>",
description = "Set empty password",
description = "Set empty password for a player",
privs = {password=true},
func = function(name, param)
local toname = param
@ -281,7 +290,7 @@ core.register_chatcommand("auth_reload", {
core.register_chatcommand("remove_player", {
params = "<name>",
description = "Remove player data",
description = "Remove a player's data",
privs = {server=true},
func = function(name, param)
local toname = param
@ -305,8 +314,8 @@ core.register_chatcommand("remove_player", {
})
core.register_chatcommand("teleport", {
params = "<X>,<Y>,<Z> | <to_name> | <name> <X>,<Y>,<Z> | <name> <to_name>",
description = "Teleport to player or position",
params = "<X>,<Y>,<Z> | <to_name> | (<name> <X>,<Y>,<Z>) | (<name> <to_name>)",
description = "Teleport to position or player",
privs = {teleport=true},
func = function(name, param)
-- Returns (pos, true) if found, otherwise (pos, false)
@ -413,7 +422,7 @@ core.register_chatcommand("teleport", {
})
core.register_chatcommand("set", {
params = "[-n] <name> <value> | <name>",
params = "([-n] <name> <value>) | <name>",
description = "Set or read server configuration setting",
privs = {server=true},
func = function(name, param)
@ -468,9 +477,9 @@ local function emergeblocks_progress_update(ctx)
end
core.register_chatcommand("emergeblocks", {
params = "(here [radius]) | (<pos1> <pos2>)",
params = "(here [<radius>]) | (<pos1> <pos2>)",
description = "Load (or, if nonexistent, generate) map blocks "
.. "contained in area pos1 to pos2",
.. "contained in area pos1 to pos2 (<pos1> and <pos2> must be in parentheses)",
privs = {server=true},
func = function(name, param)
local p1, p2 = parse_range_str(name, param)
@ -494,8 +503,9 @@ core.register_chatcommand("emergeblocks", {
})
core.register_chatcommand("deleteblocks", {
params = "(here [radius]) | (<pos1> <pos2>)",
description = "Delete map blocks contained in area pos1 to pos2",
params = "(here [<radius>]) | (<pos1> <pos2>)",
description = "Delete map blocks contained in area pos1 to pos2 "
.. "(<pos1> and <pos2> must be in parentheses)",
privs = {server=true},
func = function(name, param)
local p1, p2 = parse_range_str(name, param)
@ -513,8 +523,9 @@ core.register_chatcommand("deleteblocks", {
})
core.register_chatcommand("fixlight", {
params = "(here [radius]) | (<pos1> <pos2>)",
description = "Resets lighting in the area between pos1 and pos2",
params = "(here [<radius>]) | (<pos1> <pos2>)",
description = "Resets lighting in the area between pos1 and pos2 "
.. "(<pos1> and <pos2> must be in parentheses)",
privs = {server = true},
func = function(name, param)
local p1, p2 = parse_range_str(name, param)
@ -577,7 +588,7 @@ local function handle_give_command(cmd, giver, receiver, stackstring)
end
core.register_chatcommand("give", {
params = "<name> <ItemString>",
params = "<name> <ItemString> [<count> [<wear>]]",
description = "Give item to player",
privs = {give=true},
func = function(name, param)
@ -590,7 +601,7 @@ core.register_chatcommand("give", {
})
core.register_chatcommand("giveme", {
params = "<ItemString>",
params = "<ItemString> [<count> [<wear>]]",
description = "Give item to yourself",
privs = {give=true},
func = function(name, param)
@ -618,6 +629,9 @@ core.register_chatcommand("spawnentity", {
core.log("error", "Unable to spawn entity, player is nil")
return false, "Unable to spawn entity, player is nil"
end
if not core.registered_entities[entityname] then
return false, "Cannot spawn an unknown entity"
end
if p == "" then
p = player:getpos()
else
@ -653,15 +667,15 @@ core.register_chatcommand("pulverize", {
core.rollback_punch_callbacks = {}
core.register_on_punchnode(function(pos, node, puncher)
local name = puncher:get_player_name()
if core.rollback_punch_callbacks[name] then
local name = puncher and puncher:get_player_name()
if name and core.rollback_punch_callbacks[name] then
core.rollback_punch_callbacks[name](pos, node, puncher)
core.rollback_punch_callbacks[name] = nil
end
end)
core.register_chatcommand("rollback_check", {
params = "[<range>] [<seconds>] [limit]",
params = "[<range>] [<seconds>] [<limit>]",
description = "Check who last touched a node or a node near it"
.. " within the time specified by <seconds>. Default: range = 0,"
.. " seconds = 86400 = 24h, limit = 5",
@ -714,7 +728,7 @@ core.register_chatcommand("rollback_check", {
})
core.register_chatcommand("rollback", {
params = "<player name> [<seconds>] | :<actor> [<seconds>]",
params = "(<name> [<seconds>]) | (:<actor> [<seconds>])",
description = "Revert actions of a player. Default for <seconds> is 60",
privs = {rollback=true},
func = function(name, param)
@ -752,15 +766,15 @@ core.register_chatcommand("rollback", {
})
core.register_chatcommand("status", {
description = "Print server status",
description = "Show server status",
func = function(name, param)
return true, core.get_server_status()
end,
})
core.register_chatcommand("time", {
params = "<0..23>:<0..59> | <0..24000>",
description = "Set time of day",
params = "[<0..23>:<0..59> | <0..24000>]",
description = "Show or set time of day",
privs = {},
func = function(name, param)
if param == "" then
@ -799,15 +813,15 @@ core.register_chatcommand("time", {
})
core.register_chatcommand("days", {
description = "Display day count",
description = "Show day count since world creation",
func = function(name, param)
return true, "Current day is " .. core.get_day_count()
end
})
core.register_chatcommand("shutdown", {
description = "Shutdown server",
params = "[delay_in_seconds (non-negative number, or -1 to cancel)] [reconnect] [message]",
params = "[<delay_in_seconds> | -1] [reconnect] [<message>]",
description = "Shutdown server (-1 cancels a delayed shutdown)",
privs = {server=true},
func = function(name, param)
local delay, reconnect, message = param:match("([^ ][-]?[0-9]+)([^ ]+)(.*)")
@ -825,12 +839,17 @@ core.register_chatcommand("shutdown", {
})
core.register_chatcommand("ban", {
params = "<name>",
description = "Ban IP of player",
params = "[<name> | <IP_address>]",
description = "Ban player or show ban list",
privs = {ban=true},
func = function(name, param)
if param == "" then
return true, "Ban list: " .. core.get_ban_list()
local ban_list = core.get_ban_list()
if ban_list == "" then
return true, "The ban list is empty."
else
return true, "Ban list: " .. ban_list
end
end
if not core.get_player_by_name(param) then
return false, "No such player."
@ -845,8 +864,8 @@ core.register_chatcommand("ban", {
})
core.register_chatcommand("unban", {
params = "<name/ip>",
description = "Remove IP ban",
params = "<name> | <IP_address>",
description = "Remove player ban",
privs = {ban=true},
func = function(name, param)
if not core.unban_player_or_ip(param) then
@ -858,7 +877,7 @@ core.register_chatcommand("unban", {
})
core.register_chatcommand("kick", {
params = "<name> [reason]",
params = "<name> [<reason>]",
description = "Kick a player",
privs = {kick=true},
func = function(name, param)
@ -877,15 +896,15 @@ core.register_chatcommand("kick", {
})
core.register_chatcommand("clearobjects", {
params = "[full|quick]",
params = "[full | quick]",
description = "Clear all objects in world",
privs = {server=true},
func = function(name, param)
local options = {}
if param == "" or param == "full" then
options.mode = "full"
elseif param == "quick" then
if param == "" or param == "quick" then
options.mode = "quick"
elseif param == "full" then
options.mode = "full"
else
return false, "Invalid usage, see /help clearobjects."
end
@ -923,8 +942,8 @@ core.register_chatcommand("msg", {
})
core.register_chatcommand("last-login", {
params = "[name]",
description = "Get the last login time of a player",
params = "[<name>]",
description = "Get the last login time of a player or yourself",
func = function(name, param)
if param == "" then
param = name
@ -940,14 +959,14 @@ core.register_chatcommand("last-login", {
})
core.register_chatcommand("clearinv", {
params = "[name]",
params = "[<name>]",
description = "Clear the inventory of yourself or another player",
func = function(name, param)
local player
if param and param ~= "" and param ~= name then
if not core.check_player_privs(name, {server=true}) then
return false, "You don't have permission"
.. " to run this command (missing privilege: server)"
.. " to clear another player's inventory (missing privilege: server)"
end
player = core.get_player_by_name(param)
core.chat_send_player(param, name.." cleared your inventory.")
@ -966,3 +985,34 @@ core.register_chatcommand("clearinv", {
end
end,
})
local function handle_kill_command(killer, victim)
if core.settings:get_bool("enable_damage") == false then
return false, "Players can't be killed, damage has been disabled."
end
local victimref = core.get_player_by_name(victim)
if victimref == nil then
return false, string.format("Player %s is not online.", victim)
elseif victimref:get_hp() <= 0 then
if killer == victim then
return false, "You are already dead."
else
return false, string.format("%s is already dead.", victim)
end
end
if not killer == victim then
core.log("action", string.format("%s killed %s", killer, victim))
end
-- Kill victim
victimref:set_hp(0)
return true, string.format("%s has been killed.", victim)
end
core.register_chatcommand("kill", {
params = "[<name>]",
description = "Kill player or yourself",
privs = {server=true},
func = function(name, param)
return handle_kill_command(name, param == "" and name or param)
end,
})

View File

@ -21,6 +21,10 @@ core.EMERGE_GENERATED = 4
-- constants.h
-- Size of mapblocks in nodes
core.MAP_BLOCKSIZE = 16
-- Default maximal HP of a player
core.PLAYER_MAX_HP_DEFAULT = 20
-- Default maximal breath of a player
core.PLAYER_MAX_BREATH_DEFAULT = 11
-- light.h
-- Maximum value for node 'light_source' parameter

View File

@ -93,7 +93,7 @@ core.register_entity(":__builtin:falling_node", {
core.remove_node(np)
if nd and nd.buildable_to == false then
-- Add dropped items
local drops = core.get_node_drops(n2.name, "")
local drops = core.get_node_drops(n2, "")
for _, dropped_item in pairs(drops) do
core.add_item(np, dropped_item)
end
@ -104,12 +104,16 @@ core.register_entity(":__builtin:falling_node", {
end
end
-- Create node and remove entity
if core.registered_nodes[self.node.name] then
local def = core.registered_nodes[self.node.name]
if def then
core.add_node(np, self.node)
if self.meta then
local meta = core.get_meta(np)
meta:from_table(self.meta)
end
if def.sounds and def.sounds.place and def.sounds.place.name then
core.sound_play(def.sounds.place, {pos = np})
end
end
self.object:remove()
core.check_for_falling(np)
@ -145,9 +149,23 @@ function core.spawn_falling_node(pos)
end
local function drop_attached_node(p)
local nn = core.get_node(p).name
local n = core.get_node(p)
local drops = core.get_node_drops(n, "")
local def = core.registered_items[n.name]
if def and def.preserve_metadata then
local oldmeta = core.get_meta(p):to_table().fields
-- Copy pos and node because the callback can modify them.
local pos_copy = {x=p.x, y=p.y, z=p.z}
local node_copy = {name=n.name, param1=n.param1, param2=n.param2}
local drop_stacks = {}
for k, v in pairs(drops) do
drop_stacks[k] = ItemStack(v)
end
drops = drop_stacks
def.preserve_metadata(pos_copy, node_copy, oldmeta, drops)
end
core.remove_node(p)
for _, item in pairs(core.get_node_drops(nn, "")) do
for _, item in pairs(drops) do
local pos = {
x = p.x + math.random()/2 - 0.25,
y = p.y + math.random()/2 - 0.25,
@ -308,19 +326,3 @@ local function on_punchnode(p, node)
core.check_for_falling(p)
end
core.register_on_punchnode(on_punchnode)
--
-- Globally exported functions
--
-- TODO remove this function after the 0.4.15 release
function nodeupdate(p)
core.log("deprecated", "nodeupdate: deprecated, please use core.check_for_falling instead")
core.check_for_falling(p)
end
-- TODO remove this function after the 0.4.15 release
function nodeupdate_single(p)
core.log("deprecated", "nodeupdate_single: deprecated, please use core.check_single_for_falling instead")
core.check_single_for_falling(p)
end

View File

@ -1,5 +1,5 @@
local scriptpath = core.get_builtin_path()..DIR_DELIM
local scriptpath = core.get_builtin_path()
local commonpath = scriptpath.."common"..DIR_DELIM
local gamepath = scriptpath.."game"..DIR_DELIM

View File

@ -155,11 +155,45 @@ function core.yaw_to_dir(yaw)
return {x = -math.sin(yaw), y = 0, z = math.cos(yaw)}
end
function core.get_node_drops(nodename, toolname)
function core.is_colored_paramtype(ptype)
return (ptype == "color") or (ptype == "colorfacedir") or
(ptype == "colorwallmounted")
end
function core.strip_param2_color(param2, paramtype2)
if not core.is_colored_paramtype(paramtype2) then
return nil
end
if paramtype2 == "colorfacedir" then
param2 = math.floor(param2 / 32) * 32
elseif paramtype2 == "colorwallmounted" then
param2 = math.floor(param2 / 8) * 8
end
-- paramtype2 == "color" requires no modification.
return param2
end
function core.get_node_drops(node, toolname)
-- Compatibility, if node is string
local nodename = node
local param2 = 0
-- New format, if node is table
if (type(node) == "table") then
nodename = node.name
param2 = node.param2
end
local def = core.registered_nodes[nodename]
local drop = def and def.drop
local ptype = def and def.paramtype2
-- get color, if there is color (otherwise nil)
local palette_index = core.strip_param2_color(param2, ptype)
if drop == nil then
-- default drop
if palette_index then
local stack = ItemStack(nodename)
stack:get_meta():set_int("palette_index", palette_index)
return {stack:to_string()}
end
return {nodename}
elseif type(drop) == "string" then
-- itemstring drop
@ -181,6 +215,8 @@ function core.get_node_drops(nodename, toolname)
end
if item.tools ~= nil then
good_tool = false
end
if item.tools ~= nil and toolname then
for _, tool in ipairs(item.tools) do
if tool:sub(1, 1) == '~' then
good_tool = toolname:find(tool:sub(2)) ~= nil
@ -191,10 +227,16 @@ function core.get_node_drops(nodename, toolname)
break
end
end
end
end
if good_rarity and good_tool then
got_count = got_count + 1
for _, add_item in ipairs(item.items) do
-- add color, if necessary
if item.inherit_color and palette_index then
local stack = ItemStack(add_item)
stack:get_meta():set_int("palette_index", palette_index)
add_item = stack:to_string()
end
got_items[#got_items+1] = add_item
end
if drop.max_items ~= nil and got_count == drop.max_items then
@ -205,6 +247,20 @@ function core.get_node_drops(nodename, toolname)
return got_items
end
local function user_name(user)
return user and user:get_player_name() or ""
end
local function is_protected(pos, name)
return core.is_protected(pos, name) and
not minetest.check_player_privs(name, "protection_bypass")
end
-- Returns a logging function. For empty names, does not log.
local function make_log(name)
return name ~= "" and core.log or function() end
end
function core.item_place_node(itemstack, placer, pointed_thing, param2)
local def = itemstack:get_definition()
if def.type ~= "node" or pointed_thing.type ~= "node" then
@ -215,10 +271,11 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
local oldnode_under = core.get_node_or_nil(under)
local above = pointed_thing.above
local oldnode_above = core.get_node_or_nil(above)
local playername = placer:get_player_name()
local playername = user_name(placer)
local log = make_log(playername)
if not oldnode_under or not oldnode_above then
core.log("info", playername .. " tried to place"
log("info", playername .. " tried to place"
.. " node in unloaded position " .. core.pos_to_string(above))
return itemstack, false
end
@ -229,7 +286,7 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
olddef_above = olddef_above or core.nodedef_default
if not olddef_above.buildable_to and not olddef_under.buildable_to then
core.log("info", playername .. " tried to place"
log("info", playername .. " tried to place"
.. " node in invalid position " .. core.pos_to_string(above)
.. ", replacing " .. oldnode_above.name)
return itemstack, false
@ -240,13 +297,12 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
-- If node under is buildable_to, place into it instead (eg. snow)
if olddef_under.buildable_to then
core.log("info", "node under is buildable to")
log("info", "node under is buildable to")
place_to = {x = under.x, y = under.y, z = under.z}
end
if core.is_protected(place_to, playername) and
not minetest.check_player_privs(placer, "protection_bypass") then
core.log("action", playername
if is_protected(place_to, playername) then
log("action", playername
.. " tried to place " .. def.name
.. " at protected position "
.. core.pos_to_string(place_to))
@ -254,11 +310,11 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
return itemstack
end
core.log("action", playername .. " places node "
log("action", playername .. " places node "
.. def.name .. " at " .. core.pos_to_string(place_to))
local oldnode = core.get_node(place_to)
local newnode = {name = def.name, param1 = 0, param2 = param2}
local newnode = {name = def.name, param1 = 0, param2 = param2 or 0}
-- Calculate direction for wall mounted stuff like torches and signs
if def.place_param2 ~= nil then
@ -274,7 +330,7 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
-- Calculate the direction for furnaces and chests and stuff
elseif (def.paramtype2 == "facedir" or
def.paramtype2 == "colorfacedir") and not param2 then
local placer_pos = placer:getpos()
local placer_pos = placer and placer:getpos()
if placer_pos then
local dir = {
x = above.x - placer_pos.x,
@ -282,14 +338,33 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
z = above.z - placer_pos.z
}
newnode.param2 = core.dir_to_facedir(dir)
core.log("action", "facedir: " .. newnode.param2)
log("action", "facedir: " .. newnode.param2)
end
end
local metatable = itemstack:get_meta():to_table().fields
-- Transfer color information
if metatable.palette_index and not def.place_param2 then
local color_divisor = nil
if def.paramtype2 == "color" then
color_divisor = 1
elseif def.paramtype2 == "colorwallmounted" then
color_divisor = 8
elseif def.paramtype2 == "colorfacedir" then
color_divisor = 32
end
if color_divisor then
local color = math.floor(metatable.palette_index / color_divisor)
local other = newnode.param2 % color_divisor
newnode.param2 = color * color_divisor + other
end
end
-- Check if the node is attached and if it can be placed there
if core.get_item_group(def.name, "attached_node") ~= 0 and
not builtin_shared.check_attached_node(place_to, newnode) then
core.log("action", "attached node " .. def.name ..
log("action", "attached node " .. def.name ..
" can not be placed at " .. core.pos_to_string(place_to))
return itemstack, false
end
@ -360,28 +435,24 @@ function core.item_secondary_use(itemstack, placer)
end
function core.item_drop(itemstack, dropper, pos)
if dropper and dropper:is_player() then
local v = dropper:get_look_dir()
local p = {x=pos.x, y=pos.y+1.2, z=pos.z}
local cs = itemstack:get_count()
if dropper:get_player_control().sneak then
cs = 1
end
local item = itemstack:take_item(cs)
local obj = core.add_item(p, item)
if obj then
v.x = v.x*2
v.y = v.y*2 + 2
v.z = v.z*2
obj:setvelocity(v)
local dropper_is_player = dropper and dropper:is_player()
local p = table.copy(pos)
local cnt = itemstack:get_count()
if dropper_is_player then
p.y = p.y + 1.2
end
local item = itemstack:take_item(cnt)
local obj = core.add_item(p, item)
if obj then
if dropper_is_player then
local dir = dropper:get_look_dir()
dir.x = dir.x * 2.9
dir.y = dir.y * 2.9 + 2
dir.z = dir.z * 2.9
obj:set_velocity(dir)
obj:get_luaentity().dropped_by = dropper:get_player_name()
return itemstack
end
else
if core.add_item(pos, itemstack) then
return itemstack
end
return itemstack
end
-- If we reach this, adding the object to the
-- environment failed
@ -402,7 +473,8 @@ function core.do_item_eat(hp_change, replace_with_item, itemstack, user, pointed
itemstack:add_item(replace_with_item)
else
local inv = user:get_inventory()
if inv:room_for_item("main", {name=replace_with_item}) then
-- Check if inv is null, since non-players don't have one
if inv and inv:room_for_item("main", {name=replace_with_item}) then
inv:add_item("main", replace_with_item)
else
local pos = user:getpos()
@ -417,7 +489,9 @@ end
function core.item_eat(hp_change, replace_with_item)
return function(itemstack, user, pointed_thing) -- closure
return core.do_item_eat(hp_change, replace_with_item, itemstack, user, pointed_thing)
if user then
return core.do_item_eat(hp_change, replace_with_item, itemstack, user, pointed_thing)
end
end
end
@ -434,63 +508,90 @@ end
function core.handle_node_drops(pos, drops, digger)
-- Add dropped items to object's inventory
if digger:get_inventory() then
local _, dropped_item
for _, dropped_item in ipairs(drops) do
local left = digger:get_inventory():add_item("main", dropped_item)
if not left:is_empty() then
local p = {
x = pos.x + math.random()/2-0.25,
y = pos.y + math.random()/2-0.25,
z = pos.z + math.random()/2-0.25,
}
core.add_item(p, left)
end
local inv = digger and digger:get_inventory()
local give_item
if inv then
give_item = function(item)
return inv:add_item("main", item)
end
else
give_item = function(item)
-- itemstring to ItemStack for left:is_empty()
return ItemStack(item)
end
end
for _, dropped_item in pairs(drops) do
local left = give_item(dropped_item)
if not left:is_empty() then
local p = {
x = pos.x + math.random()/2-0.25,
y = pos.y + math.random()/2-0.25,
z = pos.z + math.random()/2-0.25,
}
core.add_item(p, left)
end
end
end
function core.node_dig(pos, node, digger)
local diggername = user_name(digger)
local log = make_log(diggername)
local def = core.registered_nodes[node.name]
if def and (not def.diggable or
(def.can_dig and not def.can_dig(pos, digger))) then
core.log("info", digger:get_player_name() .. " tried to dig "
log("info", diggername .. " tried to dig "
.. node.name .. " which is not diggable "
.. core.pos_to_string(pos))
return
end
if core.is_protected(pos, digger:get_player_name()) and
not minetest.check_player_privs(digger, "protection_bypass") then
core.log("action", digger:get_player_name()
if is_protected(pos, diggername) then
log("action", diggername
.. " tried to dig " .. node.name
.. " at protected position "
.. core.pos_to_string(pos))
core.record_protection_violation(pos, digger:get_player_name())
core.record_protection_violation(pos, diggername)
return
end
core.log('action', digger:get_player_name() .. " digs "
log('action', diggername .. " digs "
.. node.name .. " at " .. core.pos_to_string(pos))
local wielded = digger:get_wielded_item()
local drops = core.get_node_drops(node.name, wielded:get_name())
local wielded = digger and digger:get_wielded_item()
local drops = core.get_node_drops(node, wielded and wielded:get_name())
local wdef = wielded:get_definition()
local tp = wielded:get_tool_capabilities()
local dp = core.get_dig_params(def and def.groups, tp)
if wdef and wdef.after_use then
wielded = wdef.after_use(wielded, digger, node, dp) or wielded
else
-- Wear out tool
if not core.settings:get_bool("creative_mode") then
wielded:add_wear(dp.wear)
if wielded:get_count() == 0 and wdef.sound and wdef.sound.breaks then
core.sound_play(wdef.sound.breaks, {pos = pos, gain = 0.5})
if wielded then
local wdef = wielded:get_definition()
local tp = wielded:get_tool_capabilities()
local dp = core.get_dig_params(def and def.groups, tp)
if wdef and wdef.after_use then
wielded = wdef.after_use(wielded, digger, node, dp) or wielded
else
-- Wear out tool
if not core.settings:get_bool("creative_mode") then
wielded:add_wear(dp.wear)
if wielded:get_count() == 0 and wdef.sound and wdef.sound.breaks then
core.sound_play(wdef.sound.breaks, {pos = pos, gain = 0.5})
end
end
end
digger:set_wielded_item(wielded)
end
-- Check to see if metadata should be preserved.
if def and def.preserve_metadata then
local oldmeta = core.get_meta(pos):to_table().fields
-- Copy pos and node because the callback can modify them.
local pos_copy = {x=pos.x, y=pos.y, z=pos.z}
local node_copy = {name=node.name, param1=node.param1, param2=node.param2}
local drop_stacks = {}
for k, v in pairs(drops) do
drop_stacks[k] = ItemStack(v)
end
drops = drop_stacks
def.preserve_metadata(pos_copy, node_copy, oldmeta, drops)
end
digger:set_wielded_item(wielded)
-- Handle drops
core.handle_node_drops(pos, drops, digger)
@ -530,6 +631,18 @@ function core.node_dig(pos, node, digger)
end
end
function core.itemstring_with_palette(item, palette_index)
local stack = ItemStack(item) -- convert to ItemStack
stack:get_meta():set_int("palette_index", palette_index)
return stack:to_string()
end
function core.itemstring_with_color(item, colorstring)
local stack = ItemStack(item) -- convert to ItemStack
stack:get_meta():set_string("color", colorstring)
return stack:to_string()
end
-- This is used to allow mods to redefine core.item_place and so on
-- NOTE: This is not the preferred way. Preferred way is to provide enough
-- callbacks to not require redefining global functions. -celeron55

View File

@ -14,10 +14,9 @@ end
-- If item_entity_ttl is not set, enity will have default life time
-- Setting it to -1 disables the feature
local time_to_live = tonumber(core.settings:get("item_entity_ttl"))
if not time_to_live then
time_to_live = 900
end
local time_to_live = tonumber(core.settings:get("item_entity_ttl")) or 900
local gravity = tonumber(core.settings:get("movement_gravity")) or 9.81
core.register_entity(":__builtin:item", {
initial_properties = {
@ -33,50 +32,45 @@ core.register_entity(":__builtin:item", {
is_visible = false,
},
itemstring = '',
physical_state = true,
itemstring = "",
moving_state = true,
slippery_state = false,
age = 0,
set_item = function(self, itemstring)
self.itemstring = itemstring
local stack = ItemStack(itemstring)
local count = stack:get_count()
local max_count = stack:get_stack_max()
if count > max_count then
count = max_count
self.itemstring = stack:get_name().." "..max_count
end
local s = 0.2 + 0.1 * (count / max_count)
local c = s
local itemtable = stack:to_table()
local itemname = nil
if itemtable then
itemname = stack:to_table().name
set_item = function(self, item)
local stack = ItemStack(item or self.itemstring)
self.itemstring = stack:to_string()
if self.itemstring == "" then
-- item not yet known
return
end
-- Backwards compatibility: old clients use the texture
-- to get the type of the item
local item_texture = nil
local item_type = ""
if core.registered_items[itemname] then
item_texture = core.registered_items[itemname].inventory_image
item_type = core.registered_items[itemname].type
end
local prop = {
local itemname = stack:is_known() and stack:get_name() or "unknown"
local max_count = stack:get_stack_max()
local count = math.min(stack:get_count(), max_count)
local size = 0.2 + 0.1 * (count / max_count) ^ (1 / 3)
local coll_height = size * 0.75
self.object:set_properties({
is_visible = true,
visual = "wielditem",
textures = {itemname},
visual_size = {x = s, y = s},
collisionbox = {-c, -c, -c, c, c, c},
automatic_rotate = math.pi * 0.5,
wield_item = itemstring,
}
self.object:set_properties(prop)
visual_size = {x = size, y = size},
collisionbox = {-size, -coll_height, -size,
size, coll_height, size},
selectionbox = {-size, -size, -size, size, size, size},
automatic_rotate = math.pi * 0.5 * 0.2 / size,
wield_item = self.itemstring,
})
end,
get_staticdata = function(self)
return core.serialize({
itemstring = self.itemstring,
always_collect = self.always_collect,
age = self.age,
dropped_by = self.dropped_by
})
@ -87,143 +81,142 @@ core.register_entity(":__builtin:item", {
local data = core.deserialize(staticdata)
if data and type(data) == "table" then
self.itemstring = data.itemstring
self.always_collect = data.always_collect
if data.age then
self.age = data.age + dtime_s
else
self.age = dtime_s
end
self.age = (data.age or 0) + dtime_s
self.dropped_by = data.dropped_by
end
else
self.itemstring = staticdata
end
self.object:set_armor_groups({immortal = 1})
self.object:setvelocity({x = 0, y = 2, z = 0})
self.object:setacceleration({x = 0, y = -10, z = 0})
self:set_item(self.itemstring)
self.object:set_velocity({x = 0, y = 2, z = 0})
self.object:set_acceleration({x = 0, y = -gravity, z = 0})
self:set_item()
end,
-- moves items from this stack to an other stack
try_merge_with = function(self, own_stack, object, obj)
-- other item's stack
local stack = ItemStack(obj.itemstring)
-- only merge if items are the same
if own_stack:get_name() == stack:get_name() and
own_stack:get_meta() == stack:get_meta() and
own_stack:get_wear() == stack:get_wear() and
stack:get_free_space() > 0 then
local overflow = false
local count = stack:get_count() + own_stack:get_count()
local max_count = stack:get_stack_max()
if count > max_count then
overflow = true
stack:set_count(max_count)
count = count - max_count
own_stack:set_count(count)
else
self.itemstring = ''
stack:set_count(count)
end
local pos = object:getpos()
pos.y = pos.y + (count - stack:get_count()) / max_count * 0.15
object:moveto(pos, false)
local s, c
if not overflow then
obj.itemstring = stack:to_string()
s = 0.2 + 0.1 * (count / max_count)
c = s
object:set_properties({
visual_size = {x = s, y = s},
collisionbox = {-c, -c, -c, c, c, c},
wield_item = obj.itemstring
})
self.object:remove()
-- merging succeeded
return true
else
s = 0.4
c = 0.3
obj.itemstring = stack:to_string()
object:set_properties({
visual_size = {x = s, y = s},
collisionbox = {-c, -c, -c, c, c, c},
wield_item = obj.itemstring
})
s = 0.2 + 0.1 * (count / max_count)
c = s
self.itemstring = own_stack:to_string()
self.object:set_properties({
visual_size = {x = s, y = s},
collisionbox = {-c, -c, -c, c, c, c},
wield_item = self.itemstring
})
end
try_merge_with = function(self, own_stack, object, entity)
if self.age == entity.age then
-- Can not merge with itself
return false
end
-- merging didn't succeed
return false
local stack = ItemStack(entity.itemstring)
local name = stack:get_name()
if own_stack:get_name() ~= name or
own_stack:get_meta() ~= stack:get_meta() or
own_stack:get_wear() ~= stack:get_wear() or
own_stack:get_free_space() == 0 then
-- Can not merge different or full stack
return false
end
local count = own_stack:get_count()
local total_count = stack:get_count() + count
local max_count = stack:get_stack_max()
if total_count > max_count then
return false
end
-- Merge the remote stack into this one
local pos = object:get_pos()
pos.y = pos.y + ((total_count - count) / max_count) * 0.15
self.object:move_to(pos)
self.age = 0 -- Handle as new entity
own_stack:set_count(total_count)
self:set_item(own_stack)
entity.itemstring = ""
object:remove()
return true
end,
on_step = function(self, dtime)
self.age = self.age + dtime
if time_to_live > 0 and self.age > time_to_live then
self.itemstring = ''
self.itemstring = ""
self.object:remove()
return
end
local p = self.object:getpos()
p.y = p.y - 0.5
local node = core.get_node_or_nil(p)
local in_unloaded = (node == nil)
if in_unloaded then
-- Don't infinetly fall into unloaded map
self.object:setvelocity({x = 0, y = 0, z = 0})
self.object:setacceleration({x = 0, y = 0, z = 0})
self.physical_state = false
self.object:set_properties({physical = false})
local pos = self.object:get_pos()
local node = core.get_node_or_nil({
x = pos.x,
y = pos.y + self.object:get_properties().collisionbox[2] - 0.05,
z = pos.z
})
local vel = self.object:getvelocity()
local def = node and core.registered_nodes[node.name]
-- Avoid entity falling into ignore nodes or unloaded areas
local is_moving = node and node.name ~= "ignore" and
((def and not def.walkable) or vel.x ~= 0 or vel.y ~= 0 or vel.z ~= 0)
local is_slippery = false
if def and def.walkable then
local slippery = core.get_item_group(node.name, "slippery")
is_slippery = slippery ~= 0
if is_slippery and (math.abs(vel.x) > 0.2 or math.abs(vel.z) > 0.2) then
-- Horizontal deceleration
local slip_factor = 4.0 / (slippery + 4)
self.object:set_acceleration({
x = -vel.x * slip_factor,
y = 0,
z = -vel.z * slip_factor
})
elseif vel.y == 0 then
is_moving = false
end
end
if self.moving_state == is_moving and
self.slippery_state == is_slippery then
-- Do not update anything until the moving state changes
return
end
local nn = node.name
-- If node is not registered or node is walkably solid and resting on nodebox
local v = self.object:getvelocity()
if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable and v.y == 0 then
if self.physical_state then
local own_stack = ItemStack(self.object:get_luaentity().itemstring)
-- Merge with close entities of the same item
for _, object in ipairs(core.get_objects_inside_radius(p, 0.8)) do
local obj = object:get_luaentity()
if obj and obj.name == "__builtin:item"
and obj.physical_state == false then
if self:try_merge_with(own_stack, object, obj) then
return
end
self.moving_state = is_moving
self.slippery_state = is_slippery
if is_moving then
self.object:set_acceleration({x = 0, y = -gravity, z = 0})
else
self.object:set_acceleration({x = 0, y = 0, z = 0})
self.object:set_velocity({x = 0, y = 0, z = 0})
end
--Only collect items if not moving
if is_moving then
return
end
-- Collect the items around to merge with
local own_stack = ItemStack(self.itemstring)
if own_stack:get_free_space() == 0 then
return
end
local objects = core.get_objects_inside_radius(pos, 1.0)
for k, obj in pairs(objects) do
local entity = obj:get_luaentity()
if entity and entity.name == "__builtin:item" then
if self:try_merge_with(own_stack, obj, entity) then
own_stack = ItemStack(self.itemstring)
if own_stack:get_free_space() == 0 then
return
end
end
self.object:setvelocity({x = 0, y = 0, z = 0})
self.object:setacceleration({x = 0, y = 0, z = 0})
self.physical_state = false
self.object:set_properties({physical = false})
end
else
if not self.physical_state then
self.object:setvelocity({x = 0, y = 0, z = 0})
self.object:setacceleration({x = 0, y = -10, z = 0})
self.physical_state = true
self.object:set_properties({physical = true})
end
end
end,
on_punch = function(self, hitter)
local inv = hitter:get_inventory()
if inv and self.itemstring ~= '' then
if inv and self.itemstring ~= "" then
local left = inv:add_item("main", self.itemstring)
if left and not left:is_empty() then
self.itemstring = left:to_string()
self:set_item(left)
return
end
end
self.itemstring = ''
self.itemstring = ""
self.object:remove()
end,
})

View File

@ -5,12 +5,11 @@
--
function core.check_player_privs(name, ...)
local arg_type = type(name)
if (arg_type == "userdata" or arg_type == "table") and
name.get_player_name then -- If it quacks like a Player...
if core.is_player(name) then
name = name:get_player_name()
elseif arg_type ~= "string" then
error("Invalid core.check_player_privs argument type: " .. arg_type, 2)
elseif type(name) ~= "string" then
error("core.check_player_privs expects a player or playername as " ..
"argument.", 2)
end
local requested_privs = {...}
@ -40,26 +39,40 @@ function core.check_player_privs(name, ...)
return true, ""
end
local player_list = {}
core.register_on_joinplayer(function(player)
local player_name = player:get_player_name()
player_list[player_name] = player
function core.send_join_message(player_name)
if not minetest.is_singleplayer() then
core.chat_send_all("*** " .. player_name .. " joined the game.")
end
end)
end
core.register_on_leaveplayer(function(player, timed_out)
local player_name = player:get_player_name()
player_list[player_name] = nil
function core.send_leave_message(player_name, timed_out)
local announcement = "*** " .. player_name .. " left the game."
if timed_out then
announcement = announcement .. " (timed out)"
end
core.chat_send_all(announcement)
end
core.register_on_joinplayer(function(player)
local player_name = player:get_player_name()
player_list[player_name] = player
core.send_join_message(player_name)
end)
core.register_on_leaveplayer(function(player, timed_out)
local player_name = player:get_player_name()
player_list[player_name] = nil
core.send_leave_message(player_name, timed_out)
end)
function core.get_connected_players()
local temp_table = {}
for index, value in pairs(player_list) do
@ -70,12 +83,24 @@ function core.get_connected_players()
return temp_table
end
function core.is_player(player)
-- a table being a player is also supported because it quacks sufficiently
-- like a player if it has the is_player function
local t = type(player)
return (t == "userdata" or t == "table") and
type(player.is_player) == "function" and player:is_player()
end
function minetest.player_exists(name)
return minetest.get_auth_handler().get_auth(name) ~= nil
end
-- Returns two position vectors representing a box of `radius` in each
-- direction centered around the player corresponding to `player_name`
function core.get_player_radius_area(player_name, radius)
local player = core.get_player_by_name(player_name)
if player == nil then
@ -93,10 +118,12 @@ function core.get_player_radius_area(player_name, radius)
return p1, p2
end
function core.hash_node_position(pos)
return (pos.z+32768)*65536*65536 + (pos.y+32768)*65536 + pos.x+32768
end
function core.get_position_from_hash(hash)
local pos = {}
pos.x = (hash%65536) - 32768
@ -107,6 +134,7 @@ function core.get_position_from_hash(hash)
return pos
end
function core.get_item_group(name, group)
if not core.registered_items[name] or not
core.registered_items[name].groups[group] then
@ -115,11 +143,13 @@ function core.get_item_group(name, group)
return core.registered_items[name].groups[group]
end
function core.get_node_group(name, group)
core.log("deprecated", "Deprecated usage of get_node_group, use get_item_group instead")
return core.get_item_group(name, group)
end
function core.setting_get_pos(name)
local value = core.settings:get(name)
if not value then
@ -128,17 +158,64 @@ function core.setting_get_pos(name)
return core.string_to_pos(value)
end
-- To be overriden by protection mods
function core.is_protected(pos, name)
return false
end
function core.record_protection_violation(pos, name)
for _, func in pairs(core.registered_on_protection_violation) do
func(pos, name)
end
end
-- Checks if specified volume intersects a protected volume
function core.intersects_protection(minp, maxp, player_name, interval)
-- 'interval' is the largest allowed interval for the 3D lattice of checks.
-- Compute the optimal float step 'd' for each axis so that all corners and
-- borders are checked. 'd' will be smaller or equal to 'interval'.
-- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the
-- for loop (which might otherwise not be the case due to rounding errors).
-- Default to 4
interval = interval or 4
local d = {}
for _, c in pairs({"x", "y", "z"}) do
if maxp[c] > minp[c] then
d[c] = (maxp[c] - minp[c]) /
math.ceil((maxp[c] - minp[c]) / interval) - 1e-4
elseif maxp[c] == minp[c] then
d[c] = 1 -- Any value larger than 0 to avoid division by zero
else -- maxp[c] < minp[c], print error and treat as protection intersected
minetest.log("error", "maxp < minp in 'minetest.intersects_protection()'")
return true
end
end
for zf = minp.z, maxp.z, d.z do
local z = math.floor(zf + 0.5)
for yf = minp.y, maxp.y, d.y do
local y = math.floor(yf + 0.5)
for xf = minp.x, maxp.x, d.x do
local x = math.floor(xf + 0.5)
if core.is_protected({x = x, y = y, z = z}, player_name) then
return true
end
end
end
end
return false
end
local raillike_ids = {}
local raillike_cur_id = 0
function core.raillike_group(name)
@ -151,7 +228,9 @@ function core.raillike_group(name)
return id
end
-- HTTP callback interface
function core.http_add_fetch(httpenv)
httpenv.fetch = function(req, callback)
local handle = httpenv.fetch_async(req)
@ -170,11 +249,12 @@ function core.http_add_fetch(httpenv)
return httpenv
end
function core.close_formspec(player_name, formname)
return minetest.show_formspec(player_name, formname, "")
end
function core.cancel_shutdown_requests()
core.request_shutdown("", false, -1)
end

View File

@ -11,6 +11,9 @@ function core.register_privilege(name, param)
if def.give_to_singleplayer == nil then
def.give_to_singleplayer = true
end
if def.give_to_admin == nil then
def.give_to_admin = def.give_to_singleplayer
end
if def.description == nil then
def.description = "(no description)"
end
@ -31,7 +34,7 @@ core.register_privilege("basic_privs", "Can modify 'shout' and 'interact' privil
core.register_privilege("privs", "Can modify privileges")
core.register_privilege("teleport", {
description = "Can use /teleport command",
description = "Can teleport self",
give_to_singleplayer = false,
})
core.register_privilege("bring", {
@ -39,12 +42,13 @@ core.register_privilege("bring", {
give_to_singleplayer = false,
})
core.register_privilege("settime", {
description = "Can use /time",
description = "Can set the time of day using /time",
give_to_singleplayer = false,
})
core.register_privilege("server", {
description = "Can do server maintenance stuff",
give_to_singleplayer = false,
give_to_admin = true,
})
core.register_privilege("protection_bypass", {
description = "Can bypass node protection in the world",
@ -53,10 +57,12 @@ core.register_privilege("protection_bypass", {
core.register_privilege("ban", {
description = "Can ban and unban players",
give_to_singleplayer = false,
give_to_admin = true,
})
core.register_privilege("kick", {
description = "Can kick players",
give_to_singleplayer = false,
give_to_admin = true,
})
core.register_privilege("give", {
description = "Can use /give and /giveme",
@ -65,28 +71,31 @@ core.register_privilege("give", {
core.register_privilege("password", {
description = "Can use /setpassword and /clearpassword",
give_to_singleplayer = false,
give_to_admin = true,
})
core.register_privilege("fly", {
description = "Can fly using the free_move mode",
description = "Can use fly mode",
give_to_singleplayer = false,
})
core.register_privilege("fast", {
description = "Can walk fast using the fast_move mode",
description = "Can use fast mode",
give_to_singleplayer = false,
})
core.register_privilege("noclip", {
description = "Can fly through walls",
description = "Can fly through solid nodes using noclip mode",
give_to_singleplayer = false,
})
core.register_privilege("rollback", {
description = "Can use the rollback functionality",
give_to_singleplayer = false,
})
core.register_privilege("zoom", {
description = "Can zoom the camera",
give_to_singleplayer = false,
})
core.register_privilege("debug", {
description = "Allows enabling various debug options that may affect gameplay",
give_to_singleplayer = false,
give_to_admin = true,
})
core.register_can_bypass_userlimit(function(name, ip)
local privs = core.get_player_privs(name)
return privs["server"] or privs["ban"] or privs["privs"] or privs["password"]
end)

View File

@ -65,14 +65,14 @@ local function check_modname_prefix(name)
error("Name " .. name .. " does not follow naming conventions: " ..
"\"" .. expected_prefix .. "\" or \":\" prefix required")
end
-- Enforce that the name only contains letters, numbers and underscores.
local subname = name:sub(#expected_prefix+1)
if subname:find("[^%w_]") then
error("Name " .. name .. " does not follow naming conventions: " ..
"contains unallowed characters")
end
return name
end
end
@ -435,6 +435,18 @@ function core.run_callbacks(callbacks, mode, ...)
return ret
end
function core.run_priv_callbacks(name, priv, caller, method)
local def = core.registered_privileges[priv]
if not def or not def["on_" .. method] or
not def[priv]["on_" .. method](name, caller) then
for _, func in ipairs(core["registered_on_priv_" .. method]) do
if not func(name, caller, priv) then
break
end
end
end
end
--
-- Callback registration
--
@ -494,6 +506,19 @@ local function make_registration_wrap(reg_fn_name, clear_fn_name)
return list
end
local function make_wrap_deregistration(reg_fn, clear_fn, list)
local unregister = function (unregistered_key)
local temporary_list = table.copy(list)
clear_fn()
for k,v in pairs(temporary_list) do
if unregistered_key ~= k then
reg_fn(v)
end
end
end
return unregister
end
core.registered_on_player_hpchanges = { modifiers = { }, loggers = { } }
function core.registered_on_player_hpchange(player, hp_change)
@ -532,6 +557,8 @@ core.registered_biomes = make_registration_wrap("register_biome", "cle
core.registered_ores = make_registration_wrap("register_ore", "clear_registered_ores")
core.registered_decorations = make_registration_wrap("register_decoration", "clear_registered_decorations")
core.unregister_biome = make_wrap_deregistration(core.register_biome, core.clear_registered_biomes, core.registered_biomes)
core.registered_on_chat_messages, core.register_on_chat_message = make_registration()
core.registered_globalsteps, core.register_globalstep = make_registration()
core.registered_playerevents, core.register_playerevent = make_registration()
@ -553,10 +580,13 @@ core.registered_craft_predicts, core.register_craft_predict = make_registration(
core.registered_on_protection_violation, core.register_on_protection_violation = make_registration()
core.registered_on_item_eats, core.register_on_item_eat = make_registration()
core.registered_on_punchplayers, core.register_on_punchplayer = make_registration()
core.registered_on_priv_grant, core.register_on_priv_grant = make_registration()
core.registered_on_priv_revoke, core.register_on_priv_revoke = make_registration()
core.registered_can_bypass_userlimit, core.register_can_bypass_userlimit = make_registration()
core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration()
--
-- Compatibility for on_mapgen_init()
--
core.register_on_mapgen_init = function(func) func(core.get_mapgen_params()) end

View File

@ -6,7 +6,7 @@ local health_bar_definition =
hud_elem_type = "statbar",
position = { x=0.5, y=1 },
text = "heart.png",
number = 20,
number = core.PLAYER_MAX_HP_DEFAULT,
direction = 0,
size = { x=24, y=24 },
offset = { x=(-10*24)-25, y=-(48+24+16)},
@ -17,7 +17,7 @@ local breath_bar_definition =
hud_elem_type = "statbar",
position = { x=0.5, y=1 },
text = "bubble.png",
number = 20,
number = core.PLAYER_MAX_BREATH_DEFAULT,
direction = 0,
size = { x=24, y=24 },
offset = {x=25,y=-(48+24+16)},
@ -25,6 +25,15 @@ local breath_bar_definition =
local hud_ids = {}
local function scaleToDefault(player, field)
-- Scale "hp" or "breath" to the default dimensions
local current = player["get_" .. field](player)
local nominal = core["PLAYER_MAX_".. field:upper() .. "_DEFAULT"]
local max_display = math.max(nominal,
math.max(player:get_properties()[field .. "_max"], current))
return current / max_display * nominal
end
local function initialize_builtin_statbars(player)
if not player:is_player() then
@ -37,39 +46,36 @@ local function initialize_builtin_statbars(player)
return
end
if (hud_ids[name] == nil) then
if not hud_ids[name] then
hud_ids[name] = {}
-- flags are not transmitted to client on connect, we need to make sure
-- our current flags are transmitted by sending them actively
player:hud_set_flags(player:hud_get_flags())
end
local hud = hud_ids[name]
if player:hud_get_flags().healthbar and enable_damage then
if hud_ids[name].id_healthbar == nil then
health_bar_definition.number = player:get_hp()
hud_ids[name].id_healthbar = player:hud_add(health_bar_definition)
end
else
if hud_ids[name].id_healthbar ~= nil then
player:hud_remove(hud_ids[name].id_healthbar)
hud_ids[name].id_healthbar = nil
if hud.id_healthbar == nil then
local hud_def = table.copy(health_bar_definition)
hud_def.number = scaleToDefault(player, "hp")
hud.id_healthbar = player:hud_add(hud_def)
end
elseif hud.id_healthbar ~= nil then
player:hud_remove(hud.id_healthbar)
hud.id_healthbar = nil
end
if (player:get_breath() < 11) then
if player:hud_get_flags().breathbar and enable_damage then
if hud_ids[name].id_breathbar == nil then
hud_ids[name].id_breathbar = player:hud_add(breath_bar_definition)
end
else
if hud_ids[name].id_breathbar ~= nil then
player:hud_remove(hud_ids[name].id_breathbar)
hud_ids[name].id_breathbar = nil
end
local breath_max = player:get_properties().breath_max
if player:hud_get_flags().breathbar and enable_damage and
player:get_breath() < breath_max then
if hud.id_breathbar == nil then
local hud_def = table.copy(breath_bar_definition)
hud_def.number = 2 * scaleToDefault(player, "breath")
hud.id_breathbar = player:hud_add(hud_def)
end
elseif hud_ids[name].id_breathbar ~= nil then
player:hud_remove(hud_ids[name].id_breathbar)
hud_ids[name].id_breathbar = nil
elseif hud.id_breathbar ~= nil then
player:hud_remove(hud.id_breathbar)
hud.id_breathbar = nil
end
end
@ -101,7 +107,8 @@ local function player_event_handler(player,eventname)
initialize_builtin_statbars(player)
if hud_ids[name].id_healthbar ~= nil then
player:hud_change(hud_ids[name].id_healthbar,"number",player:get_hp())
player:hud_change(hud_ids[name].id_healthbar,
"number", scaleToDefault(player, "hp"))
return true
end
end
@ -110,7 +117,8 @@ local function player_event_handler(player,eventname)
initialize_builtin_statbars(player)
if hud_ids[name].id_breathbar ~= nil then
player:hud_change(hud_ids[name].id_breathbar,"number",player:get_breath()*2)
player:hud_change(hud_ids[name].id_breathbar,
"number", 2 * scaleToDefault(player, "breath"))
return true
end
end

View File

@ -1,15 +1,13 @@
-- Minetest: builtin/static_spawn.lua
local function warn_invalid_static_spawnpoint()
if core.settings:get("static_spawnpoint") and
not core.setting_get_pos("static_spawnpoint") then
core.log("error", "The static_spawnpoint setting is invalid: \""..
core.settings:get("static_spawnpoint").."\"")
end
local static_spawnpoint_string = core.settings:get("static_spawnpoint")
if static_spawnpoint_string and
static_spawnpoint_string ~= "" and
not core.setting_get_pos("static_spawnpoint") then
error('The static_spawnpoint setting is invalid: "' ..
static_spawnpoint_string .. '"')
end
warn_invalid_static_spawnpoint()
local function put_player_in_spawn(player_obj)
local static_spawnpoint = core.setting_get_pos("static_spawnpoint")
if not static_spawnpoint then

View File

@ -25,7 +25,7 @@ os.setlocale("C", "numeric")
minetest = core
-- Load other files
local scriptdir = core.get_builtin_path() .. DIR_DELIM
local scriptdir = core.get_builtin_path()
local gamepath = scriptdir .. "game" .. DIR_DELIM
local clientpath = scriptdir .. "client" .. DIR_DELIM
local commonpath = scriptdir .. "common" .. DIR_DELIM

View File

@ -250,7 +250,7 @@ end
--------------------------------------------------------------------------------
function text2textlist(xpos, ypos, width, height, tl_name, textlen, text, transparency)
local textlines = core.wrap_text(text, textlen)
local textlines = core.wrap_text(text, textlen, true)
local retval = "textlist[" .. xpos .. "," .. ypos .. ";" .. width ..
"," .. height .. ";" .. tl_name .. ";"

View File

@ -15,11 +15,42 @@
--with this program; if not, write to the Free Software Foundation, Inc.,
--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
local worldname = ""
local function create_world_formspec(dialogdata)
local mapgens = core.get_mapgen_names()
local current_seed = core.settings:get("fixed_map_seed") or ""
local current_mg = core.settings:get("mg_name")
local gameid = core.settings:get("menu_last_game")
local game, gameidx = nil , 0
if gameid ~= nil then
game, gameidx = gamemgr.find_by_gameid(gameid)
if gameidx == nil then
gameidx = 0
end
end
local game_by_gameidx = core.get_game(gameidx)
if game_by_gameidx ~= nil then
local gamepath = game_by_gameidx.path
local gameconfig = Settings(gamepath.."/game.conf")
local disallowed_mapgens = (gameconfig:get("disallowed_mapgens") or ""):split()
for key, value in pairs(disallowed_mapgens) do
disallowed_mapgens[key] = value:trim()
end
if disallowed_mapgens then
for i = #mapgens, 1, -1 do
if table.indexof(disallowed_mapgens, mapgens[i]) > 0 then
table.remove(mapgens, i)
end
end
end
end
local mglist = ""
local selindex = 1
@ -32,23 +63,12 @@ local function create_world_formspec(dialogdata)
mglist = mglist .. v .. ","
end
mglist = mglist:sub(1, -2)
local gameid = core.settings:get("menu_last_game")
local game, gameidx = nil , 0
if gameid ~= nil then
game, gameidx = gamemgr.find_by_gameid(gameid)
if gameidx == nil then
gameidx = 0
end
end
current_seed = core.formspec_escape(current_seed)
local retval =
"size[11.5,6.5,true]" ..
"label[2,0;" .. fgettext("World name") .. "]"..
"field[4.5,0.4;6,0.5;te_world_name;;]" ..
"field[4.5,0.4;6,0.5;te_world_name;;" .. minetest.formspec_escape(worldname) .. "]" ..
"label[2,1;" .. fgettext("Seed") .. "]"..
"field[4.5,1.4;6,0.5;te_seed;;".. current_seed .. "]" ..
@ -85,9 +105,12 @@ local function create_world_buttonhandler(this, fields)
local worldname = fields["te_world_name"]
local gameindex = core.get_textlist_index("games")
if gameindex ~= nil and
worldname ~= "" then
if gameindex ~= nil then
if worldname == "" then
local random_number = math.random(10000, 99999)
local random_world_name = "Unnamed" .. random_number
worldname = random_world_name
end
local message = nil
core.settings:set("fixed_map_seed", fields["te_seed"])
@ -112,17 +135,20 @@ local function create_world_buttonhandler(this, fields)
menudata.worldlist:raw_index_by_uid(worldname))
end
else
gamedata.errormessage =
fgettext("No worldname given or no game selected")
gamedata.errormessage = fgettext("No game selected")
end
this:delete()
return true
end
worldname = fields.te_world_name
if fields["games"] then
local gameindex = core.get_textlist_index("games")
core.settings:set("menu_last_game", gamemgr.games[gameindex].id)
return true
end
if fields["world_create_cancel"] then
this:delete()
return true
@ -133,6 +159,7 @@ end
function create_create_world_dlg(update_worldlistfilter)
worldname = ""
local retval = dialog_create("sp_create_world",
create_world_formspec,
create_world_buttonhandler,

View File

@ -25,6 +25,10 @@ local CHAR_CLASSES = {
FLAGS = "[%w_%-%.,]",
}
local function flags_to_table(flags)
return flags:gsub("%s+", ""):split(",", true) -- Remove all spaces and split
end
-- returns error message, or nil
local function parse_setting_line(settings, line, read_all, base_level, allow_secure)
-- comment
@ -111,7 +115,7 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
return
end
if setting_type == "string" or setting_type == "noise_params"
if setting_type == "string"
or setting_type == "key" or setting_type == "v3f" then
local default = remaining_line:match("^(.*)$")
@ -133,6 +137,60 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
return
end
if setting_type == "noise_params_2d"
or setting_type == "noise_params_3d" then
local default = remaining_line:match("^(.*)$")
if not default then
return "Invalid string setting"
end
local values = {}
local ti = 1
local index = 1
for line in default:gmatch("[+-]?[%d.-e]+") do -- All numeric characters
index = default:find("[+-]?[%d.-e]+", index) + line:len()
table.insert(values, line)
ti = ti + 1
if ti > 9 then
break
end
end
index = default:find("[^, ]", index)
local flags = ""
if index then
flags = default:sub(index)
default = default:sub(1, index - 3) -- Make sure no flags in single-line format
end
table.insert(values, flags)
table.insert(settings, {
name = name,
readable_name = readable_name,
type = setting_type,
default = default,
default_table = {
offset = values[1],
scale = values[2],
spread = {
x = values[3],
y = values[4],
z = values[5]
},
seed = values[6],
octaves = values[7],
persistence = values[8],
lacunarity = values[9],
flags = values[10]
},
values = values,
comment = current_comment,
noise_params = true,
flags = flags_to_table("defaults,eased,absvalue")
})
return
end
if setting_type == "bool" then
if remaining_line ~= "false" and remaining_line ~= "true" then
return "Invalid boolean setting"
@ -196,7 +254,7 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
return
end
if setting_type == "path" then
if setting_type == "path" or setting_type == "filepath" then
local default = remaining_line:match("^(.*)$")
if not default then
@ -206,7 +264,7 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
table.insert(settings, {
name = name,
readable_name = readable_name,
type = "path",
type = setting_type,
default = default,
comment = current_comment,
})
@ -236,7 +294,7 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
readable_name = readable_name,
type = "flags",
default = default,
possible = possible,
possible = flags_to_table(possible),
comment = current_comment,
})
return
@ -264,7 +322,7 @@ end
-- read_all: whether to ignore certain setting types for GUI or not
-- parse_mods: whether to parse settingtypes.txt in mods and games
local function parse_config_file(read_all, parse_mods)
local builtin_path = core.get_builtin_path() .. DIR_DELIM .. FILENAME
local builtin_path = core.get_builtin_path() .. FILENAME
local file = io.open(builtin_path, "r")
local settings = {}
if not file then
@ -430,11 +488,61 @@ local function get_current_value(setting)
return value
end
local function get_current_np_group(setting)
local value = core.settings:get_np_group(setting.name)
local t = {}
if value == nil then
t = setting.values
else
table.insert(t, value.offset)
table.insert(t, value.scale)
table.insert(t, value.spread.x)
table.insert(t, value.spread.y)
table.insert(t, value.spread.z)
table.insert(t, value.seed)
table.insert(t, value.octaves)
table.insert(t, value.persistence)
table.insert(t, value.lacunarity)
table.insert(t, value.flags)
end
return t
end
local function get_current_np_group_as_string(setting)
local value = core.settings:get_np_group(setting.name)
local t
if value == nil then
t = setting.default
else
t = value.offset .. ", " ..
value.scale .. ", (" ..
value.spread.x .. ", " ..
value.spread.y .. ", " ..
value.spread.z .. "), " ..
value.seed .. ", " ..
value.octaves .. ", " ..
value.persistence .. ", " ..
value.lacunarity .. ", " ..
value.flags
end
return t
end
local checkboxes = {} -- handle checkboxes events
local function create_change_setting_formspec(dialogdata)
local setting = settings[selected_setting]
local formspec = "size[10,5.2,true]" ..
"button[5,4.5;2,1;btn_done;" .. fgettext("Save") .. "]" ..
"button[3,4.5;2,1;btn_cancel;" .. fgettext("Cancel") .. "]" ..
local height = 5.2
if setting.type == "noise_params_2d" or setting.type == "noise_params_3d" then
-- Three flags, checkboxes on 2 columns, with a vertical space of 1/2 unit
height = 8.7
elseif setting.type == "flags" then
-- Checkboxes on 2 columns, with a vertical space of 1/2 unit
height = 5.2 + math.ceil(#setting.possible / 2) / 2
end
local formspec = "size[10," .. height .. ",true]" ..
"button[5," .. height - 0.7 .. ";2,1;btn_done;" .. fgettext("Save") .. "]" ..
"button[3," .. height - 0.7 .. ";2,1;btn_cancel;" .. fgettext("Cancel") .. "]" ..
"tablecolumns[color;text]" ..
"tableoptions[background=#00000000;highlight=#00000000;border=false]" ..
"table[0,0;10,3;info;"
@ -459,20 +567,6 @@ local function create_change_setting_formspec(dialogdata)
formspec = formspec .. "," .. core.formspec_escape(comment_line) .. ","
end
if setting.type == "flags" then
formspec = formspec .. ",,"
.. "," .. fgettext("Please enter a comma seperated list of flags.") .. ","
.. "," .. fgettext("Possible values are: ")
.. core.formspec_escape(setting.possible:gsub(",", ", ")) .. ","
elseif setting.type == "noise_params" then
formspec = formspec .. ",,"
.. "," .. fgettext("Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, <octaves>, <persistence>") .. ","
.. "," .. fgettext("Optionally the lacunarity can be appended with a leading comma.") .. ","
elseif setting.type == "v3f" then
formspec = formspec .. ",,"
.. "," .. fgettext_ne("Format is 3 numbers separated by commas and inside brackets.") .. ","
end
formspec = formspec:sub(1, -2) -- remove trailing comma
formspec = formspec .. ";1]"
@ -504,17 +598,100 @@ local function create_change_setting_formspec(dialogdata)
end
formspec = formspec .. ";" .. selected_index .. "]"
elseif setting.type == "path" then
elseif setting.type == "path" or setting.type == "filepath" then
local current_value = dialogdata.selected_path
if not current_value then
current_value = get_current_value(setting)
end
formspec = formspec .. "field[0.5,4;7.5,1;te_setting_value;;"
.. core.formspec_escape(current_value) .. "]"
.. "button[8,3.75;2,1;btn_browser_path;" .. fgettext("Browse") .. "]"
.. "button[8,3.75;2,1;btn_browser_" .. setting.type .. ";" .. fgettext("Browse") .. "]"
elseif setting.type == "noise_params_2d" or setting.type == "noise_params_3d" then
local t = get_current_np_group(setting)
local dimension = 3
if setting.type == "noise_params_2d" then
dimension = 2
end
formspec = formspec
.. "label[0,2.5;(" .. dimension .. "D Noise)]"
.. "field[0.5,4;3.3,1;te_offset;Offset;" -- Offset
.. core.formspec_escape(t[1] or "") .. "]"
.. "field[3.8,4;3.3,1;te_scale;Scale;" -- Scale
.. core.formspec_escape(t[2] or "") .. "]"
.. "field[7.1,4;3.3,1;te_seed;Seed;" -- Seed
.. core.formspec_escape(t[6] or "") .. "]"
.. "label[0.5,4.7;Spread]" -- Spread
.. "field[2.0,5;2.8,1;te_spreadx;X;"
.. core.formspec_escape(t[3] or "") .. "]"
.. "field[4.8,5;2.8,1;te_spready;Y;"
.. core.formspec_escape(t[4] or "") .. "]"
.. "field[7.6,5;2.8,1;te_spreadz;Z;"
.. core.formspec_escape(t[5] or "") .. "]"
.. "field[0.5,6;3.3,1;te_octaves;Octaves;" -- Octaves
.. core.formspec_escape(t[7] or "") .. "]"
.. "field[3.8,6;3.3,1;te_persist;Persistance;" -- Persistance
.. core.formspec_escape(t[8] or "") .. "]"
.. "field[7.1,6;3.3,1;te_lacun;Lacunarity;" -- Lacunarity
.. core.formspec_escape(t[9] or "") .. "]"
local enabled_flags = flags_to_table(t[10])
local flags = {}
for _, name in ipairs(enabled_flags) do
-- Index by name, to avoid iterating over all enabled_flags for every possible flag.
flags[name] = true
end
-- Flags
formspec = formspec
.. "checkbox[0.5,6.5;cb_defaults;defaults;" -- defaults
.. tostring(flags["defaults"] == true) .. "]" -- to get false if nil
.. "checkbox[5,6.5;cb_eased;eased;" -- eased
.. tostring(flags["eased"] == true) .. "]"
.. "checkbox[5,7.0;cb_absvalue;absvalue;" -- absvalue
.. tostring(flags["absvalue"] == true) .. "]"
elseif setting.type == "v3f" then
local val = get_current_value(setting)
local v3f = {}
for line in val:gmatch("[+-]?[%d.-e]+") do -- All numeric characters
table.insert(v3f, line)
end
formspec = formspec
.. "field[0.5,4;3.3,1;te_x;X;" -- X
.. core.formspec_escape(v3f[1] or "") .. "]"
.. "field[3.8,4;3.3,1;te_y;Y;" -- Y
.. core.formspec_escape(v3f[2] or "") .. "]"
.. "field[7.1,4;3.3,1;te_z;Z;" -- Z
.. core.formspec_escape(v3f[3] or "") .. "]"
elseif setting.type == "flags" then
local enabled_flags = flags_to_table(get_current_value(setting))
local flags = {}
for _, name in ipairs(enabled_flags) do
-- Index by name, to avoid iterating over all enabled_flags for every possible flag.
flags[name] = true
end
local flags_count = #setting.possible
for i, name in ipairs(setting.possible) do
local x = 0.5
local y = 3.5 + i / 2
if i - 1 >= flags_count / 2 then -- 2nd column
x = 5
y = y - flags_count / 4
end
local checkbox_name = "cb_" .. name
local is_enabled = flags[name] == true -- to get false if nil
checkboxes[checkbox_name] = is_enabled
formspec = formspec .. "checkbox["
.. x .. "," .. y
.. ";" .. checkbox_name .. ";"
.. name .. ";" .. tostring(is_enabled) .. "]"
end
else
-- TODO: fancy input for float, int, flags, noise_params, v3f
-- TODO: fancy input for float, int
local width = 10
local text = get_current_value(setting)
if dialogdata.error_message then
@ -534,8 +711,8 @@ local function create_change_setting_formspec(dialogdata)
end
local function handle_change_setting_buttons(this, fields)
local setting = settings[selected_setting]
if fields["btn_done"] or fields["key_enter"] then
local setting = settings[selected_setting]
if setting.type == "bool" then
local new_value = fields["dd_setting_value"]
-- Note: new_value is the actual (translated) value shown in the dropdown
@ -575,20 +752,64 @@ local function handle_change_setting_buttons(this, fields)
core.update_formspec(this:get_formspec())
return true
end
if setting.min and new_value < setting.min then
this.data.error_message = fgettext_ne("The value must be at least $1.", setting.min)
this.data.entered_text = fields["te_setting_value"]
core.update_formspec(this:get_formspec())
return true
end
if setting.max and new_value > setting.max then
this.data.error_message = fgettext_ne("The value must not be larger than $1.", setting.max)
this.data.entered_text = fields["te_setting_value"]
core.update_formspec(this:get_formspec())
return true
end
core.settings:set(setting.name, new_value)
elseif setting.type == "flags" then
local new_value = fields["te_setting_value"]
for _,value in ipairs(new_value:split(",", true)) do
value = value:trim()
local possible = "," .. setting.possible .. ","
if not possible:find("," .. value .. ",", 0, true) then
this.data.error_message = fgettext_ne("\"$1\" is not a valid flag.", value)
this.data.entered_text = fields["te_setting_value"]
core.update_formspec(this:get_formspec())
return true
local values = {}
for _, name in ipairs(setting.possible) do
if checkboxes["cb_" .. name] then
table.insert(values, name)
end
end
checkboxes = {}
local new_value = table.concat(values, ", ")
core.settings:set(setting.name, new_value)
elseif setting.type == "noise_params_2d" or setting.type == "noise_params_3d" then
local np_flags = {}
for _, name in ipairs(setting.flags) do
if checkboxes["cb_" .. name] then
table.insert(np_flags, name)
end
end
checkboxes = {}
local new_value = {
offset = fields["te_offset"],
scale = fields["te_scale"],
spread = {
x = fields["te_spreadx"],
y = fields["te_spready"],
z = fields["te_spreadz"]
},
seed = fields["te_seed"],
octaves = fields["te_octaves"],
persistence = fields["te_persist"],
lacunarity = fields["te_lacun"],
flags = table.concat(np_flags, ", ")
}
core.settings:set_np_group(setting.name, new_value)
elseif setting.type == "v3f" then
local new_value = "("
.. fields["te_x"] .. ", "
.. fields["te_y"] .. ", "
.. fields["te_z"] .. ")"
core.settings:set(setting.name, new_value)
else
@ -606,7 +827,13 @@ local function handle_change_setting_buttons(this, fields)
end
if fields["btn_browser_path"] then
core.show_file_open_dialog("dlg_browse_path", fgettext_ne("Select path"))
core.show_path_select_dialog("dlg_browse_path",
fgettext_ne("Select directory"), false)
end
if fields["btn_browser_filepath"] then
core.show_path_select_dialog("dlg_browse_path",
fgettext_ne("Select file"), true)
end
if fields["dlg_browse_path_accepted"] then
@ -614,6 +841,16 @@ local function handle_change_setting_buttons(this, fields)
core.update_formspec(this:get_formspec())
end
if setting.type == "flags"
or setting.type == "noise_params_2d"
or setting.type == "noise_params_3d" then
for name, value in pairs(fields) do
if name:sub(1, 3) == "cb_" then
checkboxes[name] = value == "true"
end
end
end
return false
end
@ -652,6 +889,10 @@ local function create_settings_formspec(tabview, name, tabdata)
elseif entry.type == "key" then
-- ignore key settings, since we have a special dialog for them
elseif entry.type == "noise_params_2d" or entry.type == "noise_params_3d" then
formspec = formspec .. "," .. (current_level + 1) .. "," .. core.formspec_escape(name) .. ","
.. core.formspec_escape(get_current_np_group_as_string(entry)) .. ","
else
formspec = formspec .. "," .. (current_level + 1) .. "," .. core.formspec_escape(name) .. ","
.. core.formspec_escape(get_current_value(entry)) .. ","
@ -736,7 +977,12 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
if fields["btn_restore"] then
local setting = settings[selected_setting]
if setting and setting.type ~= "category" then
core.settings:set(setting.name, setting.default)
if setting.type == "noise_params_2d"
or setting.type == "noise_params_3d" then
core.settings:set_np_group(setting.name, setting.default_table)
else
core.settings:set(setting.name, setting.default)
end
core.settings:write()
core.update_formspec(this:get_formspec())
end
@ -767,6 +1013,7 @@ function create_adv_settings_dlg()
return dlg
end
-- Generate minetest.conf.example and settings_translation_file.cpp
-- Uncomment to generate minetest.conf.example and settings_translation_file.cpp
-- For RUN_IN_PLACE the generated files may appear in the bin folder
--assert(loadfile(core.get_builtin_path()..DIR_DELIM.."mainmenu"..DIR_DELIM.."generate_from_settingtypes.lua"))(parse_config_file(true, false))
--assert(loadfile(core.get_builtin_path().."mainmenu"..DIR_DELIM.."generate_from_settingtypes.lua"))(parse_config_file(true, false))

View File

@ -22,6 +22,20 @@ local minetest_example_header = [[
]]
local group_format_template = [[
# %s = {
# offset = %s,
# scale = %s,
# spread = (%s, %s, %s),
# seed = %s,
# octaves = %s,
# persistence = %s,
# lacunarity = %s,
# flags = "%s"
# }
]]
local function create_minetest_conf_example()
local result = { minetest_example_header }
for _, entry in ipairs(settings) do
@ -33,6 +47,12 @@ local function create_minetest_conf_example()
insert(result, "# " .. entry.name .. "\n\n")
end
else
local group_format = false
if entry.noise_params and entry.values then
if entry.type == "noise_params_2d" or entry.type == "noise_params_3d" then
group_format = true
end
end
if entry.comment ~= "" then
for _, comment_line in ipairs(entry.comment:split("\n", true)) do
insert(result, "# " .. comment_line .. "\n")
@ -45,18 +65,25 @@ local function create_minetest_conf_example()
if entry.max then
insert(result, " max: " .. entry.max)
end
if entry.values then
if entry.values and entry.noise_params == nil then
insert(result, " values: " .. concat(entry.values, ", "))
end
if entry.possible then
insert(result, " possible values: " .. entry.possible:gsub(",", ", "))
insert(result, " possible values: " .. concat(entry.possible, ", "))
end
insert(result, "\n")
local append
if entry.default ~= "" then
append = " " .. entry.default
if group_format == true then
insert(result, sprintf(group_format_template, entry.name, entry.values[1],
entry.values[2], entry.values[3], entry.values[4], entry.values[5],
entry.values[6], entry.values[7], entry.values[8], entry.values[9],
entry.values[10]))
else
local append
if entry.default ~= "" then
append = " " .. entry.default
end
insert(result, sprintf("# %s =%s\n\n", entry.name, append or ""))
end
insert(result, sprintf("# %s =%s\n\n", entry.name, append or ""))
end
end
return concat(result)

View File

@ -27,16 +27,15 @@ local basepath = core.get_builtin_path()
defaulttexturedir = core.get_texturepath_share() .. DIR_DELIM .. "base" ..
DIR_DELIM .. "pack" .. DIR_DELIM
dofile(basepath .. DIR_DELIM .. "common" .. DIR_DELIM .. "async_event.lua")
dofile(basepath .. DIR_DELIM .. "common" .. DIR_DELIM .. "filterlist.lua")
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "buttonbar.lua")
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "dialog.lua")
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "tabview.lua")
dofile(basepath .. DIR_DELIM .. "fstk" .. DIR_DELIM .. "ui.lua")
dofile(basepath .. "common" .. DIR_DELIM .. "async_event.lua")
dofile(basepath .. "common" .. DIR_DELIM .. "filterlist.lua")
dofile(basepath .. "fstk" .. DIR_DELIM .. "buttonbar.lua")
dofile(basepath .. "fstk" .. DIR_DELIM .. "dialog.lua")
dofile(basepath .. "fstk" .. DIR_DELIM .. "tabview.lua")
dofile(basepath .. "fstk" .. DIR_DELIM .. "ui.lua")
dofile(menupath .. DIR_DELIM .. "common.lua")
dofile(menupath .. DIR_DELIM .. "gamemgr.lua")
dofile(menupath .. DIR_DELIM .. "modmgr.lua")
dofile(menupath .. DIR_DELIM .. "store.lua")
dofile(menupath .. DIR_DELIM .. "textures.lua")
dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua")
@ -152,13 +151,6 @@ local function init_globals()
ui.set_default("maintab")
tv_main:show()
-- Create modstore ui
if PLATFORM == "Android" then
modstore.init({x = 12, y = 6}, 3, 2)
else
modstore.init({x = 12, y = 8}, 4, 3)
end
ui.update()
core.sound_play("main_menu", true)

View File

@ -1,614 +0,0 @@
--Minetest
--Copyright (C) 2013 sapier
--
--This program is free software; you can redistribute it and/or modify
--it under the terms of the GNU Lesser General Public License as published by
--the Free Software Foundation; either version 2.1 of the License, or
--(at your option) any later version.
--
--This program is distributed in the hope that it will be useful,
--but WITHOUT ANY WARRANTY; without even the implied warranty of
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--GNU Lesser General Public License for more details.
--
--You should have received a copy of the GNU Lesser General Public License along
--with this program; if not, write to the Free Software Foundation, Inc.,
--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
--------------------------------------------------------------------------------
--modstore implementation
modstore = {}
--------------------------------------------------------------------------------
-- @function [parent=#modstore] init
function modstore.init(size, unsortedmods, searchmods)
modstore.mods_on_unsorted_page = unsortedmods
modstore.mods_on_search_page = searchmods
modstore.modsperpage = modstore.mods_on_unsorted_page
modstore.basetexturedir = core.get_texturepath() .. DIR_DELIM .. "base" ..
DIR_DELIM .. "pack" .. DIR_DELIM
modstore.lastmodtitle = ""
modstore.last_search = ""
modstore.searchlist = filterlist.create(
function()
if modstore.modlist_unsorted ~= nil and
modstore.modlist_unsorted.data ~= nil then
return modstore.modlist_unsorted.data
end
return {}
end,
function(element,modid)
if element.id == modid then
return true
end
return false
end, --compare fct
nil, --uid match fct
function(element,substring)
if substring == nil or
substring == "" then
return false
end
substring = substring:upper()
if element.title ~= nil and
element.title:upper():find(substring) ~= nil then
return true
end
if element.details ~= nil and
element.details.author ~= nil and
element.details.author:upper():find(substring) ~= nil then
return true
end
if element.details ~= nil and
element.details.description ~= nil and
element.details.description:upper():find(substring) ~= nil then
return true
end
return false
end --filter fct
)
modstore.current_list = nil
modstore.tv_store = tabview_create("modstore",size,{x=0,y=0})
modstore.tv_store:set_global_event_handler(modstore.handle_events)
modstore.tv_store:add(
{
name = "unsorted",
caption = fgettext("Unsorted"),
cbf_formspec = modstore.unsorted_tab,
cbf_button_handler = modstore.handle_buttons,
on_change =
function() modstore.modsperpage = modstore.mods_on_unsorted_page end
}
)
modstore.tv_store:add(
{
name = "search",
caption = fgettext("Search"),
cbf_formspec = modstore.getsearchpage,
cbf_button_handler = modstore.handle_buttons,
on_change = modstore.activate_search_tab
}
)
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] nametoindex
function modstore.nametoindex(name)
for i=1,#modstore.tabnames,1 do
if modstore.tabnames[i] == name then
return i
end
end
return 1
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] showdownloading
function modstore.showdownloading(title)
local new_dlg = dialog_create("store_downloading",
function(data)
return "size[6,2]label[0.25,0.75;" ..
fgettext("Downloading $1, please wait...", data.title) .. "]"
end,
function(this,fields)
if fields["btn_hidden_close_download"] ~= nil then
if fields["btn_hidden_close_download"].successfull then
modstore.lastmodentry = fields["btn_hidden_close_download"]
modstore.successfulldialog(this)
else
this.parent:show()
this:delete()
modstore.lastmodtitle = ""
end
return true
end
return false
end,
nil)
new_dlg:set_parent(modstore.tv_store)
modstore.tv_store:hide()
new_dlg.data.title = title
new_dlg:show()
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] successfulldialog
function modstore.successfulldialog(downloading_dlg)
local new_dlg = dialog_create("store_downloading",
function(data)
local retval = ""
retval = retval .. "size[6,2,true]"
if modstore.lastmodentry ~= nil then
retval = retval .. "label[0,0.25;" .. fgettext("Successfully installed:") .. "]"
retval = retval .. "label[3,0.25;" .. modstore.lastmodentry.moddetails.title .. "]"
retval = retval .. "label[0,0.75;" .. fgettext("Shortname:") .. "]"
retval = retval .. "label[3,0.75;" .. core.formspec_escape(modstore.lastmodentry.moddetails.basename) .. "]"
end
retval = retval .. "button[2.2,1.5;1.5,0.5;btn_confirm_mod_successfull;" .. fgettext("Ok") .. "]"
return retval
end,
function(this,fields)
if fields["btn_confirm_mod_successfull"] ~= nil then
this.parent:show()
downloading_dlg:delete()
this:delete()
return true
end
return false
end,
nil)
new_dlg:set_parent(modstore.tv_store)
modstore.tv_store:hide()
new_dlg:show()
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] handle_buttons
function modstore.handle_buttons(parent, fields, name, data)
if fields["btn_modstore_page_up"] then
if modstore.current_list ~= nil and modstore.current_list.page > 0 then
modstore.current_list.page = modstore.current_list.page - 1
end
return true
end
if fields["btn_modstore_page_down"] then
if modstore.current_list ~= nil and
modstore.current_list.page <modstore.current_list.pagecount-1 then
modstore.current_list.page = modstore.current_list.page +1
end
return true
end
if fields["btn_modstore_search"] or
(fields["key_enter"] and fields["te_modstore_search"] ~= nil) then
modstore.last_search = fields["te_modstore_search"]
filterlist.set_filtercriteria(modstore.searchlist,fields["te_modstore_search"])
filterlist.refresh(modstore.searchlist)
modstore.currentlist = {
page = 0,
pagecount = math.ceil(filterlist.size(modstore.searchlist) / modstore.modsperpage),
data = filterlist.get_list(modstore.searchlist),
}
return true
end
if fields["btn_modstore_close"] then
local maintab = ui.find_by_name("maintab")
parent:hide()
maintab:show()
return true
end
for key,value in pairs(fields) do
local foundat = key:find("btn_install_mod_")
if ( foundat == 1) then
local modid = tonumber(key:sub(17))
for i=1,#modstore.modlist_unsorted.data,1 do
if modstore.modlist_unsorted.data[i].id == modid then
local moddetails = modstore.modlist_unsorted.data[i].details
modstore.lastmodtitle = moddetails.title
if not core.handle_async(
function(param)
local fullurl = core.settings:get("modstore_download_url") ..
param.moddetails.download_url
if param.version ~= nil then
local found = false
for i=1,#param.moddetails.versions, 1 do
if param.moddetails.versions[i].date:sub(1,10) == param.version then
fullurl = core.settings:get("modstore_download_url") ..
param.moddetails.versions[i].download_url
found = true
end
end
if not found then
core.log("error","no download url found for version " .. dump(param.version))
return {
moddetails = param.moddetails,
successfull = false
}
end
end
if core.download_file(fullurl,param.filename) then
return {
texturename = param.texturename,
moddetails = param.moddetails,
filename = param.filename,
successfull = true
}
else
core.log("error","downloading " .. dump(fullurl) .. " failed")
return {
moddetails = param.moddetails,
successfull = false
}
end
end,
{
moddetails = moddetails,
version = fields["dd_version" .. modid],
filename = os.tempfolder() .. "_MODNAME_" .. moddetails.basename .. ".zip",
texturename = modstore.modlist_unsorted.data[i].texturename
},
function(result)
--print("Result from async: " .. dump(result.successfull))
if result.successfull then
modmgr.installmod(result.filename,result.moddetails.basename)
os.remove(result.filename)
else
gamedata.errormessage = "Failed to download " .. result.moddetails.title
end
if gamedata.errormessage == nil then
core.button_handler({btn_hidden_close_download=result})
else
core.button_handler({btn_hidden_close_download={successfull=false}})
end
end
) then
print("ERROR: async event failed")
gamedata.errormessage = "Failed to download " .. modstore.lastmodtitle
end
modstore.showdownloading(modstore.lastmodtitle)
return true
end
end
return true
end
end
return false
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] handle_events
function modstore.handle_events(this,event)
if (event == "MenuQuit") then
this:hide()
return true
end
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] update_modlist
function modstore.update_modlist()
modstore.modlist_unsorted = {}
modstore.modlist_unsorted.data = {}
modstore.modlist_unsorted.pagecount = 1
modstore.modlist_unsorted.page = 0
core.handle_async(
function(param)
return core.get_modstore_list()
end,
nil,
function(result)
if result ~= nil then
modstore.modlist_unsorted = {}
modstore.modlist_unsorted.data = result
if modstore.modlist_unsorted.data ~= nil then
modstore.modlist_unsorted.pagecount =
math.ceil((#modstore.modlist_unsorted.data / modstore.modsperpage))
else
modstore.modlist_unsorted.data = {}
modstore.modlist_unsorted.pagecount = 1
end
modstore.modlist_unsorted.page = 0
modstore.fetchdetails()
core.event_handler("Refresh")
end
end
)
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] fetchdetails
function modstore.fetchdetails()
for i=1,#modstore.modlist_unsorted.data,1 do
core.handle_async(
function(param)
param.details = core.get_modstore_details(tostring(param.modid))
return param
end,
{
modid=modstore.modlist_unsorted.data[i].id,
listindex=i
},
function(result)
if result ~= nil and
modstore.modlist_unsorted ~= nil
and modstore.modlist_unsorted.data ~= nil and
modstore.modlist_unsorted.data[result.listindex] ~= nil and
modstore.modlist_unsorted.data[result.listindex].id ~= nil then
modstore.modlist_unsorted.data[result.listindex].details = result.details
core.event_handler("Refresh")
end
end
)
end
end
--------------------------------------------------------------------------------
-- @function [parent=#modstore] getscreenshot
function modstore.getscreenshot(ypos,listentry)
if listentry.details ~= nil and
(listentry.details.screenshot_url == nil or
listentry.details.screenshot_url == "") then
if listentry.texturename == nil then
listentry.texturename = defaulttexturedir .. "no_screenshot.png"
end
return "image[0,".. ypos .. ";3,2;" ..
core.formspec_escape(listentry.texturename) .. "]"
end
if listentry.details ~= nil and
listentry.texturename == nil then
--make sure we don't download multiple times
listentry.texturename = "in progress"
--prepare url and filename
local fullurl = core.settings:get("modstore_download_url") ..
listentry.details.screenshot_url
local filename = os.tempfolder() .. "_MID_" .. listentry.id
--trigger download
core.handle_async(
--first param is downloadfct
function(param)
param.successfull = core.download_file(param.fullurl,param.filename)
return param
end,
--second parameter is data passed to async job
{
fullurl = fullurl,
filename = filename,
modid = listentry.id
},
--integrate result to raw list
function(result)
if result.successfull then
local found = false
for i=1,#modstore.modlist_unsorted.data,1 do
if modstore.modlist_unsorted.data[i].id == result.modid then
found = true
modstore.modlist_unsorted.data[i].texturename = result.filename
break
end
end
if found then
core.event_handler("Refresh")
else
core.log("error","got screenshot but didn't find matching mod: " .. result.modid)
end
end
end
)
end
if listentry.texturename ~= nil and
listentry.texturename ~= "in progress" then
return "image[0,".. ypos .. ";3,2;" ..
core.formspec_escape(listentry.texturename) .. "]"
end
return ""
end
--------------------------------------------------------------------------------
--@function [parent=#modstore] getshortmodinfo
function modstore.getshortmodinfo(ypos,listentry,details)
local retval = ""
retval = retval .. "box[0," .. ypos .. ";11.4,1.75;#FFFFFF]"
--screenshot
retval = retval .. modstore.getscreenshot(ypos,listentry)
--title + author
retval = retval .."label[2.75," .. ypos .. ";" ..
core.formspec_escape(details.title) .. " (" .. details.author .. ")]"
--description
local descriptiony = ypos + 0.5
retval = retval .. "textarea[3," .. descriptiony .. ";6.5,1.55;;" ..
core.formspec_escape(details.description) .. ";]"
--rating
local ratingy = ypos
retval = retval .."label[7," .. ratingy .. ";" ..
fgettext("Rating") .. ":]"
retval = retval .. "label[8.7," .. ratingy .. ";" .. details.rating .."]"
--versions (IMPORTANT has to be defined AFTER rating)
if details.versions ~= nil and
#details.versions > 1 then
local versiony = ypos + 0.05
retval = retval .. "dropdown[9.1," .. versiony .. ";2.48,0.25;dd_version" .. details.id .. ";"
local versions = ""
for i=1,#details.versions , 1 do
if versions ~= "" then
versions = versions .. ","
end
versions = versions .. details.versions[i].date:sub(1,10)
end
retval = retval .. versions .. ";1]"
end
if details.basename then
--install button
local buttony = ypos + 1.2
retval = retval .."button[9.1," .. buttony .. ";2.5,0.5;btn_install_mod_" .. details.id .. ";"
if modmgr.mod_exists(details.basename) then
retval = retval .. fgettext("re-Install") .."]"
else
retval = retval .. fgettext("Install") .."]"
end
end
return retval
end
--------------------------------------------------------------------------------
--@function [parent=#modstore] getmodlist
function modstore.getmodlist(list,yoffset)
modstore.current_list = list
if yoffset == nil then
yoffset = 0
end
local sb_y_start = 0.2 + yoffset
local sb_y_end = (modstore.modsperpage * 1.75) + ((modstore.modsperpage-1) * 0.15)
local close_button = "button[4," .. (sb_y_end + 0.3 + yoffset) ..
";4,0.5;btn_modstore_close;" .. fgettext("Close store") .. "]"
if #list.data == 0 then
return close_button
end
local scrollbar = ""
scrollbar = scrollbar .. "label[0.1,".. (sb_y_end + 0.25 + yoffset) ..";"
.. fgettext("Page $1 of $2", list.page+1, list.pagecount) .. "]"
scrollbar = scrollbar .. "box[11.6," .. sb_y_start .. ";0.28," .. sb_y_end .. ";#000000]"
local scrollbarpos = (sb_y_start + 0.5) +
((sb_y_end -1.6)/(list.pagecount-1)) * list.page
scrollbar = scrollbar .. "box[11.6," ..scrollbarpos .. ";0.28,0.5;#32CD32]"
scrollbar = scrollbar .. "button[11.6," .. (sb_y_start)
.. ";0.5,0.5;btn_modstore_page_up;^]"
scrollbar = scrollbar .. "button[11.6," .. (sb_y_start + sb_y_end - 0.5)
.. ";0.5,0.5;btn_modstore_page_down;v]"
local retval = ""
local endmod = (list.page * modstore.modsperpage) + modstore.modsperpage
if (endmod > #list.data) then
endmod = #list.data
end
for i=(list.page * modstore.modsperpage) +1, endmod, 1 do
--getmoddetails
local details = list.data[i].details
if details == nil then
details = {}
details.title = list.data[i].title
details.author = ""
details.rating = -1
details.description = ""
end
if details ~= nil then
local screenshot_ypos =
yoffset +(i-1 - (list.page * modstore.modsperpage))*1.9 +0.2
retval = retval .. modstore.getshortmodinfo(screenshot_ypos,
list.data[i],
details)
end
end
return retval .. scrollbar .. close_button
end
--------------------------------------------------------------------------------
--@function [parent=#modstore] getsearchpage
function modstore.getsearchpage(tabview, name, tabdata)
local retval = ""
local search = ""
if modstore.last_search ~= nil then
search = modstore.last_search
end
retval = retval ..
"button[9.5,0.2;2.5,0.5;btn_modstore_search;".. fgettext("Search") .. "]" ..
"field[0.5,0.5;9,0.5;te_modstore_search;;" .. search .. "]"
retval = retval ..
modstore.getmodlist(
modstore.currentlist,
1.75)
return retval;
end
--------------------------------------------------------------------------------
--@function [parent=#modstore] unsorted_tab
function modstore.unsorted_tab()
return modstore.getmodlist(modstore.modlist_unsorted)
end
--------------------------------------------------------------------------------
--@function [parent=#modstore] activate_search_tab
function modstore.activate_search_tab(type, old_tab, new_tab)
if old_tab == new_tab then
return
end
filterlist.set_filtercriteria(modstore.searchlist,modstore.last_search)
filterlist.refresh(modstore.searchlist)
modstore.modsperpage = modstore.mods_on_search_page
modstore.currentlist = {
page = 0,
pagecount =
math.ceil(filterlist.size(modstore.searchlist) / modstore.modsperpage),
data = filterlist.get_list(modstore.searchlist),
}
end

View File

@ -24,7 +24,7 @@ local core_developers = {
"Nathanaël Courant (Nore/Ekdohibs) <nore@mesecons.net>",
"Loic Blot (nerzhul/nrz) <loic.blot@unix-experience.fr>",
"paramat",
"Craig Robbins (Zeno) <craig.d.robbins@gmail.com>",
"Zeno",
"Auke Kok (sofar) <sofar@foo-projects.org>",
"rubenwardy <rw@rubenwardy.com>",
"Krock/SmallJoker <mk939@ymail.com>",
@ -74,7 +74,7 @@ local previous_contributors = {
}
local function buildCreditList(source)
ret = {}
local ret = {}
for i = 1, #source do
ret[i] = core.formspec_escape(source[i])
end

View File

@ -93,9 +93,9 @@ local function get_formspec(tabview, name, tabdata)
)
retval = retval ..
"button[4,4.15;2.6,0.5;world_delete;".. fgettext("Delete") .. "]" ..
"button[6.5,4.15;2.8,0.5;world_create;".. fgettext("New") .. "]" ..
"button[9.2,4.15;2.55,0.5;world_configure;".. fgettext("Configure") .. "]" ..
"button[4,3.95;2.6,1;world_delete;".. fgettext("Delete") .. "]" ..
"button[6.5,3.95.15;2.8,1;world_create;".. fgettext("New") .. "]" ..
"button[9.2,3.95;2.5,1;world_configure;".. fgettext("Configure") .. "]" ..
"label[4,-0.25;".. fgettext("Select World:") .. "]"..
"checkbox[0.25,0.25;cb_creative_mode;".. fgettext("Creative Mode") .. ";" ..
dump(core.settings:get_bool("creative_mode")) .. "]"..
@ -109,7 +109,7 @@ local function get_formspec(tabview, name, tabdata)
if core.settings:get_bool("enable_server") then
retval = retval ..
"button[8.5,5;3.25,0.5;play;".. fgettext("Host Game") .. "]" ..
"button[8.5,4.8;3.2,1;play;".. fgettext("Host Game") .. "]" ..
"checkbox[0.25,1.6;cb_server_announce;" .. fgettext("Announce Server") .. ";" ..
dump(core.settings:get_bool("server_announce")) .. "]" ..
"label[0.25,2.2;" .. fgettext("Name/Password") .. "]" ..
@ -131,7 +131,7 @@ local function get_formspec(tabview, name, tabdata)
end
else
retval = retval ..
"button[8.5,5;3.25,0.5;play;".. fgettext("Play Game") .. "]"
"button[8.5,4.8;3.2,1;play;".. fgettext("Play Game") .. "]"
end
return retval
@ -310,7 +310,7 @@ end
--------------------------------------------------------------------------------
return {
name = "local",
caption = fgettext("Local Game"),
caption = fgettext("Start Game"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = on_change

View File

@ -33,15 +33,6 @@ local function get_formspec(tabview, name, tabdata)
modmgr.render_modlist(modmgr.global_mods) ..
";" .. tabdata.selected_mod .. "]"
retval = retval ..
-- "label[0.8,4.2;" .. fgettext("Add mod:") .. "]" ..
-- TODO Disabled due to upcoming release 0.4.8 and irrlicht messing up localization
-- "button[0.75,4.85;1.8,0.5;btn_mod_mgr_install_local;".. fgettext("Local install") .. "]" ..
-- TODO Disabled due to service being offline, and not likely to come online again, in this form
-- "button[0,4.85;5.25,0.5;btn_modstore;".. fgettext("Online mod repository") .. "]"
""
local selected_mod = nil
if filterlist.size(modmgr.global_mods) >= tabdata.selected_mod then
@ -75,7 +66,7 @@ local function get_formspec(tabview, name, tabdata)
if error == nil then
local descriptiontext = descriptionfile:read("*all")
descriptionlines = core.wrap_text(descriptiontext, 42)
descriptionlines = core.wrap_text(descriptiontext, 42, true)
descriptionfile:close()
else
descriptionlines = {}
@ -83,7 +74,7 @@ local function get_formspec(tabview, name, tabdata)
end
retval = retval ..
"label[5.5,1.7;".. fgettext("Mod information:") .. "]" ..
"label[5.5,1.7;".. fgettext("Mod Information:") .. "]" ..
"textlist[5.5,2.2;6.2,2.4;description;"
for i=1,#descriptionlines,1 do
@ -93,10 +84,10 @@ local function get_formspec(tabview, name, tabdata)
if selected_mod.is_modpack then
retval = retval .. ";0]" ..
"button[10,4.85;2,0.5;btn_mod_mgr_rename_modpack;" ..
"button[9.9,4.65;2,1;btn_mod_mgr_rename_modpack;" ..
fgettext("Rename") .. "]"
retval = retval .. "button[5.5,4.85;4.5,0.5;btn_mod_mgr_delete_mod;"
.. fgettext("Uninstall selected modpack") .. "]"
retval = retval .. "button[5.5,4.65;4.5,1;btn_mod_mgr_delete_mod;"
.. fgettext("Uninstall Selected Modpack") .. "]"
else
--show dependencies
local toadd_hard, toadd_soft = modmgr.get_dependencies(selected_mod.path)
@ -118,8 +109,8 @@ local function get_formspec(tabview, name, tabdata)
retval = retval .. ";0]"
retval = retval .. "button[5.5,4.85;4.5,0.5;btn_mod_mgr_delete_mod;"
.. fgettext("Uninstall selected mod") .. "]"
retval = retval .. "button[5.5,4.65;4.5,1;btn_mod_mgr_delete_mod;"
.. fgettext("Uninstall Selected Mod") .. "]"
end
end
return retval
@ -138,18 +129,6 @@ local function handle_buttons(tabview, fields, tabname, tabdata)
return true
end
if fields["btn_modstore"] ~= nil then
local modstore_ui = ui.find_by_name("modstore")
if modstore_ui ~= nil then
tabview:hide()
modstore.update_modlist()
modstore_ui:show()
else
print("modstore ui element not found")
end
return true
end
if fields["btn_mod_mgr_rename_modpack"] ~= nil then
local dlg_renamemp = create_rename_modpack_dlg(tabdata.selected_mod)
dlg_renamemp:set_parent(tabview)

View File

@ -33,8 +33,8 @@ local function get_formspec(tabview, name, tabdata)
local retval =
-- Search
"field[0.15,0.35;6.05,0.27;te_search;;"..core.formspec_escape(tabdata.search_for).."]"..
"button[5.8,0.1;2,0.1;btn_mp_search;" .. fgettext("Search") .. "]" ..
"field[0.15,0.075;6.05,1;te_search;;"..core.formspec_escape(tabdata.search_for).."]"..
"button[5.8,-0.25;2,1;btn_mp_search;" .. fgettext("Search") .. "]" ..
-- Address / Port
"label[7.75,-0.25;" .. fgettext("Address / Port") .. "]" ..
@ -53,16 +53,16 @@ local function get_formspec(tabview, name, tabdata)
"box[7.73,2.25;4.25,2.6;#999999]"..
-- Connect
"button[10.1,5.15;2,0.5;btn_mp_connect;" .. fgettext("Connect") .. "]"
"button[9.88,4.9;2.3,1;btn_mp_connect;" .. fgettext("Connect") .. "]"
if tabdata.fav_selected and fav_selected then
if gamedata.fav then
retval = retval .. "button[7.75,5.15;2.3,0.5;btn_delete_favorite;" ..
retval = retval .. "button[7.73,4.9;2.3,1;btn_delete_favorite;" ..
fgettext("Del. Favorite") .. "]"
end
if fav_selected.description then
retval = retval .. "textarea[8.1,2.3;4.23,2.9;;" ..
core.formspec_escape((gamedata.serverdescription or ""), true) .. ";]"
retval = retval .. "textarea[8.1,2.3;4.23,2.9;;;" ..
core.formspec_escape((gamedata.serverdescription or ""), true) .. "]"
end
end
@ -295,6 +295,7 @@ local function main_button_handler(tabview, fields, name, tabdata)
local first_server = search_result[1]
core.settings:set("address", first_server.address)
core.settings:set("remote_port", first_server.port)
gamedata.serverdescription = first_server.description
end
return true
end
@ -343,7 +344,7 @@ end
--------------------------------------------------------------------------------
return {
name = "online",
caption = fgettext("Play Online"),
caption = fgettext("Join Game"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = on_change

View File

@ -176,7 +176,7 @@ end
local function formspec(tabview, name, tabdata)
local tab_string =
"box[0,0;3.5,4.5;#999999]" ..
"box[0,0;3.75,4.5;#999999]" ..
"checkbox[0.25,0;cb_smooth_lighting;" .. fgettext("Smooth Lighting") .. ";"
.. dump(core.settings:get_bool("smooth_lighting")) .. "]" ..
"checkbox[0.25,0.5;cb_particles;" .. fgettext("Particles") .. ";"
@ -187,38 +187,38 @@ local function formspec(tabview, name, tabdata)
.. dump(core.settings:get_bool("opaque_water")) .. "]" ..
"checkbox[0.25,2.0;cb_connected_glass;" .. fgettext("Connected Glass") .. ";"
.. dump(core.settings:get_bool("connected_glass")) .. "]" ..
"dropdown[0.25,2.8;3.3;dd_node_highlighting;" .. dd_options.node_highlighting[1] .. ";"
"dropdown[0.25,2.8;3.5;dd_node_highlighting;" .. dd_options.node_highlighting[1] .. ";"
.. getSettingIndex.NodeHighlighting() .. "]" ..
"dropdown[0.25,3.6;3.3;dd_leaves_style;" .. dd_options.leaves[1] .. ";"
"dropdown[0.25,3.6;3.5;dd_leaves_style;" .. dd_options.leaves[1] .. ";"
.. getSettingIndex.Leaves() .. "]" ..
"box[3.75,0;3.75,4.45;#999999]" ..
"label[3.85,0.1;" .. fgettext("Texturing:") .. "]" ..
"dropdown[3.85,0.55;3.85;dd_filters;" .. dd_options.filters[1] .. ";"
"box[4,0;3.75,4.5;#999999]" ..
"label[4.25,0.1;" .. fgettext("Texturing:") .. "]" ..
"dropdown[4.25,0.55;3.5;dd_filters;" .. dd_options.filters[1] .. ";"
.. getSettingIndex.Filter() .. "]" ..
"dropdown[3.85,1.35;3.85;dd_mipmap;" .. dd_options.mipmap[1] .. ";"
"dropdown[4.25,1.35;3.5;dd_mipmap;" .. dd_options.mipmap[1] .. ";"
.. getSettingIndex.Mipmap() .. "]" ..
"label[3.85,2.15;" .. fgettext("Antialiasing:") .. "]" ..
"dropdown[3.85,2.6;3.85;dd_antialiasing;" .. dd_options.antialiasing[1] .. ";"
"label[4.25,2.15;" .. fgettext("Antialiasing:") .. "]" ..
"dropdown[4.25,2.6;3.5;dd_antialiasing;" .. dd_options.antialiasing[1] .. ";"
.. getSettingIndex.Antialiasing() .. "]" ..
"label[3.85,3.45;" .. fgettext("Screen:") .. "]" ..
"checkbox[3.85,3.6;cb_autosave_screensize;" .. fgettext("Autosave screen size") .. ";"
"label[4.25,3.45;" .. fgettext("Screen:") .. "]" ..
"checkbox[4.25,3.6;cb_autosave_screensize;" .. fgettext("Autosave Screen Size") .. ";"
.. dump(core.settings:get_bool("autosave_screensize")) .. "]" ..
"box[7.75,0;4,4.4;#999999]" ..
"checkbox[8,0;cb_shaders;" .. fgettext("Shaders") .. ";"
"box[8,0;3.75,4.5;#999999]" ..
"checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders") .. ";"
.. dump(core.settings:get_bool("enable_shaders")) .. "]"
if PLATFORM == "Android" then
tab_string = tab_string ..
"button[8,4.75;3.75,0.5;btn_reset_singleplayer;"
"button[8,4.75;3.95,1;btn_reset_singleplayer;"
.. fgettext("Reset singleplayer world") .. "]"
else
tab_string = tab_string ..
"button[8,4.85;3.75,0.5;btn_change_keys;"
.. fgettext("Change keys") .. "]"
"button[8,4.75;3.95,1;btn_change_keys;"
.. fgettext("Change Keys") .. "]"
end
tab_string = tab_string ..
"button[0,4.85;3.75,0.5;btn_advanced_settings;"
"button[0,4.75;3.95,1;btn_advanced_settings;"
.. fgettext("Advanced Settings") .. "]"
@ -231,33 +231,36 @@ local function formspec(tabview, name, tabdata)
if core.settings:get_bool("enable_shaders") then
tab_string = tab_string ..
"checkbox[8,0.5;cb_bumpmapping;" .. fgettext("Bump Mapping") .. ";"
"checkbox[8.25,0.5;cb_bumpmapping;" .. fgettext("Bump Mapping") .. ";"
.. dump(core.settings:get_bool("enable_bumpmapping")) .. "]" ..
"checkbox[8,1;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";"
"checkbox[8.25,1;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";"
.. dump(core.settings:get_bool("tone_mapping")) .. "]" ..
"checkbox[8,1.5;cb_generate_normalmaps;" .. fgettext("Normal Mapping") .. ";"
"checkbox[8.25,1.5;cb_generate_normalmaps;" .. fgettext("Generate Normal Maps") .. ";"
.. dump(core.settings:get_bool("generate_normalmaps")) .. "]" ..
"checkbox[8,2;cb_parallax;" .. fgettext("Parallax Occlusion") .. ";"
"checkbox[8.25,2;cb_parallax;" .. fgettext("Parallax Occlusion") .. ";"
.. dump(core.settings:get_bool("enable_parallax_occlusion")) .. "]" ..
"checkbox[8,2.5;cb_waving_water;" .. fgettext("Waving Water") .. ";"
"checkbox[8.25,2.5;cb_waving_water;" .. fgettext("Waving Water") .. ";"
.. dump(core.settings:get_bool("enable_waving_water")) .. "]" ..
"checkbox[8,3;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";"
"checkbox[8.25,3;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";"
.. dump(core.settings:get_bool("enable_waving_leaves")) .. "]" ..
"checkbox[8,3.5;cb_waving_plants;" .. fgettext("Waving Plants") .. ";"
"checkbox[8.25,3.5;cb_waving_plants;" .. fgettext("Waving Plants") .. ";"
.. dump(core.settings:get_bool("enable_waving_plants")) .. "]"
else
tab_string = tab_string ..
"tablecolumns[color;text]" ..
"tableoptions[background=#00000000;highlight=#00000000;border=false]" ..
"table[8.33,0.7;3.5,4;shaders;" ..
"#888888," .. fgettext("Bump Mapping") .. "," ..
"#888888," .. fgettext("Tone Mapping") .. "," ..
"#888888," .. fgettext("Normal Mapping") .. "," ..
"#888888," .. fgettext("Parallax Occlusion") .. "," ..
"#888888," .. fgettext("Waving Water") .. "," ..
"#888888," .. fgettext("Waving Leaves") .. "," ..
"#888888," .. fgettext("Waving Plants") .. "," ..
";1]"
"label[8.38,0.7;" .. core.colorize("#888888",
fgettext("Bump Mapping")) .. "]" ..
"label[8.38,1.2;" .. core.colorize("#888888",
fgettext("Tone Mapping")) .. "]" ..
"label[8.38,1.7;" .. core.colorize("#888888",
fgettext("Generate Normal Maps")) .. "]" ..
"label[8.38,2.2;" .. core.colorize("#888888",
fgettext("Parallax Occlusion")) .. "]" ..
"label[8.38,2.7;" .. core.colorize("#888888",
fgettext("Waving Water")) .. "]" ..
"label[8.38,3.2;" .. core.colorize("#888888",
fgettext("Waving Leaves")) .. "]" ..
"label[8.38,3.7;" .. core.colorize("#888888",
fgettext("Waving Plants")) .. "]"
end
return tab_string

View File

@ -51,7 +51,7 @@ end
--------------------------------------------------------------------------------
local function get_formspec(tabview, name, tabdata)
local retval = "label[4,-0.25;" .. fgettext("Select texture pack:") .. "]" ..
local retval = "label[4,-0.25;" .. fgettext("Select Texture Pack:") .. "]" ..
"textlist[4,0.25;7.5,5.0;TPs;"
local current_texture_path = core.settings:get("texture_path")
@ -63,7 +63,10 @@ local function get_formspec(tabview, name, tabdata)
if current_texture_path == "" then
retval = retval ..
render_texture_pack_list(list) ..
";" .. index .. "]"
";" .. index .. "]" ..
"textarea[0.6,2.85;3.7,1.5;;" ..
fgettext("Default textures will be used.") ..
";]"
return retval
end
@ -125,7 +128,7 @@ end
--------------------------------------------------------------------------------
return {
name = "texturepacks",
caption = fgettext("Texturepacks"),
caption = fgettext("Texture Packs"),
cbf_formspec = get_formspec,
cbf_button_handler = main_button_handler,
on_change = nil

View File

@ -23,7 +23,7 @@ local function get_bool_default(name, default)
return val
end
local profiler_path = core.get_builtin_path()..DIR_DELIM.."profiler"..DIR_DELIM
local profiler_path = core.get_builtin_path().."profiler"..DIR_DELIM
local profiler = {}
local sampler = assert(loadfile(profiler_path .. "sampling.lua"))(profiler)
local instrumentation = assert(loadfile(profiler_path .. "instrumentation.lua"))(profiler, sampler, get_bool_default)

View File

@ -133,7 +133,7 @@ local function instrument_register(func, func_name)
return func(instrument {
func = callback,
func_name = register_name
}), ...
}, ...)
end
end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
uniform sampler2D baseTexture;
uniform sampler2D normalTexture;
uniform sampler2D textureFlags;
#define leftImage baseTexture
#define rightImage normalTexture
#define maskImage textureFlags
void main(void)
{
vec2 uv = gl_TexCoord[0].st;
vec4 left = texture2D(leftImage, uv).rgba;
vec4 right = texture2D(rightImage, uv).rgba;
vec4 mask = texture2D(maskImage, uv).rgba;
vec4 color;
if (mask.r > 0.5)
color = right;
else
color = left;
gl_FragColor = color;
}

View File

@ -0,0 +1,6 @@
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_Vertex;
gl_FrontColor = gl_BackColor = gl_Color;
}

View File

@ -0,0 +1,2 @@
print("Loaded example file!, loading more examples")
dofile("preview:examples/first.lua")

View File

@ -0,0 +1 @@
print("loaded first.lua example file")

View File

@ -1,18 +1,57 @@
local modname = core.get_current_modname() or "??"
local modstorage = core.get_mod_storage()
local mod_channel
dofile("preview:example.lua")
-- This is an example function to ensure it's working properly, should be removed before merge
core.register_on_shutdown(function()
print("[PREVIEW] shutdown client")
end)
local id = nil
core.register_on_connect(function()
print("[PREVIEW] Player connection completed")
local server_info = core.get_server_info()
print("Server version: " .. server_info.protocol_version)
print("Server ip: " .. server_info.ip)
print("Server address: " .. server_info.address)
print("Server port: " .. server_info.port)
local server_info = core.get_server_info()
print("Server version: " .. server_info.protocol_version)
print("Server ip: " .. server_info.ip)
print("Server address: " .. server_info.address)
print("Server port: " .. server_info.port)
mod_channel = core.mod_channel_join("experimental_preview")
core.after(4, function()
if mod_channel:is_writeable() then
mod_channel:send_all("preview talk to experimental")
end
end)
core.after(1, function()
id = core.localplayer:hud_add({
hud_elem_type = "text",
name = "example",
number = 0xff0000,
position = {x=0, y=1},
offset = {x=8, y=-8},
text = "You are using the preview mod",
scale = {x=200, y=60},
alignment = {x=1, y=-1},
})
end)
core.register_on_modchannel_message(function(channel, sender, message)
print("[PREVIEW][modchannels] Received message `" .. message .. "` on channel `"
.. channel .. "` from sender `" .. sender .. "`")
core.after(1, function()
mod_channel:send_all("CSM preview received " .. message)
end)
end)
core.register_on_modchannel_signal(function(channel, signal)
print("[PREVIEW][modchannels] Received signal id `" .. signal .. "` on channel `"
.. channel)
end)
core.register_on_inventory_open(function(inventory)
print("INVENTORY OPEN")
print(dump(inventory))
return false
end)
core.register_on_placenode(function(pointed_thing, node)
@ -30,13 +69,13 @@ core.register_on_item_use(function(itemstack, pointed_thing)
end)
-- This is an example function to ensure it's working properly, should be removed before merge
core.register_on_receiving_chat_messages(function(message)
core.register_on_receiving_chat_message(function(message)
print("[PREVIEW] Received message " .. message)
return false
end)
-- This is an example function to ensure it's working properly, should be removed before merge
core.register_on_sending_chat_messages(function(message)
core.register_on_sending_chat_message(function(message)
print("[PREVIEW] Sending message " .. message)
return false
end)
@ -150,3 +189,14 @@ core.register_on_punchnode(function(pos, node)
return false
end)
core.register_chatcommand("privs", {
func = function(param)
return true, core.privs_to_string(minetest.get_privilege_list())
end,
})
core.register_chatcommand("text", {
func = function(param)
return core.localplayer:hud_change(id, "text", param)
end,
})

View File

@ -42,12 +42,14 @@ else()
PATHS
/usr/local/include/irrlicht
/usr/include/irrlicht
/system/develop/headers/irrlicht #Haiku
)
find_library(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht
PATHS
/usr/local/lib
/usr/lib
/system/develop/lib # Haiku
)
endif()

View File

@ -1,4 +1,4 @@
Minetest Lua Client Modding API Reference 0.4.15
Minetest Lua Client Modding API Reference 0.5.0
================================================
* More information at <http://www.minetest.net/>
* Developer Wiki: <http://dev.minetest.net/>
@ -6,7 +6,7 @@ Minetest Lua Client Modding API Reference 0.4.15
Introduction
------------
**WARNING: The client API is currently unstable, and may break/change without warning.**
** WARNING: The client API is currently unstable, and may break/change without warning. **
Content and functionality can be added to Minetest 0.4.15-dev+ by using Lua
scripting in run-time loaded mods.
@ -14,7 +14,7 @@ scripting in run-time loaded mods.
A mod is a self-contained bunch of scripts, textures and other related
things that is loaded by and interfaces with Minetest.
Transfering client-sided mods form the server to the client is planned, but not implemented yet.
Transferring client-sided mods from the server to the client is planned, but not implemented yet.
If you see a deficiency in the API, feel free to attempt to add the
functionality in the engine and API. You can send such improvements as
@ -408,6 +408,7 @@ examples.
* Clickable button. When clicked, fields will be sent.
* `x`, `y` and `name` work as per field
* `w` and `h` are the size of the button
* Fixed button height. It will be vertically centred on `h`
* `label` is the text on the button
* Position and size units are inventory slots
@ -617,6 +618,7 @@ Minetest namespace reference
### Utilities
* `minetest.get_current_modname()`: returns the currently loading mod's name, when we are loading a mod
* `minetest.get_language()`: returns the currently set gettext language.
* `minetest.get_version()`: returns a table containing components of the
engine version. Components:
* `project`: Name of the project, eg, "Minetest"
@ -624,10 +626,13 @@ Minetest namespace reference
* `hash`: Full git version (only set if available), eg, "1.2.3-dev-01234567-dirty"
Use this for informational purposes only. The information in the returned
table does not represent the capabilities of the engine, nor is it
reliable or verifyable. Compatible forks will have a different name and
reliable or verifiable. Compatible forks will have a different name and
version entirely. To check for the presence of engine features, test
whether the functions exported by the wanted features exist. For example:
`if minetest.nodeupdate then ... end`.
`if minetest.check_for_falling then ... end`.
* `minetest.sha1(data, [raw])`: returns the sha1 hash of data
* `data`: string of data to hash
* `raw`: return raw bytes instead of hex digits, default: false
### Logging
* `minetest.debug(...)`
@ -646,12 +651,10 @@ Call these functions only at load time!
* **Warning**: If the client terminates abnormally (i.e. crashes), the registered
callbacks **will likely not be run**. Data should be saved at
semi-frequent intervals as well as on server shutdown.
* `minetest.register_on_connect(func())`
* Called at the end of client connection (when player is loaded onto map)
* `minetest.register_on_receiving_chat_message(func(name, message))`
* `minetest.register_on_receiving_chat_message(func(message))`
* Called always when a client receive a message
* Return `true` to mark the message as handled, which means that it will not be shown to chat
* `minetest.register_on_sending_chat_message(func(name, message))`
* `minetest.register_on_sending_chat_message(func(message))`
* Called always when a client send a message from chat
* Return `true` to mark the message as handled, which means that it will not be sent to server
* `minetest.register_chatcommand(cmd, chatcommand definition)`
@ -676,12 +679,31 @@ Call these functions only at load time!
* Called when the local player punches a node
* Newest functions are called first
* If any function returns true, the punch is ignored
* `minetest.register_on_placenode(function(pointed_thing, node))`
* `minetest.register_on_placenode(function(pointed_thing, node))`
* Called when a node has been placed
* `minetest.register_on_item_use(func(item, pointed_thing))`
* Called when the local player uses an item.
* Newest functions are called first.
* If any function returns true, the item use is not sent to server.
* `minetest.register_on_modchannel_message(func(channel_name, sender, message))`
* Called when an incoming mod channel message is received
* You must have joined some channels before, and server must acknowledge the
join request.
* If message comes from a server mod, `sender` field is an empty string.
* `minetest.register_on_modchannel_signal(func(channel_name, signal))`
* Called when a valid incoming mod channel signal is received
* Signal id permit to react to server mod channel events
* Possible values are:
0: join_ok
1: join_failed
2: leave_ok
3: leave_failed
4: event_on_not_joined_channel
5: state_changed
* `minetest.register_on_inventory_open(func(inventory))`
* Called when the local player open inventory
* Newest functions are called first
* If any function returns true, inventory doesn't open
### Sounds
* `minetest.sound_play(spec, parameters)`: returns a handle
* `spec` is a `SimpleSoundSpec`
@ -700,12 +722,10 @@ Call these functions only at load time!
* Returns the time of day: `0` for midnight, `0.5` for midday
### Map
* `minetest.get_node(pos)`
* Returns the node at the given position as table in the format
`{name="node_name", param1=0, param2=0}`, returns `{name="ignore", param1=0, param2=0}`
for unloaded areas.
* `minetest.get_node_or_nil(pos)`
* Same as `get_node` but returns `nil` for unloaded areas.
* Returns the node at the given position as table in the format
`{name="node_name", param1=0, param2=0}`, returns `nil`
for unloaded areas or flavor limited areas.
* `minetest.find_node_near(pos, radius, nodenames, [search_center])`: returns pos or `nil`
* `radius`: using a maximum metric
* `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"`
@ -730,14 +750,19 @@ Call these functions only at load time!
* `minetest.localplayer`
* Reference to the LocalPlayer object. See [`LocalPlayer`](#localplayer) class reference for methods.
### Privileges
* `minetest.get_privilege_list()`
* Returns a list of privileges the current player has in the format `{priv1=true,...}`
* `minetest.string_to_privs(str)`: returns `{priv1=true,...}`
* `minetest.privs_to_string(privs)`: returns `"priv1,priv2,..."`
* Convert between two privilege representations
### Client Environment
* `minetest.get_player_names()`
* Returns list of player names on server
* `minetest.disconnect()`
* Disconnect from the server and exit to main menu.
* Returns `false` if the client is already disconnecting otherwise returns `true`.
* `minetest.take_screenshot()`
* Take a screenshot.
* `minetest.get_server_info()`
* Returns [server info](#server-info).
* `minetest.send_respawn()`
@ -748,6 +773,24 @@ Call these functions only at load time!
* returns reference to mod private `StorageRef`
* must be called during mod load time
### Mod channels
![Mod channels communication scheme](docs/mod channels.png)
* `minetest.mod_channel_join(channel_name)`
* Client joins channel `channel_name`, and creates it, if necessary. You
should listen from incoming messages with `minetest.register_on_modchannel_message`
call to receive incoming messages. Warning, this function is asynchronous.
### Particles
* `minetest.add_particle(particle definition)`
* `minetest.add_particlespawner(particlespawner definition)`
* Add a `ParticleSpawner`, an object that spawns an amount of particles over `time` seconds
* Returns an `id`, and -1 if adding didn't succeed
* `minetest.delete_particlespawner(id)`
* Delete `ParticleSpawner` with `id` (return value from `minetest.add_particlespawner`)
### Misc.
* `minetest.parse_json(string[, nullvalue])`: returns something
* Convert a string containing JSON data into the Lua equivalent
@ -787,6 +830,10 @@ Call these functions only at load time!
* See documentation on `minetest.compress()` for supported compression methods.
* currently supported.
* `...` indicates method-specific arguments. Currently, no methods use this.
* `minetest.rgba(red, green, blue[, alpha])`: returns a string
* Each argument is a 8 Bit unsigned integer
* Returns the ColorString from rgb or rgba values
* Example: `minetest.rgba(10, 20, 30, 40)`, returns `"#0A141E28"`
* `minetest.encode_base64(string)`: returns string encoded in base64
* Encodes a string in base64.
* `minetest.decode_base64(string)`: returns string
@ -817,9 +864,25 @@ Call these functions only at load time!
Class reference
---------------
### ModChannel
An interface to use mod channels on client and server
#### Methods
* `leave()`: leave the mod channel.
* Client leaves channel `channel_name`.
* No more incoming or outgoing messages can be sent to this channel from client mods.
* This invalidate all future object usage
* Ensure your set mod_channel to nil after that to free Lua resources
* `is_writeable()`: returns true if channel is writable and mod can send over it.
* `send_all(message)`: Send `message` though the mod channel.
* If mod channel is not writable or invalid, message will be dropped.
* Message size is limited to 65535 characters by protocol.
### Minimap
An interface to manipulate minimap on client UI
#### Methods
* `show()`: shows the minimap (if not disabled by server)
* `hide()`: hides the minimap
* `set_pos(pos)`: sets the minimap position on screen
@ -832,14 +895,14 @@ An interface to manipulate minimap on client UI
* `get_shape()`: Gets the minimap shape. (0 = square, 1 = round)
### Camera
An interface to get or set information about the camera and cameranode.
An interface to get or set information about the camera and camera-node.
Please do not try to access the reference until the camera is initialized, otherwise the reference will be nil.
#### Methods
* `set_camera_mode(mode)`
* Pass `0` for first-person, `1` for third person, and `2` for third person front
* `get_camera_mode()`
* Returns with same syntax as above
* Returns 0, 1, or 2 as described above
* `get_fov()`
* Returns:
@ -866,18 +929,7 @@ Please do not try to access the reference until the camera is initialized, other
* Returns aspect ratio of screen
### LocalPlayer
An interface to retrieve information about the player. The player is
not accessible until the client is fully done loading and therefore
not at module init time.
To get the localplayer handle correctly, use `on_connect()` as follows:
```lua
local localplayer
minetest.register_on_connect(function()
localplayer = minetest.localplayer
end)
```
An interface to retrieve information about the player.
Methods:
@ -966,6 +1018,17 @@ Methods:
* returns last look vertical angle
* `get_key_pressed()`:
* returns last key typed by the player
* `hud_add(definition)`
* add a HUD element described by HUD def, returns ID number on success and `nil` on failure.
* See [`HUD definition`](#hud-definition-hud_add-hud_get)
* `hud_get(id)`
* returns the [`definition`](#hud-definition-hud_add-hud_get) of the HUD with that ID number or `nil`, if non-existent.
* `hud_remove(id)`
* remove the HUD element of the specified id, returns `true` on success
* `hud_change(id, stat, value)`
* change a value of a previously added HUD element
* element `stat` values: `position`, `name`, `scale`, `text`, `number`, `item`, `dir`
* Returns `true` on success, otherwise returns `nil`
### Settings
An interface to read config files in the format of `minetest.conf`.
@ -1077,7 +1140,7 @@ Can be obtained via `minetest.get_meta(pos)`.
stack_max = number, -- Number of items stackable together
usable = bool, -- Has on_use callback defined
liquids_pointable = bool, -- Whether you can point at liquids with the item
tool_capabilities = <table>, -- If the item is a tool, tool capabiltites of the item
tool_capabilities = <table>, -- If the item is a tool, tool capabilities of the item
groups = table, -- Groups of the item
sound_place = SimpleSoundSpec, -- Sound played when placed
sound_place_failed = SimpleSoundSpec, -- Sound played when placement failed
@ -1104,6 +1167,30 @@ Can be obtained via `minetest.get_meta(pos)`.
}
```
### HUD Definition (`hud_add`, `hud_get`)
```lua
{
hud_elem_type = "image", -- see HUD element types, default "text"
-- ^ type of HUD element, can be either of "image", "text", "statbar", or "inventory"
position = {x=0.5, y=0.5},
-- ^ Left corner position of element, default `{x=0,y=0}`.
name = "<name>", -- default ""
scale = {x=2, y=2}, -- default {x=0,y=0}
text = "<text>", -- default ""
number = 2, -- default 0
item = 3, -- default 0
-- ^ Selected item in inventory. 0 for no item selected.
direction = 0, -- default 0
-- ^ Direction: 0: left-right, 1: right-left, 2: top-bottom, 3: bottom-top
alignment = {x=0, y=0}, -- default {x=0, y=0}
-- ^ See "HUD Element Types"
offset = {x=0, y=0}, -- default {x=0, y=0}
-- ^ See "HUD Element Types"
size = { x=100, y=100 }, -- default {x=0, y=0}
-- ^ Size of element in pixels
}
```
Escape sequences
----------------
Most text can contain escape sequences, that can for example color the text.
@ -1117,15 +1204,15 @@ The following functions provide escape sequences:
`minetest.get_color_escape_sequence(color) ..
message ..
minetest.get_color_escape_sequence("#ffffff")`
* `color.get_background_escape_sequence(color)`
* `minetest.get_background_escape_sequence(color)`
* `color` is a [ColorString](#colorstring)
* The escape sequence sets the background of the whole text element to
`color`. Only defined for item descriptions and tooltips.
* `color.strip_foreground_colors(str)`
* `minetest.strip_foreground_colors(str)`
* Removes foreground colors added by `get_color_escape_sequence`.
* `color.strip_background_colors(str)`
* `minetest.strip_background_colors(str)`
* Removes background colors added by `get_background_escape_sequence`.
* `color.strip_colors(str)`
* `minetest.strip_colors(str)`
* Removes all color escape sequences.
`ColorString`
@ -1147,3 +1234,134 @@ value must (always) be two hexadecimal digits.
`Color`
-------------
`{a = alpha, r = red, g = green, b = blue}` defines an ARGB8 color.
HUD element types
-----------------
The position field is used for all element types.
To account for differing resolutions, the position coordinates are the percentage
of the screen, ranging in value from `0` to `1`.
The name field is not yet used, but should contain a description of what the
HUD element represents. The direction field is the direction in which something
is drawn.
`0` draws from left to right, `1` draws from right to left, `2` draws from
top to bottom, and `3` draws from bottom to top.
The `alignment` field specifies how the item will be aligned. It ranges from `-1` to `1`,
with `0` being the center, `-1` is moved to the left/up, and `1` is to the right/down.
Fractional values can be used.
The `offset` field specifies a pixel offset from the position. Contrary to position,
the offset is not scaled to screen size. This allows for some precisely-positioned
items in the HUD.
**Note**: `offset` _will_ adapt to screen DPI as well as user defined scaling factor!
Below are the specific uses for fields in each type; fields not listed for that type are ignored.
**Note**: Future revisions to the HUD API may be incompatible; the HUD API is still
in the experimental stages.
### `image`
Displays an image on the HUD.
* `scale`: The scale of the image, with 1 being the original texture size.
Only the X coordinate scale is used (positive values).
Negative values represent that percentage of the screen it
should take; e.g. `x=-100` means 100% (width).
* `text`: The name of the texture that is displayed.
* `alignment`: The alignment of the image.
* `offset`: offset in pixels from position.
### `text`
Displays text on the HUD.
* `scale`: Defines the bounding rectangle of the text.
A value such as `{x=100, y=100}` should work.
* `text`: The text to be displayed in the HUD element.
* `number`: An integer containing the RGB value of the color used to draw the text.
Specify `0xFFFFFF` for white text, `0xFF0000` for red, and so on.
* `alignment`: The alignment of the text.
* `offset`: offset in pixels from position.
### `statbar`
Displays a horizontal bar made up of half-images.
* `text`: The name of the texture that is used.
* `number`: The number of half-textures that are displayed.
If odd, will end with a vertically center-split texture.
* `direction`
* `offset`: offset in pixels from position.
* `size`: If used, will force full-image size to this value (override texture pack image size)
### `inventory`
* `text`: The name of the inventory list to be displayed.
* `number`: Number of items in the inventory to be displayed.
* `item`: Position of item that is selected.
* `direction`
* `offset`: offset in pixels from position.
### `waypoint`
Displays distance to selected world position.
* `name`: The name of the waypoint.
* `text`: Distance suffix. Can be blank.
* `number:` An integer containing the RGB value of the color used to draw the text.
* `world_pos`: World position of the waypoint.
### Particle definition (`add_particle`)
{
pos = {x=0, y=0, z=0},
velocity = {x=0, y=0, z=0},
acceleration = {x=0, y=0, z=0},
-- ^ Spawn particle at pos with velocity and acceleration
expirationtime = 1,
-- ^ Disappears after expirationtime seconds
size = 1,
collisiondetection = false,
-- ^ collisiondetection: if true collides with physical objects
collision_removal = false,
-- ^ collision_removal: if true then particle is removed when it collides,
-- ^ requires collisiondetection = true to have any effect
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "image.png",
-- ^ Uses texture (string)
animation = {Tile Animation definition},
-- ^ optional, specifies how to animate the particle texture
glow = 0
-- ^ optional, specify particle self-luminescence in darkness
}
### `ParticleSpawner` definition (`add_particlespawner`)
{
amount = 1,
time = 1,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=0, z=0},
maxpos = {x=0, y=0, z=0},
minvel = {x=0, y=0, z=0},
maxvel = {x=0, y=0, z=0},
minacc = {x=0, y=0, z=0},
maxacc = {x=0, y=0, z=0},
minexptime = 1,
maxexptime = 1,
minsize = 1,
maxsize = 1,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = false,
-- ^ collisiondetection: if true uses collision detection
collision_removal = false,
-- ^ collision_removal: if true then particle is removed when it collides,
-- ^ requires collisiondetection = true to have any effect
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "image.png",
-- ^ Uses texture (string)
}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
Minetest Lua Mainmenu API Reference 0.4.16
Minetest Lua Mainmenu API Reference 0.5.0
========================================
Introduction
@ -35,26 +35,8 @@ core.get_builtin_path()
^ returns path to builtin root
core.get_modpath() (possible in async calls)
^ returns path to global modpath
core.get_modstore_details(modid) (possible in async calls)
^ modid numeric id of mod in modstore
^ returns {
id = <numeric id of mod in modstore>,
title = <human readable title>,
basename = <basename for mod>,
description = <description of mod>,
author = <author of mod>,
download_url= <best match download url>,
license = <short description of license>,
rating = <float value of current rating>
}
core.get_modstore_list() (possible in async calls)
^ returns {
[1] = {
id = <numeric id of mod in modstore>,
title = <human readable title>,
basename = <basename for mod>
}
}
core.get_clientmodpath() (possible in async calls)
^ returns path to global client-side modpath
core.get_gamepath() (possible in async calls)
^ returns path to global gamepath
core.get_texturepath() (possible in async calls)
@ -234,7 +216,7 @@ Limitations of Async operations
-Limited set of available functions
e.g. No access to functions modifying menu like core.start,core.close,
core.file_open_dialog
Class reference
----------------

BIN
doc/mod_channels.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

View File

@ -1270,7 +1270,9 @@ minetest.register_node("default:chest_locked", {
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
meta:set_string("owner", placer:get_player_name() or "")
local pname =
placer and placer:get_player_name() or ""
meta:set_string("owner", pname)
meta:set_string("infotext", "Locked Chest (owned by "..
meta:get_string("owner")..")")
end,

View File

@ -1,2 +1,2 @@
default
stairs

View File

@ -2,6 +2,8 @@
-- Experimental things
--
dofile(minetest.get_modpath("experimental").."/modchannels.lua")
-- For testing random stuff
experimental = {}
@ -135,7 +137,7 @@ minetest.register_on_punchnode(function(p, node)
if node.name == "experimental:tnt" then
minetest.remove_node(p)
minetest.add_entity(p, "experimental:tnt")
nodeupdate(p)
minetest.check_for_falling(p)
end
end)
@ -317,6 +319,9 @@ minetest.register_entity("experimental:testentity", {
self.object:remove()
hitter:add_to_inventory('craft testobject1 1')
end,
on_death = function(self, killer)
print("testentity.on_death")
end
})
--
@ -398,11 +403,11 @@ minetest.register_abm({
if ncpos ~= nil then
return
end
if pos.x % 16 ~= 8 or pos.z % 16 ~= 8 then
return
end
pos.y = pos.y + 1
n = minetest.get_node(pos)
print(dump(n))
@ -431,7 +436,7 @@ minetest.register_abm({
return
end
nctime = clock
s0 = ncstuff[ncq]
ncq = s0[1]
s1 = ncstuff[ncq]
@ -477,15 +482,15 @@ minetest.register_node("experimental:tester_node_1", {
experimental.print_to_everything("incorrect metadata found")
end
end,
on_destruct = function(pos)
experimental.print_to_everything("experimental:tester_node_1:on_destruct("..minetest.pos_to_string(pos)..")")
end,
after_destruct = function(pos)
experimental.print_to_everything("experimental:tester_node_1:after_destruct("..minetest.pos_to_string(pos)..")")
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
experimental.print_to_everything("experimental:tester_node_1:after_dig_node("..minetest.pos_to_string(pos)..")")
end,
@ -496,6 +501,57 @@ minetest.register_node("experimental:tester_node_1", {
end,
})
minetest.register_node("experimental:tiled", {
description = "Tiled stone",
tiles = {{
name = "experimental_tiled.png",
align_style = "world",
scale = 8,
}},
groups = {cracky=2},
})
stairs.register_stair_and_slab("tiled_n", "experimental:tiled",
{cracky=2},
{{name="experimental_tiled.png", align_style="node", scale=8}},
"Tiled stair (node-aligned)",
"Tiled slab (node-aligned)")
stairs.register_stair_and_slab("tiled", "experimantal:tiled",
{cracky=2},
{{name="experimental_tiled.png", align_style="world", scale=8}},
"Tiled stair",
"Tiled slab")
minetest.register_craft({
output = 'experimental:tiled 4',
recipe = {
{'default:cobble', '', 'default:cobble'},
{'', '', ''},
{'default:cobble', '', 'default:cobble'},
}
})
minetest.register_craft({
output = 'stairs:stair_tiled',
recipe = {{'stairs:stair_tiled_n'}}
})
minetest.register_craft({
output = 'stairs:stair_tiled_n',
recipe = {{'stairs:stair_tiled'}}
})
minetest.register_craft({
output = 'stairs:slab_tiled',
recipe = {{'stairs:slab_tiled_n'}}
})
minetest.register_craft({
output = 'stairs:slab_tiled_n',
recipe = {{'stairs:slab_tiled'}}
})
minetest.register_craftitem("experimental:tester_tool_1", {
description = "Tester Tool 1",
inventory_image = "experimental_tester_tool_1.png",
@ -626,6 +682,74 @@ minetest.register_chatcommand("test1", {
end,
})
minetest.register_chatcommand("test_bulk_set_node", {
params = "",
description = "Test 2: bulk set a node",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return
end
local pos_list = {}
local ppos = player:get_pos()
local i = 1
for x=2,10 do
for y=2,10 do
for z=2,10 do
pos_list[i] = {x=ppos.x + x,y = ppos.y + y,z = ppos.z + z}
i = i + 1
end
end
end
minetest.bulk_set_node(pos_list, {name = "default:stone"})
minetest.chat_send_player(name, "Done.");
end,
})
minetest.register_chatcommand("bench_bulk_set_node", {
params = "",
description = "Test 3: bulk set a node (bench)",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return
end
local pos_list = {}
local ppos = player:get_pos()
local i = 1
for x=2,100 do
for y=2,100 do
for z=2,100 do
pos_list[i] = {x=ppos.x + x,y = ppos.y + y,z = ppos.z + z}
i = i + 1
end
end
end
minetest.chat_send_player(name, "Benching bulk set node. Warming up...");
-- warm up with default:stone to prevent having different callbacks
-- due to different node topology
minetest.bulk_set_node(pos_list, {name = "default:stone"})
minetest.chat_send_player(name, "Warming up finished, now benching...");
local start_time = os.clock()
for i=1,#pos_list do
minetest.set_node(pos_list[i], {name = "default:stone"})
end
local middle_time = os.clock()
minetest.bulk_set_node(pos_list, {name = "default:stone"})
local end_time = os.clock()
minetest.chat_send_player(name,
string.format("Bench results: set_node loop[%.2fms], bulk_set_node[%.2fms]",
(middle_time - start_time) * 1000,
(end_time - middle_time) * 1000
)
);
end,
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
experimental.print_to_everything("Inventory fields 1: player="..player:get_player_name()..", fields="..dump(fields))
end)

View File

@ -0,0 +1,16 @@
--
-- Mod channels experimental handlers
--
local mod_channel = core.mod_channel_join("experimental_preview")
core.register_on_modchannel_message(function(channel, sender, message)
print("[minimal][modchannels] Server received message `" .. message
.. "` on channel `" .. channel .. "` from sender `" .. sender .. "`")
if mod_channel:is_writeable() then
mod_channel:send_all("experimental answers to preview")
mod_channel:leave()
end
end)
print("[minimal][modchannels] Code loaded!")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -2,7 +2,7 @@ stairs = {}
-- Node will be called stairs:stair_<subname>
function stairs.register_stair(subname, recipeitem, groups, images, description)
minetest.register_node("stairs:stair_" .. subname, {
minetest.register_node(":stairs:stair_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
@ -31,7 +31,7 @@ end
-- Node will be called stairs:slab_<subname>
function stairs.register_slab(subname, recipeitem, groups, images, description)
minetest.register_node("stairs:slab_" .. subname, {
minetest.register_node(":stairs:slab_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,

View File

@ -1,16 +1,7 @@
#!/bin/sh
cd ..
svn co https://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp jsoncpp
svn up jsoncpp
git clone https://github.com/open-source-parsers/jsoncpp -b 1.8.3 --depth 1
cd jsoncpp
python amalgamate.py
cp -R dist/json ..
cp dist/jsoncpp.cpp ../json
# maybe you need to patch:
# src/json/jsoncpp.cpp:
# -#include <json/json.h>
# +#include "json/json.h"
#svn export --force https://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp/src/lib_json json
#svn export --force https://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp/include/json json
cp -R dist/json ../json
cp dist/jsoncpp.cpp ..

View File

@ -0,0 +1,333 @@
/// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/).
/// It is intended to be used with #include "json/json-forwards.h"
/// This header provides forward declaration for all JsonCpp types.
// //////////////////////////////////////////////////////////////////////
// Beginning of content of file: LICENSE
// //////////////////////////////////////////////////////////////////////
/*
The JsonCpp library's source code, including accompanying documentation,
tests and demonstration applications, are licensed under the following
conditions...
Baptiste Lepilleur and The JsonCpp Authors explicitly disclaim copyright in all
jurisdictions which recognize such a disclaimer. In such jurisdictions,
this software is released into the Public Domain.
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur and
The JsonCpp Authors, and is released under the terms of the MIT License (see below).
In jurisdictions which recognize Public Domain property, the user of this
software may choose to accept it either as 1) Public Domain, 2) under the
conditions of the MIT License (see below), or 3) under the terms of dual
Public Domain/MIT License conditions described here, as they choose.
The MIT License is about as close to Public Domain as a license can get, and is
described in clear, concise terms at:
http://en.wikipedia.org/wiki/MIT_License
The full text of the MIT License follows:
========================================================================
Copyright (c) 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
========================================================================
(END LICENSE TEXT)
The MIT license is compatible with both the GPL and commercial
software, affording one all of the rights of Public Domain with the
minor nuisance of being required to keep the above copyright notice
and license text in the source code. Note also that by accepting the
Public Domain "license" you can re-license your copy using whatever
license you like.
*/
// //////////////////////////////////////////////////////////////////////
// End of content of file: LICENSE
// //////////////////////////////////////////////////////////////////////
#ifndef JSON_FORWARD_AMALGATED_H_INCLUDED
# define JSON_FORWARD_AMALGATED_H_INCLUDED
/// If defined, indicates that the source file is amalgated
/// to prevent private header inclusion.
#define JSON_IS_AMALGAMATION
// //////////////////////////////////////////////////////////////////////
// Beginning of content of file: include/json/config.h
// //////////////////////////////////////////////////////////////////////
// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
// Distributed under MIT license, or public domain if desired and
// recognized in your jurisdiction.
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
#ifndef JSON_CONFIG_H_INCLUDED
#define JSON_CONFIG_H_INCLUDED
#include <stddef.h>
#include <string> //typedef String
#include <stdint.h> //typedef int64_t, uint64_t
/// If defined, indicates that json library is embedded in CppTL library.
//# define JSON_IN_CPPTL 1
/// If defined, indicates that json may leverage CppTL library
//# define JSON_USE_CPPTL 1
/// If defined, indicates that cpptl vector based map should be used instead of
/// std::map
/// as Value container.
//# define JSON_USE_CPPTL_SMALLMAP 1
// If non-zero, the library uses exceptions to report bad input instead of C
// assertion macros. The default is to use exceptions.
#ifndef JSON_USE_EXCEPTION
#define JSON_USE_EXCEPTION 1
#endif
/// If defined, indicates that the source file is amalgated
/// to prevent private header inclusion.
/// Remarks: it is automatically defined in the generated amalgated header.
// #define JSON_IS_AMALGAMATION
#ifdef JSON_IN_CPPTL
#include <cpptl/config.h>
#ifndef JSON_USE_CPPTL
#define JSON_USE_CPPTL 1
#endif
#endif
#ifdef JSON_IN_CPPTL
#define JSON_API CPPTL_API
#elif defined(JSON_DLL_BUILD)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define JSON_API __declspec(dllexport)
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
#endif // if defined(_MSC_VER)
#elif defined(JSON_DLL)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define JSON_API __declspec(dllimport)
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
#endif // if defined(_MSC_VER)
#endif // ifdef JSON_IN_CPPTL
#if !defined(JSON_API)
#define JSON_API
#endif
// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
// integer
// Storages, and 64 bits integer support is disabled.
// #define JSON_NO_INT64 1
#if defined(_MSC_VER) // MSVC
# if _MSC_VER <= 1200 // MSVC 6
// Microsoft Visual Studio 6 only support conversion from __int64 to double
// (no conversion from unsigned __int64).
# define JSON_USE_INT64_DOUBLE_CONVERSION 1
// Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
// characters in the debug information)
// All projects I've ever seen with VS6 were using this globally (not bothering
// with pragma push/pop).
# pragma warning(disable : 4786)
# endif // MSVC 6
# if _MSC_VER >= 1500 // MSVC 2008
/// Indicates that the following function is deprecated.
# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
# endif
#endif // defined(_MSC_VER)
// In c++11 the override keyword allows you to explicity define that a function
// is intended to override the base-class version. This makes the code more
// managable and fixes a set of common hard-to-find bugs.
#if __cplusplus >= 201103L
# define JSONCPP_OVERRIDE override
# define JSONCPP_NOEXCEPT noexcept
#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900
# define JSONCPP_OVERRIDE override
# define JSONCPP_NOEXCEPT throw()
#elif defined(_MSC_VER) && _MSC_VER >= 1900
# define JSONCPP_OVERRIDE override
# define JSONCPP_NOEXCEPT noexcept
#else
# define JSONCPP_OVERRIDE
# define JSONCPP_NOEXCEPT throw()
#endif
#ifndef JSON_HAS_RVALUE_REFERENCES
#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
#define JSON_HAS_RVALUE_REFERENCES 1
#endif // MSVC >= 2010
#ifdef __clang__
#if __has_feature(cxx_rvalue_references)
#define JSON_HAS_RVALUE_REFERENCES 1
#endif // has_feature
#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
#define JSON_HAS_RVALUE_REFERENCES 1
#endif // GXX_EXPERIMENTAL
#endif // __clang__ || __GNUC__
#endif // not defined JSON_HAS_RVALUE_REFERENCES
#ifndef JSON_HAS_RVALUE_REFERENCES
#define JSON_HAS_RVALUE_REFERENCES 0
#endif
#ifdef __clang__
# if __has_extension(attribute_deprecated_with_message)
# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
# endif
#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
# endif // GNUC version
#endif // __clang__ || __GNUC__
#if !defined(JSONCPP_DEPRECATED)
#define JSONCPP_DEPRECATED(message)
#endif // if !defined(JSONCPP_DEPRECATED)
#if __GNUC__ >= 6
# define JSON_USE_INT64_DOUBLE_CONVERSION 1
#endif
#if !defined(JSON_IS_AMALGAMATION)
# include "version.h"
# if JSONCPP_USING_SECURE_MEMORY
# include "allocator.h" //typedef Allocator
# endif
#endif // if !defined(JSON_IS_AMALGAMATION)
namespace Json {
typedef int Int;
typedef unsigned int UInt;
#if defined(JSON_NO_INT64)
typedef int LargestInt;
typedef unsigned int LargestUInt;
#undef JSON_HAS_INT64
#else // if defined(JSON_NO_INT64)
// For Microsoft Visual use specific types as long long is not supported
#if defined(_MSC_VER) // Microsoft Visual Studio
typedef __int64 Int64;
typedef unsigned __int64 UInt64;
#else // if defined(_MSC_VER) // Other platforms, use long long
typedef int64_t Int64;
typedef uint64_t UInt64;
#endif // if defined(_MSC_VER)
typedef Int64 LargestInt;
typedef UInt64 LargestUInt;
#define JSON_HAS_INT64
#endif // if defined(JSON_NO_INT64)
#if JSONCPP_USING_SECURE_MEMORY
#define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
#define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>>
#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
#define JSONCPP_ISTREAM std::istream
#else
#define JSONCPP_STRING std::string
#define JSONCPP_OSTRINGSTREAM std::ostringstream
#define JSONCPP_OSTREAM std::ostream
#define JSONCPP_ISTRINGSTREAM std::istringstream
#define JSONCPP_ISTREAM std::istream
#endif // if JSONCPP_USING_SECURE_MEMORY
} // end namespace Json
#endif // JSON_CONFIG_H_INCLUDED
// //////////////////////////////////////////////////////////////////////
// End of content of file: include/json/config.h
// //////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////
// Beginning of content of file: include/json/forwards.h
// //////////////////////////////////////////////////////////////////////
// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
// Distributed under MIT license, or public domain if desired and
// recognized in your jurisdiction.
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
#ifndef JSON_FORWARDS_H_INCLUDED
#define JSON_FORWARDS_H_INCLUDED
#if !defined(JSON_IS_AMALGAMATION)
#include "config.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
namespace Json {
// writer.h
class FastWriter;
class StyledWriter;
// reader.h
class Reader;
// features.h
class Features;
// value.h
typedef unsigned int ArrayIndex;
class StaticString;
class Path;
class PathArgument;
class Value;
class ValueIteratorBase;
class ValueIterator;
class ValueConstIterator;
} // namespace Json
#endif // JSON_FORWARDS_H_INCLUDED
// //////////////////////////////////////////////////////////////////////
// End of content of file: include/json/forwards.h
// //////////////////////////////////////////////////////////////////////
#endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,63 +0,0 @@
# This file contains information (some of which was previously stored in
# minetest.conf.example) that cannot be automatically generated from
# builtin/settingtypes.txt.
# This file contains a list of settings and their default value for minetest.conf
# By default, all the settings are commented and not functional.
# Uncomment settings by removing the preceding #.
# minetest.conf is read by default from:
# ../minetest.conf
# ../../minetest.conf
# Any other path can be chosen by passing the path as a parameter
# to the program, eg. "minetest.exe --config ../minetest.conf.example".
# Further documentation:
# http://wiki.minetest.net/
# Mapgen
# Noise parameters and formats
# Noise parameters can be specified as a set of positional values, for example:
#
# Offset, scale, (x, y, z spread factors), seed offset, octaves, persistence, lacunarity
# mgv6_np_terrain_base = -4, 20, (250, 250, 250), 82341, 5, 0.6, 2.0
#
# Or the group format can be used instead, for example:
#
# mgv6_np_terrain_base = {
# offset = -4,
# scale = 20,
# spread = (250, 250, 250),
# seed = 82341,
# octaves = 5,
# persistence = 0.6,
# lacunarity = 2.0,
# flags = "defaults"
# }
#
# The advanced settings menu does not yet support the group format.
# Only the group format supports noise flags which are needed for eased noise.
# Mgv5 uses eased noise for np_ground so this is shown in group format below
# and is not present in the advanced settings menu.
# Mapgen v5
# Noise parameter in group format, unsupported by advanced settings menu but
# settable in minetest.conf.
# See documentation of noise parameter formats above.
#
# 3D noise defining terrain.
# type: noise_params
# mgv5_np_ground = {
# offset = 0,
# scale = 40,
# spread = (80, 80, 80),
# seed = 983240,
# octaves = 4,
# persistence = 0.55,
# lacunarity = 2.0,
# flags = "eased"
# }

View File

@ -1,7 +1,9 @@
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#ifndef USE_CMAKE_CONFIG_H
#define USE_CMAKE_CONFIG_H
#endif
#include "config.h"
#undef USE_CMAKE_CONFIG_H

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2016-10-26 09:14+0000\n"
"Last-Translator: tonibm19 <bennasar99@gmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/minetest/"
@ -39,7 +39,7 @@ msgstr "Ha ocorregut un error:"
msgid "Main menu"
msgstr "Menú principal"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "D'acord"
@ -51,7 +51,7 @@ msgstr "Torneu a connectar"
msgid "The server has requested a reconnect:"
msgstr "El servidor ha sol·licitat una reconnexió:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Carregant ..."
@ -167,8 +167,9 @@ msgid "Mapgen"
msgstr "Generador de mapes"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "No s'ha donat un nom al món o no s'ha seleccionat ningun"
#, fuzzy
msgid "No game selected"
msgstr "Seleccionar distancia"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -229,6 +230,17 @@ msgstr "(Cap descripció d'ajustament donada)"
msgid "< Back to Settings page"
msgstr "< Torna a la pàgina de configuració"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"Format: <offset> <escala> (<extensió X>, <extensió Y> , <extensión Z>), "
"<llavor>, <octaves>, <persistència>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Navegar"
@ -251,12 +263,8 @@ msgstr ""
"El format és 3 números separats per comes i aquests dins de parèntesis."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"Format: <offset> <escala> (<extensió X>, <extensió Y> , <extensión Z>), "
"<llavor>, <octaves>, <persistència>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -266,10 +274,6 @@ msgstr "Jocs"
msgid "Mods"
msgstr "Mods"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr "Si us plau, introduïu una llista d'indicadors separada per comes."
@ -290,14 +294,19 @@ msgstr "Els possibles valors són: "
msgid "Restore Default"
msgstr "Restablir per defecte"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Buscar"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "Seleccioneu la ruta"
#, fuzzy
msgid "Select directory"
msgstr "Selecciona el fitxer del mod:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Selecciona el fitxer del mod:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -343,42 +352,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Tancar repositori"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Descarregant $1, si us plau esperi ..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Instal·lar"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Pàgina $1 de $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Classificació"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Nom curt:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Instal·lat amb èxit:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Sense ordenar"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Reinstal·lar"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Col·laboradors Actius"
@ -714,6 +687,10 @@ msgstr "Principal"
msgid "Start Singleplayer"
msgstr "Començar Un Jugador"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Sense informació disponible"
@ -839,10 +816,6 @@ msgstr "Configurar Controls"
msgid "Change Password"
msgstr "Canviar contrasenya"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Connectant al servidor ..."
#: src/game.cpp
msgid "Continue"
msgstr "Continuar"
@ -877,14 +850,6 @@ msgstr ""
"- Roda ratolí: triar objecte\n"
"- T: xat\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Creant client ..."
#: src/game.cpp
msgid "Creating server..."
msgstr "Creant servidor ..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -968,14 +933,6 @@ msgstr ""
msgid "Remote server"
msgstr "Anunciar servidor"
#: src/game.cpp
msgid "Resolving address..."
msgstr "Resolent adreça ..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "Tancant ..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Un jugador"
@ -1010,13 +967,24 @@ msgid "Proceed"
msgstr "Continuar"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Utilitzar\" = Descendir"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Avant"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Arrere"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Configurar controls"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Xat"
@ -1029,6 +997,10 @@ msgstr "Comandament"
msgid "Console"
msgstr "Consola"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1045,6 +1017,10 @@ msgstr "Amollar"
msgid "Forward"
msgstr "Avant"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1102,14 +1078,32 @@ msgstr "Seleccionar distancia"
msgid "Right"
msgstr "Dreta"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Discreció"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Activar Cinematogràfic"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Activar volar"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Activar ràpid"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Activar ràpid"
@ -1119,12 +1113,18 @@ msgid "Toggle fly"
msgstr "Activar volar"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Activar volar"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Activar noclip"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Utilitzar"
msgid "Toggle noclip"
msgstr "Activar noclip"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1417,6 +1417,10 @@ msgstr "X Botó 1"
msgid "X Button 2"
msgstr "X Botó 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "ca"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
@ -1635,12 +1639,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Tecla Avançar"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr "Automàticament informar a la llista del servidor."
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1930,7 +1939,8 @@ msgid "Continuous forward"
msgstr "Avanç continu"
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
#, fuzzy
msgid "Continuous forward movement, toggled by autoforward key."
msgstr "Avanç continu (sols utilitzat per a testing)."
#: src/settings_translation_file.cpp
@ -2019,6 +2029,10 @@ msgstr "DPI (punts per polsada)"
msgid "Damage"
msgstr "Dany"
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "Tecla alternativa per a la informació de la depuració"
@ -2146,10 +2160,6 @@ msgstr "Profunditat davall la qual trobaràs grans coves."
msgid "Depth below which you'll find massive caves."
msgstr "Profunditat davall la qual podràs trobar coves gegants."
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2179,18 +2189,6 @@ msgstr "Partícules"
msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2272,10 +2270,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2325,10 +2319,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3203,7 +3193,7 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3392,6 +3382,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3732,6 +3726,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3784,18 +3788,6 @@ msgstr ""
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -4058,6 +4050,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4115,6 +4113,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4140,10 +4142,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4374,6 +4372,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4926,52 +4928,24 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Hide mp content"
#~ msgstr "Ocultar contingut MP"
#~ msgid "No!!!"
#~ msgstr "No!!!"
#~ msgid "Attn"
#~ msgstr "Atentament"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generar Mapes Normals"
#~ msgid "Capital"
#~ msgstr "Bloq Maj"
#~ msgid "Public Serverlist"
#~ msgstr "Llista de servidors públics"
#~ msgid "Comma"
#~ msgstr "Coma"
#~ msgid "No of course not!"
#~ msgstr "No, per descomptat que no!"
#, fuzzy
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Generador de mapes"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Final"
#~ msgstr "Fi"
#, fuzzy
#~ msgid "Junja"
#~ msgstr "Junja"
#, fuzzy
#~ msgid "Kana"
#~ msgstr "Kana"
#, fuzzy
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Minus"
#~ msgstr "Menys"
#, fuzzy
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Period"
#~ msgstr "Període"
#~ msgid "Plus"
#~ msgstr "Més"
#~ msgid "Mapgen flat cave width"
#~ msgstr "Amplada de les coves del generador de mapes plans"
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
@ -4980,21 +4954,100 @@ msgstr ""
#~ "Controla la mida dels deserts i platges a Mapgen v6.\n"
#~ "Quan \"snowbiomes\" estan activats 'mgv6_freq_desert' és ignorat."
#~ msgid "Mapgen flat cave width"
#~ msgstr "Amplada de les coves del generador de mapes plans"
#~ msgid "Plus"
#~ msgstr "Més"
#~ msgid "Period"
#~ msgstr "Període"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Generador de mapes"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "No of course not!"
#~ msgstr "No, per descomptat que no!"
#~ msgid "Minus"
#~ msgstr "Menys"
#~ msgid "Public Serverlist"
#~ msgstr "Llista de servidors públics"
#, fuzzy
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generar Mapes Normals"
#, fuzzy
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "No!!!"
#~ msgstr "No!!!"
#, fuzzy
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Final"
#~ msgstr "Fi"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#, fuzzy
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Comma"
#~ msgstr "Coma"
#~ msgid "Capital"
#~ msgstr "Bloq Maj"
#~ msgid "Attn"
#~ msgstr "Atentament"
#~ msgid "Hide mp content"
#~ msgstr "Ocultar contingut MP"
#~ msgid "Use"
#~ msgstr "Utilitzar"
#~ msgid "Shutting down..."
#~ msgstr "Tancant ..."
#~ msgid "Resolving address..."
#~ msgstr "Resolent adreça ..."
#~ msgid "Creating server..."
#~ msgstr "Creant servidor ..."
#~ msgid "Creating client..."
#~ msgstr "Creant client ..."
#~ msgid "Connecting to server..."
#~ msgstr "Connectant al servidor ..."
#~ msgid "re-Install"
#~ msgstr "Reinstal·lar"
#~ msgid "Unsorted"
#~ msgstr "Sense ordenar"
#~ msgid "Successfully installed:"
#~ msgstr "Instal·lat amb èxit:"
#~ msgid "Shortname:"
#~ msgstr "Nom curt:"
#~ msgid "Rating"
#~ msgstr "Classificació"
#~ msgid "Page $1 of $2"
#~ msgstr "Pàgina $1 de $2"
#~ msgid "Install"
#~ msgstr "Instal·lar"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Descarregant $1, si us plau esperi ..."
#~ msgid "Close store"
#~ msgstr "Tancar repositori"
#~ msgid "Select path"
#~ msgstr "Seleccioneu la ruta"
#~ msgid "No worldname given or no game selected"
#~ msgstr "No s'ha donat un nom al món o no s'ha seleccionat ningun"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2016-10-25 11:59+0000\n"
"Last-Translator: Jakub Vaněk <vanek.jakub4@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/minetest/minetest/"
@ -39,7 +39,7 @@ msgstr "Nastala chyba:"
msgid "Main menu"
msgstr "Hlavní nabídka"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "OK"
@ -51,7 +51,7 @@ msgstr "Znovu se připojit"
msgid "The server has requested a reconnect:"
msgstr "Server vyžaduje znovupřipojení se:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Nahrávám..."
@ -165,8 +165,9 @@ msgid "Mapgen"
msgstr "Generátor mapy"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "Nebyla vybrána podhra nebo název"
#, fuzzy
msgid "No game selected"
msgstr "Změna dohledu"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -225,6 +226,17 @@ msgstr "(Nebyl zadán popis nastavení)"
msgid "< Back to Settings page"
msgstr "< Zpět do Nastavení"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"Formát: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Procházet"
@ -246,12 +258,8 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr "Formát jsou tři čísla uvnitř závorek oddělená čárkami."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"Formát: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -261,10 +269,6 @@ msgstr "Hry"
msgid "Mods"
msgstr "Mody"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr "Lakunarita může být specifikována spolu s předcházející čárkou."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr "Prosím zadejte čárkami oddělený seznam vlajek."
@ -285,14 +289,19 @@ msgstr "Možné hodnoty jsou: "
msgid "Restore Default"
msgstr "Obnovit výchozí"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Hledání"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "Vyberte cestu"
#, fuzzy
msgid "Select directory"
msgstr "Vybrat soubor s modem:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Vybrat soubor s modem:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -337,42 +346,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Zavřít obchod"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Stahuji $1, prosím čekejte..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Instalovat"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Strana $1 z $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Hodnocení"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Zkratka:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Úspěšně nainstalováno:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Neřazené"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Přeinstalovat"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Aktivní přispěvatelé"
@ -712,6 +685,10 @@ msgstr "Hlavní nabídka"
msgid "Start Singleplayer"
msgstr "Start místní hry"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Informace nejsou dostupné"
@ -839,10 +816,6 @@ msgstr "Změnit klávesy"
msgid "Change Password"
msgstr "Změnit heslo"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Připojuji se k serveru..."
#: src/game.cpp
msgid "Continue"
msgstr "Pokračovat"
@ -877,14 +850,6 @@ msgstr ""
"- Myš(kolečko): vybrat přihrádku\n"
"- T: chat\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Vytvářím klienta..."
#: src/game.cpp
msgid "Creating server..."
msgstr "Vytvářím server..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -968,14 +933,6 @@ msgstr ""
msgid "Remote server"
msgstr "Vzdálený port"
#: src/game.cpp
msgid "Resolving address..."
msgstr "Překládám adresu..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "Vypínání..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Místní hra"
@ -1010,13 +967,24 @@ msgid "Proceed"
msgstr "Pokračovat"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Použít\" = slézt dolů"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Vpřed"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Vzad"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Změnit nastavení kláves"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Chat"
@ -1029,6 +997,10 @@ msgstr "Příkaz"
msgid "Console"
msgstr "Konzole"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1045,6 +1017,10 @@ msgstr "Zahodit"
msgid "Forward"
msgstr "Vpřed"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1102,14 +1078,32 @@ msgstr "Změna dohledu"
msgid "Right"
msgstr "Doprava"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Snímek obrazovky"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Plížit se"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Plynulý pohyb kamery"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Létání"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Turbo"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Turbo"
@ -1119,12 +1113,18 @@ msgid "Toggle fly"
msgstr "Létání"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Létání"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Duch"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Použít"
msgid "Toggle noclip"
msgstr "Duch"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1417,6 +1417,10 @@ msgstr "X Tlačítko 1"
msgid "X Button 2"
msgstr "X Tlačítko 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "cs"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1618,12 +1622,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Vpřed"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr "Automaticky hlásit seznamu serverů."
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1891,7 +1900,8 @@ msgid "Continuous forward"
msgstr "Neustálý pohyb vpřed"
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
#, fuzzy
msgid "Continuous forward movement, toggled by autoforward key."
msgstr "Neustálý pohyb vpřed (jen pro testování)."
#: src/settings_translation_file.cpp
@ -1975,6 +1985,10 @@ msgstr "DPI"
msgid "Damage"
msgstr "Zranění"
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "Klávesa pro zobrazení ladících informací"
@ -2101,10 +2115,6 @@ msgstr "Hloubka pod kterou najdete velké jeskyně."
msgid "Depth below which you'll find massive caves."
msgstr "Hloubka pod kterou najdete obrovské jeskyně."
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr "Rychlost slézání"
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2136,18 +2146,6 @@ msgstr "Částice"
msgid "Disable anticheat"
msgstr "Zakázat anticheat"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr "Zakázat prázdná hesla"
@ -2236,10 +2234,6 @@ msgstr ""
"Vzdálené servery nabízejí výrazně rychlejší způsob, jak stáhnout\n"
"média (např. textury) při připojování k serveru."
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2289,10 +2283,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3113,7 +3103,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3287,6 +3277,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3625,6 +3619,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3677,18 +3681,6 @@ msgstr "Mip-mapování"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr "Cesta k neproporcionálnímu písmu"
@ -3952,6 +3944,12 @@ msgstr "Vzdálená média"
msgid "Remote port"
msgstr "Vzdálený port"
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4010,6 +4008,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4035,10 +4037,6 @@ msgstr "Výška obrazovky"
msgid "Screen width"
msgstr "Šířka obrazovky"
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Snímek obrazovky"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr "Složka se snímky obrazovky"
@ -4268,6 +4266,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr "Podpora starších serverů"
@ -4813,172 +4815,229 @@ msgstr "cURL limit paralelních stahování"
msgid "cURL timeout"
msgstr "cURL timeout"
#~ msgid "Hide mp content"
#~ msgstr "Skrýt obsahy balíčků"
#~ msgid "Preload inventory textures"
#~ msgstr "Přednačíst inventářové textury"
#~ msgid "Start Game"
#~ msgstr "Spustit hru"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Měřítko aplikované na prvky menu: "
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Touch free target"
#~ msgstr "Středový kurzor"
#~ msgid "Capital"
#~ msgstr "Klávesa velkého písmene"
#~ msgid " KB/s"
#~ msgstr " KB/s"
#~ msgid "Comma"
#~ msgstr "Čárka"
#~ msgid " MB/s"
#~ msgstr " MB/s"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Downloading"
#~ msgstr "Stahuji"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Gamemgr: Unable to copy mod \"$1\" to game \"$2\""
#~ msgstr "Gamemgr: Nepovedlo se zkopírovat mod \"$1\" do hry \"$2\""
#~ msgid "Final"
#~ msgstr "Final"
#~ msgid "GAMES"
#~ msgstr "HRY"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Mods:"
#~ msgstr "Mody:"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "new game"
#~ msgstr "nová hra"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "EDIT GAME"
#~ msgstr "UPRAVIT HRU"
#~ msgid "Minus"
#~ msgstr "Mínus"
#~ msgid "Remove selected mod"
#~ msgstr "Odstranit vybraný mod"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "<<-- Add mod"
#~ msgstr "<<-- Přidat mod"
#~ msgid "Period"
#~ msgstr "Tečka"
#~ msgid "CLIENT"
#~ msgstr "KLIENT"
#~ msgid "Plus"
#~ msgstr "Plus"
#~ msgid "START SERVER"
#~ msgstr "MÍSTNÍ SERVER"
#~ msgid "Name"
#~ msgstr "Jméno"
#~ msgid "Password"
#~ msgstr "Heslo"
#~ msgid "SETTINGS"
#~ msgstr "NASTAVENÍ"
#~ msgid "Preload item visuals"
#~ msgstr "Přednačíst textury předmětů"
#~ msgid "Finite Liquid"
#~ msgstr "Konečná voda"
#~ msgid "SINGLE PLAYER"
#~ msgstr "HRA JEDNOHO HRÁČE"
#~ msgid "TEXTURE PACKS"
#~ msgstr "BALÍČKY TEXTUR"
#~ msgid "MODS"
#~ msgstr "MODY"
#~ msgid "Add mod:"
#~ msgstr "Přidat mod:"
#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgstr ""
#~ "Levý klik: Přesunout všechny předměty, Pravý klik: Přesunout jeden předmět"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "Aby se změna ovladače projevila, restartujte Minetest"
#~ msgid "If enabled, "
#~ msgstr "Je-li povoleno, "
#~ msgid "If disabled "
#~ msgstr "Je-li zakázáno "
#~ msgid "\""
#~ msgstr "\""
#~ msgid "No!!!"
#~ msgstr "Ne!!!"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generovat normálové mapy"
#~ msgid "Public Serverlist"
#~ msgstr "Seznam veřejných serverů"
#~ msgid "No of course not!"
#~ msgstr "Jistě že ne!"
#~ msgid "Useful for mod developers."
#~ msgstr "Užitečné pro vývojáře modů."
#~ msgid "Detailed mod profiling"
#~ msgstr "Detailní profilování modů"
#~ msgid "Detailed mod profile data. Useful for mod developers."
#~ msgstr "Detailní profilovací data modů. Užitečné pro vývojáře modů."
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Mapgen plochy"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Mapgen plochy"
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Mapgen v7"
#, fuzzy
#~ msgid "Mapgen v5 cave width"
#~ msgstr "Mapgen v5"
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Mapgen v7"
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Mapgen plochy"
#~ msgid "Detailed mod profile data. Useful for mod developers."
#~ msgstr "Detailní profilovací data modů. Užitečné pro vývojáře modů."
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Mapgen plochy"
#~ msgid "Detailed mod profiling"
#~ msgstr "Detailní profilování modů"
#~ msgid "Plus"
#~ msgstr "Plus"
#~ msgid "Useful for mod developers."
#~ msgstr "Užitečné pro vývojáře modů."
#~ msgid "Period"
#~ msgstr "Tečka"
#~ msgid "No of course not!"
#~ msgstr "Jistě že ne!"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Public Serverlist"
#~ msgstr "Seznam veřejných serverů"
#~ msgid "Minus"
#~ msgstr "Mínus"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generovat normálové mapy"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "No!!!"
#~ msgstr "Ne!!!"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "\""
#~ msgstr "\""
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "If disabled "
#~ msgstr "Je-li zakázáno "
#~ msgid "Final"
#~ msgstr "Final"
#~ msgid "If enabled, "
#~ msgstr "Je-li povoleno, "
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "Aby se změna ovladače projevila, restartujte Minetest"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgstr ""
#~ "Levý klik: Přesunout všechny předměty, Pravý klik: Přesunout jeden předmět"
#~ msgid "Comma"
#~ msgstr "Čárka"
#~ msgid "Add mod:"
#~ msgstr "Přidat mod:"
#~ msgid "Capital"
#~ msgstr "Klávesa velkého písmene"
#~ msgid "MODS"
#~ msgstr "MODY"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "TEXTURE PACKS"
#~ msgstr "BALÍČKY TEXTUR"
#~ msgid "Start Game"
#~ msgstr "Spustit hru"
#~ msgid "SINGLE PLAYER"
#~ msgstr "HRA JEDNOHO HRÁČE"
#~ msgid "Hide mp content"
#~ msgstr "Skrýt obsahy balíčků"
#~ msgid "Finite Liquid"
#~ msgstr "Konečná voda"
#~ msgid "Descending speed"
#~ msgstr "Rychlost slézání"
#~ msgid "Preload item visuals"
#~ msgstr "Přednačíst textury předmětů"
#~ msgid "Use"
#~ msgstr "Použít"
#~ msgid "SETTINGS"
#~ msgstr "NASTAVENÍ"
#~ msgid "Shutting down..."
#~ msgstr "Vypínání..."
#~ msgid "Password"
#~ msgstr "Heslo"
#~ msgid "Resolving address..."
#~ msgstr "Překládám adresu..."
#~ msgid "Name"
#~ msgstr "Jméno"
#~ msgid "Creating server..."
#~ msgstr "Vytvářím server..."
#~ msgid "START SERVER"
#~ msgstr "MÍSTNÍ SERVER"
#~ msgid "Creating client..."
#~ msgstr "Vytvářím klienta..."
#~ msgid "CLIENT"
#~ msgstr "KLIENT"
#~ msgid "Connecting to server..."
#~ msgstr "Připojuji se k serveru..."
#~ msgid "<<-- Add mod"
#~ msgstr "<<-- Přidat mod"
#~ msgid "re-Install"
#~ msgstr "Přeinstalovat"
#~ msgid "Remove selected mod"
#~ msgstr "Odstranit vybraný mod"
#~ msgid "Unsorted"
#~ msgstr "Neřazené"
#~ msgid "EDIT GAME"
#~ msgstr "UPRAVIT HRU"
#~ msgid "Successfully installed:"
#~ msgstr "Úspěšně nainstalováno:"
#~ msgid "new game"
#~ msgstr "nová hra"
#~ msgid "Shortname:"
#~ msgstr "Zkratka:"
#~ msgid "Mods:"
#~ msgstr "Mody:"
#~ msgid "Rating"
#~ msgstr "Hodnocení"
#~ msgid "GAMES"
#~ msgstr "HRY"
#~ msgid "Page $1 of $2"
#~ msgstr "Strana $1 z $2"
#~ msgid "Gamemgr: Unable to copy mod \"$1\" to game \"$2\""
#~ msgstr "Gamemgr: Nepovedlo se zkopírovat mod \"$1\" do hry \"$2\""
#~ msgid "Install"
#~ msgstr "Instalovat"
#~ msgid "Downloading"
#~ msgstr "Stahuji"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Stahuji $1, prosím čekejte..."
#~ msgid " MB/s"
#~ msgstr " MB/s"
#~ msgid "Close store"
#~ msgstr "Zavřít obchod"
#~ msgid " KB/s"
#~ msgstr " KB/s"
#~ msgid "Select path"
#~ msgstr "Vyberte cestu"
#~ msgid "Touch free target"
#~ msgstr "Středový kurzor"
#~ msgid "Optionally the lacunarity can be appended with a leading comma."
#~ msgstr "Lakunarita může být specifikována spolu s předcházející čárkou."
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Měřítko aplikované na prvky menu: "
#~ msgid "Preload inventory textures"
#~ msgstr "Přednačíst inventářové textury"
#~ msgid "No worldname given or no game selected"
#~ msgstr "Nebyla vybrána podhra nebo název"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:39+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-05-10 03:36+0000\n"
"Last-Translator: Unknown <abjinah@gmail.com>\n"
"Language-Team: Dhivehi <https://hosted.weblate.org/projects/minetest/"
@ -39,7 +39,7 @@ msgstr "massala eh dhimaa vejje"
msgid "Main menu"
msgstr "maigandu menu"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "emme rangalhu"
@ -51,7 +51,7 @@ msgstr "aa gulhumeh"
msgid "The server has requested a reconnect:"
msgstr "server in aa gulhumakah edhijje"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "loadvanee"
@ -165,7 +165,7 @@ msgid "Mapgen"
msgstr "Mapufaddhaa"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgid "No game selected"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@ -227,6 +227,14 @@ msgstr ""
msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
@ -248,9 +256,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -261,10 +267,6 @@ msgstr ""
msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -285,13 +287,16 @@ msgstr ""
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgid "Select directory"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select file"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -332,42 +337,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr ""
@ -698,6 +667,10 @@ msgstr ""
msgid "Start Singleplayer"
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""
@ -816,10 +789,6 @@ msgstr ""
msgid "Change Password"
msgstr ""
#: src/game.cpp
msgid "Connecting to server..."
msgstr ""
#: src/game.cpp
msgid "Continue"
msgstr ""
@ -843,14 +812,6 @@ msgid ""
"- %s: chat\n"
msgstr ""
#: src/game.cpp
msgid "Creating client..."
msgstr ""
#: src/game.cpp
msgid "Creating server..."
msgstr ""
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -919,14 +880,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr ""
#: src/game.cpp
msgid "Shutting down..."
msgstr ""
#: src/game.cpp
msgid "Singleplayer"
msgstr ""
@ -961,13 +914,21 @@ msgid "Proceed"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgid "\"Special\" = climb down"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Autoforward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Change camera"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr ""
@ -980,6 +941,10 @@ msgstr ""
msgid "Console"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -996,6 +961,10 @@ msgstr ""
msgid "Forward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr ""
@ -1048,14 +1017,30 @@ msgstr ""
msgid "Right"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr ""
@ -1065,11 +1050,15 @@ msgid "Toggle fly"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgid "Toggle fog"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgid "Toggle minimap"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
@ -1356,6 +1345,10 @@ msgstr ""
msgid "X Button 2"
msgstr ""
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "dv"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1537,12 +1530,16 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Automatic forwards key"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1797,7 +1794,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1878,6 +1875,10 @@ msgstr ""
msgid "Damage"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2001,10 +2002,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2033,18 +2030,6 @@ msgstr ""
msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2126,10 +2111,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2179,10 +2160,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -2994,7 +2971,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3167,6 +3144,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3505,6 +3486,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3557,18 +3548,6 @@ msgstr ""
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3830,6 +3809,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -3886,6 +3871,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -3911,10 +3900,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4140,6 +4125,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-05-10 02:53+0000\n"
"Last-Translator: yellowcrash10 <corini98@gmail.com>\n"
"Language-Team: Esperanto <https://hosted.weblate.org/projects/minetest/"
@ -39,7 +39,7 @@ msgstr "Eraro okazis:"
msgid "Main menu"
msgstr "Ĉefmenuo"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Bone"
@ -52,7 +52,7 @@ msgstr "Rekonekti"
msgid "The server has requested a reconnect:"
msgstr "La servilo petis rekonekton:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Ŝargas…"
@ -169,8 +169,9 @@ msgid "Mapgen"
msgstr "Mondogenerilo"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "Neniu mondonomo donitas aŭ neniu ludon elektitas"
#, fuzzy
msgid "No game selected"
msgstr "Ŝanĝi vidodistancon"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -232,6 +233,14 @@ msgstr "(Neniu priskribo de agordo donitis)"
msgid "< Back to Settings page"
msgstr "< Reiri al agorda paĝo"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Browse"
@ -255,9 +264,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr "La aranĝo estas 3 diskomaj nombroj inter krampoj."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -268,10 +275,6 @@ msgstr "Ludoj"
msgid "Mods"
msgstr "Modifoj"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Please enter a comma seperated list of flags."
@ -295,15 +298,19 @@ msgstr "Eblaj valoroj estas: "
msgid "Restore Default"
msgstr "Refari Defaŭlton"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Serĉi"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select path"
msgstr "Selekto"
msgid "Select directory"
msgstr "Selekti modifan dosieron:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Selekti modifan dosieron:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -348,42 +355,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Fermi"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Elŝutas $1, bonvolu atendi…"
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Instali"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Paĝo $1 de $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Takso"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Konciza nomo:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Instalis sukcese:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Neordigita"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Instali denove"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Aktivaj kontribuistoj"
@ -723,6 +694,10 @@ msgstr "Ĉefmenuo"
msgid "Start Singleplayer"
msgstr "Startigi solludanton"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Neniu informoj disponeblas"
@ -850,10 +825,6 @@ msgstr "Ŝanĝi klavojn"
msgid "Change Password"
msgstr "Ŝanĝi pasvorton"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Konekti al servilo…"
#: src/game.cpp
msgid "Continue"
msgstr "Daŭrigi"
@ -888,14 +859,6 @@ msgstr ""
"- Musrado: elekti aĵon\n"
"- T: babili\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Krei klienton…"
#: src/game.cpp
msgid "Creating server..."
msgstr "Krei servilon…"
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -978,14 +941,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr "Adrestrovili…"
#: src/game.cpp
msgid "Shutting down..."
msgstr "Malŝaltiĝi…"
#: src/game.cpp
msgid "Singleplayer"
msgstr "Solludanto"
@ -1021,13 +976,24 @@ msgid "Proceed"
msgstr "Daŭrigi"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Uzi\" = malsupreniri"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Antaŭen"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Malantaŭen"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Ŝanĝi klavojn"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Babili"
@ -1040,6 +1006,10 @@ msgstr "Komando"
msgid "Console"
msgstr "Konzolo"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1056,6 +1026,10 @@ msgstr "Lasi"
msgid "Forward"
msgstr "Antaŭen"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1112,14 +1086,33 @@ msgstr "Ŝanĝi vidodistancon"
msgid "Right"
msgstr "Dekstren"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Ekrankopio"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Lanti"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Baskuli filmreĝimon"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Baskuli flugreĝimon"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Baskuli rapidreĝimon"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Baskuli rapidreĝimon"
@ -1129,12 +1122,18 @@ msgid "Toggle fly"
msgstr "Baskuli flugreĝimon"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Baskuli flugreĝimon"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Baskuli nekolizian reĝimon"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Uzi"
msgid "Toggle noclip"
msgstr "Baskuli nekolizian reĝimon"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1427,6 +1426,10 @@ msgstr "X-Butono 1"
msgid "X Button 2"
msgstr "X-Butono 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "eo"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1609,12 +1612,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Antaŭen"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1885,7 +1893,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1966,6 +1974,11 @@ msgstr ""
msgid "Damage"
msgstr "Damaĝon"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Darkness sharpness"
msgstr "Paralaksa Okludo"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2089,10 +2102,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2123,18 +2132,6 @@ msgstr "Ŝaltu ĉiujn"
msgid "Disable anticheat"
msgstr "Ŝalti partiklojn"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2220,10 +2217,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2275,10 +2268,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3105,7 +3094,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3282,6 +3271,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3635,6 +3628,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3689,18 +3692,6 @@ msgstr "Protuberancmapado"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3972,6 +3963,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4030,6 +4027,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4055,11 +4056,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Ekrankopio"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4299,6 +4295,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4854,74 +4854,46 @@ msgstr ""
msgid "cURL timeout"
msgstr "cURL tempolimo"
#~ msgid "Hide mp content"
#~ msgstr "Kaŝu modifarojn"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Ŝargi teksturojn…"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Skala faktoro por menuoj "
#~ msgid "Capital"
#~ msgstr "Fiksiĝema klavo"
#~ msgid "Touch free target"
#~ msgstr "Sentuŝa celo"
#~ msgid "Comma"
#~ msgstr "Komo"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Final"
#~ msgstr "Finalo"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Minus"
#~ msgstr "Minuso"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Period"
#~ msgstr "Punkto"
#~ msgid "Plus"
#~ msgstr "Pluso"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "Restartigu Minetest-on por efikigi pelilan ŝanĝon"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Mondogenerilo"
#~ msgid "If enabled, "
#~ msgstr "ŝaltita"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Mondogenerilo"
#~ msgid "If disabled "
#~ msgstr "Malŝaltu modifaron"
#~ msgid "No!!!"
#~ msgstr "Ne!!!"
#, fuzzy
#~ msgid "Mapgen fractal fractal"
#~ msgstr "Mondogenerilo"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generi Normalmapojn"
#~ msgid "Public Serverlist"
#~ msgstr "Publika servilolisto"
#~ msgid "No of course not!"
#~ msgstr "Ne, memkompreneble!"
#, fuzzy
#~ msgid "Mapgen fractal iterations"
#~ msgstr "Paralaksa Okludo"
#~ msgid "Useful for mod developers."
#~ msgstr "Eksaj kernprogramistoj"
#, fuzzy
#~ msgid "Mapgen fractal offset"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Mapgen fractal scale"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Mapgen fractal slice w"
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Mondogenerilo"
#, fuzzy
@ -4929,43 +4901,123 @@ msgstr "cURL tempolimo"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgid "Mapgen fractal slice w"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Useful for mod developers."
#~ msgstr "Eksaj kernprogramistoj"
#~ msgid "No of course not!"
#~ msgstr "Ne, memkompreneble!"
#~ msgid "Public Serverlist"
#~ msgstr "Publika servilolisto"
#~ msgid "Mapgen fractal scale"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Generate Normalmaps"
#~ msgstr "Generi Normalmapojn"
#~ msgid "No!!!"
#~ msgstr "Ne!!!"
#~ msgid "Mapgen fractal offset"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Malŝaltu modifaron"
#~ msgid "Mapgen fractal iterations"
#~ msgstr "Paralaksa Okludo"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "ŝaltita"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "Restartigu Minetest-on por efikigi pelilan ŝanĝon"
#~ msgid "Touch free target"
#~ msgstr "Sentuŝa celo"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Skala faktoro por menuoj "
#~ msgid "Mapgen fractal fractal"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Ŝargi teksturojn…"
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Mondogenerilo"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Mondogenerilo"
#~ msgid "Plus"
#~ msgstr "Pluso"
#~ msgid "Period"
#~ msgstr "Punkto"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Minus"
#~ msgstr "Minuso"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Final"
#~ msgstr "Finalo"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Comma"
#~ msgstr "Komo"
#~ msgid "Capital"
#~ msgstr "Fiksiĝema klavo"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Hide mp content"
#~ msgstr "Kaŝu modifarojn"
#~ msgid "Use"
#~ msgstr "Uzi"
#~ msgid "Shutting down..."
#~ msgstr "Malŝaltiĝi…"
#~ msgid "Resolving address..."
#~ msgstr "Adrestrovili…"
#~ msgid "Creating server..."
#~ msgstr "Krei servilon…"
#~ msgid "Creating client..."
#~ msgstr "Krei klienton…"
#~ msgid "Connecting to server..."
#~ msgstr "Konekti al servilo…"
#~ msgid "re-Install"
#~ msgstr "Instali denove"
#~ msgid "Unsorted"
#~ msgstr "Neordigita"
#~ msgid "Successfully installed:"
#~ msgstr "Instalis sukcese:"
#~ msgid "Shortname:"
#~ msgstr "Konciza nomo:"
#~ msgid "Rating"
#~ msgstr "Takso"
#~ msgid "Page $1 of $2"
#~ msgstr "Paĝo $1 de $2"
#~ msgid "Install"
#~ msgstr "Instali"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Elŝutas $1, bonvolu atendi…"
#~ msgid "Close store"
#~ msgstr "Fermi"
#, fuzzy
#~ msgid "Select path"
#~ msgstr "Selekto"
#~ msgid "No worldname given or no game selected"
#~ msgstr "Neniu mondonomo donitas aŭ neniu ludon elektitas"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-05-16 15:43+0000\n"
"Last-Translator: Michael Higuera <mineyoshist@protonmail.ch>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/minetest/"
@ -39,7 +39,7 @@ msgstr "Ha ocurrido un error:"
msgid "Main menu"
msgstr "Menú principal"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Aceptar"
@ -51,7 +51,7 @@ msgstr "Reconectar"
msgid "The server has requested a reconnect:"
msgstr "El servidor ha solicitado una reconexión:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Cargando..."
@ -165,8 +165,9 @@ msgid "Mapgen"
msgstr "Generador de mapas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "No se ha dado un nombre al mundo o no se ha seleccionado uno"
#, fuzzy
msgid "No game selected"
msgstr "Seleccionar distancia"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -227,6 +228,17 @@ msgstr "(Ninguna descripción de ajuste dada)"
msgid "< Back to Settings page"
msgstr "< Volver a la página de Configuración"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"Formato: <offset> <escala> (<extensión X>, <extensión Y> , <extensión Z>), "
"<semilla>, <octavas>, <persistencia>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Navegar"
@ -249,12 +261,8 @@ msgstr ""
"El formato es 3 números separados por comas y éstos dentro de paréntesis."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"Formato: <offset> <escala> (<extensión X>, <extensión Y> , <extensión Z>), "
"<semilla>, <octavas>, <persistencia>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -264,12 +272,6 @@ msgstr "Juegos"
msgid "Mods"
msgstr "Mods"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
"Opcionalmente, el parámetro \"lacunarity\" puede ser anexado separándolo "
"mediante una coma."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr "Por favor, introduzca una lista de indicadores separados por comas."
@ -290,14 +292,19 @@ msgstr "Los valores posibles son: "
msgid "Restore Default"
msgstr "Restablecer por defecto"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Buscar"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "Seleccionar ruta"
#, fuzzy
msgid "Select directory"
msgstr "Selecciona el fichero del mod:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Selecciona el fichero del mod:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -343,43 +350,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
# En el menú principal de mods pone repositorio no tienda.
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Cerrar repositorio"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Descargando $1, por favor espere..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Instalar"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Página $1 de $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Clasificación"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Nombre corto:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Instalado con éxito:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Sin ordenar"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Reinstalar"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Colaboradores activos"
@ -717,6 +687,10 @@ msgstr "Principal"
msgid "Start Singleplayer"
msgstr "Comenzar un jugador"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Sin información disponible"
@ -846,10 +820,6 @@ msgstr "Configurar teclas"
msgid "Change Password"
msgstr "Cambiar contraseña"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Conectando al servidor..."
#: src/game.cpp
msgid "Continue"
msgstr "Continuar"
@ -884,14 +854,6 @@ msgstr ""
"- Ratón rueda: elegir objeto\n"
"- T: chat\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Creando cliente..."
#: src/game.cpp
msgid "Creating server..."
msgstr "Creando servidor..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -975,14 +937,6 @@ msgstr ""
msgid "Remote server"
msgstr "Anunciar servidor"
#: src/game.cpp
msgid "Resolving address..."
msgstr "Resolviendo dirección..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "Cerrando..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Un jugador"
@ -1017,13 +971,24 @@ msgid "Proceed"
msgstr "Continuar"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Usar\" = Descender"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Adelante"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Atrás"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Configurar teclas"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Chat"
@ -1036,6 +1001,10 @@ msgstr "Comando"
msgid "Console"
msgstr "Consola"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1052,6 +1021,10 @@ msgstr "Tirar"
msgid "Forward"
msgstr "Adelante"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1109,14 +1082,32 @@ msgstr "Seleccionar distancia"
msgid "Right"
msgstr "Derecha"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Captura de pantalla"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Caminar"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Activar cinemático"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Activar volar"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Activar rápido"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Activar rápido"
@ -1126,12 +1117,18 @@ msgid "Toggle fly"
msgstr "Activar volar"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Activar volar"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Activar noclip"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Usar"
msgid "Toggle noclip"
msgstr "Activar noclip"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1425,6 +1422,10 @@ msgstr "X Botón 1"
msgid "X Button 2"
msgstr "X Botón 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "es"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1639,13 +1640,18 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Tecla Avanzar"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr "Automáticamente informar a la lista del servidor."
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgstr "Tecla de Auto Ejecutar"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Backward key"
@ -1934,7 +1940,8 @@ msgid "Continuous forward"
msgstr "Avance continuo"
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
#, fuzzy
msgid "Continuous forward movement, toggled by autoforward key."
msgstr "Avance continuo (sólo utilizado para la testing)."
#: src/settings_translation_file.cpp
@ -2023,6 +2030,11 @@ msgstr "DPI"
msgid "Damage"
msgstr "Daño"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Darkness sharpness"
msgstr "Oclusión de paralaje"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "Tecla alternativa para la información de la depuración"
@ -2155,10 +2167,6 @@ msgstr "Profundidad en la cual comienzan las grandes cuevas."
msgid "Depth below which you'll find massive caves."
msgstr "Profundidad en la cual comienzan cuevas enormes."
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr "Velocidad de descenso"
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2190,23 +2198,6 @@ msgstr "Partículas"
msgid "Disable anticheat"
msgstr "Desactivar Anticheat"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr "Desactivar secuencias de escape"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
"Deshabilita las secuencias de escape, por ejemplo: colorear el chat.\n"
"Usa esto si tu quieres correr un servidor con clientes pre-0.4.14 y quieres "
"deshabilitar\n"
"las secuencias de escape generadas por los mods."
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr "No permitir contraseñas vacías"
@ -2298,11 +2289,6 @@ msgstr ""
"Servidores remotos ofrecen una manera significativamente más rápida de\n"
"descargar medios (por ej. texturas) cuando se conecta a un servidor."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable view bobbing"
msgstr "Movimiento de cámara al caer"
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2364,10 +2350,6 @@ msgstr ""
"Habilita mapeado de oclusión de paralaje.\n"
"Requiere habilitar sombreadores."
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3231,7 +3213,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3407,6 +3389,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3756,6 +3742,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3809,18 +3805,6 @@ msgstr "Mapeado de relieve"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -4089,6 +4073,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4146,6 +4136,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4171,10 +4165,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Captura de pantalla"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4405,6 +4395,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4955,54 +4949,94 @@ msgstr ""
msgid "cURL timeout"
msgstr "Tiempo de espera de cURL"
#~ msgid "Hide mp content"
#~ msgstr "Ocultar contenido"
#~ msgid "Preload inventory textures"
#~ msgstr "Precarga de las texturas del inventario"
#~ msgid "Attn"
#~ msgstr "Atentamente"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Factor de escala aplicado a los elementos del menú: "
#~ msgid "Capital"
#~ msgstr "Bloq Mayús"
#~ msgid "Touch free target"
#~ msgstr "Tocar para interactuar"
#~ msgid "Comma"
#~ msgstr "Coma"
#~ msgid " KB/s"
#~ msgstr " KB/s"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid " MB/s"
#~ msgstr " MB/s"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr ""
#~ "Reinicia minetest para que los cambios en el controlador tengan efecto"
#~ msgid "Final"
#~ msgstr "Final"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "Activado"
#~ msgid "Junja"
#~ msgstr "Junja"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Desactivar paquete"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "No!!!"
#~ msgstr "¡¡¡No!!!"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generar mapas normales"
#~ msgid "Minus"
#~ msgstr "Menos"
#~ msgid "Public Serverlist"
#~ msgstr "Lista de servidores públicos"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "No of course not!"
#~ msgstr "¡No, claro que no!"
#~ msgid "Period"
#~ msgstr "Punto"
#~ msgid "Plus"
#~ msgstr "Más"
#~ msgid "Useful for mod developers."
#~ msgstr "Útil para los desarrolladores de mods."
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ "How many blocks are flying in the wire simultaneously for the whole "
#~ "server."
#~ msgstr "Cantidad de bloques que flotan simultáneamente en todo el servidor."
#~ msgid "Detailed mod profiling"
#~ msgstr "Perfilador detallado de los mods"
#~ msgid "Detailed mod profile data. Useful for mod developers."
#~ msgstr ""
#~ "Controla el tamaño de desiertos y playas en Mapgen v6.\n"
#~ "Cuando snowbiomes están activados 'mgv6_freq_desert' se ignora."
#~ "Datos detallados de perfilación de mod. Útil para desarrolladores de mods."
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen v5 cave width"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal slice w"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal scale"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal offset"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal iterations"
#~ msgstr "Oclusión de paralaje"
#, fuzzy
#~ msgid "Mapgen fractal fractal"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Generador de mapas"
#~ msgid "Mapgen flat cave width"
#~ msgstr "Anchura de cuevas planas de Mapgen"
#~ msgid ""
#~ "Determines terrain shape.\n"
@ -5013,91 +5047,133 @@ msgstr "Tiempo de espera de cURL"
#~ "Los tres números entre paréntesis controlan la escala\n"
#~ "del terreno, y deben ser iguales."
#~ msgid "Mapgen flat cave width"
#~ msgstr "Anchura de cuevas planas de Mapgen"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal fractal"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal iterations"
#~ msgstr "Oclusión de paralaje"
#, fuzzy
#~ msgid "Mapgen fractal offset"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal scale"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen fractal slice w"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen v5 cave width"
#~ msgstr "Generador de mapas"
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Generador de mapas"
#~ msgid "Detailed mod profile data. Useful for mod developers."
#~ msgstr ""
#~ "Datos detallados de perfilación de mod. Útil para desarrolladores de mods."
#~ msgid "Detailed mod profiling"
#~ msgstr "Perfilador detallado de los mods"
#~ msgid ""
#~ "How many blocks are flying in the wire simultaneously for the whole "
#~ "server."
#~ msgstr "Cantidad de bloques que flotan simultáneamente en todo el servidor."
#~ msgid "Useful for mod developers."
#~ msgstr "Útil para los desarrolladores de mods."
#~ msgid "No of course not!"
#~ msgstr "¡No, claro que no!"
#~ msgid "Public Serverlist"
#~ msgstr "Lista de servidores públicos"
#~ msgid "Generate Normalmaps"
#~ msgstr "Generar mapas normales"
#~ msgid "No!!!"
#~ msgstr "¡¡¡No!!!"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Desactivar paquete"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "Activado"
#~ msgid "Restart minetest for driver change to take effect"
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "Reinicia minetest para que los cambios en el controlador tengan efecto"
#~ "Controla el tamaño de desiertos y playas en Mapgen v6.\n"
#~ "Cuando snowbiomes están activados 'mgv6_freq_desert' se ignora."
#~ msgid " MB/s"
#~ msgstr " MB/s"
#~ msgid "Plus"
#~ msgstr "Más"
#~ msgid " KB/s"
#~ msgstr " KB/s"
#~ msgid "Period"
#~ msgstr "Punto"
#~ msgid "Touch free target"
#~ msgstr "Tocar para interactuar"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Factor de escala aplicado a los elementos del menú: "
#~ msgid "Minus"
#~ msgstr "Menos"
#~ msgid "Preload inventory textures"
#~ msgstr "Precarga de las texturas del inventario"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Final"
#~ msgstr "Final"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Comma"
#~ msgstr "Coma"
#~ msgid "Capital"
#~ msgstr "Bloq Mayús"
#~ msgid "Attn"
#~ msgstr "Atentamente"
#~ msgid "Hide mp content"
#~ msgstr "Ocultar contenido"
#, fuzzy
#~ msgid "Enable view bobbing"
#~ msgstr "Movimiento de cámara al caer"
#, fuzzy
#~ msgid ""
#~ "Disable escape sequences, e.g. chat coloring.\n"
#~ "Use this if you want to run a server with pre-0.4.14 clients and you want "
#~ "to disable\n"
#~ "the escape sequences generated by mods."
#~ msgstr ""
#~ "Deshabilita las secuencias de escape, por ejemplo: colorear el chat.\n"
#~ "Usa esto si tu quieres correr un servidor con clientes pre-0.4.14 y "
#~ "quieres deshabilitar\n"
#~ "las secuencias de escape generadas por los mods."
#~ msgid "Disable escape sequences"
#~ msgstr "Desactivar secuencias de escape"
#~ msgid "Descending speed"
#~ msgstr "Velocidad de descenso"
#~ msgid "Autorun key"
#~ msgstr "Tecla de Auto Ejecutar"
#~ msgid "Use"
#~ msgstr "Usar"
#~ msgid "Shutting down..."
#~ msgstr "Cerrando..."
#~ msgid "Resolving address..."
#~ msgstr "Resolviendo dirección..."
#~ msgid "Creating server..."
#~ msgstr "Creando servidor..."
#~ msgid "Creating client..."
#~ msgstr "Creando cliente..."
#~ msgid "Connecting to server..."
#~ msgstr "Conectando al servidor..."
#~ msgid "re-Install"
#~ msgstr "Reinstalar"
#~ msgid "Unsorted"
#~ msgstr "Sin ordenar"
#~ msgid "Successfully installed:"
#~ msgstr "Instalado con éxito:"
#~ msgid "Shortname:"
#~ msgstr "Nombre corto:"
#~ msgid "Rating"
#~ msgstr "Clasificación"
#~ msgid "Page $1 of $2"
#~ msgstr "Página $1 de $2"
#~ msgid "Install"
#~ msgstr "Instalar"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Descargando $1, por favor espere..."
# En el menú principal de mods pone repositorio no tienda.
#~ msgid "Close store"
#~ msgstr "Cerrar repositorio"
#~ msgid "Select path"
#~ msgstr "Seleccionar ruta"
#~ msgid "Optionally the lacunarity can be appended with a leading comma."
#~ msgstr ""
#~ "Opcionalmente, el parámetro \"lacunarity\" puede ser anexado separándolo "
#~ "mediante una coma."
#~ msgid "No worldname given or no game selected"
#~ msgstr "No se ha dado un nombre al mundo o no se ha seleccionado uno"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2016-04-09 13:53+0000\n"
"Last-Translator: Jan Harald <kuus29@gmail.com>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/minetest/"
@ -39,7 +39,7 @@ msgstr "Ilmnes viga:"
msgid "Main menu"
msgstr "Peamenüü"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Olgu."
@ -51,7 +51,7 @@ msgstr "Taasta ühendus"
msgid "The server has requested a reconnect:"
msgstr "Server taotles taasühendumist:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Laadimine..."
@ -165,8 +165,9 @@ msgid "Mapgen"
msgstr "Kaardi generaator"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "No nimi või no mäng valitud"
#, fuzzy
msgid "No game selected"
msgstr "Kauguse valik"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -225,6 +226,14 @@ msgstr ""
msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
@ -248,9 +257,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -261,10 +268,6 @@ msgstr "Mängud"
msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -285,15 +288,19 @@ msgstr ""
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select path"
msgstr "Vali"
msgid "Select directory"
msgstr "Vali modifikatsiooni fail:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Vali modifikatsiooni fail:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -333,42 +340,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Lühike nimi:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Co-arendaja"
@ -734,6 +705,10 @@ msgstr "Menüü"
msgid "Start Singleplayer"
msgstr "Üksikmäng"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Informatsioon ei ole kättesaadav"
@ -861,10 +836,6 @@ msgstr "Vaheta nuppe"
msgid "Change Password"
msgstr "Vaheta parooli"
#: src/game.cpp
msgid "Connecting to server..."
msgstr ""
#: src/game.cpp
msgid "Continue"
msgstr "Jätka"
@ -888,14 +859,6 @@ msgid ""
"- %s: chat\n"
msgstr ""
#: src/game.cpp
msgid "Creating client..."
msgstr ""
#: src/game.cpp
msgid "Creating server..."
msgstr ""
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -965,14 +928,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr ""
#: src/game.cpp
msgid "Shutting down..."
msgstr ""
#: src/game.cpp
msgid "Singleplayer"
msgstr "Üksikmäng"
@ -1007,13 +962,24 @@ msgid "Proceed"
msgstr "Jätka"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Tegevus\" = Roni alla"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Edasi"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Tagasi"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Vaheta nuppe"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Jututuba"
@ -1026,6 +992,10 @@ msgstr "Käsklus"
msgid "Console"
msgstr "Konsool"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1042,6 +1012,10 @@ msgstr "Viska maha"
msgid "Forward"
msgstr "Edasi"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1099,15 +1073,34 @@ msgstr "Kauguse valik"
msgid "Right"
msgstr "Paremale"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Mängupilt"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Hiilimine"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle Cinematic"
msgstr "Lülita kiirus sisse"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Lülita lendamine sisse"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Lülita kiirus sisse"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Lülita kiirus sisse"
@ -1117,12 +1110,18 @@ msgid "Toggle fly"
msgstr "Lülita lendamine sisse"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Lülita lendamine sisse"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Lülita läbi seinte minek sisse"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Tegevus"
msgid "Toggle noclip"
msgstr "Lülita läbi seinte minek sisse"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1415,6 +1414,10 @@ msgstr "X Nuppp 1"
msgid "X Button 2"
msgstr "X Nupp 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "et"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1598,12 +1601,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Edasi"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1876,7 +1884,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1959,6 +1967,11 @@ msgstr ""
msgid "Damage"
msgstr "Lülita valu sisse"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Darkness sharpness"
msgstr "Põlvkonna kaardid"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2084,10 +2097,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2118,18 +2127,6 @@ msgstr "Luba kõik"
msgid "Disable anticheat"
msgstr "Lülita osakesed sisse"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2214,10 +2211,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2269,10 +2262,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3095,7 +3084,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3272,6 +3261,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3625,6 +3618,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3679,18 +3682,6 @@ msgstr "Väga hea kvaliteet"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3954,6 +3945,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4012,6 +4009,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4037,11 +4038,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Mängupilt"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4275,6 +4271,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4824,145 +4824,56 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Hide mp content"
#~ msgstr "Peida mod. pakkide sisu"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Capital"
#~ msgstr "Caps Lock"
#~ msgid "Comma"
#~ msgstr "Koma"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Final"
#~ msgstr "Viimane"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Minus"
#~ msgstr "Miinus"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Period"
#~ msgstr "Punkt"
#~ msgid "Plus"
#~ msgstr "Pluss"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Põlvkonna kaardid"
#~ msgid "Downloading"
#~ msgstr "Alla"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal fractal"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal iterations"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal offset"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal scale"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal slice w"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen v5 cave width"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Useful for mod developers."
#~ msgstr "Põhiline arendaja"
#~ msgid "Public Serverlist"
#~ msgstr "Avalikud serverid"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Lülita kõik välja"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "Sisse lülitatud"
#~ msgid "GAMES"
#~ msgstr "MÄNGUD"
#~ msgid "new game"
#~ msgstr "uus mängu"
#~ msgid "EDIT GAME"
#~ msgstr "MUUDA MÄNGU"
#, fuzzy
#~ msgid "Remove selected mod"
#~ msgstr "Eemalda valitud muutus"
#, fuzzy
#~ msgid "<<-- Add mod"
#~ msgstr "<<-- Lisama muutus"
#~ msgid "Name"
#~ msgstr "Nimi"
#~ msgid "Password"
#~ msgstr "Parool"
#~ msgid "SETTINGS"
#~ msgstr "Seaded"
#~ msgid "Preload item visuals"
#~ msgstr "Lae asjade visuaale"
#, fuzzy
#~ msgid "Finite Liquid"
#~ msgstr "Löppev vedelik"
#~ msgid ""
#~ "Warning: Some mods are not configured yet.\n"
#~ "They will be enabled by default when you save the configuration. "
#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgstr ""
#~ "Hoiatus: Mõned modifikatsioonid pole sätitud veel.\n"
#~ "Need lülitatakse sisse kohe pärast sätete salvestamist."
#~ "Vasak hiireklõps: Liiguta kõiki asju, Parem hiireklõps: Liiguta üksikut "
#~ "asja"
#~ msgid ""
#~ "Warning: Some configured mods are missing.\n"
#~ "Their setting will be removed when you save the configuration. "
#~ msgstr ""
#~ "Hoiatus: Mõned konfigureeritud modifikatsioonid on kaotsi läinud.\n"
#~ "Nende sätted kustutatakse kui salvestada konfiguratsioon."
#~ msgid "is required by:"
#~ msgstr "Seda vajavad:"
#~ msgid "Configuration saved. "
#~ msgstr "Konfiguratsioon salvestatud. "
#~ msgid "Warning: Configuration not consistent. "
#~ msgstr "Hoiatus: Konfiguratsioon pole kindel."
#~ msgid "Cannot create world: Name contains invalid characters"
#~ msgstr "Maailma loomine ebaõnnestus: Nimes esineb keelatud tähti"
#~ msgid "Show Public"
#~ msgstr "Näita avalikke"
#~ msgid "Show Favorites"
#~ msgstr "Näita lemmikuid"
#~ msgid "Leave address blank to start a local server."
#~ msgstr "Jäta IP lahter tühjaks et alustada LAN serverit."
#~ msgid "Create world"
#~ msgstr "Loo maailm"
#~ msgid "Address required."
#~ msgstr "IP on vajalkik."
#~ msgid "Cannot delete world: Nothing selected"
#~ msgstr "Maailma kustutamine ebaõnnestus: Maailma pole valitud"
#~ msgid "Files to be deleted"
#~ msgstr "Failid mida kustutada"
#~ msgid "Cannot create world: No games found"
#~ msgstr "Maailma loomine ebaõnnestus: Mängu ei leitud"
#~ msgid "Cannot configure world: Nothing selected"
#~ msgstr "Maailma konfigureerimine ebaõnnestus: Pole midagi valitud"
#~ msgid "Failed to delete all world files"
#~ msgstr "Kõigi maailma failide kustutamine ebaõnnestus"
#~ msgid ""
#~ "Default Controls:\n"
@ -4989,53 +4900,155 @@ msgstr ""
#~ "- ESC: Menüü\n"
#~ "- T: Jututupa\n"
#~ msgid "Failed to delete all world files"
#~ msgstr "Kõigi maailma failide kustutamine ebaõnnestus"
#~ msgid "Cannot configure world: Nothing selected"
#~ msgstr "Maailma konfigureerimine ebaõnnestus: Pole midagi valitud"
#~ msgid "Cannot create world: No games found"
#~ msgstr "Maailma loomine ebaõnnestus: Mängu ei leitud"
#~ msgid "Files to be deleted"
#~ msgstr "Failid mida kustutada"
#~ msgid "Cannot delete world: Nothing selected"
#~ msgstr "Maailma kustutamine ebaõnnestus: Maailma pole valitud"
#~ msgid "Address required."
#~ msgstr "IP on vajalkik."
#~ msgid "Create world"
#~ msgstr "Loo maailm"
#~ msgid "Leave address blank to start a local server."
#~ msgstr "Jäta IP lahter tühjaks et alustada LAN serverit."
#~ msgid "Show Favorites"
#~ msgstr "Näita lemmikuid"
#~ msgid "Show Public"
#~ msgstr "Näita avalikke"
#~ msgid "Cannot create world: Name contains invalid characters"
#~ msgstr "Maailma loomine ebaõnnestus: Nimes esineb keelatud tähti"
#~ msgid "Warning: Configuration not consistent. "
#~ msgstr "Hoiatus: Konfiguratsioon pole kindel."
#~ msgid "Configuration saved. "
#~ msgstr "Konfiguratsioon salvestatud. "
#~ msgid "is required by:"
#~ msgstr "Seda vajavad:"
#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgid ""
#~ "Warning: Some configured mods are missing.\n"
#~ "Their setting will be removed when you save the configuration. "
#~ msgstr ""
#~ "Vasak hiireklõps: Liiguta kõiki asju, Parem hiireklõps: Liiguta üksikut "
#~ "asja"
#~ "Hoiatus: Mõned konfigureeritud modifikatsioonid on kaotsi läinud.\n"
#~ "Nende sätted kustutatakse kui salvestada konfiguratsioon."
#~ msgid ""
#~ "Warning: Some mods are not configured yet.\n"
#~ "They will be enabled by default when you save the configuration. "
#~ msgstr ""
#~ "Hoiatus: Mõned modifikatsioonid pole sätitud veel.\n"
#~ "Need lülitatakse sisse kohe pärast sätete salvestamist."
#, fuzzy
#~ msgid "Downloading"
#~ msgstr "Alla"
#~ msgid "Finite Liquid"
#~ msgstr "Löppev vedelik"
#~ msgid "Preload item visuals"
#~ msgstr "Lae asjade visuaale"
#~ msgid "SETTINGS"
#~ msgstr "Seaded"
#~ msgid "Password"
#~ msgstr "Parool"
#~ msgid "Name"
#~ msgstr "Nimi"
#, fuzzy
#~ msgid "<<-- Add mod"
#~ msgstr "<<-- Lisama muutus"
#, fuzzy
#~ msgid "Remove selected mod"
#~ msgstr "Eemalda valitud muutus"
#~ msgid "EDIT GAME"
#~ msgstr "MUUDA MÄNGU"
#~ msgid "new game"
#~ msgstr "uus mängu"
#~ msgid "GAMES"
#~ msgstr "MÄNGUD"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "Sisse lülitatud"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Lülita kõik välja"
#~ msgid "Public Serverlist"
#~ msgstr "Avalikud serverid"
#, fuzzy
#~ msgid "Useful for mod developers."
#~ msgstr "Põhiline arendaja"
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen v5 cave width"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal slice w"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal scale"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal offset"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal iterations"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal fractal"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Põlvkonna kaardid"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Põlvkonna kaardid"
#~ msgid "Plus"
#~ msgstr "Pluss"
#~ msgid "Period"
#~ msgstr "Punkt"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Minus"
#~ msgstr "Miinus"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Final"
#~ msgstr "Viimane"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Comma"
#~ msgstr "Koma"
#~ msgid "Capital"
#~ msgstr "Caps Lock"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Hide mp content"
#~ msgstr "Peida mod. pakkide sisu"
#~ msgid "Use"
#~ msgstr "Tegevus"
#~ msgid "Shortname:"
#~ msgstr "Lühike nimi:"
#, fuzzy
#~ msgid "Select path"
#~ msgstr "Vali"
#~ msgid "No worldname given or no game selected"
#~ msgstr "No nimi või no mäng valitud"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2016-05-26 21:01+0000\n"
"Last-Translator: yuval hreman <huckvrni@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/minetest/minetest/"
@ -39,7 +39,7 @@ msgstr "התרחשה שגיאה:"
msgid "Main menu"
msgstr "תפריט ראשי"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "אישור"
@ -51,7 +51,7 @@ msgstr "התחבר מחדש"
msgid "The server has requested a reconnect:"
msgstr "השרת מבקש שתתחבר מחדש:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "טוען..."
@ -163,8 +163,9 @@ msgid "Mapgen"
msgstr "מנוע מפות"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "לא נבחר שם לעולם או שאף מפעיל משחק לא נבחר"
#, fuzzy
msgid "No game selected"
msgstr "אין עולם נוצר או נבחר!"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -223,6 +224,14 @@ msgstr ""
msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
@ -244,9 +253,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -257,10 +264,6 @@ msgstr "משחקים"
msgid "Mods"
msgstr "מודים"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -281,14 +284,19 @@ msgstr ""
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "חפש"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr ""
#, fuzzy
msgid "Select directory"
msgstr "בחר עולם:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "בחר עולם:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -328,42 +336,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "החקן"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "דירוג"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "שם קצר:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "הותקן בהצלחה:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "התקן מחדש"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr ""
@ -698,6 +670,10 @@ msgstr ""
msgid "Start Singleplayer"
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""
@ -821,10 +797,6 @@ msgstr ""
msgid "Change Password"
msgstr ""
#: src/game.cpp
msgid "Connecting to server..."
msgstr ""
#: src/game.cpp
msgid "Continue"
msgstr ""
@ -848,14 +820,6 @@ msgid ""
"- %s: chat\n"
msgstr ""
#: src/game.cpp
msgid "Creating client..."
msgstr ""
#: src/game.cpp
msgid "Creating server..."
msgstr ""
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -925,14 +889,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr ""
#: src/game.cpp
msgid "Shutting down..."
msgstr ""
#: src/game.cpp
msgid "Singleplayer"
msgstr "שחקן יחיד"
@ -967,13 +923,21 @@ msgid "Proceed"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgid "\"Special\" = climb down"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Autoforward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Change camera"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr ""
@ -986,6 +950,10 @@ msgstr ""
msgid "Console"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1002,6 +970,10 @@ msgstr ""
msgid "Forward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr ""
@ -1054,14 +1026,30 @@ msgstr ""
msgid "Right"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr ""
@ -1071,11 +1059,15 @@ msgid "Toggle fly"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgid "Toggle fog"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgid "Toggle minimap"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
@ -1363,6 +1355,10 @@ msgstr ""
msgid "X Button 2"
msgstr ""
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "he"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1544,12 +1540,16 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Automatic forwards key"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1805,7 +1805,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1886,6 +1886,10 @@ msgstr ""
msgid "Damage"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2009,10 +2013,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2042,18 +2042,6 @@ msgstr "חלקיקים"
msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2136,10 +2124,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2189,10 +2173,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3005,7 +2985,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3178,6 +3158,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3516,6 +3500,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3568,18 +3562,6 @@ msgstr ""
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3841,6 +3823,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -3897,6 +3885,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -3922,10 +3914,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4151,6 +4139,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4695,8 +4687,26 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Public Serverlist"
#~ msgstr "רשימת שרתים פומבי"
#~ msgid "No of course not!"
#~ msgstr "לא ברור שלא!"
#~ msgid "Public Serverlist"
#~ msgstr "רשימת שרתים פומבי"
#~ msgid "re-Install"
#~ msgstr "התקן מחדש"
#~ msgid "Successfully installed:"
#~ msgstr "הותקן בהצלחה:"
#~ msgid "Shortname:"
#~ msgstr "שם קצר:"
#~ msgid "Rating"
#~ msgstr "דירוג"
#~ msgid "Install"
#~ msgstr "החקן"
#~ msgid "No worldname given or no game selected"
#~ msgstr "לא נבחר שם לעולם או שאף מפעיל משחק לא נבחר"

File diff suppressed because it is too large Load Diff

View File

@ -6,12 +6,12 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-05-31 23:45+0700\n"
"Last-Translator: Muhammad Rifqi Priyo Susanto "
"<muhammadrifqipriyosusanto@gmail.com>\n"
"Language-Team: Indonesian "
"<https://hosted.weblate.org/projects/minetest/minetest/id/>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/minetest/"
"minetest/id/>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -39,7 +39,7 @@ msgstr "Kesalahan muncul:"
msgid "Main menu"
msgstr "Menu utama"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Oke"
@ -51,7 +51,7 @@ msgstr "Menyambung Ulang"
msgid "The server has requested a reconnect:"
msgstr "Server ini meminta untuk menyambung ulang:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Memuat..."
@ -163,8 +163,9 @@ msgid "Mapgen"
msgstr "Pembuat peta"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "Tidak ada dunia atau permainan yang dipilih"
#, fuzzy
msgid "No game selected"
msgstr "Jarak pandang"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -223,6 +224,17 @@ msgstr "(Tidak ada keterangan pengaturan yang diberikan)"
msgid "< Back to Settings page"
msgstr "< Halaman Pengaturan"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"Penulisan: <pergeseran>, <skala>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Jelajahi"
@ -244,12 +256,8 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr "Ditulis dalam 3 angka yang dipisahkan koma dan diberi tanda kurung."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"Penulisan: <pergeseran>, <skala>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -259,11 +267,6 @@ msgstr "Permainan"
msgid "Mods"
msgstr "Mod"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
"Lacunarity (celah, tidak harus) dapat ditambahkan dengan diawali tanda koma."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr "Silakan masukan daftar flag yang dipisahkan dengan tanda koma."
@ -284,14 +287,19 @@ msgstr "Nilai yang mungkin adalah: "
msgid "Restore Default"
msgstr "Atur ke Bawaan"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Cari"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "Pilih jalur"
#, fuzzy
msgid "Select directory"
msgstr "Direktori peta"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Pilih Berkas Mod:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -335,42 +343,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr "Mod Subpermainan"
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Tutup toko"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Mengunduh $1, mohon tunggu..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Pasang"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Halaman $1 dari $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Peringkat"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Nama pendek:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Berhasil dipasang:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Tidak diurutkan"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Pasang ulang"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Penyumbang Aktif"
@ -699,6 +671,10 @@ msgstr "Beranda"
msgid "Start Singleplayer"
msgstr "Mulai Pemain Tunggal"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Tidak ada informasi tersedia"
@ -819,10 +795,6 @@ msgstr "Ubah Tombol"
msgid "Change Password"
msgstr "Ganti Kata Sandi"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Menyambung ke server..."
#: src/game.cpp
msgid "Continue"
msgstr "Lanjutkan"
@ -860,14 +832,6 @@ msgstr ""
"- Roda mouse: pilih barang\n"
"- %s: obrolan\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Membuat klien..."
#: src/game.cpp
msgid "Creating server..."
msgstr "Membuat server..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -948,14 +912,6 @@ msgstr "Nyala"
msgid "Remote server"
msgstr "Server jarak jauh"
#: src/game.cpp
msgid "Resolving address..."
msgstr "Mencari alamat..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "Mematikan..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Pemain Tunggal"
@ -990,13 +946,24 @@ msgid "Proceed"
msgstr "Lanjut"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Pakai\" = turun"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Maju"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Mundur"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Ubah tombol"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Obrolan"
@ -1009,6 +976,11 @@ msgstr "Perintah"
msgid "Console"
msgstr "Konsol"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Dec. range"
msgstr "Jarak pandang"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr "Turunkan volume"
@ -1025,6 +997,11 @@ msgstr "Jatuhkan"
msgid "Forward"
msgstr "Maju"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. range"
msgstr "Jarak pandang"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr "Naikkan volume"
@ -1079,14 +1056,32 @@ msgstr "Jarak pandang"
msgid "Right"
msgstr "Kanan"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Tangkapan layar"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Menyelinap"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Mode Sinema"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Terbang"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Gerak cepat"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Gerak cepat"
@ -1096,12 +1091,18 @@ msgid "Toggle fly"
msgstr "Terbang"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Terbang"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Tembus node"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Pakai"
msgid "Toggle noclip"
msgstr "Tembus node"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1387,6 +1388,10 @@ msgstr "Tombol X 1"
msgid "X Button 2"
msgstr "Tombol X 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "id"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1608,13 +1613,19 @@ msgstr ""
"Atur ke nilai lebih besar dari max_block_send_distance menonaktifkan ini.\n"
"Dalam satuan blok peta (16 node)"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Tombol maju"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr "Secara otomatis melaporkan ke daftar server."
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgstr "Tombol lari otomatis"
#, fuzzy
msgid "Autosave Screen Size"
msgstr "Simpan ukuran layar"
#: src/settings_translation_file.cpp
msgid "Backward key"
@ -1893,7 +1904,8 @@ msgid "Continuous forward"
msgstr "Maju terus-menerus"
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
#, fuzzy
msgid "Continuous forward movement, toggled by autoforward key."
msgstr "Gerakan maju terus-menerus (hanya digunakan untuk pengujian)."
#: src/settings_translation_file.cpp
@ -1982,6 +1994,11 @@ msgstr "DPI"
msgid "Damage"
msgstr "Kerusakan"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Darkness sharpness"
msgstr "Kecuraman danau"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "Tombol info debug"
@ -2121,10 +2138,6 @@ msgstr "Kedalaman minimal di mana Anda akan menemukan gua besar."
msgid "Depth below which you'll find massive caves."
msgstr "Kedalaman minimal di mana Anda akan menemukan gua raksasa."
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr "Pengurangan kecepatan"
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2157,21 +2170,6 @@ msgstr "Partikel menggali"
msgid "Disable anticheat"
msgstr "Nonaktifkan anticurang (anticheat)"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr "Nonaktifkan karakter kabur"
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
"Nonaktifkan karakter kabur (escape sequences), misal: pewarnaan obrolan.\n"
"Gunakan ini jika Anda ingin menjalankan server dengan klien pre-0.4.14 dan\n"
"Anda ingin menonaktifkan karakter kabur yang dihasilkan oleh mods."
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr "Larang kata sandi kosong"
@ -2262,16 +2260,12 @@ msgid ""
"textures)\n"
"when connecting to the server."
msgstr ""
"Membolehkan penggunaan server media jarak jauh (jika diberikan oleh server)."
"\n"
"Membolehkan penggunaan server media jarak jauh (jika diberikan oleh "
"server).\n"
"Server jarak jauh menawarkan cara lebih cepat untuk mengunduh media (misal: "
"tekstur)\n"
"saat tersambung ke server."
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr "Aktifkan view bobbing"
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2333,10 +2327,6 @@ msgstr ""
"Mengaktifkan pemetaan parallax occlusion.\n"
"Membutuhkan shader diaktifkan."
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr "Aktifkan view bobbing saat berjalan."
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr "Jarak pencetakan data profiling mesin"
@ -2734,8 +2724,8 @@ msgid ""
"mapblocks (16 nodes).\n"
"In active blocks objects are loaded and ABMs run."
msgstr ""
"Seberapa besar daerah blok yang menjadi blok aktif, dalam satuan blok peta ("
"16 node).\n"
"Seberapa besar daerah blok yang menjadi blok aktif, dalam satuan blok peta "
"(16 node).\n"
"Dalam blok aktif objek dimuat dan ABM berjalan."
#: src/settings_translation_file.cpp
@ -2859,8 +2849,8 @@ msgid ""
"you stand.\n"
"This is helpful when working with nodeboxes in small areas."
msgstr ""
"Jika diaktifkan, Anda dapat menaruh blok pada posisi (kaki + ketinggian mata)"
"\n"
"Jika diaktifkan, Anda dapat menaruh blok pada posisi (kaki + ketinggian "
"mata)\n"
"dimana Anda berdiri.\n"
"Ini berguna saat bekerja dengan nodebox dalam daerah sempit."
@ -3071,8 +3061,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk mengurangi volume.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3101,8 +3091,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk menambah volume.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3171,8 +3161,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk bisukan permainan.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3201,8 +3191,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk membuka jendela obrolan untuk mengetik perintah lokal.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3231,8 +3221,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk mencetak tumpukan debug. Digunakan untuk pengembangan.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3241,8 +3231,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk memilih barang selanjutnya di hotbar.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3251,8 +3241,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk memilih barang sebelumnya di hotbar.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3289,8 +3279,9 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3345,8 +3336,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk beralih mode tembus node.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3405,8 +3396,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk beralih tampilan konsol obrolan besar.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3415,8 +3406,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk menampilkan profiler. Digunakan untuk pengembangan.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3435,8 +3426,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tombol untuk gunakan zoom jika bisa.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid "Key use for climbing/descending"
@ -3523,6 +3514,10 @@ msgstr ""
"- info\n"
"- verbose"
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr "Batas antrian kemunculan (emerge queue) pada cakram"
@ -3537,8 +3532,8 @@ msgid ""
"Only mapchunks completely within the mapgen limit are generated.\n"
"Value is stored per-world."
msgstr ""
"Batas dari pembuatan peta, dalam node, di semua 6 arah mulai dari (0, 0, 0)."
"\n"
"Batas dari pembuatan peta, dalam node, di semua 6 arah mulai dari (0, 0, "
"0).\n"
"Hanya mapchunk yang seluruhnya berada dalam batasan yang akan dibuat.\n"
"Nilai disimpan tiap dunia."
@ -3914,6 +3909,16 @@ msgstr "Jumlah maksimal blok yang dikirim serentak ke tiap klien"
msgid "Maximum simultaneous block sends total"
msgstr "Jumlah maksimal total blok yang dikirim serentak"
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3967,18 +3972,6 @@ msgstr "Mipmapping"
msgid "Modifies the size of the hudbar elements."
msgstr "Mengubah ukuran dari elemen hudbar."
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr "Toko Mod: URL detail"
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr "Toko Mod: URL unduh"
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr "Toko Mod: URL daftar mod"
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr "Jalur font monospace"
@ -4034,8 +4027,8 @@ msgid ""
"When starting from the main menu, this is overridden."
msgstr ""
"Nama pemain.\n"
"Saat menjalankan server, klien yang tersambung dengan nama ini adalah admin."
"\n"
"Saat menjalankan server, klien yang tersambung dengan nama ini adalah "
"admin.\n"
"Saat menjalankan dari menu utama, nilai ini ditimpa."
#: src/settings_translation_file.cpp
@ -4271,6 +4264,12 @@ msgstr "Media jarak jauh"
msgid "Remote port"
msgstr "Port server jarak jauh"
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr "Mengganti menu utama bawaan dengan buatan lain."
@ -4327,6 +4326,10 @@ msgstr "Pantai berpasir muncul saat np_beach melebihi nilai ini."
msgid "Save the map received by the client on disk."
msgstr "Simpan peta yang diterima klien pada cakram."
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr "Simpan peta yang diterima dari server"
@ -4352,10 +4355,6 @@ msgstr "Tinggi layar"
msgid "Screen width"
msgstr "Lebar layar"
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Tangkapan layar"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr "Folder tangkapan layar"
@ -4602,6 +4601,10 @@ msgstr "Kekuatan dari parallax."
msgid "Strict protocol checking"
msgstr "Pengecekan protokol ketat"
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr "Dukung server lawas"
@ -4870,7 +4873,8 @@ msgstr "Gunakan animasi awan untuk latar belakang menu utama."
#: src/settings_translation_file.cpp
msgid "Use anisotropic filtering when viewing at textures from an angle."
msgstr "Gunakan anisotropic filtering saat melihat tekstur pada sudut tertentu."
msgstr ""
"Gunakan anisotropic filtering saat melihat tekstur pada sudut tertentu."
#: src/settings_translation_file.cpp
msgid "Use bilinear filtering when scaling textures."
@ -5215,56 +5219,59 @@ msgstr "Batas cURL paralel"
msgid "cURL timeout"
msgstr "waktu habis cURL"
#~ msgid "Hide mp content"
#~ msgstr ""
#~ "Sembunyikan\n"
#~ "konten pm"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Memuat tekstur..."
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Faktor skala yang diatur untuk elemen menu: "
#~ msgid "Capital"
#~ msgstr "Caps Lock"
#~ msgid "Touch free target"
#~ msgstr "Bebas sentuhan"
#~ msgid "Comma"
#~ msgstr "Koma"
#~ msgid "Downloading"
#~ msgstr "Mengunduh"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid " KB/s"
#~ msgstr " KB/detik"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid " MB/s"
#~ msgstr " MB/detik"
#~ msgid "Final"
#~ msgstr "Final"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "Mulai ulang minetest untuk beralih ke driver yang dipilih"
#~ msgid "Junja"
#~ msgstr "Junja"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "diaktifkan"
#~ msgid "Kana"
#~ msgstr "Kana"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Nonaktifkan PM"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "\""
#~ msgstr "\""
#~ msgid "Minus"
#~ msgstr "Kurang"
#~ msgid "No!!!"
#~ msgstr "Tidak!!!"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Generate Normalmaps"
#~ msgstr "Hasilkan Normalmaps"
#~ msgid "Period"
#~ msgstr "Titik"
#~ msgid "Public Serverlist"
#~ msgstr "Daftar Server Publik"
#~ msgid "Plus"
#~ msgstr "Tambah"
#~ msgid "No of course not!"
#~ msgstr "Tentu tidak!"
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "Mengatur ukuran padang gurun dan pantai dalam Mapgen v6.\n"
#~ "Jika snowbiomes di aktifkan 'mgv6_freq_desert' akan diabaikan."
#~ msgid "Useful for mod developers."
#~ msgstr "Berguna untuk pengembang mod."
#~ msgid "Mapgen v6 desert frequency"
#~ msgstr "Frekuensi padang gurun pada generator peta v6"
#~ msgid "Mapgen v6 beach frequency"
#~ msgstr "Frekuensi pantai pada generator peta v6"
#~ msgid ""
#~ "Determines terrain shape.\n"
@ -5275,56 +5282,144 @@ msgstr "waktu habis cURL"
#~ "3 angka dalam kurung mengatur skala dari bentuk\n"
#~ "tanah, ketiganya harus sama."
#~ msgid "Mapgen v6 beach frequency"
#~ msgstr "Frekuensi pantai pada generator peta v6"
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "Mengatur ukuran padang gurun dan pantai dalam Mapgen v6.\n"
#~ "Jika snowbiomes di aktifkan 'mgv6_freq_desert' akan diabaikan."
#~ msgid "Mapgen v6 desert frequency"
#~ msgstr "Frekuensi padang gurun pada generator peta v6"
#~ msgid "Plus"
#~ msgstr "Tambah"
#~ msgid "Useful for mod developers."
#~ msgstr "Berguna untuk pengembang mod."
#~ msgid "Period"
#~ msgstr "Titik"
#~ msgid "No of course not!"
#~ msgstr "Tentu tidak!"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Public Serverlist"
#~ msgstr "Daftar Server Publik"
#~ msgid "Minus"
#~ msgstr "Kurang"
#~ msgid "Generate Normalmaps"
#~ msgstr "Hasilkan Normalmaps"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "No!!!"
#~ msgstr "Tidak!!!"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "\""
#~ msgstr "\""
#~ msgid "Junja"
#~ msgstr "Junja"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Nonaktifkan PM"
#~ msgid "Final"
#~ msgstr "Final"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "diaktifkan"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "Mulai ulang minetest untuk beralih ke driver yang dipilih"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid " MB/s"
#~ msgstr " MB/detik"
#~ msgid "Comma"
#~ msgstr "Koma"
#~ msgid " KB/s"
#~ msgstr " KB/detik"
#~ msgid "Capital"
#~ msgstr "Caps Lock"
#~ msgid "Downloading"
#~ msgstr "Mengunduh"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Touch free target"
#~ msgstr "Bebas sentuhan"
#~ msgid "Hide mp content"
#~ msgstr ""
#~ "Sembunyikan\n"
#~ "konten pm"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "Faktor skala yang diatur untuk elemen menu: "
#~ msgid "Modstore mods list URL"
#~ msgstr "Toko Mod: URL daftar mod"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Memuat tekstur..."
#~ msgid "Modstore download URL"
#~ msgstr "Toko Mod: URL unduh"
#~ msgid "Modstore details URL"
#~ msgstr "Toko Mod: URL detail"
#~ msgid "Enables view bobbing when walking."
#~ msgstr "Aktifkan view bobbing saat berjalan."
#~ msgid "Enable view bobbing"
#~ msgstr "Aktifkan view bobbing"
#~ msgid ""
#~ "Disable escape sequences, e.g. chat coloring.\n"
#~ "Use this if you want to run a server with pre-0.4.14 clients and you want "
#~ "to disable\n"
#~ "the escape sequences generated by mods."
#~ msgstr ""
#~ "Nonaktifkan karakter kabur (escape sequences), misal: pewarnaan obrolan.\n"
#~ "Gunakan ini jika Anda ingin menjalankan server dengan klien pre-0.4.14 "
#~ "dan\n"
#~ "Anda ingin menonaktifkan karakter kabur yang dihasilkan oleh mods."
#~ msgid "Disable escape sequences"
#~ msgstr "Nonaktifkan karakter kabur"
#~ msgid "Descending speed"
#~ msgstr "Pengurangan kecepatan"
#~ msgid "Autorun key"
#~ msgstr "Tombol lari otomatis"
#~ msgid "Use"
#~ msgstr "Pakai"
#~ msgid "Shutting down..."
#~ msgstr "Mematikan..."
#~ msgid "Resolving address..."
#~ msgstr "Mencari alamat..."
#~ msgid "Creating server..."
#~ msgstr "Membuat server..."
#~ msgid "Creating client..."
#~ msgstr "Membuat klien..."
#~ msgid "Connecting to server..."
#~ msgstr "Menyambung ke server..."
#~ msgid "re-Install"
#~ msgstr "Pasang ulang"
#~ msgid "Unsorted"
#~ msgstr "Tidak diurutkan"
#~ msgid "Successfully installed:"
#~ msgstr "Berhasil dipasang:"
#~ msgid "Shortname:"
#~ msgstr "Nama pendek:"
#~ msgid "Rating"
#~ msgstr "Peringkat"
#~ msgid "Page $1 of $2"
#~ msgstr "Halaman $1 dari $2"
#~ msgid "Install"
#~ msgstr "Pasang"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Mengunduh $1, mohon tunggu..."
#~ msgid "Close store"
#~ msgstr "Tutup toko"
#~ msgid "Select path"
#~ msgstr "Pilih jalur"
#~ msgid "Optionally the lacunarity can be appended with a leading comma."
#~ msgstr ""
#~ "Lacunarity (celah, tidak harus) dapat ditambahkan dengan diawali tanda "
#~ "koma."
#~ msgid "No worldname given or no game selected"
#~ msgstr "Tidak ada dunia atau permainan yang dipilih"

File diff suppressed because it is too large Load Diff

View File

@ -2,11 +2,11 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-05-29 12:33+0000\n"
"Last-Translator: BreadW <toshiharu.uno@gmail.com>\n"
"Language-Team: Japanese "
"<https://hosted.weblate.org/projects/minetest/minetest/ja/>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/minetest/"
"minetest/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -34,7 +34,7 @@ msgstr "エラーが発生しました:"
msgid "Main menu"
msgstr "メインメニュー"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "決定"
@ -46,7 +46,7 @@ msgstr "再接続"
msgid "The server has requested a reconnect:"
msgstr "サーバが再接続を要求しました:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "読み込み中..."
@ -157,8 +157,9 @@ msgid "Mapgen"
msgstr "ワールドタイプ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "ワールド名が入力されていないか、ゲームが選択されていません"
#, fuzzy
msgid "No game selected"
msgstr "視野の範囲を変更"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -217,6 +218,17 @@ msgstr "(設定の説明はありません)"
msgid "< Back to Settings page"
msgstr "< 設定ページに戻る"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"書式: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "参照"
@ -238,13 +250,8 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr "括弧内に3つの数字をカンマで区切って入力してください。"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"書式: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -254,11 +261,6 @@ msgstr "ゲーム"
msgid "Mods"
msgstr "Mod"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr "空隙性の値は、必要に応じ読みやすくカンマを付けることができます。"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Please enter a comma seperated list of flags."
@ -280,14 +282,19 @@ msgstr "可能な値: "
msgid "Restore Default"
msgstr "初期設定に戻す"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "検索"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "場所を選択"
#, fuzzy
msgid "Select directory"
msgstr "Modファイルを選択:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Modファイルを選択:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -329,42 +336,6 @@ msgstr "Modインストール: Modパック$1に適したフォルダ名が不
msgid "Subgame Mods"
msgstr "サブゲームのMod"
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "ストアを閉じる"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "$1をダウンロードしています、しばらくお待ちください..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "インストール"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "ページ $1 / $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "評価"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "省略名:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "インストールが完了しました:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "未分類"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "再インストール"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "活動中の貢献者"
@ -693,6 +664,10 @@ msgstr "メイン"
msgid "Start Singleplayer"
msgstr "シングルプレイ開始"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "情報がありません"
@ -813,10 +788,6 @@ msgstr "キー変更"
msgid "Change Password"
msgstr "パスワード変更"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "サーバに接続中..."
#: src/game.cpp
msgid "Continue"
msgstr "再開"
@ -854,14 +825,6 @@ msgstr ""
"- ホイール: アイテム選択\n"
"- %s: チャット\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "クライアントを作成中..."
#: src/game.cpp
msgid "Creating server..."
msgstr "サーバを作成中..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -943,14 +906,6 @@ msgstr "オン"
msgid "Remote server"
msgstr "サーバを公開"
#: src/game.cpp
msgid "Resolving address..."
msgstr "アドレスを解決中..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "終了中..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "シングルプレイヤー"
@ -960,7 +915,7 @@ msgid "Sound Volume"
msgstr "音量"
#: src/game.cpp
#, c-format, fuzzy
#, fuzzy, c-format
msgid "Volume changed to %d%%"
msgstr "音量を %d%% に変更"
@ -987,13 +942,24 @@ msgid "Proceed"
msgstr "決定"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "「使用」で降りる"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "前進"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "後退"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "キー変更"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "チャット"
@ -1006,6 +972,10 @@ msgstr "コマンド"
msgid "Console"
msgstr "コンソール"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr "音量を下げる"
@ -1022,6 +992,10 @@ msgstr "落とす"
msgid "Forward"
msgstr "前進"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr "音量を上げる"
@ -1076,14 +1050,32 @@ msgstr "視野の範囲を変更"
msgid "Right"
msgstr "右"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "スクリーンショット"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "スニーク"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "映画風モード切替"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "飛行モード切替"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "高速移動モード切替"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "高速移動モード切替"
@ -1093,12 +1085,18 @@ msgid "Toggle fly"
msgstr "飛行モード切替"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "飛行モード切替"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "すり抜けモード切替"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "使用"
msgid "Toggle noclip"
msgstr "すり抜けモード切替"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1389,6 +1387,10 @@ msgstr "Xボタン1"
msgid "X Button 2"
msgstr "Xボタン2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "ja"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
@ -1608,14 +1610,20 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "前キー"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automaticaly report to the serverlist."
msgstr "自動的にサーバ一覧に報告します。"
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgstr "オートランキー"
#, fuzzy
msgid "Autosave Screen Size"
msgstr "画面の大きさを自動保存"
#: src/settings_translation_file.cpp
msgid "Backward key"
@ -1915,7 +1923,7 @@ msgstr "オートラン"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr "オートラン (テスト用)。"
#: src/settings_translation_file.cpp
@ -2010,6 +2018,11 @@ msgstr "DPI"
msgid "Damage"
msgstr "ダメージ"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Darkness sharpness"
msgstr "視差遮蔽マッピング"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "デバッグ情報切り替えキー"
@ -2149,11 +2162,6 @@ msgstr "あなたが大きな洞穴を見つける深さ。"
msgid "Depth below which you'll find massive caves."
msgstr "あなたが大きい洞穴を見つける深さ。"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Descending speed"
msgstr "降りる速度"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
@ -2185,18 +2193,6 @@ msgstr "パーティクル"
msgid "Disable anticheat"
msgstr "対チート機関無効化"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Disallow empty passwords"
@ -2300,11 +2296,6 @@ msgstr ""
"サーバーに接続するとき、遠隔サーバーはメディア(例えばテクスチャー)をダウン"
"ロードするかなりより高速道を提供します。"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable view bobbing"
msgstr "落下による上下の揺れ"
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2370,10 +2361,6 @@ msgstr ""
"視差オクルージョンマッピングを有効にします。\n"
"シェーダーが有効である必要があります。"
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3226,7 +3213,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3402,6 +3389,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3745,6 +3736,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr "ファイルダウンロード (例: Modのダウンロード)の最大経過時間。"
@ -3797,18 +3798,6 @@ msgstr "ミップマッピング"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -4071,6 +4060,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4128,6 +4123,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4153,10 +4152,6 @@ msgstr "画面高"
msgid "Screen width"
msgstr "画面幅"
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "スクリーンショット"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr "スクリーンショットのフォルダ"
@ -4384,6 +4379,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4943,96 +4942,53 @@ msgstr "cURL並行処理制限"
msgid "cURL timeout"
msgstr "cURLタイムアウト"
#~ msgid "Hide mp content"
#~ msgstr "Modパックの内容を非表示"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "テクスチャ読み込み中..."
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "メニューの大きさとして設定されている数値: "
#~ msgid "Capital"
#~ msgstr "Capital"
#~ msgid "Touch free target"
#~ msgstr "タッチ位置を自由にする"
#~ msgid "Comma"
#~ msgstr "カンマ"
#~ msgid " KB/s"
#~ msgstr " KB/秒"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid " MB/s"
#~ msgstr " MB/秒"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "ドライバーを変更するためMinetestを再起動します"
#~ msgid "Final"
#~ msgstr "Final"
#~ msgid "If enabled, "
#~ msgstr "有効化の場合 "
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "If disabled "
#~ msgstr "無効化の場合 "
#~ msgid "Kana"
#~ msgstr "かな"
#~ msgid "No!!!"
#~ msgstr "いいえ!!!"
#~ msgid "Kanji"
#~ msgstr "漢字"
#~ msgid "Generate Normalmaps"
#~ msgstr "ノーマルマップの生成"
#~ msgid "Minus"
#~ msgstr "マイナス"
#~ msgid "Public Serverlist"
#~ msgstr "公開サーバ一覧"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "No of course not!"
#~ msgstr "いいえ!"
#~ msgid "Period"
#~ msgstr "ピリオド"
#~ msgid "Plus"
#~ msgstr "プラス"
#~ msgid "Useful for mod developers."
#~ msgstr "Mod開発に便利。"
#, fuzzy
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "砂漠の規制サイズとMapgen v6のビーチ。\n"
#~ "snowbiomesが許可されるとき、『mgv6_freq_desert』は無視されます。"
#~ msgid "Detailed mod profiling"
#~ msgstr "詳細なModのプロファイル化"
#, fuzzy
#~ msgid ""
#~ "Determines terrain shape.\n"
#~ "The 3 numbers in brackets control the scale of the\n"
#~ "terrain, the 3 numbers should be identical."
#~ msgstr ""
#~ "地形形を決定します。\n"
#~ "ブラケットの3番号は地形の目盛りを制御します、\n"
#~ "3番号は同一でなければなりません。"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "マップ生成フラグ"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "マップ生成フラグ"
#~ msgid "Mapgen fractal fractal"
#~ msgstr "マップ生成フラグ"
#~ msgid "Mapgen fractal iterations"
#~ msgstr "視差遮蔽マッピング"
#~ msgid "Mapgen fractal offset"
#~ msgstr "マップ生成フラグ"
#~ msgid "Mapgen fractal scale"
#~ msgstr "マップ生成フラグ"
#~ msgid "Mapgen fractal slice w"
#~ msgstr "マップ生成フラグ"
#, fuzzy
#~ msgid "Mapgen v5 cave width"
#~ msgstr "ワールドタイプ"
#, fuzzy
#~ msgid "Mapgen v7 cave width"
#~ msgstr "ワールドタイプ"
#~ msgid "Detailed mod profile data. Useful for mod developers."
#~ msgstr "詳細なModのプロファイルデータです。Mod開発者に便利です。"
#~ msgid ""
#~ "Where the map generator stops.\n"
@ -5052,49 +5008,158 @@ msgstr "cURLタイムアウト"
#~ "- グループはmap_generation_limit内で生成されたものに限ります。"
#, fuzzy
#~ msgid "Detailed mod profile data. Useful for mod developers."
#~ msgstr "詳細なModのプロファイルデータです。Mod開発者に便利です。"
#~ msgid "Mapgen v7 cave width"
#~ msgstr "ワールドタイプ"
#, fuzzy
#~ msgid "Detailed mod profiling"
#~ msgstr "詳細なModのプロファイル化"
#~ msgid "Mapgen v5 cave width"
#~ msgstr "ワールドタイプ"
#~ msgid "Useful for mod developers."
#~ msgstr "Mod開発に便利。"
#~ msgid "Mapgen fractal slice w"
#~ msgstr "マップ生成フラグ"
#~ msgid "No of course not!"
#~ msgstr "いいえ!"
#~ msgid "Mapgen fractal scale"
#~ msgstr "マップ生成フラグ"
#~ msgid "Public Serverlist"
#~ msgstr "公開サーバ一覧"
#~ msgid "Mapgen fractal offset"
#~ msgstr "マップ生成フラグ"
#~ msgid "Generate Normalmaps"
#~ msgstr "ノーマルマップの生成"
#~ msgid "Mapgen fractal iterations"
#~ msgstr "視差遮蔽マッピング"
#~ msgid "No!!!"
#~ msgstr "いいえ!!!"
#~ msgid "If disabled "
#~ msgstr "無効化の場合 "
#~ msgid "If enabled, "
#~ msgstr "有効化の場合 "
#~ msgid "Restart minetest for driver change to take effect"
#~ msgstr "ドライバーを変更するためMinetestを再起動します"
#~ msgid " MB/s"
#~ msgstr " MB/秒"
#~ msgid " KB/s"
#~ msgstr " KB/秒"
#~ msgid "Touch free target"
#~ msgstr "タッチ位置を自由にする"
#~ msgid "Scaling factor applied to menu elements: "
#~ msgstr "メニューの大きさとして設定されている数値: "
#~ msgid "Mapgen fractal fractal"
#~ msgstr "マップ生成フラグ"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "テクスチャ読み込み中..."
#~ msgid "Mapgen fractal cave width"
#~ msgstr "マップ生成フラグ"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "マップ生成フラグ"
#, fuzzy
#~ msgid ""
#~ "Determines terrain shape.\n"
#~ "The 3 numbers in brackets control the scale of the\n"
#~ "terrain, the 3 numbers should be identical."
#~ msgstr ""
#~ "地形形を決定します。\n"
#~ "ブラケットの3番号は地形の目盛りを制御します、\n"
#~ "3番号は同一でなければなりません。"
#, fuzzy
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "砂漠の規制サイズとMapgen v6のビーチ。\n"
#~ "snowbiomesが許可されるとき、『mgv6_freq_desert』は無視されます。"
#~ msgid "Plus"
#~ msgstr "プラス"
#~ msgid "Period"
#~ msgstr "ピリオド"
#~ msgid "PA1"
#~ msgstr "PA1"
#~ msgid "Minus"
#~ msgstr "マイナス"
#~ msgid "Kanji"
#~ msgstr "漢字"
#~ msgid "Kana"
#~ msgstr "かな"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Final"
#~ msgstr "Final"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Comma"
#~ msgstr "カンマ"
#~ msgid "Capital"
#~ msgstr "Capital"
#~ msgid "Attn"
#~ msgstr "Attn"
#~ msgid "Hide mp content"
#~ msgstr "Modパックの内容を非表示"
#, fuzzy
#~ msgid "Enable view bobbing"
#~ msgstr "落下による上下の揺れ"
#, fuzzy
#~ msgid "Descending speed"
#~ msgstr "降りる速度"
#~ msgid "Autorun key"
#~ msgstr "オートランキー"
#~ msgid "Use"
#~ msgstr "使用"
#~ msgid "Shutting down..."
#~ msgstr "終了中..."
#~ msgid "Resolving address..."
#~ msgstr "アドレスを解決中..."
#~ msgid "Creating server..."
#~ msgstr "サーバを作成中..."
#~ msgid "Creating client..."
#~ msgstr "クライアントを作成中..."
#~ msgid "Connecting to server..."
#~ msgstr "サーバに接続中..."
#~ msgid "re-Install"
#~ msgstr "再インストール"
#~ msgid "Unsorted"
#~ msgstr "未分類"
#~ msgid "Successfully installed:"
#~ msgstr "インストールが完了しました:"
#~ msgid "Shortname:"
#~ msgstr "省略名:"
#~ msgid "Rating"
#~ msgstr "評価"
#~ msgid "Page $1 of $2"
#~ msgstr "ページ $1 / $2"
#~ msgid "Install"
#~ msgstr "インストール"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "$1をダウンロードしています、しばらくお待ちください..."
#~ msgid "Close store"
#~ msgstr "ストアを閉じる"
#~ msgid "Select path"
#~ msgstr "場所を選択"
#, fuzzy
#~ msgid "Optionally the lacunarity can be appended with a leading comma."
#~ msgstr "空隙性の値は、必要に応じ読みやすくカンマを付けることができます。"
#~ msgid "No worldname given or no game selected"
#~ msgstr "ワールド名が入力されていないか、ゲームが選択されていません"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2016-05-08 17:39+0000\n"
"Last-Translator: senpi <saikos@openmailbox.org>\n"
"Language-Team: Lojban <https://hosted.weblate.org/projects/minetest/minetest/"
@ -40,7 +40,7 @@ msgstr "lo selsrera cu pu fasnu:"
msgid "Main menu"
msgstr "lo ralju"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "je'e"
@ -53,7 +53,7 @@ msgstr "samjongau"
msgid "The server has requested a reconnect:"
msgstr "le samse'u cu pu cpedu lo nu samjongau"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr ".i ca'o samymo'i"
@ -163,8 +163,9 @@ msgid "Mapgen"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr ""
#, fuzzy
msgid "No game selected"
msgstr "mu'e cuxna fi le'i se kuspe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -223,6 +224,14 @@ msgstr ""
msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
@ -246,9 +255,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -259,10 +266,6 @@ msgstr ""
msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -283,14 +286,19 @@ msgstr ""
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "sisku"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr ""
#, fuzzy
msgid "Select directory"
msgstr "cuxna lo munje"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "cuxna lo munje"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -330,43 +338,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "$1 moi le'i papri poi ke'a $1 mei"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""
#: builtin/mainmenu/store.lua
#, fuzzy
msgid "Shortname:"
msgstr "tordu cmene"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "kalsa"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr ""
@ -719,6 +690,10 @@ msgstr "lo ralju"
msgid "Start Singleplayer"
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""
@ -842,10 +817,6 @@ msgstr ""
msgid "Change Password"
msgstr "gafygau lo lerpoijaspu"
#: src/game.cpp
msgid "Connecting to server..."
msgstr ".i ca'o troci lo za'i samjo'e lo samse'u"
#: src/game.cpp
msgid "Continue"
msgstr "ranji"
@ -869,14 +840,6 @@ msgid ""
"- %s: chat\n"
msgstr ""
#: src/game.cpp
msgid "Creating client..."
msgstr ".i lo samtciselse'u cu se zbasu"
#: src/game.cpp
msgid "Creating server..."
msgstr ".i lo samtcise'u cu se zbasu"
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -948,14 +911,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr ".i ca'o troci lo nu facki lo samjudri"
#: src/game.cpp
msgid "Shutting down..."
msgstr ""
#: src/game.cpp
msgid "Singleplayer"
msgstr "pa kelci"
@ -991,13 +946,23 @@ msgid "Proceed"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgid "\"Special\" = climb down"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "za'i ca'u muvdu"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "za'i ti'a muvdu"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "gafygau lo lerpoijaspu"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "samta'a"
@ -1010,6 +975,10 @@ msgstr "minde"
msgid "Console"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1026,6 +995,10 @@ msgstr "mu'e falcru"
msgid "Forward"
msgstr "za'i ca'u muvdu"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr ""
@ -1079,14 +1052,32 @@ msgstr "mu'e cuxna fi le'i se kuspe"
msgid "Right"
msgstr "za'i ri'u muvdu"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "za'i masno cadzu"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "mu'e co'a jonai mo'u vofli"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "mu'e co'a jonai mo'u sutra"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "mu'e co'a jonai mo'u sutra"
@ -1096,12 +1087,18 @@ msgid "Toggle fly"
msgstr "mu'e co'a jonai mo'u vofli"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#, fuzzy
msgid "Toggle fog"
msgstr "mu'e co'a jonai mo'u vofli"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "mu'e pilno"
#, fuzzy
msgid "Toggle minimap"
msgstr "mu'e co'a jonai mo'u sutra"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1390,6 +1387,10 @@ msgstr "la'o gy.X Button 1.gy."
msgid "X Button 2"
msgstr "la'o gy.X Button 2.gy."
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "jbo"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1572,12 +1573,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "za'i ca'u muvdu"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1845,7 +1851,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1926,6 +1932,10 @@ msgstr ""
msgid "Damage"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2050,10 +2060,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2084,18 +2090,6 @@ msgstr "lo kantu"
msgid "Disable anticheat"
msgstr "lo kantu"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2178,10 +2172,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2231,10 +2221,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3051,7 +3037,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3225,6 +3211,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3565,6 +3555,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3618,18 +3618,6 @@ msgstr "lo puvrmipmepi"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3893,6 +3881,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -3950,6 +3944,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -3975,10 +3973,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4214,6 +4208,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4764,40 +4762,65 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Attn"
#~ msgstr "la'o gy.Attn.gy."
#~ msgid "Comma"
#~ msgstr "slaka bu"
#~ msgid "CrSel"
#~ msgstr "la'o gy.CrSel.gy."
#~ msgid "ExSel"
#~ msgstr "la'o gy.ExSel.gy."
#~ msgid "Minus"
#~ msgstr "vu'u bu"
#~ msgid "PA1"
#~ msgstr "la'o gy.PA1.gy."
#~ msgid "Period"
#~ msgstr "denpa bu"
#~ msgid "Plus"
#~ msgstr "su'i bu"
#~ msgid "No of course not!"
#~ msgstr "nasai go'i"
#~ msgid "No!!!"
#~ msgstr "nasai go'i"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr ".i ca'o samymo'i le tengu datnyvei"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "selpli"
#~ msgid "No!!!"
#~ msgstr "nasai go'i"
#~ msgid "No of course not!"
#~ msgstr "nasai go'i"
#~ msgid "Plus"
#~ msgstr "su'i bu"
#~ msgid "Period"
#~ msgstr "denpa bu"
#~ msgid "PA1"
#~ msgstr "la'o gy.PA1.gy."
#~ msgid "Minus"
#~ msgstr "vu'u bu"
#~ msgid "ExSel"
#~ msgstr "la'o gy.ExSel.gy."
#~ msgid "CrSel"
#~ msgstr "la'o gy.CrSel.gy."
#~ msgid "Comma"
#~ msgstr "slaka bu"
#~ msgid "Attn"
#~ msgstr "la'o gy.Attn.gy."
#~ msgid "Use"
#~ msgstr "mu'e pilno"
#~ msgid "Resolving address..."
#~ msgstr ".i ca'o troci lo nu facki lo samjudri"
#~ msgid "Creating server..."
#~ msgstr ".i lo samtcise'u cu se zbasu"
#~ msgid "Creating client..."
#~ msgstr ".i lo samtciselse'u cu se zbasu"
#~ msgid "Connecting to server..."
#~ msgstr ".i ca'o troci lo za'i samjo'e lo samse'u"
#~ msgid "Unsorted"
#~ msgstr "kalsa"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr ".i ca'o samymo'i le tengu datnyvei"
#~ msgid "Shortname:"
#~ msgstr "tordu cmene"
#~ msgid "Page $1 of $2"
#~ msgstr "$1 moi le'i papri poi ke'a $1 mei"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-03-05 03:12+0000\n"
"Last-Translator: Han So Ri <2_0_2_0_@naver.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/minetest/minetest/"
@ -38,7 +38,7 @@ msgstr "오류가 발생하였습니다:"
msgid "Main menu"
msgstr "주 메뉴"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "확인"
@ -50,7 +50,7 @@ msgstr "재접속"
msgid "The server has requested a reconnect:"
msgstr "재연결이 필요합니다:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "로딩중..."
@ -161,8 +161,9 @@ msgid "Mapgen"
msgstr "맵젠"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "게임을 선택하지 않았거나 게임 이름이 없습니다"
#, fuzzy
msgid "No game selected"
msgstr "범위 선택"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -221,6 +222,17 @@ msgstr "(설정의 설명이 없습니다)"
msgid "< Back to Settings page"
msgstr "설정 페이지로 돌아가기"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"형식: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "열기"
@ -242,12 +254,8 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr "3개의 수가 쉼표와 괄호로 구분되는 형식입니다."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"형식: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -257,10 +265,6 @@ msgstr "게임"
msgid "Mods"
msgstr "모드"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr "플래그의 리스트를 쉼표로 구분하여 입력 하십시오."
@ -281,14 +285,19 @@ msgstr "가능한 값: "
msgid "Restore Default"
msgstr "기본값 복원"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "검색"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "경로 선택"
#, fuzzy
msgid "Select directory"
msgstr "선택한 모드 파일:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "선택한 모드 파일:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -332,42 +341,6 @@ msgstr "설치 모드: 모드 팩 $1 (이)의 올바른 폴더를 찾을 수 없
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "스토어 닫기"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "$1 를(을) 다운로드중입니다. 기다려주세요..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "설치"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "$2페이지 중 $1"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "순위"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "짧은 이름:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "설치 완료:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "기타"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "재설치"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "활동적인 공헌자"
@ -703,6 +676,10 @@ msgstr "메인"
msgid "Start Singleplayer"
msgstr "싱글 플레이어 시작"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "정보가 없습니다"
@ -829,10 +806,6 @@ msgstr "키 변경"
msgid "Change Password"
msgstr "비밀번호 변경"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "서버 연결중..."
#: src/game.cpp
msgid "Continue"
msgstr "계속"
@ -866,14 +839,6 @@ msgstr ""
"-마우스 휠: 아이템 선택\n"
"-T: 채팅\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "클라이언트 만드는 중..."
#: src/game.cpp
msgid "Creating server..."
msgstr "서버 만드는 중..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -957,14 +922,6 @@ msgstr ""
msgid "Remote server"
msgstr "원격 포트"
#: src/game.cpp
msgid "Resolving address..."
msgstr "주소 분석중..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "서버가 닫혔습니다..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "싱글 플레이어"
@ -999,13 +956,24 @@ msgid "Proceed"
msgstr "계속하기"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Use\" = 내려가기"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "앞으로"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "뒤로"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "키 변경"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "채팅"
@ -1018,6 +986,11 @@ msgstr "명령어"
msgid "Console"
msgstr "콘솔"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Dec. range"
msgstr "보여지는 범위"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1034,6 +1007,11 @@ msgstr "떨어뜨리기"
msgid "Forward"
msgstr "앞으로"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. range"
msgstr "보여지는 범위"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1090,14 +1068,32 @@ msgstr "범위 선택"
msgid "Right"
msgstr "오른쪽"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "스크린샷"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "살금살금"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "시네마틱 스위치"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "비행 스위치"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "고속 스위치"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "고속 스위치"
@ -1107,12 +1103,18 @@ msgid "Toggle fly"
msgstr "비행 스위치"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "비행 스위치"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "자유시점 스위치"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "사용"
msgid "Toggle noclip"
msgstr "자유시점 스위치"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1410,6 +1412,10 @@ msgstr "X 버튼 1"
msgid "X Button 2"
msgstr "X 버튼 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "ko"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1608,13 +1614,18 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "앞으로 키"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgstr "자동 실행 키"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Backward key"
@ -1900,7 +1911,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1987,6 +1998,10 @@ msgstr "감도(DPI)"
msgid "Damage"
msgstr "데미지"
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "디버그 정보 토글 키"
@ -2119,10 +2134,6 @@ msgstr "깊이 내려가면 당신은 큰 동굴을 발견할 것입니다."
msgid "Depth below which you'll find massive caves."
msgstr "깊이 내려가면 당신은 거대한 동굴을 발견할 것입니다."
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr "하강 속도"
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2152,21 +2163,6 @@ msgstr "입자 효과"
msgid "Disable anticheat"
msgstr "Anticheat를 사용 안함"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr "이스케이프 시퀀스 사용 안함"
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
"이스케이프 시퀀스 사용 안함, 예: 채팅 채색.\n"
"만약 당신이 pre-0.4.14클라이언트를 사용하길 원하거나 모드에 의해 생성되는 이"
"스케이프 시퀀스를 사용하지 않길 원한다면 이것을 사용하세요."
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr "비밀번호 없으면 불가"
@ -2254,11 +2250,6 @@ msgstr ""
"원격 서버들은 서버에 연결할 때 매우 빠르게 미디어를 다운로드 할 수 있도록 제"
"공합니다.(예: 텍스처)"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable view bobbing"
msgstr "보기 만료"
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2321,10 +2312,6 @@ msgstr ""
"시차 교합 맵핑 적용.\n"
"쉐이더를 활성화 해야 합니다."
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr "엔진 프로 파일링 데이터 출력 간격"
@ -3227,11 +3214,15 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"고속 모드 스위치 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
msgid ""
@ -3448,6 +3439,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3791,6 +3786,16 @@ msgstr "클라이언트 당 최대 동시 블록 전송"
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3846,18 +3851,6 @@ msgstr "밉매핑(Mipmapping)"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr "Modstore 정보 URL"
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr "Modstore 다운로드 URL"
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr "Modstore 모드 리스트 URL"
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr "고정 폭 글꼴 경로"
@ -4145,6 +4138,12 @@ msgstr "원격 미디어"
msgid "Remote port"
msgstr "원격 포트"
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Replaces the default main menu with a custom one."
@ -4206,6 +4205,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr "디스크에 클라이언트에서 받은 맵을 저장 합니다."
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr "서버로부터 받은 맵을 저장"
@ -4231,10 +4234,6 @@ msgstr "화면 높이"
msgid "Screen width"
msgstr "화면 너비"
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "스크린샷"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr "스크린샷 폴더"
@ -4485,6 +4484,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr "엄격한 프로토콜 검사"
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -5078,43 +5081,6 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Hide mp content"
#~ msgstr "숨겨진 맵 콘텐츠"
#~ msgid "Attn"
#~ msgstr "담당자"
#~ msgid "Capital"
#~ msgstr "자본"
#~ msgid "Comma"
#~ msgstr "쉼표"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "Final"
#~ msgstr "최종"
#~ msgid "Minus"
#~ msgstr "마이너스"
#~ msgid "Period"
#~ msgstr "기간"
#~ msgid "Plus"
#~ msgstr "플러스"
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "Mapgen v6에서 사막과 해변의 크기를 조정합니다.\n"
#~ "Snowbiomes 사용 하는 경우에 'mgv6_freq_desert'은 무시 됩니다."
#~ msgid ""
#~ "Determines terrain shape.\n"
#~ "The 3 numbers in brackets control the scale of the\n"
@ -5123,3 +5089,123 @@ msgstr ""
#~ "지형 모양을 결정합니다.\n"
#~ "괄호안의 3개의 숫자는 지형의 규모를 조정합니다.\n"
#~ "3개의 숫자는 동일해야 합니다."
#~ msgid ""
#~ "Controls size of deserts and beaches in Mapgen v6.\n"
#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored."
#~ msgstr ""
#~ "Mapgen v6에서 사막과 해변의 크기를 조정합니다.\n"
#~ "Snowbiomes 사용 하는 경우에 'mgv6_freq_desert'은 무시 됩니다."
#~ msgid "Plus"
#~ msgstr "플러스"
#~ msgid "Period"
#~ msgstr "기간"
#~ msgid "Minus"
#~ msgstr "마이너스"
#~ msgid "Final"
#~ msgstr "최종"
#~ msgid "ExSel"
#~ msgstr "ExSel"
#~ msgid "CrSel"
#~ msgstr "CrSel"
#~ msgid "Comma"
#~ msgstr "쉼표"
#~ msgid "Capital"
#~ msgstr "자본"
#~ msgid "Attn"
#~ msgstr "담당자"
#~ msgid "Hide mp content"
#~ msgstr "숨겨진 맵 콘텐츠"
#~ msgid "Modstore mods list URL"
#~ msgstr "Modstore 모드 리스트 URL"
#~ msgid "Modstore download URL"
#~ msgstr "Modstore 다운로드 URL"
#~ msgid "Modstore details URL"
#~ msgstr "Modstore 정보 URL"
#, fuzzy
#~ msgid "Enable view bobbing"
#~ msgstr "보기 만료"
#~ msgid ""
#~ "Disable escape sequences, e.g. chat coloring.\n"
#~ "Use this if you want to run a server with pre-0.4.14 clients and you want "
#~ "to disable\n"
#~ "the escape sequences generated by mods."
#~ msgstr ""
#~ "이스케이프 시퀀스 사용 안함, 예: 채팅 채색.\n"
#~ "만약 당신이 pre-0.4.14클라이언트를 사용하길 원하거나 모드에 의해 생성되는 "
#~ "이스케이프 시퀀스를 사용하지 않길 원한다면 이것을 사용하세요."
#~ msgid "Disable escape sequences"
#~ msgstr "이스케이프 시퀀스 사용 안함"
#~ msgid "Descending speed"
#~ msgstr "하강 속도"
#~ msgid "Autorun key"
#~ msgstr "자동 실행 키"
#~ msgid "Use"
#~ msgstr "사용"
#~ msgid "Shutting down..."
#~ msgstr "서버가 닫혔습니다..."
#~ msgid "Resolving address..."
#~ msgstr "주소 분석중..."
#~ msgid "Creating server..."
#~ msgstr "서버 만드는 중..."
#~ msgid "Creating client..."
#~ msgstr "클라이언트 만드는 중..."
#~ msgid "Connecting to server..."
#~ msgstr "서버 연결중..."
#~ msgid "re-Install"
#~ msgstr "재설치"
#~ msgid "Unsorted"
#~ msgstr "기타"
#~ msgid "Successfully installed:"
#~ msgstr "설치 완료:"
#~ msgid "Shortname:"
#~ msgstr "짧은 이름:"
#~ msgid "Rating"
#~ msgstr "순위"
#~ msgid "Page $1 of $2"
#~ msgstr "$2페이지 중 $1"
#~ msgid "Install"
#~ msgstr "설치"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "$1 를(을) 다운로드중입니다. 기다려주세요..."
#~ msgid "Close store"
#~ msgstr "스토어 닫기"
#~ msgid "Select path"
#~ msgstr "경로 선택"
#~ msgid "No worldname given or no game selected"
#~ msgstr "게임을 선택하지 않았거나 게임 이름이 없습니다"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2013-06-01 18:09+0200\n"
"Last-Translator: Chynggyz Jumaliev <translatorky@lavabit.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -39,7 +39,7 @@ msgstr ""
msgid "Main menu"
msgstr "Башкы меню"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr ""
@ -52,7 +52,7 @@ msgstr "Туташуу"
msgid "The server has requested a reconnect:"
msgstr ""
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Жүктөлүүдө..."
@ -166,7 +166,7 @@ msgid "Mapgen"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgid "No game selected"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@ -227,6 +227,14 @@ msgstr ""
msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
@ -250,9 +258,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -264,10 +270,6 @@ msgstr "Оюн"
msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -288,15 +290,19 @@ msgstr ""
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select path"
msgstr "Тандоо"
msgid "Select directory"
msgstr "Дүйнөнү тандаңыз:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Дүйнөнү тандаңыз:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -337,43 +343,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""
#: builtin/mainmenu/store.lua
#, fuzzy
msgid "Shortname:"
msgstr "Дүйнө аты"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr ""
@ -741,6 +710,10 @@ msgstr "Башкы меню"
msgid "Start Singleplayer"
msgstr "Бир кишилик"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""
@ -869,10 +842,6 @@ msgstr "Баскычтарды өзгөртүү"
msgid "Change Password"
msgstr "Сырсөздү өзгөртүү"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Серверге туташтырылууда..."
#: src/game.cpp
msgid "Continue"
msgstr "Улантуу"
@ -907,15 +876,6 @@ msgstr ""
"- Чычкан дөңгөлөгү: буюмду тандоо\n"
"- T: маек\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Клиент жаратылууда..."
#: src/game.cpp
#, fuzzy
msgid "Creating server..."
msgstr "Сервер жаратылууда...."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -987,15 +947,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr "Дареги чечилүүдө..."
#: src/game.cpp
#, fuzzy
msgid "Shutting down..."
msgstr "Оюн өчүрүлүүдө..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Бир кишилик"
@ -1030,13 +981,23 @@ msgid "Proceed"
msgstr "Улантуу"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgid "\"Special\" = climb down"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Алга"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Артка"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Баскычтарды өзгөртүү"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Маек"
@ -1049,6 +1010,10 @@ msgstr "Команда"
msgid "Console"
msgstr "Консоль"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1065,6 +1030,10 @@ msgstr "Ыргытуу"
msgid "Forward"
msgstr "Алга"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1120,15 +1089,34 @@ msgstr ""
msgid "Right"
msgstr "Оңго"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Тез сүрөт"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Уурданып басуу"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle Cinematic"
msgstr "Тез басууга которуу"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Учууга которуу"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Тез басууга которуу"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Тез басууга которуу"
@ -1138,12 +1126,18 @@ msgid "Toggle fly"
msgstr "Учууга которуу"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#, fuzzy
msgid "Toggle fog"
msgstr "Учууга которуу"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Колдонуу"
#, fuzzy
msgid "Toggle minimap"
msgstr "Тез басууга которуу"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1433,6 +1427,10 @@ msgstr ""
msgid "X Button 2"
msgstr ""
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "ky"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1616,12 +1614,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Алга"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1895,7 +1898,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1978,6 +1981,10 @@ msgstr ""
msgid "Damage"
msgstr "Убалды күйгүзүү"
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2102,10 +2109,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2136,18 +2139,6 @@ msgstr "Баарын күйгүзүү"
msgid "Disable anticheat"
msgstr "Бөлүкчөлөрдү күйгүзүү"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2230,10 +2221,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2285,10 +2272,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3108,7 +3091,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3283,6 +3266,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3623,6 +3610,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3677,18 +3674,6 @@ msgstr "Mip-текстуралоо"
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3951,6 +3936,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -4009,6 +4000,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4034,11 +4029,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Screenshot"
msgstr "Тез сүрөт"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4272,6 +4262,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4821,49 +4815,55 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Capital"
#~ msgstr "Caps Lock"
#~ msgid "Comma"
#~ msgstr "Үтүр"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Kana"
#~ msgstr "Кана"
#~ msgid "Kanji"
#~ msgstr "Кандзи"
#~ msgid "Minus"
#~ msgstr "Кемитүү белгиси"
#~ msgid "Period"
#~ msgstr "Айланма сан"
#~ msgid "Plus"
#~ msgstr "Кошуу белгиси"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Жүктөлүүдө..."
#, fuzzy
#~ msgid "Public Serverlist"
#~ msgstr "Жалпылык серверлердин тизмеси:"
#~ msgid "Downloading"
#~ msgstr "Ылдый"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Баарын өчүрүү"
#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgstr "Сол баскычы: Бардык буюмдарды ташуу, Оң баскычы: Бир буюмду ташуу"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "күйгүзүлгөн"
#~ msgid "is required by:"
#~ msgstr "талап кылынганы:"
#, fuzzy
#~ msgid "Password"
#~ msgstr "Эски сырсөз"
#~ msgid "Configuration saved. "
#~ msgstr "Конфигурация сакталды. "
#, fuzzy
#~ msgid "Finite Liquid"
#~ msgstr "Чектүү суюктук"
#~ msgid "Warning: Configuration not consistent. "
#~ msgstr "Эскертүү: Туура эмес конфигурация. "
#~ msgid "Show Public"
#~ msgstr "Жалпылыкты көрсөтүү"
#~ msgid "Show Favorites"
#~ msgstr "Тандалмаларды көрсөтүү"
#~ msgid "Leave address blank to start a local server."
#~ msgstr "Жергиликтүү серверди жүргүзүү үчүн даректи бош калтырыңыз."
#~ msgid "Create world"
#~ msgstr "Дүйнөнү жаратуу"
#~ msgid "Address required."
#~ msgstr "Дареги талап кылынат."
#~ msgid "Cannot delete world: Nothing selected"
#~ msgstr "Дүнөнү жаратуу мүмкүн эмес: Эч нерсе тандалган жок"
#~ msgid "Files to be deleted"
#~ msgstr "Өчүрүлө турган файлдар"
#~ msgid "Cannot create world: No games found"
#~ msgstr "Дүйнөнү жаратуу мүмкүн эмес: Оюндар табылган жок"
#~ msgid "Cannot configure world: Nothing selected"
#~ msgstr "Дүйнөнү ырастоо мүмкүн эмес: Эч нерсе тандалган жок"
#~ msgid "Failed to delete all world files"
#~ msgstr "Бардык дүйнө файлдарын өчүрүү оңунан чыккан жок"
#~ msgid ""
#~ "Default Controls:\n"
@ -4890,52 +4890,74 @@ msgstr ""
#~ "- ESC: бул меню\n"
#~ "- T: маек\n"
#~ msgid "Failed to delete all world files"
#~ msgstr "Бардык дүйнө файлдарын өчүрүү оңунан чыккан жок"
#~ msgid "Cannot configure world: Nothing selected"
#~ msgstr "Дүйнөнү ырастоо мүмкүн эмес: Эч нерсе тандалган жок"
#~ msgid "Cannot create world: No games found"
#~ msgstr "Дүйнөнү жаратуу мүмкүн эмес: Оюндар табылган жок"
#~ msgid "Files to be deleted"
#~ msgstr "Өчүрүлө турган файлдар"
#~ msgid "Cannot delete world: Nothing selected"
#~ msgstr "Дүнөнү жаратуу мүмкүн эмес: Эч нерсе тандалган жок"
#~ msgid "Address required."
#~ msgstr "Дареги талап кылынат."
#~ msgid "Create world"
#~ msgstr "Дүйнөнү жаратуу"
#~ msgid "Leave address blank to start a local server."
#~ msgstr "Жергиликтүү серверди жүргүзүү үчүн даректи бош калтырыңыз."
#~ msgid "Show Favorites"
#~ msgstr "Тандалмаларды көрсөтүү"
#~ msgid "Show Public"
#~ msgstr "Жалпылыкты көрсөтүү"
#~ msgid "Warning: Configuration not consistent. "
#~ msgstr "Эскертүү: Туура эмес конфигурация. "
#~ msgid "Configuration saved. "
#~ msgstr "Конфигурация сакталды. "
#~ msgid "is required by:"
#~ msgstr "талап кылынганы:"
#~ msgid "Left click: Move all items, Right click: Move single item"
#~ msgstr "Сол баскычы: Бардык буюмдарды ташуу, Оң баскычы: Бир буюмду ташуу"
#, fuzzy
#~ msgid "Finite Liquid"
#~ msgstr "Чектүү суюктук"
#, fuzzy
#~ msgid "Downloading"
#~ msgstr "Ылдый"
#~ msgid "Password"
#~ msgstr "Эски сырсөз"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Жүктөлүүдө..."
#~ msgid "If enabled, "
#~ msgstr "күйгүзүлгөн"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Баарын өчүрүү"
#, fuzzy
#~ msgid "Public Serverlist"
#~ msgstr "Жалпылык серверлердин тизмеси:"
#~ msgid "Plus"
#~ msgstr "Кошуу белгиси"
#~ msgid "Period"
#~ msgstr "Айланма сан"
#~ msgid "Minus"
#~ msgstr "Кемитүү белгиси"
#~ msgid "Kanji"
#~ msgstr "Кандзи"
#~ msgid "Kana"
#~ msgstr "Кана"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "Comma"
#~ msgstr "Үтүр"
#~ msgid "Capital"
#~ msgstr "Caps Lock"
#~ msgid "Use"
#~ msgstr "Колдонуу"
#, fuzzy
#~ msgid "Shutting down..."
#~ msgstr "Оюн өчүрүлүүдө..."
#~ msgid "Resolving address..."
#~ msgstr "Дареги чечилүүдө..."
#, fuzzy
#~ msgid "Creating server..."
#~ msgstr "Сервер жаратылууда...."
#~ msgid "Creating client..."
#~ msgstr "Клиент жаратылууда..."
#~ msgid "Connecting to server..."
#~ msgstr "Серверге туташтырылууда..."
#, fuzzy
#~ msgid "Shortname:"
#~ msgstr "Дүйнө аты"
#, fuzzy
#~ msgid "Select path"
#~ msgstr "Тандоо"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2016-12-28 12:00+0000\n"
"Last-Translator: ignaloidas <ignaskiela@super.lt>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/minetest/"
@ -40,7 +40,7 @@ msgstr "Įvyko klaida:"
msgid "Main menu"
msgstr "Pagrindinis meniu"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Gerai"
@ -52,7 +52,7 @@ msgstr "Prisijungti iš naujo"
msgid "The server has requested a reconnect:"
msgstr "Serveris paprašė prisijungti iš naujo:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Įkeliama..."
@ -166,8 +166,9 @@ msgid "Mapgen"
msgstr "Žemėlapių generavimas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "Nepateiktas joks pasaulio pavadinimas, arba nepasirinktas žaidimas"
#, fuzzy
msgid "No game selected"
msgstr "Intervalo pasirinkimas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -226,6 +227,14 @@ msgstr "(Nėra nustatymo aprašymo)"
msgid "< Back to Settings page"
msgstr "< Atgal į Nustatymus"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Naršyti"
@ -249,9 +258,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -262,10 +269,6 @@ msgstr "Žaidimai"
msgid "Mods"
msgstr "Papildiniai"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -286,14 +289,19 @@ msgstr "Tinkamos reikšmės yra: "
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Ieškoti"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr ""
#, fuzzy
msgid "Select directory"
msgstr "Pasirinkite papildinio failą:"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Pasirinkite papildinio failą:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -337,42 +345,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Užverti parduotuvę"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Atsiunčiama $1, prašome palaukti..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Įdiegti"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Puslapis $1 iš $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Įvertinimas"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Trumpas pavadinimas:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Sėkmingai įdiegta:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Nerikiuota"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Įdiegti iš naujo"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Aktyvūs pagalbininkai"
@ -721,6 +693,10 @@ msgstr "Pagrindinis"
msgid "Start Singleplayer"
msgstr "Atstatyti vieno žaidėjo pasaulį"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Nėra pasiekiamos informacijos"
@ -848,10 +824,6 @@ msgstr "Nustatyti klavišus"
msgid "Change Password"
msgstr "Keisti slaptažodį"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Jungiamasi prie serverio..."
#: src/game.cpp
msgid "Continue"
msgstr "Tęsti"
@ -886,14 +858,6 @@ msgstr ""
"- Pelės ratukas: pasirinkti elementą\n"
"- T: kalbėtis\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Kuriamas klientas..."
#: src/game.cpp
msgid "Creating server..."
msgstr "Kuriamas serveris...."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -976,14 +940,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr "Ieškoma adreso..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "Išjungiama..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Žaisti vienam"
@ -1018,13 +974,24 @@ msgid "Proceed"
msgstr "Vykdyti"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "„Naudoti“ = kopti žemyn"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Pirmyn"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Atgal"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Nustatyti klavišus"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Susirašinėti"
@ -1037,6 +1004,10 @@ msgstr "Komanda"
msgid "Console"
msgstr "Pultas"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1053,6 +1024,10 @@ msgstr "Mesti"
msgid "Forward"
msgstr "Pirmyn"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. volume"
@ -1108,14 +1083,32 @@ msgstr "Intervalo pasirinkimas"
msgid "Right"
msgstr "Dešinėn"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Sėlinti"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Įjungti kinematografinį"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Įjungti skrydį"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Įjungti greitą"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Įjungti greitą"
@ -1125,12 +1118,18 @@ msgid "Toggle fly"
msgstr "Įjungti skrydį"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Įjungti skrydį"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Įjungti noclip"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Naudoti"
msgid "Toggle noclip"
msgstr "Įjungti noclip"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1422,6 +1421,10 @@ msgstr "X mygtukas 1"
msgid "X Button 2"
msgstr "X mygtukas 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "lt"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1604,12 +1607,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Pirmyn"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1879,7 +1887,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1962,6 +1970,10 @@ msgstr ""
msgid "Damage"
msgstr "Leisti sužeidimus"
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2087,10 +2099,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2120,18 +2128,6 @@ msgstr "Įjungti visus"
msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2215,10 +2211,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2270,10 +2262,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3093,7 +3081,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3268,6 +3256,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3610,6 +3602,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3663,18 +3665,6 @@ msgstr ""
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3937,6 +3927,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -3994,6 +3990,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -4019,10 +4019,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4259,6 +4255,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4805,105 +4805,153 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Hide mp content"
#~ msgstr "Slėpti papild. pakų turinį"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Įkeliama..."
#~ msgid "Capital"
#~ msgstr "Sostinė"
#~ msgid "Add mod:"
#~ msgstr "Pridėti papildinį:"
#~ msgid "Comma"
#~ msgstr "Kablelis"
#~ msgid "MODS"
#~ msgstr "PAPILDINIAI"
#~ msgid "Final"
#~ msgstr "Galutinis"
#~ msgid "SINGLE PLAYER"
#~ msgstr "VIENAS ŽAIDĖJAS"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "SETTINGS"
#~ msgstr "NUSTATYMAI"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Password"
#~ msgstr "Slaptažodis"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "Name"
#~ msgstr "Vardas"
#~ msgid "Minus"
#~ msgstr "Minus"
#~ msgid "START SERVER"
#~ msgstr "PALEISTI SERVERĮ"
#~ msgid "Period"
#~ msgstr "Periodas"
#~ msgid "CLIENT"
#~ msgstr "ŽAISTI TINKLE"
#~ msgid "Plus"
#~ msgstr "Plius"
#~ msgid "<<-- Add mod"
#~ msgstr "<<-- Pridėti papildinį"
#~ msgid "Remove selected mod"
#~ msgstr "Pašalinti pasirinktą papildinį"
#, fuzzy
#~ msgid "Mapgen flat cave width"
#~ msgstr "Žemėlapių generavimas"
#~ msgid "EDIT GAME"
#~ msgstr "KEISTI ŽAIDIMĄ"
#~ msgid "new game"
#~ msgstr "naujas žaidimas"
#~ msgid "Mods:"
#~ msgstr "Papildiniai:"
#~ msgid "GAMES"
#~ msgstr "ŽAIDIMAI"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "įjungtas"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Išjungti papildinį"
#~ msgid "Public Serverlist"
#~ msgstr "Viešų serverių sąrašas"
#~ msgid "No of course not!"
#~ msgstr "Ne, tikrai ne!"
#, fuzzy
#~ msgid "Useful for mod developers."
#~ msgstr "Pagrindiniai kūrėjai"
#, fuzzy
#~ msgid "Mapgen fractal cave width"
#~ msgstr "Žemėlapių generavimas"
#, fuzzy
#~ msgid "Useful for mod developers."
#~ msgstr "Pagrindiniai kūrėjai"
#~ msgid "Mapgen flat cave width"
#~ msgstr "Žemėlapių generavimas"
#~ msgid "No of course not!"
#~ msgstr "Ne, tikrai ne!"
#~ msgid "Plus"
#~ msgstr "Plius"
#~ msgid "Public Serverlist"
#~ msgstr "Viešų serverių sąrašas"
#~ msgid "Period"
#~ msgstr "Periodas"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Išjungti papildinį"
#~ msgid "Minus"
#~ msgstr "Minus"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "įjungtas"
#~ msgid "Kanji"
#~ msgstr "Kanji"
#~ msgid "GAMES"
#~ msgstr "ŽAIDIMAI"
#~ msgid "Kana"
#~ msgstr "Kana"
#~ msgid "Mods:"
#~ msgstr "Papildiniai:"
#~ msgid "Junja"
#~ msgstr "Junja"
#~ msgid "new game"
#~ msgstr "naujas žaidimas"
#~ msgid "Final"
#~ msgstr "Galutinis"
#, fuzzy
#~ msgid "EDIT GAME"
#~ msgstr "KEISTI ŽAIDIMĄ"
#~ msgid "Comma"
#~ msgstr "Kablelis"
#~ msgid "Remove selected mod"
#~ msgstr "Pašalinti pasirinktą papildinį"
#~ msgid "Capital"
#~ msgstr "Sostinė"
#~ msgid "<<-- Add mod"
#~ msgstr "<<-- Pridėti papildinį"
#~ msgid "Hide mp content"
#~ msgstr "Slėpti papild. pakų turinį"
#~ msgid "CLIENT"
#~ msgstr "ŽAISTI TINKLE"
#~ msgid "Use"
#~ msgstr "Naudoti"
#~ msgid "START SERVER"
#~ msgstr "PALEISTI SERVERĮ"
#~ msgid "Shutting down..."
#~ msgstr "Išjungiama..."
#~ msgid "Name"
#~ msgstr "Vardas"
#~ msgid "Resolving address..."
#~ msgstr "Ieškoma adreso..."
#~ msgid "Password"
#~ msgstr "Slaptažodis"
#~ msgid "Creating server..."
#~ msgstr "Kuriamas serveris...."
#~ msgid "SETTINGS"
#~ msgstr "NUSTATYMAI"
#~ msgid "Creating client..."
#~ msgstr "Kuriamas klientas..."
#~ msgid "SINGLE PLAYER"
#~ msgstr "VIENAS ŽAIDĖJAS"
#~ msgid "Connecting to server..."
#~ msgstr "Jungiamasi prie serverio..."
#~ msgid "MODS"
#~ msgstr "PAPILDINIAI"
#~ msgid "re-Install"
#~ msgstr "Įdiegti iš naujo"
#~ msgid "Add mod:"
#~ msgstr "Pridėti papildinį:"
#~ msgid "Unsorted"
#~ msgstr "Nerikiuota"
#, fuzzy
#~ msgid "Preload inventory textures"
#~ msgstr "Įkeliama..."
#~ msgid "Successfully installed:"
#~ msgstr "Sėkmingai įdiegta:"
#~ msgid "Shortname:"
#~ msgstr "Trumpas pavadinimas:"
#~ msgid "Rating"
#~ msgstr "Įvertinimas"
#~ msgid "Page $1 of $2"
#~ msgstr "Puslapis $1 iš $2"
#~ msgid "Install"
#~ msgstr "Įdiegti"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Atsiunčiama $1, prašome palaukti..."
#~ msgid "Close store"
#~ msgstr "Užverti parduotuvę"
#~ msgid "No worldname given or no game selected"
#~ msgstr "Nepateiktas joks pasaulio pavadinimas, arba nepasirinktas žaidimas"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -45,11 +45,11 @@ msgstr ""
msgid "An error occured:"
msgstr ""
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr ""
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr ""
@ -173,7 +173,7 @@ msgid "A world named \"$1\" already exists"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgid "No game selected"
msgstr ""
#: builtin/mainmenu/dlg_delete_mod.lua
@ -226,13 +226,15 @@ msgid "Possible values are: "
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -272,11 +274,14 @@ msgid "\"$1\" is not a valid flag."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgid "Select directory"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select file"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr ""
@ -322,42 +327,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
msgstr ""
@ -690,6 +659,10 @@ msgstr ""
msgid "Select texture pack:"
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""
@ -758,26 +731,6 @@ msgstr ""
msgid "needs_fallback_font"
msgstr ""
#: src/game.cpp
msgid "Shutting down..."
msgstr ""
#: src/game.cpp
msgid "Creating server..."
msgstr ""
#: src/game.cpp
msgid "Creating client..."
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr ""
#: src/game.cpp
msgid "Connecting to server..."
msgstr ""
#: src/game.cpp
msgid "Item definitions..."
msgstr ""
@ -953,7 +906,7 @@ msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgid "\"Special\" = climb down"
msgstr ""
#: src/guiKeyChangeMenu.cpp
@ -985,7 +938,7 @@ msgid "Right"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
@ -1012,6 +965,34 @@ msgstr ""
msgid "Next item"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Change camera"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle minimap"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fly"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Mute"
msgstr ""
@ -1024,10 +1005,34 @@ msgstr ""
msgid "Inc. volume"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Autoforward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Range select"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Console"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Command"
msgstr ""
@ -1037,37 +1042,21 @@ msgid "Local command"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Console"
msgid "Toggle HUD"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fly"
msgid "Toggle chat log"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Range select"
msgid "Toggle fog"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Print stacks"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
msgstr ""
#: src/guiPasswordChange.cpp
msgid "Old Password"
msgstr ""
@ -1344,6 +1333,10 @@ msgstr ""
msgid "OEM Clear"
msgstr ""
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Client"
msgstr ""
@ -1487,7 +1480,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1760,12 +1753,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Automatic forwards key"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -1792,10 +1785,6 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for taking screenshots.\n"
@ -2031,6 +2020,16 @@ msgid ""
"the Multiplayer Tab."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Graphics"
msgstr ""
@ -2415,6 +2414,14 @@ msgstr ""
msgid "Height component of the initial window size."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Full screen"
msgstr ""
@ -2468,6 +2475,14 @@ msgid ""
"This setting is for the client only and is ignored by the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Texture path"
msgstr ""
@ -2503,14 +2518,6 @@ msgid ""
"corners."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "View bobbing factor"
msgstr ""
@ -2995,15 +3002,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
@ -3391,10 +3396,6 @@ msgstr ""
msgid "Jumping speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Liquid fluidity"
msgstr ""
@ -4649,18 +4650,6 @@ msgstr ""
msgid "Main menu mod manager"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""

View File

@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-06-02 15:18+0000\n"
"Last-Translator: Muhammad Nur Hidayat Yasuyoshi <muhdnurhidayat96@yahoo.com>"
"\n"
"Language-Team: Malay "
"<https://hosted.weblate.org/projects/minetest/minetest/ms/>\n"
"Last-Translator: Muhammad Nur Hidayat Yasuyoshi <muhdnurhidayat96@yahoo."
"com>\n"
"Language-Team: Malay <https://hosted.weblate.org/projects/minetest/minetest/"
"ms/>\n"
"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -40,7 +40,7 @@ msgstr "Telah berlakunya ralat:"
msgid "Main menu"
msgstr "Menu utama"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Ok"
@ -52,7 +52,7 @@ msgstr "Sambung semula"
msgid "The server has requested a reconnect:"
msgstr "Pelayan permainan meminta anda untuk menyambung semula:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Sedang memuatkan..."
@ -164,8 +164,9 @@ msgid "Mapgen"
msgstr "Janaan peta"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "Nama dunia tidak diberi atau tiada permainan dipilih"
#, fuzzy
msgid "No game selected"
msgstr "Jarak Pemilihan"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -225,6 +226,17 @@ msgstr "(Tiada perihal untuk tetapan yang diberi)"
msgid "< Back to Settings page"
msgstr "< Kembali ke halaman Tetapan"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
"Format: <ofset>, <skala>, (<sebarX>, <sebarY>, <sebarZ>), <benih>, <oktaf>, "
"<penerusan>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Layar"
@ -246,12 +258,8 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr "Formatnya ialah 3 nombor dalam kurungan dipisahkan dengan koma."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
"Format: <ofset>, <skala>, (<sebarX>, <sebarY>, <sebarZ>), <benih>, <oktaf>, "
"<penerusan>"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
@ -261,10 +269,6 @@ msgstr "Permainan"
msgid "Mods"
msgstr "Mods"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr "Anda juga boleh tambah lakunariti dengan koma pelopor."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr "Sila masukkan senarai bendera dipisahkan dengan koma."
@ -285,14 +289,19 @@ msgstr "Nilai yang boleh digunakan: "
msgid "Restore Default"
msgstr "Pulihkan Tetapan Asal"
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr "Cari"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgstr "Pilih laluan"
#, fuzzy
msgid "Select directory"
msgstr "Direktori peta"
#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select file"
msgstr "Pilih Fail Mods:"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@ -334,42 +343,6 @@ msgstr "Pasang Mods: tidak jumpa nama folder yang sesuai untuk pek mods $1"
msgid "Subgame Mods"
msgstr "Mods Subpermainan"
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr "Tutup kedai"
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr "Sedang muat turun $1, sila tunggu..."
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr "Pasang"
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr "Ms. $1 drpd $2"
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr "Rating"
#: builtin/mainmenu/store.lua
msgid "Shortname:"
msgstr "Nama Singkat:"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr "Berjaya dipasang:"
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr "Tidak bersusun"
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr "Pasang Semula"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr "Penyumbang Aktif"
@ -698,6 +671,10 @@ msgstr "Utama"
msgid "Start Singleplayer"
msgstr "Mula Main Seorang"
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr "Tiada maklumat tersedia"
@ -819,10 +796,6 @@ msgstr "Tukar Kekunci"
msgid "Change Password"
msgstr "Tukar Kata Laluan"
#: src/game.cpp
msgid "Connecting to server..."
msgstr "Sedang menyambung kepada pelayan..."
#: src/game.cpp
msgid "Continue"
msgstr "Teruskan"
@ -860,14 +833,6 @@ msgstr ""
"- Roda tetikus: pilih item\n"
"- %s: sembang\n"
#: src/game.cpp
msgid "Creating client..."
msgstr "Sedang mencipta klien..."
#: src/game.cpp
msgid "Creating server..."
msgstr "Sedang mencipta pelayan..."
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -948,14 +913,6 @@ msgstr "Buka"
msgid "Remote server"
msgstr "Pelayan jarak jauh"
#: src/game.cpp
msgid "Resolving address..."
msgstr "Sedang menyelesaikan alamat..."
#: src/game.cpp
msgid "Shutting down..."
msgstr "Sedang menutup..."
#: src/game.cpp
msgid "Singleplayer"
msgstr "Pemain Perseorangan"
@ -990,13 +947,24 @@ msgid "Proceed"
msgstr "Teruskan"
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
#, fuzzy
msgid "\"Special\" = climb down"
msgstr "\"Guna sesuatu\" = panjat turun"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Autoforward"
msgstr "Ke Depan"
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "Ke Belakang"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Change camera"
msgstr "Tukar kekunci"
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr "Sembang"
@ -1009,6 +977,11 @@ msgstr "Arahan"
msgid "Console"
msgstr "Konsol"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Dec. range"
msgstr "Jarak pandang"
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr "Perlahankan bunyi"
@ -1025,6 +998,11 @@ msgstr "Jatuhkan"
msgid "Forward"
msgstr "Ke Depan"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Inc. range"
msgstr "Jarak pandang"
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr "Kuatkan bunyi"
@ -1079,14 +1057,32 @@ msgstr "Jarak Pemilihan"
msgid "Right"
msgstr "Ke Kanan"
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Tangkap layar"
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr "Selinap"
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr "Togol Sinematik"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle HUD"
msgstr "Togol Terbang"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle chat log"
msgstr "Togol pergerakan pantas"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr "Togol pergerakan pantas"
@ -1096,12 +1092,18 @@ msgid "Toggle fly"
msgstr "Togol Terbang"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
#, fuzzy
msgid "Toggle fog"
msgstr "Togol Terbang"
#: src/guiKeyChangeMenu.cpp
#, fuzzy
msgid "Toggle minimap"
msgstr "Togol tembus blok"
#: src/guiKeyChangeMenu.cpp
msgid "Use"
msgstr "Guna"
msgid "Toggle noclip"
msgstr "Togol tembus blok"
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
msgid "Zoom"
@ -1387,6 +1389,10 @@ msgstr "Butang X 1"
msgid "X Button 2"
msgstr "Butang X 2"
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "ms"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1398,8 +1404,8 @@ msgstr ""
"Ofset fraktal (X,Y,Z) dari pusat dunia dalam unit 'skala'.\n"
"Digunakan untuk memindahkan kawasan kelahiran tanah rendah lebih dekat "
"kepada (0, 0).\n"
"Nilai lalai sesuai untuk set mandelbrot, ia perlu disunting untuk set julia."
"\n"
"Nilai lalai sesuai untuk set mandelbrot, ia perlu disunting untuk set "
"julia.\n"
"Jaraknya secara kasar -2 sehingga 2. Darabkan dengan 'skala' untuk ofset "
"dalam nod."
@ -1611,13 +1617,19 @@ msgstr ""
"melumpuhkan pengoptimunan ini.\n"
"Nyatakan dalam unit blokpeta (16 nod)"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Kekunci ke depan"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr "Melaporkan pelayan kepada senarai pelayan permainan secara automatik."
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgstr "Kekunci berlari auto"
#, fuzzy
msgid "Autosave Screen Size"
msgstr "Autosimpan saiz skrin"
#: src/settings_translation_file.cpp
msgid "Backward key"
@ -1895,7 +1907,8 @@ msgid "Continuous forward"
msgstr "Ke depan berterusan"
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
#, fuzzy
msgid "Continuous forward movement, toggled by autoforward key."
msgstr "Sentiasa bergerak ke depan tanpa henti (hanya untuk percubaan)."
#: src/settings_translation_file.cpp
@ -1985,6 +1998,11 @@ msgstr "DPI"
msgid "Damage"
msgstr "Boleh cedera"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Darkness sharpness"
msgstr "Kecuraman tasik"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr "Kekunci togol maklumat nyahpepijat"
@ -2124,10 +2142,6 @@ msgstr "Kedalaman di mana anda akan mula jumpa gua besar."
msgid "Depth below which you'll find massive caves."
msgstr "Kedalaman di mana anda akan mula jumpa banyak gua."
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr "Kelajuan turun"
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2160,22 +2174,6 @@ msgstr "Partikel ketika menggali"
msgid "Disable anticheat"
msgstr "Melumpuhkan antitipu"
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr "Melumpuhkan jujukan lepas"
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
"Melumpuhkan jujukan lepas (escape sequences), cth: pewarnaan sembang.\n"
"Gunakan ini jika anda ingin menjalankan pelayan dengan klien sebelum 0.4.14 "
"dan\n"
"anda ingin melumpuhkan jujukan lepas yang dijana oleh mods."
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr "Menolak kata laluan kosong"
@ -2274,10 +2272,6 @@ msgstr ""
"tekstur)\n"
"apabila menyambung ke pelayan permainan."
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr "Membolehkan apungan pandang"
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2340,10 +2334,6 @@ msgstr ""
"Membolehkan pemetaan oklusi paralaks.\n"
"Memerlukan pembayang untuk dibolehkan."
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr "Membolehkan apungan pandang ketika berjalan."
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr "Selang masa cetak data pemprofilan enjin"
@ -2640,8 +2630,8 @@ msgstr ""
"Atribut penjanaan peta sejagat.\n"
"Dalam janapeta v6, bendera 'decorations' mengawal semua hiasan kecuali "
"pokok\n"
"dan rumput hutan, dalam janapeta lain pula bendera ini mengawal semua hiasan."
"\n"
"dan rumput hutan, dalam janapeta lain pula bendera ini mengawal semua "
"hiasan.\n"
"Bendera yang tidak ditetapkan dalam rentetan bendera tidak diubah daripada "
"nilai lalai.\n"
"Bendera bermula dengan 'no' digunakan untuk betul-betul melumpuhkan mereka."
@ -2695,8 +2685,8 @@ msgid ""
msgstr ""
"Membuatkan pembukah memasang diri sendiri:\n"
"* Memasang sebuah fungsi kosong.\n"
"Ini menganggarkan overhed, bahawa pemasangan ditambah (+1 panggilan fungsi)."
"\n"
"Ini menganggarkan overhed, bahawa pemasangan ditambah (+1 panggilan "
"fungsi).\n"
"* Memasang pensampel yang digunakan untuk mengemaskini statistik."
#: src/settings_translation_file.cpp
@ -3105,8 +3095,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk memperlahankan bunyi.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3135,8 +3125,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk menguatkan bunyi.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3205,8 +3195,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk membisukan permainan.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3235,8 +3225,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk membuka tetingkap sembang untuk menaip arahan tempatan.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3275,8 +3265,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk memilih item seterusnya di dalam hotbar.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3285,8 +3275,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk memilih item sebelumnya di dalam hotbar.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3321,14 +3311,15 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk menogol penjalanan automatik.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3377,8 +3368,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk menogol mod tembus blok.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3408,8 +3399,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk menogol papar pandu (HUD).\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3438,8 +3429,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk menogol paparan konsol sembang besar.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@ -3468,8 +3459,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Kekunci untuk menggunakan pandangan zum apabila dibenarkan.\n"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319017"
"35e3da1b0edf72eb3"
"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid "Key use for climbing/descending"
@ -3556,6 +3547,10 @@ msgstr ""
"- maklumat\n"
"- berjela-jela"
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr "Had baris hilir keluar pada cakera"
@ -3571,8 +3566,8 @@ msgid ""
"Value is stored per-world."
msgstr ""
"Had penjanaan peta dalam unit nod, dalam kesemua 6 arah daripada (0, 0, 0).\n"
"Hanya ketulan peta yang berasa sepenuhnya di dalam had janapeta akan dijana."
"\n"
"Hanya ketulan peta yang berasa sepenuhnya di dalam had janapeta akan "
"dijana.\n"
"Nilai disimpan pada setiap dunia berbeza."
#: src/settings_translation_file.cpp
@ -3955,6 +3950,16 @@ msgstr "Jumlah blok maksimum yang dihantar serentak kepada setiap klien"
msgid "Maximum simultaneous block sends total"
msgstr "Jumlah maksimum kesemua blok yang dihantar serentak"
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -4008,18 +4013,6 @@ msgstr "Pemetaan Mip"
msgid "Modifies the size of the hudbar elements."
msgstr "Mengubah saiz elemen hudbar."
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr "Kedai Mods: URL perincian"
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr "Kedai Mods: URL muat turun"
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr "Kedai Mods: URL senarai mods"
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr "Laluan fon monospace"
@ -4319,6 +4312,12 @@ msgstr "Media jarak jauh"
msgid "Remote port"
msgstr "Port jarak jauh"
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr "Gantikan menu utama lalai dengan menu yang dibuat lain."
@ -4375,6 +4374,10 @@ msgstr "Pantai berpasir terjadi apabila nilai np_beach melebihi nilai ini."
msgid "Save the map received by the client on disk."
msgstr "Simpan peta yang diterima oleh klien dalam cakera."
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr "Simpan peta diterima dari pelayan permainan"
@ -4406,10 +4409,6 @@ msgstr "Tinggi skrin"
msgid "Screen width"
msgstr "Lebar skrin"
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "Tangkap layar"
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr "Folder tangkap layar"
@ -4665,6 +4664,10 @@ msgstr "Kekuatan paralaks."
msgid "Strict protocol checking"
msgstr "Pemeriksaan protokal ketat"
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr "Sokong pelayan permainan lama"
@ -5311,46 +5314,135 @@ msgstr "Had cURL selari"
msgid "cURL timeout"
msgstr "Had masa cURL"
#~ msgid "PA1"
#~ msgstr "Butang PA1"
#~ msgid "ExSel"
#~ msgstr "Butang ExSel"
#~ msgid "CrSel"
#~ msgstr "Butang CrSel"
#~ msgid "Attn"
#~ msgstr "Butang Attn"
#~ msgid "Plus"
#~ msgstr "Plus"
#~ msgid "Period"
#~ msgstr "Noktah"
#~ msgid "Minus"
#~ msgstr "Minus"
#~ msgid "Comma"
#~ msgstr "Koma"
#~ msgid "Kanji"
#~ msgstr "Butang Kanji"
#~ msgid "Junja"
#~ msgstr "Butang Junja"
#~ msgid "Final"
#~ msgstr "Butang Final"
#~ msgid "Kana"
#~ msgstr "Butang Kana"
#~ msgid "Capital"
#~ msgstr "Butang Caps Lock"
#~ msgid "Hide mp content"
#~ msgstr ""
#~ "Sembunyikan\n"
#~ "Kandungan MP"
#~ msgid "Capital"
#~ msgstr "Butang Caps Lock"
#~ msgid "Modstore mods list URL"
#~ msgstr "Kedai Mods: URL senarai mods"
#~ msgid "Kana"
#~ msgstr "Butang Kana"
#~ msgid "Modstore download URL"
#~ msgstr "Kedai Mods: URL muat turun"
#~ msgid "Final"
#~ msgstr "Butang Final"
#~ msgid "Modstore details URL"
#~ msgstr "Kedai Mods: URL perincian"
#~ msgid "Junja"
#~ msgstr "Butang Junja"
#~ msgid "Enables view bobbing when walking."
#~ msgstr "Membolehkan apungan pandang ketika berjalan."
#~ msgid "Kanji"
#~ msgstr "Butang Kanji"
#~ msgid "Enable view bobbing"
#~ msgstr "Membolehkan apungan pandang"
#~ msgid "Comma"
#~ msgstr "Koma"
#~ msgid ""
#~ "Disable escape sequences, e.g. chat coloring.\n"
#~ "Use this if you want to run a server with pre-0.4.14 clients and you want "
#~ "to disable\n"
#~ "the escape sequences generated by mods."
#~ msgstr ""
#~ "Melumpuhkan jujukan lepas (escape sequences), cth: pewarnaan sembang.\n"
#~ "Gunakan ini jika anda ingin menjalankan pelayan dengan klien sebelum "
#~ "0.4.14 dan\n"
#~ "anda ingin melumpuhkan jujukan lepas yang dijana oleh mods."
#~ msgid "Minus"
#~ msgstr "Minus"
#~ msgid "Disable escape sequences"
#~ msgstr "Melumpuhkan jujukan lepas"
#~ msgid "Period"
#~ msgstr "Noktah"
#~ msgid "Descending speed"
#~ msgstr "Kelajuan turun"
#~ msgid "Plus"
#~ msgstr "Plus"
#~ msgid "Autorun key"
#~ msgstr "Kekunci berlari auto"
#~ msgid "Attn"
#~ msgstr "Butang Attn"
#~ msgid "Use"
#~ msgstr "Guna"
#~ msgid "CrSel"
#~ msgstr "Butang CrSel"
#~ msgid "Shutting down..."
#~ msgstr "Sedang menutup..."
#~ msgid "ExSel"
#~ msgstr "Butang ExSel"
#~ msgid "Resolving address..."
#~ msgstr "Sedang menyelesaikan alamat..."
#~ msgid "PA1"
#~ msgstr "Butang PA1"
#~ msgid "Creating server..."
#~ msgstr "Sedang mencipta pelayan..."
#~ msgid "Creating client..."
#~ msgstr "Sedang mencipta klien..."
#~ msgid "Connecting to server..."
#~ msgstr "Sedang menyambung kepada pelayan..."
#~ msgid "re-Install"
#~ msgstr "Pasang Semula"
#~ msgid "Unsorted"
#~ msgstr "Tidak bersusun"
#~ msgid "Successfully installed:"
#~ msgstr "Berjaya dipasang:"
#~ msgid "Shortname:"
#~ msgstr "Nama Singkat:"
#~ msgid "Rating"
#~ msgstr "Rating"
#~ msgid "Page $1 of $2"
#~ msgstr "Ms. $1 drpd $2"
#~ msgid "Install"
#~ msgstr "Pasang"
#~ msgid "Downloading $1, please wait..."
#~ msgstr "Sedang muat turun $1, sila tunggu..."
#~ msgid "Close store"
#~ msgstr "Tutup kedai"
#~ msgid "Select path"
#~ msgstr "Pilih laluan"
#~ msgid "Optionally the lacunarity can be appended with a leading comma."
#~ msgstr "Anda juga boleh tambah lakunariti dengan koma pelopor."
#~ msgid "No worldname given or no game selected"
#~ msgstr "Nama dunia tidak diberi atau tiada permainan dipilih"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-21 17:40+0200\n"
"POT-Creation-Date: 2017-08-24 18:42+0200\n"
"PO-Revision-Date: 2017-01-15 14:54+0000\n"
"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
@ -39,7 +39,7 @@ msgstr "Det skjedde en feil:"
msgid "Main menu"
msgstr "Hovedmeny"
#: builtin/fstk/ui.lua builtin/mainmenu/store.lua
#: builtin/fstk/ui.lua
msgid "Ok"
msgstr "Ok"
@ -51,7 +51,7 @@ msgstr "Koble til på nytt"
msgid "The server has requested a reconnect:"
msgstr "Tjeneren har bedt om ny tilkobling:"
#: builtin/mainmenu/common.lua src/game.cpp
#: builtin/mainmenu/common.lua
msgid "Loading..."
msgstr "Laster..."
@ -165,8 +165,8 @@ msgid "Mapgen"
msgstr "Mapgen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No worldname given or no game selected"
msgstr "Mangler verdensnavn eller intet spill valgt"
msgid "No game selected"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Seed"
@ -225,6 +225,14 @@ msgstr ""
msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>),"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "<seed>, <octaves>, <persistence>, <lacunarity>"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
@ -248,9 +256,7 @@ msgid "Format is 3 numbers separated by commas and inside brackets."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid ""
"Format: <offset>, <scale>, (<spreadX>, <spreadY>, <spreadZ>), <seed>, "
"<octaves>, <persistence>"
msgid "Format:"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -262,10 +268,6 @@ msgstr "Spill"
msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Optionally the lacunarity can be appended with a leading comma."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a comma seperated list of flags."
msgstr ""
@ -286,13 +288,16 @@ msgstr ""
msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua
#: builtin/mainmenu/tab_online.lua
#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
msgid "Search"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select path"
msgid "Select directory"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select file"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
@ -333,43 +338,6 @@ msgstr ""
msgid "Subgame Mods"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Close store"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Downloading $1, please wait..."
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Install"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Page $1 of $2"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Rating"
msgstr ""
#: builtin/mainmenu/store.lua
#, fuzzy
msgid "Shortname:"
msgstr "Navnet på verdenen"
#: builtin/mainmenu/store.lua
msgid "Successfully installed:"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "Unsorted"
msgstr ""
#: builtin/mainmenu/store.lua
msgid "re-Install"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
msgstr ""
@ -704,6 +672,10 @@ msgstr ""
msgid "Start Singleplayer"
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "Default textures will be used."
msgstr ""
#: builtin/mainmenu/tab_texturepacks.lua
msgid "No information available"
msgstr ""
@ -824,10 +796,6 @@ msgstr ""
msgid "Change Password"
msgstr ""
#: src/game.cpp
msgid "Connecting to server..."
msgstr ""
#: src/game.cpp
msgid "Continue"
msgstr ""
@ -851,14 +819,6 @@ msgid ""
"- %s: chat\n"
msgstr ""
#: src/game.cpp
msgid "Creating client..."
msgstr ""
#: src/game.cpp
msgid "Creating server..."
msgstr ""
#: src/game.cpp
msgid ""
"Default Controls:\n"
@ -928,14 +888,6 @@ msgstr ""
msgid "Remote server"
msgstr ""
#: src/game.cpp
msgid "Resolving address..."
msgstr ""
#: src/game.cpp
msgid "Shutting down..."
msgstr ""
#: src/game.cpp
msgid "Singleplayer"
msgstr ""
@ -970,13 +922,21 @@ msgid "Proceed"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "\"Use\" = climb down"
msgid "\"Special\" = climb down"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Autoforward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Change camera"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Chat"
msgstr ""
@ -989,6 +949,10 @@ msgstr ""
msgid "Console"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Dec. volume"
msgstr ""
@ -1005,6 +969,10 @@ msgstr ""
msgid "Forward"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. range"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Inc. volume"
msgstr ""
@ -1057,14 +1025,30 @@ msgstr ""
msgid "Right"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Sneak"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Special"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle Cinematic"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle fast"
msgstr ""
@ -1074,11 +1058,16 @@ msgid "Toggle fly"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgid "Toggle fog"
msgstr ""
#: src/guiKeyChangeMenu.cpp
msgid "Use"
#, fuzzy
msgid "Toggle minimap"
msgstr "Aktiver Alle"
#: src/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr ""
#: src/guiKeyChangeMenu.cpp src/keycode.cpp
@ -1365,6 +1354,10 @@ msgstr ""
msgid "X Button 2"
msgstr ""
#: src/network/clientpackethandler.cpp
msgid "LANG_CODE"
msgstr "nb"
#: src/settings_translation_file.cpp
msgid ""
"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n"
@ -1546,12 +1539,17 @@ msgid ""
"Stated in mapblocks (16 nodes)"
msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Automatic forwards key"
msgstr "Opprett"
#: src/settings_translation_file.cpp
msgid "Automaticaly report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Autorun key"
msgid "Autosave Screen Size"
msgstr ""
#: src/settings_translation_file.cpp
@ -1808,7 +1806,7 @@ msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Continuous forward movement (only used for testing)."
msgid "Continuous forward movement, toggled by autoforward key."
msgstr ""
#: src/settings_translation_file.cpp
@ -1890,6 +1888,10 @@ msgstr ""
msgid "Damage"
msgstr "aktivert"
#: src/settings_translation_file.cpp
msgid "Darkness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
msgstr ""
@ -2013,10 +2015,6 @@ msgstr ""
msgid "Depth below which you'll find massive caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Descending speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Description of server, to be displayed when players join and in the "
@ -2046,18 +2044,6 @@ msgstr "Aktiver Alle"
msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disable escape sequences"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Disable escape sequences, e.g. chat coloring.\n"
"Use this if you want to run a server with pre-0.4.14 clients and you want to "
"disable\n"
"the escape sequences generated by mods."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
msgstr ""
@ -2140,10 +2126,6 @@ msgid ""
"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable view bobbing"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Enable view bobbing and amount of view bobbing.\n"
@ -2195,10 +2177,6 @@ msgid ""
"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Enables view bobbing when walking."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
msgstr ""
@ -3011,7 +2989,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Key for toggling autorun.\n"
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
@ -3184,6 +3162,10 @@ msgid ""
"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Lightness sharpness"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Limit of emerge queues on disk"
msgstr ""
@ -3522,6 +3504,16 @@ msgstr ""
msgid "Maximum simultaneous block sends total"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Maximum size of the out chat queue. 0 to disable queueing and -1 to make the "
"queue size unlimited"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
@ -3574,18 +3566,6 @@ msgstr ""
msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore details URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore download URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Modstore mods list URL"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
msgstr ""
@ -3847,6 +3827,12 @@ msgstr ""
msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Remove color codes from incoming chat messages\n"
"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Replaces the default main menu with a custom one."
msgstr ""
@ -3903,6 +3889,10 @@ msgstr ""
msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
msgstr ""
@ -3928,10 +3918,6 @@ msgstr ""
msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Screenshot folder"
msgstr ""
@ -4157,6 +4143,10 @@ msgstr ""
msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Support older servers"
msgstr ""
@ -4701,23 +4691,11 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
#~ msgid "Hide mp content"
#~ msgstr "Skjul mp-innhold"
#~ msgid "is required by:"
#~ msgstr "trengs av:"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Deaktiver Alle"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "aktivert"
#~ msgid ""
#~ "Warning: Some mods are not configured yet.\n"
#~ "They will be enabled by default when you save the configuration. "
#~ msgstr ""
#~ "Advarsel: Noen modifikasjoner er ikke konfigurert enda. \n"
#~ "De vil bli aktivert som standard når du lagrer konfigurasjonen."
#~ msgid "Configuration saved. "
#~ msgstr "Konfigurasjon lagret. "
#~ msgid ""
#~ "Warning: Some configured mods are missing.\n"
@ -4726,8 +4704,27 @@ msgstr ""
#~ "Advarsel: Noen konfigurerte modifikasjoner mangler. \n"
#~ "Instillingene deres vil bli fjernet når du lagrer konfigurasjonen."
#~ msgid "Configuration saved. "
#~ msgstr "Konfigurasjon lagret. "
#~ msgid ""
#~ "Warning: Some mods are not configured yet.\n"
#~ "They will be enabled by default when you save the configuration. "
#~ msgstr ""
#~ "Advarsel: Noen modifikasjoner er ikke konfigurert enda. \n"
#~ "De vil bli aktivert som standard når du lagrer konfigurasjonen."
#~ msgid "is required by:"
#~ msgstr "trengs av:"
#, fuzzy
#~ msgid "If enabled, "
#~ msgstr "aktivert"
#, fuzzy
#~ msgid "If disabled "
#~ msgstr "Deaktiver Alle"
#~ msgid "Hide mp content"
#~ msgstr "Skjul mp-innhold"
#, fuzzy
#~ msgid "Shortname:"
#~ msgstr "Navnet på verdenen"
#~ msgid "No worldname given or no game selected"
#~ msgstr "Mangler verdensnavn eller intet spill valgt"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More