An advanced walls mod for Minetest
Go to file
𝘋𝘪𝘳𝘬 f93d412d30
relicense to MIT License
2023-07-16 21:18:19 +02:00
locale implement client-side translation feature 2019-02-02 19:30:52 +01:00
registry properly align code 2022-01-08 22:42:04 +01:00
screenshots alter design (keep size but change pillar) 2019-04-22 01:39:46 +02:00
system fix API functionality and add additional groups 2022-01-08 22:23:57 +01:00
LICENSE.txt relicense to MIT License 2023-07-16 21:18:19 +02:00
README.md add known issue with nodebox rendering 2022-08-12 08:13:30 +02:00
init.lua use better fitting loglevel 2023-06-16 03:13:49 +02:00
mod.conf add 5.6 human readable title 2022-08-12 08:09:06 +02:00
screenshot.png alter design (keep size but change pillar) 2019-04-22 01:39:46 +02:00
settingtypes.txt allow disabling of built-in node groups walls 2022-01-05 21:19:19 +01:00

README.md

Super Duper Walls or SD Walls for short adds modular flexible walls to Minetest.

Screenshot

Functionality

The mod adds walls from various different base nodes like cobblestone or stone bricks. The walls automatically connect to all other walls created by SD Walls.

In addition to that wall pillars are automatically created where applicable.

  • At all corners
  • At all T-junctions
  • At all wall ends
  • If the wall stands alone
  • If the wall is surrounded by other walls

If a wall is not in one of the above positions it will automatically convert to a neatly fitting wall part connecting to the neighboring wall parts.

If you want to use a pillar/wall where usually a wall/pillar would be placed just punch the wall while wielding a wall. The punched wall will then toggle between the pillar form and the wall form.

Please note: This toggled type will be updated according to the neighbors when placing a wall adjacent to the toggled wall and has to be re-set as wanted at no cost.

Crafting

Crafting walls from the SD Walls mod is similar to crafting the regular walls except the top right node. An “uncrafting” recipe also exists.

craft walls uncraft walls

Feel free to report an issue if this interferes with any of your other mods.

Configuration

Walls to generate

SD Walls allows to set some of the walls not being created for whatever reason. Also the initially provided wooden walls are not created by default due to logic reasons (walls are made from bricks and not from wood). This can be set using the advanced configuration or adding the following values to minetest.conf and setting them to false (respectively true for the wooden walls.

sdwalls_use_default_wood        = false  -- Disabled by default
sdwalls_use_default_sandstone   = true
sdwalls_use_default_cobblestone = true
sdwalls_use_default_bricks      = true
sdwalls_use_moreblocks_bricks   = true

If disabled later the already placed nodes stay as they are and render as unknown nodes in the world until enabled again or manually removed from the world.

Connect to the base node

By default the walls and pillars connect to their respective base nodes (cobblestone walls connect to cobblestone nodes, stone brick walls to stone brick nodes, etc.). Connections between different nodes are not made (e.g. cobblestone walls do not connect to stone brick walls.

sdwalls_connect_to_base = true

Those features are server-wide and cannot be controlled for individual walls. Set to false to disable this feature. A pillar is generated at the end of the wall and the pillar connects to the base node. To have a wall there you need to toggle it.

Connect to walls of same type only

This setting allows to disable the connection between different wall types. By default walls of different types do connect. If this is not wanted simply set the value to true so walls only connect to theirselves.

sdwalls_connect_to_self = false  -- Disabled by default

For the sake of simplicity of this mod this feature only controls the connection nodebox to use. When set and two different walls meet they still prepare to connect (i.e. pillar generated at meeting point, wall generated to connect to the pillar), they just dont connect anymore.

You need to manually toggle the walls/pillars to match their surroundings.

API

SD Walls comes with a tiny API that allows modders to add walls to their own mods by simply registering them as described below. Mods need to depend or opt-depend on sdwalls in order to use the API.

The easiest method to register a wall is simply providing a node ID. This registers the wall based on that node ID with all of the nodes features. The call needs to be made after the mod registers the node otherwise SD Walls will simply ignore it.

sdwalls.register('mymod:mynode')

It is also possible to configure the registration for the wall providing a definition table. All table entries are optional.

sdwalls.register('mymod:mynode', {
  name = 'My Cool Wall Name',  -- name for the wall/pillar
  groups = {},                 -- additional groups
  pillar = pillar_table,       -- configuration for the pillar
  wall = wall_table,           -- configuration for the wall
})

The groups entry can be a regular groups table. All of the groups are added to the registered wall and pillar nodes. The wall_table and pillar_table tables can be used to override some of the base nodes properties. The tables are identical for the pillar and the wall entry in the definition table.

{
  tiles = tiles_definition_table,  -- override tiles
  sounds = SimpleSoundSpec,        -- override sounds
  light_source = 1                 -- override light source setting
}

The tiles and sounds tables are the same that are used to register nodes with the Minetest API. See Minetest API documentation on how to set those up. The light_source value is the same as for registering nodes with the Minetest API, too.

Known issues

  • Pillars on top of other pillars that have walls connected do not show the walls texture where the pillars bottom would be. This comes from how Minetest renders nodes starting with version 5.6. This rendering method treads connected/disconnected nodeboxes as if they were present. This is unfixable, sorry.