forked from MineClone5/MineClone5
Add purple shulker box
This commit is contained in:
parent
a7ed0bb7dd
commit
494ed54785
|
@ -303,4 +303,83 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
-- Shulker boxes
|
||||
local boxtypes = {
|
||||
purple = "Purple Shulker Box",
|
||||
}
|
||||
|
||||
for color, desc in pairs(boxtypes) do
|
||||
minetest.register_node("mcl_chests:"..color.."_shulker_box", {
|
||||
description = desc,
|
||||
tiles = {"mcl_chests_"..color.."_shulker_box_top.png", "mcl_chests_"..color.."_shulker_box_bottom.png",
|
||||
"mcl_chests_"..color.."_shulker_box_side.png", "mcl_chests_"..color.."_shulker_box_side.png",
|
||||
"mcl_chests_"..color.."_shulker_box_side.png", "mcl_chests_"..color.."_shulker_box_side.png"},
|
||||
groups = {cracky=2, deco_block=1, shulker_box=1},
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
sounds = mcl_core.node_sound_stone_defaults(),
|
||||
stack_max = 1,
|
||||
drop = "",
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[9,8.75]"..
|
||||
mcl_core.inventory_header..
|
||||
"background[-0.19,-0.25;9.41,10.48;crafting_inventory_chest.png]"..
|
||||
"image[0,-0.2;5,0.75;fnt_shulker_box.png]"..
|
||||
"list[current_name;main;0,0.5;9,3;]"..
|
||||
"list[current_player;main;0,4.5;9,3;9]"..
|
||||
"list[current_player;main;0,7.74;9,1;]"..
|
||||
"listring[current_name;main]"..
|
||||
"listring[current_player;main]")
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 9*3)
|
||||
end,
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
local nmeta = minetest.get_meta(pos)
|
||||
local ninv = nmeta:get_inventory()
|
||||
local imeta = itemstack:get_metadata()
|
||||
local iinv_main = minetest.deserialize(imeta)
|
||||
ninv:set_list("main", iinv_main)
|
||||
ninv:set_size("main", 9*3)
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:from_table(oldmetadata)
|
||||
local inv = meta:get_inventory()
|
||||
local items = {}
|
||||
for i=1, inv:get_size("main") do
|
||||
items[i] = inv:get_stack("main", i):to_string()
|
||||
end
|
||||
local data = minetest.serialize(items)
|
||||
local boxitem = ItemStack("mcl_chests:"..color.."_shulker_box")
|
||||
boxitem:set_metadata(data)
|
||||
minetest.add_item(pos, boxitem)
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
-- Do not allow to place shulker boxes into shulker boxes
|
||||
local group = minetest.get_item_group(stack:get_name(), "shulker_box")
|
||||
if group == 0 or group == nil then
|
||||
return stack:get_count()
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'mcl_chests:'..color..'_shulker_box',
|
||||
recipe = { 'group:shulker_box', 'mcl_dye:'..color }
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_chests:purple_shulker_box',
|
||||
recipe = {
|
||||
{'mcl_mobitems:shulker_shell'},
|
||||
{'mcl_chests:chest'},
|
||||
{'mcl_mobitems:shulker_shell'},
|
||||
}
|
||||
})
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 255 B |
Binary file not shown.
After Width: | Height: | Size: 646 B |
Binary file not shown.
After Width: | Height: | Size: 633 B |
Loading…
Reference in New Issue