From 1f3b5e553bb581deddf468d62954ff238ebb1ac8 Mon Sep 17 00:00:00 2001 From: Jude Melton-Houghton Date: Mon, 12 Dec 2022 08:45:09 -0500 Subject: [PATCH] Fix `plantlike_rooted` world-aligned node base textures (#12994) Co-authored-by: Wuzzy --- games/devtest/mods/tiled/init.lua | 15 +++++++++++++++ src/script/common/c_content.cpp | 13 ++++++++----- src/script/common/c_content.h | 2 +- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/games/devtest/mods/tiled/init.lua b/games/devtest/mods/tiled/init.lua index 435f64b71..7e2bdba1a 100644 --- a/games/devtest/mods/tiled/init.lua +++ b/games/devtest/mods/tiled/init.lua @@ -11,6 +11,21 @@ minetest.register_node("tiled:tiled", { groups = {cracky=3}, }) +minetest.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"}, + groups = {cracky=3}, +}) + minetest.register_node("tiled:tiled_n", { description = "Tiled Node (node-aligned)".."\n"..align_help_n, tiles = {{ diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 6203ea78c..4be6457d8 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -462,7 +462,7 @@ void push_object_properties(lua_State *L, ObjectProperties *prop) } /******************************************************************************/ -TileDef read_tiledef(lua_State *L, int index, u8 drawtype) +TileDef read_tiledef(lua_State *L, int index, u8 drawtype, bool special) { if(index < 0) index = lua_gettop(L) + 1 + index; @@ -473,7 +473,6 @@ TileDef read_tiledef(lua_State *L, int index, u8 drawtype) bool default_culling = true; switch (drawtype) { case NDT_PLANTLIKE: - case NDT_PLANTLIKE_ROOTED: case NDT_FIRELIKE: default_tiling = false; // "break" is omitted here intentionaly, as PLANTLIKE @@ -483,6 +482,10 @@ TileDef read_tiledef(lua_State *L, int index, u8 drawtype) case NDT_LIQUID: default_culling = false; break; + case NDT_PLANTLIKE_ROOTED: + default_tiling = !special; + default_culling = !special; + break; default: break; } @@ -576,7 +579,7 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) int i = 0; while(lua_next(L, table) != 0){ // Read tiledef from value - f.tiledef[i] = read_tiledef(L, -1, f.drawtype); + f.tiledef[i] = read_tiledef(L, -1, f.drawtype, false); // removes value, keeps key for next iteration lua_pop(L, 1); i++; @@ -604,7 +607,7 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) int i = 0; while (lua_next(L, table) != 0) { // Read tiledef from value - f.tiledef_overlay[i] = read_tiledef(L, -1, f.drawtype); + f.tiledef_overlay[i] = read_tiledef(L, -1, f.drawtype, false); // removes value, keeps key for next iteration lua_pop(L, 1); i++; @@ -632,7 +635,7 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) int i = 0; while(lua_next(L, table) != 0){ // Read tiledef from value - f.tiledef_special[i] = read_tiledef(L, -1, f.drawtype); + f.tiledef_special[i] = read_tiledef(L, -1, f.drawtype, true); // removes value, keeps key for next iteration lua_pop(L, 1); i++; diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h index aa8746eff..1f8b973b5 100644 --- a/src/script/common/c_content.h +++ b/src/script/common/c_content.h @@ -85,7 +85,7 @@ void push_palette (lua_State *L, const std::vector *palette); TileDef read_tiledef (lua_State *L, int index, - u8 drawtype); + u8 drawtype, bool special); void read_soundspec (lua_State *L, int index, SimpleSoundSpec &spec); -- 2.44.0