3 Mods hinzugefügt, Fehlende Nahrungspunkteangaben im Inventar ergänzt, falsche Nahrungspunkte berichtigt
This commit is contained in:
parent
763ba03e6c
commit
23dda4593a
151 changed files with 6445 additions and 109 deletions
88
mods/ropes/bridge.lua
Normal file
88
mods/ropes/bridge.lua
Normal file
|
@ -0,0 +1,88 @@
|
|||
local S = ropes.S
|
||||
|
||||
if ropes.bridges_enabled then
|
||||
|
||||
local bridge_on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Shall place item and return the leftover itemstack.
|
||||
-- The placer may be any ObjectRef or nil.
|
||||
-- default: minetest.item_place
|
||||
if placer == nil then
|
||||
return minetest.item_place(itemstack, placer, pointed_thing)
|
||||
end
|
||||
|
||||
local above = pointed_thing.above
|
||||
local under = pointed_thing.under
|
||||
|
||||
if above.x == under.x and above.z == under.z and above.y > under.y then
|
||||
-- we're aimed downward at a buildable node from above.
|
||||
-- determine the direction the placer lies relative to this node.
|
||||
local new_under = vector.new(under)
|
||||
local placer_pos = placer:get_pos()
|
||||
local diff_x = placer_pos.x - under.x
|
||||
local diff_z = placer_pos.z - under.z
|
||||
if math.abs(diff_x) > math.abs(diff_z) then
|
||||
-- placer is displaced along the X axis relative to the target
|
||||
if diff_x > 0 then
|
||||
new_under.x = under.x - 1
|
||||
else
|
||||
new_under.x = under.x + 1
|
||||
end
|
||||
else
|
||||
-- placer is displaced along the Z axis relative to the target
|
||||
if diff_z > 0 then
|
||||
new_under.z = under.z - 1
|
||||
else
|
||||
new_under.z = under.z + 1
|
||||
end
|
||||
end
|
||||
if minetest.registered_nodes[minetest.get_node(new_under).name].buildable_to then
|
||||
local new_pointed_thing = {type="node", under=new_under, above={x=new_under.x, y=new_under.y+1, z=new_under.z}}
|
||||
return minetest.item_place(itemstack, placer, new_pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
return minetest.item_place(itemstack, placer, pointed_thing)
|
||||
end
|
||||
|
||||
minetest.register_node("ropes:wood_bridge", {
|
||||
description = S("Wooden Bridge"),
|
||||
_doc_items_longdesc = ropes.doc.wooden_bridge_longdesc,
|
||||
_doc_items_usagehelp = ropes.doc.wooden_bridge_usagehelp,
|
||||
tiles = {
|
||||
"default_wood.png", "default_wood.png",
|
||||
"default_wood.png^[transformR270", "default_wood.png^[transformR90",
|
||||
"default_wood.png^[transformR270", "default_wood.png^[transformR90",
|
||||
},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, flammable = 2, oddly_breakable_by_hand = 1, flow_through = 1, fence = 1, wall = 1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- Platform
|
||||
{-0.375, -0.5, -0.5, 0.375, -0.375, -0.4375}, -- x beam4
|
||||
{-0.375, -0.5, 0.4375, 0.375, -0.375, 0.5}, -- x beam3
|
||||
{0.375, -0.5, -0.4375, 0.5, -0.375, 0.4375}, -- z beam2
|
||||
{-0.5, -0.5, -0.4375, -0.375, -0.375, 0.4375}, -- z beam1
|
||||
{0.375, -0.5, -0.5, 0.5, 0.375, -0.4375}, -- upright4
|
||||
{0.375, -0.5, 0.4375, 0.5, 0.375, 0.5}, -- upright3
|
||||
{-0.5, -0.5, -0.5, -0.375, 0.375, -0.4375}, -- upright2
|
||||
{-0.5, -0.5, 0.4375, -0.375, 0.375, 0.5}, -- upright1
|
||||
}
|
||||
},
|
||||
on_place = bridge_on_place,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "ropes:wood_bridge 5",
|
||||
recipe = {
|
||||
{"group:stick", "stairs:slab_wood", "group:stick"},
|
||||
{"group:stick", "", "group:stick"},
|
||||
{"group:stick", "group:stick", "group:stick"},
|
||||
}
|
||||
})
|
||||
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue