Skip to content

stujones11/meshnode

Repository files navigation

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_disable_privilege = 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.

Known 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.

About

Poor man's voxel area entities for Minetest

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages