From 9552c4472eeeff089556cece506781c18cad1c18 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Mon, 27 Feb 2017 22:13:28 +0100 Subject: [PATCH] Add hardness support for fences and fence gates --- mods/ITEMS/mcl_fences/API.md | 6 ++++++ mods/ITEMS/mcl_fences/init.lua | 20 +++++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/mods/ITEMS/mcl_fences/API.md b/mods/ITEMS/mcl_fences/API.md index 5a1f66a50..39ba314f2 100644 --- a/mods/ITEMS/mcl_fences/API.md +++ b/mods/ITEMS/mcl_fences/API.md @@ -10,6 +10,8 @@ Adds a fence without crafting recipe. A single node is created. * `fence_name`: User-visible name (`description`) * `texture`: Texture to apply on the fence (all sides) * `groups`: Table of groups to which the fence belongs to +* `hardness`: Hardness (if unsure, pick the hardness of the material node) +* `blast_resistance`: Blast resistance (if unsure, pick the blast resistance of the material node) * `connects_to`: Table of nodes (itemstrings) to which the fence will connect to. Use `group:` for all members of the group `` * `sounds`: Node sound table for the fence @@ -26,6 +28,8 @@ Adds a fence gate without crafting recipe. This will create 2 nodes. * `fence_gate_name`: User-visible name (`description`) * `texture`: Texture to apply on the fence gate (all sides) * `groups`: Table of groups to which the fence gate belongs to +* `hardness`: Hardness (if unsure, pick the hardness of the material node) +* `blast_resistance`: Blast resistance (if unsure, pick the blast resistance of the material node) * `sounds`: Node sound table for the fence gate * `sound_open`: Sound to play when opening fence gate (optional, default is wooden sound) * `sound_close`: Sound to play when closing fence gate (optional, default is wooden sound) @@ -49,6 +53,8 @@ This will register 3 nodes in total without crafting recipes. * `fence_gate_name`: User-visible name (`description`) of the fence gate * `texture`: Texture to apply on the fence and fence gate (all sides) * `groups`: Table of groups to which the fence and fence gate belong to +* `hardness`: Hardness (if unsure, pick the hardness of the material node) +* `blast_resistance`: Blast resistance (if unsure, pick the blast resistance of the material node) * `connects_to`: Table of nodes (itemstrings) to which the fence will connect to. Use `group:` for all members of the group `` * `sounds`: Node sound table for the fence and the fence gate * `sound_open`: Sound to play when opening fence gate (optional, default is wooden sound) diff --git a/mods/ITEMS/mcl_fences/init.lua b/mods/ITEMS/mcl_fences/init.lua index 5e290818c..f2236fbc2 100644 --- a/mods/ITEMS/mcl_fences/init.lua +++ b/mods/ITEMS/mcl_fences/init.lua @@ -20,7 +20,7 @@ local cz2 = {-2/16, -1/2+6/16, 2/16, 2/16, 1, 1/2} --unten(quer) z mcl_fences = {} -mcl_fences.register_fence = function(id, fence_name, texture, groups, connects_to, sounds) +mcl_fences.register_fence = function(id, fence_name, texture, groups, hardness, blast_resistance, connects_to, sounds) if groups == nil then groups = {} end groups.fence = 1 groups.deco_block = 1 @@ -59,12 +59,14 @@ mcl_fences.register_fence = function(id, fence_name, texture, groups, connects_t connect_right = {cx2}, }, sounds = sounds, + _mcl_blast_resistance = blast_resistance, + _mcl_hardness = hardness, }) return fence_id end -mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) +mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, hardness, blast_resistance, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) local meta2 local state2 = 0 @@ -149,6 +151,8 @@ mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, end), }}, sounds = sounds, + _mcl_blast_resistance = blast_resistance, + _mcl_hardness = hardness, }) groups.mesecon_effector_on = nil @@ -205,14 +209,16 @@ mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, punch_gate(pos, node) end, sounds = sounds, + _mcl_blast_resistance = blast_resistance, + _mcl_hardness = hardness, }) return gate_id, open_gate_id end -mcl_fences.register_fence_and_fence_gate = function(id, fence_name, fence_gate_name, texture, groups, connects_to, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) - local fence_id = mcl_fences.register_fence(id, fence_name, texture, groups, connects_to, sounds) - local gate_id, open_gate_id = mcl_fences.register_fence_gate(id, fence_gate_name, texture, groups, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) +mcl_fences.register_fence_and_fence_gate = function(id, fence_name, fence_gate_name, texture, groups, hardness, blast_reistance, connects_to, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) + local fence_id = mcl_fences.register_fence(id, fence_name, texture, groups, hardness, blast_resistance, connects_to, sounds) + local gate_id, open_gate_id = mcl_fences.register_fence_gate(id, fence_gate_name, texture, groups, hardness, blast_resistance, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) return fence_id, gate_id, open_gate_id end @@ -239,7 +245,7 @@ for w=1, #woods do id = wood[1].."_fence" id_gate = wood[1].."_fence_gate" end - mcl_fences.register_fence_and_fence_gate(id, wood[2], wood[3], wood[4], wood_groups, wood_connect, wood_sounds) + mcl_fences.register_fence_and_fence_gate(id, wood[2], wood[3], wood[4], wood_groups, 2, 15, wood_connect, wood_sounds) minetest.register_craft({ output = 'mcl_fences:'..id..' 3', @@ -259,7 +265,7 @@ end -- Nether Brick Fence (without fence gate!) -mcl_fences.register_fence("nether_brick_fence", "Nether Brick Fence", "mcl_nether_nether_brick.png", {pickaxey=1, deco_block=1, fence_nether_brick=1}, {"group:fence_nether_brick"}, mcl_sounds.node_sound_stone_defaults()) +mcl_fences.register_fence("nether_brick_fence", "Nether Brick Fence", "mcl_nether_nether_brick.png", {pickaxey=1, deco_block=1, fence_nether_brick=1}, 2, 30, {"group:fence_nether_brick"}, mcl_sounds.node_sound_stone_defaults()) minetest.register_craft({ output = 'mcl_fences:nether_brick_fence 6',