From 203ae5d42065ef6fbc050cde7a8b22d262d6c843 Mon Sep 17 00:00:00 2001 From: Rubenwardy Date: Fri, 4 Jan 2013 16:51:09 +0000 Subject: mymobs, aerophonics support --- tools/oven.lua | 197 --------------------------------------------------------- 1 file changed, 197 deletions(-) delete mode 100644 tools/oven.lua (limited to 'tools') diff --git a/tools/oven.lua b/tools/oven.lua deleted file mode 100644 index 8c9f805..0000000 --- a/tools/oven.lua +++ /dev/null @@ -1,197 +0,0 @@ --- RUBENFOOD MOD --- A mod written by rubenwardy that adds --- food to the minetest game --- ====================================== --- >> rubenfood/tools/oven.lua --- adds diary products --- ====================================== --- todo [regis-furnace] Rings --- [regis-furnace] Oven --- ====================================== - -local oven_inactive_formspec = - "invsize[8,9;]".. - "image[2,2;1,1;default_furnace_fire_bg.png]".. - "list[current_name;fuel;2,3;1,1;]".. - "list[current_name;src;2,1;1,1;]".. - "list[current_name;dst;5,1;2,2;]".. - "list[current_player;main;0,5;8,4;]" - -minetest.register_node("food:oven", { - description = "Oven", - tiles = {"food_oven_top.png", "food_oven_bottom.png", "food_oven_side.png", - "food_oven_side.png", "food_oven_side.png", "food_oven_front.png"}, - paramtype2 = "facedir", - groups = {cracky=2}, - legacy_facedir_simple = true, - sounds = default.node_sound_stone_defaults(), - on_construct = function(pos) - local meta = minetest.env:get_meta(pos) - meta:set_string("formspec", oven_inactive_formspec) - meta:set_string("infotext", "Oven") - local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) - end, - can_dig = function(pos,player) - local meta = minetest.env:get_meta(pos); - local inv = meta:get_inventory() - if not inv:is_empty("fuel") then - return false - elseif not inv:is_empty("dst") then - return false - elseif not inv:is_empty("src") then - return false - end - return true - end, -}) - -minetest.register_node("food:oven_active", { - description = "Oven", - tiles = {"food_oven_top.png", "food_oven_bottom.png", "food_oven_side.png", - "food_oven_side.png", "food_oven_side.png", "food_oven_front_active.png"}, - paramtype2 = "facedir", - light_source = 8, - drop = "food:furnace", - groups = {cracky=2, not_in_creative_inventory=1}, - legacy_facedir_simple = true, - sounds = default.node_sound_stone_defaults(), - on_construct = function(pos) - local meta = minetest.env:get_meta(pos) - meta:set_string("formspec", oven_inactive_formspec) - meta:set_string("infotext", "Oven"); - local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) - end, - can_dig = function(pos,player) - local meta = minetest.env:get_meta(pos); - local inv = meta:get_inventory() - if not inv:is_empty("fuel") then - return false - elseif not inv:is_empty("dst") then - return false - elseif not inv:is_empty("src") then - return false - end - return true - end, -}) - -function hacky_swap_node(pos,name) - local node = minetest.env:get_node(pos) - local meta = minetest.env:get_meta(pos) - local meta0 = meta:to_table() - if node.name == name then - return - end - node.name = name - local meta0 = meta:to_table() - minetest.env:set_node(pos,node) - meta = minetest.env:get_meta(pos) - meta:from_table(meta0) -end - -minetest.register_abm({ - nodenames = {"food:oven","food:oven_active"}, - interval = 1.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.env:get_meta(pos) - for i, name in ipairs({ - "fuel_totaltime", - "fuel_time", - "src_totaltime", - "src_time" - }) do - if meta:get_string(name) == "" then - meta:set_float(name, 0.0) - end - end - - local inv = meta:get_inventory() - - local srclist = inv:get_list("src") - local cooked = nil - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - - local was_active = false - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - was_active = true - meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) - meta:set_float("src_time", meta:get_float("src_time") + 1) - if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then - -- check if there's room for output in "dst" list - if inv:room_for_item("dst",cooked.item) then - -- Put result in "dst" list - inv:add_item("dst", cooked.item) - -- take stuff from "src" list - srcstack = inv:get_stack("src", 1) - srcstack:take_item() - inv:set_stack("src", 1, srcstack) - else - --print("Could not insert '"..cooked.item.."'") - end - meta:set_string("src_time", 0) - end - end - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - local percent = math.floor(meta:get_float("fuel_time") / - meta:get_float("fuel_totaltime") * 100) - meta:set_string("infotext","Oven active: "..percent.."%") - hacky_swap_node(pos,"food:oven_active") - meta:set_string("formspec", - "invsize[8,9;]".. - "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. - (100-percent)..":default_furnace_fire_fg.png]".. - "list[current_name;fuel;2,3;1,1;]".. - "list[current_name;src;2,1;1,1;]".. - "list[current_name;dst;5,1;2,2;]".. - "list[current_player;main;0,5;8,4;]") - return - end - - local fuel = nil - local cooked = nil - local fuellist = inv:get_list("fuel") - local srclist = inv:get_list("src") - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - if fuellist then - fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) - end - - if fuel.time <= 0 then - meta:set_string("infotext","Oven is out of fuel") - hacky_swap_node(pos,"food:oven") - meta:set_string("formspec", oven_inactive_formspec) - return - end - - if cooked.item:is_empty() then - if was_active then - meta:set_string("infotext","Oven is empty") - hacky_swap_node(pos,"food:oven") - meta:set_string("formspec", oven_inactive_formspec) - end - return - end - - meta:set_string("fuel_totaltime", fuel.time) - meta:set_string("fuel_time", 0) - - local stack = inv:get_stack("fuel", 1) - stack:take_item() - inv:set_stack("fuel", 1, stack) - end, -}) \ No newline at end of file -- cgit v1.2.3