diff --git a/doc/lua_api.md b/doc/lua_api.md index 6115fb87a..03eddd3ad 100644 --- a/doc/lua_api.md +++ b/doc/lua_api.md @@ -9684,7 +9684,7 @@ Long form: -- If `true`, faces will only be drawn from one side. -- -- Default: - -- * `false` for drawtypes `plantlike`, `firelike`, `mesh`, and `liquid`. + -- * `false` for drawtypes `plantlike`, `firelike`, `mesh`, and `liquid`. TODO: flowingliquid? -- * `false` for `special_tiles` of drawtype `plantlike_rooted`. -- * `true` otherwise. @@ -9715,7 +9715,29 @@ Long form: -- * "user": Client setting `world_aligned_mode` will be used, similar to -- `glasslike_framed_optional`. -- - -- Only supported by drawtypes made of cuboids. + -- Only supported by the following drawtypes: + -- + -- * `normal` + -- * `liquid` (but not `flowingliquid`) + -- * `glasslike_framed`: Only frame (tile 1). With `paramtype2` + -- `glasslikeliquidlevel`, `special_tiles` also don't support this. + -- * `glasslike_framed_optional`: Same limitations as for `glasslike_framed`. + -- And if the `connected_glass` setting is disabled, it may be drawn like + -- `scale` TODO. + -- * `allfaces` TODO? + -- * `allfaces_optional` TODO? + -- * `torchlike` TODO? + -- * `signlike` TODO? + -- * `plantlike` TODO? + -- * `firelike` TODO? + -- * `fencelike` TODO? + -- * `raillike` TODO? + -- * `nodebox` TODO? + -- * `mesh` TODO? + -- * `plantlike_rooted` (only the cube part) + -- + -- If a drawtype (or part of it) is not supported, don't use this feature, + -- as support may be added in the future. -- -- Setting a different value in the corresponding `overlay_tiles` tile is not -- supported. diff --git a/games/devtest/mods/tiled/init.lua b/games/devtest/mods/tiled/init.lua index ea34ea1b1..e83c90b6a 100644 --- a/games/devtest/mods/tiled/init.lua +++ b/games/devtest/mods/tiled/init.lua @@ -1,38 +1,21 @@ local align_help = "Texture spans over a space of 8×8 nodes" local align_help_n = "Tiles looks the same for every node" -core.register_node("tiled:tiled", { - description = "Tiled Node (world-aligned)".."\n"..align_help, - tiles = {{ - name = "tiled_tiled.png", - align_style = "world", - scale = 8, - }}, - groups = {cracky=3}, -}) +local scaled_tile = { + name = "tiled_tiled.png", + align_style = "world", + scale = 8, +} -core.register_node("tiled:tiled_rooted", { - description = - "Tiled 'plantlike_rooted' Node (world-aligned)".."\n".. - "Base node texture spans over a space of 8×8 nodes".."\n".. - "A plantlike thing grows on top", - paramtype = "light", - drawtype = "plantlike_rooted", - tiles = {{ - name = "tiled_tiled.png", - align_style = "world", - scale = 8, - }}, - special_tiles = {"tiled_tiled_node.png"}, +core.register_node("tiled:tiled", { + description = "Tiled 'normal' Node (world-aligned)".."\n"..align_help, + tiles = {scaled_tile}, groups = {cracky=3}, }) core.register_node("tiled:tiled_n", { - description = "Tiled Node (node-aligned)".."\n"..align_help_n, - tiles = {{ - name = "tiled_tiled_node.png", - align_style = "node", - }}, + description = "Tiled 'normal' Node (node-aligned)".."\n"..align_help_n, + tiles = {{name="tiled_tiled_node.png", align_style="node"}}, groups = {cracky=3}, }) @@ -44,8 +27,73 @@ stairs.register_stair_and_slab("tiled_n", "tiled:tiled_n", stairs.register_stair_and_slab("tiled", "tiled:tiled", {cracky=3}, - {{name="tiled_tiled.png", align_style="world", scale=8}}, + {scaled_tile}, "Tiled Stair (world-aligned)".."\n"..align_help, "Tiled Slab (world-aligned)".."\n"..align_help) +core.register_node("tiled:tiled_liquid", { + description = + "Tiled 'liquid' Node (world-aligned)".."\n".. + align_help.."\n".. + "(waving = 3)", + paramtype = "light", + drawtype = "liquid", + tiles = {scaled_tile}, + groups = {cracky=3}, + waving = 3, + liquidtype = "none", + buildable_to = true, +}) +core.register_node("tiled:tiled_glasslike", { -- broken + description = + "Tiled 'glasslike' Node (world-aligned)".."\n".. + align_help, + paramtype = "light", + paramtype2 = "facedir", + drawtype = "glasslike", + tiles = {scaled_tile}, + groups = {cracky=3}, +}) + +core.register_node("tiled:tiled_glasslike_framed", { + description = + "Tiled 'glasslike_framed' Node (world-aligned)".."\n".. + align_help, + paramtype = "light", + drawtype = "glasslike_framed", + tiles = {scaled_tile, scaled_tile}, + groups = {cracky=3}, +}) + +core.register_node("tiled:tiled_glasslike_framed", { + description = + "Tiled 'glasslike_framed' Node (world-aligned)".."\n".. + align_help, + paramtype = "light", + drawtype = "glasslike_framed", + tiles = {scaled_tile, "testnodes_glasslike_detail.png"}, + groups = {cracky=3}, +}) + +core.register_node("tiled:tiled_glasslike_framed_optional", { + description = + "Tiled 'glasslike_framed_optional' Node (world-aligned)".."\n".. + align_help, + paramtype = "light", + drawtype = "glasslike_framed_optional", + tiles = {scaled_tile, "testnodes_glasslike_detail.png"}, + groups = {cracky=3}, +}) + +core.register_node("tiled:tiled_rooted", { + description = + "Tiled 'plantlike_rooted' Node (world-aligned)".."\n".. + "Base node texture spans over a space of 8×8 nodes".."\n".. + "A plantlike thing grows on top", + paramtype = "light", + drawtype = "plantlike_rooted", + tiles = {scaled_tile}, + special_tiles = {"tiled_tiled_node.png"}, + groups = {cracky=3}, +}) diff --git a/games/devtest/mods/tiled/mod.conf b/games/devtest/mods/tiled/mod.conf index 78b19f93b..b83f51739 100644 --- a/games/devtest/mods/tiled/mod.conf +++ b/games/devtest/mods/tiled/mod.conf @@ -1,3 +1,3 @@ name = tiled description = Add nodes with a special texture that spans multiple nodes (aka "world-aligned") -depends = stairs +depends = stairs, testnodes