Meshnodes for Minetest [meshnode]
=================================
**Mod Version:** 0.3.0
**Minetest Version:** 0.4.14 or later
**Depends:** default
Description
-----------
Meshnodes is a mod that transforms ordinary minetest nodes into a connected
array of replica entities to which players can attach to and manoeuvre.
To use, simply build or place a model using nodes with a supported drawtype
then place a meshnode controller in an appropriate position. Now use the
special 'glue' that you will find in the controller node's inventory to
connect your structure. Alternatively, if you are using worldedit, you can
use the position markers to define the extents of your model.
When everything is connected you should return the 'glue' to the controller
to enable activation. Once activated, players can then attach themselves
to the controller or restore the model back to nodes. Restored models can
be easily reconnected using the 'Connect from meta positions' option.
Please note that the 'glue' bottles are unique to a controller's position
and are only useable within a limited range.
**Supported Drawtypes**
I have done my best to include support for most of the common nodes that
are useful for building ships etc, like fences, xpanes and walls including
support for all default stairs and slabs in full 6d rotation. It may or
may not work with other decorative nodeboxes/meshnodes, the best way to
find out is to simply try it.
Exceptions include flowing liquids, wallmounted nodes, rails or any node
with non-generated wield or inventory images. Some drawtypes have only
partial support, like 'plantlike' for example.
**Construction Advice**
Place the controller node in the direction you wish to face when you attach
to it and always try to make your models hollow wherever possible.
Controls
--------
```
[Up] Forward
[Down] Reverse
[Left] Turn Left
[Right] Turn Right
[Jump] Up
[Sneak] Down
[RMB] Interact
```
Crafting
--------
By default crafting is enabled in singleplayer mode only.
**Meshnode Controller** [meshnode:controller]
[default:bronzeblock] |
[default:diamondblock] |
[default:bronzeblock] |
[default:obsidian_block] |
[default:steelblock] |
[default:goldblock] |
[default:bronzeblock] |
[default:steelblock] |
[default:bronzeblock] |
Multiplayer
-----------
Take care if you use this mod on a public server, while I have done my
best to support basic protection, I am sure this mod could still provide
serious potential for grief in the hands of the wrong people.
By default the controller node will only be available via `/give[me]` and
requires the 'meshnode' privilege to be effective, however, non-privileged
players will still be able to attach to and operate pre-activated models.
Note that you will probably need to increase `max_objects_per_block` to
something a little higher than the default 64 to avoid server warnings and
broken models. You can set `meshnode_autoconf = true` to automatically
increase that limit to 4096 which, in theory, equates to one solid map-block
full of meshnodes, though I would not advise testing that on live server.
Blacklist
---------
A global blacklist table is stored is in `meshnode.blacklist` keyed by item
name, in multiplayer mode the following nodes are blacklisted by default.
```
meshnode.blacklist["default:chest_locked"] = true
meshnode.blacklist["default:water_source"] = true
meshnode.blacklist["default:river_water_source"] = true
meshnode.blacklist["default:lava_source"] = true
```
Configuration
-------------
The global config table is stored `meshnode.config` and can overridden by
adding the config name prefixed with 'meshnode_' to your minetest.conf file.
**Example:** (multiplayer defaults)
```
meshnode_max_speed = 2
meshnode_max_lift = 1
meshnode_yaw_amount = 0.017
meshnode_max_radius = 8
meshnode_show_in_creative = false
meshnode_enable_crafting = false
meshnode_fake_shading = false
meshnode_autoconf = false
```
Note that speed, lift, yaw and radius may still be altered by other mods after
the initial start-up via the global `meshnode.config` table.
API
---
I would like to think that this mod could be used as the base for other mods
like airships or sailing ships or perhaps even some fancy construction tool.
For this reason I have exposed everything that I thought might be potentially
useful under the `meshnode` namespace. I would hope that the source code is
reasonably self-explanatory.
Know Issues
-----------
Active objects sometimes disappear following a re-start/connect. This could
be for a number or reasons including /clearobjects or a minetest bug. For this
reason you are advised to always 'restore' your model to 'real' nodes before
logging out or moving any significant distance away from it.
The player controlling the entity may appear to be connected to the wrong
part of the model when viewed by a player that was not present during the
initial attachment. Currently the only solution is for the operator to
detach then re-attach to the model in the presence of said player.