Skip to content

Commit 7e1b07f

Browse files
TumeniNodesparamat
authored andcommitted
Add fence rails
Dedicated fence rail textures coming in a follow-up PR.
1 parent ecea536 commit 7e1b07f

File tree

5 files changed

+178
-12
lines changed

5 files changed

+178
-12
lines changed

mods/default/crafting.lua

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,37 @@ minetest.register_craft({
10151015
})
10161016

10171017

1018+
minetest.register_craft({
1019+
type = "fuel",
1020+
recipe = "default:fence_rail_aspen_wood",
1021+
burntime = 3,
1022+
})
1023+
1024+
minetest.register_craft({
1025+
type = "fuel",
1026+
recipe = "default:fence_rail_pine_wood",
1027+
burntime = 4,
1028+
})
1029+
1030+
minetest.register_craft({
1031+
type = "fuel",
1032+
recipe = "default:fence_rail_wood",
1033+
burntime = 5,
1034+
})
1035+
1036+
minetest.register_craft({
1037+
type = "fuel",
1038+
recipe = "default:fence_rail_acacia_wood",
1039+
burntime = 6,
1040+
})
1041+
1042+
minetest.register_craft({
1043+
type = "fuel",
1044+
recipe = "default:fence_rail_junglewood",
1045+
burntime = 7,
1046+
})
1047+
1048+
10181049
minetest.register_craft({
10191050
type = "fuel",
10201051
recipe = "default:bush_stem",

mods/default/functions.lua

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ function default.register_fence(name, def)
303303
connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16},
304304
{1/8,-5/16,-1/16,1/2,-3/16,1/16}},
305305
},
306-
connects_to = {"group:fence", "group:wood", "group:tree"},
306+
connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"},
307307
inventory_image = fence_texture,
308308
wield_image = fence_texture,
309309
tiles = {def.texture},
@@ -327,6 +327,71 @@ function default.register_fence(name, def)
327327
end
328328

329329

330+
--
331+
-- Fence rail registration helper
332+
--
333+
334+
function default.register_fence_rail(name, def)
335+
minetest.register_craft({
336+
output = name .. " 16",
337+
recipe = {
338+
{ def.material, def.material },
339+
{ "", ""},
340+
{ def.material, def.material },
341+
}
342+
})
343+
344+
local fence_rail_texture = "default_fence_rail_overlay.png^" .. def.texture ..
345+
"^default_fence_rail_overlay.png^[makealpha:255,126,126"
346+
-- Allow almost everything to be overridden
347+
local default_fields = {
348+
paramtype = "light",
349+
drawtype = "nodebox",
350+
node_box = {
351+
type = "connected",
352+
fixed = {
353+
{-1/16, 3/16, -1/16, 1/16, 5/16, 1/16},
354+
{-1/16, -3/16, -1/16, 1/16, -5/16, 1/16}
355+
},
356+
-- connect_top =
357+
-- connect_bottom =
358+
connect_front = {
359+
{-1/16, 3/16, -1/2, 1/16, 5/16, -1/16},
360+
{-1/16, -5/16, -1/2, 1/16, -3/16, -1/16}},
361+
connect_left = {
362+
{-1/2, 3/16, -1/16, -1/16, 5/16, 1/16},
363+
{-1/2, -5/16, -1/16, -1/16, -3/16, 1/16}},
364+
connect_back = {
365+
{-1/16, 3/16, 1/16, 1/16, 5/16, 1/2},
366+
{-1/16, -5/16, 1/16, 1/16, -3/16, 1/2}},
367+
connect_right = {
368+
{1/16, 3/16, -1/16, 1/2, 5/16, 1/16},
369+
{1/16, -5/16, -1/16, 1/2, -3/16, 1/16}},
370+
},
371+
connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"},
372+
inventory_image = fence_rail_texture,
373+
wield_image = fence_rail_texture,
374+
tiles = {def.texture},
375+
sunlight_propagates = true,
376+
is_ground_content = false,
377+
groups = {},
378+
}
379+
for k, v in pairs(default_fields) do
380+
if def[k] == nil then
381+
def[k] = v
382+
end
383+
end
384+
385+
-- Always add to the fence group, even if no group provided
386+
def.groups.fence = 1
387+
388+
def.texture = nil
389+
def.material = nil
390+
391+
minetest.register_node(name, def)
392+
end
393+
394+
330395
--
331396
-- Leafdecay
332397
--

mods/default/nodes.lua

