Add Cobweb and allow picking water from cauldron

axinite
jp 2015-07-05 18:25:53 +02:00
parent 7c15c0b75e
commit 3542c9e814
6 changed files with 90 additions and 37 deletions

View File

@ -1,8 +1,8 @@
minetest.register_craft({ minetest.register_craft({
output = "xdecor:baricade", output = "xdecor:baricade",
recipe = { recipe = {
{"group:stick", "default:steel_ingot", "group:stick"}, {"group:stick", "", "group:stick"},
{"", "group:stick", ""}, {"", "default:steel_ingot", ""},
{"group:stick", "", "group:stick"} {"group:stick", "", "group:stick"}
} }
}) })
@ -23,6 +23,15 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = "xdecor:cabinet",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"doors:trapdoor", "", "doors:trapdoor"},
{"group:wood", "group:wood", "group:wood"}
}
})
minetest.register_craft({ minetest.register_craft({
output = "xdecor:cabinet_half 2", output = "xdecor:cabinet_half 2",
recipe = { recipe = {
@ -37,15 +46,6 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = "xdecor:cabinet",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"doors:trapdoor", "", "doors:trapdoor"},
{"group:wood", "group:wood", "group:wood"}
}
})
minetest.register_craft({ minetest.register_craft({
output = "xdecor:cardboard_box", output = "xdecor:cardboard_box",
recipe = { recipe = {
@ -87,6 +87,15 @@ minetest.register_craft({
{"default:stone", "default:coalblock"} {"default:stone", "default:coalblock"}
} }
}) })
minetest.register_craft({
output = "xdecor:cobweb",
recipe = {
{"farming:cotton", "", "farming:cotton"},
{"", "farming:cotton", ""},
{"farming:cotton", "", "farming:cotton"}
}
})
minetest.register_craft({ minetest.register_craft({
output = "xdecor:empty_shelf", output = "xdecor:empty_shelf",
@ -146,9 +155,9 @@ minetest.register_craftitem("xdecor:hammer", {
minetest.register_craft({ minetest.register_craft({
output = "xdecor:hive", output = "xdecor:hive",
recipe = { recipe = {
{"group:stick", "group:stick", "group:stick"},
{"default:paper", "default:paper", "default:paper"}, {"default:paper", "default:paper", "default:paper"},
{"default:paper", "", "default:paper"}, {"group:stick", "group:stick", "group:stick"}
{"default:paper", "default:paper", "default:paper"}
} }
}) })

View File

@ -1,3 +1,4 @@
default default
doors doors
xpanes xpanes
bucket?

View File

@ -41,8 +41,8 @@ local remove_item = function(pos, node)
if objs then if objs then
for _, obj in ipairs(objs) do for _, obj in ipairs(objs) do
if obj and obj:get_luaentity() if obj and obj:get_luaentity() and
and obj:get_luaentity().name == "xdecor:f_item" then obj:get_luaentity().name == "xdecor:f_item" then
obj:remove() obj:remove()
end end
end end

View File

@ -44,7 +44,7 @@ xdecor.register("cabinet", {
tiles = { tiles = {
"default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png",
"default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png",
"default_wood.png","xdecor_cabinet_front.png" "default_wood.png", "xdecor_cabinet_front.png"
} }
}) })
@ -110,6 +110,30 @@ xdecor.register("cauldron", {
} }
}) })
if minetest.get_modpath("bucket") then
local original_bucket_on_use = minetest.registered_items["bucket:bucket_empty"].on_use
minetest.override_item("bucket:bucket_empty", {
on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory()
if pointed_thing.type == "node" and
minetest.get_node(pointed_thing.under).name == "xdecor:cauldron" then
if inv:room_for_item("main", "bucket:bucket_water 1") then
itemstack:take_item()
inv:add_item("main", "bucket:bucket_water 1")
else
minetest.chat_send_player(user:get_player_name(),
"No room in your inventory to add a filled bucket!")
end
return itemstack
else if original_bucket_on_use then
return original_bucket_on_use(itemstack, user, pointed_thing)
else return end
end
end
})
end
xdecor.register("chair", { xdecor.register("chair", {
description = "Chair", description = "Chair",
tiles = {"xdecor_wood.png"}, tiles = {"xdecor_wood.png"},
@ -146,7 +170,24 @@ xdecor.register("coalstone_tile", {
sounds = xdecor.stone sounds = xdecor.stone
}) })
local colors = {"red"} -- Add more curtains colors simply here xdecor.register("cobweb", {
description = "Cobweb",
drawtype = "plantlike",
tiles = {"xdecor_cobweb.png"},
inventory_image = "xdecor_cobweb.png",
liquid_viscosity = 8,
liquidtype = "source",
liquid_alternative_flowing = "xdecor:cobweb",
liquid_alternative_source = "xdecor:cobweb",
liquid_renewable = false,
liquid_range = 0,
walkable = false,
selection_box = { type = "regular" },
groups = {dig_immediate=3, liquid=3, flammable=3},
sounds = xdecor.leaves
})
local colors = {"red"} -- Add more curtains colors simply here.
for _, c in ipairs(colors) do for _, c in ipairs(colors) do
xdecor.register("curtain_"..c, { xdecor.register("curtain_"..c, {
@ -161,8 +202,7 @@ for _, c in ipairs(colors) do
groups = {dig_immediate=3, flammable=3}, groups = {dig_immediate=3, flammable=3},
selection_box = {type="wallmounted"}, selection_box = {type="wallmounted"},
on_rightclick = function(pos, node, clicker, itemstack) on_rightclick = function(pos, node, clicker, itemstack)
local fdir = node.param2 minetest.set_node(pos, {name="xdecor:curtain_open_"..c, param2=node.param2})
minetest.set_node(pos, { name="xdecor:curtain_open_"..c, param2=fdir })
end end
}) })
@ -176,8 +216,7 @@ for _, c in ipairs(colors) do
selection_box = {type="wallmounted"}, selection_box = {type="wallmounted"},
drop = "xdecor:curtain_"..c, drop = "xdecor:curtain_"..c,
on_rightclick = function(pos, node, clicker, itemstack) on_rightclick = function(pos, node, clicker, itemstack)
local fdir = node.param2 minetest.set_node(pos, {name="xdecor:curtain_"..c, param2=node.param2})
minetest.set_node(pos, { name="xdecor:curtain_"..c, param2=fdir })
end end
}) })
@ -194,7 +233,7 @@ end
xdecor.register("cushion", { xdecor.register("cushion", {
description = "Cushion", description = "Cushion",
tiles = {"xdecor_cushion.png"}, tiles = {"xdecor_cushion.png"},
groups = {snappy=3, flammable=3, fall_damage_add_percent = -50}, groups = {snappy=3, flammable=3, fall_damage_add_percent=-50},
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
node_box = xdecor.nodebox.slab_y(-0.5, 0.5) node_box = xdecor.nodebox.slab_y(-0.5, 0.5)
}) })
@ -209,7 +248,7 @@ for _, d in pairs(door_types) do
groups = {choppy=3, flammable=2, door=1}, groups = {choppy=3, flammable=2, door=1},
tiles_bottom = {"xdecor_"..d.."_door_b.png", "xdecor_brown.png"}, tiles_bottom = {"xdecor_"..d.."_door_b.png", "xdecor_brown.png"},
tiles_top = {"xdecor_"..d.."_door_a.png", "xdecor_brown.png"}, tiles_top = {"xdecor_"..d.."_door_a.png", "xdecor_brown.png"},
sounds = xdecor.wood, sounds = xdecor.wood
}) })
end end
@ -286,12 +325,14 @@ minetest.register_tool("xdecor:flint_steel", {
} }
}, },
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" if pointed_thing.type == "node" and
and minetest.get_node(pointed_thing.above).name == "air" then minetest.get_node(pointed_thing.above).name == "air" then
if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then if not minetest.is_protected(pointed_thing.above,
user:get_player_name()) then
minetest.set_node(pointed_thing.above, {name="xdecor:fire"}) minetest.set_node(pointed_thing.above, {name="xdecor:fire"})
else else
minetest.chat_send_player(user:get_player_name(), "This area is protected!") minetest.chat_send_player(user:get_player_name(),
"This area is protected!")
end end
else else
return return
@ -309,7 +350,7 @@ xdecor.register("ivy", {
climbable = true, climbable = true,
groups = {dig_immediate=3, flammable=2, plant=1}, groups = {dig_immediate=3, flammable=2, plant=1},
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
selection_box = { type="wallmounted" }, selection_box = {type="wallmounted"},
legacy_wallmounted = true, legacy_wallmounted = true,
tiles = {"xdecor_ivy.png"}, tiles = {"xdecor_ivy.png"},
inventory_image = "xdecor_ivy.png", inventory_image = "xdecor_ivy.png",
@ -352,8 +393,10 @@ for _, f in ipairs(flowerstype) do
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless", output = "xdecor:potted_"..f.." 2", output = "xdecor:potted_"..f.." 2",
recipe = { "flowers:"..f, "xdecor:plant_pot" } recipe = {
{"flowers:"..f, "xdecor:plant_pot"}
}
}) })
end end
@ -493,7 +536,7 @@ xdecor.register("tatami", {
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}
} }
} }
}) })

