begin adding check if item canbe cut

This commit is contained in:
Chris Page 2023-07-31 08:56:02 +01:00 committed by the-real-herowl
parent 7523727521
commit 47990eec2b
1 changed files with 46 additions and 1 deletions

View File

@ -13,6 +13,31 @@ local recipes = {
{"mcl_core:diorite", "mcl_stairs:slab_diorite", "mcl_walls:diorite", "mcl_stairs:stair_diorite", "mcl_core:diorite_smooth", "mcl_stairs:stair_diorite_smooth", "mcl_stairs:slab_diorite_smooth"}, {"mcl_core:diorite", "mcl_stairs:slab_diorite", "mcl_walls:diorite", "mcl_stairs:stair_diorite", "mcl_core:diorite_smooth", "mcl_stairs:stair_diorite_smooth", "mcl_stairs:slab_diorite_smooth"},
} }
local compaitble_items = {
"mcl_core:cobble",
"mcl_core:mossycobble",
"mcl_core:stone",
"mcl_core:stone_smooth",
"mcl_core:granite",
"mcl_core:granite_smooth",
"mcl_core:diorite",
"mcl_core:diorite_smooth",
"mcl_core:andesite",
"mcl_core:andesite_smooth",
"mcl_core:stonebrick",
"mcl_core:stonebrickmossy",
"mcl_core:sandstone",
"mcl_core:redsandstone",
"mcl_ocean:prismarine",
"mcl_ocean:prismarine_brick",
"mcl_ocean:prismarine_dark",
"mcl_mud:mud_bricks",
"mcl_nether:quartzblock",
"mcl_nether:quartz_smooth",
"mcl_end:purpur_block",
"mcl_end:end_bricks",
}
local FMT = { local FMT = {
item_image_button = "item_image_button[%f,%f;%f,%f;%s;%s;%s]", item_image_button = "item_image_button[%f,%f;%f,%f;%s;%s;%s]",
} }
@ -55,10 +80,30 @@ local function show_stonecutter_formspec(items, input)
return formspec return formspec
end end
local function get_item_string_name(input)
local colonIndex = string.find(input, ":")
if colonIndex then
input = string.sub(input, colonIndex + 1)
else
return input
end
local whitespaceIndex = string.find(input, "%s")
if whitespaceIndex then
return string.sub(input, 1, whitespaceIndex - 1)
else
return input
end
end
local function update_stonecutter_slots(meta) local function update_stonecutter_slots(meta)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local input = inv:get_stack("input", 1) local input = inv:get_stack("input", 1)
local name = input:get_name() local name = input:get_name()
local name_stripped = get_item_string_name(input:to_string())
if name_stripped ~= "" then
local itemdef = minetest.registered_items["mcl_stairs:stair_"..name_stripped]
print(itemdef)
end
local new_output = ItemStack(meta:get_string("cut_stone")) local new_output = ItemStack(meta:get_string("cut_stone"))
if not input:is_empty() then if not input:is_empty() then
@ -162,8 +207,8 @@ minetest.register_node("mcl_stonecutter:stonecutter", {
local input = inv:get_stack("input", 1) local input = inv:get_stack("input", 1)
input:take_item() input:take_item()
inv:set_stack("input", 1, input) inv:set_stack("input", 1, input)
meta:set_string("cut_stone", nil)
end end
meta:set_string("cut_stone", nil)
update_stonecutter_slots(meta) update_stonecutter_slots(meta)
end, end,
on_construct = function(pos) on_construct = function(pos)