]> git.lizzy.rs Git - minetest.git/commitdiff
Fix `plantlike_rooted` world-aligned node base textures (#12994)
authorJude Melton-Houghton <jwmhjwmh@gmail.com>
Mon, 12 Dec 2022 13:45:09 +0000 (08:45 -0500)
committerGitHub <noreply@github.com>
Mon, 12 Dec 2022 13:45:09 +0000 (08:45 -0500)
Co-authored-by: Wuzzy <Wuzzy@disroot.org>
games/devtest/mods/tiled/init.lua
src/script/common/c_content.cpp
src/script/common/c_content.h

index 435f64b7118ee6fffa6d1c73fc0a3d7edf22b8a4..7e2bdba1a3792a7db6dcc9877dd08c713c38b910 100644 (file)
@@ -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 = {{
index 6203ea78c04005509431f780d0631eda05b89f52..4be6457d8eb3f6536eed8188806a9b9f7cf897bd 100644 (file)
@@ -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++;
index aa8746eff62a349bde34cc425001b5df7a12fff9..1f8b973b5227e4382a9701959e4501ecfda7dd95 100644 (file)
@@ -85,7 +85,7 @@ void               push_palette              (lua_State *L,
                                               const std::vector<video::SColor> *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);