165 lines
7.2 KiB
Markdown
165 lines
7.2 KiB
Markdown
# moreblocks and stairsplus
|
|
|
|
more blocks for [minetest](https://www.minetest.net/), a free and open source infinite
|
|
world block sandbox game.
|
|
|
|

|
|
|
|
stairsplus adds a large variety of new shapes for registered nodes:
|
|
|
|

|
|
|
|

|
|
|
|
this is a fork of the version maintained by the minetest-mods group at https://github.com/minetest-mods/moreblocks.
|
|
it provides numerous new features and bugfixes and is designed to reduce the number of registered nodes, to avoid
|
|
the node ID limit.
|
|
|
|
# mods in the pack
|
|
|
|
## moreblocks
|
|
|
|
defines a bunch of new kinds of nodes. provides an API for creating variants of some nodes.
|
|
|
|
## moreblocks_legacy_recipes
|
|
|
|
provided to keep compatibility w/ recipe changes from older versions of moreblocks. disabled by default.
|
|
|
|
## stairsplus
|
|
|
|
allows the creation of 49 new shapes for registered nodes. provides an API for registering new shapes.
|
|
|
|
## stairsplus_legacy
|
|
|
|
stairsplus registrations for various mods which were formerly done automatically as part of moreblocks.
|
|
|
|
## stairs
|
|
|
|
overrides the stairs mod from minetest_game to use stairsplus behind the scenes, to avoid duplication of nodes.
|
|
|
|
## invsaw
|
|
|
|
adds a button in unified_inventory that allows you to use the circular saw interface if you are
|
|
playing creatively, or have a circular saw item in your inventory and have the right priv
|
|
(`interact`, by default).
|
|
|
|
invsaw was taken from [cheapie's invsaw mod](https://forum.minetest.net/viewtopic.php?t=14736), which
|
|
itself borrowed heavily from an older version of this mod. Flux decided to just add it here because it
|
|
needed to be fully rewritten to be compatible w/ their modifications to the stairsplus API.
|
|
|
|
# documentation
|
|
|
|
## for players
|
|
|
|
use of a decent inventory manager (e.g.
|
|
[unified_inventory](https://content.minetest.net/packages/RealBadAngel/unified_inventory/) or
|
|
[i3](https://content.minetest.net/packages/jp/i3/)) will help you figure out how to craft various nodes.
|
|
|
|
## for admins
|
|
|
|
### minetest version compatibility
|
|
|
|
more blocks is only tested against up-to-date minetest. Issues arising in older versions will generally not be fixed.
|
|
|
|
### legacy mode
|
|
|
|
the 2023-02-01 release of moreblocks introduces a "legacy" mode, which is on by default, and is meant to
|
|
allow new servers to not commit to creating as many nodes as older versions, while not breaking anything
|
|
on existing servers. See `settingtypes.txt` for available settings.
|
|
|
|
by defaul the 2023-02-01 release disables certain recipe overrides that were part of moreblocks 2.*. to re-enable
|
|
them, set `moreblocks_legacy_recipes.enabled = true`.
|
|
|
|
### settings
|
|
|
|
see `settingtypes.txt` for available settings.
|
|
|
|
### dependencies
|
|
|
|
moreblocks and stairsplus do not have hard dependencies on other mods. invsaw depends on `unified_inventory`
|
|
and stairsplus.
|
|
|
|
### compatability
|
|
|
|
moreblocks currently supports resources from a number of mods and minetest_game. without these installed,
|
|
some things may not be craftable, may have low-quality textures, or may not have "node sounds" registered.
|
|
if available, resources will be used from `bucket`, `default`, `rhotator`, `screwdriver`, and `vessels`.
|
|
|
|
if the `stairsplus_legacy` mod is enabled, stairsplus nodes will automatically be registered for the following
|
|
mods, if they are available: `basic_materials`, `default`, `farming`, `gloopblocks`, `prefab`, `technic`,
|
|
and `wool`.
|
|
|
|
### stairsplus whitelist mode
|
|
|
|
stairsplus can add a *lot* of nodes to the world - it comes with 49 shape variants! this can lead to big problems,
|
|
because minetest can only handle 32767 different kinds of nodes at the same time. that means, you can at maximum
|
|
create all possible variants for 655 distinct nodes. even fewer variations are possible if you want to use other
|
|
mods at the same time.
|
|
|
|
in order to reduce the number of registered nodes, stairsplus can be run in *whitelist mode*, which means that only
|
|
nodes listed in a certain file (`$WORLDPATH/stairsplus.whitelist`) will actually get registered (see note 1 below).
|
|
to enable whitelist mode, set `stairsplus.whitelist_mode = true` in minetest.conf.
|
|
|
|
additionally stairsplus comes w/ tools to automatically create a whitelist for existing worlds, so that server
|
|
operators can reap the benefits of whitelist mode without ending up w/ tons of "unknown" nodes. first, before enabling
|
|
whitelist mode, run the `/dump_stairsplus_registered_nodes` command to generate `$WORLDPATH/stairsplus_dump.json`,
|
|
which will be used in the next step. generating this file should be quick and painless.
|
|
|
|
the next step is *not* necessarily quick and painless. you will need to run a provided python script, located at
|
|
`moreblocks/stairsplus/scripts/create_whitelist.py`. this script can only process sqlite and postgres map backends.
|
|
additionally, this script only works w/ map serialization version 29, introduced with minetest 5.7.0. if you are
|
|
not running 5.7.0, you will have to upgrade and migrate your database (`--recompress`). additionally, while the script
|
|
is fairly efficient and makes use of multiple threads, it is still slow, and you will have to shut your server down
|
|
for the duration of the execution of this script, or run it against a backup database.
|
|
|
|
the script requires several non-standard python modules be installed, listed in
|
|
`moreblocks/stairsplus/scripts/requirements.txt`.
|
|
|
|
to run the script against a sqlite database, execute
|
|
```bash
|
|
python create_whitelist.py -s $WORLDPATH/map.sqlite $WORLDPATH/stairsplus_dump.json
|
|
```
|
|
|
|
for postgres, fill in the correct connection string for your database:
|
|
```bash
|
|
python create_whitelist.py -p "host=127.0.0.1 user=minetest password=pass dbname=minetest" $WORLDPATH/stairsplus_dump.json
|
|
```
|
|
|
|
both of these commands will generate `$WORLDPATH/stairsplus.whitelist` if successful. while running, an estimate
|
|
of how much more time is needed for the script to complete will be provided.
|
|
|
|
notes:
|
|
1. micro_\*_8 variants are always registered, as they are fundamental to the functionality of the mod.
|
|
|
|
### migrating schemas
|
|
|
|
stairsplus also comes with a script which can migrate blocks in minetest schemas and worldedit save files to their new
|
|
names in stairsplus. without this, trying to load schemas saved while using old stairsplus may cause a server crash.
|
|
|
|
first, create the `stairsplus_dump.json` file mentioned in whitelist mode. next, run
|
|
|
|
```bash
|
|
python translate_schems.py $WORLDPATH/stairsplus_dump.json $WORLDPATH/schems
|
|
```
|
|
|
|
## for mod makers
|
|
|
|
See moreblocks/API.md and stairsplus/API.md.
|
|
|
|
# license
|
|
|
|
## moreblocks, stairsplus, stairsplus_legacy, moreblocks_legacy_recipes
|
|
|
|
* © 2011-2022 Hugo Locurcio and contributors under the zlib license
|
|
* © 2023- fluxionary under the LGPL v3+
|
|
|
|
- unless otherwise specified, textures are licensed under
|
|
[CC BY-SA 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/).
|
|
- `moreblocks_copperpatina.png` was created by pithydon, and is licensed under
|
|
[CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/).
|
|
- `stairsplus_saw_button.png` CC BY-SA 3.0 Unported
|
|
|
|
## invsaw
|
|
|
|
* © 2022 cheapie and contributors under the zlib license
|
|
* © 2023- fluxionary under the LGPL v3+
|