From fb6111a3f626701e06a65131844efb02ee053b47 Mon Sep 17 00:00:00 2001 From: RealBadAngel <mk@realbadangel.pl> Date: Sun, 14 Apr 2013 04:38:57 +0200 Subject: [PATCH] Merge pull request #13 from Novatux/master --- technic/grinder.lua | 81 ++++++++++++++++++++++++---------------- 1 files changed, 48 insertions(+), 33 deletions(-) diff --git a/technic/grinder.lua b/technic/grinder.lua index 686ffd3..851352b 100644 --- a/technic/grinder.lua +++ b/technic/grinder.lua @@ -23,9 +23,11 @@ register_grinder_recipe("default:iron_lump","technic:iron_dust 2") register_grinder_recipe("default:coal_lump","technic:coal_dust 2") register_grinder_recipe("moreores:copper_lump","technic:copper_dust 2") +register_grinder_recipe("default:copper_lump","technic:copper_dust 2") register_grinder_recipe("moreores:tin_lump","technic:tin_dust 2") register_grinder_recipe("moreores:silver_lump","technic:silver_dust 2") register_grinder_recipe("moreores:gold_lump","technic:gold_dust 2") +register_grinder_recipe("default:gold_lump","technic:gold_dust 2") register_grinder_recipe("moreores:mithril_lump","technic:mithril_dust 2") register_grinder_recipe("technic:chromium_lump","technic:chromium_dust 2") register_grinder_recipe("technic:zinc_lump","technic:zinc_dust 2") @@ -172,7 +174,7 @@ output = 'technic:grinder', recipe = { {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, - {'default:desert_stone', 'technic:diamond', 'default:desert_stone'}, + {'default:desert_stone', 'default:diamond', 'default:desert_stone'}, {'default:stone', 'moreores:copper_ingot', 'default:stone'}, } }) @@ -190,14 +192,14 @@ "list[current_name;src;3,1;1,1;]".. "list[current_name;dst;5,1;2,2;]".. "list[current_player;main;0,5;8,4;]" - + minetest.register_node("technic:grinder", { description = "Grinder", - tiles = {"technic_grinder_top.png", "technic_machine_bottom.png", "technic_grinder_side.png", - "technic_grinder_side.png", "technic_grinder_side.png", "technic_grinder_front.png"}, + tiles = {"technic_lv_grinder_top.png", "technic_lv_grinder_bottom.png", "technic_lv_grinder_side.png", + "technic_lv_grinder_side.png", "technic_lv_grinder_side.png", "technic_lv_grinder_front.png"}, paramtype2 = "facedir", - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + groups = {cracky=2}, legacy_facedir_simple = true, sounds = default.node_sound_wood_defaults(), technic_power_machine=1, @@ -214,12 +216,10 @@ meta:set_float("internal_EU_buffer_size", 5000) meta:set_string("formspec", grinder_formspec) meta:set_float("grind_time", 0) - local inv = meta:get_inventory() inv:set_size("src", 1) inv:set_size("dst", 4) - - end, + end, can_dig = function(pos,player) local meta = minetest.env:get_meta(pos); local inv = meta:get_inventory() @@ -229,14 +229,33 @@ if not inv:is_empty("dst") then return false end - return true end, +}) +minetest.register_node("technic:grinder_active", { + description = "Grinder", + tiles = {"technic_lv_grinder_top.png", "technic_lv_grinder_bottom.png", "technic_lv_grinder_side.png", + "technic_lv_grinder_side.png", "technic_lv_grinder_side.png", "technic_lv_grinder_front_active.png"}, + paramtype2 = "facedir", + groups = {cracky=2,not_in_creative_inventory=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("src") then + return false + end + if not inv:is_empty("dst") then + return false + end + return true + end, }) minetest.register_abm({ - nodenames = {"technic:grinder"}, + nodenames = {"technic:grinder","technic:grinder_active"}, interval = 1, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) @@ -257,18 +276,11 @@ "list[current_name;dst;5,1;2,2;]".. "list[current_player;main;0,5;8,4;]" ) - - local inv = meta:get_inventory() - --- local grinder_on = meta:get_float("grinder_on") - - local srclist = inv:get_list("src") if inv:is_empty("src") then meta:set_float("grinder_on",0) end - - + if (meta:get_float("grinder_on") == 1) then if charge>=grind_cost then charge=charge-grind_cost; @@ -285,30 +297,31 @@ srcstack:take_item() inv:set_stack("src", 1, srcstack) if inv:is_empty("src") then meta:set_float("grinder_on",0) end - - - else print("Grinder inventory full!") end meta:set_float("src_time", 0) end - end + end end - if (meta:get_float("grinder_on")==0) then local grinded=nil if not inv:is_empty("src") then - grinded = get_grinded_item (inv:get_stack("src", 1)) - if grinded then meta:set_float("grinder_on",1) end - grind_time=4 - meta:set_float("grind_time",grind_time) - meta:set_float("src_time", 0) - return + grinded = get_grinded_item (inv:get_stack("src", 1)) + if grinded then + meta:set_float("grinder_on",1) + hacky_swap_node(pos,"technic:grinder_active") + meta:set_string("infotext", "Grinder Active") + grind_time=4 + meta:set_float("grind_time",grind_time) + meta:set_float("src_time", 0) + return + end + else + hacky_swap_node(pos,"technic:grinder") + meta:set_string("infotext", "Grinder Inactive") end end - - end }) @@ -319,8 +332,10 @@ local counter=registered_grinder_recipes_count-1 for i=1, counter,1 do -if grinder_recipes[i].src_name==item_name then return ItemStack(grinder_recipes[i].dst_name) end + if grinder_recipes[i].src_name==item_name then return ItemStack(grinder_recipes[i].dst_name) end end return nil - end + +register_LV_machine ("technic:grinder","RE") +register_LV_machine ("technic:grinder_active","RE") -- Gitblit v1.8.0