@@ -30,16 +30,20 @@ paperburn('default:paper',1) paperburn('sorcery:recipe',1) paperburn('default:book',3) paperburn('sorcery:cookbook',3) paperburn('default:book_written',3) -minetest.register_craft { - type = "shapeless"; - recipe = {"default:book_written", "bucket:bucket_water"}; - output = "default:book"; - replacements = { - {"bucket:bucket_water", "bucket:bucket_empty"} - } -} +-- minetest.register_craft { +-- type = "shapeless"; +-- recipe = { +-- "default:book_written"; +-- "bucket:bucket_water", 'sorcery:erasure_fluid'; +-- }; +-- output = "default:book"; +-- replacements = { +-- {"bucket:bucket_water", "bucket:bucket_empty"}; +-- {'sorcery:erasure_fluid', 'vessels:glass_bottle'}; +-- } +-- } minetest.register_craft { type = 'shapeless'; recipe = {"default:book_written", "dye:black"}; @@ -107,12 +111,15 @@ end end end -for _,name in pairs { - 'bronze', 'steel', 'aluminum', 'tungsten', 'iridium' -} do -- :/ - local metal = sorcery.data.metals[name] +sorcery.register.metals.foreach('sorcery:mkscissors',{'sorcery:generate'},function(name,metal) + local oklist = { -- :/ + bronze=true, steel=true, aluminum=true; + tungsten=true, iridium=true + } -- TODO: moar art + if not oklist[name] then return end + local id = 'sorcery:scissors_' .. name minetest.register_tool(id, { description = sorcery.lib.str.capitalize(name) .. ' Scissors'; inventory_image = 'sorcery_scissors_' .. name .. '.png'; @@ -136,9 +143,9 @@ }; _sorcery = { material = { metal = true, data = metal, name = name; - grindvalue = 3; + grindvalue = 4; }; recipe = { note = "An editor's best friend"; }; @@ -145,21 +152,34 @@ }; }) local frag = metal.parts.fragment; local screw = metal.parts.screw; - local ingot = metal.parts.ingot; minetest.register_craft { output = id; recipe = { {frag,'screwdriver:screwdriver',frag}; {'basic_materials:plastic_strip',screw,'basic_materials:plastic_strip'}; - {ingot,'',ingot}; + {frag,'',frag}; }; replacements = { {'screwdriver:screwdriver', 'screwdriver:screwdriver'}; }; } -end +end) + +sorcery.register.metals.foreach('create cutting recipes',{'sorcery:mkscissors'}, function(name,metal) + local sc = 'sorcery:scissors_' .. name + local mkcut = function(item,out) + minetest.register_craft { + output = out, type = 'shapeless'; + recipe = {item,sc}, replacements = {{sc,sc}}; + } + end + if minetest.registered_items[sc] then + mkcut('default:paper','sorcery:punchcard_blank 2') + mkcut('default:book','default:paper 3') + end +end) -- the writing stand node allows books to be modified -- in more complex ways than just inserting pages @@ -328,8 +348,56 @@ -0.5, -0.5, -0.43; 0.5, 0.05, 0.43; }; } + +minetest.register_craftitem('sorcery:pulp', { + description = 'Pulp'; + inventory_image = 'sorcery_pulp.png'; + group = {flammable = 1}; +}) +minetest.register_craftitem('sorcery:pulp_inky', { + description = 'Inky Pulp'; + inventory_image = 'sorcery_pulp_inky.png'; + group = {flammable = 1}; +}) +minetest.register_craft { + output = 'sorcery:pulp 6'; + type = 'shapeless'; + recipe = { + 'bucket:bucket_water', 'sorcery:erasure_fluid'; + 'sorcery:pulp_inky'; 'sorcery:pulp_inky'; 'sorcery:pulp_inky'; + 'sorcery:pulp_inky'; 'sorcery:pulp_inky'; 'sorcery:pulp_inky'; + }; + replacements = { + {'sorcery:erasure_fluid', 'vessels:glass_bottle'}; + {'bucket:bucket_water', 'bucket:bucket_empty'}; + }; +} +minetest.register_craft { + output = 'sorcery:punchcard_blank'; + type = 'cooking'; + recipe = 'sorcery:pulp'; + cooktime = 6; +} +minetest.register_craftitem('sorcery:pulp_sheet', { + description = 'Pulp Sheet'; + inventory_image = 'sorcery_pulp_sheet.png'; + groups = {flammable = 1}; +}) +minetest.register_craft { + output = 'default:paper'; + type = 'cooking'; + recipe = 'sorcery:pulp_sheet'; + cooktime = 8; +} +minetest.register_craft { + output = 'sorcery:pulp_sheet 2'; + recipe = { + {'sorcery:pulp', 'sorcery:pulp'}; + {'sorcery:pulp', 'sorcery:pulp'}; + }; +} minetest.register_node('sorcery:writing_stand', { description = 'Writing Stand'; drawtype = 'mesh';