From: DS-Minetest Date: Mon, 19 Jun 2017 16:51:21 +0000 (+0200) Subject: Add backface_culling to open chests and fencegates X-Git-Tag: 0.4.17.1~34 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3a72f7b84bdc35984bc12be49dce7bb82dbb532f;p=oweals%2Fminetest_game.git Add backface_culling to open chests and fencegates --- diff --git a/game_api.txt b/game_api.txt index 887f394e..1864cba4 100644 --- a/game_api.txt +++ b/game_api.txt @@ -155,7 +155,8 @@ The doors mod allows modders to register custom doors and trapdoors. ### Fence gate definition description = "Wooden Fence Gate", - texture = "default_wood.png", + texture = "default_wood.png", -- `backface_culling` will automatically be + -- set to `true` if not specified. material = "default:wood", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(), -- optional diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 016b6aa8..8e4d7120 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1990,12 +1990,19 @@ function default.register_chest(name, d) local def_closed = table.copy(def) def_opened.mesh = "chest_open.obj" + for i = 1, #def_opened.tiles do + if type(def_opened.tiles[i]) == "string" then + def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} + elseif def_opened.tiles[i].backface_culling == nil then + def_opened.tiles[i].backface_culling = true + end + end def_opened.drop = "default:" .. name def_opened.groups.not_in_creative_inventory = 1 def_opened.selection_box = { type = "fixed", fixed = { -1/2, -1/2, -1/2, 1/2, 3/16, 1/2 }, - } + } def_opened.can_dig = function() return false end diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 371b43a2..b3535034 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -712,7 +712,7 @@ function doors.register_fencegate(name, def) local fence = { description = def.description, drawtype = "mesh", - tiles = {def.texture}, + tiles = {}, paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, @@ -734,6 +734,16 @@ function doors.register_fencegate(name, def) }, } + + if type(def.texture) == "string" then + fence.tiles[1] = {name = def.texture, backface_culling = true} + elseif def.texture.backface_culling == nil then + fence.tiles[1] = table.copy(def.texture) + fence.tiles[1].backface_culling = true + else + fence.tiles[1] = def.texture + end + if not fence.sounds then fence.sounds = default.node_sound_wood_defaults() end