Skip to content

Commit

Permalink
Add backface_culling to open chests and fencegates
Browse files Browse the repository at this point in the history
  • Loading branch information
Desour authored and paramat committed Jul 2, 2017
1 parent 0f7d0bf commit 2e413b5
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
3 changes: 2 additions & 1 deletion game_api.txt
Expand Up @@ -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
Expand Down
9 changes: 8 additions & 1 deletion mods/default/nodes.lua
Expand Up @@ -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
Expand Down
12 changes: 11 additions & 1 deletion mods/doors/init.lua
Expand Up @@ -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,
Expand All @@ -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
Expand Down

0 comments on commit 2e413b5

Please sign in to comment.