From a6f250a862d202a03b8e71e85f8fdff5110f312b Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Mon, 5 Jun 2017 14:57:26 +0200 Subject: [PATCH] first try --- LICENSE.txt | 13 + README.txt | 29 + depends.txt | 1 + description.txt | 1 + init.lua | 525 ++++ init.lua.org | 483 ++++ lua_api.dtxt2 | 4676 ++++++++++++++++++++++++++++++++++ screenshot.png | Bin 0 -> 260819 bytes textures/towercrane_arm.png | Bin 0 -> 1426 bytes textures/towercrane_arm2.png | Bin 0 -> 1600 bytes textures/towercrane_base.png | Bin 0 -> 1836 bytes 11 files changed, 5728 insertions(+) create mode 100644 LICENSE.txt create mode 100644 README.txt create mode 100644 depends.txt create mode 100644 description.txt create mode 100644 init.lua create mode 100644 init.lua.org create mode 100644 lua_api.dtxt2 create mode 100644 screenshot.png create mode 100644 textures/towercrane_arm.png create mode 100644 textures/towercrane_arm2.png create mode 100644 textures/towercrane_base.png diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..1592dbb --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,13 @@ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..5b026e1 --- /dev/null +++ b/README.txt @@ -0,0 +1,29 @@ +Tower Crane Mod +=============== + + + +Usage +----- + +1) Place the crane base. + The crane arm will later be build in the same direction yoi are currently looking + +2) Right-click the crane base node and set the crane dimensions in height and width (between 8 and 24). + The crane will be build according to the settings. + +3) Right-click the crane switch node to place the hook in front of the crane mast + +4) Enter the hook by right-clicking the hook + +5) "Fly" within the construction area (height, width) by means of the (default) controls + - Move mouse: Look around + - W, A, S, D: Move + - Space: move up + - Shift: move down + +6) Leave the hook by right-clicking the hook or right-clicking the crane switch node + +7) To destroy the crane, destroy the base node. + + diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..000880f --- /dev/null +++ b/description.txt @@ -0,0 +1 @@ +The Tower Crane Mod forms a constrution area below the crane arm which gives the crane owner "fly privs". diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..bf94b10 --- /dev/null +++ b/init.lua @@ -0,0 +1,525 @@ +--[[ + + Tower Crane Mod + =============== + + v0.01 by JoSt + + Copyright (C) 2017 Joachim Stolberg + LGPLv2.1+ + See LICENSE.txt for more information + + History: + 2017-06-04 v0.01 first version +]]-- + + +towercrane = {} + +--################################################################################################## +--## Tower Crane Hook +--################################################################################################## +local hook = { + physical = true, + collisionbox = {-0.2, -0.2, -0.2, 0.2, 0.2, 0.2}, + collide_with_objects = false, + visual = "cube", + visual_size = {x=0.4, y=0.4}, + textures = { + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + }, + groups = {cracky=1}, + -- local variabels + driver = nil, + speed_forward=0, + speed_right=0, + speed_up=0, +} +---------------------------------------------------------------------------------------------------- +-- Enter/leave the Hook +---------------------------------------------------------------------------------------------------- +function hook:on_rightclick(clicker) + if self.driver and clicker == self.driver then -- leave? + clicker:set_detach() + self.driver = nil + elseif not self.driver then -- enter? + self.driver = clicker + clicker:set_attach(self.object, "", {x=0,y=0,z=0}, {x=0,y=0,z=0}) + end +end + +---------------------------------------------------------------------------------------------------- +-- Hook control +---------------------------------------------------------------------------------------------------- +function hook:on_step(dtime) + -- remove hook from last visit + if self.pos1 == nil or self.pos2 == nil then + self.object:remove() + return + end + if self.driver then + local ctrl = self.driver:get_player_control() + local yaw = self.driver:get_look_horizontal() + local pos = self.driver:getpos() + local max_speed = 5 + local velocity = 0.5 + + if ctrl.up then -- forward + self.speed_forward = math.min(self.speed_forward + velocity, max_speed) + elseif ctrl.down then -- backward + self.speed_forward = math.max(self.speed_forward - velocity, -max_speed) + elseif self.speed_forward > 0 then + self.speed_forward = self.speed_forward - velocity + elseif self.speed_forward < 0 then + self.speed_forward = self.speed_forward + velocity + end + + if ctrl.right then -- right + self.speed_right = math.min(self.speed_right + velocity, max_speed) + elseif ctrl.left then -- left + self.speed_right = math.max(self.speed_right - velocity, -max_speed) + elseif self.speed_right > 0 then + self.speed_right = self.speed_right - velocity + elseif self.speed_right < 0 then + self.speed_right = self.speed_right + velocity + end + + if ctrl.jump then -- up + self.speed_up = math.min(self.speed_up + velocity, 5) + elseif ctrl.sneak then -- down + self.speed_up = math.max(self.speed_up - velocity, -5) + elseif self.speed_up > 0 then + self.speed_up = self.speed_up - velocity + elseif self.speed_up < 0 then + self.speed_up = self.speed_up + velocity + end + + -- calculate the direction vector + local vx = math.cos(yaw+math.pi/2) * self.speed_forward + math.cos(yaw) * self.speed_right + local vz = math.sin(yaw+math.pi/2) * self.speed_forward + math.sin(yaw) * self.speed_right + + -- check if outside of the construction area + if pos.x < self.pos1.x then vx= velocity end + if pos.x > self.pos2.x then vx= -velocity end + if pos.y < self.pos1.y then self.speed_up= velocity end + if pos.y > self.pos2.y then self.speed_up= -velocity end + if pos.z < self.pos1.z then vz= velocity end + if pos.z > self.pos2.z then vz= -velocity end + + self.object:setvelocity({x=vx, y=self.speed_up,z=vz}) + else + self.object:setvelocity({x=0, y=0,z=0}) + end +end + +---------------------------------------------------------------------------------------------------- +-- LuaEntitySAO (non-player moving things): see http://dev.minetest.net/LuaEntitySAO +---------------------------------------------------------------------------------------------------- +minetest.register_entity("towercrane:hook", hook) + + + +--################################################################################################## +--## Tower Crane +--################################################################################################## + +local function turnright(dir) + local facedir = minetest.dir_to_facedir(dir) + return minetest.facedir_to_dir((facedir + 1) % 4) +end + +local function turnleft(dir) + local facedir = minetest.dir_to_facedir(dir) + return minetest.facedir_to_dir((facedir + 3) % 4) +end + +---------------------------------------------------------------------------------------------------- +-- Constuct mast and arm +---------------------------------------------------------------------------------------------------- +local function construct_crane(pos, dir, height, width, owner) + pos.y = pos.y + 1 + minetest.env:add_node(pos, {name="towercrane:mast_ctrl_off", param2=minetest.dir_to_facedir(dir)}) + local meta = minetest.get_meta(pos) + meta:set_string("dir", minetest.pos_to_string(dir)) + meta:set_string("owner", owner) + meta:set_int("height", height) + meta:set_int("width", width) + + for i = 1,height+1 do + pos.y = pos.y + 1 + minetest.env:add_node(pos, {name="towercrane:mast"}) + end + + pos.y = pos.y - 2 + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:add_node(pos, {name="towercrane:arm2"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:add_node(pos, {name="towercrane:arm"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:add_node(pos, {name="towercrane:balance"}) + pos.x = pos.x + 3 * dir.x + pos.z = pos.z + 3 * dir.z + + for i = 1,width do + pos.x = pos.x + dir.x + pos.z = pos.z + dir.z + if i % 2 == 0 then + minetest.env:add_node(pos, {name="towercrane:arm2"}) + else + minetest.env:add_node(pos, {name="towercrane:arm"}) + end + + end +end + +---------------------------------------------------------------------------------------------------- +-- Remove the crane +---------------------------------------------------------------------------------------------------- +local function dig_crane(pos, dir, height, width) + pos.y = pos.y + 1 + minetest.env:remove_node(pos, {name="towercrane:mast_ctrl_off"}) + + for i = 1,height+1 do + pos.y = pos.y + 1 + minetest.env:remove_node(pos, {name="towercrane:mast"}) + end + + pos.y = pos.y - 2 + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:remove_node(pos, {name="towercrane:arm2"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:remove_node(pos, {name="towercrane:arm"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:remove_node(pos, {name="towercrane:balance"}) + pos.x = pos.x + 3 * dir.x + pos.z = pos.z + 3 * dir.z + + for i = 1,width do + pos.x = pos.x + dir.x + pos.z = pos.z + dir.z + if i % 2 == 0 then + minetest.env:remove_node(pos, {name="towercrane:arm2"}) + else + minetest.env:remove_node(pos, {name="towercrane:arm"}) + end + end +end + +---------------------------------------------------------------------------------------------------- +-- Place the hook in front of the base +---------------------------------------------------------------------------------------------------- +local function place_hook(pos, dir) + pos.y = pos.y - 1 + pos.x = pos.x + dir.x + pos.z = pos.z + dir.z + return minetest.add_entity(pos, "towercrane:hook") +end + +---------------------------------------------------------------------------------------------------- +-- Register Crane base +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:base", { + description = "Tower Crane Base", + inventory_image = "towercrane_invent.png", + tiles = { + "towercrane_base_top.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {cracky=3}, + formspec = set_formspec, + + -- set meta data (form for crane height and width, dir of the arm) + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + local formspec = "size[5,4]".. + "label[0,0;Construction area size]" .. + "field[1,1.5;3,1;size;height,width;]" .. + "button_exit[1,2;2,1;exit;Save]" + meta:set_string("formspec", formspec) + + local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) + local dir = minetest.facedir_to_dir(fdir) + meta:set_string("dir", minetest.pos_to_string(dir)) + end, + + -- evaluate user input (height, width), destroyed old crane and build a new one with + -- the given size + on_receive_fields = function(pos, formname, fields, player) + if fields.size == nil then + return + end + local meta = minetest.get_meta(pos) + + if not player or not player:is_player() then + return + end + local owner = meta:get_string("owner") + if player:get_player_name() ~= owner then + return + end + + local dir = minetest.string_to_pos(meta:get_string("dir")) + local height = meta:get_int("height") + local width = meta:get_int("width") + local org_pos = table.copy(pos) + if dir ~= nil and height ~= nil and width ~= nil then + dig_crane(pos, dir, height, width) + end + --check for correct size format + size = string.split(fields.size, ",") + if #size == 2 then + local height = tonumber(size[1]) + local width = tonumber(size[2]) + if height ~= nil and width ~= nil then + height = math.max(height, 8) + height = math.min(height, 24) + width = math.max(width, 8) + width = math.min(width, 24) + meta:set_int("height", height) + meta:set_int("width", width) + meta:set_string("infotext", "Crane size: " .. height .. "," .. width) + if dir ~= nil then + construct_crane(org_pos, dir, height, width, owner) + end + end + end + end, + + -- remove mast and arm if base gets destroyed + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local dir = minetest.string_to_pos(meta:get_string("dir")) + local height = meta:get_int("height") + local width = meta:get_int("width") + + if dir ~= nil and height ~= nil and width ~= nil then + dig_crane(pos, dir, height, width) + end + end, +}) + +---------------------------------------------------------------------------------------------------- +-- Register Crane balance +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:balance", { + description = "Tower Crane Balance", + tiles = { + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +---------------------------------------------------------------------------------------------------- +-- Register Crane mast +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:mast", { + description = "Tower Crane Mast", + drawtype = "glasslike_framed", + tiles = { + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +---------------------------------------------------------------------------------------------------- +-- Register Crane Switch (on) +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:mast_ctrl_on", { + description = "Tower Crane Mast Ctrl On", + drawtype = "node", + tiles = { + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl_on.png", + "towercrane_mast_ctrl_on.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + }, + on_rightclick = function (pos, node, clicker) + local meta = minetest.get_meta(pos) + if not clicker or not clicker:is_player() then + return + end + if clicker:get_player_name() ~= meta:get_string("owner") then + return + end + node.name = "towercrane:mast_ctrl_off" + minetest.swap_node(pos, node) + + local id = minetest.hash_node_position(pos) + if towercrane.id then + towercrane.id:remove() + towercrane.id = nil + else + + end + end, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Switch crane on/off") + end, + + after_place_node = function(pos, placer, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + end, + + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +---------------------------------------------------------------------------------------------------- +-- Register Crane Switch (off) +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:mast_ctrl_off", { + description = "Tower Crane Mast Ctrl Off", + drawtype = "node", + tiles = { + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl_off.png", + "towercrane_mast_ctrl_off.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + }, + on_rightclick = function (pos, node, clicker) + -- switch switch on, calculate the construction area, and place the hook + local meta = minetest.get_meta(pos) + -- only the owner is allowed to switch + if not clicker or not clicker:is_player() then + return + end + if clicker:get_player_name() ~= meta:get_string("owner") then + return + end + -- swap to the other node + node.name = "towercrane:mast_ctrl_on" + minetest.swap_node(pos, node) + local dir = minetest.string_to_pos(meta:get_string("dir")) + if pos ~= nil and dir ~= nil then + -- store hook instance in 'towercrane' + local id = minetest.hash_node_position(pos) + towercrane.id = place_hook(table.copy(pos), dir) + + -- calculate the construction area dimension (pos, pos2) + local height = meta:get_int("height") + local width = meta:get_int("width") + + -- pos1 = close/right + dir = turnright(dir) + local pos1 = vector.add(pos, vector.multiply(dir, width/2)) + dir = turnleft(dir) + local pos1 = vector.add(pos1, vector.multiply(dir, 1)) + pos1.y = pos.y - 1 + + -- pos2 = far/left + local pos2 = vector.add(pos1, vector.multiply(dir, width-1)) + dir = turnleft(dir) + pos2 = vector.add(pos2, vector.multiply(dir, width)) + pos2.y = pos.y - 4 + height + + -- normalize x/z so that pos2 > pos1 + if pos2.x < pos1.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos2.z < pos1.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + + -- store pos1/pos2 in the hook (LuaEntitySAO) + towercrane.id:get_luaentity().pos1 = pos1 + towercrane.id:get_luaentity().pos2 = pos2 + end + end, + + on_construct = function(pos) + -- add infotext + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Switch crane on/off") + end, + + after_place_node = function(pos, placer, itemstack, pointed_thing) + -- store owner for dig protection + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + end, + + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +---------------------------------------------------------------------------------------------------- +-- Register Crane arm 1 +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:arm", { + description = "Tower Crane Arm", + drawtype = "glasslike_framed", + tiles = { + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +---------------------------------------------------------------------------------------------------- +-- Register Crane arm 2 +---------------------------------------------------------------------------------------------------- +minetest.register_node("towercrane:arm2", { + description = "Tower Crane Arm2", + drawtype = "glasslike_framed", + tiles = { + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) diff --git a/init.lua.org b/init.lua.org new file mode 100644 index 0000000..2180ae1 --- /dev/null +++ b/init.lua.org @@ -0,0 +1,483 @@ +--[[ + + Tower Crane (Liebherr) Mod + by JoSt + + Copyright (C) 2017 Joachim Stolberg + LGPLv2.1+ + See LICENSE for more information + +]]-- + + +towercrane = {} + +local hook = { + physical = true, -- should be true, otherwise you dive into the underground + collisionbox = {-0.2, -0.2, -0.2, 0.2, 0.2, 0.2}, -- Groesse des Wuerfels bei Kollisionen + collide_with_objects = false, + visual = "cube", -- Object als Wuerfel + visual_size = {x=0.4, y=0.4}, -- Groesse des sichtbaren Wuerfels + textures = { + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + "towercrane_hook.png", + }, + groups = {cracky=1}, + -- local variabels + driver = nil, + speed_forward=0, + speed_right=0, + speed_up=0, +} + +-- ":" methode von "hook" (self ist versteckt) +function hook:on_rightclick(clicker) + if self.driver and clicker == self.driver then -- aussteigen? + clicker:set_detach() + self.driver = nil + elseif not self.driver then -- einsteigen? + self.driver = clicker + clicker:set_attach(self.object, "", {x=0,y=0,z=0}, {x=0,y=0,z=0}) + end +end + +function hook:on_step(dtime) + -- remove hook from last visit + if self.pos1 == nil or self.pos2 == nil then + self.object:remove() + return + end + if self.driver then + local ctrl = self.driver:get_player_control() + local yaw = self.driver:get_look_horizontal() + local pos = self.driver:getpos() + local max_speed = 5 + local velocity = 0.5 + + if ctrl.up then -- forward + self.speed_forward = math.min(self.speed_forward + velocity, max_speed) + elseif ctrl.down then -- backward + self.speed_forward = math.max(self.speed_forward - velocity, -max_speed) + elseif self.speed_forward > 0 then + self.speed_forward = self.speed_forward - velocity + elseif self.speed_forward < 0 then + self.speed_forward = self.speed_forward + velocity + end + + if ctrl.right then -- right + self.speed_right = math.min(self.speed_right + velocity, max_speed) + elseif ctrl.left then -- left + self.speed_right = math.max(self.speed_right - velocity, -max_speed) + elseif self.speed_right > 0 then + self.speed_right = self.speed_right - velocity + elseif self.speed_right < 0 then + self.speed_right = self.speed_right + velocity + end + + if ctrl.jump then -- up + self.speed_up = math.min(self.speed_up + velocity, 5) + elseif ctrl.sneak then -- down + self.speed_up = math.max(self.speed_up - velocity, -5) + elseif self.speed_up > 0 then + self.speed_up = self.speed_up - velocity + elseif self.speed_up < 0 then + self.speed_up = self.speed_up + velocity + end + + -- calculate the direction vector + local vx = math.cos(yaw+math.pi/2) * self.speed_forward + math.cos(yaw) * self.speed_right + local vz = math.sin(yaw+math.pi/2) * self.speed_forward + math.sin(yaw) * self.speed_right + + -- check if outside of the construction area + if pos.x < self.pos1.x then vx= velocity end + if pos.x > self.pos2.x then vx= -velocity end + if pos.y < self.pos1.y then self.speed_up= velocity end + if pos.y > self.pos2.y then self.speed_up= -velocity end + if pos.z < self.pos1.z then vz= velocity end + if pos.z > self.pos2.z then vz= -velocity end + + self.object:setvelocity({x=vx, y=self.speed_up,z=vz}) + else + self.object:setvelocity({x=0, y=0,z=0}) + end +end + +-- LuaEntitySAO (non-player moving things): see http://dev.minetest.net/LuaEntitySAO +minetest.register_entity("towercrane:hook", hook) + +---------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------- +local function turnright(dir) + local facedir = minetest.dir_to_facedir(dir) + return minetest.facedir_to_dir((facedir + 1) % 4) +end + +local function turnleft(dir) + local facedir = minetest.dir_to_facedir(dir) + return minetest.facedir_to_dir((facedir + 3) % 4) +end + +local function construct_crane(pos, dir, height, width, owner) + pos.y = pos.y + 1 + minetest.env:add_node(pos, {name="towercrane:mast_ctrl_off", param2=minetest.dir_to_facedir(dir)}) + local meta = minetest.get_meta(pos) + meta:set_string("dir", minetest.pos_to_string(dir)) + meta:set_string("owner", owner) + meta:set_int("height", height) + meta:set_int("width", width) + + for i = 1,height+1 do + pos.y = pos.y + 1 + minetest.env:add_node(pos, {name="towercrane:mast"}) + end + + pos.y = pos.y - 2 + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:add_node(pos, {name="towercrane:arm2"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:add_node(pos, {name="towercrane:arm"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:add_node(pos, {name="towercrane:balance"}) + pos.x = pos.x + 3 * dir.x + pos.z = pos.z + 3 * dir.z + + for i = 1,width do + pos.x = pos.x + dir.x + pos.z = pos.z + dir.z + if i % 2 == 0 then + minetest.env:add_node(pos, {name="towercrane:arm2"}) + else + minetest.env:add_node(pos, {name="towercrane:arm"}) + end + + end +end + +local function dig_crane(pos, dir, height, width) + pos.y = pos.y + 1 + minetest.env:remove_node(pos, {name="towercrane:mast_ctrl_off"}) + + for i = 1,height+1 do + pos.y = pos.y + 1 + minetest.env:remove_node(pos, {name="towercrane:mast"}) + end + + pos.y = pos.y - 2 + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:remove_node(pos, {name="towercrane:arm2"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:remove_node(pos, {name="towercrane:arm"}) + pos.x = pos.x - dir.x + pos.z = pos.z - dir.z + minetest.env:remove_node(pos, {name="towercrane:balance"}) + pos.x = pos.x + 3 * dir.x + pos.z = pos.z + 3 * dir.z + + for i = 1,width do + pos.x = pos.x + dir.x + pos.z = pos.z + dir.z + if i % 2 == 0 then + minetest.env:remove_node(pos, {name="towercrane:arm2"}) + else + minetest.env:remove_node(pos, {name="towercrane:arm"}) + end + + end +end + +local function place_hook(pos, dir) + pos.y = pos.y - 1 + pos.x = pos.x + dir.x + pos.z = pos.z + dir.z + return minetest.add_entity(pos, "towercrane:hook") +end + +minetest.register_node("towercrane:base", { + description = "Tower Crane Base", + inventory_image = "towercrane_invent.png", + tiles = { + "towercrane_base_top.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {cracky=1}, + formspec = set_formspec, + + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + local formspec = "size[5,4]".. + "label[0,0;Construction area size]" .. + "field[1,1.5;3,1;size;height,width;]" .. + "button_exit[1,2;2,1;exit;Save]" + meta:set_string("formspec", formspec) + + local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) + local dir = minetest.facedir_to_dir(fdir) + meta:set_string("dir", minetest.pos_to_string(dir)) + end, + + on_receive_fields = function(pos, formname, fields, player) + if fields.size == nil then + return + end + local meta = minetest.get_meta(pos) + + if not player or not player:is_player() then + return + end + local owner = meta:get_string("owner") + if player:get_player_name() ~= owner then + return + end + + local dir = minetest.string_to_pos(meta:get_string("dir")) + local height = meta:get_int("height") + local width = meta:get_int("width") + local org_pos = table.copy(pos) + if dir ~= nil and height ~= nil and width ~= nil then + dig_crane(pos, dir, height, width) + end + --check for correct size format + size = string.split(fields.size, ",") + if #size == 2 then + local height = tonumber(size[1]) + local width = tonumber(size[2]) + if height ~= nil and width ~= nil then + height = math.max(height, 8) + height = math.min(height, 24) + width = math.max(width, 8) + width = math.min(width, 24) + meta:set_int("height", height) + meta:set_int("width", width) + meta:set_string("infotext", "Crane size: " .. height .. "," .. width) + if dir ~= nil then + construct_crane(org_pos, dir, height, width, owner) + end + end + end + end, + + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local dir = minetest.string_to_pos(meta:get_string("dir")) + local height = meta:get_int("height") + local width = meta:get_int("width") + + if dir ~= nil and height ~= nil and width ~= nil then + dig_crane(pos, dir, height, width) + end + end, +}) + +minetest.register_on_leaveplayer(function(ObjectRef, timed_out) + print("Schade") + end +) + + +minetest.register_node("towercrane:balance", { + description = "Tower Crane Balance", + tiles = { + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + "towercrane_base.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +minetest.register_node("towercrane:mast", { + description = "Tower Crane Mast", + drawtype = "glasslike_framed", + tiles = { + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + "towercrane_mast.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +minetest.register_node("towercrane:mast_ctrl_on", { + description = "Tower Crane Mast Ctrl On", + drawtype = "node", + tiles = { + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl_on.png", + "towercrane_mast_ctrl_on.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + }, + on_rightclick = function (pos, node, clicker) + local meta = minetest.get_meta(pos) + if not clicker or not clicker:is_player() then + return + end + if clicker:get_player_name() ~= meta:get_string("owner") then + return + end + node.name = "towercrane:mast_ctrl_off" + minetest.swap_node(pos, node) + + local id = minetest.hash_node_position(pos) + if towercrane.id then + towercrane.id:remove() + towercrane.id = nil + else + + end + end, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Switch crane on/off") + end, + + after_place_node = function(pos, placer, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + end, + + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +minetest.register_node("towercrane:mast_ctrl_off", { + description = "Tower Crane Mast Ctrl Off", + drawtype = "node", + tiles = { + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl_off.png", + "towercrane_mast_ctrl_off.png", + "towercrane_mast_ctrl.png", + "towercrane_mast_ctrl.png", + }, + on_rightclick = function (pos, node, clicker) + -- switch switch on, calculate the construction area, and place the hook + local meta = minetest.get_meta(pos) + -- only the owner is allowed to switch + if not clicker or not clicker:is_player() then + return + end + if clicker:get_player_name() ~= meta:get_string("owner") then + return + end + -- swap to the other node + node.name = "towercrane:mast_ctrl_on" + minetest.swap_node(pos, node) + local dir = minetest.string_to_pos(meta:get_string("dir")) + if pos ~= nil and dir ~= nil then + -- store hook instance in 'towercrane' + local id = minetest.hash_node_position(pos) + towercrane.id = place_hook(table.copy(pos), dir) + + -- calculate the construction area dimension (pos, pos2) + local height = meta:get_int("height") + local width = meta:get_int("width") + + -- pos1 = close/right + dir = turnright(dir) + local pos1 = vector.add(pos, vector.multiply(dir, width/2)) + dir = turnleft(dir) + local pos1 = vector.add(pos1, vector.multiply(dir, 1)) + pos1.y = pos.y - 1 + + -- pos2 = far/left + local pos2 = vector.add(pos1, vector.multiply(dir, width-1)) + dir = turnleft(dir) + pos2 = vector.add(pos2, vector.multiply(dir, width)) + pos2.y = pos.y - 4 + height + + -- normalize x/z so that pos2 > pos1 + if pos2.x < pos1.x then + pos2.x, pos1.x = pos1.x, pos2.x + end + if pos2.z < pos1.z then + pos2.z, pos1.z = pos1.z, pos2.z + end + + -- store pos1/pos2 in the hook (LuaEntitySAO) + towercrane.id:get_luaentity().pos1 = pos1 + towercrane.id:get_luaentity().pos2 = pos2 + end + end, + + on_construct = function(pos) + -- add infotext + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Switch crane on/off") + end, + + after_place_node = function(pos, placer, itemstack, pointed_thing) + -- store owner for dig protection + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + end, + + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +minetest.register_node("towercrane:arm", { + description = "Tower Crane Arm", + drawtype = "glasslike_framed", + tiles = { + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + "towercrane_arm.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) + +minetest.register_node("towercrane:arm2", { + description = "Tower Crane Arm2", + drawtype = "glasslike_framed", + tiles = { + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + "towercrane_arm2.png", + }, + paramtype2 = "facedir", + is_ground_content = false, + groups = {crumbly=0, not_in_creative_inventory=1}, +}) diff --git a/lua_api.dtxt2 b/lua_api.dtxt2 new file mode 100644 index 0000000..975fd64 --- /dev/null +++ b/lua_api.dtxt2 @@ -0,0 +1,4676 @@ +# Minetest Lua Modding API Reference 0.4.16 + +* More information at +* Developer Wiki: + +Introduction +------------ +Content and functionality can be added to Minetest 0.4 by using Lua +scripting in run-time loaded mods. + +A mod is a self-contained bunch of scripts, textures and other related +things that is loaded by and interfaces with Minetest. + +Mods are contained and ran solely on the server side. Definitions and media +files are automatically transferred to the client. + +If you see a deficiency in the API, feel free to attempt to add the +functionality in the engine and API. You can send such improvements as +source code patches to . + +Programming in Lua +------------------ +If you have any difficulty in understanding this, please read +[Programming in Lua](http://www.lua.org/pil/). + +Startup +------- +Mods are loaded during server startup from the mod load paths by running +the `init.lua` scripts in a shared environment. + +Paths +----- +* `RUN_IN_PLACE=1` (Windows release, local build) + * `$path_user`: + * Linux: `` + * Windows: `` + * `$path_share` + * Linux: `` + * Windows: `` +* `RUN_IN_PLACE=0`: (Linux release) + * `$path_share` + * Linux: `/usr/share/minetest` + * Windows: `/minetest-0.4.x` + * `$path_user`: + * Linux: `$HOME/.minetest` + * Windows: `C:/users//AppData/minetest` (maybe) + +Games +----- +Games are looked up from: + +* `$path_share/games/gameid/` +* `$path_user/games/gameid/` + +where `gameid` is unique to each game. + +The game directory contains the file `game.conf`, which contains these fields: + + name = + +e.g. + + name = Minetest + +The game directory can contain the file minetest.conf, which will be used +to set default settings when running the particular game. +It can also contain a settingtypes.txt in the same format as the one in builtin. +This settingtypes.txt will be parsed by the menu and the settings will be displayed +in the "Games" category in the settings tab. + +### Menu images + +Games can provide custom main menu images. They are put inside a `menu` directory +inside the game directory. + +The images are named `$identifier.png`, where `$identifier` is +one of `overlay,background,footer,header`. +If you want to specify multiple images for one identifier, add additional images named +like `$identifier.$n.png`, with an ascending number $n starting with 1, and a random +image will be chosen from the provided ones. + + +Mod load path +------------- +Generic: + +* `$path_share/games/gameid/mods/` +* `$path_share/mods/` +* `$path_user/games/gameid/mods/` +* `$path_user/mods/` (User-installed mods) +* `$worldpath/worldmods/` + +In a run-in-place version (e.g. the distributed windows version): + +* `minetest-0.4.x/games/gameid/mods/` +* `minetest-0.4.x/mods/` (User-installed mods) +* `minetest-0.4.x/worlds/worldname/worldmods/` + +On an installed version on Linux: + +* `/usr/share/minetest/games/gameid/mods/` +* `$HOME/.minetest/mods/` (User-installed mods) +* `$HOME/.minetest/worlds/worldname/worldmods` + +Mod load path for world-specific games +-------------------------------------- +It is possible to include a game in a world; in this case, no mods or +games are loaded or checked from anywhere else. + +This is useful for e.g. adventure worlds. + +This happens if the following directory exists: + + $world/game/ + +Mods should be then be placed in: + + $world/game/mods/ + +Modpack support +---------------- +Mods can be put in a subdirectory, if the parent directory, which otherwise +should be a mod, contains a file named `modpack.txt`. This file shall be +empty, except for lines starting with `#`, which are comments. + +Mod directory structure +------------------------ + + mods + |-- modname + | |-- depends.txt + | |-- screenshot.png + | |-- description.txt + | |-- settingtypes.txt + | |-- init.lua + | |-- models + | |-- textures + | | |-- modname_stuff.png + | | `-- modname_something_else.png + | |-- sounds + | |-- media + | `-- + `-- another + + +### modname +The location of this directory can be fetched by using +`minetest.get_modpath(modname)`. + +### `depends.txt` +List of mods that have to be loaded before loading this mod. + +A single line contains a single modname. + +Optional dependencies can be defined by appending a question mark +to a single modname. Their meaning is that if the specified mod +is missing, that does not prevent this mod from being loaded. + +### `screenshot.png` +A screenshot shown in the mod manager within the main menu. It should +have an aspect ratio of 3:2 and a minimum size of 300×200 pixels. + +### `description.txt` +A File containing description to be shown within mainmenu. + +### `settingtypes.txt` +A file in the same format as the one in builtin. It will be parsed by the +settings menu and the settings will be displayed in the "Mods" category. + +### `init.lua` +The main Lua script. Running this script should register everything it +wants to register. Subsequent execution depends on minetest calling the +registered callbacks. + +`minetest.settings` can be used to read custom or existing settings at load +time, if necessary. (See `Settings`) + +### `models` +Models for entities or meshnodes. + +### `textures`, `sounds`, `media` +Media files (textures, sounds, whatever) that will be transferred to the +client and will be available for use by the mod. + +Naming convention for registered textual names +---------------------------------------------- +Registered names should generally be in this format: + + `modname:` + +`` can have these characters: + + a-zA-Z0-9_ + +This is to prevent conflicting names from corrupting maps and is +enforced by the mod loader. + +### Example +In the mod `experimental`, there is the ideal item/node/entity name `tnt`. +So the name should be `experimental:tnt`. + +Enforcement can be overridden by prefixing the name with `:`. This can +be used for overriding the registrations of some other mod. + +Example: Any mod can redefine `experimental:tnt` by using the name + + :experimental:tnt + +when registering it. +(also that mod is required to have `experimental` as a dependency) + +The `:` prefix can also be used for maintaining backwards compatibility. + +### Aliases +Aliases can be added by using `minetest.register_alias(name, convert_to)` or +`minetest.register_alias_force(name, convert_to)`. + +This will make Minetest to convert things called name to things called +`convert_to`. + +The only difference between `minetest.register_alias` and +`minetest.register_alias_force` is that if an item called `name` exists, +`minetest.register_alias` will do nothing while +`minetest.register_alias_force` will unregister it. + +This can be used for maintaining backwards compatibility. + +This can be also used for setting quick access names for things, e.g. if +you have an item called `epiclylongmodname:stuff`, you could do + + minetest.register_alias("stuff", "epiclylongmodname:stuff") + +and be able to use `/giveme stuff`. + +Textures +-------- +Mods should generally prefix their textures with `modname_`, e.g. given +the mod name `foomod`, a texture could be called: + + foomod_foothing.png + +Textures are referred to by their complete name, or alternatively by +stripping out the file extension: + +* e.g. `foomod_foothing.png` +* e.g. `foomod_foothing` + +Texture modifiers +----------------- +There are various texture modifiers that can be used +to generate textures on-the-fly. + +### Texture overlaying +Textures can be overlaid by putting a `^` between them. + +Example: + + default_dirt.png^default_grass_side.png + +`default_grass_side.png` is overlayed over `default_dirt.png`. +The texture with the lower resolution will be automatically upscaled to +the higher resolution texture. + +### Texture grouping +Textures can be grouped together by enclosing them in `(` and `)`. + +Example: `cobble.png^(thing1.png^thing2.png)` + +A texture for `thing1.png^thing2.png` is created and the resulting +texture is overlaid on top of `cobble.png`. + +### Escaping +Modifiers that accept texture names (e.g. `[combine`) accept escaping to allow +passing complex texture names as arguments. Escaping is done with backslash and +is required for `^` and `:`. + +Example: `cobble.png^[lowpart:50:color.png\^[mask\:trans.png` + +The lower 50 percent of `color.png^[mask:trans.png` are overlaid +on top of `cobble.png`. + +### Advanced texture modifiers + +#### `[crack::

