From 6bb6fc293f65735c7d4a7c711d073a65144904b0 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Tue, 17 Dec 2013 04:04:21 +0200 Subject: [PATCH] Workbench. Built using 4 wood blocks, required for the 3 x 3 crafting grid in non-creative mode --- mods/creative/init.lua | 1 + mods/default/README.txt | 4 ++ mods/default/crafting.lua | 9 ++++ mods/default/functions.lua | 46 ++++++++++++++++++ mods/default/nodes.lua | 36 ++++++++++++++ .../textures/default_workbench_bottom.png | Bin 0 -> 469 bytes .../textures/default_workbench_front.png | Bin 0 -> 3306 bytes .../textures/default_workbench_side.png | Bin 0 -> 3258 bytes .../textures/default_workbench_top.png | Bin 0 -> 3329 bytes 9 files changed, 96 insertions(+) create mode 100644 mods/default/textures/default_workbench_bottom.png create mode 100644 mods/default/textures/default_workbench_front.png create mode 100644 mods/default/textures/default_workbench_side.png create mode 100644 mods/default/textures/default_workbench_top.png diff --git a/mods/creative/init.lua b/mods/creative/init.lua index fa26348e..eaea124a 100644 --- a/mods/creative/init.lua +++ b/mods/creative/init.lua @@ -72,6 +72,7 @@ trash:set_size("main", 1) creative_inventory.set_creative_formspec = function(player, start_i, pagenum) pagenum = math.floor(pagenum) local pagemax = math.floor((creative_inventory.creative_inventory_size-1) / (6*4) + 1) + craft_resize(player, _) player:set_inventory_formspec("size[13,7.5]".. --"image[6,0.6;1,2;player.png]".. "list[current_player;main;5,3.5;8,4;]".. diff --git a/mods/default/README.txt b/mods/default/README.txt index 496bc58a..520c4def 100644 --- a/mods/default/README.txt +++ b/mods/default/README.txt @@ -90,6 +90,10 @@ Calinou (CC BY-SA): MirceaKitsune (WTFPL): character.x + default_workbench_bottom.png + default_workbench_top.png + default_workbench_side.png + default_workbench_front.png Jordach (CC BY-SA 3.0): character.png diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua index c4f353a1..ad101697 100644 --- a/mods/default/crafting.lua +++ b/mods/default/crafting.lua @@ -298,6 +298,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'default:workbench', + recipe = { + {'group:wood', 'group:wood', ''}, + {'group:wood', 'group:wood', ''}, + {'', '', ''}, + } +}) + minetest.register_craft({ type = "shapeless", output = "default:bronze_ingot", diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 4f5f85d4..10eaf458 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -1,5 +1,51 @@ -- mods/default/functions.lua +-- +-- Crafting +-- + +function move_items(s_inv, s_listname, d_inv, d_listname) + local s_size = s_inv:get_size(s_listname) + for i = 1, s_size do + local stack = s_inv:get_stack(s_listname, i) + if stack and not stack:is_empty() then + d_inv:add_item(d_listname, stack) + end + end + s_inv:set_list(s_listname, {}) +end + +function craft_resize(player, size) + -- if no size is given, set to default + if not size then + if minetest.setting_getbool("creative_mode") or + minetest.setting_getbool("inventory_crafting_full") then + size = 3 + else + size = 2 + end + end + + local inv = player:get_inventory() + if inv:get_width("craft") ~= size then + move_items(inv, "craft", inv, "main") + inv:set_width("craft", size) + inv:set_size("craft", size*size) + return size + end +end + +-- set non-creative inventory +minetest.register_on_joinplayer(function(player) + local size = craft_resize(player, _) + if size and size < 3 then + player:set_inventory_formspec("size[8,7.5]" + .."list[current_player;main;0,3.5;8,4;]" + .."list[current_player;craft;3,0.5;2,2;]" + .."list[current_player;craftpreview;6,1;1,1;]") + end +end) + -- -- Sounds -- diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 3dee2257..1961de37 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1061,6 +1061,42 @@ minetest.register_abm({ end, }) +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname == "default:workbench" then + if fields.quit then + craft_resize(player, _) + end + end +end) + +function default.get_workbench_formspec(size) + size = math.min(6, math.max(1, size)) + local formspec = + "size[8,"..(size+4.5).."]" + .."list[current_player;main;0,"..(size+0.5)..";8,4;]" + .."list[current_player;craft;0,0;"..size..","..size..";]" + .."list[current_player;craftpreview;6,"..(size/2-0.5)..";1,1;]" + return formspec +end + +minetest.register_node("default:workbench", { + description = "WorkBench", + tiles = {"default_workbench_top.png", "default_workbench_bottom.png", "default_workbench_side.png", + "default_workbench_side.png", "default_workbench_side.png", "default_workbench_front.png"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Workbench") + end, + on_rightclick = function(pos, node, clicker) + craft_resize(clicker, 3) + minetest.show_formspec(clicker:get_player_name(), "default:workbench", default.get_workbench_formspec(3)) + end, +}) + minetest.register_node("default:cobble", { description = "Cobblestone", tiles = {"default_cobble.png"}, diff --git a/mods/default/textures/default_workbench_bottom.png b/mods/default/textures/default_workbench_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..da449cf7ea53239c1decbc1d0a0126cc6bb627d7 GIT binary patch literal 469 zcmV;`0V@89P)zQTLNkH*(;81HMF!J(6a1M1Tz&<3e>{kqs#iH( z0YgYWT(X?6!cB{x^2Wc22T-mT!uvK)ykf?FYQKz zI}fcdN|c>ZiX7(cSBZ79G|3D`7S=@1Vdhe7{Ff-hpec$;D-cF)`v;9#&00000 LNkvXXu0mjfLvY4Q literal 0 HcmV?d00001 diff --git a/mods/default/textures/default_workbench_front.png b/mods/default/textures/default_workbench_front.png new file mode 100644 index 0000000000000000000000000000000000000000..0b843f7b27705c31930c28b87c077a346fb1ae3e GIT binary patch literal 3306 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 literal 0 HcmV?d00001 diff --git a/mods/default/textures/default_workbench_side.png b/mods/default/textures/default_workbench_side.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5c728f1f133268de7408cbb251056ccb58d5d7 GIT binary patch literal 3258 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 literal 0 HcmV?d00001 diff --git a/mods/default/textures/default_workbench_top.png b/mods/default/textures/default_workbench_top.png new file mode 100644 index 0000000000000000000000000000000000000000..75dfa4ede7f46a07e4b2e53c451f7bd2e1cf6b53 GIT binary patch literal 3329 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 LNkvXXu0mjfn;SHP literal 0 HcmV?d00001