Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Begin for-creators folder, fix typos, use American English #191

Merged
merged 10 commits into from
Feb 19, 2025
22 changes: 11 additions & 11 deletions content/about/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -1945,7 +1945,7 @@ Also a big thanks to paramat, ClobberXD, pauloue, gituser2194, lhofhansl, ashtra
* Use server's zoom fov for distant world loading. (_lhofhansl_)
* Fix ipv6\_server=true not accepting IPv4 connections on Windows (_sfan5_)
* Fix narrow/utf8 difference in incoming/outgoing messages (_numberZero_)
* Fix day\_night\_ratio\_do\_override not being initialised server-side (_rubenwardy_)
* Fix day\_night\_ratio\_do\_override not being initialized server-side (_rubenwardy_)
* Fix attached particle spawners far from spawn (_raymoo_)
* Server: affect bind\_addr on constructor instead of start() (_nerzhul_)
* Network: Fix logging into older worlds with base64 hashes (_SmallJoker_)
Expand Down Expand Up @@ -2022,7 +2022,7 @@ Also a big thanks to paramat, ClobberXD, pauloue, gituser2194, lhofhansl, ashtra
* Item entities: Enable item collision detection for sudden movement (_DTA7_)
* Ease selection of entities behind nodes (_SmallJoker_)
* Object properties: Fix loss of custom selectionbox when it's not updated (_SmallJoker_)
* GenericCAO: Fix light position for non-players, remove deprecated initialisation code (_SmallJoker_)
* GenericCAO: Fix light position for non-players, remove deprecated initialization code (_SmallJoker_)
* GenericCAO: Fix dark model below y = 0 (_paramat_)
* CAO footstep sounds: Reduce gain to balance volume (_paramat_)

