Stairs: Add backface culling to stair meshes
authorJohannes Fritz <Mr.rar1998@gmail.com>
Wed, 7 Jun 2017 16:42:44 +0000 (11:42 -0500)
committersfan5 <sfan5@live.de>
Sun, 19 Nov 2017 21:53:53 +0000 (22:53 +0100)
If backface culling is not specified for a tile in 'images' it is set to true.
Slabs already have backface culling due to being defined as nodeboxes (which
are then converted to meshnodes).

mods/stairs/init.lua

index ab80fbbe0e11f6c7d87b81670239e69d69842312..e7e40c6baab4f312b364a6bc384cc9f830a4c58a 100644 (file)
@@ -46,12 +46,24 @@ end
 -- Node will be called stairs:stair_<subname>
 
 function stairs.register_stair(subname, recipeitem, groups, images, description, sounds)
+       local stair_images = {}
+       for i, image in ipairs(images) do
+               if type(image) == "string" then
+                       stair_images[i] = {
+                               name = image,
+                               backface_culling = true,
+                       }
+               elseif image.backface_culling == nil then -- override using any other value
+                       stair_images[i] = table.copy(image)
+                       stair_images[i].backface_culling = true
+               end
+       end
        groups.stair = 1
        minetest.register_node(":stairs:stair_" .. subname, {
                description = description,
                drawtype = "mesh",
                mesh = "stairs_stair.obj",
-               tiles = images,
+               tiles = stair_images,
                paramtype = "light",
                paramtype2 = "facedir",
                is_ground_content = false,