local S = minetest.get_translator("surface_effect") local version = "0.0.1" local width = 15 local height = 10 local winsize = "size["..width..",".. height .."]" local bgimage = "no_prepend[] bgcolor[#FFFFFF;true] background[0,-1;15,11;surface_effect_tablet_bg.png]" surface_effect.display = {} local function get_charge_indicator(power) local arm = 65535 / 100 local percent = (65535 - (power - 65535))/arm if percent > 55 then return 3 elseif percent > 15 then return 2 elseif percent < 10 then return 1 end return 0 end function surface_effect.display.main(player, power) local pos = player:get_pos() local info_biome = minetest.get_biome_data(pos) --minetest.log(dump(info_biome)) local formspec = { "formspec_version[4]", winsize, bgimage, "container[0,0]", "style_type[label;textcolor=green;bgcolor=red;font_size=20]", "label[1.0,0.2;"..S("Software version: @1", minetest.colorize("#FF0000", version)).."]", "image[".. width - 3 ..",0;0.8,0.5;surface_effect_antena0.png]", "image[".. width - 2 ..",0;1.0,0.5;surface_effect_tablet_charge_level".. get_charge_indicator(power) .. ".png]", "container_end[]", "image[1.0,1.0;0.7,0.7;surface_effect_thermometer.png]", "label[1.5,1.0;"..math.floor(info_biome.heat).."]", "button[".. width / 2 .. ",".. height - 1 ..";0.5,0.5;home;|]" --"style[weather;textcolor=black;size=2]", --"image_button[0.5,0.5;1.5,1.5;surface_effect_weather_btn.png;weather;Weather]" } return table.concat(formspec, "") end minetest.register_tool("surface_effect:tablet", { description = S("Tablet"), inventory_image = "surface_effect_tablet.png", wear_represents = "technic_RE_charge", groups = {not_in_creative_inventory = 0}, on_use = function(stack, player, pointed) local name = player:get_player_name() local meta = stack:get_meta() local charge = meta:get_int("technic:charge") if charge == -1 then minetest.chat_send_player(name, S("No charge, device needs to be charged")) end charge = charge - 1 if charge < 0 then technic.set_RE_wear(stack, 0, 65535) meta:set_int("technic:charge", -1) minetest.chat_send_player(name, S("Not charged, the device needs to be charged")) end if charge > 0 then technic.set_RE_wear(stack, charge, 65535) meta:set_int("technic:charge", charge) minetest.show_formspec(name, "surface_effect:display_main", surface_effect.display.main(player, charge)) --stack:set_stack() end return stack end, }) if minetest.get_modpath("technic") then technic.register_power_tool("surface_effect:tablet", 65535) end