computing/docs/API_Integration.md

3.3 KiB

COMPUTING API

The 'COMPUTING API' provides methods needed for you to create your own 'computing apps' through your own mod.


Show Smartphone Screen

modComputing.show_smartphone(player)

Get Smartphone Background FormSpec

Can you add your own Fields on top of a smartphone background formspec.

Syntaxe:

modComputing.smartphone.getFormBackground()

Sample: Add 'Write your name' field

local playername = player:get_player_name()
local formspec = ""
..modComputing.smartphone.getFormBackground()
.."field[1.00,2.25;4.5,0.5;txtName;Write your name;"..playername.."]"
core.show_formspec(playername, "formMyModName", formspec)
-- See more methods in: https://github.com/minetest/minetest/blob/master/doc/lua_api.md
  • formspec version = 6
  • formsoec width = 05.6
  • formsoec height = 10.0

Adding an App from your Mod

Syntaxe:

   modComputing.add_app("<app_id>", {
      icon_name = "<app_button_name>",
      icon_type = "<button_type>", --types: button/button_exit
      icon_title = "<app_name>",
      icon_descryption = "<app_descryption>",
      icon_image = "<app_image>",
      is_visible = function(player)
         return true 
         -- The button icon of app only is visible if return true.
      end,
      on_iconclick = function(clicker)
         -- Put here your functions!
      end,
   })

Sample 1: Hello World

   if core.global_exists("modComputing") then
      modComputing.add_app("my_mod:app_hello_world", {
         icon_name = "btnShowAppHelloWorld",
         icon_type = "button", 
         icon_title = "HELLO WORLD",
         icon_descryption = "This is a sample of 'hello world' app.",
         icon_image = "icon_app.png",
         on_iconclick = function(clicker)
            local playername = clicker:get_player_name()
            core.chat_send_player(playername,
               ("The '%s' pressed '%s' button icon app!"):format(
                  playername, 
                  btnShowAppHelloWorld
               )
            )
            -- Put more lines if you want!
            -- See more methods in: https://github.com/minetest/minetest/blob/master/doc/lua_api.md
         end,
      })
   end

Sample 2: Shut down of server.

   if core.global_exists("modComputing") then
      modComputing.add_app("my_mod_app:btnShutdownServer", {
         icon_name = "btnShutdownServer",
         icon_type = "button_exit", 
         icon_title = "SHUTDOWN",
         icon_descryption = "This is a sample of 'Shutdown Server' app.",
         icon_image = "icon_shutdown.png",
         is_visible = function(player)
            return core.check_player_privs(player, {server = true})
         end,
         on_iconclick = function(clicker)
            local playername = clicker:get_player_name()
            core.request_shutdown(
               ("The administrator '%s' has requested that the server be shut down."):format(playername),
               false, --If reconnect
               60 --delay in seconds
            )
            -- See more methods in: https://github.com/minetest/minetest/blob/master/doc/lua_api.md
         end,
      })
   end