-- Specialized formspec for crafters function ele.formspec.get_crafter_formspec(craft_type, power, percent) local craftstats = elepm.craft.types[craft_type] local input_size = craftstats.inputs local gui_name = "gui_furnace_arrow" if craftstats.gui_name then gui_name = craftstats.gui_name end local bar = "image[4,1.5;1,1;"..gui_name.."_bg.png^[transformR270]" if percent ~= nil then bar = "image[4,1.5;1,1;"..gui_name.."_bg.png^[lowpart:".. (percent)..":"..gui_name.."_fg.png^[transformR270]" end local in_width = input_size local in_height = 1 for n = 2, 4 do if input_size % n == 0 and input_size ~= n then in_width = input_size / n in_height = input_size / n end end local y = 1.5 local x = 1.5 if in_height == 2 then y = 1 elseif in_height >= 3 then y = 0.5 end if in_width >= 2 then x = 1 end return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. ele.formspec.power_meter(power).. "list[context;src;"..x..","..y..";"..in_width..","..in_height..";]".. bar.. "list[context;dst;5,1;2,2;]".. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. "listring[current_player;main]".. "listring[context;src]".. "listring[current_player;main]".. "listring[context;dst]".. "listring[current_player;main]".. default.get_hotbar_bg(0, 4.25) end function ele.formspec.get_fluid_generator_formspec(power, percent, buffer) return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. ele.formspec.power_meter(power).. ele.formspec.fluid_bar(7, 0, buffer).. "image[3.5,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. (percent)..":default_furnace_fire_fg.png]".. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. default.get_hotbar_bg(0, 4.25) end function ele.formspec.get_generator_formspec(power, percent) return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. ele.formspec.power_meter(power).. "list[context;src;3,1.5;1,1;]".. "image[4,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. percent..":default_furnace_fire_fg.png]".. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. "listring[current_player;main]".. "listring[context;src]".. "listring[current_player;main]".. default.get_hotbar_bg(0, 4.25) end function ele.formspec.get_storage_formspec(power) return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. ele.formspec.power_meter(power).. "image[2,0.5;1,1;gui_furnace_arrow_bg.png^[transformR180]".. "list[context;out;2,1.5;1,1;]".. "image[5,0.5;1,1;gui_furnace_arrow_bg.png]".. "list[context;in;5,1.5;1,1;]".. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. "listring[current_player;main]".. "listring[context;out]".. "listring[current_player;main]".. "listring[context;in]".. "listring[current_player;main]".. default.get_hotbar_bg(0, 4.25) end function elepm.get_coal_alloy_furnace_formspec(fuel_percent, item_percent) return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. "list[context;src;2,0.5;2,1;]".. "list[context;fuel;2.5,2.5;1,1;]".. "image[2.5,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. (100-fuel_percent)..":default_furnace_fire_fg.png]".. "image[4,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. "list[context;dst;5,0.96;2,2;]".. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. "listring[context;dst]".. "listring[current_player;main]".. "listring[context;src]".. "listring[current_player;main]".. "listring[context;fuel]".. "listring[current_player;main]".. default.get_hotbar_bg(0, 4.25) end function elepm.get_grindstone_formspec(item_percent) return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. "list[context;src;1.6,1;1,1;]".. "image[3.5,1;1,1;gui_furnace_arrow_bg.png^[lowpart:".. (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. "list[context;dst;4.5,1;2,1;]".. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. "listring[context;dst]".. "listring[current_player;main]".. "listring[context;src]".. "listring[current_player;main]".. default.get_hotbar_bg(0, 4.25) end function elepm.get_lava_cooler_formspec(item_percent, coolant_buffer, hot_buffer, power, recipes, recipe) local rclist = {} local x = 2.5 for j in pairs(recipes) do if j == recipe then rclist[#rclist + 1] = "item_image["..x..",0;1,1;"..j.."]" else rclist[#rclist + 1] = "item_image_button[".. x ..",0;1,1;"..j..";"..j..";]" end x = x + 1 end return "size[8,8.5]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. ele.formspec.power_meter(power).. ele.formspec.fluid_bar(1, 0, coolant_buffer).. ele.formspec.fluid_bar(7, 0, hot_buffer).. "list[context;dst;3.5,1.5;1,1;]".. "image[2.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. "image[4.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. (item_percent)..":gui_furnace_arrow_fg.png^[transformFXR90]".. table.concat(rclist, "").. "list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,5.5;8,3;8]".. "listring[current_player;main]".. "listring[context;dst]".. "listring[current_player;main]".. default.get_hotbar_bg(0, 4.25) end