Expand Down Expand Up @@ -2220,7 +2220,7 @@ Backported release containing only bug fixes and small features. 0.4.17 was rele
* Fix Settings tab formspec alignment
* Do not scale texture unless necessary
* httpfetch: Enable gzip support
* Fix day\_night\_ratio\_do\_override not being initialised server-side
* Fix day\_night\_ratio\_do\_override not being initialized server-side
* Fix default item callbacks to work with nil users
* Prevent from crafting non-existent, unknown items
* Profiler: Fix var args not being passed to callback register function
Expand Down Expand Up @@ -2542,26 +2542,26 @@ No official changelog exists yet, however you can find an unofficial one here: [
* Fix serialization of floating point numbers (ShadowNinja)
* Disallow object:remove() if the object is a player (Kahrl)
* Fix wrapDegrees family of functions (Zeno)
* Optimise MapBlockMesh related functions (gregorycu)
* Optimize MapBlockMesh related functions (gregorycu)
* Fix minor memory leak (Android) (Zeno)
* Fix occlusion (Miguel Almeida)
* ClientInterface::getClientIDs doesn't need a std::list. Use a std::vector for better performance (nerzhul)
* Fix some rendering glitches (BlockMen)
* Fix mapgen using uninitialised height map values (Zeno)
* Fix mapgen using uninitialized height map values (Zeno)
* Fix Android text bug (no text displaying) (Zeno)
* Improve Clouds::render mathematics (nerzhul)
* For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives (Zeno)
* Fix RUN\_IN\_PLACE broken due to invalid usage of assert (sapier)
* Respect game mapgen flags and save world noise params (ngosang)
* Don't use luaL\_checkstring to read node names, it's only for arguments (ShadowNinja)
* Heightmaps: Fix uninitialised values in mgv5/mgv6. findGroundLevel: Return -MAP\_GENERATION\_LIMIT if surface not found (paramat)
* Heightmaps: Fix uninitialized values in mgv5/mgv6. findGroundLevel: Return -MAP\_GENERATION\_LIMIT if surface not found (paramat)
* Make the dummy backend only look up blocks once (ShadowNinja)
* Fix uninitialized data when creating TOSERVER\_INIT packet (nerzhul)
* Fix memory leak pointed by issue #2439. Also change bzero to memset. bzero doesn't work on windows (nerzhul)
* Stop formspecs closing with double-click in empty area (Zeno)
* Ensure that heightmap is initialized before use (Zeno)
* lua\_api/l\_mapgen: Fix overlapping areas of minetest.generate\_ores/decorations (paramat)
* Mgv6: Fix uninitialised heightmap used by cavegen (paramat)
* Mgv6: Fix uninitialized heightmap used by cavegen (paramat)
* Disable double-click -> ESC translation for main menu (Zeno)
* If player is dead, permit it to respawn, even if damages are not enabled (nerzhul)
* Android: Fix auto-entry of server address and port in mainmenu (est31)
Expand Down Expand Up @@ -2955,10 +2955,10 @@ No official changelog exists yet, however you can find an unofficial one here: [
* Sped up removing a node (less block mesh updates) _(RealBadAngel)_
* Reduced number of extrusion meshes to (usually) 5 instead of one per item _(kahrl)_
* Improved VoxelArea variable locality _(Wouters Dorian)_
* Optimised functions from CNodeDefManager and VoxelManipulator _(Zeno)_
* Optimised serialization, for example by using machine native byte swapping if available _(Rafael Reilova)_
* Optimised main client loop _(Zeno)_
* Optimised noise implementations _(kwolekr)_
* Optimized functions from CNodeDefManager and VoxelManipulator _(Zeno)_
* Optimized serialization, for example by using machine native byte swapping if available _(Rafael Reilova)_
* Optimized main client loop _(Zeno)_
* Optimized noise implementations _(kwolekr)_
* Optimized getLight() by 2x _(Zeno)_
* Stopped liquid queue from eating up more and more RAM; also liquid\_loop\_max now defaults to 100000 _(Zeno, celeron55)_
* Changed TileSpec::frames to be std::vector not std::map _(unknown, Zeno)_
Expand Down
8 changes: 8 additions & 0 deletions content/about/history/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: History
bookCollapseSection: true
---

# History

This section covers historical elements of Luanti.
2 changes: 1 addition & 1 deletion content/about/history/mapgen-evolution.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ aliases:
# Map Generator Evolution


This page shows the development history of the [map generators](/mapgen "Map generator") in Luanti.
This page shows the development history of the [map generators](/for-creators/mapgen "Map generator") in Luanti.

Development of a single map generator
-------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion content/about/luanti.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Features

* A big cube-based world to discover (61840 nodes (cubes) in every dimension)
* Procedurally generated world
* Several [world generators](/mapgen) with many adjustable parameters
* Several [world generators](/for-creators/mapgen) with many adjustable parameters
* Extremely high configurability with an advanced settings editor and built-in descriptions, or by using a [configuration file](/for-players/minetest-conf)
* Customize the graphics and sounds through [texture packs](/for-players/texture-packs)
* Download games, mods and texture packs from the built-in [ContentDB](https://content.luanti.org/)
Expand Down
2 changes: 1 addition & 1 deletion content/content-dev/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Any functions not listed here are subject to change and not guaranteed to be com

### The minetest_docs Project

minetest_docs was a project to create new, more detailed documentation. The final contents from the project can currently be found under the [/api/](/api/) directory here.
minetest_docs was a project to create new, more detailed documentation. The final contents from the project can currently be found under the [/api/](/for-creators/api/) directory here.

Useful tools
------------
Expand Down
2 changes: 1 addition & 1 deletion content/content-dev/debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ The basic debug information is located at the top left of the screen. It looks l
* **yaw**: Your current horizontal looking direction (also known as “yaw”). For convenience, also the cardinal direction (e.g. “North”) as well as the approximate axis direction are shown (e.g. “+Z”)
- 0° translates to “North”, 270° to “East”, 180° to “South” and 90° to “West”. Note that the concept of cardinal directions does not really make sense in Luanti, as the world is a cube, not a sphere, and there are no poles. In this context, the names “North”, “South”, “West” and “East” are just synonyms for the 4 directions
* **pitch**: Your current vertical looking direction (i.e. “pitch”). 0° means you look horizontally, positive numbers means looking upwards and negative numbers means looking downwards
* **seed**: The [random seed](https://en.wikipedia.org/wiki/Random_seed) used by the [map generator](/mapgen) to generate the current world. Equal seeds (along with equal mapgen settings) will lead to equal worlds
* **seed**: The [random seed](https://en.wikipedia.org/wiki/Random_seed) used by the [map generator](/for-creators/mapgen) to generate the current world. Equal seeds (along with equal mapgen settings) will lead to equal worlds
* **pointed**: The [itemstring](/for-players/itemstrings) / “technical name” of the current [pointed](/for-players/pointing) [node](/for-players/nodes) (if any).
* **param2**: Value of `param2` of the current pointed node (if any). This contains some additional info for a node, such as rotation, color, etc, which is important for programmers. The meaning of `param2` is explained in the Lua API documentation.

Expand Down
2 changes: 1 addition & 1 deletion content/content-dev/development-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ In addition to this list, you can also see the [Development Tools](https://conte
- [Perlin noise tuner](https://codepen.io/treer/pen/gOPZyov?editors=0010): Visualizes 2D Perlin noise that Luanti will generate with different noiseparams.(Emulation of Luanti Perlin noise can be wrong in extremes/edge-cases due to precision of JavaScript number type)

## 3D models
- [Blender](https://www.blender.org/): Essential for making animated models in Luanti, see [Using Blender](/models/using-blender/).
- [Blender](https://www.blender.org/): Essential for making animated models in Luanti, see [Using Blender](/for-creators/models/using-blender/).
- [Blockbench](https://www.blockbench.net/): Useful for making static voxel models for Luanti, see [Using Blockbench](/using-blockbench/).

## Formspecs
Expand Down
2 changes: 1 addition & 1 deletion content/content-dev/mod-interoperability.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ For further discussion of the problem with `set_physics_override`, see [Player p

#### Internationalization

Since version 5.0.0, the preferred way to make mods and games translatable is with help of the Lua API with `core.get_translator`. No additional mod is required. See [Translating Mods and Games](/translation/mods-and-games).
Since version 5.0.0, the preferred way to make mods and games translatable is with help of the Lua API with `core.get_translator`. No additional mod is required. See [Translating Mods and Games](/for-creators/translation/mods-and-games).

#### Help

Expand Down
16 changes: 8 additions & 8 deletions content/content-dev/modding-tips.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Troubleshooting

### OOM errors

If your game or mod crashes due to an OOM error, it means that Luanti has ran out of memory (=OOM). This happens if your Lua code somewhere uses up a large amount of memory. This can happen if you construct large tables and fill them with lots of data and never free them, or you got a nice [memory leak](https://en.wikipedia.org/wiki/Memory_leak). Badly coded mapgens are a likely cause of OOM errors, if you implement a Lua API, you should always apply all [Mapgen memory optimisations](/Mapgen_memory_optimisations "Mapgen memory optimisations").
If your game or mod crashes due to an OOM error, it means that Luanti has ran out of memory (=OOM). This happens if your Lua code somewhere uses up a large amount of memory. This can happen if you construct large tables and fill them with lots of data and never free them, or you got a nice [memory leak](https://en.wikipedia.org/wiki/Memory_leak). Badly coded mapgens are a likely cause of OOM errors, if you implement a Lua API, you should always apply all [Mapgen memory optimizations](/for-creators/mapgen/memory-optimizations).

### “Irrlicht: PNG warning: iCCP: known incorrect sRGB profile”

Expand All @@ -26,7 +26,7 @@ it means that *some* PNG file is bad. But this warning is useless for you becaus
```


If you want to track down _which_ PNGs are broken, set the debug level (`debug_log_level`) to “verbose”. Now the log will show the PNG file name right above the warning. Now just fix the offending PNGs with your favourite image editor to get rid of these warnings.
If you want to track down _which_ PNGs are broken, set the debug level (`debug_log_level`) to “verbose”. Now the log will show the PNG file name right above the warning. Now just fix the offending PNGs with your favorite image editor to get rid of these warnings.

### Deprecated function calls

Expand Down Expand Up @@ -84,7 +84,7 @@ Set the setting `chat_log_level` to `warning` to enable this.

### Improving Lua mapgen memory performance

If you created a Lua mapgen, it is strongly recommended to make sure you optimize the memory performance, otherwise you could quickly run into OOM (out-of-memory) errors. See [Mapgen memory optimisations](/Mapgen_memory_optimisations "Mapgen memory optimisations").
If you created a Lua mapgen, it is strongly recommended to make sure you optimize the memory performance, otherwise you could quickly run into OOM (out-of-memory) errors. See [Mapgen memory optimizations](/for-creators/mapgen/memory-optimizations).

### More optimization tips

Expand Down Expand Up @@ -143,7 +143,7 @@ Note: Some of these can be checked quickly with [QA-Block](https://forum.luanti.
* Is `is_ground_content` set to false for all nodes that the cavegen should not destroy?[^12]
* Do all nodes have appropriate sounds?[^13]
* Do all nodes have appropriate selection boxes?[^14]
* Do all items intented for use only in Creative Inventory have set the `not_in_creative_inventory=1` group?
* Do all items intended for use only in Creative Inventory have set the `not_in_creative_inventory=1` group?
* Do all crafts work?[^15]

### Game/mod metadata
Expand Down Expand Up @@ -171,7 +171,7 @@ Note: Some of these can be checked quickly with [QA-Block](https://forum.luanti.
### Translations

* Does the UI provide reasonably enough space for translations?
* Was at least one translation playtested?
* Was at least one translation play-tested?
* Do you avoid using string concatenation to include variable text?[^21]
* Can all user-facing texts be translated?
* Have all in-game images with baked-in, untranslatable texts, been replaced with text?[^22]
Expand All @@ -186,12 +186,12 @@ Footnotes
[^5]: Detached inventories are sent to everyone unless you specify a name in the registration. So other players using a modified/hacked client could theoretically alter any detached inventory without an attached name.
[^6]: The keyword “`local`” should be your new friend. Everything that does not need to be visible outside should be made local. This will avoid a lot of weird bugs caused by mods overwriting their global variables each other. As a rule of thumb, your mod should only have up to 1 global variable which is also the same name as the mod. Make this a table in which you include all global stuff. You can use [QA-Block](https://forum.luanti.org/viewtopic.php?t=15759) to find suspicious global variables.
[^7]: See also: [MT-replace-deprecated.sh](/MT-replace-deprecated.sh "MT-replace-deprecated.sh")
[^8]: See also [Mapgen\_memory\_optimisations](/Mapgen_memory_optimisations "Mapgen memory optimisations")
[^9]: See also [Mapgen\_memory\_optimisations](/Mapgen_memory_optimisations "Mapgen memory optimisations")
[^8]: See also [Mapgen memory optimizations](/for-creators/mapgen/memory-optimizations)
[^9]: See also [Mapgen memory optimizations](/for-creators/mapgen/memory-optimizations)
[^10]: Entities will forget most variables when they unload, which is easy to overlook for beginners. Make sure to make use of staticdata.
[^11]: If you don't apply any checks when overwriting player physics, this will very likely lead to very hilarious bugs if 2 mods want to change player physics directly, as they will constantly compete for “their” physics. This will likely screw up the player physics badly. To solve this, you should generally avoid setting player physics directly, unless you want to implement a physics interface yourselves. But for normal use, we highly recommend to use an [Mod\_interoperability#Player\_physics API](/Mod_interoperability#Player_physics_API "Mod interoperability").
[^12]: Note this value is true by default, and can be forgotten easily.
[^13]: Of course, silence is also “appropriate” if that's what you intented.
[^13]: Of course, silence is also “appropriate” if that's what you intended.
[^14]: As a rule of thumb, try to match the graphics pixel-perfectly, if it makes sense. Selection boxes that are completely misplaced or just tiny are generally perceived as highly annoying by players.
[^15]: Use a craft guide to check
[^16]: The images just to help identifying the game in the game icon list in the main menu. Without an icon, your game is harder to find. At least draw a dummy image if you're in a hurry.
Expand Down
4 changes: 2 additions & 2 deletions content/distributing-luanti-games.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Luanti as an engine itself doesn't have any official means to export a game into
*(This page is somewhat outdated, but still contains useful information that can be reapplied for the latest version of Luanti)*

## General tips
Generally you're able to customise the main menu (at `builtin/mainmenu/`), which is written in Lua and formspec, however you'd like to suit your game.
Generally you're able to customize the main menu (at `builtin/mainmenu/`), which is written in Lua and formspec, however you'd like to suit your game.

### Locking down the singleplayer tab to one game
As of 5.8.0-dev, the engine will automatically detect what games are installed and pick the first one installed. If you ship the engine with just your game, then it will select that game on the main menu.
Expand Down Expand Up @@ -140,7 +140,7 @@ To change the name of the app to the game's name, edit the `label` string in `an

When Gradle bundles assets into an archive, it will copy `gameToCopy` defined in `android/app/build.gradle`. By default this is `minetest_game` so you would want to change the variable to bundle your game instead.

The loading screen background when Luanti extracts assets can be customised too. `android/app/src/main/res/drawable/background.png` which by default is a basic light blue background will tile if you replace it with something else.
The loading screen background when Luanti extracts assets can be customized too. `android/app/src/main/res/drawable/background.png` which by default is a basic light blue background will tile if you replace it with something else.

## Linux
Linux users are usually more advanced, most of the time they will compile the engine from source for their particular distro and package it for you (the Linux user is a wonderful creature). To give them better desktop integration you should edit `misc/net.minetest.minetest.desktop` which will give them a application launcher shortcut that accurately reflects the game, including the proper icon.
Expand Down
8 changes: 4 additions & 4 deletions content/engine-dev-process/releasing-luanti.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ The feature freeze and release date is set by core developers.

### Autogenerate files

Also update the [translation](/translation) templates:
Also update the [translation](/for-creators/translation) templates:

* Engine: Regenerate Gettext files with `util/updatepo.sh`. Note that before that, you most likely want to [import existing changes](#Update_translations_from_Weblate) first.
* Builtin: Change directory to `builtin`, then run `util/mod_translation_updater.py` from there

Also ensure that the `language` setting enum values contains `en`: there is no "en" directory, but Luanti supports it.

Read [Translation](/translation) for details.
Read [Translation](/for-creators/translation) for details.

### Update source strings on Weblate

Expand All @@ -70,13 +70,13 @@ Before releasing

### Verify special translation strings

The translation files contain a special string: [LANG\_CODE](https://hosted.weblate.org/translate/minetest/minetest/en/?q=LANG_CODE&checksum=&offset=1#translations) (see [Translation](/translation)).
The translation files contain a special string: [LANG\_CODE](https://hosted.weblate.org/translate/minetest/minetest/en/?q=LANG_CODE&checksum=&offset=1#translations) (see [Translation](/for-creators/translation)).

Verify that all \*.po files have a valid value for these strings because translators frequently misunderstand them and enter an invalid value. Fix any invalid values on Weblate by either entering the correct one or by removing the bad translation.

### Update translations from Weblate

**How to do this** -> [How to merge translations from Hosted Weblate](/translation/#how-to-merge-translations-from-hosted-weblate)
**How to do this** -> [How to merge translations from Hosted Weblate](/for-creators/translation/#how-to-merge-translations-from-hosted-weblate)

If doing a backported release, you can use the following command to cherry-pick all translation commits from weblate:

Expand Down
Loading