mirror of
https://github.com/minetest/minetest.git
synced 2024-09-12 00:26:50 +02:00
* Refactor texture overrides, and add new features: - Texture overrides can support multiple targets in one line - Texture override files can have comment lines - Item images/wield images can be overridden * Formatting changes * Address soime feedback - Pass vectors by const reference - Log syntax errors as warnings - Remove 'C' prefix from TextureOverrideSource * Simplify override target checks with an inline helper function * make linter happy * Apply feedback suggestions Co-Authored-By: rubenwardy <rw@rubenwardy.com> * Remove remaining != 0 checks * Update copyright notice Co-authored-by: sfan5 <sfan5@live.de> Co-authored-by: rubenwardy <rw@rubenwardy.com>
234 lines
8.2 KiB
Plaintext
234 lines
8.2 KiB
Plaintext
Minetest Texture Pack Reference
|
||
===============================
|
||
|
||
Texture packs allow you to replace textures provided by a mod with your own
|
||
textures.
|
||
|
||
Texture pack directory structure
|
||
--------------------------------
|
||
|
||
textures
|
||
|-- Texture Pack
|
||
| |-- texture_pack.conf
|
||
| |-- screenshot.png
|
||
| |-- description.txt
|
||
| |-- override.txt
|
||
| |-- your_texture_1.png
|
||
| |-- your_texture_2.png
|
||
`-- Another Texture Pack
|
||
|
||
### Texture Pack
|
||
This is a directory containing the entire contents of a single texture pack.
|
||
It can be chosen more or less freely and will also become the name of the
|
||
texture pack. The name must not be “base”.
|
||
|
||
### `texture_pack.conf`
|
||
A key-value config file with the following keys:
|
||
|
||
* `title` - human readable title
|
||
* `description` - short description, shown in the content tab
|
||
|
||
### `description.txt`
|
||
**Deprecated**, you should use texture_pack.conf instead.
|
||
|
||
A file containing a short description of the texture pack to be shown in the
|
||
content tab.
|
||
|
||
### `screenshot.png`
|
||
A preview image showing an in-game screenshot of this texture pack; it will be
|
||
shown in the texture packs tab. It should have an aspect ratio of 3:2 and a
|
||
minimum size of 300×200 pixels.
|
||
|
||
### `your_texture_1.png`, `your_texture_2.png`, etc.
|
||
Any other PNG files will be interpreted as textures. They must have the same
|
||
names as the textures they are supposed to override. For example, to override
|
||
the apple texture of Minetest Game, add a PNG file named `default_apple.png`.
|
||
|
||
The custom textures do not necceessarily require the same size as their
|
||
originals, but this might be required for a few particular textures. When
|
||
unsure, just test your texture pack in-game.
|
||
|
||
Texture modifiers
|
||
-----------------
|
||
|
||
See lua_api.txt for texture modifiers
|
||
|
||
Special textures
|
||
----------------
|
||
|
||
These texture names are hardcoded into the engine but can also be overwritten
|
||
by texture packs. All existing fallback textures can be found in the directory
|
||
`textures/base/pack`.
|
||
|
||
### Gameplay textures
|
||
|
||
* `bubble.png`: the bubble texture when the player is drowning
|
||
(default size: 12×12)
|
||
|
||
* `crack_anylength.png`: node overlay texture when digging
|
||
|
||
* `crosshair.png`
|
||
* the crosshair texture in the center of the screen. The settings
|
||
`crosshair_color` and `crosshair_alpha` are used to create a cross
|
||
when no texture was found
|
||
|
||
* `halo.png`: used for the node highlighting mesh
|
||
|
||
* `heart.png`: used to display the health points of the player
|
||
(default size: 12×12)
|
||
|
||
* `minimap_mask_round.png`: round minimap mask, white gets replaced by the map
|
||
* `minimap_mask_square.png`: mask used for the square minimap
|
||
* `minimap_overlay_round.png`: overlay texture for the round minimap
|
||
* `minimap_overlay_square.png`: overlay texture for the square minimap
|
||
* `object_marker_red.png`: texture for players on the minimap
|
||
* `player_marker.png`: texture for the own player on the square minimap
|
||
|
||
* `player.png`: front texture of the 2D upright sprite player
|
||
* `player_back.png`: back texture of the 2D upright sprite player
|
||
|
||
* `progress_bar.png`: foreground texture of the loading screen's progress bar
|
||
* `progress_bar_bg.png`: background texture of the loading screen's progress bar
|
||
|
||
* `moon.png`: texture of the moon. Default texture is generated by Minetest
|
||
* `moon_tonemap.png`: tonemap to be used when `moon.png` was found
|
||
* `sun.png`: texture of the sun. Default texture is generated by Minetest
|
||
* `sun_tonemap.png`: tonemap to be used when `sun.png` was found
|
||
* `sunrisebg.png`: shown sky texture when the sun rises
|
||
|
||
* `smoke_puff.png`: texture used when an object died by punching
|
||
|
||
* `unknown_item.png`: shown texture when an item definition was not found
|
||
* `unknown_node.png`: shown texture when a node definition was not found
|
||
* `unknown_object.png`: shown texture when an entity definition was not found
|
||
|
||
* `wieldhand.png`: texture of the wieldhand
|
||
|
||
Note: The default textures of `player.png`, `player_back.png` and `wieldhand.png`
|
||
are placeholders intended to be overwritten by the game.
|
||
|
||
### Mainmenu textures
|
||
|
||
* `menu_bg.png`: used as mainmenu background when the clouds are disabled
|
||
* `menu_header.png`: header texture when no texture pack is selected
|
||
|
||
* `no_screenshot.png`
|
||
* texture when no screenshot was found for a texture pack or mod
|
||
|
||
* `server_flags_creative.png`: icon for creative servers
|
||
* `server_flags_damage.png`: icon for enabled damage on servers
|
||
* `server_flags_favorite.png`: icon for your favorite servers
|
||
* `server_flags_pvp.png`: icon for enabled PvP on servers
|
||
|
||
### Android textures
|
||
|
||
* `down_arrow.png`
|
||
* `left_arrow.png`
|
||
* `right_arrow.png`
|
||
* `up_arrow.png`
|
||
|
||
* `drop_btn.png`
|
||
* `fast_btn.png`
|
||
* `fly_btn.png`
|
||
* `jump_btn.png`
|
||
* `noclip_btn.png`
|
||
|
||
* `camera_btn.png`
|
||
* `chat_btn.png`
|
||
* `inventory_btn.png`
|
||
* `rangeview_btn.png`
|
||
|
||
* `debug_btn.png`
|
||
* `gear_icon.png`
|
||
* `rare_controls.png`
|
||
|
||
Texture Overrides
|
||
-----------------
|
||
|
||
You can override the textures of nodes and items from a
|
||
texture pack using texture overrides. To do this, create one or
|
||
more files in a texture pack called override.txt
|
||
|
||
Each line in an override.txt file is a rule. It consists of
|
||
|
||
itemname target texture
|
||
|
||
For example,
|
||
|
||
default:dirt_with_grass sides default_stone.png
|
||
|
||
or
|
||
|
||
default:sword_steel inventory my_steel_sword.png
|
||
|
||
You can list multiple targets on one line as a comma-separated list:
|
||
|
||
default:tree top,bottom my_special_tree.png
|
||
|
||
You can use texture modifiers, as usual:
|
||
|
||
default:dirt_with_grass sides default_stone.png^[brighten
|
||
|
||
Finally, if a line is empty or starts with '#' it will be considered
|
||
a comment and not read as a rule. You can use this to better organize
|
||
your override.txt files.
|
||
|
||
Here are targets you can choose from:
|
||
|
||
| target | behavior |
|
||
|---------------|---------------------------------------------------|
|
||
| left | x- face |
|
||
| right | x+ face |
|
||
| front | z- face |
|
||
| back | z+ face |
|
||
| top | y+ face |
|
||
| bottom | y- face |
|
||
| sides | x-, x+, z-, z+ faces |
|
||
| all | All faces. You can also use '*' instead of 'all'. |
|
||
| inventory | The inventory texture |
|
||
| wield | The texture used when held by the player |
|
||
|
||
Nodes support all targets, but other items only support 'inventory'
|
||
and 'wield'
|
||
|
||
Designing leaves textures for the leaves rendering options
|
||
----------------------------------------------------------
|
||
|
||
Minetest has three modes for rendering leaves nodes if the node has the
|
||
`allfaces_optional` drawtype.
|
||
|
||
### Fancy
|
||
|
||
Uses the texture specified in the `tiles` nodedef field.
|
||
The texture should have some transparent pixels and be in the RGBA format so
|
||
that the transparent pixels can have color information.
|
||
Faces of every leaves node are rendered even if they are inside a solid volume
|
||
of leaves; this gives a dense appearance.
|
||
|
||
### Opaque
|
||
|
||
Uses the texture specified in `tiles` but makes it opaque by converting each
|
||
transparent pixel into an opaque pixel that uses the color information of that
|
||
transparent pixel.
|
||
Due to this the `tiles` texture format must be RGBA not 'indexed alpha' to allow
|
||
each transparent pixel to have color information.
|
||
|
||
The colors of the transparent pixels should be set for a good appearance in
|
||
`opaque` mode. This can be done by painting the pixels the desired colors then
|
||
erasing them. Then when saving the texture, use the 'save color information from
|
||
transparent pixels' option (or equivalent).
|
||
|
||
### Simple
|
||
|
||
Uses the texture specified in the `special_tiles` nodedef field if it exists, if
|
||
not, the `tiles` texture.
|
||
The `special_tiles` texture should have fewer transparent pixels than the
|
||
`tiles` texture and be in the 'indexed alpha' format.
|
||
|
||
This mode is between the other two in terms of appearance and rendering load.
|
||
The nodes are rendered using the `glasslike` drawtype, only showing the surface
|
||
faces for any solid volume of leaves, not the internal faces.
|
||
Due to this the `tiles` texture might appear lacking in density, so optionally a
|
||
`special_tiles` texture can be used to provide a texture with fewer transparent
|
||
pixels for a denser appearance.
|