Lines changed: 80 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2590,8 +2590,10 @@ minetest.register_node("default:ladder_steel", {
25902590
default.register_fence("default:fence_wood", {
25912591
description = "Apple Wood Fence",
25922592
texture = "default_fence_wood.png",
2593-
inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2594-
wield_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2593+
inventory_image = "default_fence_overlay.png^default_wood.png^" ..
2594+
"default_fence_overlay.png^[makealpha:255,126,126",
2595+
wield_image = "default_fence_overlay.png^default_wood.png^" ..
2596+
"default_fence_overlay.png^[makealpha:255,126,126",
25952597
material = "default:wood",
25962598
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
25972599
sounds = default.node_sound_wood_defaults()
@@ -2600,8 +2602,10 @@ default.register_fence("default:fence_wood", {
26002602
default.register_fence("default:fence_acacia_wood", {
26012603
description = "Acacia Wood Fence",
26022604
texture = "default_fence_acacia_wood.png",
2603-
inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2604-
wield_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2605+
inventory_image = "default_fence_overlay.png^default_acacia_wood.png^" ..
2606+
"default_fence_overlay.png^[makealpha:255,126,126",
2607+
wield_image = "default_fence_overlay.png^default_acacia_wood.png^" ..
2608+
"default_fence_overlay.png^[makealpha:255,126,126",
26052609
material = "default:acacia_wood",
26062610
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
26072611
sounds = default.node_sound_wood_defaults()
@@ -2610,8 +2614,10 @@ default.register_fence("default:fence_acacia_wood", {
26102614
default.register_fence("default:fence_junglewood", {
26112615
description = "Jungle Wood Fence",
26122616
texture = "default_fence_junglewood.png",
2613-
inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
2614-
wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
2617+
inventory_image = "default_fence_overlay.png^default_junglewood.png^" ..
2618+
"default_fence_overlay.png^[makealpha:255,126,126",
2619+
wield_image = "default_fence_overlay.png^default_junglewood.png^" ..
2620+
"default_fence_overlay.png^[makealpha:255,126,126",
26152621
material = "default:junglewood",
26162622
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
26172623
sounds = default.node_sound_wood_defaults()
@@ -2620,8 +2626,10 @@ default.register_fence("default:fence_junglewood", {
26202626
default.register_fence("default:fence_pine_wood", {
26212627
description = "Pine Wood Fence",
26222628
texture = "default_fence_pine_wood.png",
2623-
inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2624-
wield_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2629+
inventory_image = "default_fence_overlay.png^default_pine_wood.png^" ..
2630+
"default_fence_overlay.png^[makealpha:255,126,126",
2631+
wield_image = "default_fence_overlay.png^default_pine_wood.png^" ..
2632+
"default_fence_overlay.png^[makealpha:255,126,126",
26252633
material = "default:pine_wood",
26262634
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
26272635
sounds = default.node_sound_wood_defaults()
@@ -2630,13 +2638,75 @@ default.register_fence("default:fence_pine_wood", {
26302638
default.register_fence("default:fence_aspen_wood", {
26312639
description = "Aspen Wood Fence",
26322640
texture = "default_fence_aspen_wood.png",
2633-
inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2634-
wield_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
2641+
inventory_image = "default_fence_overlay.png^default_aspen_wood.png^" ..
2642+
"default_fence_overlay.png^[makealpha:255,126,126",
2643+
wield_image = "default_fence_overlay.png^default_aspen_wood.png^" ..
2644+
"default_fence_overlay.png^[makealpha:255,126,126",
26352645
material = "default:aspen_wood",
26362646
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
26372647
sounds = default.node_sound_wood_defaults()
26382648
})
26392649

2650+
default.register_fence_rail("default:fence_rail_wood", {
2651+
description = "Apple Wood Fence Rail",
2652+
texture = "default_wood.png",
2653+
inventory_image = "default_fence_rail_overlay.png^default_wood.png^" ..
2654+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2655+
wield_image = "default_fence_rail_overlay.png^default_wood.png^" ..
2656+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2657+
material = "default:wood",
2658+
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
2659+
sounds = default.node_sound_wood_defaults()
2660+
})
2661+
2662+
default.register_fence_rail("default:fence_rail_acacia_wood", {
2663+
description = "Acacia Wood Fence Rail",
2664+
texture = "default_acacia_wood.png",
2665+
inventory_image = "default_fence_rail_overlay.png^default_acacia_wood.png^" ..
2666+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2667+
wield_image = "default_fence_rail_overlay.png^default_acacia_wood.png^" ..
2668+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2669+
material = "default:acacia_wood",
2670+
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
2671+
sounds = default.node_sound_wood_defaults()
2672+
})
2673+
2674+
default.register_fence_rail("default:fence_rail_junglewood", {
2675+
description = "Jungle Wood Fence Rail",
2676+
texture = "default_junglewood.png",
2677+
inventory_image = "default_fence_rail_overlay.png^default_junglewood.png^" ..
2678+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2679+
wield_image = "default_fence_rail_overlay.png^default_junglewood.png^" ..
2680+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2681+
material = "default:junglewood",
2682+
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
2683+
sounds = default.node_sound_wood_defaults()
2684+
})
2685+
2686+
default.register_fence_rail("default:fence_rail_pine_wood", {
2687+
description = "Pine Wood Fence Rail",
2688+
texture = "default_pine_wood.png",
2689+
inventory_image = "default_fence_rail_overlay.png^default_pine_wood.png^" ..
2690+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2691+
wield_image = "default_fence_rail_overlay.png^default_pine_wood.png^" ..
2692+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2693+
material = "default:pine_wood",
2694+
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
2695+
sounds = default.node_sound_wood_defaults()
2696+
})
2697+
2698+
default.register_fence_rail("default:fence_rail_aspen_wood", {
2699+
description = "Aspen Wood Fence Rail",
2700+
texture = "default_aspen_wood.png",
2701+
inventory_image = "default_fence_rail_overlay.png^default_aspen_wood.png^" ..
2702+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2703+
wield_image = "default_fence_rail_overlay.png^default_aspen_wood.png^" ..
2704+
"default_fence_rail_overlay.png^[makealpha:255,126,126",
2705+
material = "default:aspen_wood",
2706+
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 2},
2707+
sounds = default.node_sound_wood_defaults()
2708+
})
2709+
26402710
minetest.register_node("default:glass", {
26412711
description = "Glass",
26422712
drawtype = "glasslike_framed_optional",
Loading

mods/walls/init.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ walls.register = function(wall_name, wall_desc, wall_texture, wall_mat, wall_sou
1414
connect_back = {{-3/16, -1/2, 1/4, 3/16, 3/8, 1/2}},
1515
connect_right = {{ 1/4, -1/2, -3/16, 1/2, 3/8, 3/16}},
1616
},
17-
connects_to = { "group:wall", "group:stone" },
17+
connects_to = { "group:wall", "group:stone", "group:fence" },
1818
paramtype = "light",
1919
is_ground_content = false,
2020
tiles = { wall_texture, },

0 commit comments

Comments
 (0)