Convert fences to NDT_CONNECTED.

This changes the drawtype of fences to NDT_CONNECTED nodebox drawtype.

These nodes are drawn by the client with the needed connections on
the fly as the scene is drawn. There is no logic needed by mods to
modify the nodes.

These fences connect to (1) other fences, (2) planks and (3) tree
trunks, but nothing else. They do not connect to stone, dirt, wool,
etc. This is done by the "connects_to" parameter, which takes groups
and node names.

Due to the way textures are wrapped, we can make these nodes look a
lot better by giving them a special tile.

This change requires minetest/minetest#3503.
This commit is contained in:
Auke Kok 2015-12-14 21:49:20 -08:00 committed by paramat
parent 676822d286
commit d979293f14
7 changed files with 22 additions and 11 deletions

@ -213,16 +213,27 @@ function default.register_fence(name, def)
-- Allow almost everything to be overridden -- Allow almost everything to be overridden
local default_fields = { local default_fields = {
paramtype = "light", paramtype = "light",
drawtype = "fencelike", drawtype = "nodebox",
node_box = {
type = "connected",
fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}},
-- connect_top =
-- connect_bottom =
connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8},
{-1/16,-5/16,-1/2,1/16,-3/16,-1/8}},
connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16},
{-1/2,-5/16,-1/16,-1/8,-3/16,1/16}},
connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2},
{-1/16,-5/16,1/8,1/16,-3/16,1/2}},
connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16},
{1/8,-5/16,-1/16,1/2,-3/16,1/16}},
},
connects_to = {"group:fence", "group:wood", "group:tree"},
inventory_image = fence_texture, inventory_image = fence_texture,
wield_image = fence_texture, wield_image = fence_texture,
tiles = { def.texture }, tiles = {def.texture},
sunlight_propagates = true, sunlight_propagates = true,
is_ground_content = false, is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {}, groups = {},
} }
for k, v in pairs(default_fields) do for k, v in pairs(default_fields) do

@ -1713,7 +1713,7 @@ minetest.register_node("default:ladder_steel", {
default.register_fence("default:fence_wood", { default.register_fence("default:fence_wood", {
description = "Wooden Fence", description = "Wooden Fence",
texture = "default_wood.png", texture = "default_fence_wood.png",
material = "default:wood", material = "default:wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
@ -1721,7 +1721,7 @@ default.register_fence("default:fence_wood", {
default.register_fence("default:fence_acacia_wood", { default.register_fence("default:fence_acacia_wood", {
description = "Acacia Fence", description = "Acacia Fence",
texture = "default_acacia_wood.png", texture = "default_fence_acacia_wood.png",
material = "default:acacia_wood", material = "default:acacia_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
@ -1729,7 +1729,7 @@ default.register_fence("default:fence_acacia_wood", {
default.register_fence("default:fence_junglewood", { default.register_fence("default:fence_junglewood", {
description = "Junglewood Fence", description = "Junglewood Fence",
texture = "default_junglewood.png", texture = "default_fence_junglewood.png",
material = "default:junglewood", material = "default:junglewood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
@ -1737,7 +1737,7 @@ default.register_fence("default:fence_junglewood", {
default.register_fence("default:fence_pine_wood", { default.register_fence("default:fence_pine_wood", {
description = "Pine Fence", description = "Pine Fence",
texture = "default_pine_wood.png", texture = "default_fence_pine_wood.png",
material = "default:pine_wood", material = "default:pine_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
@ -1745,7 +1745,7 @@ default.register_fence("default:fence_pine_wood", {
default.register_fence("default:fence_aspen_wood", { default.register_fence("default:fence_aspen_wood", {
description = "Aspen Fence", description = "Aspen Fence",
texture = "default_aspen_wood.png", texture = "default_fence_aspen_wood.png",
material = "default:aspen_wood", material = "default:aspen_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B