` +* `` = animation frame count +* `

` = current animation frame + +Draw a step of the crack animation on the texture. + +Example: + + default_cobble.png^[crack:10:1 + +#### `[combine:x:,=:,=:...` +* `` = width +* `` = height +* `` = x position +* `` = y position +* `` = texture to combine + +Creates a texture of size `` times `` and blits the listed files to their +specified coordinates. + +Example: + + [combine:16x32:0,0=default_cobble.png:0,16=default_wood.png + +#### `[resize:x` +Resizes the texture to the given dimensions. + +Example: + + default_sandstone.png^[resize:16x16 + +#### `[opacity:` +Makes the base image transparent according to the given ratio. + +`r` must be between 0 and 255. +0 means totally transparent. 255 means totally opaque. + +Example: + + default_sandstone.png^[opacity:127 + +#### `[invert:` +Inverts the given channels of the base image. +Mode may contain the characters "r", "g", "b", "a". +Only the channels that are mentioned in the mode string will be inverted. + +Example: + + default_apple.png^[invert:rgb + +#### `[brighten` +Brightens the texture. + +Example: + + tnt_tnt_side.png^[brighten + +#### `[noalpha` +Makes the texture completely opaque. + +Example: + + default_leaves.png^[noalpha + +#### `[makealpha:,,` +Convert one color to transparency. + +Example: + + default_cobble.png^[makealpha:128,128,128 + +#### `[transform` +* `` = transformation(s) to apply + +Rotates and/or flips the image. + +`` can be a number (between 0 and 7) or a transform name. +Rotations are counter-clockwise. + + 0 I identity + 1 R90 rotate by 90 degrees + 2 R180 rotate by 180 degrees + 3 R270 rotate by 270 degrees + 4 FX flip X + 5 FXR90 flip X then rotate by 90 degrees + 6 FY flip Y + 7 FYR90 flip Y then rotate by 90 degrees + +Example: + + default_stone.png^[transformFXR90 + +#### `[inventorycube{{{` +Escaping does not apply here and `^` is replaced by `&` in texture names instead. + +Create an inventory cube texture using the side textures. + +Example: + + [inventorycube{grass.png{dirt.png&grass_side.png{dirt.png&grass_side.png + +Creates an inventorycube with `grass.png`, `dirt.png^grass_side.png` and +`dirt.png^grass_side.png` textures + +#### `[lowpart::` +Blit the lower ``% part of `` on the texture. + +Example: + + base.png^[lowpart:25:overlay.png + +#### `[verticalframe::` +* `` = animation frame count +* `` = current animation frame + +Crops the texture to a frame of a vertical animation. + +Example: + + default_torch_animated.png^[verticalframe:16:8 + +#### `[mask:` +Apply a mask to the base image. + +The mask is applied using binary AND. + +#### `[sheet:x:,` +Retrieves a tile at position x,y from the base image +which it assumes to be a tilesheet with dimensions w,h. + + +#### `[colorize::` +Colorize the textures with the given color. +`` is specified as a `ColorString`. +`` is an int ranging from 0 to 255 or the word "`alpha`". If +it is an int, then it specifies how far to interpolate between the +colors where 0 is only the texture color and 255 is only ``. If +omitted, the alpha of `` will be used as the ratio. If it is +the word "`alpha`", then each texture pixel will contain the RGB of +`` and the alpha of `` multiplied by the alpha of the +texture pixel. + +#### `[multiply:` +Multiplies texture colors with the given color. +`` is specified as a `ColorString`. +Result is more like what you'd expect if you put a color on top of another +color. Meaning white surfaces get a lot of your new color while black parts don't +change very much. + +Hardware coloring +----------------- +The goal of hardware coloring is to simplify the creation of +colorful nodes. If your textures use the same pattern, and they only +differ in their color (like colored wool blocks), you can use hardware +coloring instead of creating and managing many texture files. +All of these methods use color multiplication (so a white-black texture +with red coloring will result in red-black color). + +### Static coloring +This method is useful if you wish to create nodes/items with +the same texture, in different colors, each in a new node/item definition. + +#### Global color +When you register an item or node, set its `color` field (which accepts a +`ColorSpec`) to the desired color. + +An `ItemStack`s static color can be overwritten by the `color` metadata +field. If you set that field to a `ColorString`, that color will be used. + +#### Tile color +Each tile may have an individual static color, which overwrites every +other coloring methods. To disable the coloring of a face, +set its color to white (because multiplying with white does nothing). +You can set the `color` property of the tiles in the node's definition +if the tile is in table format. + +### Palettes +For nodes and items which can have many colors, a palette is more +suitable. A palette is a texture, which can contain up to 256 pixels. +Each pixel is one possible color for the node/item. +You can register one node/item, which can have up to 256 colors. + +#### Palette indexing +When using palettes, you always provide a pixel index for the given +node or `ItemStack`. The palette is read from left to right and from +top to bottom. If the palette has less than 256 pixels, then it is +stretched to contain exactly 256 pixels (after arranging the pixels +to one line). The indexing starts from 0. + +Examples: +* 16x16 palette, index = 0: the top left corner +* 16x16 palette, index = 4: the fifth pixel in the first row +* 16x16 palette, index = 16: the pixel below the top left corner +* 16x16 palette, index = 255: the bottom right corner +* 2 (width)x4 (height) palette, index=31: the top left corner. + The palette has 8 pixels, so each pixel is stretched to 32 pixels, + to ensure the total 256 pixels. +* 2x4 palette, index=32: the top right corner +* 2x4 palette, index=63: the top right corner +* 2x4 palette, index=64: the pixel below the top left corner + +#### Using palettes with items +When registering an item, set the item definition's `palette` field to +a texture. You can also use texture modifiers. + +The `ItemStack`'s color depends on the `palette_index` field of the +stack's metadata. `palette_index` is an integer, which specifies the +index of the pixel to use. + +#### Linking palettes with nodes +When registering a node, set the item definition's `palette` field to +a texture. You can also use texture modifiers. +The node's color depends on its `param2`, so you also must set an +appropriate `drawtype`: +* `drawtype = "color"` for nodes which use their full `param2` for + palette indexing. These nodes can have 256 different colors. + The palette should contain 256 pixels. +* `drawtype = "colorwallmounted"` for nodes which use the first + five bits (most significant) of `param2` for palette indexing. + The remaining three bits are describing rotation, as in `wallmounted` + draw type. Division by 8 yields the palette index (without stretching the + palette). These nodes can have 32 different colors, and the palette + should contain 32 pixels. + Examples: + * `param2 = 17` is 2 * 8 + 1, so the rotation is 1 and the third (= 2 + 1) + pixel will be picked from the palette. + * `param2 = 35` is 4 * 8 + 3, so the rotation is 3 and the fifth (= 4 + 1) + pixel will be picked from the palette. +* `drawtype = "colorfacedir"` for nodes which use the first + three bits of `param2` for palette indexing. The remaining + five bits are describing rotation, as in `facedir` draw type. + Division by 32 yields the palette index (without stretching the + palette). These nodes can have 8 different colors, and the + palette should contain 8 pixels. + Examples: + * `param2 = 17` is 0 * 32 + 17, so the rotation is 17 and the + first (= 0 + 1) pixel will be picked from the palette. + * `param2 = 35` is 1 * 32 + 3, so the rotation is 3 and the + second (= 1 + 1) pixel will be picked from the palette. + +To colorize a node on the map, set its `param2` value (according +to the node's draw type). + +### Conversion between nodes in the inventory and the on the map +Static coloring is the same for both cases, there is no need +for conversion. + +If the `ItemStack`'s metadata contains the `color` field, it will be +lost on placement, because nodes on the map can only use palettes. + +If the `ItemStack`'s metadata contains the `palette_index` field, you +currently must manually convert between it and the node's `param2` with +custom `on_place` and `on_dig` callbacks. + +### Colored items in craft recipes +Craft recipes only support item strings, but fortunately item strings +can also contain metadata. Example craft recipe registration: + + local stack = ItemStack("wool:block") + dyed:get_meta():set_int("palette_index", 3) -- add index + minetest.register_craft({ + output = dyed:to_string(), -- convert to string + type = "shapeless", + recipe = { + "wool:block", + "dye:red", + }, + }) + +Metadata field filtering in the `recipe` field are not supported yet, +so the craft output is independent of the color of the ingredients. + +Soft texture overlay +-------------------- +Sometimes hardware coloring is not enough, because it affects the +whole tile. Soft texture overlays were added to Minetest to allow +the dynamic coloring of only specific parts of the node's texture. +For example a grass block may have colored grass, while keeping the +dirt brown. + +These overlays are 'soft', because unlike texture modifiers, the layers +are not merged in the memory, but they are simply drawn on top of each +other. This allows different hardware coloring, but also means that +tiles with overlays are drawn slower. Using too much overlays might +cause FPS loss. + +To define an overlay, simply set the `overlay_tiles` field of the node +definition. These tiles are defined in the same way as plain tiles: +they can have a texture name, color etc. +To skip one face, set that overlay tile to an empty string. + +Example (colored grass block): + + minetest.register_node("default:dirt_with_grass", { + description = "Dirt with Grass", + -- Regular tiles, as usual + -- The dirt tile disables palette coloring + tiles = {{name = "default_grass.png"}, + {name = "default_dirt.png", color = "white"}}, + -- Overlay tiles: define them in the same style + -- The top and bottom tile does not have overlay + overlay_tiles = {"", "", + {name = "default_grass_side.png", tileable_vertical = false}}, + -- Global color, used in inventory + color = "green", + -- Palette in the world + paramtype2 = "color", + palette = "default_foilage.png", + }) + +Sounds +------ +Only Ogg Vorbis files are supported. + +For positional playing of sounds, only single-channel (mono) files are +supported. Otherwise OpenAL will play them non-positionally. + +Mods should generally prefix their sounds with `modname_`, e.g. given +the mod name "`foomod`", a sound could be called: + + foomod_foosound.ogg + +Sounds are referred to by their name with a dot, a single digit and the +file extension stripped out. When a sound is played, the actual sound file +is chosen randomly from the matching sounds. + +When playing the sound `foomod_foosound`, the sound is chosen randomly +from the available ones of the following files: + +* `foomod_foosound.ogg` +* `foomod_foosound.0.ogg` +* `foomod_foosound.1.ogg` +* (...) +* `foomod_foosound.9.ogg` + +Examples of sound parameter tables: + + -- Play locationless on all clients + { + gain = 1.0, -- default + fade = 0.0, -- default, change to a value > 0 to fade the sound in + } + -- Play locationless to one player + { + to_player = name, + gain = 1.0, -- default + fade = 0.0, -- default, change to a value > 0 to fade the sound in + } + -- Play locationless to one player, looped + { + to_player = name, + gain = 1.0, -- default + loop = true, + } + -- Play in a location + { + pos = {x = 1, y = 2, z = 3}, + gain = 1.0, -- default + max_hear_distance = 32, -- default, uses an euclidean metric + } + -- Play connected to an object, looped + { + object = , + gain = 1.0, -- default + max_hear_distance = 32, -- default, uses an euclidean metric + loop = true, + } + +Looped sounds must either be connected to an object or played locationless to +one player using `to_player = name,` + +### `SimpleSoundSpec` +* e.g. `""` +* e.g. `"default_place_node"` +* e.g. `{}` +* e.g. `{name = "default_place_node"}` +* e.g. `{name = "default_place_node", gain = 1.0}` + +## Registered definitions of stuff +------------------------------- +Anything added using certain `minetest.register_*` functions get added to +the global `minetest.registered_*` tables. + +* `minetest.register_entity(name, prototype table)` + * added to `minetest.registered_entities[name]` + +* `minetest.register_node(name, node definition)` + * added to `minetest.registered_items[name]` + * added to `minetest.registered_nodes[name]` + +* `minetest.register_tool(name, item definition)` + * added to `minetest.registered_items[name]` + +* `minetest.register_craftitem(name, item definition)` + * added to `minetest.registered_items[name]` + +* `minetest.unregister_item(name)` + * Unregisters the item name from engine, and deletes the entry with key + * `name` from `minetest.registered_items` and from the associated item + * table according to its nature: `minetest.registered_nodes[]` etc + +* `minetest.register_biome(biome definition)` + * returns an integer uniquely identifying the registered biome + * added to `minetest.registered_biome` with the key of `biome.name` + * if `biome.name` is nil, the key is the returned ID + +* `minetest.register_ore(ore definition)` + * returns an integer uniquely identifying the registered ore + * added to `minetest.registered_ores` with the key of `ore.name` + * if `ore.name` is nil, the key is the returned ID + +* `minetest.register_decoration(decoration definition)` + * returns an integer uniquely identifying the registered decoration + * added to `minetest.registered_decorations` with the key of `decoration.name` + * if `decoration.name` is nil, the key is the returned ID + +* `minetest.register_schematic(schematic definition)` + * returns an integer uniquely identifying the registered schematic + * added to `minetest.registered_schematic` with the key of `schematic.name` + * if `schematic.name` is nil, the key is the returned ID + * if the schematic is loaded from a file, schematic.name is set to the filename + * if the function is called when loading the mod, and schematic.name is a relative + path, then the current mod path will be prepended to the schematic filename + +* `minetest.clear_registered_biomes()` + * clears all biomes currently registered + +* `minetest.clear_registered_ores()` + * clears all ores currently registered + +* `minetest.clear_registered_decorations()` + * clears all decorations currently registered + +* `minetest.clear_registered_schematics()` + * clears all schematics currently registered + +Note that in some cases you will stumble upon things that are not contained +in these tables (e.g. when a mod has been removed). Always check for +existence before trying to access the fields. + +Example: If you want to check the drawtype of a node, you could do: + + local function get_nodedef_field(nodename, fieldname) + if not minetest.registered_nodes[nodename] then + return nil + end + return minetest.registered_nodes[nodename][fieldname] + end + local drawtype = get_nodedef_field(nodename, "drawtype") + +Example: `minetest.get_item_group(name, group)` has been implemented as: + + function minetest.get_item_group(name, group) + if not minetest.registered_items[name] or not + minetest.registered_items[name].groups[group] then + return 0 + end + return minetest.registered_items[name].groups[group] + end + +## Nodes +----- +Nodes are the bulk data of the world: cubes and other things that take the +space of a cube. Huge amounts of them are handled efficiently, but they +are quite static. + +The definition of a node is stored and can be accessed by name in + + minetest.registered_nodes[node.name] + +See "Registered definitions of stuff". + +Nodes are passed by value between Lua and the engine. +They are represented by a table: + + {name="name", param1=num, param2=num} + +`param1` and `param2` are 8-bit integers ranging from 0 to 255. The engine uses +them for certain automated functions. If you don't use these functions, you can +use them to store arbitrary values. + +The functions of `param1` and `param2` are determined by certain fields in the +node definition: + +`param1` is reserved for the engine when `paramtype != "none"`: + + paramtype = "light" + ^ The value stores light with and without sun in its upper and lower 4 bits + respectively. Allows light to propagate from or through the node with + light value falling by 1 per node. This is essential for a light source + node to spread its light. + +`param2` is reserved for the engine when any of these are used: + + liquidtype == "flowing" + ^ The level and some flags of the liquid is stored in param2 + drawtype == "flowingliquid" + ^ The drawn liquid level is read from param2 + drawtype == "torchlike" + drawtype == "signlike" + paramtype2 == "wallmounted" + ^ The rotation of the node is stored in param2. You can make this value + by using minetest.dir_to_wallmounted(). + paramtype2 == "facedir" + ^ The rotation of the node is stored in param2. Furnaces and chests are + rotated this way. Can be made by using minetest.dir_to_facedir(). + Values range 0 - 23 + facedir / 4 = axis direction: + 0 = y+ 1 = z+ 2 = z- 3 = x+ 4 = x- 5 = y- + facedir modulo 4 = rotation around that axis + paramtype2 == "leveled" + paramtype2 == "degrotate" + ^ The rotation of this node is stored in param2. Plants are rotated this way. + Values range 0 - 179. The value stored in param2 is multiplied by two to + get the actual rotation of the node. + paramtype2 == "meshoptions" + ^ Only valid for "plantlike". The value of param2 becomes a bitfield which can + be used to change how the client draws plantlike nodes. Bits 0, 1 and 2 form + a mesh selector. Currently the following meshes are choosable: + 0 = a "x" shaped plant (ordinary plant) + 1 = a "+" shaped plant (just rotated 45 degrees) + 2 = a "*" shaped plant with 3 faces instead of 2 + 3 = a "#" shaped plant with 4 faces instead of 2 + 4 = a "#" shaped plant with 4 faces that lean outwards + 5-7 are unused and reserved for future meshes. + Bits 3 through 7 are optional flags that can be combined and give these + effects: + bit 3 (0x08) - Makes the plant slightly vary placement horizontally + bit 4 (0x10) - Makes the plant mesh 1.4x larger + bit 5 (0x20) - Moves each face randomly a small bit down (1/8 max) + bits 6-7 are reserved for future use. + paramtype2 == "color" + ^ `param2` tells which color is picked from the palette. + The palette should have 256 pixels. + paramtype2 == "colorfacedir" + ^ Same as `facedir`, but with colors. + The first three bits of `param2` tells which color + is picked from the palette. + The palette should have 8 pixels. + paramtype2 == "colorwallmounted" + ^ Same as `wallmounted`, but with colors. + The first five bits of `param2` tells which color + is picked from the palette. + The palette should have 32 pixels. + paramtype2 == "glasslikeliquidlevel" + ^ Only valid for "glasslike_framed" or "glasslike_framed_optional" drawtypes. + param2 defines 64 levels of internal liquid. + Liquid texture is defined using `special_tiles = {"modname_tilename.png"},` + +Nodes can also contain extra data. See "Node Metadata". + +Node drawtypes +--------------- +There are a bunch of different looking node types. + +Look for examples in `games/minimal` or `games/minetest_game`. + +* `normal` +* `airlike` +* `liquid` +* `flowingliquid` +* `glasslike` +* `glasslike_framed` +* `glasslike_framed_optional` +* `allfaces` +* `allfaces_optional` +* `torchlike` +* `signlike` +* `plantlike` +* `firelike` +* `fencelike` +* `raillike` +* `nodebox` -- See below. (**Experimental!**) +* `mesh` -- use models for nodes + +`*_optional` drawtypes need less rendering time if deactivated (always client side). + +Node boxes +----------- +Node selection boxes are defined using "node boxes" + +The `nodebox` node drawtype allows defining visual of nodes consisting of +arbitrary number of boxes. It allows defining stuff like stairs. Only the +`fixed` and `leveled` box type is supported for these. + +Please note that this is still experimental, and may be incompatibly +changed in the future. + +A nodebox is defined as any of: + + { + -- A normal cube; the default in most things + type = "regular" + } + { + -- A fixed box (facedir param2 is used, if applicable) + type = "fixed", + fixed = box OR {box1, box2, ...} + } + { + -- A box like the selection box for torches + -- (wallmounted param2 is used, if applicable) + type = "wallmounted", + wall_top = box, + wall_bottom = box, + wall_side = box + } + { + -- A node that has optional boxes depending on neighbouring nodes' + -- presence and type. See also `connects_to`. + type = "connected", + fixed = box OR {box1, box2, ...} + connect_top = box OR {box1, box2, ...} + connect_bottom = box OR {box1, box2, ...} + connect_front = box OR {box1, box2, ...} + connect_left = box OR {box1, box2, ...} + connect_back = box OR {box1, box2, ...} + connect_right = box OR {box1, box2, ...} + } + +A `box` is defined as: + + {x1, y1, z1, x2, y2, z2} + +A box of a regular node would look like: + + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + +`type = "leveled"` is same as `type = "fixed"`, but `y2` will be automatically +set to level from `param2`. + + +Meshes +------ +If drawtype `mesh` is used, tiles should hold model materials textures. +Only static meshes are implemented. +For supported model formats see Irrlicht engine documentation. + + +Noise Parameters +---------------- +Noise Parameters, or commonly called "`NoiseParams`", define the properties of +perlin noise. + +### `offset` +Offset that the noise is translated by (i.e. added) after calculation. + +### `scale` +Factor that the noise is scaled by (i.e. multiplied) after calculation. + +### `spread` +Vector containing values by which each coordinate is divided by before calculation. +Higher spread values result in larger noise features. + +A value of `{x=250, y=250, z=250}` is common. + +### `seed` +Random seed for the noise. Add the world seed to a seed offset for world-unique noise. +In the case of `minetest.get_perlin()`, this value has the world seed automatically added. + +### `octaves` +Number of times the noise gradient is accumulated into the noise. + +Increase this number to increase the amount of detail in the resulting noise. + +A value of `6` is common. + +### `persistence` +Factor by which the effect of the noise gradient function changes with each successive octave. + +Values less than `1` make the details of successive octaves' noise diminish, while values +greater than `1` make successive octaves stronger. + +A value of `0.6` is common. + +### `lacunarity` +Factor by which the noise feature sizes change with each successive octave. + +A value of `2.0` is common. + +### `flags` +Leave this field unset for no special handling. + +Currently supported are `defaults`, `eased` and `absvalue`. + +#### `defaults` +Specify this if you would like to keep auto-selection of eased/not-eased while specifying +some other flags. + +#### `eased` +Maps noise gradient values onto a quintic S-curve before performing interpolation. +This results in smooth, rolling noise. Disable this (`noeased`) for sharp-looking noise. +If no flags are specified (or defaults is), 2D noise is eased and 3D noise is not eased. + +#### `absvalue` +Accumulates the absolute value of each noise gradient result. + +Noise parameters format example for 2D or 3D perlin noise or perlin noise maps: + + np_terrain = { + offset = 0, + scale = 1, + spread = {x=500, y=500, z=500}, + seed = 571347, + octaves = 5, + persist = 0.63, + lacunarity = 2.0, + flags = "defaults, absvalue" + } + ^ A single noise parameter table can be used to get 2D or 3D noise, + when getting 2D noise spread.z is ignored. + + +Ore types +--------- +These tell in what manner the ore is generated. + +All default ores are of the uniformly-distributed scatter type. + +### `scatter` +Randomly chooses a location and generates a cluster of ore. + +If `noise_params` is specified, the ore will be placed if the 3D perlin noise at +that point is greater than the `noise_threshold`, giving the ability to create +a non-equal distribution of ore. + +### `sheet` +Creates a sheet of ore in a blob shape according to the 2D perlin noise +described by `noise_params` and `noise_threshold`. This is essentially an +improved version of the so-called "stratus" ore seen in some unofficial mods. + +This sheet consists of vertical columns of uniform randomly distributed height, +varying between the inclusive range `column_height_min` and `column_height_max`. +If `column_height_min` is not specified, this parameter defaults to 1. +If `column_height_max` is not specified, this parameter defaults to `clust_size` +for reverse compatibility. New code should prefer `column_height_max`. + +The `column_midpoint_factor` parameter controls the position of the column at which +ore eminates from. If 1, columns grow upward. If 0, columns grow downward. If 0.5, +columns grow equally starting from each direction. `column_midpoint_factor` is a +decimal number ranging in value from 0 to 1. If this parameter is not specified, +the default is 0.5. + +The ore parameters `clust_scarcity` and `clust_num_ores` are ignored for this ore type. + +### `puff` +Creates a sheet of ore in a cloud-like puff shape. + +As with the `sheet` ore type, the size and shape of puffs are described by +`noise_params` and `noise_threshold` and are placed at random vertical positions +within the currently generated chunk. + +The vertical top and bottom displacement of each puff are determined by the noise +parameters `np_puff_top` and `np_puff_bottom`, respectively. + + +### `blob` +Creates a deformed sphere of ore according to 3d perlin noise described by +`noise_params`. The maximum size of the blob is `clust_size`, and +`clust_scarcity` has the same meaning as with the `scatter` type. + +### `vein` +Creates veins of ore varying in density by according to the intersection of two +instances of 3d perlin noise with diffferent seeds, both described by +`noise_params`. `random_factor` varies the influence random chance has on +placement of an ore inside the vein, which is `1` by default. Note that +modifying this parameter may require adjusting `noise_threshold`. +The parameters `clust_scarcity`, `clust_num_ores`, and `clust_size` are ignored +by this ore type. This ore type is difficult to control since it is sensitive +to small changes. The following is a decent set of parameters to work from: + + noise_params = { + offset = 0, + scale = 3, + spread = {x=200, y=200, z=200}, + seed = 5390, + octaves = 4, + persist = 0.5, + flags = "eased", + }, + noise_threshold = 1.6 + +**WARNING**: Use this ore type *very* sparingly since it is ~200x more +computationally expensive than any other ore. + +Ore attributes +-------------- +See section "Flag Specifier Format". + +Currently supported flags: +`absheight`, `puff_cliffs`, `puff_additive_composition`. + +### `absheight` +Also produce this same ore between the height range of `-y_max` and `-y_min`. + +Useful for having ore in sky realms without having to duplicate ore entries. + +### `puff_cliffs` +If set, puff ore generation will not taper down large differences in displacement +when approaching the edge of a puff. This flag has no effect for ore types other +than `puff`. + +### `puff_additive_composition` +By default, when noise described by `np_puff_top` or `np_puff_bottom` results in a +negative displacement, the sub-column at that point is not generated. With this +attribute set, puff ore generation will instead generate the absolute difference in +noise displacement values. This flag has no effect for ore types other than `puff`. + +Decoration types +---------------- +The varying types of decorations that can be placed. + +### `simple` +Creates a 1 times `H` times 1 column of a specified node (or a random node from +a list, if a decoration list is specified). Can specify a certain node it must +spawn next to, such as water or lava, for example. Can also generate a +decoration of random height between a specified lower and upper bound. +This type of decoration is intended for placement of grass, flowers, cacti, +papyri, waterlilies and so on. + +### `schematic` +Copies a box of `MapNodes` from a specified schematic file (or raw description). +Can specify a probability of a node randomly appearing when placed. +This decoration type is intended to be used for multi-node sized discrete +structures, such as trees, cave spikes, rocks, and so on. + + +Schematic specifier +-------------------- +A schematic specifier identifies a schematic by either a filename to a +Minetest Schematic file (`.mts`) or through raw data supplied through Lua, +in the form of a table. This table specifies the following fields: + +* The `size` field is a 3D vector containing the dimensions of the provided schematic. (required) +* The `yslice_prob` field is a table of {ypos, prob} which sets the `ypos`th vertical slice + of the schematic to have a `prob / 256 * 100` chance of occuring. (default: 255) +* The `data` field is a flat table of MapNode tables making up the schematic, + in the order of `[z [y [x]]]`. (required) + Each MapNode table contains: + * `name`: the name of the map node to place (required) + * `prob` (alias `param1`): the probability of this node being placed (default: 255) + * `param2`: the raw param2 value of the node being placed onto the map (default: 0) + * `force_place`: boolean representing if the node should forcibly overwrite any + previous contents (default: false) + +About probability values: + +* A probability value of `0` or `1` means that node will never appear (0% chance). +* A probability value of `254` or `255` means the node will always appear (100% chance). +* If the probability value `p` is greater than `1`, then there is a + `(p / 256 * 100)` percent chance that node will appear when the schematic is + placed on the map. + + +Schematic attributes +-------------------- +See section "Flag Specifier Format". + +Currently supported flags: `place_center_x`, `place_center_y`, `place_center_z`, + `force_placement`. + +* `place_center_x`: Placement of this decoration is centered along the X axis. +* `place_center_y`: Placement of this decoration is centered along the Y axis. +* `place_center_z`: Placement of this decoration is centered along the Z axis. +* `force_placement`: Schematic nodes other than "ignore" will replace existing nodes. + + +HUD element types +----------------- +The position field is used for all element types. + +To account for differing resolutions, the position coordinates are the percentage +of the screen, ranging in value from `0` to `1`. + +The name field is not yet used, but should contain a description of what the +HUD element represents. The direction field is the direction in which something +is drawn. + +`0` draws from left to right, `1` draws from right to left, `2` draws from +top to bottom, and `3` draws from bottom to top. + +The `alignment` field specifies how the item will be aligned. It ranges from `-1` to `1`, +with `0` being the center, `-1` is moved to the left/up, and `1` is to the right/down. +Fractional values can be used. + +The `offset` field specifies a pixel offset from the position. Contrary to position, +the offset is not scaled to screen size. This allows for some precisely-positioned +items in the HUD. + +**Note**: `offset` _will_ adapt to screen DPI as well as user defined scaling factor! + +Below are the specific uses for fields in each type; fields not listed for that type are ignored. + +**Note**: Future revisions to the HUD API may be incompatible; the HUD API is still +in the experimental stages. + +### `image` +Displays an image on the HUD. + +* `scale`: The scale of the image, with 1 being the original texture size. + Only the X coordinate scale is used (positive values). + Negative values represent that percentage of the screen it + should take; e.g. `x=-100` means 100% (width). +* `text`: The name of the texture that is displayed. +* `alignment`: The alignment of the image. +* `offset`: offset in pixels from position. + +### `text` +Displays text on the HUD. + +* `scale`: Defines the bounding rectangle of the text. + A value such as `{x=100, y=100}` should work. +* `text`: The text to be displayed in the HUD element. +* `number`: An integer containing the RGB value of the color used to draw the text. + Specify `0xFFFFFF` for white text, `0xFF0000` for red, and so on. +* `alignment`: The alignment of the text. +* `offset`: offset in pixels from position. + +### `statbar` +Displays a horizontal bar made up of half-images. + +* `text`: The name of the texture that is used. +* `number`: The number of half-textures that are displayed. + If odd, will end with a vertically center-split texture. +* `direction` +* `offset`: offset in pixels from position. +* `size`: If used, will force full-image size to this value (override texture pack image size) + +### `inventory` +* `text`: The name of the inventory list to be displayed. +* `number`: Number of items in the inventory to be displayed. +* `item`: Position of item that is selected. +* `direction` +* `offset`: offset in pixels from position. + +### `waypoint` +Displays distance to selected world position. + +* `name`: The name of the waypoint. +* `text`: Distance suffix. Can be blank. +* `number:` An integer containing the RGB value of the color used to draw the text. +* `world_pos`: World position of the waypoint. + +Representations of simple things +-------------------------------- + +### Position/vector + + {x=num, y=num, z=num} + +For helper functions see "Vector helpers". + +### `pointed_thing` +* `{type="nothing"}` +* `{type="node", under=pos, above=pos}` +* `{type="object", ref=ObjectRef}` + +Flag Specifier Format +--------------------- +Flags using the standardized flag specifier format can be specified in either of +two ways, by string or table. + +The string format is a comma-delimited set of flag names; whitespace and +unrecognized flag fields are ignored. Specifying a flag in the string sets the +flag, and specifying a flag prefixed by the string `"no"` explicitly +clears the flag from whatever the default may be. + +In addition to the standard string flag format, the schematic flags field can +also be a table of flag names to boolean values representing whether or not the +flag is set. Additionally, if a field with the flag name prefixed with `"no"` +is present, mapped to a boolean of any value, the specified flag is unset. + +E.g. A flag field of value + + {place_center_x = true, place_center_y=false, place_center_z=true} + +is equivalent to + + {place_center_x = true, noplace_center_y=true, place_center_z=true} + +which is equivalent to + + "place_center_x, noplace_center_y, place_center_z" + +or even + + "place_center_x, place_center_z" + +since, by default, no schematic attributes are set. + +Items +----- + +### Item types +There are three kinds of items: nodes, tools and craftitems. + +* Node (`register_node`): A node from the world. +* Tool (`register_tool`): A tool/weapon that can dig and damage + things according to `tool_capabilities`. +* Craftitem (`register_craftitem`): A miscellaneous item. + +### Amount and wear +All item stacks have an amount between 0 to 65535. It is 1 by +default. Tool item stacks can not have an amount greater than 1. + +Tools use a wear (=damage) value ranging from 0 to 65535. The +value 0 is the default and used is for unworn tools. The values +1 to 65535 are used for worn tools, where a higher value stands for +a higher wear. Non-tools always have a wear value of 0. + +### Item formats +Items and item stacks can exist in three formats: Serializes, table format +and `ItemStack`. + +#### Serialized +This is called "stackstring" or "itemstring". It is a simple string with +1-3 components: the full item identifier, an optional amount and an optional +wear value. Syntax: + + [[ ]] + +Examples: + +* `'default:apple'`: 1 apple +* `'default:dirt 5'`: 5 dirt +* `'default:pick_stone'`: a new stone pickaxe +* `'default:pick_wood 1 21323'`: a wooden pickaxe, ca. 1/3 worn out + +#### Table format +Examples: + +5 dirt nodes: + + {name="default:dirt", count=5, wear=0, metadata=""} + +A wooden pick about 1/3 worn out: + + {name="default:pick_wood", count=1, wear=21323, metadata=""} + +An apple: + + {name="default:apple", count=1, wear=0, metadata=""} + +#### `ItemStack` +A native C++ format with many helper methods. Useful for converting +between formats. See the Class reference section for details. + +When an item must be passed to a function, it can usually be in any of +these formats. + + +## Groups +------ +In a number of places, there is a group table. Groups define the +properties of a thing (item, node, armor of entity, capabilities of +tool) in such a way that the engine and other mods can can interact with +the thing without actually knowing what the thing is. + +### Usage +Groups are stored in a table, having the group names with keys and the +group ratings as values. For example: + + groups = {crumbly=3, soil=1} + -- ^ Default dirt + + groups = {crumbly=2, soil=1, level=2, outerspace=1} + -- ^ A more special dirt-kind of thing + +Groups always have a rating associated with them. If there is no +useful meaning for a rating for an enabled group, it shall be `1`. + +When not defined, the rating of a group defaults to `0`. Thus when you +read groups, you must interpret `nil` and `0` as the same value, `0`. + +You can read the rating of a group for an item or a node by using + + minetest.get_item_group(itemname, groupname) + +### Groups of items +Groups of items can define what kind of an item it is (e.g. wool). + +### Groups of nodes +In addition to the general item things, groups are used to define whether +a node is destroyable and how long it takes to destroy by a tool. + +### Groups of entities +For entities, groups are, as of now, used only for calculating damage. +The rating is the percentage of damage caused by tools with this damage group. +See "Entity damage mechanism". + + object.get_armor_groups() --> a group-rating table (e.g. {fleshy=100}) + object.set_armor_groups({fleshy=30, cracky=80}) + +### Groups of tools +Groups in tools define which groups of nodes and entities they are +effective towards. + +### Groups in crafting recipes +An example: Make meat soup from any meat, any water and any bowl: + + { + output = 'food:meat_soup_raw', + recipe = { + {'group:meat'}, + {'group:water'}, + {'group:bowl'}, + }, + -- preserve = {'group:bowl'}, -- Not implemented yet (TODO) + } + +Another example: Make red wool from white wool and red dye: + + { + type = 'shapeless', + output = 'wool:red', + recipe = {'wool:white', 'group:dye,basecolor_red'}, + } + +### Special groups +* `immortal`: Disables the group damage system for an entity +* `punch_operable`: For entities; disables the regular damage mechanism for + players punching it by hand or a non-tool item, so that it can do something + else than take damage. +* `level`: Can be used to give an additional sense of progression in the game. + * A larger level will cause e.g. a weapon of a lower level make much less + damage, and get worn out much faster, or not be able to get drops + from destroyed nodes. + * `0` is something that is directly accessible at the start of gameplay + * There is no upper limit +* `dig_immediate`: (player can always pick up node without reducing tool wear) + * `2`: the node always gets the digging time 0.5 seconds (rail, sign) + * `3`: the node always gets the digging time 0 seconds (torch) +* `disable_jump`: Player (and possibly other things) cannot jump from node +* `fall_damage_add_percent`: damage speed = `speed * (1 + value/100)` +* `bouncy`: value is bounce speed in percent +* `falling_node`: if there is no walkable block under the node it will fall +* `attached_node`: if the node under it is not a walkable block the node will be + dropped as an item. If the node is wallmounted the wallmounted direction is + checked. +* `soil`: saplings will grow on nodes in this group +* `connect_to_raillike`: makes nodes of raillike drawtype with same group value + connect to each other + +### Known damage and digging time defining groups +* `crumbly`: dirt, sand +* `cracky`: tough but crackable stuff like stone. +* `snappy`: something that can be cut using fine tools; e.g. leaves, small + plants, wire, sheets of metal +* `choppy`: something that can be cut using force; e.g. trees, wooden planks +* `fleshy`: Living things like animals and the player. This could imply + some blood effects when hitting. +* `explody`: Especially prone to explosions +* `oddly_breakable_by_hand`: + Can be added to nodes that shouldn't logically be breakable by the + hand but are. Somewhat similar to `dig_immediate`, but times are more + like `{[1]=3.50,[2]=2.00,[3]=0.70}` and this does not override the + speed of a tool if the tool can dig at a faster speed than this + suggests for the hand. + +### Examples of custom groups +Item groups are often used for defining, well, _groups of items_. + +* `meat`: any meat-kind of a thing (rating might define the size or healing + ability or be irrelevant -- it is not defined as of yet) +* `eatable`: anything that can be eaten. Rating might define HP gain in half + hearts. +* `flammable`: can be set on fire. Rating might define the intensity of the + fire, affecting e.g. the speed of the spreading of an open fire. +* `wool`: any wool (any origin, any color) +* `metal`: any metal +* `weapon`: any weapon +* `heavy`: anything considerably heavy + +### Digging time calculation specifics +Groups such as `crumbly`, `cracky` and `snappy` are used for this +purpose. Rating is `1`, `2` or `3`. A higher rating for such a group implies +faster digging time. + +The `level` group is used to limit the toughness of nodes a tool can dig +and to scale the digging times / damage to a greater extent. + +**Please do understand this**, otherwise you cannot use the system to it's +full potential. + +Tools define their properties by a list of parameters for groups. They +cannot dig other groups; thus it is important to use a standard bunch of +groups to enable interaction with tools. + +#### Tools definition +Tools define: + +* Full punch interval +* Maximum drop level +* For an arbitrary list of groups: + * Uses (until the tool breaks) + * Maximum level (usually `0`, `1`, `2` or `3`) + * Digging times + * Damage groups + +#### Full punch interval +When used as a weapon, the tool will do full damage if this time is spent +between punches. If e.g. half the time is spent, the tool will do half +damage. + +#### Maximum drop level +Suggests the maximum level of node, when dug with the tool, that will drop +it's useful item. (e.g. iron ore to drop a lump of iron). + +This is not automated; it is the responsibility of the node definition +to implement this. + +#### Uses +Determines how many uses the tool has when it is used for digging a node, +of this group, of the maximum level. For lower leveled nodes, the use count +is multiplied by `3^leveldiff`. + +* `uses=10, leveldiff=0`: actual uses: 10 +* `uses=10, leveldiff=1`: actual uses: 30 +* `uses=10, leveldiff=2`: actual uses: 90 + +#### Maximum level +Tells what is the maximum level of a node of this group that the tool will +be able to dig. + +#### Digging times +List of digging times for different ratings of the group, for nodes of the +maximum level. + +For example, as a Lua table, `times={2=2.00, 3=0.70}`. This would +result in the tool to be able to dig nodes that have a rating of `2` or `3` +for this group, and unable to dig the rating `1`, which is the toughest. +Unless there is a matching group that enables digging otherwise. + +If the result digging time is 0, a delay of 0.15 seconds is added between +digging nodes; If the player releases LMB after digging, this delay is set to 0, +i.e. players can more quickly click the nodes away instead of holding LMB. + +#### Damage groups +List of damage for groups of entities. See "Entity damage mechanism". + +#### Example definition of the capabilities of a tool + + tool_capabilities = { + full_punch_interval=1.5, + max_drop_level=1, + groupcaps={ + crumbly={maxlevel=2, uses=20, times={[1]=1.60, [2]=1.20, [3]=0.80}} + } + damage_groups = {fleshy=2}, + } + +This makes the tool be able to dig nodes that fulfil both of these: + +* Have the `crumbly` group +* Have a `level` group less or equal to `2` + +Table of resulting digging times: + + crumbly 0 1 2 3 4 <- level + -> 0 - - - - - + 1 0.80 1.60 1.60 - - + 2 0.60 1.20 1.20 - - + 3 0.40 0.80 0.80 - - + + level diff: 2 1 0 -1 -2 + +Table of resulting tool uses: + + -> 0 - - - - - + 1 180 60 20 - - + 2 180 60 20 - - + 3 180 60 20 - - + +**Notes**: + +* At `crumbly==0`, the node is not diggable. +* At `crumbly==3`, the level difference digging time divider kicks in and makes + easy nodes to be quickly breakable. +* At `level > 2`, the node is not diggable, because it's `level > maxlevel` + +Entity damage mechanism +----------------------- +Damage calculation: + + damage = 0 + foreach group in cap.damage_groups: + damage += cap.damage_groups[group] * limit(actual_interval / + cap.full_punch_interval, 0.0, 1.0) + * (object.armor_groups[group] / 100.0) + -- Where object.armor_groups[group] is 0 for inexistent values + return damage + +Client predicts damage based on damage groups. Because of this, it is able to +give an immediate response when an entity is damaged or dies; the response is +pre-defined somehow (e.g. by defining a sprite animation) (not implemented; +TODO). +Currently a smoke puff will appear when an entity dies. + +The group `immortal` completely disables normal damage. + +Entities can define a special armor group, which is `punch_operable`. This +group disables the regular damage mechanism for players punching it by hand or +a non-tool item, so that it can do something else than take damage. + +On the Lua side, every punch calls: + + entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction, damage) + +This should never be called directly, because damage is usually not handled by +the entity itself. + +* `puncher` is the object performing the punch. Can be `nil`. Should never be + accessed unless absolutely required, to encourage interoperability. +* `time_from_last_punch` is time from last punch (by `puncher`) or `nil`. +* `tool_capabilities` can be `nil`. +* `direction` is a unit vector, pointing from the source of the punch to + the punched object. +* `damage` damage that will be done to entity +Return value of this function will determin if damage is done by this function +(retval true) or shall be done by engine (retval false) + +To punch an entity/object in Lua, call: + + object:punch(puncher, time_from_last_punch, tool_capabilities, direction) + +* Return value is tool wear. +* Parameters are equal to the above callback. +* If `direction` equals `nil` and `puncher` does not equal `nil`, + `direction` will be automatically filled in based on the location of `puncher`. + +## Node Metadata +------------- +The instance of a node in the world normally only contains the three values +mentioned in "Nodes". However, it is possible to insert extra data into a +node. It is called "node metadata"; See `NodeMetaRef`. + +Node metadata contains two things: + +* A key-value store +* An inventory + +Some of the values in the key-value store are handled specially: + +* `formspec`: Defines a right-click inventory menu. See "Formspec". +* `infotext`: Text shown on the screen when the node is pointed at + +Example stuff: + + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[context;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Chest"); + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + print(dump(meta:to_table())) + meta:from_table({ + inventory = { + main = {[1] = "default:dirt", [2] = "", [3] = "", [4] = "", + [5] = "", [6] = "", [7] = "", [8] = "", [9] = "", + [10] = "", [11] = "", [12] = "", [13] = "", + [14] = "default:cobble", [15] = "", [16] = "", [17] = "", + [18] = "", [19] = "", [20] = "default:cobble", [21] = "", + [22] = "", [23] = "", [24] = "", [25] = "", [26] = "", + [27] = "", [28] = "", [29] = "", [30] = "", [31] = "", + [32] = ""} + }, + fields = { + formspec = "size[8,9]list[context;main;0,0;8,4;]list[current_player;main;0,5;8,4;]", + infotext = "Chest" + } + }) + +Item Metadata +------------- +Item stacks can store metadata too. See `ItemStackMetaRef`. + +Item metadata only contains a key-value store. + +Some of the values in the key-value store are handled specially: + +* `description`: Set the item stack's description. Defaults to `idef.description` +* `color`: A `ColorString`, which sets the stack's color. +* `palette_index`: If the item has a palette, this is used to get the + current color from the palette. + +Example stuff: + + local meta = stack:get_meta() + meta:set_string("key", "value") + print(dump(meta:to_table())) + +Formspec +-------- +Formspec defines a menu. Currently not much else than inventories are +supported. It is a string, with a somewhat strange format. + +Spaces and newlines can be inserted between the blocks, as is used in the +examples. + +### Examples + +#### Chest + + size[8,9] + list[context;main;0,0;8,4;] + list[current_player;main;0,5;8,4;] + +#### Furnace + + size[8,9] + list[context;fuel;2,3;1,1;] + list[context;src;2,1;1,1;] + list[context;dst;5,1;2,2;] + list[current_player;main;0,5;8,4;] + +#### Minecraft-like player inventory + + size[8,7.5] + image[1,0.6;1,2;player.png] + list[current_player;main;0,3.5;8,4;] + list[current_player;craft;3,0;3,3;] + list[current_player;craftpreview;7,1;1,1;] + +### Elements + +#### `size[,,]` +* Define the size of the menu in inventory slots +* `fixed_size`: `true`/`false` (optional) +* deprecated: `invsize[,;]` + +#### `position[,]` +* Define the position of the formspec +* A value between 0.0 and 1.0 represents a position inside the screen +* The default value is the center of the screen (0.5, 0.5) + +#### `anchor[,]` +* Define the anchor of the formspec +* A value between 0.0 and 1.0 represents an anchor inside the formspec +* The default value is the center of the formspec (0.5, 0.5) + +#### `container[,]` +* Start of a container block, moves all physical elements in the container by (X, Y) +* Must have matching `container_end` +* Containers can be nested, in which case the offsets are added + (child containers are relative to parent containers) + +#### `container_end[]` +* End of a container, following elements are no longer relative to this container + +#### `list[;;,;,;]` +* Show an inventory list + +#### `list[;;,;,;]` +* Show an inventory list + +#### `listring[;]` +* Allows to create a ring of inventory lists +* Shift-clicking on items in one element of the ring + will send them to the next inventory list inside the ring +* The first occurrence of an element inside the ring will + determine the inventory where items will be sent to + +#### `listring[]` +* Shorthand for doing `listring[;]` + for the last two inventory lists added by list[...] + +#### `listcolors[;]` +* Sets background color of slots as `ColorString` +* Sets background color of slots on mouse hovering + +#### `listcolors[;;]` +* Sets background color of slots as `ColorString` +* Sets background color of slots on mouse hovering +* Sets color of slots border + +#### `listcolors[;;;;]` +* Sets background color of slots as `ColorString` +* Sets background color of slots on mouse hovering +* Sets color of slots border +* Sets default background color of tooltips +* Sets default font color of tooltips + +#### `tooltip[;;;]` +* Adds tooltip for an element +* `` tooltip background color as `ColorString` (optional) +* `` tooltip font color as `ColorString` (optional) + +#### `image[,;,;]` +* Show an image +* Position and size units are inventory slots + +#### `item_image[,;,;]` +* Show an inventory image of registered item/node +* Position and size units are inventory slots + +#### `bgcolor[;]` +* Sets background color of formspec as `ColorString` +* If `true`, the background color is drawn fullscreen (does not effect the size of the formspec) + +#### `background[,;,;]` +* Use a background. Inventory rectangles are not drawn then. +* Position and size units are inventory slots +* Example for formspec 8x4 in 16x resolution: image shall be sized + 8 times 16px times 4 times 16px. + +#### `background[,;,;;]` +* Use a background. Inventory rectangles are not drawn then. +* Position and size units are inventory slots +* Example for formspec 8x4 in 16x resolution: + image shall be sized 8 times 16px times 4 times 16px +* If `true` the background is clipped to formspec size + (`x` and `y` are used as offset values, `w` and `h` are ignored) + +#### `pwdfield[,;,;;

t0TfG0Dpt_Wqg|p5ktGhlwsn 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%0ALbu|0pYw~ILSMi2-t|k;Wy7i3 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%0AI&XJ107&^1yMa5$x4-KRSNzc@Z+*|t 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

HO6rvGt5(6 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 ByRHBL literal 0 HcmV?d00001 diff --git a/textures/towercrane_arm.png b/textures/towercrane_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..4570d7b7cae4d2cd715d0575ba6c4ddc928f4a72 GIT binary patch literal 1426 zcmV;D1#S9?P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00jC;L_t(o!=0B+j1)x_$A8sb zJzu@Ez_j*4R74U&Boe=3;z>MkFhNZaJ$WGEDn?@r7;hecghYce(U>S|Jm`gx$b}=G zJQyPvKN1bW0Iu6?&o0X}^VQwups)9c$h8 zay3SwC2fH5SQ%axhn86`SBU`6Iz z-MRQ<0CjV*Wt7GDKo58Zr~^abi0g-^?mCuIcZI?jQwksoyr$?=z;y`&z-C|(z!Gi7 z^~2|Y)8ZlrI2i@rvlEOd@tPWA+yZU^Z5eGqyM74pLcY!#*>?>1OXd#n<%AfUlKd!2 zN*3A}=*ZlW|2nx2tEj>C!$sh2U{y9e5Cz_kOcqmedR4L}b^Wj_-;3)Wkd@5>h%>-` zsRj#pG77wJN5deYC^K%4{H|O-L|mUs9rzPamIUD@cY5N2>xYj@)+%6s6nF>9@}Zc3 zl61+4uCg%w0ek_NJO`R%-20N$x&wR`1>TWyafkxXFT^%CUbe0#d~ob`5~eiDl)8R+ z0XQmrun{;B1>Ttwr2s)OvCE8$G>ZIUnRIf72^V}`pw#_Q;C)xZdU>+x3C58S{eBxj z7NHGOKpY0Xl9E!uz9{g{MuE3QPHzAWv|K+NFkPza0IZBorfzcm@DT8I!4oe6Z{&># zh+RKy&!Fdq5EEGyWHL7c>Kw$0LadJh$ALXl++NHVSCUYaWYN>iF2{kBh3_N4`%&O+ znQ^}=Fd~)#`aP>UBl>1ZuP! z>M1850GEJeU_PVQycMW(3eLz!7q}02XF@nU0r1;;4oH17p|RwAUUB_!d89Hz;9cN# zp<)d@0=yLk-cu!Nd&R1=MD^;JlPCEx0ec+DxPG|m`r)TSR!id9S0yobPHN?rQe(3{ z9Wj#3z!Rr{H-TSe|Gc#Jad!xn^FVVX;TY-XW>%7r`@})uvUu*jDDX}fmUN0O+bTJE zzwn>_FUAWXE&>N6v=!iB6nJL~RgjJXu*G=s_l>R}#{5qa5PN|&G5UNIct6X$D{qc< z0M6)za+bz2BZxg@JfY=r@}XRGo(52zrIwL8pO^PQL&l0QR#iG)U67CV_E9PG+5+$m zuv0t`3m~NnaXBy9dA~dyM%k+-z$O_pQs?6&mV-IHo{i(AnFrQZ9r}Hndl!19peQMf zcZ6p+RI1<8wr!_MJ6S$Cj>$b@Pw`R(uuYm>2DC{bPAp?k1~AvIxOTUz)u3-%@~p1x z+THF1OZ5uCa!{`WXq~3EPTADz4*|2%uIgrUXaKW(y}n+`yLPv`fOGANtGZonr3oa7 gg*!JiTeo%8zYHw`@7M^T>;M1&07*qoM6N<$g7_PKZvX%Q literal 0 HcmV?d00001 diff --git a/textures/towercrane_arm2.png b/textures/towercrane_arm2.png new file mode 100644 index 0000000000000000000000000000000000000000..20d5cd37955454d61b13b8227adcbbdba082abc1 GIT binary patch literal 1600 zcmV-G2EX}e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00pQ?L_t(o!>yNFh$KZ8hQEl+ zs?MzJsp+nq$(iXHb#R@R@q!mb@ktN_2SyfrP*!BU?Xv2NCm9O?GQ{W!E($eCU&Hc3Is$js^r7R7J%9$NA4WaYD5k zwU6dz{qq%=ox9pq3>HlX!|UYDuKCu011JumP$-VdKNCO|P$(iSKLT|O3YP;w9XJMD z2z&<|0uHEFqh`}3hq9AVa%C%303F@(Ss981Fn|UIfJWhC=>mN;O$>iPGYj-EOrZ!V z@jb9hwHmb*s2(wv2>41soC4rJerr>*<3Pq`jsx3V!1nu!X6%1BwP*R-P0tRr+bdJ7 z%&b(@W=nPf_X9WM-~oML2Y?IofbtIu-an@HEDtXn3!!*HNexr z8FKbn;9=l-M7J@(YHh{}Yqfm4CkwU?_~pQhz+M6G19t!~$h1t0$+IEgiNcsP4)rN2 z|17XY#(m%(;3I&qzuKx=ORl2OPcobYZ-Elux8__!4j%-~m4Ze+r`Hy7gq*eOhWgFSEMY z@FIxH=f zO7+8AFBz4D3M6{KHX)$WIP}vvtfX=HDDY>|)&g$^QS#)-WVn(<1NH;0 zAWG~8aZSM|wgY!bXdx$mCy0`(M}V%j=Km)rd|!1W8g#B@zI$ms%?g&Vz)s-3A@H|` z!AIN%xh1z8saJKo?esNZ)0SKM@{7rfH;eC|N!W|TVtIQCxP2Xy7dzIj$lU3;_IqPu zZ1^AG-5flPLp5}7YbxnjanwvuLHP0ER^)bWdHLZN-p4cXkva}O1!?@Aq&7?fqQcT7I4~a$Nuk|D*Mk} zs1;sDlf?uEoEU-AkUX*K=)ig&d4&-81nA@hbfI*9SwQv*F;Bt}d0-mp+3H(xWnNjj z1*W9@z6v;6@Q1ghc===QpsNJhZ3o}atV~>#w*l5bx94Cj_pGhG9)-JWBb4S#<2=y)6WuXNj9c9L)F)&9(Mjpfv>AE{T7 yHD+eIM&1FNG(BdIj%UEXn+=ae zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00xvvL_t(o!;P0|Z`()`hMzuo ziLwqGvYmJWEC!hW|6>Nohs9vA*lfn@$g*Th6v;m414&(W7SjL$k*e-`>w2qN{O9YZ z`23^b;meM4>{veK0Bqk<0Or>%0JH0seWlo}bGB~@I*CXT8J2T`#cjj-CF9rM-T+v? zr0lDNwow2WBhg7jh=^$=F-pYaAGdL}%!yHOdskCc2>@3U1Ax|n7@^vwSSz`{Y0&zp z*cb^wng&kS{~imPTC=#VDaUTuAe)-#nqHPsQ zM)KS-nc9Q$msN&o6~)N0xNSPiR~fJC45cDK07UNP5Rq|dnOxb!f8L3Mi}zK6R+0Hl%Xng_8^w5RV>xz%at|mWAkRJX>z1}v z=_XBMN~(%2zwh zu+ylspolF@boyMuGP6!u749?onXDmjsQ+=?=0=Yr#SPiHG=In zLFqs-a*TV90gzvRzox1ZUNpXXzD`Z3nNHc$o^x%34iH4`4`P_1-y261l!< z4|&xZ#p*f7`;$nOV@El5`-2VsBHco0|EHc2@04$?741n7PXh$N_{uVw8syEQIS>;d&&Wd@w}b#%1!mKh z*|hCKaBANXV6;~7_-C1IUegecV)_!dk`ejmw~{k-A241Bu&q*_UkX~I&XvEXBe8nU z$Gcs^j~^rb{8A9YJ9h23q0;El_|V-(*pEr4wTksyMpG;FHbvf5lq2_X849@nR5#Ab z!dZ#2lD1V8i9hAX2#A0Dx>OtvV1Baz~ZLv+&kbr>5KE5cHoF^Zm@^~bFbE-Rrd9dfnIDaV!& z1-mN2_B^!PCp>;H*=|#UKeI3bD`TYFY%@0No)eB0GyZ9*o-AV|yKRDO8qIWO&`F>* z3gZ+O!Frw1Hj39xO6)ywaa=+G+mqAZ$cr=O%cp{-)g2L~nJ3FUAqb39Bw1uSYf(B7 zyr8Lddb%GNr7DOl@zjlGwa)qW?ZWWza{xowV*vTO$w-pOr-zE$yPEk;$BdJy<>8l# z#a+Em(h!I7yV~irdes>YIlVGusV7F*Z4*|@3<42PP53#4>CA9@Un6Dgx?x>+gUF!# zq(4MsWVTsn5}<7q#z;Yg`^BDe%Qx>jT(kL;@|%{;gFd$jWc z@5Ijj7oR5|Dx;y5_5N7=K!;LOO^$kl?c%dKsw7kO|1xCP!x{u z{~a@#8n$l<^XrzXN_hTJysKm(B1#8lbMx-LcrwIDAP2a+Kk`#iI3`oWZkwP-rR8On zAtfLpb(ON)YGRb^E6u}~3ODb~38K403h+*%bl_@YhCATjUae6Wqi7n9o?jc@UQ;Gh z15wcIHAxbY$}$>t)H@`M^Mb{qVSdx{_4jKg)0RB<2mycmbBeR#-7WcYT}=#it;w=( aj{6JHzfaR-Z?F&m0000