BIN
textures/xdecor_cobweb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

View File

@ -80,8 +80,8 @@ local function xfields(pos, formname, fields, sender)
local v = material[m] local v = material[m]
local w = def[n] local w = def[n]
if (inputstack:get_name() == "default:"..v) if (inputstack:get_name() == "default:"..v) and
and (outputstack:get_count() < 99) and fields[w[1]] then (outputstack:get_count() < 99) and fields[w[1]] then
shape = "xdecor:"..w[1].."_"..v shape = "xdecor:"..w[1].."_"..v
anz = w[2] anz = w[2]
get = shape.." "..anz get = shape.." "..anz
@ -98,8 +98,8 @@ local function xdig(pos, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
if not inv:is_empty("input") or not inv:is_empty("output") if not inv:is_empty("input") or not inv:is_empty("output") or not
or not inv:is_empty("fuel") or not inv:is_empty("src") then inv:is_empty("fuel") or not inv:is_empty("src") then
return false return false
end end
return true return true
@ -146,8 +146,8 @@ local function light(mat)
end end
local function sound(mat) local function sound(mat)
if string.find(mat, "glass") or string.find(mat, "lamp") if string.find(mat, "glass") or string.find(mat, "lamp") or
or string.find(mat, "ice") then string.find(mat, "ice") then
return default.node_sound_glass_defaults() return default.node_sound_glass_defaults()
elseif string.find(mat, "wood") or string.find(mat, "tree") then elseif string.find(mat, "wood") or string.find(mat, "tree") then
return default.node_sound_wood_defaults() return default.node_sound_wood_defaults()