Rename fences mod to “mcl_fences”

This commit is contained in:
Wuzzy 2017-01-17 03:03:43 +01:00
parent 322d2eda4c
commit e3600d77c4
5 changed files with 13 additions and 14 deletions

View file

@ -0,0 +1,27 @@
Minetest mod "Fences"
=======================
version: 1.0
License of source code and textures:
------------------------------------
Written 2013 by BlockMen
This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it
and/or modify it under the terms of the Do What The Fuck You Want
To Public License, Version 2, as published by Sam Hocevar. See
http://sam.zoy.org/wtfpl/COPYING for more details.
--USING the mod--
This mod "overrides" the recipe for the default fence, so if you want craft a fance, it crafts THIS fence.
If you want replace already placed default fences open the "init.lua" (in this directory) and change
the first line to "local override_original = true". Then all placed default fences will be replaced with
this fence.
It is not possible to jump over the Fence or the closed Fencegate. Only exception is when you "sneak" and "jump".

View file

@ -0,0 +1 @@
default

197
mods/mcl_fences/init.lua Normal file
View file

@ -0,0 +1,197 @@
local init = os.clock()
-- Node box
local p = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}
local x1 = {-2/16, 1/2-4/16, 1/16, -1/2, 1/2-1/16, -1/16} --oben(quer) -x
local x12 = {-2/16, -1/2+6/16, 1/16, -1/2, -1/2+9/16, -1/16} --unten(quer) -x
local x2 = {2/16, 1/2-4/16, -1/16, 1/2, 1/2-1/16, 1/16} --oben(quer) x
local x22 = {2/16, -1/2+6/16, -1/16, 1/2, -1/2+9/16, 1/16} --unten(quer) x
local z1 = {1/16, 1/2-4/16, -2/16, -1/16, 1/2-1/16, -1/2} --oben(quer) -z
local z12 = {1/16, -1/2+6/16, -2/16, -1/16, -1/2+9/16, -1/2} --unten(quer) -z
local z2 = {-1/16, 1/2-4/16, 2/16, 1/16, 1/2-1/16, 1/2} --oben(quer) z
local z22 = {-1/16, -1/2+6/16, 2/16, 1/16, -1/2+9/16, 1/2} --unten(quer) z
-- Collision box
local cp = {-2/16, -1/2, -2/16, 2/16, 1, 2/16}
local cx1 = {-2/16, -1/2+6/16, 2/16, -1/2, 1, -2/16} --unten(quer) -x
local cx2 = {2/16, -1/2+6/16, -2/16, 1/2, 1, 2/16} --unten(quer) x
local cz1 = {2/16, -1/2+6/16, -2/16, -2/16, 1, -1/2} --unten(quer) -z
local cz2 = {-2/16, -1/2+6/16, 2/16, 2/16, 1, 1/2} --unten(quer) z
minetest.register_node("mcl_fences:fence", {
description = "Oak Fence",
tiles = {"default_wood.png"},
inventory_image = "default_fence.png",
wield_image = "default_fence.png",
paramtype = "light",
is_ground_content = false,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fence=1},
stack_max = 64,
sunlight_propagates = true,
drawtype = "nodebox",
connect_sides = { "front", "back", "left", "right" },
connects_to = { "group:solid", "group:fence" },
node_box = {
type = "connected",
fixed = {p},
connect_front = {z1,z12},
connect_back = {z2,z22,},
connect_left = {x1,x12},
connect_right = {x2,x22},
},
collision_box = {
type = "connected",
fixed = {cp},
connect_front = {cz1},
connect_back = {cz2,},
connect_left = {cx1},
connect_right = {cx2},
},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
output = 'mcl_fences:fence 3',
recipe = {
{'default:wood', 'default:stick', 'default:wood'},
{'default:wood', 'default:stick', 'default:wood'},
}
})
minetest.register_craft({
output = 'mcl_fences:fence_gate',
recipe = {
{'default:stick', 'default:wood', 'default:stick'},
{'default:stick', 'default:wood', 'default:stick'},
}
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_fences:fence",
burntime = 15,
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_fences:fence_gate",
burntime = 15,
})
local meta2
local state2 = 0
local function update_gate(pos, node)
minetest.set_node(pos, node)
end
local function punch_gate(pos, node)
meta2 = minetest.get_meta(pos)
state2 = meta2:get_int("state")
local tmp_node2
if state2 == 1 then
state2 = 0
minetest.sound_play("door_close", {gain = 0.3, max_hear_distance = 10})
tmp_node2 = {name="mcl_fences:fence_gate", param1=node.param1, param2=node.param2}
else
state2 = 1
minetest.sound_play("door_open", {gain = 0.3, max_hear_distance = 10})
tmp_node2 = {name="mcl_fences:fence_gate_open", param1=node.param1, param2=node.param2}
end
update_gate(pos, tmp_node2)
meta2:set_int("state", state2)
end
minetest.register_node("mcl_fences:fence_gate_open", {
tiles = {"default_wood.png"},
inventory_image = "default_fence.png",
wield_image = "default_fence.png",
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
sunlight_propagates = true,
walkable = true,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fence=1,not_in_inventory=1,mesecon_effector_on=1},
drop = 'mcl_fences:fence_gate',
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/16}, --links abschluss
{1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --rechts abschluss
{-1/2, 1/2-4/16, 1/16, -1/2+2/16, 1/2-1/16, 1/2-2/16}, --oben-links(quer) x
{-1/2, -1/2+6/16, 1/16, -1/2+2/16, -1/2+9/16, 1/2-2/16}, --unten-links(quer) x
{1/2-2/16, 1/2-4/16, 1/16, 1/2, 1/2-1/16, 1/2}, --oben-rechts(quer) x
{1/2-2/16, -1/2+6/16, 1/16, 1/2, -1/2+9/16, 1/2}, --unten-rechts(quer) x
{-1/2, -1/2+6/16, 6/16, -1/2+2/16, 1/2-1/16, 1/2}, --mitte links
{1/2-2/16, 1/2-4/16, 1/2, 1/2, -1/2+9/16, 6/16}, --mitte rechts
}
},
selection_box = {
type = "fixed",
fixed = {
{-1/2, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --gate
}
},
--on_punch = function(pos, node, puncher)
on_rightclick = function(pos, node, clicker)
punch_gate(pos, node)
end,
mesecons = {effector = {
action_on = (function(pos, node)
punch_gate(pos, node)
end),
}},
})
minetest.register_node("mcl_fences:fence_gate", {
description = "Oak Fence Gate",
tiles = {"default_wood.png"},
inventory_image = "mcl_fences_fence_gate.png",
wield_image = "mcl_fences_fence_gate.png",
paramtype = "light",
is_ground_content = false,
stack_max = 16,
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = true,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,mesecon_effector_on=1,fence=1},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/16}, --links abschluss
{1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --rechts abschluss
{-2/16, -1/2+6/16, -1/16, 0, 1/2-1/16, 1/16}, --mitte links
{0, -1/2+6/16, -1/16, 2/16, 1/2-1/16, 1/16}, --mitte rechts
{-2/16, 1/2-4/16, 1/16, -1/2, 1/2-1/16, -1/16}, --oben(quer) -z
{-2/16, -1/2+6/16, 1/16, -1/2, -1/2+9/16, -1/16}, --unten(quer) -z
{2/16, 1/2-4/16, -1/16, 1/2, 1/2-1/16, 1/16}, --oben(quer) z
{2/16, -1/2+6/16, -1/16, 1/2, -1/2+9/16, 1/16}, --unten(quer) z
p1,p2,p3,p4,p5,
bx1,bx11,bx2,bx21,
}
},
selection_box = {
type = "fixed",
fixed = {
{-1/2, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, --gate
}
},
on_construct = function(pos)
me2 = minetest.get_node(pos)
meta2 = minetest.get_meta(pos)
meta2:set_int("state", 0)
state2 = 0
end,
mesecons = {effector = {
action_on = (function(pos, node)
punch_gate(pos, node)
end),
}},
on_rightclick = function(pos, node, clicker)
punch_gate(pos, node)
end,
})
local time_to_load= os.clock() - init
print(string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load))

1
mods/mcl_fences/mod.conf Normal file
View file

@ -0,0 +1 @@
name = mcl_fences

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B