From ffc486292b582ce5c1b3fe97e1f84fd15c750fa4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:04:20 -0500 Subject: [PATCH 001/321] Add files via upload --- mods/.gitignore | 2 + mods/LICENSE.txt | 19 ++ mods/README.md | 96 ++++++++ mods/api.lua | 307 ++++++++++++++++++++++++++ mods/bags.lua | 276 +++++++++++++++++++++++ mods/callbacks.lua | 216 ++++++++++++++++++ mods/depends.txt | 5 + mods/description.txt | 1 + mods/group.lua | 127 +++++++++++ mods/image_credits.txt | 69 ++++++ mods/init.lua | 79 +++++++ mods/internal.lua | 374 +++++++++++++++++++++++++++++++ mods/item_names.lua | 76 +++++++ mods/match_craft.lua | 409 ++++++++++++++++++++++++++++++++++ mods/mod.conf | 4 + mods/register.lua | 489 +++++++++++++++++++++++++++++++++++++++++ mods/screenshot.png | Bin 0 -> 137234 bytes mods/settingtypes.txt | 11 + mods/waypoints.lua | 247 +++++++++++++++++++++ 19 files changed, 2807 insertions(+) create mode 100644 mods/.gitignore create mode 100644 mods/LICENSE.txt create mode 100644 mods/README.md create mode 100644 mods/api.lua create mode 100644 mods/bags.lua create mode 100644 mods/callbacks.lua create mode 100644 mods/depends.txt create mode 100644 mods/description.txt create mode 100644 mods/group.lua create mode 100644 mods/image_credits.txt create mode 100644 mods/init.lua create mode 100644 mods/internal.lua create mode 100644 mods/item_names.lua create mode 100644 mods/match_craft.lua create mode 100644 mods/mod.conf create mode 100644 mods/register.lua create mode 100644 mods/screenshot.png create mode 100644 mods/settingtypes.txt create mode 100644 mods/waypoints.lua diff --git a/mods/.gitignore b/mods/.gitignore new file mode 100644 index 00000000..5236e1e4 --- /dev/null +++ b/mods/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/mods/LICENSE.txt b/mods/LICENSE.txt new file mode 100644 index 00000000..32492e43 --- /dev/null +++ b/mods/LICENSE.txt @@ -0,0 +1,19 @@ +Unified Inventory for Minetest +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Contact information: + Examine a git patch to get the contributor's email address. diff --git a/mods/README.md b/mods/README.md new file mode 100644 index 00000000..15802c6e --- /dev/null +++ b/mods/README.md @@ -0,0 +1,96 @@ +# Unified Inventory + +Unified Inventory replaces the default survival and creative inventory. + + +## Features + + * Node, item and tool browser + * Crafting guide + * Can copy the recipe to the crafting grid + * Recipe search function by ingredients + * Up to four bags with up to 24 slots each + * Home function to teleport + * Trash slot + * Lite mode: reduces the item browser width + * Mod API for modders: see [mod_api.txt](doc/mod_api.txt) + * Setting-determinated features: see [settingtypes.txt](settingtypes.txt) + + +## Requirements + + * Minetest 5.0.0+ since commit 4403b69 + * Minetest 0.4.16+ prior commit 4403b69 + + +# Licenses + +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +Copyright (C) 2012-? Various minetest-mods contributors + + +## Code + +GNU LGPLv2+, see [license notice](LICENSE.txt) + + +## Textures + +VanessaE: (CC-BY-4.0) + + * `ui_group.png` + +Tango Project: (Public Domain, CC-BY-4.0) + + * [`ui_reset_icon.png`](https://commons.wikimedia.org/wiki/File:Edit-clear.svg) + * [`ui_doubleleft_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg) + * [`ui_doubleright_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg) + * [`ui_left_icon.png` / `ui_right_icon.png`](http://commons.wikimedia.org/wiki/File:Media-playback-start.svg) + * [`ui_skip_backward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg) + * [`ui_skip_forward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg) + +From http://www.clker.com (Public Domain, CC-BY-4.0): + + * [`bags_small.png`](http://www.clker.com/clipart-moneybag-empty.html) + * [`bags_medium.png`](http://www.clker.com/clipart-backpack-1.html) + * [`bags_large.png` / `ui_bags_icon.png`](http://www.clker.com/clipart-backpack-green-brown.html) + * `ui_trash_icon.png`: and + * [`ui_search_icon.png`](http://www.clker.com/clipart-24887.html) + * [`ui_off_icon.png` / `ui_on_icon.png`](http://www.clker.com/clipart-on-off-switches.html) + * [`ui_waypoints_icon.png`](http://www.clker.com/clipart-map-pin-red.html) + * [`ui_circular_arrows_icon.png`](http://www.clker.com/clipart-circular-arrow-pattern.html) + * [`ui_pencil_icon.pnc`](http://www.clker.com/clipart-2256.html) + * [`ui_waypoint_set_icon.png`](http://www.clker.com/clipart-larger-flag.html) + +Everaldo Coelho (YellowIcon) (LGPL v2.1+): + + * [`ui_craftguide_icon.png` / `ui_craft_icon.png`](http://commons.wikimedia.org/wiki/File:Advancedsettings.png) + +Gregory H. Revera: (CC-BY-SA 3.0) + + * [`ui_moon_icon.png`](http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg) + +Thomas Bresson: (CC-BY 3.0) + + * [`ui_sun_icon.png`](http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg) + +Fibonacci: (Public domain, CC-BY 4.0) + + * [`ui_xyz_off_icon.png`](http://commons.wikimedia.org/wiki/File:No_sign.svg) + +Gregory Maxwell: (Public domain, CC-BY 4.0) + + * [`ui_ok_icon.png`](http://commons.wikimedia.org/wiki/File:Yes_check.svg) + +Adrien Facélina: (LGPL v2.1+) + + * [`inventory_plus_worldedit_gui.png`](http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg) + +Other files from Wikimedia Commons: + + * [`ui_gohome_icon.png` / `ui_home_icon.png` / `ui_sethome_icon.png`](http://commons.wikimedia.org/wiki/File:Home_256x256.png) (GPL v2+) + +RealBadAngel: (CC-BY-4.0) + + * Everything else. \ No newline at end of file diff --git a/mods/api.lua b/mods/api.lua new file mode 100644 index 00000000..071900da --- /dev/null +++ b/mods/api.lua @@ -0,0 +1,307 @@ +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +-- Create detached creative inventory after loading all mods +minetest.after(0.01, function() + local rev_aliases = {} + for source, target in pairs(minetest.registered_aliases) do + if not rev_aliases[target] then rev_aliases[target] = {} end + table.insert(rev_aliases[target], source) + end + unified_inventory.items_list = {} + for name, def in pairs(minetest.registered_items) do + if (not def.groups.not_in_creative_inventory or + def.groups.not_in_creative_inventory == 0) and + def.description and def.description ~= "" then + table.insert(unified_inventory.items_list, name) + local all_names = rev_aliases[name] or {} + table.insert(all_names, name) + for _, name in ipairs(all_names) do + local recipes = minetest.get_all_craft_recipes(name) + if recipes then + for _, recipe in ipairs(recipes) do + + local unknowns + + for _,chk in pairs(recipe.items) do + local groupchk = string.find(chk, "group:") + if (not groupchk and not minetest.registered_items[chk]) + or (groupchk and not unified_inventory.get_group_item(string.gsub(chk, "group:", "")).item) + or minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then + unknowns = true + end + end + + if not unknowns then + unified_inventory.register_craft(recipe) + end + end + end + end + end + end + table.sort(unified_inventory.items_list) + unified_inventory.items_list_size = #unified_inventory.items_list + print("Unified Inventory. inventory size: "..unified_inventory.items_list_size) + for _, name in ipairs(unified_inventory.items_list) do + local def = minetest.registered_items[name] + -- Simple drops + if type(def.drop) == "string" then + local dstack = ItemStack(def.drop) + if not dstack:is_empty() and dstack:get_name() ~= name then + unified_inventory.register_craft({ + type = "digging", + items = {name}, + output = def.drop, + width = 0, + }) + + end + -- Complex drops. Yes, it's really complex! + elseif type(def.drop) == "table" then + --[[ Extract single items from the table and save them into dedicated tables + to register them later, in order to avoid duplicates. These tables counts + the total number of guaranteed drops and drops by chance (“maybes”) for each item. + For “maybes”, the final count is the theoretical maximum number of items, not + neccessarily the actual drop count. ]] + local drop_guaranteed = {} + local drop_maybe = {} + -- This is for catching an obscure corner case: If the top items table has + -- only items with rarity = 1, but max_items is set, then only the first + -- max_items will be part of the drop, any later entries are logically + -- impossible, so this variable is for keeping track of this + local max_items_left = def.drop.max_items + -- For checking whether we still encountered only guaranteed only so far; + -- for the first “maybe” item it will become false which will cause ALL + -- later items to be considered “maybes”. + -- A common idiom is: + -- { max_items 1, { items = { + -- { items={"example:1"}, rarity = 5 }, + -- { items={"example:2"}, rarity = 1 }, }}} + -- example:2 must be considered a “maybe” because max_items is set and it + -- appears after a “maybe” + local max_start = true + -- Let's iterate through the items madness! + -- Handle invalid drop entries gracefully. + local drop_items = def.drop.items or { } + for i=1,#drop_items do + if max_items_left ~= nil and max_items_left <= 0 then break end + local itit = drop_items[i] + for j=1,#itit.items do + local dstack = ItemStack(itit.items[j]) + if not dstack:is_empty() and dstack:get_name() ~= name then + local dname = dstack:get_name() + local dcount = dstack:get_count() + -- Guaranteed drops AND we are not yet in “maybe mode” + if #itit.items == 1 and itit.rarity == 1 and max_start then + if drop_guaranteed[dname] == nil then + drop_guaranteed[dname] = 0 + end + drop_guaranteed[dname] = drop_guaranteed[dname] + dcount + + if max_items_left ~= nil then + max_items_left = max_items_left - 1 + if max_items_left <= 0 then break end + end + -- Drop was a “maybe” + else + if max_items_left ~= nil then max_start = false end + if drop_maybe[dname] == nil then + drop_maybe[dname] = 0 + end + drop_maybe[dname] = drop_maybe[dname] + dcount + end + end + end + end + for itemstring, count in pairs(drop_guaranteed) do + unified_inventory.register_craft({ + type = "digging", + items = {name}, + output = itemstring .. " " .. count, + width = 0, + }) + end + for itemstring, count in pairs(drop_maybe) do + unified_inventory.register_craft({ + type = "digging_chance", + items = {name}, + output = itemstring .. " " .. count, + width = 0, + }) + end + end + end + for _, recipes in pairs(unified_inventory.crafts_for.recipe) do + for _, recipe in ipairs(recipes) do + local ingredient_items = {} + for _, spec in pairs(recipe.items) do + local matches_spec = unified_inventory.canonical_item_spec_matcher(spec) + for _, name in ipairs(unified_inventory.items_list) do + if matches_spec(name) then + ingredient_items[name] = true + end + end + end + for name, _ in pairs(ingredient_items) do + if unified_inventory.crafts_for.usage[name] == nil then + unified_inventory.crafts_for.usage[name] = {} + end + table.insert(unified_inventory.crafts_for.usage[name], recipe) + end + end + end +end) + + +-- load_home +local function load_home() + local input = io.open(unified_inventory.home_filename, "r") + if not input then + unified_inventory.home_pos = {} + return + end + while true do + local x = input:read("*n") + if not x then break end + local y = input:read("*n") + local z = input:read("*n") + local name = input:read("*l") + unified_inventory.home_pos[name:sub(2)] = {x = x, y = y, z = z} + end + io.close(input) +end +load_home() + +function unified_inventory.set_home(player, pos) + local player_name = player:get_player_name() + unified_inventory.home_pos[player_name] = vector.round(pos) + -- save the home data from the table to the file + local output = io.open(unified_inventory.home_filename, "w") + for k, v in pairs(unified_inventory.home_pos) do + output:write(v.x.." "..v.y.." "..v.z.." "..k.."\n") + end + io.close(output) +end + +function unified_inventory.go_home(player) + local pos = unified_inventory.home_pos[player:get_player_name()] + if pos then + player:set_pos(pos) + end +end + +-- register_craft +function unified_inventory.register_craft(options) + if not options.output then + return + end + local itemstack = ItemStack(options.output) + if itemstack:is_empty() then + return + end + if options.type == "normal" and options.width == 0 then + options = { type = "shapeless", items = options.items, output = options.output, width = 0 } + end + if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then + unified_inventory.crafts_for.recipe[itemstack:get_name()] = {} + end + table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options) +end + + +local craft_type_defaults = { + width = 3, + height = 3, + uses_crafting_grid = false, +} + + +function unified_inventory.craft_type_defaults(name, options) + if not options.description then + options.description = name + end + setmetatable(options, {__index = craft_type_defaults}) + return options +end + + +function unified_inventory.register_craft_type(name, options) + unified_inventory.registered_craft_types[name] = + unified_inventory.craft_type_defaults(name, options) +end + + +unified_inventory.register_craft_type("normal", { + description = F(S("Crafting")), + icon = "ui_craftgrid_icon.png", + width = 3, + height = 3, + get_shaped_craft_width = function (craft) return craft.width end, + dynamic_display_size = function (craft) + local w = craft.width + local h = math.ceil(table.maxn(craft.items) / craft.width) + local g = w < h and h or w + return { width = g, height = g } + end, + uses_crafting_grid = true, +}) + + +unified_inventory.register_craft_type("shapeless", { + description = F(S("Mixing")), + icon = "ui_craftgrid_icon.png", + width = 3, + height = 3, + dynamic_display_size = function (craft) + local maxn = table.maxn(craft.items) + local g = 1 + while g*g < maxn do g = g + 1 end + return { width = g, height = g } + end, + uses_crafting_grid = true, +}) + + +unified_inventory.register_craft_type("cooking", { + description = F(S("Cooking")), + icon = "default_furnace_front.png", + width = 1, + height = 1, +}) + + +unified_inventory.register_craft_type("digging", { + description = F(S("Digging")), + icon = "default_tool_steelpick.png", + width = 1, + height = 1, +}) + +unified_inventory.register_craft_type("digging_chance", { + description = "Digging (by chance)", + icon = "default_tool_steelpick.png^[transformFY.png", + width = 1, + height = 1, +}) + +function unified_inventory.register_page(name, def) + unified_inventory.pages[name] = def +end + + +function unified_inventory.register_button(name, def) + if not def.action then + def.action = function(player) + unified_inventory.set_inventory_formspec(player, name) + end + end + def.name = name + table.insert(unified_inventory.buttons, def) +end + + +function unified_inventory.is_creative(playername) + return minetest.check_player_privs(playername, {creative=true}) + or minetest.settings:get_bool("creative_mode") +end diff --git a/mods/bags.lua b/mods/bags.lua new file mode 100644 index 00000000..1ebbdd3f --- /dev/null +++ b/mods/bags.lua @@ -0,0 +1,276 @@ +--[[ +Bags for Minetest + +Copyright (c) 2012 cornernote, Brett O'Donnell +License: GPLv3 +--]] + +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +unified_inventory.register_page("bags", { + get_formspec = function(player) + local player_name = player:get_player_name() + return { formspec = table.concat({ + "background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]", + "label[0,0;" .. F(S("Bags")) .. "]", + "button[0,2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]", + "button[2,2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]", + "button[4,2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]", + "button[6,2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]", + "listcolors[#00000000;#00000000]", + "list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1;1,1;]" + }) } + end, +}) + +unified_inventory.register_button("bags", { + type = "image", + image = "ui_bags_icon.png", + tooltip = S("Bags"), + hide_lite=true +}) + +local function get_player_bag_stack(player, i) + return minetest.get_inventory({ + type = "detached", + name = player:get_player_name() .. "_bags" + }):get_stack("bag" .. i, 1) +end + +for bag_i = 1, 4 do + unified_inventory.register_page("bag" .. bag_i, { + get_formspec = function(player) + local stack = get_player_bag_stack(player, bag_i) + local image = stack:get_definition().inventory_image + local fs = { + "image[7,0;1,1;" .. image .. "]", + "label[0,0;" .. F(S("Bag @1", bag_i)) .. "]", + "listcolors[#00000000;#00000000]", + "list[current_player;bag" .. bag_i .. "contents;0,1;8,3;]", + "listring[current_name;bag" .. bag_i .. "contents]", + "listring[current_player;main]" + } + local slots = stack:get_definition().groups.bagslots + if slots == 8 then + fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" + elseif slots == 16 then + fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" + elseif slots == 24 then + fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" + end + local player_name = player:get_player_name() -- For if statement. + if unified_inventory.trash_enabled + or unified_inventory.is_creative(player_name) + or minetest.get_player_privs(player_name).give then + fs[#fs + 1] = "background[6.06,0;0.92,0.92;ui_bags_trash.png]" + .. "list[detached:trash;main;6,0.1;1,1;]" + end + local inv = player:get_inventory() + for i = 1, 4 do + local def = get_player_bag_stack(player, i):get_definition() + if def.groups.bagslots then + local list_name = "bag" .. i .. "contents" + local size = inv:get_size(list_name) + local used = 0 + for si = 1, size do + local stk = inv:get_stack(list_name, si) + if not stk:is_empty() then + used = used + 1 + end + end + local img = def.inventory_image + local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size + fs[#fs + 1] = string.format("image_button[%i,0;1,1;%s;bag%i;%s]", + i + 1, img, i, label) + end + end + return { formspec = table.concat(fs) } + end, + }) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then + return + end + for i = 1, 4 do + if fields["bag" .. i] then + local stack = get_player_bag_stack(player, i) + if not stack:get_definition().groups.bagslots then + return + end + unified_inventory.set_inventory_formspec(player, "bag" .. i) + return + end + end +end) + +local function save_bags_metadata(player, bags_inv) + local is_empty = true + local bags = {} + for i = 1, 4 do + local bag = "bag" .. i + if not bags_inv:is_empty(bag) then + -- Stack limit is 1, otherwise use stack:to_string() + bags[i] = bags_inv:get_stack(bag, 1):get_name() + is_empty = false + end + end + local meta = player:get_meta() + if is_empty then + meta:set_string("unified_inventory:bags", nil) + else + meta:set_string("unified_inventory:bags", + minetest.serialize(bags)) + end +end + +local function load_bags_metadata(player, bags_inv) + local player_inv = player:get_inventory() + local meta = player:get_meta() + local bags_meta = meta:get_string("unified_inventory:bags") + local bags = bags_meta and minetest.deserialize(bags_meta) or {} + local dirty_meta = false + if not bags_meta then + -- Backwards compatiblity + for i = 1, 4 do + local bag = "bag" .. i + if not player_inv:is_empty(bag) then + -- Stack limit is 1, otherwise use stack:to_string() + bags[i] = player_inv:get_stack(bag, 1):get_name() + dirty_meta = true + end + end + end + -- Fill detached slots + for i = 1, 4 do + local bag = "bag" .. i + bags_inv:set_size(bag, 1) + bags_inv:set_stack(bag, 1, bags[i] or "") + end + + if dirty_meta then + -- Requires detached inventory to be set up + save_bags_metadata(player, bags_inv) + end + + -- Clean up deprecated garbage after saving + for i = 1, 4 do + local bag = "bag" .. i + player_inv:set_size(bag, 0) + end +end + +minetest.register_on_joinplayer(function(player) + local player_inv = player:get_inventory() + local player_name = player:get_player_name() + local bags_inv = minetest.create_detached_inventory(player_name .. "_bags",{ + on_put = function(inv, listname, index, stack, player) + player:get_inventory():set_size(listname .. "contents", + stack:get_definition().groups.bagslots) + save_bags_metadata(player, inv) + end, + allow_put = function(inv, listname, index, stack, player) + local new_slots = stack:get_definition().groups.bagslots + if not new_slots then + return 0 + end + local player_inv = player:get_inventory() + local old_slots = player_inv:get_size(listname .. "contents") + + if new_slots >= old_slots then + return 1 + end + + -- using a smaller bag, make sure it fits + local old_list = player_inv:get_list(listname .. "contents") + local new_list = {} + local slots_used = 0 + local use_new_list = false + + for i, v in ipairs(old_list) do + if v and not v:is_empty() then + slots_used = slots_used + 1 + use_new_list = i > new_slots + new_list[slots_used] = v + end + end + if new_slots >= slots_used then + if use_new_list then + player_inv:set_list(listname .. "contents", new_list) + end + return 1 + end + -- New bag is smaller: Disallow inserting + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + if player:get_inventory():is_empty(listname .. "contents") then + return stack:get_count() + end + return 0 + end, + on_take = function(inv, listname, index, stack, player) + player:get_inventory():set_size(listname .. "contents", 0) + save_bags_metadata(player, inv) + end, + allow_move = function() + return 0 + end, + }, player_name) + + load_bags_metadata(player, bags_inv) +end) + +-- register bag tools +minetest.register_tool("unified_inventory:bag_small", { + description = S("Small Bag"), + inventory_image = "bags_small.png", + groups = {bagslots=8}, +}) + +minetest.register_tool("unified_inventory:bag_medium", { + description = S("Medium Bag"), + inventory_image = "bags_medium.png", + groups = {bagslots=16}, +}) + +minetest.register_tool("unified_inventory:bag_large", { + description = S("Large Bag"), + inventory_image = "bags_large.png", + groups = {bagslots=24}, +}) + +-- register bag crafts +if minetest.get_modpath("farming") ~= nil then + minetest.register_craft({ + output = "unified_inventory:bag_small", + recipe = { + {"", "farming:cotton", ""}, + {"group:wool", "group:wool", "group:wool"}, + {"group:wool", "group:wool", "group:wool"}, + }, + }) + + minetest.register_craft({ + output = "unified_inventory:bag_medium", + recipe = { + {"", "", ""}, + {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, + {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, + }, + }) + + minetest.register_craft({ + output = "unified_inventory:bag_large", + recipe = { + {"", "", ""}, + {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, + {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, + }, + }) +end diff --git a/mods/callbacks.lua b/mods/callbacks.lua new file mode 100644 index 00000000..8bfe6b60 --- /dev/null +++ b/mods/callbacks.lua @@ -0,0 +1,216 @@ +local function default_refill(stack) + stack:set_count(stack:get_stack_max()) + local itemdef = minetest.registered_items[stack:get_name()] + if itemdef + and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" + and stack:get_wear() ~= 0 then + stack:set_wear(0) + end + return stack +end + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + unified_inventory.players[player_name] = {} + unified_inventory.current_index[player_name] = 1 + unified_inventory.filtered_items_list[player_name] = + unified_inventory.items_list + unified_inventory.activefilter[player_name] = "" + unified_inventory.active_search_direction[player_name] = "nochange" + unified_inventory.apply_filter(player, "", "nochange") + unified_inventory.current_searchbox[player_name] = "" + unified_inventory.alternate[player_name] = 1 + unified_inventory.current_item[player_name] = nil + unified_inventory.current_craft_direction[player_name] = "recipe" + unified_inventory.set_inventory_formspec(player, + unified_inventory.default) + + -- Refill slot + local refill = minetest.create_detached_inventory(player_name.."refill", { + allow_put = function(inv, listname, index, stack, player) + local player_name = player:get_player_name() + if unified_inventory.is_creative(player_name) then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + local player_name = player:get_player_name() + local handle_refill = (minetest.registered_items[stack:get_name()] or {}).on_refill or default_refill + stack = handle_refill(stack) + inv:set_stack(listname, index, stack) + minetest.sound_play("electricity", + {to_player=player_name, gain = 1.0}) + end, + }, player_name) + refill:set_size("main", 1) +end) + +local function apply_new_filter(player, search_text, new_dir) + local player_name = player:get_player_name() + minetest.sound_play("click", {to_player=player_name, gain = 0.1}) + unified_inventory.apply_filter(player, search_text, new_dir) + unified_inventory.current_searchbox[player_name] = search_text + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local player_name = player:get_player_name() + + local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + + if formname ~= "" then + return + end + + -- always take new search text, even if not searching on it yet + if fields.searchbox + and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then + unified_inventory.current_searchbox[player_name] = fields.searchbox + end + + for i, def in pairs(unified_inventory.buttons) do + if fields[def.name] then + def.action(player) + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + return + end + end + + -- Inventory page controls + local start = math.floor( + unified_inventory.current_index[player_name] / ui_peruser.items_per_page + 1) + local start_i = start + local pagemax = math.floor( + (#unified_inventory.filtered_items_list[player_name] - 1) + / (ui_peruser.items_per_page) + 1) + + if fields.start_list then + start_i = 1 + end + if fields.rewind1 then + start_i = start_i - 1 + end + if fields.forward1 then + start_i = start_i + 1 + end + if fields.rewind3 then + start_i = start_i - 3 + end + if fields.forward3 then + start_i = start_i + 3 + end + if fields.end_list then + start_i = pagemax + end + if start_i < 1 then + start_i = 1 + end + if start_i > pagemax then + start_i = pagemax + end + if start_i ~= start then + minetest.sound_play("paperflip1", + {to_player=player_name, gain = 1.0}) + unified_inventory.current_index[player_name] = (start_i - 1) * ui_peruser.items_per_page + 1 + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + end + + -- Check clicked item image button + local clicked_item + for name, value in pairs(fields) do + local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$") + if new_dir and mangled_item then + clicked_item = unified_inventory.demangle_for_formspec(mangled_item) + if string.sub(clicked_item, 1, 6) == "group:" then + -- Change search filter to this group + apply_new_filter(player, clicked_item, new_dir) + return + end + if new_dir == "recipe" or new_dir == "usage" then + unified_inventory.current_craft_direction[player_name] = new_dir + end + break + end + end + if clicked_item then + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local page = unified_inventory.current_page[player_name] + local player_creative = unified_inventory.is_creative(player_name) + if not player_creative then + page = "craftguide" + end + if page == "craftguide" then + unified_inventory.current_item[player_name] = clicked_item + unified_inventory.alternate[player_name] = 1 + unified_inventory.set_inventory_formspec(player, "craftguide") + elseif player_creative then + -- Creative page: Add entire stack to inventory + local inv = player:get_inventory() + local stack = ItemStack(clicked_item) + stack:set_count(stack:get_stack_max()) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + end + end + end + + if fields.searchbutton + or fields.key_enter_field == "searchbox" then + unified_inventory.apply_filter(player, unified_inventory.current_searchbox[player_name], "nochange") + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + minetest.sound_play("paperflip2", + {to_player=player_name, gain = 1.0}) + elseif fields.searchresetbutton then + apply_new_filter(player, "", "nochange") + end + + -- alternate buttons + if not (fields.alternate or fields.alternate_prev) then + return + end + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local item_name = unified_inventory.current_item[player_name] + if not item_name then + return + end + local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name] + if not crafts then + return + end + local alternates = #crafts + if alternates <= 1 then + return + end + local alternate + if fields.alternate then + alternate = unified_inventory.alternate[player_name] + 1 + if alternate > alternates then + alternate = 1 + end + elseif fields.alternate_prev then + alternate = unified_inventory.alternate[player_name] - 1 + if alternate < 1 then + alternate = alternates + end + end + unified_inventory.alternate[player_name] = alternate + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end) + +if minetest.delete_detached_inventory then + minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + minetest.delete_detached_inventory(player_name.."_bags") + minetest.delete_detached_inventory(player_name.."craftrecipe") + minetest.delete_detached_inventory(player_name.."refill") + end) +end diff --git a/mods/depends.txt b/mods/depends.txt new file mode 100644 index 00000000..cb3d2b4f --- /dev/null +++ b/mods/depends.txt @@ -0,0 +1,5 @@ +default +creative? +sfinv? +datastorage? +farming? diff --git a/mods/description.txt b/mods/description.txt new file mode 100644 index 00000000..b541fdf2 --- /dev/null +++ b/mods/description.txt @@ -0,0 +1 @@ +Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. diff --git a/mods/group.lua b/mods/group.lua new file mode 100644 index 00000000..3864267a --- /dev/null +++ b/mods/group.lua @@ -0,0 +1,127 @@ +local S = minetest.get_translator("unified_inventory") + +function unified_inventory.canonical_item_spec_matcher(spec) + local specname = ItemStack(spec):get_name() + if specname:sub(1, 6) ~= "group:" then + return function (itemname) + return itemname == specname + end + end + + local group_names = specname:sub(7):split(",") + return function (itemname) + local itemdef = minetest.registered_items[itemname] + for _, group_name in ipairs(group_names) do + if (itemdef.groups[group_name] or 0) == 0 then + return false + end + end + return true + end +end + +function unified_inventory.item_matches_spec(item, spec) + local itemname = ItemStack(item):get_name() + return unified_inventory.canonical_item_spec_matcher(spec)(itemname) +end + +function unified_inventory.extract_groupnames(groupname) + local specname = ItemStack(groupname):get_name() + if specname:sub(1, 6) ~= "group:" then + return nil, 0 + end + local group_names = specname:sub(7):split(",") + return table.concat(group_names, S(" and ")), #group_names +end + +unified_inventory.registered_group_items = { + mesecon_conductor_craftable = "mesecons:wire_00000000_off", + stone = "default:cobble", + wood = "default:wood", + book = "default:book", + sand = "default:sand", + leaves = "default:leaves", + tree = "default:tree", + vessel = "vessels:glass_bottle", + wool = "wool:white", +} + +function unified_inventory.register_group_item(groupname, itemname) + unified_inventory.registered_group_items[groupname] = itemname +end + + +-- This is used when displaying craft recipes, where an ingredient is +-- specified by group rather than as a specific item. A single-item group +-- is represented by that item, with the single-item status signalled +-- in the "sole" field. If the group contains no items at all, the item +-- field will be nil. +-- +-- Within a multiple-item group, we prefer to use an item that has the +-- same specific name as the group, and if there are more than one of +-- those items we prefer the one registered for the group by a mod. +-- Among equally-preferred items, we just pick the one with the +-- lexicographically earliest name. +-- +-- The parameter to this function isn't just a single group name. +-- It may be a comma-separated list of group names. This is really a +-- "group:..." ingredient specification, minus the "group:" prefix. + +local function compute_group_item(group_name_list) + local group_names = group_name_list:split(",") + local candidate_items = {} + for itemname, itemdef in pairs(minetest.registered_items) do + if (itemdef.groups.not_in_creative_inventory or 0) == 0 then + local all = true + for _, group_name in ipairs(group_names) do + if (itemdef.groups[group_name] or 0) == 0 then + all = false + end + end + if all then table.insert(candidate_items, itemname) end + end + end + local num_candidates = #candidate_items + if num_candidates == 0 then + return {sole = true} + elseif num_candidates == 1 then + return {item = candidate_items[1], sole = true} + end + local is_group = {} + local registered_rep = {} + for _, group_name in ipairs(group_names) do + is_group[group_name] = true + local rep = unified_inventory.registered_group_items[group_name] + if rep then registered_rep[rep] = true end + end + local bestitem = "" + local bestpref = 0 + for _, item in ipairs(candidate_items) do + local pref + if registered_rep[item] then + pref = 4 + elseif string.sub(item, 1, 8) == "default:" and is_group[string.sub(item, 9)] then + pref = 3 + elseif is_group[item:gsub("^[^:]*:", "")] then + pref = 2 + else + pref = 1 + end + if pref > bestpref or (pref == bestpref and item < bestitem) then + bestitem = item + bestpref = pref + end + end + return {item = bestitem, sole = false} +end + + +local group_item_cache = {} + +function unified_inventory.get_group_item(group_name) + if not group_item_cache[group_name] then + group_item_cache[group_name] = compute_group_item(group_name) + end + return group_item_cache[group_name] +end + diff --git a/mods/image_credits.txt b/mods/image_credits.txt new file mode 100644 index 00000000..12fbc650 --- /dev/null +++ b/mods/image_credits.txt @@ -0,0 +1,69 @@ +bags_small.png: + http://www.clker.com/clipart-moneybag-empty.html + +bags_medium.png: + http://www.clker.com/clipart-backpack-1.html + +bags_large.png / ui_bags_icon.png: + http://www.clker.com/clipart-backpack-green-brown.html + +ui_craftguide_icon.png / ui_craft_icon.png + http://commons.wikimedia.org/wiki/File:Advancedsettings.png + +ui_doubleleft_icon.png + http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg + +ui_doubleright_icon.png + http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg + +ui_left_icon.png / ui_right_icon.png + http://commons.wikimedia.org/wiki/File:Media-playback-start.svg + +ui_skip_backward_icon.png + http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg + +ui_skip_forward_icon.png + http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg + +ui_reset_icon.png + https://commons.wikimedia.org/wiki/File:Edit-clear.svg + +ui_gohome_icon.png / ui_home_icon.png / ui_sethome_icon.png + http://commons.wikimedia.org/wiki/File:Home_256x256.png + +ui_moon_icon.png + http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg + +ui_sun_icon.png + http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg + +ui_trash_icon.png + http://www.clker.com/clipart-29090.html + http://www.clker.com/clipart-trash.html + +ui_search_icon.png + http://www.clker.com/clipart-24887.html + +ui_off_icon.png / ui_on_icon.png + http://www.clker.com/clipart-on-off-switches.html + +ui_waypoints_icon.png + http://www.clker.com/clipart-map-pin-red.html + +ui_circular_arrows_icon.png + http://www.clker.com/clipart-circular-arrow-pattern.html + +ui_pencil_icon.pnc + http://www.clker.com/clipart-2256.html + +ui_waypoint_set_icon.png + http://www.clker.com/clipart-larger-flag.html + +ui_xyz_off_icon.png + http://commons.wikimedia.org/wiki/File:No_sign.svg + +ui_ok_icon.png + http://commons.wikimedia.org/wiki/File:Yes_check.svg + +inventory_plus_worldedit_gui.png + http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg diff --git a/mods/init.lua b/mods/init.lua new file mode 100644 index 00000000..1a80abbb --- /dev/null +++ b/mods/init.lua @@ -0,0 +1,79 @@ +-- Unified Inventory for Minetest >= 0.4.16 + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +local worldpath = minetest.get_worldpath() + +-- Data tables definitions +unified_inventory = { + activefilter = {}, + active_search_direction = {}, + alternate = {}, + current_page = {}, + current_searchbox = {}, + current_index = {}, + current_item = {}, + current_craft_direction = {}, + registered_craft_types = {}, + crafts_for = {usage = {}, recipe = {} }, + players = {}, + items_list_size = 0, + items_list = {}, + filtered_items_list_size = {}, + filtered_items_list = {}, + pages = {}, + buttons = {}, + + -- Homepos stuff + home_pos = {}, + home_filename = worldpath.."/unified_inventory_home.home", + + -- Default inventory page + default = "craft", + + -- "Lite" mode + lite_mode = minetest.settings:get_bool("unified_inventory_lite"), + + -- Trash enabled + trash_enabled = (minetest.settings:get_bool("unified_inventory_trash") ~= false), + + pagecols = 8, + pagerows = 10, + page_y = 0, + formspec_y = 1, + main_button_x = 0, + main_button_y = 9, + craft_result_x = 0.3, + craft_result_y = 0.5, + form_header_y = 0 +} + +-- Disable default creative inventory +local creative = rawget(_G, "creative") or rawget(_G, "creative_inventory") +if creative then + function creative.set_creative_formspec(player, start_i, pagenum) + return + end +end + +-- Disable sfinv inventory +local sfinv = rawget(_G, "sfinv") +if sfinv then + sfinv.enabled = false +end + +dofile(modpath.."/group.lua") +dofile(modpath.."/api.lua") +dofile(modpath.."/internal.lua") +dofile(modpath.."/callbacks.lua") +dofile(modpath.."/match_craft.lua") +dofile(modpath.."/register.lua") + +if minetest.settings:get_bool("unified_inventory_bags") ~= false then + dofile(modpath.."/bags.lua") +end + +dofile(modpath.."/item_names.lua") + +if minetest.get_modpath("datastorage") then + dofile(modpath.."/waypoints.lua") +end diff --git a/mods/internal.lua b/mods/internal.lua new file mode 100644 index 00000000..05dc5f59 --- /dev/null +++ b/mods/internal.lua @@ -0,0 +1,374 @@ +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +-- This pair of encoding functions is used where variable text must go in +-- button names, where the text might contain formspec metacharacters. +-- We can escape button names for the formspec, to avoid screwing up +-- form structure overall, but they then don't get de-escaped, and so +-- the input we get back from the button contains the formspec escaping. +-- This is a game engine bug, and in the anticipation that it might be +-- fixed some day we don't want to rely on it. So for safety we apply +-- an encoding that avoids all formspec metacharacters. +function unified_inventory.mangle_for_formspec(str) + return string.gsub(str, "([^A-Za-z0-9])", function (c) return string.format("_%d_", string.byte(c)) end) +end +function unified_inventory.demangle_for_formspec(str) + return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end) +end + +function unified_inventory.get_per_player_formspec(player_name) + local lite = unified_inventory.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true}) + + local ui = {} + ui.pagecols = unified_inventory.pagecols + ui.pagerows = unified_inventory.pagerows + ui.page_y = unified_inventory.page_y + ui.formspec_y = unified_inventory.formspec_y + ui.main_button_x = unified_inventory.main_button_x + ui.main_button_y = unified_inventory.main_button_y + ui.craft_result_x = unified_inventory.craft_result_x + ui.craft_result_y = unified_inventory.craft_result_y + ui.form_header_y = unified_inventory.form_header_y + + if lite then + ui.pagecols = 4 + ui.pagerows = 6 + ui.page_y = 0.25 + ui.formspec_y = 0.47 + ui.main_button_x = 8.2 + ui.main_button_y = 6.5 + ui.craft_result_x = 2.8 + ui.craft_result_y = 3.4 + ui.form_header_y = -0.1 + end + + ui.items_per_page = ui.pagecols * ui.pagerows + return ui, lite +end + +function unified_inventory.get_formspec(player, page) + + if not player then + return "" + end + + local player_name = player:get_player_name() + local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + + unified_inventory.current_page[player_name] = page + local pagedef = unified_inventory.pages[page] + + if not pagedef then + return "" -- Invalid page name + end + + local formspec = { + "size[14,10]", + pagedef.formspec_prepend and "" or "no_prepend[]", + "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background + } + local n = 4 + + if draw_lite_mode then + formspec[1] = "size[11,7.7]" + formspec[3] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]" + end + + if unified_inventory.is_creative(player_name) + and page == "craft" then + formspec[n] = "background[0,"..(ui_peruser.formspec_y + 2)..";1,1;ui_single_slot.png]" + n = n+1 + end + + local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name) + local fsdata = pagedef.get_formspec(player, perplayer_formspec) + + formspec[n] = fsdata.formspec + n = n+1 + + local button_row = 0 + local button_col = 0 + + -- Main buttons + + local filtered_inv_buttons = {} + + for i, def in pairs(unified_inventory.buttons) do + if not (draw_lite_mode and def.hide_lite) then + table.insert(filtered_inv_buttons, def) + end + end + + for i, def in pairs(filtered_inv_buttons) do + + if draw_lite_mode and i > 4 then + button_row = 1 + button_col = 1 + end + + if def.type == "image" then + if (def.condition == nil or def.condition(player) == true) then + formspec[n] = "image_button[" + formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) + formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" + formspec[n+3] = F(def.image)..";" + formspec[n+4] = F(def.name)..";]" + formspec[n+5] = "tooltip["..F(def.name) + formspec[n+6] = ";"..(def.tooltip or "").."]" + n = n+7 + else + formspec[n] = "image[" + formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) + formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" + formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]" + n = n+4 + + end + end + end + + if fsdata.draw_inventory ~= false then + -- Player inventory + formspec[n] = "listcolors[#00000000;#00000000]" + formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]" + n = n+2 + end + + if fsdata.draw_item_list == false then + return table.concat(formspec, "") + end + + -- Controls to flip items pages + local start_x = 9.2 + + if not draw_lite_mode then + formspec[n] = + "image_button[" .. (start_x + 0.6 * 0) + .. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]" + .. "tooltip[start_list;" .. F(S("First page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 1) + .. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]" + .. "tooltip[rewind3;" .. F(S("Back three pages")) .. "]" + .. "image_button[" .. (start_x + 0.6 * 2) + .. ",9;.8,.8;ui_left_icon.png;rewind1;]" + .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 3) + .. ",9;.8,.8;ui_right_icon.png;forward1;]" + .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" + .. "image_button[" .. (start_x + 0.6 * 4) + .. ",9;.8,.8;ui_doubleright_icon.png;forward3;]" + .. "tooltip[forward3;" .. F(S("Forward three pages")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 5) + .. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]" + .. "tooltip[end_list;" .. F(S("Last page")) .. "]" + else + formspec[n] = + "image_button[" .. (8.2 + 0.65 * 0) + .. ",5.8;.8,.8;ui_skip_backward_icon.png;start_list;]" + .. "tooltip[start_list;" .. F(S("First page")) .. "]" + .. "image_button[" .. (8.2 + 0.65 * 1) + .. ",5.8;.8,.8;ui_left_icon.png;rewind1;]" + .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" + .. "image_button[" .. (8.2 + 0.65 * 2) + .. ",5.8;.8,.8;ui_right_icon.png;forward1;]" + .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" + .. "image_button[" .. (8.2 + 0.65 * 3) + .. ",5.8;.8,.8;ui_skip_forward_icon.png;end_list;]" + .. "tooltip[end_list;" .. F(S("Last page")) .. "]" + end + n = n+1 + + -- Search box + formspec[n] = "field_close_on_enter[searchbox;false]" + n = n+1 + + if not draw_lite_mode then + formspec[n] = "field[9.5,8.325;3,1;searchbox;;" + .. F(unified_inventory.current_searchbox[player_name]) .. "]" + formspec[n+1] = "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + formspec[n+2] = "image_button[12.9,8.1;.8,.8;ui_reset_icon.png;searchresetbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" + else + formspec[n] = "field[8.5,5.225;2.2,1;searchbox;;" + .. F(unified_inventory.current_searchbox[player_name]) .. "]" + formspec[n+1] = "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + formspec[n+2] = "image_button[11,5;.8,.8;ui_reset_icon.png;searchresetbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" + end + n = n+3 + + local no_matches = S("No matching items") + if draw_lite_mode then + no_matches = S("No matches.") + end + + -- Items list + if #unified_inventory.filtered_items_list[player_name] == 0 then + formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. F(no_matches) .. "]" + else + local dir = unified_inventory.active_search_direction[player_name] + local list_index = unified_inventory.current_index[player_name] + local page = math.floor(list_index / (ui_peruser.items_per_page) + 1) + local pagemax = math.floor( + (#unified_inventory.filtered_items_list[player_name] - 1) + / (ui_peruser.items_per_page) + 1) + local item = {} + for y = 0, ui_peruser.pagerows - 1 do + for x = 0, ui_peruser.pagecols - 1 do + local name = unified_inventory.filtered_items_list[player_name][list_index] + local item = minetest.registered_items[name] + if item then + -- Clicked on current item: Flip crafting direction + if name == unified_inventory.current_item[player_name] then + local cdir = unified_inventory.current_craft_direction[player_name] + if cdir == "recipe" then + dir = "usage" + elseif cdir == "usage" then + dir = "recipe" + end + else + -- Default: use active search direction by default + dir = unified_inventory.active_search_direction[player_name] + end + + local button_name = "item_button_" .. dir .. "_" + .. unified_inventory.mangle_for_formspec(name) + formspec[n] = ("item_image_button[%f,%f;.81,.81;%s;%s;]"):format( + 8.2 + x * 0.7, ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7, + name, button_name + ) + formspec[n + 1] = ("tooltip[%s;%s \\[%s\\]]"):format( + button_name, minetest.formspec_escape(item.description), + item.mod_origin or "??" + ) + n = n + 2 + list_index = list_index + 1 + end + end + end + formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..F(S("Page")) .. ": " + .. S("@1 of @2",page,pagemax).."]" + end + n= n+1 + + if unified_inventory.activefilter[player_name] ~= "" then + formspec[n] = "label[8.2,"..(ui_peruser.form_header_y + 0.4)..";" .. F(S("Filter")) .. ":]" + formspec[n+1] = "label[9.1,"..(ui_peruser.form_header_y + 0.4)..";"..F(unified_inventory.activefilter[player_name]).."]" + end + return table.concat(formspec, "") +end + +function unified_inventory.set_inventory_formspec(player, page) + if player then + player:set_inventory_formspec(unified_inventory.get_formspec(player, page)) + end +end + +--apply filter to the inventory list (create filtered copy of full one) +function unified_inventory.apply_filter(player, filter, search_dir) + if not player then + return false + end + local player_name = player:get_player_name() + local lfilter = string.lower(filter) + local ffilter + if lfilter:sub(1, 6) == "group:" then + local groups = lfilter:sub(7):split(",") + ffilter = function(name, def) + for _, group in ipairs(groups) do + if not def.groups[group] + or def.groups[group] <= 0 then + return false + end + end + return true + end + else + ffilter = function(name, def) + local lname = string.lower(name) + local ldesc = string.lower(def.description) + return string.find(lname, lfilter, 1, true) or string.find(ldesc, lfilter, 1, true) + end + end + unified_inventory.filtered_items_list[player_name]={} + for name, def in pairs(minetest.registered_items) do + if (not def.groups.not_in_creative_inventory + or def.groups.not_in_creative_inventory == 0) + and def.description + and def.description ~= "" + and ffilter(name, def) then + table.insert(unified_inventory.filtered_items_list[player_name], name) + end + end + table.sort(unified_inventory.filtered_items_list[player_name]) + unified_inventory.filtered_items_list_size[player_name] = #unified_inventory.filtered_items_list[player_name] + unified_inventory.current_index[player_name] = 1 + unified_inventory.activefilter[player_name] = filter + unified_inventory.active_search_direction[player_name] = search_dir + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end + +function unified_inventory.items_in_group(groups) + local items = {} + for name, item in pairs(minetest.registered_items) do + for _, group in pairs(groups:split(',')) do + if item.groups[group] then + table.insert(items, name) + end + end + end + return items +end + +function unified_inventory.sort_inventory(inv) + local inlist = inv:get_list("main") + local typecnt = {} + local typekeys = {} + for _, st in ipairs(inlist) do + if not st:is_empty() then + local n = st:get_name() + local w = st:get_wear() + local m = st:get_metadata() + local k = string.format("%s %05d %s", n, w, m) + if not typecnt[k] then + typecnt[k] = { + name = n, + wear = w, + metadata = m, + stack_max = st:get_stack_max(), + count = 0, + } + table.insert(typekeys, k) + end + typecnt[k].count = typecnt[k].count + st:get_count() + end + end + table.sort(typekeys) + local outlist = {} + for _, k in ipairs(typekeys) do + local tc = typecnt[k] + while tc.count > 0 do + local c = math.min(tc.count, tc.stack_max) + table.insert(outlist, ItemStack({ + name = tc.name, + wear = tc.wear, + metadata = tc.metadata, + count = c, + })) + tc.count = tc.count - c + end + end + if #outlist > #inlist then return end + while #outlist < #inlist do + table.insert(outlist, ItemStack(nil)) + end + inv:set_list("main", outlist) +end diff --git a/mods/item_names.lua b/mods/item_names.lua new file mode 100644 index 00000000..d374b140 --- /dev/null +++ b/mods/item_names.lua @@ -0,0 +1,76 @@ +-- Based on 4itemnames mod by 4aiman + +local item_names = {} -- [player_name] = { hud, dtime, itemname } +local dlimit = 3 -- HUD element will be hidden after this many seconds +local air_hud_mod = minetest.get_modpath("4air") +local hud_mod = minetest.get_modpath("hud") +local hudbars_mod = minetest.get_modpath("hudbars") + +local function set_hud(player) + local player_name = player:get_player_name() + local off = {x=0, y=-70} + if air_hud_mod or hud_mod then + off.y = off.y - 20 + elseif hudbars_mod then + off.y = off.y + 13 + end + item_names[player_name] = { + hud = player:hud_add({ + hud_elem_type = "text", + position = {x=0.5, y=1}, + offset = off, + alignment = {x=0, y=0}, + number = 0xFFFFFF, + text = "", + }), + dtime = dlimit, + index = 1, + itemname = "" + } +end + +minetest.register_on_joinplayer(function(player) + minetest.after(0, set_hud, player) +end) + +minetest.register_on_leaveplayer(function(player) + item_names[player:get_player_name()] = nil +end) + +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local data = item_names[player:get_player_name()] + if not data or not data.hud then + data = {} -- Update on next step + set_hud(player) + end + + local index = player:get_wield_index() + local stack = player:get_wielded_item() + local itemname = stack:get_name() + + if data.hud and data.dtime < dlimit then + data.dtime = data.dtime + dtime + if data.dtime > dlimit then + player:hud_change(data.hud, 'text', "") + end + end + + if data.hud and (itemname ~= data.itemname or index ~= data.index) then + data.itemname = itemname + data.index = index + data.dtime = 0 + + local desc = stack.get_meta + and stack:get_meta():get_string("description") + + if not desc or desc == "" then + -- Try to use default description when none is set in the meta + local def = minetest.registered_items[itemname] + desc = def and def.description or "" + end + player:hud_change(data.hud, 'text', desc) + end + end +end) + diff --git a/mods/match_craft.lua b/mods/match_craft.lua new file mode 100644 index 00000000..2dd40b04 --- /dev/null +++ b/mods/match_craft.lua @@ -0,0 +1,409 @@ +-- match_craft.lua +-- Find and automatically move inventory items to the crafting grid +-- according to the recipe. + +--[[ +Retrieve items from inventory lists and calculate their total count. +Return a table of "item name" - "total count" pairs. + +Arguments: + inv: minetest inventory reference + lists: names of inventory lists to use + +Example usage: + -- Count items in "main" and "craft" lists of player inventory + unified_inventory.count_items(player_inv_ref, {"main", "craft"}) + +Example output: + { + ["default:pine_wood"] = 2, + ["default:acacia_wood"] = 4, + ["default:chest"] = 3, + ["default:axe_diamond"] = 2, -- unstackable item are counted too + ["wool:white"] = 6 + } +]]-- +function unified_inventory.count_items(inv, lists) + local counts = {} + + for i = 1, #lists do + local name = lists[i] + local size = inv:get_size(name) + local list = inv:get_list(name) + + for j = 1, size do + local stack = list[j] + + if not stack:is_empty() then + local item = stack:get_name() + local count = stack:get_count() + + counts[item] = (counts[item] or 0) + count + end + end + end + + return counts +end + +--[[ +Retrieve craft recipe items and their positions in the crafting grid. +Return a table of "craft item name" - "set of positions" pairs. + +Note that if craft width is not 3 then positions are recalculated as +if items were placed on a 3x3 grid. Also note that craft can contain +groups of items with "group:" prefix. + +Arguments: + craft: minetest craft recipe + +Example output: + -- Bed recipe + { + ["wool:white"] = {[1] = true, [2] = true, [3] = true} + ["group:wood"] = {[4] = true, [5] = true, [6] = true} + } +--]] +function unified_inventory.count_craft_positions(craft) + local positions = {} + local craft_items = craft.items + local craft_type = unified_inventory.registered_craft_types[craft.type] + or unified_inventory.craft_type_defaults(craft.type, {}) + local display_width = craft_type.dynamic_display_size + and craft_type.dynamic_display_size(craft).width + or craft_type.width + local craft_width = craft_type.get_shaped_craft_width + and craft_type.get_shaped_craft_width(craft) + or display_width + local i = 0 + + for y = 1, 3 do + for x = 1, craft_width do + i = i + 1 + local item = craft_items[i] + + if item ~= nil then + local pos = 3 * (y - 1) + x + local set = positions[item] + + if set ~= nil then + set[pos] = true + else + positions[item] = {[pos] = true} + end + end + end + end + + return positions +end + +--[[ +For every craft item find all matching inventory items. +- If craft item is a group then find all inventory items that matches + this group. +- If craft item is not a group (regular item) then find only this item. + +If inventory doesn't contain needed item then found set is empty for +this item. + +Return a table of "craft item name" - "set of matching inventory items" +pairs. + +Arguments: + inv_items: table with items names as keys + craft_items: table with items names or groups as keys + +Example output: + { + ["group:wood"] = { + ["default:pine_wood"] = true, + ["default:acacia_wood"] = true + }, + ["wool:white"] = { + ["wool:white"] = true + } + } +--]] +function unified_inventory.find_usable_items(inv_items, craft_items) + local get_group = minetest.get_item_group + local result = {} + + for craft_item in pairs(craft_items) do + local group = craft_item:match("^group:(.+)") + local found = {} + + if group ~= nil then + for inv_item in pairs(inv_items) do + if get_group(inv_item, group) > 0 then + found[inv_item] = true + end + end + else + if inv_items[craft_item] ~= nil then + found[craft_item] = true + end + end + + result[craft_item] = found + end + + return result +end + +--[[ +Match inventory items with craft grid positions. +For every position select the matching inventory item with maximum +(total_count / (times_matched + 1)) value. + +If for some position matching item cannot be found or match count is 0 +then return nil. + +Return a table of "matched item name" - "set of craft positions" pairs +and overall match count. + +Arguments: + inv_counts: table of inventory items counts from "count_items" + craft_positions: table of craft positions from "count_craft_positions" + +Example output: + match_table = { + ["wool:white"] = {[1] = true, [2] = true, [3] = true} + ["default:acacia_wood"] = {[4] = true, [6] = true} + ["default:pine_wood"] = {[5] = true} + } + match_count = 2 +--]] +function unified_inventory.match_items(inv_counts, craft_positions) + local usable = unified_inventory.find_usable_items(inv_counts, craft_positions) + local match_table = {} + local match_count + local matches = {} + + for craft_item, pos_set in pairs(craft_positions) do + local use_set = usable[craft_item] + + for pos in pairs(pos_set) do + local pos_item + local pos_count + + for use_item in pairs(use_set) do + local count = inv_counts[use_item] + local times_matched = matches[use_item] or 0 + local new_pos_count = math.floor(count / (times_matched + 1)) + + if pos_count == nil or pos_count < new_pos_count then + pos_item = use_item + pos_count = new_pos_count + end + end + + if pos_item == nil or pos_count == 0 then + return nil + end + + local set = match_table[pos_item] + + if set ~= nil then + set[pos] = true + else + match_table[pos_item] = {[pos] = true} + end + + matches[pos_item] = (matches[pos_item] or 0) + 1 + end + end + + for match_item, times_matched in pairs(matches) do + local count = inv_counts[match_item] + local item_count = math.floor(count / times_matched) + + if match_count == nil or item_count < match_count then + match_count = item_count + end + end + + return match_table, match_count +end + +--[[ +Remove item from inventory lists. +Return stack of actually removed items. + +This function replicates the inv:remove_item function but can accept +multiple lists. + +Arguments: + inv: minetest inventory reference + lists: names of inventory lists + stack: minetest item stack +--]] +function unified_inventory.remove_item(inv, lists, stack) + local removed = ItemStack(nil) + local leftover = ItemStack(stack) + + for i = 1, #lists do + if leftover:is_empty() then + break + end + + local cur_removed = inv:remove_item(lists[i], leftover) + removed:add_item(cur_removed) + leftover:take_item(cur_removed:get_count()) + end + + return removed +end + +--[[ +Add item to inventory lists. +Return leftover stack. + +This function replicates the inv:add_item function but can accept +multiple lists. + +Arguments: + inv: minetest inventory reference + lists: names of inventory lists + stack: minetest item stack +--]] +function unified_inventory.add_item(inv, lists, stack) + local leftover = ItemStack(stack) + + for i = 1, #lists do + if leftover:is_empty() then + break + end + + leftover = inv:add_item(lists[i], leftover) + end + + return leftover +end + +--[[ +Move items from source list to destination list if possible. +Skip positions specified in exclude set. + +Arguments: + inv: minetest inventory reference + src_list: name of source list + dst_list: name of destination list + exclude: set of positions to skip +--]] +function unified_inventory.swap_items(inv, src_list, dst_list, exclude) + local size = inv:get_size(src_list) + local empty = ItemStack(nil) + + for i = 1, size do + if exclude == nil or exclude[i] == nil then + local stack = inv:get_stack(src_list, i) + + if not stack:is_empty() then + inv:set_stack(src_list, i, empty) + local leftover = inv:add_item(dst_list, stack) + + if not leftover:is_empty() then + inv:set_stack(src_list, i, leftover) + end + end + end + end +end + +--[[ +Move matched items to the destination list. + +If destination list position is already occupied with some other item +then function tries to (in that order): +1. Move it to the source list +2. Move it to some other unused position in destination list itself +3. Drop it to the ground if nothing else is possible. + +Arguments: + player: minetest player object + src_list: name of source list + dst_list: name of destination list + match_table: table of matched items + amount: amount of items per every position +--]] +function unified_inventory.move_match(player, src_list, dst_list, match_table, amount) + local inv = player:get_inventory() + local item_drop = minetest.item_drop + local src_dst_list = {src_list, dst_list} + local dst_src_list = {dst_list, src_list} + + local needed = {} + local moved = {} + + -- Remove stacks needed for craft + for item, pos_set in pairs(match_table) do + local stack = ItemStack(item) + local stack_max = stack:get_stack_max() + local bounded_amount = math.min(stack_max, amount) + stack:set_count(bounded_amount) + + for pos in pairs(pos_set) do + needed[pos] = unified_inventory.remove_item(inv, dst_src_list, stack) + end + end + + -- Add already removed stacks + for pos, stack in pairs(needed) do + local occupied = inv:get_stack(dst_list, pos) + inv:set_stack(dst_list, pos, stack) + + if not occupied:is_empty() then + local leftover = unified_inventory.add_item(inv, src_dst_list, occupied) + + if not leftover:is_empty() then + inv:set_stack(dst_list, pos, leftover) + local oversize = unified_inventory.add_item(inv, src_dst_list, stack) + + if not oversize:is_empty() then + item_drop(oversize, player, player:get_pos()) + end + end + end + + moved[pos] = true + end + + -- Swap items from unused positions to src (moved positions excluded) + unified_inventory.swap_items(inv, dst_list, src_list, moved) +end + +--[[ +Find craft match and move matched items to the destination list. + +If match cannot be found or match count is smaller than the desired +amount then do nothing. + +If amount passed is -1 then amount is defined by match count itself. +This is used to indicate "craft All" case. + +Arguments: + player: minetest player object + src_list: name of source list + dst_list: name of destination list + craft: minetest craft recipe + amount: desired amount of output items +--]] +function unified_inventory.craftguide_match_craft(player, src_list, dst_list, craft, amount) + local inv = player:get_inventory() + local src_dst_list = {src_list, dst_list} + + local counts = unified_inventory.count_items(inv, src_dst_list) + local positions = unified_inventory.count_craft_positions(craft) + local match_table, match_count = unified_inventory.match_items(counts, positions) + + if match_table == nil or match_count < amount then + return + end + + if amount == -1 then + amount = match_count + end + + unified_inventory.move_match(player, src_list, dst_list, match_table, amount) +end diff --git a/mods/mod.conf b/mods/mod.conf new file mode 100644 index 00000000..4fe3375f --- /dev/null +++ b/mods/mod.conf @@ -0,0 +1,4 @@ +name = unified_inventory +depends = default +optional_depends = creative, sfinv, datastorage, farming +description = Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. diff --git a/mods/register.lua b/mods/register.lua new file mode 100644 index 00000000..d89c05e5 --- /dev/null +++ b/mods/register.lua @@ -0,0 +1,489 @@ +local S = minetest.get_translator("unified_inventory") +local NS = function(s) return s end +local F = minetest.formspec_escape + +minetest.register_privilege("creative", { + description = S("Can use the creative inventory"), + give_to_singleplayer = false, +}) + +minetest.register_privilege("ui_full", { + description = S("Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally"), + give_to_singleplayer = false, +}) + + +local trash = minetest.create_detached_inventory("trash", { + --allow_put = function(inv, listname, index, stack, player) + -- if unified_inventory.is_creative(player:get_player_name()) then + -- return stack:get_count() + -- else + -- return 0 + -- end + --end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, nil) + local player_name = player:get_player_name() + minetest.sound_play("trash", {to_player=player_name, gain = 1.0}) + end, +}) +trash:set_size("main", 1) + +unified_inventory.register_button("craft", { + type = "image", + image = "ui_craft_icon.png", + tooltip = S("Crafting Grid") +}) + +unified_inventory.register_button("craftguide", { + type = "image", + image = "ui_craftguide_icon.png", + tooltip = S("Crafting Guide") +}) + +unified_inventory.register_button("home_gui_set", { + type = "image", + image = "ui_sethome_icon.png", + tooltip = S("Set home position"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {home=true}) then + unified_inventory.set_home(player, player:get_pos()) + local home = unified_inventory.home_pos[player_name] + if home ~= nil then + minetest.sound_play("dingdong", + {to_player=player_name, gain = 1.0}) + minetest.chat_send_player(player_name, + S("Home position set to: @1", minetest.pos_to_string(home))) + end + else + minetest.chat_send_player(player_name, + S("You don't have the \"home\" privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {home=true}) + end, +}) + +unified_inventory.register_button("home_gui_go", { + type = "image", + image = "ui_gohome_icon.png", + tooltip = S("Go home"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {home=true}) then + minetest.sound_play("teleport", + {to_player=player:get_player_name(), gain = 1.0}) + unified_inventory.go_home(player) + else + minetest.chat_send_player(player_name, + S("You don't have the \"home\" privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {home=true}) + end, +}) + +unified_inventory.register_button("misc_set_day", { + type = "image", + image = "ui_sun_icon.png", + tooltip = S("Set time to day"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("birds", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((6000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 6am")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {settime=true}) + end, +}) + +unified_inventory.register_button("misc_set_night", { + type = "image", + image = "ui_moon_icon.png", + tooltip = S("Set time to night"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("owl", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((21000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 9pm")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {settime=true}) + end, +}) + +unified_inventory.register_button("clear_inv", { + type = "image", + image = "ui_trash_icon.png", + tooltip = S("Clear inventory"), + action = function(player) + local player_name = player:get_player_name() + if not unified_inventory.is_creative(player_name) then + minetest.chat_send_player(player_name, + S("This button has been disabled outside" + .." of creative mode to prevent" + .." accidental inventory trashing." + .."\nUse the trash slot instead.")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + return + end + player:get_inventory():set_list("main", {}) + minetest.chat_send_player(player_name, S('Inventory cleared!')) + minetest.sound_play("trash_all", + {to_player=player_name, gain = 1.0}) + end, + condition = function(player) + return unified_inventory.is_creative(player:get_player_name()) + end, +}) + +unified_inventory.register_page("craft", { + get_formspec = function(player, perplayer_formspec) + + local formspecy = perplayer_formspec.formspec_y + local formheadery = perplayer_formspec.form_header_y + + local player_name = player:get_player_name() + local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]" + formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]" + formspec = formspec.."label[0,"..formheadery..";" ..F(S("Crafting")).."]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]" + formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]" + if unified_inventory.trash_enabled or unified_inventory.is_creative(player_name) or minetest.get_player_privs(player_name).give then + formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. F(S("Trash:")) .. "]" + formspec = formspec.."background[7,"..(formspecy + 2)..";1,1;ui_single_slot.png]" + formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]" + end + formspec = formspec.."listring[current_name;craft]" + formspec = formspec.."listring[current_player;main]" + if unified_inventory.is_creative(player_name) then + formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. F(S("Refill:")) .. "]" + formspec = formspec.."list[detached:"..F(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]" + end + return {formspec=formspec} + end, +}) + +-- stack_image_button(): generate a form button displaying a stack of items +-- +-- The specified item may be a group. In that case, the group will be +-- represented by some item in the group, along with a flag indicating +-- that it's a group. If the group contains only one item, it will be +-- treated as if that item had been specified directly. + +local function stack_image_button(x, y, w, h, buttonname_prefix, item) + local name = item:get_name() + local count = item:get_count() + local show_is_group = false + local displayitem = name.." "..count + local selectitem = name + if name:sub(1, 6) == "group:" then + local group_name = name:sub(7) + local group_item = unified_inventory.get_group_item(group_name) + show_is_group = not group_item.sole + displayitem = group_item.item or "unknown" + selectitem = group_item.sole and displayitem or name + end + local label = show_is_group and "G" or "" + local buttonname = F(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)) + local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]", + x, y, w, h, + F(displayitem), buttonname, label) + if show_is_group then + local groupstring, andcount = unified_inventory.extract_groupnames(name) + local grouptip + if andcount == 1 then + grouptip = S("Any item belonging to the @1 group", groupstring) + elseif andcount > 1 then + grouptip = S("Any item belonging to the groups @1", groupstring) + end + grouptip = F(grouptip) + if andcount >= 1 then + button = button .. string.format("tooltip[%s;%s]", buttonname, grouptip) + end + end + return button +end + +local recipe_text = { + recipe = NS("Recipe @1 of @2"), + usage = NS("Usage @1 of @2"), +} +local no_recipe_text = { + recipe = S("No recipes"), + usage = S("No usages"), +} +local role_text = { + recipe = S("Result"), + usage = S("Ingredient"), +} +local next_alt_text = { + recipe = S("Show next recipe"), + usage = S("Show next usage"), +} +local prev_alt_text = { + recipe = S("Show previous recipe"), + usage = S("Show previous usage"), +} +local other_dir = { + recipe = "usage", + usage = "recipe", +} + +unified_inventory.register_page("craftguide", { + get_formspec = function(player, perplayer_formspec) + + local formspecy = perplayer_formspec.formspec_y + local formheadery = perplayer_formspec.form_header_y + local craftresultx = perplayer_formspec.craft_result_x + local craftresulty = perplayer_formspec.craft_result_y + + local player_name = player:get_player_name() + local player_privs = minetest.get_player_privs(player_name) + local fs = { + "background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]", + "label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]", + "listcolors[#00000000;#00000000]" + } + local item_name = unified_inventory.current_item[player_name] + if not item_name then + return { formspec = table.concat(fs) } + end + + local item_name_shown + if minetest.registered_items[item_name] + and minetest.registered_items[item_name].description then + item_name_shown = S("@1 (@2)", + minetest.registered_items[item_name].description, item_name) + else + item_name_shown = item_name + end + + local dir = unified_inventory.current_craft_direction[player_name] + local rdir = dir == "recipe" and "usage" or "recipe" + + local crafts = unified_inventory.crafts_for[dir][item_name] + local alternate = unified_inventory.alternate[player_name] + local alternates, craft + if crafts and #crafts > 0 then + alternates = #crafts + craft = crafts[alternate] + end + local has_give = player_privs.give or unified_inventory.is_creative(player_name) + + fs[#fs + 1] = "background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]" + fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]", + craftresultx, craftresulty, F(role_text[dir]), item_name_shown) + fs[#fs + 1] = stack_image_button(0, formspecy, 1.1, 1.1, + "item_button_" .. rdir .. "_", ItemStack(item_name)) + + if not craft then + -- No craft recipes available for this item. + fs[#fs + 1] = "label[5.5,"..(formspecy + 2.35)..";" + .. F(no_recipe_text[dir]) .. "]" + local no_pos = dir == "recipe" and 4.5 or 6.5 + local item_pos = dir == "recipe" and 6.5 or 4.5 + fs[#fs + 1] = "image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]" + fs[#fs + 1] = stack_image_button(item_pos, formspecy, 1.1, 1.1, + "item_button_" .. other_dir[dir] .. "_", ItemStack(item_name)) + if has_give then + fs[#fs + 1] = "label[0," .. (formspecy + 2.10) .. ";" .. F(S("Give me:")) .. "]" + .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" + .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" + .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" + end + return { formspec = table.concat(fs) } + end + + local craft_type = unified_inventory.registered_craft_types[craft.type] or + unified_inventory.craft_type_defaults(craft.type, {}) + if craft_type.icon then + fs[#fs + 1] = string.format("image[%f,%f;%f,%f;%s]", + 5.7, (formspecy + 0.05), 0.5, 0.5, craft_type.icon) + end + fs[#fs + 1] = "label[5.5,"..(formspecy + 1)..";" .. F(craft_type.description).."]" + fs[#fs + 1] = stack_image_button(6.5, formspecy, 1.1, 1.1, + "item_button_usage_", ItemStack(craft.output)) + + local display_size = craft_type.dynamic_display_size + and craft_type.dynamic_display_size(craft) + or { width = craft_type.width, height = craft_type.height } + local craft_width = craft_type.get_shaped_craft_width + and craft_type.get_shaped_craft_width(craft) + or display_size.width + + -- This keeps recipes aligned to the right, + -- so that they're close to the arrow. + local xoffset = 5.5 + -- Offset factor for crafting grids with side length > 4 + local of = (3/math.max(3, math.max(display_size.width, display_size.height))) + local od = 0 + -- Minimum grid size at which size optimazation measures kick in + local mini_craft_size = 6 + if display_size.width >= mini_craft_size then + od = math.max(1, display_size.width - 2) + xoffset = xoffset - 0.1 + end + -- Size modifier factor + local sf = math.min(1, of * (1.05 + 0.05*od)) + -- Button size + local bsize_h = 1.1 * sf + local bsize_w = bsize_h + if display_size.width >= mini_craft_size then + bsize_w = 1.175 * sf + end + if (bsize_h > 0.35 and display_size.width) then + for y = 1, display_size.height do + for x = 1, display_size.width do + local item + if craft and x <= craft_width then + item = craft.items[(y-1) * craft_width + x] + end + -- Flipped x, used to build formspec buttons from right to left + local fx = display_size.width - (x-1) + -- x offset, y offset + local xof = (fx-1) * of + of + local yof = (y-1) * of + 1 + if item then + fs[#fs + 1] = stack_image_button( + xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h, + "item_button_recipe_", + ItemStack(item)) + else + -- Fake buttons just to make grid + fs[#fs + 1] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]", + xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h) + end + end + end + else + -- Error + fs[#fs + 1] = string.format("label[2,%f;%s]", + formspecy, F(S("This recipe is too\nlarge to be displayed."))) + end + + if craft_type.uses_crafting_grid and display_size.width <= 3 then + fs[#fs + 1] = "label[0," .. (formspecy + 0.9) .. ";" .. F(S("To craft grid:")) .. "]" + .. "button[0, " .. (formspecy + 1.5) .. ";0.6,0.5;craftguide_craft_1;1]" + .. "button[0.6," .. (formspecy + 1.5) .. ";0.7,0.5;craftguide_craft_10;10]" + .. "button[1.3," .. (formspecy + 1.5) .. ";0.8,0.5;craftguide_craft_max;" .. F(S("All")) .. "]" + end + if has_give then + fs[#fs + 1] = "label[0," .. (formspecy + 2.1) .. ";" .. F(S("Give me:")) .. "]" + .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" + .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" + .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" + end + + if alternates and alternates > 1 then + fs[#fs + 1] = "label[5.5," .. (formspecy + 1.6) .. ";" + .. F(S(recipe_text[dir], alternate, alternates)) .. "]" + .. "image_button[5.5," .. (formspecy + 2) .. ";1,1;ui_left_icon.png;alternate_prev;]" + .. "image_button[6.5," .. (formspecy + 2) .. ";1,1;ui_right_icon.png;alternate;]" + .. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]" + .. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]" + end + return { formspec = table.concat(fs) } + end, +}) + +local function craftguide_giveme(player, formname, fields) + local player_name = player:get_player_name() + local player_privs = minetest.get_player_privs(player_name) + if not player_privs.give and + not unified_inventory.is_creative(player_name) then + minetest.log("action", "[unified_inventory] Denied give action to player " .. + player_name) + return + end + + local amount + for k, v in pairs(fields) do + amount = k:match("craftguide_giveme_(.*)") + if amount then break end + end + + amount = tonumber(amount) or 0 + if amount == 0 then return end + + local output = unified_inventory.current_item[player_name] + if (not output) or (output == "") then return end + + local player_inv = player:get_inventory() + + player_inv:add_item("main", {name = output, count = amount}) +end + +local function craftguide_craft(player, formname, fields) + local amount + for k, v in pairs(fields) do + amount = k:match("craftguide_craft_(.*)") + if amount then break end + end + if not amount then return end + + amount = tonumber(amount) or -1 -- fallback for "all" + if amount == 0 or amount < -1 or amount > 99 then return end + + local player_name = player:get_player_name() + + local output = unified_inventory.current_item[player_name] or "" + if output == "" then return end + + local crafts = unified_inventory.crafts_for[ + unified_inventory.current_craft_direction[player_name]][output] or {} + if #crafts == 0 then return end + + local alternate = unified_inventory.alternate[player_name] + + local craft = crafts[alternate] + if craft.width > 3 then return end + + unified_inventory.craftguide_match_craft(player, "main", "craft", craft, amount) + + unified_inventory.set_inventory_formspec(player, "craft") +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then + return + end + + for k, v in pairs(fields) do + if k:match("craftguide_craft_") then + craftguide_craft(player, formname, fields) + return + end + if k:match("craftguide_giveme_") then + craftguide_giveme(player, formname, fields) + return + end + end +end) diff --git a/mods/screenshot.png b/mods/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..972cbb469dba9b2c976c7582d91110dc9d765c20 GIT binary patch literal 137234 zcmaHSby!qixb;wih?I19w{#0bNOzYs(j}eJ-AGHrfOJTM2tx=6I5Z5M(%s+jckli8 z+de$VIcN5qo$q?rT02@zMea2^2|5S_di`D=tN{Wc;)6g4Noa_`m5etiaNyTV7kPbm z5a`vLe?JJI>|7$?BC5xGWf{~}Bs@%dTEuserNE^Z=8AG)(DT24U%SdvL5PF}@4@f1 zychlkczwy$^}H6k?soK@=UHstx3U_RIr{z^BjM$;S=<=v7f@k@S|~L#Zm%R&p9f-J zpIL7ozu-}q*QiVi?EXqTVB7IJ|2Wahi&x|=tKvdBdw(u8u~S6EeP`u<#V@d&QuLsy z@vDlbu)h>lj{%+Ji}?$jKsq@p_<0qDoQa7J38r z#H-ZIGvVG8tii6ZM<+{u(1j)nk0B*te;9v>{XvqI3R_Mco*@j|!+)otQMk*LTgf6P zDvDRRA(yuuDau~5O9bjwM+8Z)>BfTN_B%Aog~>-V3E#;xvkenXH}`|WiJj?bitemx zr*rAEE1%Dc-pqXe=1!VS^k+gRZ{H*CfM&{-Oj?s@N6*e01g=(7!(5F#Xdl&OKQ{QS z9hoFNMvDW&=1Pm&tYp3v170=3C%y!i6;B!7W6{4W$;qRGBoQ@qd|d_EZ+8l~-{*z@ z#O!?;97*p90iM;buU(H}QL?I@YSO;#U|p&|<*tUB&+L_oR$XrB0Ixdjm4?gC4qLe- zsli=~IXyjX$FEZ1{MKzG;p_>S=2ocJtF{iV)i_`%PUA^efq8vX;l#@L6F>*ttS|DG zq*?_AyMcTSt`E6lFz(Hd)@n!a}UPOT{yOa|n3dSy!W3S7TiTAx;a5&N+S@dfaI3 zDqo0@wNGQOgSt=eNS`jwpYI0RQ&m5a*(6xFjXyv7!Ow5~8%;m$ zq$qN{FH4zsXnEi)xcgI1$fl;G1DEo7*Kxq{U_9xB;6@y4ZRZ(O;;FvopwEm8 zH@e!OIfi>?YHDhFdU|pa0c1Z@J>O(EeYQ0^A$GkqI4H|(B}nGv>IE~wRN#b81A~0Lo8!kff^Ub)>KpG=fqZu!$6@-7z@8r5K?Qf(EYqk9- zWEyF(8YSQ~!9adR$T7b4D!VMae{G7iy@Sx`q)b3rNyTmaAhJAxGEzY*N>fE>prIO- z(%LB3Q5B~f2Z+p}Gh45E|=+uHcNJvN_ zl4cGL4qGGXjCmeYw>t$vw_BMzZf&jIm*0T-+tzmbcpMZ|ulI1(+7mGKo)KoK3)|EC zEuWw-7(G~Yc<4AbHWpEch56dp|8&4U(NsiO*lj-YDM7wQzj3=LmV+jg^6`eT(50lj zd`H`+`=h`AgEPnXU~U~Yyuj1ZX9{BCtoGZu$J>dZl`flB$hb?W$xV&dz{YE!&BEu} zwG9r6vrVU`(J4=TL?U*}?Z-jS_kEIef!6yTL{IL_TfjhFAH$uAA{fgpd9rMISxO&Z zwSln3#e?hn+VATz>8!e#uU{kdb_d*lI$V$eXILFBcL?A{Z@RVVv0XJ5JUT44IAV$4 ze6`Y#CFFdXp9q{;T=bhY_Ns&!1W|Yje_BOO;II_3RS64>0CqqqLzs?IXt(FRdZZ-0MLJak|+-jKp?URXGIcr;&;1t<#{u6 zb4+1scw2_>I~`t<%OxW4pXurIlYT6Tr<)C6k+B_jA5qKg)%n)?Jrl$Z)YNcL|BPnL zx7F8q^!c+#1Wn2G!W8e}B*H*OL@=IZ9~C}qny%@-+YbqON*KpPCZnV@ZFk6mKp69y zR1`>vh?wwRy?L{N(BnK=*P4_IWkpMe4ypS8?K>ilqSxNYW8q6*=nn+#WjX))@I*i(Q9> zzH_!5ZK&-zN}PQ-x;E{6I9qh;;v>TN*sjBI+qDC%(VLv}+Q)uMagTW`Rf)&6GP_IK z(^)0&89N&v384h{^52PJCjbGrarpZNV*6 zIfp+XA)#z)Z>{iywzi0{h?dNI`qXSEZw59n87WZ6k$$Q%{h6Ov=Mluh!Xk_rm;uw^ zVJ0Rd44S)+>)$G|jgD-c#mB!sPmj(cq#<+hJ=IP=0E0M@L7P?7zz`lQT0BQO{?b&r>ki<;_N7(0L9# z4oq`du3fI1D|?1(_7W#O)OJ+gN0DZ7VQPJAXVAR97MLBAwtrg|o#72uiqg{3Ohg!* zhUn9nL-M=^;$}ch)zsA7n@!2;>-du2-w7;SUxw_mfeiz4(fty#Q@i}b*{KOW(`s*N zmh`)yjN;s)qSXh!etse|#lrg+gdy~tR;xODQov4k4Mas^Qqpr&#BblemHtkb?iu2| z^96!F)(v+e9%iIib8(>Mffj0tkOmt;EOg^?QLDU%;Gv@6QWzFe5}32E1pqo&r3y4d z_8%lTEe1fte~{vTE_+f{YLZI;0OQ}&DxMD&ngEVa0=*|!+`owV>N}hS01={r6yKez z|Ai9(Pyn8L{8x>pF)e_|_U`})0?dA(j`k-2&A|9l{-KVb|3D2*d`V3j5MTfM3&IM( zvI79p0Ekn(w4^5C|859tP`#`6nyJ(@e*W+Kzu>O(x}-_VcMbaeZ}sKUh>7Sw+JPqg z&v)#(^c9oI?2`bf=O2QC?Va>m@UvC^YuJq|9UZV^!nopmh(~zG&~a*WqoSfh`&O5F zVxyF%(=;eHJ4(_*B!k_><&LOI+3?VzQJ4LOneby>JgXz4i3T>PE784T-EM=BXzo93 z2E=D&2!zA1g)Ld$WqgMx0cz;Ds8T*%TwDx9Wj!_>7enP~+-R_&VGgk0Zm`RMnXNc7 z4-OBN8B%KwbQ*Ah`J!iIV?&3VMLT`nZSUsh=HS4VuHXZ@ZK#(Y1g0c#lZ_x}Lv5wy zOPLTi_vGxXE*n9j^4g$luC$>_{9mlWFJ*S6rjF2LDKZ-Q*;SGl2-DJ{@MuFxn%sDB zS>)MJ6Pw^r{0Zg>o3kWXTU!ygxA1t*0aZzp@5`N31Dic2YTRDCPIk$LAnf|W<&%(Nj^zfUb;<&HWyFY*6aE2SC)@hwcGM8EH9H| zM&hWWaeFai;UIRcDfXBy2&PZq>I1u7cuU{Q55_)+0s;VhuDV1fg z>1&)Q#k8ZDwSu8l%E%Fg zaQ6wZ0~KLcm78~J6WZaDRM@ct+ln7J2P00_O}_;T$HOZZJxq?9)$m)Pt0(s zfd5LV#O>pgx9B)g4!m@)odPq`c$S=u%wNBnEQ%;zcIOqI;sH(3_O>(1~qofO0 zia@<-Ue(Tur`)u&RnobIRf*%Ynn((wqmy{$g}%6rb4=|^vh6FXkw_xmLOY9|7ov&FWa6?`3rZ35<_G}1fT3)dZ>V;o^F1Y|ZjQcR8&bK<7*6Vd%Oew00-)>43x=bqz zEPKHN2#q}^tul@I#l@d~zEKV9UvuEEvNO1J!B)lrp$Irn%bNmZ)}PCI8sX7K6{{2B9kJOZq|{R849aFLenG}4&e*c z|Amik2WF#GK(~whJbj*Ru(5>IzFrxREQ!1;1W)P|6RK$3=R_BM(vVi(r{)cM&&wL< z;Pz#HiBR|{ z*NYAQbmAOrW6{3n8tppkA2Eku5~cP*0pf}of&-Fe zav$RZ)%jf?8F3IsgO9rJkH9pi|I*6BNQx=mL&Bb$fvrr_?oWpXG@&exy|jaKGv5qx z>Vf>J^L+e`)LhHqJ#e?BSltn?Zk<#b<0aN) z1d#2^)rjM0^>b6o`E85w6ne$Zq27_PLZsrC)K^E#u~CQ4HyOMcJ7mnC39xAptmC}X z;>8}C3(0eET<06CD29NZzQ`{oY;3fdFiE!ouXZ3N3Mjveze-!@a{wE7FLaByJ_-!Q z9UUDpL)UU;=&e502=h&x)mAhX1HsTL?FD3>cY(i^jXno9ZHG(KWuLh+XBj4)JyC9# z4KLWql`EdCsX=M~pf^qJ&O2&rxy_vVN5f7m?*&Yv#fGWd(&u}bm$ z6rF?a7sIii?`oe(Vh1!T{{Y+O^&xO^N|Cecbda>?s<}4crl0a?Z*RWc(;mQ3D5&Sy zv$2BLETi*05t!;XzPYff-G~%3?F;-^l+;tntjkJ&F6L6ZY+P)TjPG%E#gW9UUzoXV5#*4+ zRwv%S<7dZjsKDNAwEID_rm^z#?6#BjOC?963*uuHS@!}pwI``32=wdL0SPY0~1^7`9$#U4I<4_8b^Bi4|0>7G? z6Dbz_=rHWnPJ!H@!7LlG)0^VOR!1>2lB~)gE}3++?e4<`wIE%JweI-$zE24UNB+>U z*4&e_M4^GAEM+m@L)~CIguI^T2l~XnNz>zA)h}hrVi{W&ja{R{zd$^kmiUBugow9P z#$PWgpuI;7PHJHBk4zcf+!4QSQw=;zg+Cs7QTl8qPxx=Y%`UUc-afzOcUrnB1;(f6 z`MyW&tp!WEZ$IhE34nY5B{{REK>^Be(2hS4ETp2a0(Pa#>`FWREjrG9aj(nIy%zDGNhv-&{9~@FC6Fk* zTJP-S>7ePefv1tO_N>I^=J>MTS)0J0cw3a2r%RV)>*3%lhR`*e+=@ZG zafro*tAT|ySb*zC9?%t>(TM`pYxx2(4mE+pg0)QF(g3dGO_8)4&!hGT_|wV;M{kS1;K?a~{3v%qtS z5#H&$fLef?4ShuadRY%e-U%J5W3!9{p;0Ms8jI&~tCS#qfAc2M|6yaGaU8LqOWEGv zMS$lu{_C%4xNadY<5UGkHhN3}ct1XLz`TkS>{iG#UTT^=> zJD=LiSv)(HA^by{=x6sD&#|g!!f2)aN z8wI$wR9|1;ryHn*ii(Pf$E3_F0=C`bV}R%Z#(KtYtqT+^Gfsa{0T-#HZ85 zAdJZV^gC3FlT*Qj^MBk`L-jYq))gS?=J#|hMG#=T;B4DW>GHdFT5K8noUuQ~xi)Ph zepe_-_5Hpw65jOWYL*M?p8QzzyVRNII##oQPBq=!0%?Wl;#q@bTvD- zI2{D|Lq)p3@Ffp`=zbn24o&@4aLc6d7Dlx((er%6Ver&~h4DJkVd*>0HtW;JClvaL zGd+NMhuKl|AxR?2gZXl-;;3=tO6>N!(k}WCL{qW#b*y*Bf5qT$p6^A#`D0_o@k-M| z6GG+DGtY=+K^!;q?qWSd7q(=<2=bs8X39!>SxUZcxa6qxRe6+P!S^wjwiO5cWwWSQ5EqgGvxKjGA5Mlb@K8K``rie|IMYej{SE;GOPe<0UmgNsB7#A15nNtKmuM>H;zL>zE9WxW2ejPuCA|b zc(V3Oq?D(#b8-|TJA8~8;L z@^7NXXyo8>M0pTC4yXZ4M)kTb5e;V%0k6iv=P#z5LEs8xH*i7}dn|71yz9fXBNLVM zA2c$M_-iTTuT;3|1d^z8@3kapJZ48G9r!yuM=_t)Zk~SjJb*et1;mLJq2)3w}S%R zt^mXA;P7{ZwYG`Pes8K2pdF>y2uR7v$w^5M_V@2ruDh=REahx&{-dG#U*PX~emr*l zREhxd7l*%R%-c-2VCu46Y|#}TZ#i@;Gs>G&Ka=p$o;7*g*S)^D@ZKXY&h`iG{qhT3 zX!IC9AjsDo+5A$I2tu8-j$)!n>;Yg}4hLEox+t^5rPsEPbJvB2wDuB@w5I2S6UraE z>`!aqgw~DvU}QJ&rb@yQ;j!OF2i)_+64OEppG7>BE$|m}Wxa~0YmV(e4F0eskbpZR z;156X3^A5+<}{aDMxlKL30f`tx!l2dgVB?an0UZ>JLkmVVOgqKVIgw}Wqa<9?3t77 z7w^Gf{9Y8u(7p?Z2gD*p(5r>OH&o7eKA&s+ipbJ(xBkZ!8eNdhT7<2c zM?;+rl~6J>fn%$lM@&Y#EruNnr(VqldU)f^iy*<(iv;QB=cU*$XG%&y=2%?3@sID9 zAvEUYnwnh3p@W0n4_lnI z2F(yPrq0Jh=bnR_4)gjsM)A|=Dj;u+VXYB-yqJEQrDS1IY^cwUqlh9Q8eeGbYL&}S z`{iq-5})S0qV%nQ_kJOEpJ2_Zvscm=-ESHynlOa2DO<3XamEXTklzc4XhTHj4BG)E zBYW{Hu`6MZ+Vwx8f-wd@gZSkJ1$SbKyc>nLA9g(POE4+K3u-GX?T*Octb*{lx$hrg zkez(LqgsCpVnhn~kMWq6C#TOlsYEZhh|bZym_QvRWT{~wmf)#1FW%DC--rckgKB6v z`Yz~yJ3H8_!+BU2`)!)ShS~NJ*ESrd~KIt zmUzr2-df<#LNzl)bPd_vaTBV&+MTy4$Q!m?KfM9;nyX{@v7kz!+6^@50s1cy@V%In zgI~3@23%H|b{(}JaCH1_ka)hG_~@g~oJ-<3StJuz{|eY!fS$Ltw`c8(u(48LNDT+r zU8cVP6*?|*Y}D=FrYqN6_VgcX8}xh~^b9~EcVJ7(mtCJX2*;L~?Xf0k+^b&+>Fc{c z?g;|w^v~d8oN$IOFCPky1MA8IAgonYR5G3{7YULdEYH28b#TaS@I zUCE%8LiJmtnT8pcHC|l@nLQ6y@3p1CwKvxjJ@?;+OUOuam)boK8Yjd%{BO^06|!sY zCH8p}6&QhNH7>OCtJLXJc)U08)s-m4u zNFtc!+6G6xc~?b=jgHc4o2nWD)?}+~sZcM(emR@P{HS4A+`~8Gd9hKY_lfCkx3hU4 z-2}~FsccIPra5d)azZzPIO~dU+&>>&4PWk~Q(NpQZ9jjy_F^-7vFaL>mV#}z_;rzD zBar;Hww)u|UUsOw9m6YzHZnB9otsS#8@dfV2Oc~sM4BH4121T)f8y&Jxo*S@?6;e!r>$(1)Ew{( zB8EtEWV#y*kYNJBRs+VCNR*>N(&-KVm}=Js{c(Ivh>ij}IU`n_p6SI~^)>G5lUhO!RBXU^ER$HqA9nt+v+?qQ_~cWRyd_g>`tc;-DKQG<0b( z#a~{$t1q$eXoZP-h zlfc=zEY$0Wn^DLhyEtA3LH815MCCO^-c?~1+4oayw+64%4xj zN29W7Ihi4t7i_GF{KoODcUg;^d@Z9$g0dX5A<2a0aa8KiY%&WM-Z{$51n-n zcpA&7i{{KZAkdcjxt_cfN$3}n@Fs0qC~Znmek_Lg>H%E7cW{Z_0w6;>wQXhe)Pzr5 zupLu0Lq8YJ)+R`#H+iJXEqWZT^{u7N%ORu9%XXP5(tK1zCZ|t`;Y^IdGXWprH5NCp z-rgiUyo{B8l|wc8dv#&t`!{5jS4)A@mk>UhR}>bmExAtwY-icf zBoF!Q zr;a(0dZzfEBHwz0KG*NE_T#$*wpw|;Q(wCUkQy6-82e9B2oUm!nPaU!XsuvHeNidz z^3pM^zzn4n%$w6=k@!V4YTZ~`X#JT+(E3~gQu~fv+=Reae`(w#YINyPH(_J0g}w9- z?_u2AaqrD!xe;ldCzf6d1{+r46n#BBbY~2%@bfTL$5%MP+I6K#F{Uz=2qBPrI)SJ? zj=rVHIQFd=PH~|ehjfKFf=Lp4ADeb# zNgA$x_b!3DHTrmjiJxZA?LLK|jkb%~kKCd5#J?_h5m9ex^z9p*YuBUT$JY+Z;ZkdW zl-+*2odal_rukkgKKYE*<>is?;=H^i2X}LGb44<--M3@T00)d&byfG%r8Er!Nr;a} z`P}C%dPLmZ+3f9zt~`CQe}gEgJl| zG6^Zq4PN|(|08&P^BtXej~g?rw%ppJ3RlxTs`p|!b*;3t508(J|NiC0=qDZVOVs6T zP-FU1w%4|9pV1*faN6H!4x4`Y?E5D?2VjcS&}S)^BFu;eMOID|00Rz?ygyx(O9VXK z?mYVfnod=1lE=n$xL0*-2jU_r;zH?|U;aWOY2;gGd!MCpmSr@x6QW0@88zcC8E^mQ zCHX<=f;+xP*Zz&8UtgOE@6#Gg4;zb5rfYeNEmOPhluloM=kt;ob?_W~wzoWPt0U`w za#6FCzh(}h3PTo8FH<}Jpqu|yiD9GtC=}%t$M@AxzvHfJVE->Aj0Ik;228^(C}^uc zquX-_i=^<~6@lMk;sDJDObRNuFFw*cdP@M768qY&tIbr^KtP2)IJNq6H5U(*xVUQ5 zo^C)i!n2gowr6_{TUmMf7r)w!j)3{y=qOS!;YSAN9kb+V14v4nf`FE;uC9_$t;1Q2 z`JU$HOCToR{I!u-{PV{Wz|kfvjkB*YF`bsabLWil^YVHR3P94I)iun4MU<{{&iz$ zX_wEE$O%JPWW%x`wG?-k#|B|%pOG{1%kwq6D%f(P;{3~KFbzTMH((~{v2~y49d{mg z-vi9!LHn^cR74zrLhw(Eju9Vr+r_mdvDFnS)0ivuU_o4Dn8%B)$BYuU@0pW-OiOh3 z$QG+lRBWAIpsTP)k33QW9-#h+*T4v~P7E^%Ns*MbdnUkb+1K`io!Lb zzh$P(Jq8BZiNmsJ@KusCGBOsOdzSluOdXWj`3CRsb+CV{|0mU^9Jbfo6DHLiwjTkW zF2J&I3-|!PH})JM(}H9r0uqC!9R%>q}1m=VDS+`<{4Uy+;p}1 z3MOjx>emH&ZpVPoqoo}`VE)hc1IR2uTfa<-vlxrikXQZ!SVAz-oe;^dqGr|YvX%p^5C|X*r6`vD zU~nKB?3?l4wZR{v7k|D9LG7Zrl&mgJpp-PpEh=I<+p04id&4L*&HG;j-Z<^SJ@KBD z_Zpnr9?MDemUusM_R2PUV7bF9v&Y7aQxPAlk}3tes8jPzvgmp=f}|piy7+_xzv1-L zFwr8=9AG=WyT3nf+o2dF;?ap0W7Vw|3?_(aa6Bi_-$IA@6m{YyotbvgMNhHbUmaFO zp$iSE;Zy&>r%clT2%va~0XOcSx(n^0P%t1SjI@M1FEmy9=cC3<%r5lDc>P#|3UH^D z9i;yJIoX>?7?L3zMs}$z3z8f(TBGS~Xmoz^^{0qTVE}053DNU7X*`;b-TV57VibR1 z^RTY3ejL7^p(f$jdE|Mo+6l-`)$o5Eeb1-J6;u0Re;D{lJ8yZ4#P~W`78e6qMdDCP zaLP~(6AJ>#?{r!=s_tuX^pmFwvvvCD^q!7|fdR#*Sr*gkoP5?Q3jAm3j~-^PT!U;% zWH$%1{z%M8!~5xM4jQ#^YS5c5xr4U-y~U zSdo`e;h2Jwl9eD<&KJxC$mKt9KxgZ=%A>+VYN(g}>b$tGBc)5dt}d~Zw5@W5Fta;{%-_Q!~ zNISj>*p4uSw)wh{(u9Yud9&^7lQ1x(-ugSWMEhJST6muaetBA(y-Y?g(MTwAI_0msN98t7K6|-jCFg7$lss|p1qBPlls%xSD%PA~Oaam( ziLAZ3k$64`dK&tDxj%8|-(6MP-A+HLkpkD!76WqOs&AW;l13@}T$-qKG?v_{Q^G?? z3l97_0RVuQ$@3_}M#NDX1r$2XkCtxU#sUWB@yWeq#?n$c?FgOcw*VV2N3*sUMRj)n z2t=K4Zigwz+wNoE(_QH{L+eE$oeBixl$4Zzj|FhYG;h?|$N&lbiR2J!YQ%DV|M<_h zB`s<)f~Mc?FC$1+<9UJ|Mb~J&XS-W#T^!}TW9;SW`6*5G>IXjH7{uM_^lvg7jXJtU z`R0_Yn?$Ze@B6nNNIdy>+R7^H z_f|E;5GXb$Vyr|c0?}q&!$lX+e{ffXdOub9*u1BY)E*eZ*BQE{>F3hYwu)<$avAUB zf4jnZ{$$)Tz3vVo8{;paNg;CeeDCR~SsptXecf{di%42~LIc%6R} z$zD;^5B}M_?++I2X)ATt&JrhO6G6|35jYisH?Z||LOc-*bC7;n*N07Fn5RRT3c;aH z0gl7Lcm1FJs~K3@YxN+>Sx+0qoj`SW&2Xi|*L>&ETr?yu{9x%Z6q~d{hhS|g52~<+ z_9VT777-OI(;wWdJI**bFp^I8zSjt#DQl%v7(pkoI7V>Hq0~=6iC>uQeu|q`J;b=k znK=sjzNzgOL-=@BF2RI%W)iYCMS|rPzW4j$rPW=1$d?4|FA7Gbc5GR?){$tEP_i(2 z=AArByKF#?0XE2b!D9dC$%>6IU}Ts`;9qiDVPtTqklV#LO!2DZivP%vm?Snn?~`*U^)7$N z6zOY;fCoLNKUH#u%e*;d7KT`0geUhF~QU0+p=x^RWk2}izV zg{n~~he@&rc3$u?vduMn&RTp{kUuxRJUDnmHls1Nhz4Nz;wxl z76U`KWR&+73vtYNYId%3k}~9ni`N4;yJH4^oFu%B@%Fd2e6M85*Tr>jTlac-UV^B~ zuiBDKu?;eIM2t0eS=uqba;qpL+q8oQLS*}zNe*;~7=IZO2!3NO6+@8+1FL+{G;6c*(DcaQyg>G@=Cw+`}g zT6KRY+2TbYnUZ#ekIar+M*=tbPkYS`8D(!7jvbCcw{gHbO_NMj1b|jImoxLXyvpYv z#dW=eMXEm^ZHb{Eh5+FD{8kn^SQf?rexIgPO5k2&m(A!fe%gVpuAU}OH?_0`IMSx} zJi>V|G(zRX3lay+SK7A|XyUkyX91cUaNw|{3quZm&~}Ik9)4t?isa4%A|6)v{c||O zeXZY}cC7)q@Y)YAxVP7V=7eZ<>u`Ga+m)vy&Eu7(orI3#*s#wKNCw=zmQEAJnf_(4 zJU?2jWO6Td2sMZqGn#lB|LwVi0xVZlmRM^I{(MSaJPXfxm|pJZE*R5e`l~C|mnR^8 z!NG8$2tU(uK5Lh2S!`J)t7l=FW@VxYV`92HP3<6gHQXI%$9}Ar8Wk2i#UUnRRbgc!ScsKF%F&|V^8%B+WThkaVUB+9T;Q%tu zWYb^2zTa^&l>!$`5GF#QgV3Oh4a!6eEY$!)8pM*6;bp(8T#xl=fDg|u8++`)=(qj& zv4QPi#?Uzcpu7|xXH9%lEf`WyZ~YGs4}nLFy|lFXfFMYdd{Eo-v=&Jz4rvZdym7(7 zK_)Mq9L(>#IPQR-x5Pf}=mu##ur;n%hQwDzLZ7P~_v}o+U&NaB?8BXnZ_mr~dp!5@ zwPzoo5~l8>j~#xfrr;a|5KQ^`I;GcM_K#)+Pma3i8^*lzKKzpQ^lML9999rAbt(LJ zMvDN4EoP66jQP1l;NnXtDT%++U;?i|#UZB zI;$R^9`0}jmn!MX5;iYE6F)~(hu4L2?gHKdukbv@Sx>!KpyBb&$e`Jea{g91%4OIh z&c(Oimo~-A8(M8`sLX#tG=B)-j%4##y=FqpL}1TCQB(;FW|%EvEt9`gslbS-a)YqMt`GaKSd^qufOh? zC7G?HrTbl>-+Uh1%3}fq2G-fPe}2b_*SoE@zJaL`IbvbGy-VaM_tF=!_hCtZ_}cGzs*8AT5RP^9j-QL zYw#3CEctu%22n$Q);_|jXQn~964LIv0i0+M0DQ3BMyqRwYrVa}nff~WXuMD)E^h96 zfIbCC4@$9<-nP9%jgfr%R|WI++=4T=8^@35+lL~aXL2i|UooWmp>9}D@a2b=ADQC! zUdS|Snk1^07AmLHrZe#ok2{(BxCpErDwDm~mNLaOSV$P&c?S#-x_xq7eO+*jVim6b@cFGAS* zjZ!iD_Aig$&Zp)s#B!Ti375#@_b2llUb^uGn(Pz41wYUeIHR?o>&2q;*)!L5q4*7i z(KwX6*EWaM5{(*QS)o~n#m&7>lnc4##D93nr`a+Zkeu|b^O0R&3_lghYc8?l@q$4x8{}~N*T+6jDc4=kt-8+> zOK*Pe-|nDN^k=Xe@;d{@t%z8SKbcl$S@^r*J?^Do% z=`1=erSc=NIjtiY7#S#hZ`PRmQLtCF*70qW_D`Xd1;Ftss>HurFi{1$3&5S-wbrByKfl=s^177>aoQeVQEH`x#@6DJ{;)R~ z=O%c)9Iyeamyc}|=l_&Ad29XcV7lIYS>R!{HRz{7@fg=Gs^gHIQv`Ea4ElyL2lso; zz~3WE+gYsdXcS5t1(t7DHzu5(ev6ni*6Dd1`T2TKrQ7md9Zh)1YH7;}qwP#40B34d>h4(Uv^53}5x^}sy8oP@J!pkzwAp%}BYTYR8!jeQa`fW$Y}aq_$5n_oy^|7D;Rlcylb}zHu>Eei5};gf(zIduqjrL zHT%~QVA#pP@jJ#e&ckL8eP7yN(*TGp7W5WWafSJ>+ctj6!llOqy=L<5V~_iuI+wq<$@;}5Uh!TW=NU|8W$JhT*6>+UD}%Rg08!4MfUYGPV#&6ok;fQOf} zqUOcl4c(w!P5b=E;o}8ZC(gMLQh)qTzJ`Nc`+7}$7uM3(iWo10(lqTBZjE3PJQBWT zQZLNJmO&kUIXoKbEzQrVilKvs9d9hk9?djb_J8B>63G3KfG^F~NLOK!hV>daw3j6< zrwZNse9E-2ZlR|*rZ6OBrh{B2vM?1@tZ?&-|5mf*#Qm8TUQ$$<_}vnkJ}87w3iKBWDQVOjgasZRJI;wO)+~8+%=TBVKH+HPc^}AV<&(kRVdo&Aum&S|ajte0Vf zCwP%=I+gssDSr9MiurqS#3LkECcBm0_VHKuUlXm=>ocnS!E zxY1GW`ZT$I(-VvC`C_On=>As+X@O4*SN@=)$#tp-1>E~u$5`{5xj2z63*IXYg=noY zB(&dL9@^>~5rMk!n}rCo*uH?c8JVVgS)QT3hGj1fr}-QX(YM(YOeM3tH{`SNFQk6p z;2ZKQKHwv)6?aQer(#BGUgvVE1O8A)4@or_O^fgVkflCNx~dG#at2b&Vp(&-=3i=Q ztagsVcptb^>F=TuGo}(kHj#Zcda^2j#6Fr_f6nB@IO!7!5h5VM1yy6@U))}- zd{DiCeh*Xrv~mhHPO z`)mzb(P2Hblug)rQo>_6Yfa!~m5RehQ@6#S2a{P(nYF0R_8)*Ft3DjB_hU&mA-R|8 zphIHa7jw4wyOe~blwYXYR*sE#efWn5aw#&s_N`cP_<1#YUm3s3d5%Ti46TMu5xr@4 znh#NE1#wtl>Jo*hX-~05N}D7{VMJ@qmMRoFzL4Etb>?axMDKVRrW$SiZ8(@92Tw%5 zfB?&5{?wI62wz%A1m#b;3jrOB5w}Q3Y=ihFgi0xmpEd-X0+N@P#3sn(SKvna6~)rE z4E{4a>jfqE>IA%D?CBLgYi*4FA*<~hIp%rfpS!yDmMe`rW;ji|mpqMUJ%MZjIEYl> z>$>kQlEK;fyfIgA4ge5``38W{mV0jd|DI?lMjd_2y>)&I0FrpsIFXjOR;xwK^I&yY zgm-6S<6GS5U&(uZa6Ta+A%6Z0g;Is^+5?ZKzT%%AKg^?t%1ymS+6+H&5Rt6h$REGW zNSTO1B}ibu`%@Ko`Fm576w2RJ?KmYkAzol-LVmn>VWileXZJ~&fdB22!iDL4D28CF zOgB=NN{YPXYV+p-D9NxmcBDaSI06?lvh;R)LJ^aENdS^pr zPcqD*q&B`e-Y~5hf>Y?oa8KTj)Y0?lh%ge z;8a-}`-?@YkI-X^-}QJ~H{B~e^X=>?CwRfH%#d=?ycR(33tT7WcWkGLL!0jkJ~KBU zI`phf2qHxg$cuDA)M9kF&4TNE_=PID#>@A5=M?ABH}BMxq(`yl%S&Wv#jmE3*U6T`JMxa#32H zb{XW?>-~DQ7Vz&FM`IOm(!|TFRrl407KN)J%I!ZuZ-t~BNPdUsvcOS}^ zwRjxl3w1_kZMoY_d0^lZ!1X<^GIihRYL#u$l>O1sp2=2XKrK6s&limL$XJT5Di@s$ zIdicXawL}OOM17K71b0hpEioU<%@y%o*GROJ+m?!5ApkYdnor&JBNi5jBoG@w#Ek| z^jShQ+$1U~#FP{W8I{i{j>ZLV#Op9d+3Bi{k48J>9}1{`?VQ`PzD6j9m7^6^znVBA zmFN-S&YD28#IHdJtNcV_LWhr#+v<34Zg-o>5eL$jr4r*ZoBt#bS#5_B9xynqD(*kU z-0rA;$i-L~!pSH{`;j%I>}y8(Qb{u>-pLlaOi%u7^$f=A?+bN(8{&fxuv1Qe5$0-6Z z3wmt)rmyc63>s?=*xA|FT)sc3niL8CG7XaC++x8)2iQH}_<^cBCkUCd)`jAgTiQ&z zJRKmVJo);LbhC+LWoKOo9Ezm-L1VGRdjg?X?5r7VT6oQ#W9v=Aojn_Y1a;c8J^XH0 z*Bm_$$$%JiY`EgOhvIB!fLGgXNe|`0@yUYGy|Z&kdm$H{Qns(5P)oo#{q9Ey=Ax#$ zA#8>Sq&+QMyX4o?EJINI>iOwqC;=Pmt2!o4A-o|8>;9xWx ziMa8dCh6;Dc9MNe(!&>{FZUG*rODuJg4{_eDMu5F<_mm!7Fj7#C2<62AE4Y1PcFT1 z5{#xj-;Np?JPLE7B#lvP6lF(+Zx8Qiq*O+}&qp$$%qw?04Sul_31nyM^Nbt*IFUJIS;e4Vl&{LZjM*c|D?%Pc{`$)WT&VXO&*QeIM!%X+0`8*TzN|?oN{*0OM5w4(ZVDVZaj4%SN2&Gh4%9;HH3<@ zgYai6T&!bSbf*6#r615-xQH&Y*)w~@j~&_ZWYo3zNMbLqt}=|&@-yD{$cT4BAqT!p zc;<21_~el3POu@&=`F|gi{Mw_dz9N>McgulO?9M6;X_x#WVBFsVajm*EJ|}G*dNHJ z3BpSO1-m*eW)$9(;tfd(hH^JKGM8T5Hv6xrYdeWx{y(asn!ySuv++=IKj z2iM?Ekl^m_?oMzgxVyVUa0?Ki_E&$aR_#{1&q<_@uX3S*`zJwXW z72i*O?KAC|9^tk-+#Q9+7X|0v%wtDM@XT64HEwWGC=Jo6?`wTB6**F%nx#?y$YVCY>Ept?GQ#o`WB!s~I@hKid(hTEG8JGY1 zSG;PkdO!DC%H8jaEXXf!zQeJ4Z%Srrx1gl?q7zLVBw%b=sTfF|DBXv*pkdI)e4yV3 zj-|nqiYY2RhN?eep|62OlQ;8*nCD2SpoY+5;BuRjU>s%fN8$KOuwN-pi-amOoUO;R z0%HX9&aY~h`%_%h1T@?!%rvQ=ObQ9zXB+`4-KJDrmu!X*q(4a`%vePZCYvT=&=Juv zLB>zpyW)o?+skTTG{vl=S*7sdk&5vfy_m#|jb7(u_lfJG~ew39tFr>m?2fPbFf+G#svQEjUB(t(uDtDZr6i)ZUNjQ$EH%W8S6eohPH61`E~I{vrGd}6pd zhU20jtXSW|icMIVc?`N7a@3^YMAXu8d~(HKE4hujMET?FWa8-M+Ke_GimL3;E%vtX zII8Fg0~r_abs7n!)**I^vK8g@GKIjsqcH-nm8_zpzCattzJvP9_RlH;A%qmHTM-{+ z684&atBp)I0!%+ey)LF=y;^=<%<9l#XsRp%G%_$!^pjB@Pr8P1Lw8JYR&t%EaXgXp!Xl`+$y(@5@WbN^`9q=*}gyfhBNxFC_gu#tN zc24g33L6N0#Ltzp#6xC{T=GW;a@m%|1iJd(=lnh5E-a!hT_+EgF@a#5`;@)uD z=)S_Odr&2?!w!lT9+M)ud-kRHa*GIp;kT0oAx47RwnDeL;uR5eyp4+FL2OT;3N=RJuY}T{;V+!z8$Tkc!*E(#=4oNnQk! z1BvmQf|;EHhG3r0fA`nDp8!dT0}J`j@ALH33i!2`*XTE%U6y>CoGG(9g;U~>O7amH#o3{3PFmgi4VCDZ1(A!MOPpgv87R|zY^nW%z{Yw*i zDHnRFPxVD6;_fw5DQxG36!N&PLo5@4{PGxASpZU2!P@H(g&l4ytcX3J)t_^XK`n6= z+f$xv4j4Uorbwu?fj0$l;vcB$zF$py*0~`LhRr9w7n)R_H}n9s>gb zu>|kQnd^EZWADy&{}>QUy}W-3KfV6Ay6$QtcIR0iZm9BKwC<_b-P?5A>UcjdSrjk? z2b(y+Tz2^yh2_w8GUh2qiIFuLoLg_zj;X4W{=T|Cwj$3y>|5C@e5)-+c?!*0kPgv% z+|dhBUnjcD^dcNi3Bn2k<3%NPY@|?B6QHJ&NgVp7xyN5IGyrMyRdiN;8Wd0Fg{TD! zqLk?|&R1r%sgy-;A228^v_>w2FYyyIk4|C#{n@t>H?mj>O=G#Hgh+khx7C=fwtfJg zh_dt)@8D6}Mw7wPamCAoc7w-T;7d^lMJk5{&Ndf_%0f;+D#l7iM;mK7q0q_88SX{5u)Va$T4kHY9FTJS4Zhr>q82 z)5j#v{ed`Sht`ZXDk`XG|94;`+QQctb$g%B`@GLh0O$sI?9fo?8MYqBy#bSkQz-Kc z04=kiPl1OHGAz~<0{+s85X}8vriLMX%hP^?b_spGTPDI64CjspRf7T_s`MIU4TXoo z2xV|Etv=!d4(f!B5~JEgN|SK79;Di;X=Oe2;*y} zH0hc^jdX3XtG3ucpyW@=m~^2#$z|h%$&)?FiRk?n_ajj#VZnssk~^i^C6)D2-Lg0c zxGXRKtL>8z!!uTXP9mlnf+^WGTC6jP!#QhrCXWm^4%5x?i4Oy5t5*mDmRavwRhcPJ z0WrNT@hkCUl@NpK8UReu2}IB{Gcyg})>piVoPdba%*h*|)|uu-fexzk*}72I*aCJ^ z|G`INV={GnQ=2pX2A_ZB7KG_<+7zYG1a?cnQ9$LBb}4}cLxm()K{S}P&OwXi%>ttIsc7MMgUyG0%#ksqXZvj#X3E%4Le-V z%78!lkIwSGs6i2Yh);88E)l@KxSrO4;-&7~=mA$LjwP1LS(P(y;k${!5@Mn>%P)ja zd@0Hv(ypI%K4S5k;I+*3fL#ql(M(~e$q1$_b`4<&erU^LfMgGKmgK%3*F0xkiYXP( zHl1^}mpaE^;YfjC?MraoZX^y6$4aDZxUG!Rb(LMBpcbJ{P9lO^O5dHfA_;IuM5_((7Mx#`w{MW1211$i>!vV&28y&BQwP5dAh4(#4S!MObyD$wAsf!Zfb9c$T&;fNR~%Zz zU}7qf7FJjQBo2HVzj;okkZuDLRARMV`hjIB6<2I{s=2-2UP$KK8>k<+0T4LN>4r{8l{-goo#m1;*Ou9!leBC#qFIFA3X(rRC4ZU?cjWuhj?Y;*4 zYf@qDKbx|#8I{ELq5(lq5q{TT=sG?pkf~)P01Yhv9ez(*ny|C6p(i39WaYA7=O94e zbe>?^c>_?rhf;1Yq5E_0V9|n(_e#Ytcm#!7zcFyDAV!TskN3d(D$25*QPp&>+`Wd^ z%BE_&W=;!oq?jMR76nZ zm)WK68&q!7wRtL-xg0@QfqPO1T7rp_FF+V*pOE7gLX0lb`QNSWZvKwXFdhOjyXKfS zO-c070nNyPhG0p2FoOXM8U`C2D0*)!f~qM7dSU265%>?3g;su=0L~PiSG<-a-JOn% z`%>L3qnpifXT{GQAGbIKUh=kx15VjN@^Y~KL_!-&-=b4wHAxFER#jyu5~+UVu??d# zP3&h!RhuD}u8*OTnew=3OQ>Llq;Z6{V;;~U9VJ-nNcnz8Q_)yToWCLGcZXdTRah$J zuT9V*J(Q*yb~Rvl-{-sf`U6F+g@vrYLStW71ydqpeiGwIlNF9Q*apm{iiRHZ4Dz2mzqPmdPWVl3wPE2vJi@$lZkZ%g zrm<()keINLl|euM2?-M3y&v-XbI-1PW|8=x`+T|qTXAlMs!i(exRULCQQ_H5BBaV{ z@Trh&3cl}u_ll_u`0p=?7>LH`dlsFt@3sIizo~Z3>HYH+N?crQ=6#~~o6Zbe97-|{ z4Gp-23czb97`qU=ES^6*4Ps!`jqIGSo>&S=YS6+m~kjVsVxRs2* z9H=)P={QqtKRpF<+NR`RABZS9FVmDT&LCG?$*X2+yA1@l2LDIT1H&saaJ=b0kDMW9 z{46?Wz;<=x`fZX~8lyyAHa;}7*_Jzu7JV(8Awk5uQgzehLFR^QT zO8raovD032nG^lyCdkI#yum73iRPHoRZwx^jZX99{y_L;Ddymy;;eK{eScbed8|lv zIBoQ+`x}%M*%mXq_()13Jq9vrA6DX_I)f;gc+3SO)oI7__VN8&H@ED_*A=ET2VBz> zbJ1c(tYdnbl_AffwQN|&?Se`@P_cQ^_tBs}+|O8hB%2M6E;k~_caB|EO5jTO#M zun8V;(9r=zno27w!@gm)6LF%oKE;9+I<_aNw3C2=+TsI9Q6j%-yL1-Y%C3l(;>Ca6 z1&NT($?y*ms{P2tCNIhE{Bmu+Abj4?#S(+9TE>gc58YSvdq936HrV&`?=3ZJZy^z@C2tJ(0mwCzv zU0vPnkEd1-cX#xJ10EzKBnPhvJn7b+c;L_HNdm z32e`g2tTdF@dVf>M3e^=rXuJ6DsgQ-t3^1#R{xObpj;qzGfiJdtz5xBcBQ_EGv$G<4J>uf6|J9Q^-e z2)1rJM~z(TlXV*sb4J~UWMGM^)Z5n{qqQq7;e=9pAefPXVTU8UCIA8wY}(TX5!JgF8T&cz9DL|z1x%@ZgY#BKjJT&(J5KxT=!~8D0+6Effhu5NYQ9yfxs4 z-Fk))iy}=fg-X8p6#bI9p zbqlOqiku4rvpj+-w4ujRf zsKxa2WR)=_-ac)1&IbF9SV12}gU(d878{M3^@Ek-tIwT(s|a2<_btCjL&_Vk(_|Mk z32i16;AG(ou%paQQ4vEmKD^oP+D1>btFyorIH$x*K7Jk5@x*@N;-U`LZgVWCtPK4I zoM;?HT*8)%u=i?gMdncEJ_Exm4k_6Yp}`{yA%n;UXCWd7NAf)EjEQIjjgKXy*&+(m?Y}ZId&_JT>TB!m=<<9E7-~kjF zkQ(GtJc+NHsh8N1EzhUj{>g)a{i5M#Aw^om`TK(Udr>${S3vyj^mG*nHx2yn6g@`7 z@4h~fnB;e{3n#s@!DZoa*!tKmm$gynJDYihJPq)^px-meJCo9s`|t@97AM}*Xu+tN z1<#ioyc`^>bIUE>ONp^i3{ud~kVOjFw=K0A8H-jzX^TI;X+${=;Smv$5D|G?X0sbW z%wbXaDR5pM`^z$SeMcYM{P%EpuaCrJC(CH1F5E%*;Sl!rJ04L6Ox3f6C{$#DtH#E* zXKXdG`z`fqJ4oCkE{?*~$NgI9BN&5N_zWDz1c9V?geD~Wby1#6aLL+q_&1`_9*OWP zwbm$L3pM(CH<;O&Ut;~0H2!Vua%^I{sPO2#=d3VHxd3YE#{c2@+5fq7XUd`pK!n}~ z_HO?Bwkj;Fccl7Vjc4^Zj=k6`{A6R(P_ML8;A}+zsb<)*=fFY#i!A)TkJO;en5~`8 z^HOO4{J~60Ss1X66;);9FEchc)g#RiPq_6+DV;E8Y8tGL1@*O5`Wsm>YGb8kSG=n1 zxLt1q9U|I{{+U`kHI=794~Hw73TX4~r*>kzoSv7O_7A%YqTtGoKQUp&DpfVpVvg0f-R@~W zYDdjb!HVnG!Jnp??MCyB)QE`oG=3^_@GF$RaEtx@fqM!4;)O0-w_7bKV@LPaT=TP= zrRAZ8Hy`~CV{>3|<|p z9bn?zO@-vJ7pk+~a02UcRvo!q7en-Tdw*@Qx8O6k@}p>wZ&SR~6P)<%Iyes|DHY@3 zcNv_di05^Ak%#<}mDFCH$}=_{Cg84rq!O^^ZBbr{A0r7kcF;Cj4sJbx15zO^#(`=7 z6=#0=g2BhG#A6&fmIA_@sF}E`+An>+vkQS-+%g>-@oAw<5UBeHmGrk*J0**B^Q1!| zqc`-kbg{J;0*T0;G3QDe8yEZV0ldGx@TF!zEFN;mapgB64Dyj z?jNb|=)3+#Kl`UX_IjR5uJ@sY<*{1VZQyn!?~~jA;EOLHxrCkF%+~%@NrN5r-;@DI z^Jnu{Q+Ia`8}RkE-w-$BZ$T~OO(V3ig_zT<<1pO?c4p2j6(eAUm-ej}X}a6XuHG|}u@`)?js`0eOgN$e=L|?15L6aBzU1UfQk6!q&QP#l6G0kz$%Wn{ z>eL1d6qk0ZGosMY(RfxNuo>j$3h-}iW~{(kvxJ<~+T0l1j^A}*c`wCS95k%$r9K;@wXcXB`!MKZCR(zZ^~9uN>ccxLg_rz=@oEC053G?#)ITz z6rkZIiX>1T*JM?jMQluF*`p9MO5gq!NE(=HgI^V{XSamEUFR^{73`BnbpplyHbYF_ey>{r~0B9J|m5 z(#C}T(*8Ep0LeB;7(O=|s@L=DaSaBT-CY6l96!`4Ux$zU>zY4|P7!4uCnoJx3{GC) z(w@2T{B`z&2O`xBw|jE$W=Lo*zD9Vw>)S^m;0c*l*`rpAxWp zj|u|%n|zgzW^suqr50>KMHkoo70l*_?+m^Y_A3*}#9<~-%m#iM8sEEahmi=lUl9*{ zb~fglY?hLg1bTpzL9Icj-G&P0k$+uxOI`0L1j*k%z$^TEJ3_p5H&E(f^gt}$^)JfE z&dQ3%_nJzU&VYZX*-?iqZQODglPTXO^!VO3G;^Xj^!eJj5?JX|6<+_n=D(<8X_E3 zp6FiQO$sKdf7=kT1Hjz@NP#rW=4Hkf+d#`qC8#j6lobK{I8wGjU$z!HZcXx@%ZO~E zkGv3)RP|r}U*)-oLq<&&MBG1zRO_Z2_hdmer^+twI&5rV)BM{Y&<0f=y$2HS2DE;j zu=muv9<1@i>)XzcTj5Ez*@K&#A~I~?%4>qe>us2u0ecw<>04wmD#TbzBiCw;@MtYkOa z_}o_XKRo?@z70MEHb%&UA9d ziXGZtj(?5RLBaVv{gDiaxE(WQr7hbVxqgNM{}`P57^3@Rg#g#k;NS$jL}zoJE;I>B zD6IZGlWoifYV3k(8PVc;Zi6f#6ko~C{*%Fx-1S3qBQ>I;!mE7^0K>!G#&eg!Ya61d|;livc~2YlS;Y7 z)ccgmit^BKPVD7GlQecXax$klW#L`4Q#EH#t0}w=nWd3j5Q6wc>){gAh|FE4X}=u? z1i01!j-Ttu&326czYoha_gARK#MAIY^4+9PD2!w4I{%T9&ws=#Za&X;IJLG|2x>oH z2zf5{_F%xuE79RYuG-$8dOufb{5+-{R4dfEvfM)WdD(zN`1af!FM-R$KavAe)26NL zG&XEGSue<^;Gm>Z>jLG`lY1|POF7$Y)BcGy%%6bhC`M9Y;(@R@AOO^2>N0KX4$o(z z`hOX!-sqcl3IrF)8Hj+@rpgolj}!k~@4GRCoyYGhZfNc1dj1~^c}j+@R{-;Uc70v- z*SN66+|hU!b~+2lBt)J?fceuJ(iS5P?f@1!e3A#KBB8A^tFNK+TnM7t5iKPle{fkf z&|To^HX6!Mt&*1j9`NgW_pb$T7p_h zTGjx`q4bT7E%My0v*Y{J?H}~<)mC0YS)WC+{e_a269d%uAwSsl;$3^>#M!ZAGb{VGB^ELXcFbIa5uTSeFu({;>FgPmGTvy!k=qO+n<3b`uxbzmz`OwzC-8N29Kr$^%g52xH5Jvb#mVjZ z$Y{JLYCUzlx}vxT*+6niocyaez?2_N{&cyzEI#>_rSL5Ln`S>m8Rq{mSyEDE=dBR% zg=Xx(Jm=IggVLBd)2>CuB~-{0q+MKGDA56eyeavc=Mm}1o-MH$3i&rNIcccfPjt3pki~>QwYeB0H+}6VySi+Nk9)D8<)?aelVc zCbTd*dDBE&Q>geKK6*X$c^mzk_-u0VPh-ZA7q8_Y+Eb)s06mNb!CI4%G9YM-|vv+YGl*H zS>z`7h7(AP%3_(Aic>YUe&*CGq9o?v@%C}N1kbV?E5i`bWJQ&h-toVa@3aOu@HG+m zB9VMx4-k0obZ9h7N20MHWXs=Q1ZOO$L(}&^M;IJ>4!e?+4E|6S%Fd<6^%{c*T=czn zUMng@mn9y&xjS5JG`+tXeRQJM)`A~=q#+A)D7-Dzeeh?Ncmfe&IzeJdC+-m>n z1mu;weWYS`msW2BC&Fp6mj6ZAo)mBZY6@ZJC03g9E-vpyUQTWT?M)aN7cW-SLr)y& z4j{qB1@tdpTn+L%nWFv^(F3_hK#6;ls;9rgvF;pl z05zoLDoS*5_0|5_a1f^T8U0!<2T^c-oOB)oKWTUf?0klxbRP}V5Jz&m|2rEC>$ZIx-QtczdKP}4y}Tgt(_Ttw%?9f$t{uDz zGvfOP0!gT3X5!1e?ccw2iH-;jYB!oWSvLXxxo}$SC@>KLVwiy8VQ3If_~(IgH>uP} z)c;UgrPjc0e^w{i#072r|A1Q2adBFZ9~Aq5Y?fO9g|#36GC%;N!>JmyF5E6b3zAy{guYFXkX{@Kg_lXAS}u>u@p# zZbSRcw*P1?z}``3brV2=bZ-0I=1x1YkQNEa>H5Tx2LL%`Vba3^dPtM+yrxEN%dmU8 zNb3Akgs#LCCn-rx$X{E-&4@HKJT-#>^Db1_a5M&noXHfT)75{LBwSWzNOXMCoUrUP zy*)AoLz%91x+#!*z|m!uSTQoXMy%KXw)0p)>^I%7io=+^gtjn5GYkTS;K_*QFW;eQ z*GWSJMisz7TH_UxJD&OC?av;<6EI{e#7%~)G>lAS|G?0v?J%m2K6!RyqyktKe>eZ^ z&yMj4Au^OMk4NQtwPX8Gez+oR2%VlhW;drG3sCPcmJs8+Ad z*x@se&($m^18Kq)s?3($YGAW*PB>8a@g8;kdULYlbSAaqcP52*_wl3i?diK3<`K8> zzmCcZ9k~VFWl(^l0Vv*=m=We)v$wcVx=(-DONa1Gb(~4B#csRH%Mg*BV{5^lOH0|v z$jHIrI?6BYfM+3OPxi-HX?DJdI(0EBxzuo}0ExL&Y5-7SLF{*k#sd=K5X4892}Ojp z>Y$wuyekKVpB`nVvJ_Kt^%V9Wj8>8p>p#$a?(MGZjWUNPtM1A2U@~LgS+Lpu6^(Yv z6DEWO+JWAJ35d?Nu&vLH!^P3RVmssQWhQ7tXibP{5TP-8Or?ekc53z3UXgF#9`Ax=oZCT)5}`1&D9y7fG;|0wa82^^L3RJ7<@^2R zOVd6A9VvJuU5IVFHYT4_iuAM}H2p}{I`eUB2=8KRcl=BX3y%FxzM7+{ zJ>F9pj5^tQWA}P6X`5lF>YxobVX637hrzpxOB<>rPSE;*9B00Bvz`R+#gLW*64}!Z zWx;f?g6Y$Cfzd)7;cBWN8}{T`-(1A}Tyk*OYVx-_=ZS}8^!O4FiP&U#+d}HRazR4!*VMwH>El%o4o>;_)l$>k~sw7Z>(zm^Q z=7&ub9ex_POgxO5d8LFB3#Jx`VnETYne$Jv%k&kR!Endd4o6llCR=YtSX{8?U2WTX z)&%$0k-i8P-oNf-CY(P#59Evq%`iypqj(A2*LcGtMJA%`d$Olee&%Dx46Xco=ydRX z^U>w&m=gVHx%e2N$3_Lq(#(<$hEG|N&rZAd{coE}tCE>~SWG*vo(4XH zNJVw9nWR*|DXUl0ycd||4T_OTEnAg`n*)i;#-5_5WIYC^!_+FD=_}e)?~pp(MAr((QP10Ye7>jx=a!ctM!EP@Z(Xh7hUzdBlajHqfCv^ zSKCg71|l^2HK%iVquPyA7ROMYF=xM~L{Zc5FZsO550SlDR1OD!-P4GnzQxF=swM*$ zvIwODK6Du}vhf9#Np6WhbH$xb++P=L1WuJ9rhRxulK(Nf!Z@1KbKGQdXcYT#+b9x_I#4yj%OaLh>V>L# zK{RX3%7fxVRbhoqG?LJ0q1^8AK!*uW)bQy$J`EC2yn7JMFiNdgwj|r;Z;^L9$YJMl>CB8)axeFP%0?#V{IBpz?fySqBh@Mk z&En*M{O}k6(rGumSE%!505uRxhP-Zz#`qY$#OCn9?ez5YsH;mBuipw#c?84}*)tet zY+ojp1yJX1UikPsyAIe!q=s?7D7YBs1Djp;ya}RnD-JQF{pgHRw>QBV*JkcKuk+j6 zHY515hV~MF*88X`|BVgdLhDKxVwlybX7qC+6{SkYV95Rekx(~*;Ec%||J`VG>RJZ4 zIqYarzFD%{Qi#gQ$6MgPkpd@GPM*VvvBqHW>o#;x42TtpJuSEtF~XX2ED$MK zar~jIGXy-DFs9ZYM(ZbWP%Q)4s9OMeScmCS?O$0(^3HsgTVgInYl5)zbl&y9Uo*dR zaMR!u5VRLg4k7Fj?T8it#B_p8*<_>GWays% ztStz$_8Gy^k0zMIrV=X@mi(s>HSEe*QE*_UEK$ca@BeuJwp`4f6n;-oueXoE$i=B(a^8~|HKR+MOA6g-t6|_22VkxPP7;L-G@nM z&WL?~Zsk=3{A)ZgWktLY${8X)7pw2zb1i;`hp*YWJ36Aucy`6Hit#v}&e#HBUl{GI zLg4GEBWp6B>kTn6UqA#Y?rPAQ{rP93b;gO1t6S2f^DKTQ`G5zDpv`52i<~}&daYD! z^Pj5zMKj|7H*k$+=IhLN_)T$78W_t899{PYLbm^$Oh@CI_8ZqXG_YmJ#>Pa)MkA82 zyUqyv!$E>KXxsHnZk9N8Wg71}@}y0qd>m3m&S)N5m0(F0m#-LcQ%%U~frDh;LXs~j^5Y~&CwK6-4iU{rVe0@K!WvL|~ z0*eO=tt9xU4wy`J8sBD{VGz)S-;PL_b-L{K3aNS8R1D{q})lC>A)VtbK*;kl)SE0h+@Skj#!HQN?ZC0<-)I=$@K zID&7R$__Y-(Zawz80q5)-s>-@Kdv&iT5mKw*asrric2HrVe z+^WjVlrVeo#l_WhtM9oO7x}z80mxXwfaMr?;wTbEyR@fdmGIH@^mI3LH*$R}-cMIo zCrl>p4xbZMg^dQi=`jCqH;Mo@CY_94WTAMW%6e~aGqln~hS75!%sFvzJ#c#w>vR*Z z`uf99LM3*Xol`*#bLr$hg(MDMMMmD>x`L5VJTw|L{tKq+PaIAdSlGY-BXlxS(n@$7 zswy5+V*31N2moIWSNqllqJq4;TNS9nWY>hB;@Q0vdB{c>#hq2hVjO2T%yiXSE^nY`9O5|M6?kXL8Hn7R_#@T(?9+F9c4;xea( z6B|t0gf9~r7Zz~zf(7X6p~s?vvcp@hSBVgzPnD;=Y9atX4&Z%z&y=SI>L;hT5+H*U zu}CjRq^G!SqZ?fLwgBYy$EH(uLPA1j%0)PA0bXyi}ND6G?#_YOR<3+wA#?CjOF@Jnq(j7c&q z292JIe^qq95I-bWMY3O$yPWxXLlq%2-w>>kTkYwR*V1&Im@; zdp`n=IkMoGTliip`&(0?F87+2Ro=DGL+7s%z>A3qD&LI4D3Yf11!|j!G7?NpOiZk- z%7cL=A<(G_RCfTbN=bP#`?;|KBm2MY+nIVj*WjXHc9K11JJ-EHZNxb5HV}&vwC_=6 zQF&bKIay&mb1iP6Ay{^;={VW_@w_#{o3;>TlKoh%tx`aYhQ_Wrd7`&?8!LX(PDJ<1 z8cr7M%ML}b=j&Nn0$UwzUHskeB*n^Y<`p+i1)q(LZJ=jz|>3708)r)7oKcf zRiS%kJd*wFcRDVK1Mp54wKtsI=i#rd_-OiU#9n{oeo9`_qr&u~fUAd8z$1Vnb;~*G zbRXsN3-_?lUFMvN&Jv(zgc`X?qG^Q`*1Y$BDL@DYx<+Y+qwy>Ec6XdRO3b0{t=DP< zFJ86gG_{dc%k3VZe9x1A^D5U^idHQ&a+9S{))?^=A7LCfX_QguK0dt4SF%O!--;6i zrY-9Z6ui8a?#0jT}hGvsAdg~8*W zz*zy?2Kzy<#VHBY%87IeC_p(?2RAOE(_n^H;LtL+@7BhG#a}mKR=z85ljn}y*nsKQYmzu?KGP?-31AgS z`;HHaN8JyQ`tkZL{8#jB(OUn;f&=_T;#!9Bvx<-+!`d0!brxQo*pYdgIv&Rvjy4-q;u9R*Qr zs%&^GUiP`NzW0o1)!|c38tV z2dAMJ!Nl?EXo7+96f!`Wo?<=4t4g|E{7K!C%hX><2ra!lC-OS6O}#$P*<8wVk08J| zh2Lnip4h2P4?m|4z-&x*l`Pqi7yl{!t2!x-<%;lhK`)c!-`>p50}6@o?I4Lf^gp2E zfos!sqMgM1Qzp&eJWc|Lhfw*yNwTrg34BA2hZRx8W0aO9>z|1vI-fOXYVC2S<9vx{ z5McQV4x1$%4+;Bn^MLGi8@au5;lYsntPWAWbX;el<~YTK>n_Qi#1^xjS;Q2B*2{?N z9tzjF$l-`h6l*8gbpPkVnW;0Sw2Hq==2lZBTbKqF}3(k0r6C2bUrduQyZne&_Xn?9M6u=Ntv2}|$pBDBx0 z*91qIYeh!MUAH6S^b2sX5Pqysa&vbFJg@SKiU6vJ5-Bh&5^`_yRS2_*{_+;<@Rh(2rTutRof2ui+4g0a)=h@=FiTtF%Z1V`^E0pH= zzP#7k>%HbKOhPyl^>7;5LhaJgVeb_ozv70|%3nsL1a-C>WWe%;LrdmA&Jd)s%W0p97{SzU9 zRz*gsK}AU!7>Y+_hh)jyAjps;3h178QGHSd&ddi;=E)CKO z*zEI3?Y>(0ysuf-oMoi#*wq#x46o<@_Yg0*O%^M*k2N#E=|cXcEgx?sdtogTmP?%C zJxJ`$2S~DA5fkMB4K<#gjA;y#1A#6|+I|C(wU1daBwHLD>^2%>JCM;hBhM0uG-!cI zN;)>>jLX~e!mNv^aZE-Xj%IegW@Z9OOo(yOBc^+D)57<`SO!WC#NIdUg0=X88L=K@ zzky!hVJHOb;K6S!&HV^N59@S5iTCrHpoesW_F?v$Z_j_4^Q5FC6ybmM$s7d6i)KvU z^6cOd0P7r#C)Ki2^+G@IYv4e6(+XscFqoGtcU~hg5c00QaFn>6L>*~-KVL=3Bn5@; z!k%etQWQRBy)pAunG2-ISk#=f#)%IM&p(}JP3yb99r*C;4tQ1NGyEN1=*4O9QN7%IZkrD-pJJEq(+JAd7bm=F(Pbu^?kkT zOpwI)a>lRzB=;>e&pWlnexz*qbE{_M^C=M}goY+ZB%iVzmYjSScH=G4ior>2EE63M z^b-g^77s|vQdf|ECI3rVVyBGvU|tX}r$n{<4KKJaFji?nKU$Hv&49e;Q)5f616!mE zPuU|QkpADqghDlj*+?&m`~t6k6$?MYyiQUX#d| zQqusnpZx3SEeG1EOY57X?YbOMMHmaR~QBvWgMzizg-(cro$2bAu=iT?&x*N_pl zp`|&UFp}Uv-K&eGlwN^VX6n-1_VWB@_Ou23&^{24b8zSy3Z0c6Cnm_c8A7V&8wO0! zK=1?5a2q=O(P!4Wd;RmFAm)o?^MUnJ;w6+ z{OUGwz{_q)Q^S`3<9Jdcsbar2aIr7F0`IkB>C$wpxwQOEs;12SWVzN6 zg|P!Okm4xTk~{Q!Z&c*5t?-+5h>H$K-e;NrS>({2tybJ465{)p6-wFV()RP=LMmzr(qVY+squO;-TbG(x7;TAC@5tOQZ-63sQxkIa9BPN9OL?8 zmiu!|RQmJ)KA)(%zE!6CWShJ}_69M!j>yxV)-QM_+-HVZidkncfPRB*wUfnKz<^uw zK4JHDO~0Jbat4}{cCv3X3EYj|-}(J_)nbhKPmA*L@^S0$#Q&{?)rOCNK+*yDAYqt< z&`F`)*xO;X>5sgV@3bdesU|O zqtRu{k@N9^?f47s27)Nz@VrCfyVZjNXrCVAHY#Gb#djK^kQ@Yly(J*Mk41aEX2vFI zwH!uG7ZJR6qI*yOwsen0iP4eNmd6UYGaIo+(tzEwwdM*ry}sPJf4nCAT;{G3dOVy` zrOj#;H(YhzhjQ?=yWny&adw<|QuuUHNHi0|+$6e*T84Z+FCqmmOn-tW6%`p-vLA2y zfh?n)xr>0`COhd)MYoF?2#LwG&SM49f2S#789yF`xkS%?_MJG`G-191hoB$atY$A@ z5lM+vbcIg)`?fP^t^vN*o}eT899NyKx*^;)Z6aS4-HQzd8#C&-sMYS71*8QtOO{el zm+SI^lK0}F9D){Xa5gn;rbd?MfC%#@IZ~{L*LtZjX^(heABF!Ecld+^7~N{*m(OhA z#Kk%)Z;p>k0}~o>a#y{s4?6Y9u$v{)Jh;Wl11(z+HS)OVsL+|LDs1j%liGqf!v@{D*$m!udLT=7~O4DKGAFb^hpNNjkU-`S=-PVjHrAZq3 zJ8ShAKgK8uw3;6NTfk}Mg8KCJ7dnd#QNCzTZ~2}J``5cPV=7ROGGYLJMV+(F#Ciwg zf_uyD8o^`p$G{u2;ZoE79?3tuiR(I_>pK6Bf$I;CnIt6~-%wK>i#dS{1^@ej&#leb z?TF52c?5=qtq0hEzzb2mXv_OWZsxqT>)dwbOL<4=c$WDmH17OwKGAQu?8c(=t}~gk zG44)&VS8pxrJgfY=ure&RDrZ^tgb}4cpKdgcVh+z@Rkmz^~t32+UxZdls_Hm)6V~{ z7Ohq!AT5~dT={(A|iHbcZxZ zch>;l`G0f81sC%?d(Sz0uk~B+D@=n-#cEiL_#tOk;Q23Vi{DAic{_{u+y2|VURuwt zNzclSp}D~le&y1vozIwa!% zVj<$WMH3}?UjY!j&j_K?`5c$oV^FDt+O@c{oyS$k*HA8165_N0TKZu*^oAv+ekV zdTfsMMIQMDNBtHW^3Ka_<*!l{A{t>O*#h}6L0{l06n_2l*aM7{0-E#f{_1(czQ0fq zI4nZRII|ue#&2A-PW3yicW<9#(6D3k41JC+PG+U|?4lH7;a7nAeb}{0e~B^keI1L> z^-^2ta9nle-jN1UnN?)?-ftxGT)(G7{SG$`dh8)TLgFW{tLcUG)3@mDe+Y)zbl*9w;ZGuxMasClURq)W>!ALz|68lZO`v zZ>)`Ldr%}O_jxUj6(WyD(m7)*d=dAW%fZeGpl9E}MPD0QF{O<0UG%NCSCf_E$G_T8 zDfaf_6tfSjF7c56CCBo0vlMXpr2w~Y3S*x53Dua=qe7xVDbisBvf<3)yPdJnqU1O^ z*z>&bHGXThj3AA`s&q?K_H|Re0+A)mkIASUR`LfTjyR!~29_*D_+c;)I?nQXr`&xS z42V58HgZX?kZU_yDHGUfD-9op{hvb6UK`?apHt9IpO1TPZ_#j_+U()9No=DIu^e6B z2(2grRM)-Ec0CM)pwTK2A10vsv!eiYLDf0M)I{vOD{!nKE4Gw z=NtMJh6mMXaF!GktV#{%M0PJJJ&&(R%Fw=t-_68HDFsg7&D+=Q2fW>r-4*}2*=PLZ z(Q}Tv-FRAZCirG8$g`$Wsl;`6MJnZ7Y-KIC_yb*agu`Nji1&N%PvnjJm>}8NIoCCS zD!>CJb+2CZ_-)cAdhI6akO6p23}kW~?YV7AiwBsz>?8;cNk`ydQdF7Ct|(WIuX7OL zCK{NMQbK(Auaa($7U3YSlIAPTirEz@Nheo556gFLqwYeN^J>m%RZtnyhYG_iX#&vx z{>JSG06jJ&f|^!Fu4v;Ab=;o{zW2L$DI@i_{$W&l8!U2ZV)(-Ib{W%iF}ZTP%o_k?ogO3!v(u*lES5c#7eDygrJ!FOKXMBzqp#~;?lq;^>C_*A--Gml=)==7l; zbtSpq-0hrazwo_W*7$Q1SH9k1_V~Y5M_5y?8m{Xdb52U(2J}^5{&{;!F(g?*>VYn! zrA1B23g9K+w%XI#YgEeE$OU4@uM2aj(zS*ukNfO&q>%{6rv{h!3N-6^KS0I2otCnQ zn9QsMTkwP*w-uNzdR(RJ;wSS2H+1~bQBwb8kuEtOL9yW<58~b&ER?&yUyWVguQf4@ z-yBk{@a-w0q_G&ZeHyrlsLAu(>5G^yEfuBa3|F2y)w1><|F4CO1Lxdhj^o{QCr#h5nLAH52ZQn^<$=idT(4U zq{WdKPWazsiXaAtTko@AE9Ws;ckPs|i@4wHE>q!qoq0~yg}K>pcyFF9Bq@`=*7Q)z zejulQT`+X;J&T$y=NQWK$DpCkUxo*ncERh#`DbCA&r-ml$5YF2Y=-|7B@cw1lG-6- zLtj7;J*BH1!2866?x7>LoDleV<0%xliQ%SX&riECvVFy)M+MQ?sAA>})_JxB1h}^B zpt9PfZ#(fgG!TKpYGuXhW}9ZK-`jt@!zDpX%jaO(OVdF~J^Ok6Vz{sBWo_TkgKu}<9H^e_Pzz03HSv?a{e8?J7O^ukzJOHZy>ryp>%HP+Edz2$>duoj9nneZeU(n-xYV!YlJc-on0qF!H7mfVCm z2piI&n}dG*UgS`%oVogyq=w(Gq={+iy)f3xy@=vD(~?!9_uVmzf&;_L3Aw8W zHENkjR!4SXt*hVLdh<6DxRhIEv?)2G65DrvEz>A(|1kCZk6thx zd=7S%{iv-tcQ2DT$|hMx#^}<{-s*ZbWjyzeH*8rLxfwolamfw}lTj#2`Nc0pQ(ApP zEQck8!J`FDiGqwOqZB}2Q(t2eHjF))GXs^ShcW^angzPO_3u+V$-9`$zjW5 z9h>4Y9LX5VT+d9ybDcG(zX$0Lqc5;?vFWu5E~#b+I-POSBTCht;8e;Mk;&~RVzxPT zV>hGkS!6|BpGxip*ub&(x_0`7()TwL(`n2=oPW4?@B7lk2|L@j6AUUY;#e?qO&V5r zKW;89Oc$PNckh3;TD1*nole!tM4xiZracNxGn~+sANX~mFA&z_TXm$%Dy;rg#F9${ zX}v$CJI|$GsWw5vkTPn;*eUyym$e#dw-U`pSMn!m$Z^%a1yxrz)vVc$kk^RLEY)l= zBCPT-_VvLz1$xkOyJieF3i3E}U_qbVcM) zxzlIs0DtHx+JP>V>#nT^>jO3yR;$HmG*{#b4YS-u9QbG?`mEh1ZWv$l0!GjgPPgQ? z8}1odP3^-<%e;Z`^2@C9auKD##+{`KEz#qgiAAdQdyyN=r1$5B(0>*N4=1?Cs?-wq zKASIoB9y4Zf5)OElz{R%e?;WQ-0W6=LY$0z8JSD7?qYjQ(G>C7K=X&rgiUHH z?=wuDg6P6Kdg1-{AKdqM?s5w{Q{d*Yn$bQs_-}Wky-t_M!HQy)9y_9;vZ^re4@GG` zECrW9-oG>qkq8}>CU!e}G-vOK+ywF4 zXwHxN_Z)qan9_CMz9D-f#qTPkf@TxvWuf_oo#UaVnp1FNX`W?OMC&R0@W>Hzo&I~< znjGtH)rM!VYD{`X2MI~hQDk}^9-Q#xt-fjr z9xY%YCvx~_=SH&9J^l^(J#3%9O_!VZx4m_*TP~$N|7}R9eIG}`#U>$Y8ci#n#zt1l zG!tnIn`#x4j~&07&l*AQ+Nb$b?MJn0Diwtc66^=ccM@2#N7n07dZ3I%5#5CI# zB|@m}*Fjj`LjzYks%(qEDK9gYe9Ayu(MHz=^vte^uLo?yjlVtj`+Ma)d;n)ks@Y>; zS#qXf6|B7|hD~jcb(55zH5KC32WergmdEuRwba_Zim&A|fi{bT5Y9j7eXd<(7k_h< zik5YIf}0lFz!UY1CR~|}?W!ZSDKd01x=oCuRP#)u^^8$~ZM)r5E*5wwx|WII-Nn~k z4qEmY=G5*-lLyQYTxcfvZ|?CiELt}Cj#uK$>Ea6c-NCx7)Fb9|J~GP-OpNX_h}_-v z;OKime;E3fC&?a%35OfLrHlLD?W*$Fb$m%g`%SPPj3{%Q;kL3}br(kJJT&<6WggA7 z^7il8$$&M}6J&#s1?P52MoRZ&?WNScr{QwmLE&vu#MXK|@{v;s;U7n)hgDM%1Br4> zgwjuZZTNt6kOclREHV6G0C_R|PY}M0q-=$kl0wY^T;Kt#qSX{zL)Ah#h9zcg(2fwR zF>#IgxVC3{PQaxJ>u1pdYS8?oo9%%=dO#xj0=f9Z+%!vUDlCF3$9@=T=Y87iLr+~! zy~ewh;K#k~PJ18sGpnJn+41YA-{JeM#~e7>*C7KHb^-%FtbFXre;U^g;lE4(h+xR> zp!}(lyGQFM=|50tkhxI$piMhH$3d%-Yp8C9 zk(iWFzha@Hi5`Qmxx}^8JTFs8v`Ekr|6>N*!l_#l728-vj?$2*3H~+^KH?A-?#2;+ zotNg@Y`=6r2XCb14nxq&1E}o+S}(m}W}++KI%Ijw#{Cx;cs7!t(xn62t4cKO$yVX2 z_zyP?B73cTHJpO%dQtudYZ!3VtZq zJA<6tz8e)ho?LU}y+H3e+@95v6zOnragt3$9s)_F`>=acIQA*XGVug%(B2GM<_V&6 zK?w_TANmQzy&3Gv0cX3r6|h5BgAVlke#YR zsZOEr#89lY>p7R3e=e&^rl`Rp#bL3t>G>#@*b3*NsHnQfJ7c__H(L1MSi&0h536i?$3{J(z4XR~IyRcqg0dl%ngT~|9Wh?V zBPUhpspu3ZZd`|Ch_*u{_!V=<<6cDtDc}mXTzbJfIB(zJjzXjMtv{CA7^ZO7Fu;WG8>#z*YJh-m#W zd~YTfZ`;DM`l_!70G5P|3n`R3c6|g4Z{fi9#pY5@=)TCo+GhuUMI;_Q|2&-Gw1X>0 zx#TWEAAEt#k4J~YtQAtb^f!bI_Q!snSF;MELig=-=RR{TZwdzZ2@oA+&Q@V)nWIXw5fD)LW+%<*EdN{A{gCwz~?EPGVCSJ|S# z#j&E2k_bRy0yOGYkyuuW#fM{`{5sk@Dyv9ro&tD@B#bS{#sywJo`FD9WPyCiC^tNP z1hVbIR+n>8EN9>D&1394*x#16CUJZ$X)exA9lVjyCKs|)#i|jTN`7F>60t*88@yLl z1O>cj>VNCT^*OTg__gOuoj_k9Dt|f}8m>cpNbq-}rDgwG9}W!A@6+;n-|apn(qoJk zjE0*puBNDFsNv}hv(GHwEVuCxbO?r!#B)p^R?E%d!rHP7 z&rL9Y((MA0zdson_$$pd8*gM3 zuyU&SQssPydoAuaL&p>6`71+EGv{2(abEw^q9z9~-CegO*i24XblDQw`(k<+%i5+M z*Qm8t&SMubhK$=;eI4>z=@ZPaQR3{lA9tm$A9pki^QEW?{YsO0EfAVkij@UUl`5B2 z<+@(h&Uxo8U4H#^ymWHg%SH_1gY+{xx7g`dESlTxSNh-KQzp)E>g)8GeZ!VeNDeo< zjGBKwzgN~0+|{E#KnRF;0!WdEZOyk%O#a0}TbEVtTCHaVTHc@Fr^qZ)rk%K8T4357 z&SiDBHO<{vJaO%`x?P{e^Z4$VBp&=bcg|n8{%oYALVMRlo}Zz85)kzOh^HwGCj;2Hm z9X)RUX1bBeHa{$$NwG;8;e{|;^L0$|cMSifv*_cUt(c6ipJ0Qf+l4{_ch2jjc-Tk4 zjG1AH4Z=cxm!!ng+cIb8xCP=JSphb@`j)Sb$K4js?G;l-!7;P~Ul zyj}W!i0o{e7-4D?4=v{0A1hAN{Gf?#e0EZ`kKN#8?ase7W=ta}{$8Wbz~Cpgd$HXh z8ApBU?W0IzInk+Xe>c2QwD0xk2HskijkQnm(Je>b+lbi5+lK?Rm$9(!*Wa^oBCo`1 zT_*e!sgE}0T5HX*Sm%#-Bppd-mlp16?Z39WgSn?wX&#qCx+3;6%(I~bYLe_PlD^Q3qgs^NrpL>_beFOvKp<(ovHV@Y{=DEHUHqgB;^ z%2)?1DUB<4o3u1lDi}2M5>Kvv#dVepqZ6hWc}P9k}N3na&#g@YJu2&Bxtiufoq@_`#nwJaj z&)7VkZHNJE)ZL^q2o4??%Mh@5XDkV^M6xQ<1V-(eea)K~p~~0p>l6{bR`-LeS?EKe zS)FMN0_SEG9Ekd7qjk%QP3-!>HST0CzaB02`O9Y9wfSf!-dl>{^C=l_RmSuKsnC@Z z8HFyXEE-I%JsPpz_m5a<1a{cw56cW4J|sQcU(;0G_;UznNxx#@=U=_jtl7H<*IF}t z-@nrcQ$EGRe>2=WNk{fs^sJFD#tVcT zujhj)FZpvO5ZK>8mP_*cZAtLqLThSVhFM@fgZ^mDvne8m@P_N?=&*O%_P&7_F z+kEOHeC}z$xx^*+P3I26Y7TT=%hlz!e|X7=i;C)`I!@r5cwPVGWgH#ZzYY;IO1)kb zD#E3>W6meF13*kyQUBWICg9{k)eQ=@F`P@5PTWR%9v+MoW z`3^^_8Q)jkNmrpoNsy>iejo^@JdcMG6tuOqg}MztN_fefh z@NAAzwQLSWft=L!~zPRHq=AcE+W{)hRA$kVq=vQ6ijv8c1Kdq zHDKZv{vLdXi}Js&HI`ZgB6dJFSWSOXO9{T0kEU>3S9UNx!by`Jd-56w2PailBru#H zW^f`$Kv5|4kgEMp3-u3RjtiKc8ZfS#wxs=BBfNS1rH0J7a*caUTPkg}lUhn*$Puu8 zkM24_bnRMJ7Cq=H$_mP7?Rl~wgaT*q|CS~$hHH^>DMXuexp=*J+_3+%AS%O0?`;1n zL^`QrV@^w=Tsj|H>Xjy^Pmv1|>+Tt1*3a!W%EQ5smXdlRuTm;ggJ{;&H80lsDR{3f zEu~|~sg7i1WZ0mjU^INySDbX5prNK7o5VM1(uK@huPw<^6#_G-%xUA-nw9f552Q7` z$>+~DRX_9!ML=XI{casX?Ci!D8unLM#qp4YOX5@v(?Ua<1jzs=<4RJ!3zcJUF zY)QR*e_}%B9-S>1cCY@kSlM|0yM6>zb`JoFS~yf6lPVFGwa3`qREgp zdJMxc=AP?yRBl{X3#OIqJ|`9QxEQo;1-|v+;bC_hvE($6;@p3J4aIR!EiozTpSLDn z{`=5|QI!X{y@8~l?Fx4upb+m-p{;_TA*lSOuX>@xoS$U2JEw{aAg`YB4}U0O@wGZ$ zfb110@c)}C5U0+*w*K6`@U*h=dUtVAi_e78FHP!ugOEBZxFaomm9SDQlB`Ojl%1ZD zv0P^o_UB~7)->bi%BkNjgJGM`;}x(Jrzi$n2xZCoy#DKTr(N!AuGfK#5{-7xZ2*w( zup|vQOd~jZ4I+A9hV1X}o1Y7RC&T^s2xm+Jbu+E(LxYBR6f zR3rGbe+@iFAeuHC-7iT=m~&{pjMA-|^^XjBXn5wqq_8mgW)W!yUWWs?hG1=Qt(~+D z`xc_)jojzXnQ{k=o$y)pQ0o#t$)Dw~;-Ceh15r#;?p5tuZMssqO5m;+YL$R5)w zW>uut^OZ0N5@^4o&V6Tv^%S7Ng4L_Q7U z3mlW0WqS9wVB~L>*gr}AwW&eu{_A8uox)NM-Bz%cQSx!(aYV%LWoy$gAum-Oj~K8C zMpVS6cqe(^2k~H8V|A0hF=`M5aDpf(XHYU`e&e&>Rj9*unWrFA{C0$1UG5CU5wEoR zooPhgVh3bsHHvbP!-|J$SvhKZ6Pk}g$bxR}vJT&l6vy$t)cD;aK;zc^DA_}C;fRRB z!V{^ixU-_`wziCtxNGfJ>Z=@lb_jv}qE)BOnIa-IhYF_$%V}x65s=wQpde$YfSG^} zE-gnF#7&MP7Fn=u23*ApCk zx_b4euGx&wtX`yE%#ZeH`82+&hxgt%outE{vxds}2H-oxRdNmyyiAuF;i)ijhC5jF zN}^1W-wq((xei|a9Go^n9Hl@&49J+&Ij@uwyKNr~2eFrUGm(v!iA_@%`gMkOrlPhC z$!R_=ocJ8|T+FAuYF*lDKa6n<XBK$G7eKo~69jzV8|i-&z9$#zG&og8$NzdQ|Te zmp9e2DvO2#SzXAu`K(Vt`ec(HMBRKigj&}huB!m_X<$Q*&-)v_Nb;z&1%*{puknxU zBpEfk_aV=27agUElx0f(ZO-lpU@|-2IgL9I{pMiMiTMu+q~K&iS;&}b%`zNMGnlZQ zy+s`8m>8r`6&*hn&<%nYC>o8Yjq`*8K;v%+R@1d{h24X6U$lt}j~*!)5@R(r4pBlY z7T|hjzpWjG}gaW4&{};j_F%lP*)*D0$)evm9N&*jBrJ&lqRgD3AbP zMbU$#!YpYM|LvliZB>Tr)|`hyw@TD0OOX^yj(j)d)>ujv>(thJ-`R0@Cgk(*ed!c= z)XCPy#njZz2xGAetVkt#Hb&!br_6O*rb5XE`bdUH530sC&4woVoG6w$^%p&M)zGsTpZ}hB)^LdeD?sf%+rzi0I zAnrU+RfmR3;q)Ipr;YBQ?3$=}WN-xTEY!2@AUqs7F~1uWBg z-97FzK~BR+rB)1>F2CSqcwxSVwJ{B*f5xNuK9T4D`uOsEKRGsrf{L0!gkUnJqS#t( zgFax>l<6qovtbcEJ~0s+7guvwT1wbecMEy9m&7O!w}>Ps3Ev8gYM|S#wYyqbMZEVT zqA9+;X6aO6#Q6{s1kgEtpR8st{Qa}L_^TN6UHi-3j1O(IV~T8fJYIY$BL}TvF9^o$ zZ(Wrr{qiZdG_`xDBv^2<%0HX?ZVN$V899w9M=9n(xTgjmNceh6kfiDM-6;gG6DELSV zL#+t^_MEb+dYV7Af18p_2^%ZBTUhygd?y=kd@oE>C#0FTntSE~9tH2wUPFP`f?pjcyYVkNmsvqm> zmMyc|4)-3zZP7CGRwd$iaR@XeWz@24|D5Z79|%{blw;kjTjIp0I4e~|0^g?J;cnRN zLKkbIhLXX8g@cQGd`nQxFd~QLd#UYxa#il#jME&AViRsk5ukm3^IZx)S|Zi8fzhV< z@3>nT-6`!f;aQ2^H%uRXTfWJZJ&65*wWu5UMGH9auAF?glPXPo!vPO6Mg^i52t3z#B6-vE6>AmRs6^kvL>P1$q# z%Ow8u1sH$dV0GwHsQye%O#%FItJ(0sQCT)!wkkLLFp7kjCbnK)?X!niQIcwQX446^v!k1WQZULS}tCnD}pQ2J!vXWYxnQ?ThhbOtu+1MYR z6Gp`t>;xV7pR_w8GrDY{v$G%MPg&v0)JgEKgOm1|t2YEyZ(%23|8YOoBiw0iye@2! zD^p6&FTv+P$p6{BjMX{MM#ZRC`agE(l$jU3K_BJI!SgE1hRhV*URc6|bC3pm%u1M04 zflCT-T(aQL7~QQ$4`MU-A_gz&YioM|RPg&5d6paj_iC29g##_h2oybFW;1$c>E3t9 zQ5TZBmCf4eQ5wK8S`TnT7)Js6A@}cjJkFm;|4d&M4`>6jBJPUH%q_O|CJm8+X)CoFu$J6rD>y?0g?d0x$Y zNHHrwmjUO~{%wA~Rr}zL!|!fKI{vP@zin=fQ%!3x6^BxjJ~b@L6Y`~!Q|YGtmkiNR zNRCfn{H`z1HiXIVX?`$QZ@7t@nRY#C(>* z&9imM+}!GQvI>Hj-Ff?uJ7|Wgr;_iiVk}rrREZ0&si<~M9;H^@)%fe}5(Ne)7t1cgBh6Enn@*Uj;PE`zl{msm&K?q5WI@sL?D_S$szz?6d1$~2EI2YC<`m@}$ zTr@0c%_5&@U;R1oc&fJ)Ff3ox>-)HoXC0b0x&kag z;_qfV3icU&8%X%~fbKu8YqXKkByzJi50^U#`=Q}aU1yIz>+mKis>j}p)i@ElYM}z@ z>)P)on~cJ>D}fc#tPB~pUBO9B&&{n?r(a{Whl`o0O=~T{#hK3#8N|g~p z;^OFJb&~>%X-ox52l-|1ZZZglZ}i^}O-^#A@>`Einp8pU4iEQd|DEkFHNu)IqQk|=5*%psGNy}X}6 zWItFB(P!UQS+4bIP`%@Tar6sh>Leq6c)opVvSw<Waw1M> zx*kd6EnfeO4k+y8Jj~zUm)z=-$blEhWqe<1p~}IZWV7-Z-*D1a-VnqMgxY8P;*l3P zQJDS9(#T0A&QF^-D1u7oNd~_KndK9HWtc%E%0SrmXXYA;LG|!OMo3ve*(Ba|(koYH zVW#LMj2c+W4Fko^A5%YG&hG5sf9)8tG_fsb`R{HZzWz(v3MVjV7uB)f>v?5OhbPtimcFVbqp= z{(P)<5d4T1++u#QjUwksDmFs(bqu!}$j!=CGCC6rL>2-Ktf9#$-ButAFyk(7fj;ccsQT`u1d}36Hp->yuNqRaRe|2xlo`0Il`BF4DYlF0CQG z$CK?E#!pV)qt+_h+tmJ#UC{S1!`iNKEWL!yG#~6b{x$S!mUCK7yA(h;6pN2zZiYkD zWg&-3Z$rnw9;Zf?#Ffu#Ql_WgXmrn88IRwcVE)CdPBVDXH9YCSw#DZP3db`TPmlx+ zs?ec=vf0ciY#3w{{1}WyvP0mD!_fmA-K3pY$2x72k(oJ`$4kqppGJ3fU@s5Nuaz?u zC7=;?Y)Rei=~P5y)9o2%*>$5|shaM1-&2%xSsA0?n@BKNAtc3e^PT3hb$~OQz_2TD zPbY@o^54~JA(|!b%O(Onh?3+(bif2h2i(|KSN}Vandu;mG-xws5)FptH`^dbqDao< z*B;{HrqV^iyQ%fSE=-RV2KCp!r8MrgAlTD>`#c z0y1Y_o5_%MO-bEj3G0$s`vq{MZh~g!4e;xTDJ3$HhmF!Kl!1qfEY4#p<8qH}q{d{= z|Dg#*)-4G|=n(f}4kj5+Jm7lJh0E~b498PQ(rjGat*a8l3+n69#s2_<2tRZ#pyKXz z8uE8x^%IOG#mA{(c3AXq_}Xz--w9>64tXo09d;B-ZD3{;@!%Birl(30HI@WNn+4G^f)ESzglB6Lq1KwOwm}Ws z7b<15Y$s%@<~d4>t~s=^fHbAW63oDO6hyO*~Oz(TjoDHRQUNPr;^9C`Fnd?_Btr+j>DrpY1>^z!dkOJ8~%UZb4MEf;Zh zd76%BT_=Z4S9A)0xUy|n_=B}2e@PN1TasL8>FX2@no%%p!QRtX`^7k=@Dl0{wMa1Fjg53tn(Psxf#@n@gnJP~n7pS_+5%;Tz46^g|SUDPV~% ziLv;a8cu%a8v3|*L@ZzF@(Bf@Tw&OzPx!;Y(0EW z5ug1$#5x9~PuEw>147R3h=vihEtCc6m+*>);|Y9R)aC#9z1r5>voc_TKu7t+pwr{h z-EZIhto!-wJ*m&sMZ#}KTdYB#n1DXy*s_w7lf(6GZxD@jx|l0V+r}>QPZCufBf}{B zqAT&xpL$z!^Fb^fpghc}sE9b~NF<(IOa9Kl@H2oMG}9p(8ZdVJ-k+7lNfNiiyLche zxInAjwGKMK4hS)#ElEyXtY}Ku+8QXq!${&akIoVD7nbKB`wo`2OO`W2jAlzj4#Y4t zcT%SV!Eyp|8Uf^Kx)yN$M?qZ+4-awzS`v+g`Cd7x^AdBKLA%!tHCj* z`{2|+$|>kv8Y(JXcv*S{>g~fCPWNlva$+(CT%wU8q4FJa6i}$-%hEfex-!4xcaVeW zJnw$Y9#6(&s)p42E&J**FTvly;hD)zbE#c>s`Ba)o$KI>;3vF;G;Qp1-I(O?$`4iF zSh-+?D2}=O#sZ{+j??kJPeHWp70+#==1cl2NxvrSMZ;K;iJBK`cKtv?r-MA%QD^(V zrGR}&>ChzRB!1p1U^z;pInNGaSjB+G89Dljmua^pDzp`v9i&SFyhOD|+Zt0w>>I=x zN7>(X?ETvHn9H1@PD0d)Fl0K_Hw?w{ht0rX4MLiRFhC;~=pVD3NINiJ3`E8XXY zF(R(4^k(3g+nnIzQMVc?ple$<#!dl@wcUF4UxQcNd^QZh;OOn8`%d0ihLp&e_BHF> zAWbyzU){n8NRURs7FKoerTFeUdO%zVNK;o}ejERt)Z;W3-%$bu+zo^~Pd`P&N@g z;g3dZwE!ol%iW0%#1$`8ESyR<7pRD+l_}kR@OgfYCO?iN{jZ-2@Z{I*2~)93)SGn2 zcb!Tv%E8Q8(OuJ0a^+k^nlCf!!ahw_wzixEpl^w%gP813CaCgls>oV-x+Td2lAgsx zp=+Gu09_3zhAW)d@5kmiege*3?>8WZfCG4m0i{r0})+HjeVM{Z7%a0_l} zk-~ZOm2dkdG1-_lzZ|$q5mf@D<|<7rE8Pc8 zSyrJB!ncE?lZ1DF5;2&~9r*^e!2k3EL6tzuBA!fJR^i^SV}{TJyQ`U6TN17!Bpe+d z6=&_&lUNP53?qT1iA8w$HzfN_O3+sZrj$?7bP$ZM%;Mw`=Xth#z8jj@m>6amNSWU$ zW^@_vg)VkejT1j9@LUDZ$X33r`VEC*Na3;=Was7i0~bS!LS?H=W=6(z5XL@$2&n-~ z^0!`HELB!b<;KuYNq9V)r_puh4TsO&$L*o+anANLcx(1NX`}DHOxd@*k8sm;{#2cq z7`oK|Ap24^*eIB_U+Mvo|Twb zeJ8H_ZgYdhIkJ!zrQf>Adh;W`NvTD=v;7nr5DZA93YO6crX-B(yB3_)x73b6InL{2 z1b|_sSW8q(s3WQ8&!aq|!RyXF2)6y`Z~0d%qR}($)f$EBa-i&P_6D<2^~!mrSp_=m z(67uF{j3T}oG2Z8`zdlI)3#*alFh@9FIHqGY0mbmm%<`H^z-Gh!43!5{;Db~$EW=4 zIy28to`T$`1hy7#NzVGn0Bf-*66;AJIW-3h+T%Y!PO@#(%~1J4NO5etWYWX0t;i$> zY78`2JJ{J`qKp26=PBgs_TK-#iP$dQt7-k9p$c+zr6<1jrLtUL;SB(#J1e>m>#j*M zEK#(=Cf<$|@c%uKM_`|XW{|T_q+*iZ{Hv@Jk+5ro zYw|(0f%PX`wVMi$dNrZ>FOz_wU)W~`2#wS>?Q}Hvv9GPKaGl#`hRVCJsEzN@sH=@? zM;%-vPDk2KhH4hLu|MKHH;(XWSIStJuaf5V7$;ty^iNkvkBI1`Ae{H=vG_b*yLvBv+}(?}(&1j?NU1=s z37p0IH5kezVI}^3Oi~jpv;4?irNI2G&Y}`?NS(0ydav4Dc1At>d5GX zIq?v4TQG;m8=HxuVHVTr*iiq{5*G=pXmI)zzEJDa@fVb$2 z+_J{UAF^94X_-^jwMiO9x69w(FPHp$b6|MJ(#o6(yj69b(_%ppJu>jEg|Ru^*tHSa zzigi-@}2fE33Am@pGJ<|b8>q^Sj~s&3xm@$gBXqS-TQ8k(EtRi8`N#CA)r*3O@2I(DnLU^ITvZlV`olFzX(E=CukGU;Z z23e?_Yh^Am-=`~Hzw8)pR+x&#VdNl;`ddk&Z5|=?Yq-37@z+nH+8{&QkS|H6a4$uD zw}oujey9v~bVBdlR98*`83r~)RY!`XdPviddC+_E^gZ%9Vk@J~-0>TKpZ zsm0}w7uM(47}fh+Okpl5n!{}exQqAt-^$e!sRGDa^8+pSzWF0o-v(P^Uz6SNiF|(y zm0e2R%;xCh6$hyn%P`P2D9C+=?3xvGmF^s22^;92+)=K{+4QxUAsfS!{)+}O*s`jF zd=&BB@m)peAbl(hY1QOopGnSo1;cMM`)J0E71+o9t977E1} z@y?~m<|yN$HLCxnU4wq;TPWlijHlHwxJdQZcm{9aTK%&5nGq2IV2+z}ydLKs8}{FC zthqjt%9S$$U$nt)<^Dyf%sHtmYVZ_@ihae(sJExIh~XToA5(V(?9aThG47uIVGEty zi>`fBNT&FUf9vch0n4~mDqV@f;AAqBL5i7f&lOnWn@+0PyRUfGGokyQI>Qy5r6{iO?XgB3KK@eAS&5p)$$2OnAlnv(SlTV`B??TuXLIyalZ&O zEmnsqf7vh>6*N!GsMALvX5Y_UT(KXKrR`*g86lp`bL&;-0N;G0zK}O{=3@0$(7r@H zu~e0Q$Pv5<+%<=n6ekAwcsi!@2MOwgTM7AqchbNKw6dw9t76SkE=7Uk_pJoS7(P+5 zv=HNq85;x%FWrgoA8=;zmKjHp#WWeKhxipT$(PJnyYi7iSP{{0k&hAVqOm`Lv9g`j z6hEY!XDp2T8~X&NTiMJWNCbtmnI~tXgE8q!fW~b(%<-v+77SBCSo_=79k3YB3g_YJX3Gq_B-KX45M4GnMK{HPP?Q?}biW9qsyiv`LaBM$_REjbAwnxk{UAIPH%uLM~TgMj9pvXatz=YR$G zEReW_LVb#+58U`e7o==*e%IBW0wE{h1NZ*pYP2O@Hc-U?cl)$WTmE)jwdD*VBP-;U z#Rq=p0JcOJFuD5Do@9Xssbrb;+tq6p`&p}aj&w0i80FbZiqD@@m@d_3c@cOUufDvj)+SBUWZtE)^0P zkZ^hQ@tbuwX;`)e&e7(x9)f#60cF6(JsJ@&D?58VU0kZ!@~{6sL5Iyrs@2l$hR*ZH zx4`DrKQ$z*g9^M474d35+(c-+j@|Lu`e5jBP!Q%Ni4pDEu?8ggY+FAkmljTbv~TG7 z&O6dU=z(N}MxotG?n)ideQ?eD~R}m`o|>C`>f6TylYVq%cRPn2B_`o&mT(U7Aav~ zXa9S`p4H9cbu_*|TN{kk(bir9+{2-xk`fSY=s|ZzO)klO4l2%u>spP^E<@Ny;`ZGq zak|}h`w~^p&A|7~w#)T&5zl^%HJX+G8S8<{A~xH)RJr=!28+p;`;8i&xFLH}Q&XUb zJQPRT<8f)cbc*fE5D;`87ac7Kz36}CpW4exkOu0Q4Gj&zzc@stv}PZ-19>BU7fUB6 zCudSSE33nU>7q5I_u&D<7fM?6DQg|>8vy$|OQwgPn_IJHF^)utUr319tQ_M;^>|Cp z%*O|sAWfoU`0UZYcyMq4@KHlP;40+`;)kpm{L`gdY+^_m2}Tp`b z*ZM|`7$S!Ua~e?9+z5nw&wbp6?r3XUwQSoBs6>E!0eCjFYp>eNR8g0Z!L-R$7AKzU zwr1UJk<{n$vSoj@Z6;PKn_8{`X4!Oj5C)@>TbO-c5HX1By^ah;|$h z$%DwWua&U-;-^-C?WLPdk5CWx>mC&g@!`UhA{rV`;gBpH{Wm!FVe)!GeT3j)K%+*= z282E^lJz<}w4NH~{?^oUMf0{R0t9rYbt@!&TXpvPVqVO9? z#QE6T+G3`JMT99RDl+~5b6fe;2uudq16w#to}cLlYf1>9T*z@-5yZ8KW^4AoKl2gp ziHHjg$Hc@0Rvu_9e*!WR)a=|`TwH8y1w1MLW9clT+G-lM8z?Qb6n87`!QHh;aCa!~ z?(XjHP$*KM!ChOtxVsg1cm2-&K41P4vU1isnK?7FuYIj^Ehwm8rV0!h?6@8(5II>{ zn>3Z#eBifkyI2b#j`aO)K|4|ZgYoj@bj5;uYJk4zo@$p9EH3?r%!!3G}y-> z&i|(JY&Y{`+GIwLHM$n0C=ur3Cy+O(Z-0JEpMQqIheN^1UWEBQ3o6s3rKBfRVtf$ zKSp8E)G&96{hk(n2>mYU9~;+yjO>ovlAIg#~00avXjZx!x><c*JE zfHmxY24AqWxy}R4<0}>LW_uW4bhWz!-~oJR=g>q$F2tbk2Fu^l$feOS$k$d5fJJOr zcz7N7=pQkzW;V?dD&&#sy*Oifc18vWROVuU8e+)J%iG$L$(}5bm673~$8~gzkBoVao2K)KehfBQi2iRi?$5~_0}ZD^EFA$i@fzai z35A!gu7}i`wmWNRY6<~e^;#5Okrb9j`FNc}P14=F^>O$X_ShF)mYB_-E!|wujDK8iWcu@Og46KYgG@5+Rpdm`p4U85p9x&71}>a zJlrgpmMrh|my1^p z+1(?{Rpd+88fI(A48$JfDt7-^t)Si#)=c;g9M^N%>!j7K^Gn=uO)h%|V*a?VjKwL^ zC=|-+{6|%thV$-u9!55WPG@VY`7dKvQtZkIr)za}b9VV{KBo1$3xX_e_cJYemQAW< z?Z2Eyf345H>)2Ilt%?AhNWtJZ=>3fg|48i zZ;3mIc`BP(z{x41*V;r3e0$2o&cZU9D ze`Lk@p_N7kb?pcfF2^_n5}NDfV$G%6RpJ-;51oOT`NjMOE3fXaeZKCt0_%43g||{0 z;hDb%4qBLD5#g#kC?%OK#1Dj?-d;;f4Fn(W-)`D8^!eNUXh?=Iu~dUgkw}e~nRN36 z<0HDA4sVJ@YkE<^hVP7N!0R5Bt+@R5vF_LhCMDM_BM(u54>l=2~4!8;!DD z5se+Y&nw*rX=3HRzxs6^BIpbMsh{;PtJ^+AF(IJIl{HPW3)OeHyov9S=RZ9ExI4+m zC3*~I^4oej^SR!CkWs?@(CNLs8Kc_DX<+N#s?$GU=meIZf~GS8sihIk>TWX>%aXTY z1EMdqZDq>2$ky{1e`-`QyBk)3Lvm9JHlrBFY)e?f8Wx$iSE1bJySJn6XnGMcSkTAj zHdn`Ci{fFLq}F{t%5^OZ$*BEM8AOyb!u(42{^&sSNSRr6K6xJFWyDu;U2jf$)D60G zDp(onW&CvV@vR6YvsE^p+682$xg~@QciXaqI?1ulz2BAcIqZcdomj9&4Rszu-CLNy zv|2fYul1Ib0xVHwk5}-DwaT$zTz=4e+KNkIO{QEGD_a9m=|Q~j0&V@z^6jr?Bh`n| z+VT4x=`bkYE&CNL;-_(f0Kjd<6lW)eKzf18-iW4n$6v| z3e8`{R_dOFo2DK0%q={At=fIqA(2OCm}dWHxbW9ReW-^qkwMW@PUF|yb(4QUEKbpf z#%j$v@bZn%S1T8n{p$y|ye+pS2E*m(*~f)*&CZ1QO^X%Rw;P3hAuqZP&!=bkw+#kt z)F$W3JkTe>$657O^c!0DIyZd#uAYu{6o+{|GtbKKih+uCKU zx&8{T@}mE@^@05RO6vQx#LJhqMj^-hg+Kv)TKA zVoBj;^TwX~LN|fY9k@HNVc^#y^wh7c$XGD0g(iN|#hKc5Es-=ykDl3@2#zKmbTH91ndI;nEQcwzZhqrdvI1Ay2eQ!G&SBQ&Iou^;R$&*71)HIL{g3#}TcO#b#?~*_4wSXf7e4pb zNugJ2g?TF+UIwG*vc3HLf6r4ZKCW)Su4NONWzREwfYt0nqJ76UN}t%4@mKHl?TKV+ zCW=fe$(o54FAcY8_T6JG`SDt9LZ?@Il$WxE9C%)&M zI`HZtm#%v-gJ)Q-3mHu$joW=`Hy>x`owei7x{KE@d-=V}$EcPK5Ne~_r!_;N#S-Ny z5)Fcu1@#ip(7AkGkMZ!g({%#;FFaq|Iwvh=w)Tg*lPm@6N*ggHB_!9*!-QT(O4mxX zzBi~_#iEoq45bWN>wPjOa5S#rxzS}4thbhFz-TBm>1|vF1==fM29s-)FGs{09beMS zWZ1ze6sM$Vm8+|P^f6b;Cr?S3B>hXO#E1r3Wx_?+qHT)yS^_PvK#B2i%k?Kajs1>uXy52|}&u3GKV8)N{F?4Bgcv zJ1w>7?G~?C43P)VV$ja#59kYl_o5N62DLVxcvY|r6k=>|e1)VjicJ|cJ_i-1(~mN$ zr4FUU@j`i1f;e6Tvi2{P*|o5P#2WDYZZfZmb9}$)kdAF8{;T=9e52=X<5NiBHck0F z7F{YCcI@=Wu3@I6m*#Xoet9owg)=_jl>2?v4;ebs$Bz;Fmm@2o^3G2S%uf1HE~Zfi zU9De#*&j0RI=7a`yRLV=?>c-=jS7@KZ;O8ndQ1{O1%{)r7S`cle>d=w5m+H81{Q4r zu#ys)R_;>(k$oEeWzml9i$wV}WK2PFWH*S733X7>`9n=gxdwZ2!)^?LM#=U<45^r^ zIJS9!hmDz~43E(A{EiR%z;Qoo=M_f2e~PqJgkMvPbe+Eot8( z-p{{oPCD~RLa_I8YUoEBmA9AGGs{_)6+R)i5%5H4iCv9z6ZKmv<(C-JM~qq2N34WvwLW5-Zk^V7-?iRTuxp zsbDJohl}?{=P%0zXHJ?{HGI5ut&(~;BuhG*f&8O>WBw#<&$#IWmoN!xHtDPAXu$3g zY1fn;n6J_(Go$ZooQ2_gJ+AM!j&ibrO&wb&W7v^;jEj+G;W#5w{J)S+7^arYl;O?_yrmUb@Be=v4)_#EHKA;8M(rsn$g*dUk%^PT@b$tx z&+B!KVXNz|Z(!Ydzw?ZcM~QLQT{ccH&w$taVW^|65hXo}J;Hjq!gWF$9nE42Gzew{ z)y8z*Z--7sbvc(W>=!|T_p~!*(LC^rW5~(21b*LlR!hijBb0z52eAs#D0@7sw)tdE zs?qu>$0@)6u2C-AVwX|I;x0^bW*}pj59&ZmocdG^&pCoO*LGp?Cmk;9=f+}=As1j+ zWmj3HNQOMbjpEG|!*v+i!)5Zm*m~d1lvFJ=s?nq#v-3G!iWBxh{!Z3hoc6+9wFACL z@V@l)k_Q_asiI7o{Rr1>?5+`%DXfN~v!V^N3CF3LP2*aEL05Gx(oWUkel>L?Q>MWS zJWN2UO*8eG#Q^NOBsXyJgZr}+;33G+hxp7BReayouOs3-l#z{))gA=2(JOXp&YfNT z17wBCd)hr>?@5m#dF~h|Z6h@gnJqSMWu3OxKyO#)_Htm4b|QEOYQ>SVJ%6~T$JFN8 za|@gj#FD+Z4c_tGv8Q#5F4u6YXxG_+d&FTS$Lo^B zc`LCRRr+ypbhpLREI}qYw8fv_qLqi-kAZ;=ZoHn(Lp{Sp;z|n?Xv|UQ(TV33SN)#; z$!^URczmcyqnRsl_(+m$)w-567zR7OInwl%55f`1upmk`+^KWa4+=mCG`1z6t1rAh zFMddDXX3J1Voop+?=xbtVdo}89R$B4GyFI<;Yb)fYPl#+teI3fB@_XQoH9&-5M0LX zF#8oPE@Ip>jj630EIE~6z~ZO`&L$ijm?_7r$fY#>x)DsnGbo|m3u1F2;zAZ1cH+%V zGhUq49(8?jt2p%twB~a}w}eKzpkj8@Xurj*D)Qzu@czxbaulRS{oCmHWFr60qL^Pn z+;Vrx=jZmzDRF-6CRoOJd~~3u-P4lPX40Ee;`&9*=*9P^s9l}0gZDK86bWO!#V+ve zPpZ0vGKI2UM&?e=JIy>>gN$5vqEdA3;(vz!Jm4GUI$R!o*6tePVsi|Bt#&zE)1KoV zp@A~$ao-8|!wAzN!Lh1HlQqB&V;fR8*dRw_Nm)DSihvMmwPJM@xH~5xP1&?ZH~y%s zb26G1t8&U?xaKjW%)L40v#p6!<=I8rVrz9UiKHJY+2*4_6E)2P+-4PVp=EG;5%47v zW;&BbeB%9Xs-H6F4C(l!)9AELdUFa?c^!^vQpa=hzP(;fHoaQwLM zhJa3P zq#$Kx3~qle0;nlQox+eyUhxPmK>o+;WvEOVYMd>gUkGgKy4Y`#Vamz!9uR}qnN0e4 zXKl*;8xsIzSI{9=VPF~rXu}C}aRjELt{p3dEP5*aQp~$Ou$;--9u-79OH;^yLd^NQ ze9|uAu+gvNA~BvOykcN>Nr0FF(6#b`H&r;JnogN=r20oKn;SvOLe=uc>Lc${`T0Cs zx43bQCXFa;$+3{dS!Hx{o07?~BF2Z)H6n~$3IQKW5eEq?tdW#C-r5slk3+438-sgE z|F^T3(XI~bfm`J=m+Ru5ylT*-+iI!ci)H384>`GIQjXtojpXKxMpRWW0m0+1}5>w#mC2W8Gt_fWJJO2XEV)M;n1{xIW;;zw0XGwrnH({}G^thQNpss;ZO z^#D&Od*uBp-LrC)7xOU?80T5>(V zpx(PZ{vzPicyaA+?i`prgo$gFY1zu~vgcmOcethfI*=POZ0lVr&L=@Hj~}N28PDbA z(jF43wb#ffVKQi+vS^6Q5p1#_zMok*zaCjxl+pOq*A1xH-tPIn2nexpDKU1lA_rMk zb2(nAvoYd;$M*)kwUF#s7&xSja$vq?66k_ya;9no@^GNPtXMeT6q&8V#K zI_SA-vhE*Tku}#%iVrP;k;PcR$lbZ^{YTNWXsx`|(#WHuXymzloLhs=wgDKNlG#6e zkE|(Uk0V>wW6O#xZ&+gZw<@2~8;7(mz|W;&i`||ZXUvto*m5-swsmKj)mD(V ziESl%I80o&+~{S4%bq5BxpPU7bMp(+3CB(-f%VcTR`+5n?EOEkj)K+G zb_YNF`d05JOfjGRytYIaYRE4BNzmCE2kUdw+a`)$y9-a`mU=(vcY=XPz6XSMpeDgM z&4NlwlMs)Lgw!efulOR&Fzcmr4knpKtQRZ$q03=r%1{a;QkbGs+{t3vlvfSL4xx49 z;zvU3!VCkeaL;i^TN!I#x6XgOg&T`-)f33Ralx4R^nwflv4{@paOAccL?a*#+pa`|F_?n2{< zryt?hwCY+g<#&lX9a^l;=X;+r&7bqup*}ULbkvTb!oV>M%+$47@Yzz1Pd4t4PK@h4 zHGh&d^*?@3W`)bNlM#P%V_t0A>gS4XbSrd*{$MZ>0fOA#j;FgE0r!8480KfoEjJ4_ zTRNpwc>-=u!`r=iWf!4VwsvJ%D9_%vr(TE8gujmdX+U(aSwUY@!iJm%9W|2_7vy}$ zv9Y6h%OF_j8j!C|C2iCaXUx}_!aAxfvjCA9t_@IaTkUlf^Xx8^#mh01%W{s(D(IO4 zQ=U*rE7M>W(o9Bf%F;0C4ZH`QK-K~n8mN+=_E?PNg(0-kkf2V6O%(f5Rcg5I<(bnl z&>~bMzunpPrx3`3BEQXkzA@O_9js0u8AnJ!kL9;9iXvm8kp(=33f)iqiFEq+ch4Y8 zuiTD^0JIEr%6;b;ozc0G=U4x{38sIzRUCWTthpMcq3ZY&rF2JH9WiLt zG<&=8B;O%_)2e3gAzhNz)uQj8Kn1m|B%&=`{UH_zpf^VA`YeC& zf`ln3)*Dapt854udLzji|6FKjJBL{kHfSS3BiWFJ8&BX`+Lg5m66_lf4RP7Ra<1Ge zhVaCMnOD-S^Aov^l>o>}JK%Q$p50H;0+Kq4!5!Y*x$D$uQ3sO+3q}hlDqb1Pm*ec_ z*XRDK^Ts|J*@=KHTbbw0lkxy&EU-JplWnbcgghhru>Qr+hz(yVU!%Mg?YM5Ikxn=E z$}UL&uj6H?xxr(kJOAd=?e+0<=)t0;ld*j8cer6wghv@BxAkVRm=v&?^DtTtS_`L> z8Da^WZ5ud_l~hx)I;F^ro{0G7^({ZAvMH(ILIBE`$W?Cg?W4G?ngm=Xgr~M3M@Ibp zI25jvO7EoKkxFmVGA(!XR~(h@84JkzK2>zZVn90MFEbF8Vpqc6>tsNu9EkQDN8d}s z&jaQNPU&ff4Lw5`<>pRHpHwR0YcsR#{QGTtpFKXm7Jkol-_(<36#qvRZ|t-oLkgHj zA_{_ilwK1Js#Q zgsUuwA`@lcD>Q+Jv#ijhVb6-?jss1ich_{-ae=Yug(*^Xc<1h8b;1{BBh}s$Dnj2KBwX6BT$jJB*+% zm*)}q^@~Baa09>Vi5Ft8d7ZKG5rfQJVj==Qm~$ zDNWMS&#KAhX+7XreO=jwMdm+q``&Di`%ELixg? z9jSC2(al+7GDQW&+L3~ekT_qwJd9xn2mTU_=lT1!@n1Dm!I<0g`%9A_YCMxBjwv@g zDZT#lA78sZb^f=YNZI9FM1g>tXgMVO0p;vVc11W2PQ{kv<%<8?*VKMlO@b`gvO@6` zB}_Hv$g+_;AH&74-WZkyWhzH5giot>-X1QSQ^%sg5-n-}&ZaUQsuDTUiTi-Tvv|%fyl8%96(PJqabhNjV(xe>EDt5A*U3aLn{a zg&7;~GdJHV9Dm(>@hcZDhLEI%6Vf(}Tq{n#rYh)nDo6K-mi zg~GqG;;SLkj}gb9TaSy#=4w@6CUX7=o~9iIWs zU+`8Ov`E~{RJv&tg6JysizOv;4OO#q+$|LM5#wV*X?eoe2Oru|*8XN?Iyuqt8a`B2 zHa@H$C2`&=xL2<^kHk%N$pM2V!U+4EvJt{n^GQGXF6gz1;0$rtGBS@aRc&;zVfkzA z?_7R3lR6ujNYS^9-Vl=4d$EU2#9fEy+jKd`H#x5`?Ai7+$IKinU!J|5w*&PozclD? zATNUAXw}ZBs$KDplEHC(HA!+J35N(}p>@cXvc3vu1y@fbqxs?#VeG?z23@+K`WINvXI)`yTa>pxXQ&9t-Ucg| zIZ-Lr)_S3CQ?oya6jiGc>u4o&f&5#^-!rRm4@rOBJ0*6-xh8AYX&)CIFUoz_*SXhr zG9Q+Hz=`D6VES+y>1^NP|K|TP!o`QrV~6@gmh5%X#^mS&um(3`x%@C`zr~)y)?dzV z4W5#54vA>zkV;eVffr_|MjJ~UDng@kvx`^f+$6#LVN851(wceOY91h}+2{xHl-0EF zA^5f6nGw9ti?n!q#gY{!?X58$u#4%zL@Q1Sc6tL0Gg^%ze~xO%B|9cB!rvylp68g} z;O8t8)sFQU2b(9xIO8(zT6n20Fe|QIEUW|z!P&4IR^`dYnDiJZmQ8XxDKbC z03?(#Uc(&9smXjZy#R?c&^DK6t!k2CFR%MTBi*8Gi4FHBd+oX;`{MSob)fcFI3PE} zm*jppmRxsQ544U+D=DK@QH8_;pe2&U=*<{?;RX`zkks2Ok>d8HJF(0bSAZ$=uP6H4lw8n8lNW$B=JqVc)|4h>3yWtCC9t zN!T3kFsnOJnB=+z1E8`Jg#mHz0fdob(#p9rp!*Xon7}ay2of&m!vEA!v)hKafB}jC zBTn38`F8&@N}AT(+#G;tx%U7>#W%h{y#g>s5u_~v#C0^M+N$&3N?Ycr>7X);FU`o!Mf+rwia20QFu_WJWKfhOZs4DrLDq+QD^^J6j# zRWB7Ez4$hF+}V>T!n-^BxpZect+`z~6k|m=k#AbqI6(|uJbzkHjiy~w%X*v%!&%}6 zWAX<9v7qx9*UO~tJW|l_cB*eupa`0fW~^ZgEp@^CCb0E6$YG3Vpam<53jwxH;4yf; z)f6!0-}$mNN9tv)E=ayE^vWP44)4r?w;J44vr4R|OM6{9e^8nK_?1cE#y7{Jv-gnt zaqi~hP1aT05DFD!+J$*3I3id6sp{>f>vdmeZO1D)4-qgczb>^Pn!gP*y~qrs2fG7g zWESdlSY#jp8+QcFaP1$0w%39=6L1W#EPJN7c?m)UZo)z}97u^xWca~*XeO&VE~S>B z-}f!1z7b3cx9&hLUFHov10noO(Z?}Y8HBr)U<+jJ_~*;Qh^mEB0w-l=HOf|EiA|Z5 z791$PRM+R#?+T}gUqmJMjdvDf@kd(A&SMY4qs}BPCxFk`E_1Hmr7HWHaQ)XAkj+SR z`S5&uvdm=ADO=<{njQgx%ma>%EB>>7Wm}DDH9&tSiZI}qqAU&yfzYns*>BkBJ{iRT z;y1g+TFU%!dMI3kzAY=@8q4M*LIV*+nUCcJ9#w{DmC3ORhUYe1?G?-%gA;Zl_Eoo$ zbQ0|jYw+W*){fmu2)CkX8p=`I%CYe!a%Y%=|=yZ8Nx=zH11&4u=x)RN+ze*w^bd`?$X$-fg!~2XbO;Ye_$6V-b z$G)njoMUoZ>XpHMMT>CzxhY2a=ZUXJ@X;N4!QB3q)VTR$Rv(2?x8_)AN3Y}l=p z?JdcFHO19B`gOiL=ZvM_xexZ>4@T_Qc){xky=vCsi(8^*e-DrC^_Q_^$uY*LSsTL4 zqNm2_rqer#q0q@lhKOcc??~UnaXWSY30FA(QR%Rqq~@ExNv>~T)JcF^6}VeT9^Xr* zh%BVZAHTZ`+~V&4HePGflY3!Rdgbd6xD1PxBO`cE#ya5G&Ago>L(64~2lLIyXcNFtk%NS3vA!m5ao0bW z5DrKui6a<(IoUPPVoYxXgpYv0trjekR79++49UFPfAUMB$i5tU9QFVtGTd=b@__BT z(H43`#Ym1OCog}x-X(+(1km~a`7MHW#=<(Qj6a`b&r<@7E%0@zqI_R2j&`WO_6x5% z^V&%EvRfIpEJ;Y|iBIV-o-p?2)@RBQI%n7$EWN{*%LGGjg+|m-ddA4@z3$r9UIMxJ zt4q~`nS(^XWZ7mAhO-Ahe3e4K?=yIwXZlh}bulvj7Tv|h&(DI(pw;;OX7txHKF9Zz z*1&+6#dB-HnJjjkD9f)Yq+5fm(+=?Uf4DLgW6TFXYJIYibI%1PiF)NMmYAfOC}ro8 zxfMDzDQKN6l_ho`?VdJsNBl$ zzuWabz{dLTPZR*|zU0JD;v+yylvB&}!Sle|J+aVbVtmGVbj`~0$?fD1$-A@lx5lOp zTNjt>-Ip)(u5zl^H3MIsfa|}@b)!xne+SwcLEk)HtOI_hp67qy0Xy8T=b9V@zJFn6 z2GjT$=wTLmyAtw0-cK|t3xR{%=RJMyeg^Dm#2x^^OYGxNjeHiCUZY3@K=#a^->&>$ z$Ng{3{daj8(MbT6r6Cu;&;9vYhc{s5YeLz@vcIndTRS-=MF>7E0#DpbuSWj`ZYLu& zNPEjvN=r&gz5pK!)oE(2^iFnm92@BG2kr~c%k8(^LBi60z- zy+}{Q1dO{C9D=fq@LY71WQD2+V#%gt30X98>|5w7rg+HBpS8LXpd{uG$jlN5Zk>bb z`8d#z0hfI&q~LymBGtd#!zpuc3q1-HBvVD0Bv*+$pad!Manef;cUkezjz$y%sDQve zh8^aJT=_;qjI1B7$;PbUpt8vZ<(n-BGwe3?nFNWb%g-{?EK}txkr1k(qO>Ko!i>mv zt@;`KCAb%nU9l`Jdd)Pe8Q)IFiYhf8R^3FX*=d zcw!sz$WT9y3C!EF<9EG1b@|_pWad9kgvZEsW%9C#`&|B|?s~nc^4%g>AFKt|dt=@? zQ;oLnZ2Q9849b8~8m;=ReK>RzmP{BM~B6gP_YlmsF7n~}B+PZry$5q1UQhhbnLo8c5nCViTCcZBv*tXB=e;g{`H~< zMPYQTJ5{S14)c>DH1MeV9=CppgtD2@fw&tX%}R0b9qM!X+hg0?asDfV4`qG)QTv>Y z)K=Utc2$G*WddWIXwBS$)rOl6S8atfL`Ph7VTrO&{f%C8@VdBl&`{MpYZvV@pJk6l zBe2Zu0e-&AuUc#8kdsQ=Dr`q_6YsB6w3gE474=VzTtY7Ao!lf7 z{_4b!^m|&?w?w3SuLv^MgWMXwzQjLY$MfIAIE7Rv*JCi~edwLq*8AKyH6_}#dfr}$ zlY%;VFL@LaU8CF{vE${@0|a%QYv^uTd0N@`7U^R2|&DThnl~&m<-l} z$FG7&0CnU-Je9`TlON_+V6^f)ZP~LE^qWO7%xw8A?FuBSEDnJLiT!iG{qtef>tV@= zY5n&-&$z9Oq^PyV8e34r*8P8Dc`vn~NOnB|eEJ2iT4D_+qX1SE{}v~GTyt8ubT)}{ z5SxAxGuZ?x=E;LIk^dmJCtB0gW3dgtP@_C52rY-#^Z5>2zT@A7H+8>cG2GDaMw0Yk z#B^cWg@$)&NF2&R5+6fYmy-iU)~^= z#q4BsnY5{%l{?%IJ_YD*Ul&Lz>wIX5%M#c zRT!KO4g*^$)5|o-s$!F~O8v0Tz7JMny(;9_X%R)~pQzOE2Nnp+V|!P_??1UDzYaiZ zC^o;vmY`jyp?03#@#yHA=3#0)Yl}{I!h>S)7UQ%JUSra1wbFK4DydePTC^z3y?>Jr zf7!93ZEGcOtrAI-F-PhtC5`?7#I42%fe&`dx^{A&EAOc$rNg;-+%d#+#)I#SKf<00 z8O$_YmXH!ra7C>Yy4x_z0 zJnNUsuXw92ar#^P>lK&@CEJ!*^%Z>98JRzQWK+(J%9){M`&ZkXs}+POO(KnI?aFpq zTSQ)``4{t(iadYE+8YTpb)%gCz*`<38=+zzBOVH!@QcA62&ktyV8HvK?T z766eazms06YiCY3(^^)bdA5*4{yQy%3tg*wc5Hnr)khFD=!p~kfL;0rMczWK&@m_P zXnB%lozgq#5!9@%b^CH5j1yjJD3u+#<2$Rz9@LIifOs*jrbxtNwPi6=l!PiQSb{50 zM>gWyBf86$K0*{J^9RugNO)CEsVRPgxx$_V;^zX(KD(p_ZP!v}Jj~LhqP3s;FeWGJ z!L<&ROO|dbTo*N4EZd%0@FrD5k({Xb!9r+NhXH?VTkM=FMM!0uFNN4B(2&S3??lrP zVBs8L1J;_nS#Ri&5nxD>hAsl-hB;v|e!rRs{DEti>}-sQ3#};CDWy|?jc3uF=J3Hn zLW+oiK}`VZB6Wq*FIB#==lm4fuXPd=b|ach?UZdtayTV$3u!lV-=fkNpV5~>mBJA* z<84J{$VH^*^U0;7wm*RT+jL2p=b~0eX<7~?H2;ZDU1(@8mW9;H`jk|S*jEtLO2Vk? z(XMKA_8fS}ndKSA%nx_-p?>M04^c*8bf(cxiTLGk?`P}zObxfpR>cEx=1g=fCQO#z z4a%BEHN*2+zTKia@yAcElLnub3SL*4LMmhJSM1+bo}$j4TU4y)p1xn@ykj7kPA`Nf zXdS7n6g9FH!sqA7warc6YPFxP)z`v>B{}G-_BD~&u#nSnwo?QPC11wRZBQ0xMjKI+ z{YD4DZo59dp6(RnsMt59PAyC3C?M)?1;ev zMkQNnvEB3)y4>|CU{>9ZQDW4nP3tLmas9cS3$U$wOP?njzPb3=7|sjeeS})VIUX~L z2`fbW;&Yd!lpE-Ft1#wqYuQxit9brEwNgL?KR_LxSW|ZKFLCmp|82hD?Mh844;x=P zfngHuONlqt`qkiAL9LKc6O5sW6XJ^5vm4ozc#AGF*A{b#p@*%=x56GSk|cG!TR1q> zfyAjO!z%2yJ>y?eDkTlIM0>j!U7&;#%OncxeL-1D?wfR_BjpyKt1vb+*ET&Ume`#6 zyRUH2z>gmSiW<^*2Y2i`ec{o1nA!D=HN36GdwJGVOpnt&^o$ungF8-KT`}6$)A6zM zz5UEYCR{>#m|y4h`zuz9B#Xu@IZ|qK8C8C&95VI>40_;y*3pvWK&M=$Lr$$$Y*KX- zsWsa_US@V5?RsvA$82nVx)XRl4R6fjclUXk6U%>F!3hfo5_#L_n;=GE6A2LTd2A6mqOY=4MYnQZS2W zPKP+E69k6gh0&9<9A~5m(v6F=?hf+Q)s?Fj6t#n?6tmb9XNn@~r+%uUcqpNSI5f<_ zeG;}()|Qd8UPv9`-xZq3iog|H-Zg4){VJ~eopb4z##W;UNS_Jb5kVNkN>16#iRYD5 zaovoBWHdNou889w$Q|uAY)TxT0}$9W^!=?_xU8La>IA{v9@JoxBy@J%x5d;LmDQUb z%@sgQRp_X!8E z^tYEj*-GxUaaR<&VvH01q_@+??FG>R{qwbeiLFB|WFl0wr^IfYFZM!o(#$gw3coz< zv#$GS4uYr(!>E`>Oa6)tL7A{1DZCw;4DQE?PJjQc(5B$&==fu~E)z;4tRcfGaYbeq zMJ_C{N6IGuy1dJE%z&W>5SUj%oym(t!MM&Q*3* zGnYBg>4>)t z$lTd)Ub$AJ`79_tkpebw2?>e%ImtMpG7W1Ryw|D5Q!~mBQGL>n+(s=@5SYXeQ(@*+wd;Qcdj;`$Spo-ACVvgku0>j zT0_;nA9m8KoMnqst*?G&o3bgJj?fxYkGf<%-o4j#kXxdS=vP@CT6X?L`+%3K7HOi% zxXn>^-LVA{O)=TxGzR(%EUw* z8Q;x_%<6|UFf}d7GL5m4K~u(x<{*5?PtR;8+B&a;f9Oz5iDk6dl@6sP(JPnGRKeIX#fW=j9Lo&JrQc%GA(Yb^&5_Q4 zYd{eQKz{BquW0ZKT1D}hj;d*i-{l6j&mfy7hK3@RriAvSzaXZA*SGeYx)I#$|GivJ zj~CtAR-4KY`wF%CNA>>t2<8v(?3$S~ecnd_jv~UsIGf&9z{Z048j#VEk?Xc!M9W|B z@msOl94#zp(ueihJ!*i|y#mRw>SJ5po&}Vwgcu*t>upsOgJM%xf%*APU-6H z?~hvjPR}May`V2iBn&Fz*jlL(Poh$$x=bSE)8v2JT$GXYzY7-H3v_$Ezj#ZZf$o#7 z3aH659`vGXp;NMwcA_sTWi`e=1cr+Xu%i5tHRnq(`~0USlWG*fO<~Er$^-zaYs=6& z71IsHp_RJ%2D+ShYBaXwo>%RB_GE(JMAbry;EHW`XpuPku^}IvNVM5D*rl*aq9S-R zT_{YwdIVj`pcqIsWc10OS!9d#J1nxKWXe?g6)V6>kc{)0EIko%?L<~0AJ%tq+NR=R z)?W~0>kw$5#WQ89pFtm4ziKCk-P{$Yl9ffUK$IN6W$Lbzm!-(MrlA%Np;HoJ?BdTP z)_>;uo}#R5g-6bs+vnna9e%LhiS;1tY!OVdA&Sc)DK5g;bP%9w#;!td>CM=nW9Erx z{vpe>F2u&4SH(;luRJ5<3z@WBAo0p4SvnOM;I0VSpi?U89K&p}JN%qYn$-v92$y8iQzOcm#3@=A;nq!?c&No_Cv1WK0b)XA*eW1;7hj^zOx;h890 z(PE1x(f7jsJFCTa{5kG6X4^NFv~N|f;VN&B_Ax@u1KE!WFV1f_%41ur;_f|a@5^@a zia&gn{ca>2QteK`FBo6irUOC{p)(5FBy~M)d4!4G6h3`UX}ec`s&rmW`t~=gdYi3o zl+au}rRib9K^vnbr2TV50JtAj7|k+>Cb`u5B*(ZVhov{`ye$*I52la@YJHWS6i3b7 zQ;!W~JiHoKKfX7I>rH?uYmGq-fG(1#N zMzOD}g)O*bAmy&l_jB!xgAyfVynS_cmpr)E4qGajLgV_GHSlZUK%v#R zwX$YnlwE!-;@^F;mn*9iAZfX%ebO1lf46(*Xrg}Uf(S_6n12K1<3=?xF_uu&Ou$>p zDL*Itdo8j6d|2{XVA;CCDi23>D3x1!)228}iZ%n+32&fSU7`pp(R^#*b#;d6IsU!) zAZ8ztCAS2=?O$A%p8D0DOi}1TqIbLhxiNVUWzFt0Wz@+H6Vaf7SFPLkENt8|)np7dHRjZkv)5$Hg$A7y_yQ{{q!}Nqkmhh;K`=yv7iIrg(PAFsbZETt zfDjIv0^FdGx1%E|WQ|)5uZdx>mfF+UdX2!zHm=$DXa+~W^QXpamtu|X5LQ^Isak&+ zKhvH2>)e|EGs;`m&Nlbu(o``xHh3jrYtOo27h~Pe%V>CejsYX4&Zl$Vqs7!cO_3b! z5jmU2iRm0KXw=b$|I9PfIN2N##O-P+jS-s?oS2j?c!+IF~X%5 zqJ5!tsuviSrv+5I16d2B#E|bWXo@}1lJ~m1>!d3bV}lxV*VVd#&%7P`ZYTZAqTKC4 ztQS!q2*s+w16S?r(x}YCNuM(*>rHvwmT%r=2Y{Id_dY2Rw#AuWUgf&>l8P5elTMyb z(CqO?k;yFFn9aJrfMtS9Y!U0jGqBYu4UWTBoh-SNwMwV|n#{?4czn$$V-yYh$&uMz z^p@T67FP#uI})2*w}&=N|1Fi@S>TZ!zaF`^NRs$Snj$QY5n~&ZZ(A9AQ5RcPlh5?c z0N#h?Lk}B{ENU8zp?HF@s3payR8~>m0-Hdtikj`=sori0qj zUoc6#bZpVP>NBhs3ew#TBQbOcN_P)PcOwkaQqmwT0@7X5Al)6(-5uX~ zzx|W7W-)WlnLT?y`?;?R3F(j8f!cwjUCg_yy2ok;<@{RO;hJyxAG!l9Y&+E&48bTg z1VOT^7f95~x;AA$QezbODYq8$a1&-AXjNG3#>f=2gLgvz^ zptRq#Y5s-ngon})D1APD6&m%O#Q6IpYn9m?Lj(F&X4EZ7Lzjs?)ND}{GXD+N&Z>)4hMK8h z2Abf`DxO#!)X&SAK&Ts{{S|>M*l(W%`}xq3BU5zoUgU%-9y*WmH%d3s&LMG*`ir_c zTi%+l+vV2AUy;7iXq2StTJ-n($9ppaKYrx2WwY6j?8{ps99yk8nhaFfAeQ7d7>qRC3;c{!B?WC8>B}P#) zD<}SqV*I8cbL!d@Cr_VVW?7(HR(NPSH8E4jp# zNglyYSMj!U$@{1;17e6uvfCm3?TT>(snUovld3h+YrXoza28!G;;vKW?j`9i6);wg z3~KlCD{En2#=s6n@;Y)G20RHW6t5&Zth!%&e%c>8p&N!^#SgO4$am`| zd*~jz;%NEEhxKv({N=7<tGVN#=&+{QhiJQ%V;%Aw`z#2<^(8k>7>!9WxLacc0ZV*lAin1h~%@0ZD zy)X?Mh^x@Yy_|tQbGfwG5oLtHwZA*RTG}KBGr`atbYx^^ijN9q`6nNi7-YiAP=xp& zj~TN>d@Q0}!r-|&sFDs^gzLHJ51n~tp+Z>r5tz$4dI@}G_KLp$DE|aiwTV!v?LXom zE^Y<+U)*~))y$-~brMX*)W@qZ*hQzAd=H#+PEWRQ>HV^n@UOb<#A2cZ#hTXn>9c{= z_-`j_V!8ZU-2#2)S18C7cp#-N4UKq)$*Q1YHSjo;izYF#@lmZ-mm9zFfEQ1?8U{r| z2%gH$BF4dUmQw0e$e8uAs|;61nlmp1 zjwpCbCK*CAfcEDr2cJx591khYW5mKQEC{`f1g20NCXxW=uxUxv?}n<@7gXDlX>+ir z)S6QdmJGpOoot9ZEI&~gEzdnP2i(wxSzD0PbvmQKsUT_e4ZGlg#T>c6As0oSwpN?j z)nW`1mdoM#{o^vLkskZ?&C98D35GlLOX`>-G@B;yb#(hriUcK=!cU39vhvyqtDoZf$u2TjT`()pgw3Rz*kVmhp<0+^eyz$|0$m%E zw>#uYJOrS>?^=+AN2Z8B=<;$+(+?E9sgoXgKgH8~L5L7)GG{x@$WT~t!cX(TJO+~$ z+XNS5mrgpb;7uEgm-)zJvxLXhZO~@LOXL$qX<0HO=|-y83DEzrG1=}!fso9v4=U!% zrwIfAadk@khQG;Hl zkTS*V%bZC&E6(5;e94{hE?Fv0&p`XiFltwaP7In1NeZK`El2H4DR;E6AHls*QbkSM zpdi*wculsT^|b*TSsrC!wg$W00q&3BMP}; z3nd92xX}8y1{Jo>xF}SlT&S2b8VEJ~<5#$Nx>&~w-^6Vuicty4k+7tCRt0xTdCj7# zTmtx*q}CXpsPQC07Bl7@VIh|ShL2x`6JMH-0}fX}?W8^T!ovaG?n!gO!9-J`8fi5) z;9w_OHkpc#=wewbn5>=e2IK4E&oYPcBC0;J(c7*mYRM1rVMBEF3Zo(1m_TROr`3-| zEwtwSk}T70dg-ND2>WbF%HRLVjM%k%Y;2ew^y7%VjK8>Ewm((3GRay0k$7sPgG#-- z@^~qA8GRW+YQNTeh*;agz$z=C>c7(PJeP5NXqIRvd>0Md)_6>gC?)Os7ex%+Hsz@& zvOG?^G;F5t%*W!m`}+lnz};(td8?ZUCBH^HzX|rM!8m6TBBkCpGd=FdLOGzqW(uP4 zkf&f_(C))=<2zvCGt}l(mL!WqpnX^1|2!)`?`{i+_j88Yz>hvi=@9e#@70ShvcnOm zfAoC03#THbSvEk<9EsftD{A`DH%k@~=q_&^JN%}%{7C`#9eM*^3fsZfn#A*-b2?3u zydCso#)TB+0A5zJTEM;T!Vf|BgOa9Wzh*h z+8$jD-J~R{!Z0QFKtg>ji53d_)kS`6;mRO(Ui}Bgxcgns650g_p zw8un~WXSkTNZj+NB6S43?8(`(S)ln}sZy2IPk9S*VqVuhoX?8iZ@*ma*}0tDb#0^s z;4U&@nD_h6K2>CwBhcb;VxFX8AE*Ch9zGsrg)C7qPRzb$vLLVdSSNlSTy*uNAz$3} z)Yyk2jdfDk<2a*9D3Lkd;*%50#r@TR6z$l9{_hc6zdG=5)G0^9bE zmiAbZl*Av$WE_9f&hB4c14j4T7P>k#u=Oi6`7|^WfO+O@OG|qkJ60kY2v?#WfSVDo zJf6xI{rF)O2cdFJ=d(z7BzZPo=H;Atiwq%C3gHS(BYPVhaL+QEmkvSkEJnk_9Dx_F z|H;E?-^+d){5I7Z{0#soo~*83&Bx0${IDpIc9?aOeCOTa`x=+3VHM@je8|m%rEYbq z>geI5oob|J%R7?3lSV7OdcHsII-lTGhjZbTQN0wk zw=y`u8b{1raBWZ#RZ28F{_%n78HYLX}iFnV6Qw zUDG6ecpTRRnc!r(EJ{CTZ^K;jbEU8^{vWtBZ*aBU&~UjErQ>hnt!_o46jSw_PJdxE z65tx*i6={x6rRwSkpn9&2qf25 z9*J2ytAR07=(DU`*miclGnMqanUrU-b_WlHCoO{8f`Rm4nPcx!?%XKKBjV%IUdwvG zlYRGB21i^T(vM5Z&m7&@D5f!(UQBIQt7`?I?c8V83kY|7&0H=3d8x=sI6RK4uS&PP z`3XZE^A4ah^Gr@=dSe-sO=DAt7JGb)$eLYfzWF|5YqM8na){du5EGM}y@0};uu~G$ z&EEb{whZ~}^wdr3mP>ZP9oOU-(9v8yD&Fh}AnJGnC80L+?%b&@jls<%M!sj|d2&hG zX#J!d(@@Pxo{dsFZwXE_-GhsrQL3eOBb#XW0Xca%4pkevr7CR|?BOE&v= zb5RQJ$yR0W^T@w;^4rwNJD5c!b7y3Ud)_R^`d#L|z$~{R^fDdyfn}_c>9t3D{ zd)_kPy~RiGbGpBqj^|0OVSc$|G-}^b#(6xw+X=YViLHJ7r6s#WvUiQJ-v;!*E`~Qg zoxUF->uqq%7)i&y$E)V(z7J&p-lU5ZK*(ek)5XdU0!a}le3L>`UTx=a z*|mR41AiW9tNZ3xKSDckEPs)8zB{Go=clw*moqO=vHabpEMukz8j0B%LkU)3(3t(| zo7dJF&iAh=3rz>VE_JvN42VCjV;BFf%S&Q@G(TJoT_$^9`6F0t^GNq+(8Ig3o4-oQ zk?+TB?R}Rnp3G_0*;B&9F?yW&&}4{HDtN(1xgXWPB+{52W}ZBzTaAi80Ug-89YH=3 zyNX8l*8Cz6NckeKa`WP-=NjK{8Qqm>DnnysY$KrRO0s%Wra7<_b^g>S(-&}76lo;n z^}Ip!JfE_XRkOU?ylmvQB@Sb`ngej7WM1?9wnQGA6El7pUzSM^UeS1p_}`|i9`!Pt z%N1>I9|l(3m&R9xt7(A0rSe-u@=8&gJ@?Jd#4K4rmW685x3)zt3r)04&hH zSP9~=(-PIELKtJMw)A&UvDQcCGL{1W-EjZ?FC^m4m6db$GohR)SE!~_XTfNRmXmaP zCw`ZI&qC~9I-d+n_XMDSAuFc|Dtvc(Xhha@7ER?- zlT?fmf%3P*FWKW%&3@qKe641y!V{D;;yN6a?)Udsh1c!tyuFeITsELN0kKfb8eq+* zQGAs{L2DfN_qV;tqIynOO@beh{LznS^4Abrz)%xrLXRIoiDd|qjLBKFxqesvP33KT z@qDoly2w7?tUW*0q;*|dvIW_n&lHOnE#9qCgA%_zuFq?G9HQPG4>1>zMK1u_WHA!< zmdhzkDhb!!xy{Y2vNAVFU6nH%zOP0Y0MdTg;&?H^-K}pu@(B-T1R9`Th(LMY`>2+M z&{A#s+b^E`+MkeIHkG*`5^gCLl>{ z^`>2{zmICEj>|UCj;#{d)292D5>kiguwm?ZsJXX%yk9KZJNm9m676 zPb|)p?twFDZBWX>1?*3>7JTmyzDcOEZAMk*GqtUUO16WGD*DE2aW;=RV*_~n-O>&I zVc&=&a7o(^`AGxYA>3p3Xnt|!EQZ$rRqa0u`KC-L564FUtp46y=CS5yP z>R{Uf+cbt9eVekHZ6!b;uXwZU;p^o_5Qi>PLr!5$U-tS-MD{~t>~qS?dFoCpBYKEf8}F0K`<{u ztQts=(*W5RV-!D&1RRcCsg?>dHFbCPq$R&!?+n=#^fW2mzeh3a;M!c0oa%_6@d+7t zQGCLorA0=>0^!LFD0@8Gm;R{OKy&E@;UTa&6h$S@FiUbPh4sJk&-;`}DSA;3pF_|* z$CfBxmU+#$YcMb!pt-Ob^WF^eV|}ESmiibI7xm$B);nu)zT^t6gA5*`cYl_|e7IA! zOy9xSNYX2eR>pMOcXFLf;KQbSSJl&%(m&&BNxSANF%jQ$exjxPG$pc7rY_+%>T;tJ z&8xezZ|P?Jj!Kor^@0j;?hJ!zsds=*WyL?Z2?PXN&I5I@$tu=KC5D76*{+)wSAZc4 zAN#@4cDb>1sBdCzZQ?J*Gai4vEYPW4>V39Rz54R>k~4o9a5U?`AHn#n)2JWS%8Za> zqs!59>b2@2Hu^A-{g?zuz&HL;y%Q;_D z<=G@q9fWF(Lj8T=ormELm?MJzuYRu8y}A{< zX>q@I>-|`up<>}onK?!DtGn^4n}BL{LDz3bMB>y%;zsVj_Hv`Fop6&5uqr(_Xt$}B z8ZA)+SbIJbFs|GIrVGGiFU}|8lReXVG=k3LJySN%~STJcfbZ}+rb+%?G=kSZ1 zNs%7E7+<@Wfws4#DxclZz+gEJdEW6ZStj7tDIgG0p6RWHp0V#@uIg*8liL-UoA!Ur zAbd#$N$ebiZG_vwo>JB4<7_DI%UXp3MUc_0m)h%%CIlz70Qu;b%ZE0>pMcF-Q zAMNobM>~sFfoK zddZ>^i61%Bnn5{5!0aHCOh7XVcc!mK)Kvx92#^t0n$&!Tigp?X|=;<*5I8V{>vn_hKf>ZsM0!;peaN zC*}(ds=2hZbhINv_{@MN-oaR){~n8gXIH=3%;?zR+H7|7USKeJUU_@7L1#%3Np3L_ zK7r1YP*bJAl2Ug;ss}D)d0(R7Mn#nNdN>XL|1il^M9R}J5)t9|&@u$mdg-;LDMo%sO^0D8v+@$#L z@$8JW0+V2AMcaLkc4_ixEYsVa?U?Xfs+16TPQ+It$xZ}m+3&-GH&j#sR~qM$qqA8O z2EF-yu!8$7tDzm@9@G_|)hSQz)HSJMg;#ro@y7=n3i&P(mV>_v{@(ApdfPLk{GF@( zlms_vZTMiIhmp2r|K?ms8JRm&37;XH#-?`Tm+SJtY}#X-GL8TNu@JflA8*3oNxf1P z=BeLz)~Q!1P#NForqQTw9bcPgXv(o9hdX~x$>csQKN1K$y(CX0`%XJ3Q-kwSH#@81 zOL2inHsbM|Uk%H!otgNO1E+%@LA%f5zkooCRT?GvHoB1*k?LPu-gOm^_>R56TWRpVaI+>2 z0!a4_Ospc#jrEwp^STLd8s81+u z&6cE5Xe0J;m{8Gjp2V2_*e&rG{<7UeVstC;vRx5w0s_G^;K3ad-j{8bJiFb$Oz%_R zEm`F#v>}i<7zBQIVIX9Z^wl0t1OHbhyvDu}BMFKp}H8Yyv@w#V`CV zUT;!grhM*6gJJU;+wuMN+*^`{W!_R}%SNY``&1>HTheKlK1SbzK( zI8Va8NA9s6$~4je^jLz`Sy?b;KsB%-mt|_SjaYcN+K-hzJXgAXFOsnJ(xOqVpGl!G zoziLVJTfnSXo+PjUbHStL6QdZ{`}xZ$naL!anr%`)>h9=>xmEGFxPzn0-RmZvVIm8 zXDI=9MiMtmjG?$NY&qI8w=!+-qgs*;*UROQvYHWkDNXsbI7QG}Ax!}o(^%w5ne-peG&YH8A4K^%IOPPS$Q<93}z^6^2SI_vo# zcx76nFF9|@)`#z?#w+f3L8c5!_7c}<$MPN^%D}HR7W0@QS5ys}*EDVMSY5`4*F&EG zkIdrslLv9wT7aAL_x4MCX~7tRe~%Gh-f>O`i3kj{zfKfGRe~gE)p(R6i_d~XRrZV9 z86JG%h*i(x$n|oh`0p(cq;P9O!0O$vxP+(c4f+}IBRX5dt<$zM=c1D>gkrkPVEkzP zxIb8aJ3KfXPQ2m``m~zOAIu{VSJI+IiofWc&7WCKN*Ir z@<%A(IQYOTc>T}Dl`DgofXEPO^UiUzk%*rz8kaDCU1cRr`mjE`05^YKBhi+`J%cus zC~U$BpXy=m<*W7`5KenJGn2U1qCs-t;tJsmz5ZZ7YSpF<9gO$ANWlW5sUugV{TVgA0^`1q; zz`J*Jm1R9mDwOE#H5$4scplsvZg_r%Z{xq6*JabvK!h_#%()9Rm`1)6qqG6Oa(9-g zZ;P+Ixl@&jCfiQr!amGCMB*OTdsru1Sa7F8Xe)pJ9^39f`PvabUhOcl)iTa&$(;%) zm7AK#`g-M=UNoGC)6;vE7zl0wSDitB){M7LZU>BuV`9%$I1}3xB8H5MjIi^la@gxC z+}c(*bM+pV6SHga*p0@NH~Pw33@w=4WVa-;caP$>uicr?L@#jnqrJVWXR8eXSIGif z1a2H0?f1Ty6~BP}qN`Gnyd9s)8CXZ+z1$5MDY+9xkv_Y`#pPs)t8l#h-{E0{M&Agx zDh`7u1W^C)kVc>(_|qpYOwG^Fr(HPw>BEy1+2}HRK2o@0C0folUP38DZ#7H2%e)WE zn{8{;ChqSy5IOS#baM{Y-xUawjLT3mo{6+yDBeA)mDFH^pab51cJ9|}=jYS!D5#id zmbZgq3tAKi5ccBc(YKnQVQ`8#n-auTaw-~0dNy=lN=_m~XDl+waGP+OeH?0BeFNlK z;5TVV#^m)jcE_&zV^V+>rO4)o{T#v?ed@qyeBUj%{j&Jel3{~_69PxY5u&8HU+LPJAE~VygVYnWr=oKq!mh^k zwpb^(jN9jS`x7KY+;HnIxV&PkCg*+c6V=E3q*_ZQoA-f;B1t8;VJ$UR-kDsMX_mOi z0-bcNPa7Fl+^OT^<3RhE@P#*SrUnS|>w_Jh951aba!1D%U?Fn~);U_%Q5^?uA72aqla1Du$SO_akOyxY!= z@$vD%Bh=VPdMo~qbzgX`$$@?ns|zi7ZHAASwos#_va%8|a#U8TvnDqM?60iy4g)Wa z`OYC84F@d5r~i%LG~F}XmXD)J&@X`RO1s7!DeHEaDb}8!T=_qNor4hM*Q_11q~9qj z%qw#AtLtfhzr1)hM-mk1k3Mba8*vm}gF<|I3BLTn1zCKvWJr)OWl$c1&i&! zDv2pWD&XvM%d&3~a&ea%Ny1+4=n#WRvI2x#Z6?YJ7oGKLy_Y#L5#uy~M5D5@3O`wN z?bVeMKMxnzCsv)hoj_XEjgBC*6pnUw2)TfLT5=+H3i+!*Qzr{IH<~oMvf7z%T%F(H zf@vG-gk=M~eE-maO8->QCIh}T={;zzNis|O=c`=Vk-%JR8HZF|e$2=X!Fk=tfXBP8 z#;I2VAdu%Sc*<8E7Hkr-){RTXcIqeSgY}53tvJt-En!Tat6}_^3Xe{id^FqRf~rl` z$O}D&B6NRR;{COP26PS<5peH@`-A-O$A~ft8v|XzjToZUi#`S_uF2}d{Jw&%!xeN$ zp({_qHv1VeHuqx*^Nn}<*#s4;u4eUy-_B@OaT~IKV@0ZAkscka-WDziMVF^W8gd5} z>qvlaB_NNJOL^*-I;No>zx>+48HYz4e>h!LU>Scq#h?A}Kz|ZanP>Ghf z9P0uSqcQ)Mym4jGxI{(m)3y&PvhV&$Jj)aM?2&n}u&@9~4xm;%V17P><^Ep^dftA< zZTY{ra zK>OV=06VC+Ap5^WN*WIMhaR6#0tB%iWV#heI0`5CWWuq5vUNMu?k~BD88FjWR+Aqb zP~B6tS65Xn_ys`h`N=LWE`X}fD$vKKxf8dXnbL=2qN9ivd%|o0 zZ&LBN^%%c0#j+sUqh+;W>4&gz#;-lm?<%Dr8UP*Q!6*=Se%Yh_Vlat>!^l6?C8Q?C z%#?SpKT=B=_s_T8AZ^_*lKrnr`P38o`lo0yrAKiKC(@)}y>km#ld)O)DWpuI>rZHc zw2G=3Xf2?MP$tD>?X`BNW_M;PWjK}Wk@h3g%i?~Y`Su-X7NV#P`zy$=2$YDtLoFD<@eEkGMRM0xwne_( zLHejGbH5{*q!DR%*DEf`rQ>l;+$`=&WS_>?yEG>!>$B3gg0n?@wl7O7%FD`nlH{f` zTBhyAZVsyf$EA?-CR#IPu%nyX)zz#~v-6hjY}c;otnaAL_FmC{(fYA29Dw0ksf$HPfjuWJ`jE$5Nzbrji!FYC;!!7b*zY z*MZRc%!B&pn_j|jNHU@*47M!?(G&-=7k{#eezK4VwgB^RRvsMMOst$-(M*3jo_T1SAN ze}f;=ZJ=JFmF;)j2xPF|0H4hrxnl1A{vO!-c^~OI3iOiU_gG>6dna6WWlbZHrHDK6 zc}AgdayVI!Lwo6UwUYnS{g0W%`X|{QEsgi@do=9A8uV>7?7KXURvmo7cx*#IXMVQr zq$l$U36U0zkq~clj8-VAs_G>#qtBa({#1gU{rrOKLDhT^!Qn4-|G0_4QAlBR(k9l` z)zx-_Mf6%vFI_W1GmkD0uQoz!g6oKSH_{vz5s#0|jme_2;lFSGKdSq&ms7u&Ak;S^ zUgwG#)$8jDprr-fh$9oXyK@Z4Z;ul(7M5&YOcsA{g@l862HLksl+-c>aC*|PF$y^h z2qYu@9kK#?nk%lYR*qI{2`X>;#N`eL#bhWlbyQ>_+O^7`zu?xV=e1aIRA|u5?cFT) zlmSa(aJ6Jf+gHC`?OBs_a6|eFC-UQZwp2bzBFgF)2tK?6rvvuq?y5COn@mAgV5wX} zm&om!W0z7QzPPM3q63Fj)eUU#cSx0xR2NpfT9gfB>{gaJu)D;CWsSmH@fnJI$w zw2;c_`Ej+)*YkQV=F^G8=xu*s#Qp16Z5#zPtSnV*-_VOvUW^6o>1L}%eopUSFsl9; zNHA)JbO=Ogwn&-J-#h`cX0}9tI78~gN=4}$s?VTDya%4Dh%BWbI_N?Aa=C&AS?crk zVXBMO=zg1=iIM>5n3HLF1*oREbH=EL#?dA&@`I^Ck_8%fgD#_fTa7!#FDq!cd+9+- zdx6s=C99bG674JU;4hQWK8(!t2~SQ z94oX02qgg{Q(z2R5Aol?2&_3zWG++r*_zCej+grNjk-hxU}wA(J2{*O0L&Q?^+^Xx z^7hEfmK9(QBzw8dCYyolZ&%yxVtwkXC&y&i!Ctj7J`$Lf$Aiw(7Vxk&EFJuD%N`fM zFS@US^4+@>&x3KTPkk{P2vz>r@ERaScNtF0 zODhSxfnihI)OkzTLHVz8uK!Xvw$uBEfAy!rGF^^+48ihYCL~UajpX?1{OJ--8^Zty zf$DMgO-&LvV>^Z5HZi2 z8*_I-kb-Euq)H0h=Dwjg!{R^{pWeTHE_Gs9*)+^D8Rf^JpbnHrlBrfhcP^A6Nhg1unjkJ4U+*G1gaFCv z9P1H>7PGHEFrO$sh|Yur?iE4kxUQ(6ngP30be}c_6|t>f+5?nOIa1UQHN0 zjsT%VS!uin=3Z+Pu)#Y46${SCK2EqN$v5CwNV)=@dHreF!87XK#lTBs=C1eIN9GLs z1Lp)e^^uxzrq1px85_mXyQfAf7sr+NhKM zj3}wxnsS&Pj~#D3s}lJ!mefHtgeOcAbkqnd@)E&ghUW^Irr8wb$N_m}I|Sq6cjnhR z?EItb{IBFd#@~?whZUhAb>o@JwG82!!Fg+caawQVe$Zg9Rs0u}0n~6};=dAgoBYMR zF=W6$LntVJn+v-vKL64xD@s5I{Tu5h^Lvpci zROt`xX4$!Vv8nt4_ReUDrqMpV;zqM%MRK9|Bl?X24ts1YX6@hyW2HHMQj|SOJL52< z9BGNqkq3h*F-L@56O%<@*%BfHca8D}?lI<$_~I`M2+H<(Rb$q_Y_QPDvqY<{%D!33 zKc$Nu2e_u?$~|q1)Sn|h&uiX1cZ7^OA>ctrjzj$k7<{+(4W2fQ4PKBC>OMNhvSkUDM|Ll!;t2FZT=`0Q(rIK?JA z7~3%^la#{>@fko2tcLGyx0pZAXiJNEP)IVj>f1l}RO?iuBgI|+9mebaB=_0pIRx&z zYV>hsw@EOq=H#L8xXF%s2XFSRF!6B3)P7Xuy0m!0$oE1a9-h{wra?i*vZzqa(hrmK zn27v(!?v}CzqGtW$Ry8T;Atdww&9n>fQMLsNAcWuvwU-UP|@!CbnjcME9|_Pg;s@! zyfVZgQCjh^oOkg3z3b_DS3$I zwU)R-1qvEMAERN=sHmSR_4_~Tb9!|9Stkx!@p=9LepZKl#2vZRve*L|>6+Z7@;W|q z6zk37IH1ewNWig17y8V*@hn$_O~{K!>)qyiwpqA`g98|W{E1v=m~Db zsn|~FhForyFzUeFzoiO@r>Q%|Q{6(27Tm@+h!Jhecz0-=MQr`Q%BxrQ^GnMDsHCK( ztEjhlfN*?QS>3s3!D^^{i8$SiS_S>o?2?6d2Ie zw;pYX9@2pm%=rd=&msFA!YfIW9DsObv#=-L5b{hKWmPjPYq!<(rdNt!ZXA+HiY}9+ zB=`qc#N`6E$iRz>btJfqS-I7uTSBfbMf+m{iq^H~D6A~7l@(^Pi;B=Y95J%UX^v;C zX_pBta-i%ktv&9Tz9$wuCq)ATzNYU3=CpoMxIEuWNE)Omrl>+bQ6tj=;k_{Nh9H_c zSgB2!p8XsS7?k+-mlt=OWLjO&l6pw)-EX-$XHw7y644*!E-OO;mo|uH08+4CvlhpA zS7iC)gLahPq*w&s^6O;IHYr8x99wB zJ=X8=h9^~@KmDZx)qnTK|73P>OCu3Q6N-(a+P1~EdiHpcjUm%m<($NYN7D^9LlWlJ zNJw7yzi%{CSX`B8bX$!dj)>2g)r!FT5%|t}TF;>b+I}C7%5oLDMkdAFV`^QVS%fGV z0k+j%o_p^w+n}}>7qQJ*&IvB2#Ob}h|8iS_YvWfNAuUVA-GOYC*12()_UlZIY{&2? zLZSSmtPDMjCgOt_ZCMSCw=WPZ8fZzJwQ4c2J0sKt#w>(Zg!Vxno|RR zUS%e>OR_C9jJ}o<{%_2JDbw0z~F#kBHcnf5`gZuL9`E{!yJ&(#|k zo}RbF+0&W5Wo2c6=GB@PB}xa9EKkqC$k^A{=ZGgrh-W%$TRS{FtXr#FI$iL(Qi9xA zcLo5lZEof-S4cP+*Xrly{qIgNNhp4|=*X;X$Qsy~4~ z8X2{_?rG>h0AxboPNWu+zBh7w`UGsid!4Lpf$P`mfA6aG2VaaMa|Ea%0;Wtb`FU~O$_$&fybE$Qm;Cb#bnxc&Y8?`ZWKKAYItRb!xY zVRG^C2yk(|NituVu?d|{N&+@?vcLG_4|uqRg?V_)(zap$<*&_wDlJ3pOtkmYQlm?5 zqLay=d-(4~AtIXYR30mbo{`<>dWO#iCxDDrz(b%wtDacQyPdohZ1$HMxGp6<2a4qf zNAI|R2NU(MB`GQC=;Vb?;yja%?jI`73YM||<3B1J{!;aGU&%UP`XSX+*(>C*~9gneH9lic@cXyXA{`)A{;_xmW*k80aMnfQtzT#Dk zaZ(mTE>FGl)k6{)0g>a@4Ao2i?dZ{`=hX-4k!AIw{5SKnDs&-z=Q!E6#mG9x+IQzy z1#-{ZH0;zeq6wf_sQ}a=hpBRswwNF0q1_F*OOQ=n7L5)e5)Eh=o|{s3evCjfq{EzB zh?keJNWJ;$mIwq60|=e=i-!98rv?&(2D-^f01{-V$>9A0>?NjBpIzr2VYyLzTV*94 z47>NER*Roc-zyMsMe&!&$;l0>Ie+r3Wvs5`eo9UnwuCL}8hpBXbU#3xwwWd$gmYsUP$^;csiYTmZxPGu$xb1-}I@*tbs ztFcMDxWG{V2uHJDY?EmQKzNu~L^Crp`~m|1&c>vgIFLd87S)bkhn1ehwtc!LPqMqD zUwzfEYph0>+FE_;q*^(%0wXqDDHR(z^z!-MZ+x&51BQqQxr}PJVH_M(quoVkwnz|# zxAsd}bXIA_(d2+K4IJApcLk~e^EMdhNLd!O2oEv8K1 z!r2(^9z`NMzP&qAXw$Z*?D&;r{)q6l=eb7PL!3t1^L1y0Wc(XaQc_AvN;J1?(Z0^Z zW8+JKuVT(4AT{qL^OE|Ot;&5{@RZz#p1i+>Qs^))9^ zKG}ji%xN*4m?(9}S*VLsbT#()P333cmbzsVjidfzy}3j+V?9@PeBezhOjRjrLQIC^ zM|5Y-(WsA$fY3r7+M?dzUo>7O%HREhZ5@y`zhQj85y5-Yinp`vP+#8akfudorD~inE zE@dB@OIaj0OA=)1m@aleKJglh>Fi$N2-no;5EF zd7Iigum1Rm8)pPwbK(;LfpW@xOjdwE?eLP)-JRaY58>x3Avoq4H0A|RRtz=d@fO2= zmKu%`9$!{dYe!Aul(!;{e$6d89vd?)Q}Xyru#%hG^ZGaL@ufo)RZi#rk3~PMrR@7t z;#O4wfqL4)WGT3_oPas^ymxEezj>3WBxnJh9Ja?xQ%z0x#})+({W=0?leaFz=VStZ zj~3r?<5^l3(plyV>69mK~;i#-WEr+*#1){W#iXyIaKS6b2T zFMM9~Z?zKkfCJzUabsQIru`H2SazFrudDBX#T+fa97$aBq(U~5cEleVah`0sb-=eO zt%ec+O>=3vMAdob$!W|1J^J z!m0Frx7BeuMi^+e0+@|OiI_x@N?fe~fL4j28uqVdC_RHpmGq>la`#o*4d`j6wcIATx&QJck)RUaw0@*uiiB$nXjoiq zr5LRT7swq}J`&=6up=7r;*S48uEb~0QhyjjgSnq3e{?$wJGNg6Kk#s=)GcLDs?cgp zQyhKTvl7?22+nV4n3=QtYCa_m-T-g(3s86S*D3dyi=ytq3?(#m(?`uGGye77%WC*8 zk+p>{k{WB@Jk|tEhul8B?aqNqsvESTlytd23AwW*m`!ufg>NoIGq}vfSJx=+B+*uY zPJGQeC~ZYgHXBU0_8UZk9R-@$)iX}q>dTiM#uP)iJOe%7Yv~lfZ7SEZIY z$@1-YuS@5D9LET`ro^czfg!z%3L!uExpY*6J?boYdyn%CG9+|vSo(05CB%e!lvbSe z{{7QbmAKi`ZT;3SghLs?YQtFYtx_Y_&@M7_Um{SxEc4-U{GnZ^^i($Cx0!yuqIeiQ z;}b{Q^X=&KZu9eDNH#@X_3$k5tCA>K8YaV6TkYB&I}SP?2CJKcOMf+g-i)lc4ut)@BasB!x^uWvP_E<@ zgg#LNu4E^)=7Ni9K78z}WOLIkLnV7;XKJz%Aw_ddAa&R)iYU`S0jE+W@i7=T5ei)#EMk2*;9r> zew0mG(p@eu&1Hqe`tFSPwaIvuCk9DNf@C^u)wxijq-yuJ`Ycy2Zu}WsU#5YGlB(8B zxlP&cY~!tM!J}r+-)(aelBLYG*B{F}2h5&j?=v@$Lr*svzWfhFd zGdvwn-K**LgHXt$WqSuyV~4Xu0^0n=> zKzW$5YqM7OqI-S3`l2V_3_Yd}Mp*jXIBP^XX!KWU$%@_?mheMw_dW%U30YDGt@ry3 zB!`Y%-P;P_}n`hbtsfITC|VFF=0~IrNPf|1h2p#(UzI$#$~n;Fxl`4 zc+`nh+{wOAFp~AX;z%ennx3Y*h@eGuJqFN<>UJ+a*e%sIKLXFS+iY=`MWcE(-KfAY~FSVZ|L)3;TP!p=<#JT#V zaPHLKp{k3LkFg?Ev?CV@Qh7Atn}(uzDSfGqB)~pxy#VziT4gzsd~JK~Dqp><^gf?m zbrbbmjrKM>ZmL$#%FJX+8TP?GLD%*Fms#*$t zGHtswS)Unz8k|#a=+GbVgm)OkOr^SZp^CwmiBwV5)n;Qh)Sj)xKQ$=5Uv2N!9;G%9>_ zDko~P4@O|Qdt_x;f&DXF>fzs0e~|hBuX_z7m5=z1-doqP{Kfnc#U0=NHyJq&XKnZg z1Y=Orj3FU0hDZP4CAe_CLcvzb`rV^{{(ok>ydVXABBBQ2| zo_c;*UJ2n^Tq?KXJkSzM!|z^L_^hL`2Goh}D9pOz<&%>M`1X1jD12zs2ClQXy`p=1 za>^7#x##ZU0FUAta5Ga=1(K2TMAD-UnHvk)7Ze7IMf}jPX=(H>{WGf}rC$|9J)PEp zG!cmX#}wZDNs(mVMZ`pmJOjGkYZEdixr2~kLS9I5NCovT7;mP| zSJz8$axdE3Uo$ zyI`}YHOT=88|iZCYC< zZAvjo!?l-Q+C*P(Pw!h^E7U6=gM|1Dt-W2v_U)jFGeeh<^lEcXlU;t?t|q%aY9F+L z8*ILeu8Z(>5o_}Kl1);rQDtU>1Daza!_;_*p zcNg?=km`=hi+T0NCNCwQEVe5Tj&6Rq0CU!pAHA?*kB+3v2A?q%t=qa5tUDFem=Jd= z{Lk{=&bz~WPMWM7+}vy&u5%tw=t>DqAsQ@>4)-~?`7(38Ex+{?tT1A~Xdp+V>?nlt3@f_6V$4AA-->DeEYA&kjKRB*n zIXYZP?UH$)d1Fhe)%Pdn^U((%@USx|&U*SFNKknnTVAi)bZ1XaMBH8gZk zoa5*Em37N7#SQp@qUiz~Jm^j?1N~Yxk~Rt215Bc?$W5>Wn+_ zca6Z-4%;>%Gbs@DH1Iq*{7zabX;L-Ped#uOx_rIM{isp;ZT+IcNAz)T+;=^`)yjAM zZ}sVGe5&ylmv+G>GxI07uTMwP*G#dSYQvuwt!eG4(>NWHNY_Pu9oxa74;x1lU5olX zDdm~h5_5kGHAga)!?gw@D~Sx`4EhNAO2EMML`6OEZ^joe)>$cZiG1NP37OGlO5j+X zF~Yw0_`$re+UWPTyI+WT+@n%&l9fT~@Ga`G#Ec8UCk_wk`u^3Gcn;^$8+BW#$hDQai9zY3}#zThLK9cgJt!(u}QY zQuJ$|`wSCZ{B%Tk$C*`;Fm5>J)Wg#`JJs^;qI$>P{853m=bozjbjzh&FrLr2=<~{1 zH4J6#aB_gWt?|KzVW=Lnze?Ky>75V~j`!!U^MY<~akO&Dmm50|;~w^Zo+z+D>+~*H zEUTn+PFwc!D_ftA+}L~>QifTbSVk-LF(KaDcV@BY5+;pb?2#QCHF6?AsPt#=dKter zn~zT-jxAp3YTnluzLkf_a?;KcJki$3#G_n$?0ib%!p{EoJR+d1gim=);U>p~dC<#V zUCu~hUQ+kap8JyR)wXkHuy_-ts*{|1)i5V$26!^rNcGB@G)wcLqSJ$ylSD}>RjNJDupB^YM35YY z$iUnBB<^GlDj0s?6@#@+m7m>bS{aIp^C;`_oHi%_X}v%UnnB2g*ScS;)*2c-c~ma{ z%|_q7n-y!e!jcU|BQT4LD=tg=uCD}zrWZPF@Y#0o1|@O}SS{&@Cz;}DBP(mbaTcX0 zEz0lr`5=oBLf<4rr!3_U#nN(yb@8)@#-u4^>RqqDZoD!>`R4dwrLlm49$hN;XHgMx znKS#Eij+sZb^{UWU*6A@FpBPBOW0otWmG#?noN1Y;!4MyTs8=aTWbPN*3Q&iU!Ou9 z?$x5X-)M}rEC}m>tcW^;py&+_A?1TOj?9-D&z@w16u*|-;&q;*cgH!j`Ea?HDn?l@ zUHp3_gdNk%1*3@#KEnuRez4Q3VJ9yL?3&d+g!^%s7hkhJ(1|C8j2)h_;YqA?G5<=Tu1VKn zba(no5^2Pgp@9oeLB(*CA~8rp?c+XUl4O& zKw;WM#C^ukwySGKE0=J$`(EhBHI4Rd?f%M4OI+2r-Pc?ZSR@snV1pCo;nVnB=r96e zL+N{Ods8iM#>}xX@AzMvBT~cjguvtS^XV- z>tEDvUR>MRhth{KflCI-$)@^R^^Apsc&7G@*`sgX<=LFsDzc_Zh*>Pk;2d^;HZ^5- z2%!)gdArgb6rQUKiw(gK(`q_#`sAma>>lg8B&D(UzT9eW1onX>$?hyz-d<3(;MmGC@PUs#uV+fZ4g0c>JxXYDhJhJJEza{j9Gv>)+U zy}qske3;PLg@vCc3w?cIAt>0~nQ?$hXwO^IEiw} zS|DS9kT^t%N}u_DG}UnJ2Z_4P>^q(XhUplIl?-kQ723b0`eh3jb`?e*Axsdu#F7b&ZbHU$o$U| zQ+9R&TXmZzXE23qwE2iC=9^)It9!dfqe5m-TMDjx^5!<%V3kjf1RXvWmwmdUY|b2G zDf<3I2{li+mXPE6J1Q1GOnxxpVa6LVUAynh7&9`}LxfnxNB=yA%`qw=X{|C;BN~zi zN+msWXw;J7(us=S;jwmNhR zCvl60k9WSPxEPyk1;{W1G-GEI{*;mAksTGBqG?9lz}oL+VPFK-g}N}AF8#~f!}Y{_1W~AeYO6Z3lMV!_^9`if;s;`k?J|*p(e-*5Mur@u+~yDg6(vsmRK_ z&%4Rl_ieZI&^AdvDW5!av9K$F#ffLHe=0+2iZikn_5cmE9N?^fBTkP=sldZWSbu=Y zQwNi`rVEnhu;Oy$^urt$X}7#_t4zNpC6IC7^Ef+cj;Y2G zIhmqf*1$&fihH#s*iG`>zk}mL{b~!@Om)MUL8 zRYD?AKb0E3itODNJ`PE#3_1L;3}1*HfGMMeFD=~-<57Kx7KT7*ThF0l&H};b`ReBXk9kijKXzjy9ZRlv2 z@?ZGG{krt%fYLO!$>n)1o9u0V9uXQ05^}{^SU${_%S8LI>v~q%;Sq`sp!5@x4%_-PHg)AjYusf`Eb;ytQBgKB^K;*2v(7!!t0# zCRQdDps$dfpWj))iPxAbkbGLQmCN83uPJ3lAhg~`fz)g6>)J`@&w;A+Z!?0h>R2B) zQxsqdkUBLF0eA%ZANSG2t}F!~-}8UPusI&WpimA_og577?v@IY_PIZ!E|4W7RnI@k z+1zFP_t(`jmt-}KlZ0$m$AgrJYC>04Sp{DWr=;an(EscB_mi0inszm~L!dY)PRJ}E0a$-0kG)7sRK&0kWgw?e+f z233o68Fh2CiQ@hyy%n>PDd5KTty( zgI+mEM=? zmTjyFRpMI-XG)^DB8PN6SmvU=AnFrf2^inA<vudqWCmf~)|T+;H; z=pp7PdydT(F}2qZ>9ydvZ=mcQ%@eN4efq~tUoJo|phs`fi<74vtH zwM*R`^gs0`{(GExO*(9zAagXFG89%{TZ9mSC8O1t;#&8a+0p*316@!o3k!?Kc?-e` z3a)d|&|4;qn8ALMF&BuOf^FSfkonXvtxu>4D(4zsR4{;eG2Fi~`#-wn;h|Q+_8APy zwL8dm${m})$w(ItNQs69Nzk;?@KeL|f4te;~o9v#AL zJ?LE5igW#@7H-gA@Np6ZMs@FBgbj?ggUUT7y!fEkmNw5*JLsAP)8aUP*~ZW<9kjIv zWCy}!dxbe%1*YnMfw%Anl==l7aB>zDX$Aoe>HqUNYjR`@r*Ujm7u09-5^1{ zaegl-*g>Dw6l;ff^0d5?JQWrin#F(8T@WSl{6EmETyC4#HklE z5$%7ItRWvWqy`A9j2<0pXe7(v;e~q2XbS?+oFY_4@x80ca5c!e=3j-w9Go0`o3bg! z_A0Vs3o3iGF?It&=c63puW*^Y*~Cc2_L*(f)yZJmLU#}EToO$0@7YYJt zTz>8$VsY=$N-5ngI)7e2%+^lY&O-0QuFqZQY@%%iFdnlJq-HWW7k`_@Xze?sw275T z^i#qQ;GtMu%+D*}_t^CRq;xKyE93E9e%n+#XntY+b2+p8^@9vAF0L(RC$|j?-{5Q0~cINL%V&;%@YOf6^D^B`tNt`U~S!7|GwANMJ83MkOo4k5v9@O%m+; ztS{9Ij(;LKZ2Xv=piO64%n&S(KRGw2UHw^!CaFoOpB;lW)Ml~B!lhqZJ59M~&=LrR zP3zi?UtUNyX%-uP^g8h^o;4^g`G6NTI3{{IIg4Ik_PEaNvQH`bbv7gVs)$mIQH>}x zNFr}a%6uvHVKm^i!>NKfRO8fI-u<=m%>$Ei1hsnFCOHW12R*gGFPqH3xW&eyrL389 zU5A|Ki~hd`n=_k#kGym?OoO!f5ypQqKxCAV#_DvKY9shA(!TaxjS(XnF9_?%VS)?p z|EjTO(yx*4kg-5v!`eSsWlh-WlvTk=!f5hznncC=eFx<@!kXtwwJxAgDAgA zYRcAV_n5jWhAiD=d%ni|_ag;zbaMM{I1+aDTdxpifWrWOD=CYlG|+7AAlySckw^R#h($ba&DdWMaRcQRV zcaxULeW}~{(_+-^vs3z}JOz(nZ_=AhMup<9C8e`?vvK!Uxi2+#m7;b6@~nR;+)@6v z9Y+O~Ephx^DCQS@K{3tDBf?=2Kvqd@@ld>b(?B#cVpwiT7cptb>7ELrQ4H->i!j%f z0q+Ou&(98WD{$eM!%@KM8Vgc<~)Ms4-ndWo4duR8yt=(B6P>347>Mo%g1Nvj2q{1f$;qQ{SdI&W9u~In!%? zjxFeCxV%OC3T8GPrj)3tD8;n*Oz_0K@bHhZj`x6DHb#~Ke?%k0eL zXnK|5%U>r8**&u7Ij=|CidIV5;sl(Cfs25%+}E9@IxZ>QpPn?Is5zn|F$m3`JbSZB z@eleQUyb0+rymshzqJ?m$fK6vJ~I z`71PYuA@J5x_qrYE-?MgXLR+0feQtdrQu6OG7{SOrGDj?^^2S1+@F~$`MYHyX~y;w zuM2OYh?R4y^mO#Xk2x$miA?6qBwgSi2VbqHGw`b`E>7&tAv61DA4}o6^}=x3Q1xNXzTFjOd1%Hgf}K4$zBdH9zBotX1L5$>Y^5pLjW zwY#4eQ44WLxv(>xEGjPS`k_-fV{{iV9qx>zsbqbf?qBK$OwT9*k0IZ;F#g8lP)Q7H zprlpSRRFeVsy}tk=hy+ybxJ1x@^4?;v?^|<2t=QEL|-~In>K?YWb9*ODRDW&K@-;8 zj^(|M<$!xgMlkDsEB_-LJV28?6|dB8`tj>IkYS1 zQFKXUdUA=^8){wrOr90?htr4JM!nHN!4%*ujw9E-5LokM=Oc@{(g&y*oNQdI5>^n# zp$X}u=39;78(XuMca8;<3pUv3J9Obmqo$wy&bRO5bkXGaEZhdvOm1h1;`*`31d7xP z?R^~R3la&LUJwg#I!PDa8BCHT?o|2T8O?t6w64~P|$4M zcHYRw=vipTYw%yJKjv2fhf74#E0jlJ^lU%fh$^CP@?+t?8QXHB!PvTK;g1#gZuaH< z9!a8fuNk5-xIa6=FVzD0zDNHRo7keOdLg)Q6aMeiknLCx7s*%-%3cR@A}WB6v9M+r zVSF;-2xRt%beRS7mjk6+M^_mOR#8CNIbnMa!Ec{f+jIPt} z>oFdr&dm)9oM>l?nb(8tXnX(2{Pt5QhcI&#zF@BG^Fxe#12RR5f*om4$iL3Tn-P+q z0-ehF63Su=I+%;^izBc|@q%kSFV+Xmr~Gzoz(|h_<&{RPJ{W#dV0kx7x*tR4Su{bY z-^oN6dlF*y*$?e`m+g5`y7ATXg>Vg+gKaRrv1B`YRxL$Q~aS&U5ccOv_%@}W92-9nK+x9@hf26L=pK*vPP0^tG39WI z3WwrUs#1s#Lv~=Gh0I9nD@h-N&_#!X1+8YOIU|x&9@oF_%F45X6O4(p9{NRt$ zI)+puc?f1(pxYmae%fh9(}XyZ1U4Hx(W9?Ihh@sbaH&;@PtqUtQP#s(CJKy3h?AQg8LA}0`2K+ zyV%h_UB~4;nttEnS210#+``B5#QT@+hFmTiX&Pn|I&mBr_xw?{rB(v9D}6#20mn+B z^-(z~(FqpeZ$bkX7|fOA)b5KQ-xxW35Ot?0h4`1^oVq;^6RxJLdkMHW^_O0OD`3 z`k0N4*%kseo7An>1>h3EzZD$r5^%3w#E~`vIA-3Wg`pF$HddgE#J9Y=Cl5CPqOmX{ zbX?8S8Q|!iH*;3ElDX2IxaUqB2Psl{8l#8Zv3q@mo9dUtG7wjml$31JKPfHFIs9>j zs}9jf|M|0unJJ@RF9H{x^3S4ut>o_BUI>Nt9tMagE__aKDQ=Q`?OzQQsW2z!k5NlS z$kanWG6R&*@f2y^QyCR5PaFDac*o3(+-KZpZP~Ui2PnpN+Z(IP7(Lz`mXj&`G1PL} zwD=$C(2&jw>m60fJdTdoVgVNAVtRu ztmEX-pD(g7xw*ZOpNEG>Q1FodyUPfrxYS=DcH(QubUhjGf3=fl$ca&~Jm03l08~Z- zFcc+PH$BgSEq(xJ5&89Srd0HCVF05i?>o!xW7px~VQ+8m#6-dte*+m`Oc4-2+1c5_ z4!FD3pSNhlpQ{!n*lIor!4{!`WC1CVSzC!np!c3FQBG=#vj0pWmV?2feAYDf9a`9b zPciLywh%xAD64}9VRkm%r8bBh4ziScgiT0Vw?9wH;&ier_4DJhvo675z?TLOnR8k2 zDq9O4^k!O}-p_0q`R;cGYoG-RkNcc;p`fG%MuKbfUZj5AJKJq;Z_2W!4?Y|1;Ul_*d7^4VtKH^yIP z_M=imyZm-)^m;|$zZZg?BPtXf`>$Lrc5E&d)ag zO=QWRv2wo)hsTH4*kW&`TDO6vT9Vr?0j@DvTi3Hv%SzpF{o zNmJ0z@#1z^OZzeKxl>C^%_di2X$2hqcRd}Vyu8h3vYXkF>gvvtHb}9A;S7zGp_ISO z<&tH1F(e02)&H%c;G7SqjMV8K_eMQhS?xJ)W3S1%otz0w&X()^$8adusc`?=Aov-- zKe}%Uz;OEj72`hfaN+XwOMOqy2UN2KcbZScOr)kAL>^aaWUnfIkn2uHD=Pc>a+(LvD9? zdaf-38Yo4tXEf(43|8A+Mj%rFb;RRnp&EF0Mse1^LN?-JE`T4a#To!e$^OSz2UTYI zvQEQbH-pYLnC0$&e7fz8v!1(G2Xr}KO+6fx!M~_Ymf2?jrBAzj z7DXlNr(^D4zSyjluWf?QotyvqVpK(+uK-F#sEPYQIyKDB!QnU^PzgP6R|ihpg~-g> z)$Pp(KE;fiH|f7z6@PplE=>~|H^XQN8(RK-uc1TG23H1W3{e+;!I zTSIEZh;T8C>_1h!E03}3W2s6SO6C_n4$$|qG3G$S!@v-hqm?oAy+$~?2*IrMC+WDf zKF}oh4A|`T+G!dg#0*4@)WZ0ou>7o}xWLx#kOI)=fwE#gM^i%eT%sEgY}R@+#w zafBTMz&(djY?y7;1zh3NVUw0M=s)C~`gK3vtdPHSJ*Tn7@vAKO#aVx>)7Evf<{}@- z{>R$b`12)6^nRt|j$qyOWTnI;bUEhIXU>NXR~ZB>f%?J}y3^pFU!9w&a?M;_$9>j) z))BB%LBlmQvPRwqC#t?rBjWr0af1}7;4QwJ%PKa6c?iC=Icmi^8ljE?8f7e2cdU4F zgpJ!w9|Q98FI(U;B;`J7k(-ukipNN)Z@I@lGy3B_Oj{cuAcFrK$6lgNl+3I8?=X$$ z3NPknP#;Yzt5;Z6Z31A_$I|732r!I^?xgpg{p?A{@Y~MpykUqT2~PcWKmltEW?O!* zY%c`{^&|XN^^D4=vEkwWGE-^4qP=}NgnWKKb47sTsb!&m&%&jM>%4*6;Xm+5rF-Yw zT0caQ+;__ko6B8eCqj~R9r8qQ2__`Ali!@Kd|!cAqc;F7Sr=QpJw<7)Uid(fputJ` zc@L?iEfxe)fC1ULj?adU^U=3Mc8A5pF+x+^XG-vKfrZP|-}m1BL)WdG&GC6Ss1$y* zZ-o-UcFn6_9|OjxqmK|uXAC+&AC;JHB|wMZk2JLKR5M{(QJv` z9g2*aN3(=Q6wbpdDDY!Zuk}H9A>ne~XnQ5H@)Nce8VGSqd}l3<{5AD_*Qo>9h&}%d zgOtDRzAb?5Jc#`3A)mk36C`XUBllmSAi(ZJbN3|gGa3FNVe~M+pJL{7>a$zNM$BYt zy_CM5#YPaLY@M_4Xx!~uk`zUGIHh(I86;$yQMlbhJ=)OmytICo7}LkX+mWZIJcH=w zHv76|m7}l6<$v7K=I6p;_oYn7lu)mY*W=qd1NA^6Tl<}QU=;ZS5V|aXxD9yC-f<=J zWYj0;cQU}ZQobXfKymCoahD!<$?Em;9RQ+V$J9eJrr=b(C=TP?Z$}R41p{mMe>G?K zaz#H?>V&a-G8dmZS{{yLs_zAKvoEZyEHS1eMsmPK{(4k779;4BR#+dUCJ$qG6sms> zXI6vYtnl`Tec6mYca_UlHoX+ zZEPzo7477wIA2!&9o6jJ9AP-V32)uCE_8;@H4aqbABbfMIyWY^ns8Rn z)n2vg2;Oe(?~jeeN3C|rO<>I-AVi8$t5a2{LCEh=IOlY}PsR%rAGd!cs3ENpp#-ok zGPPisPM^?GgnrK^x<#%vEo@2|Zca)xVM&If4it>32AJ*{)Ez58B zF_nC|rSay+Syt&RpQtTgCbJ;w^RAH;@w-)@^5zu9ojz}}i1Q#bCta(U7usdfb~>k> zM#}o9uw72&*tk8sZxHIDQgHG61C?}iEykP5r^Di#<2SBfFpUfGxsxr>sx`3K3<~{x z?s`LC&U5d4Yj~bUI_``MOqS}2oY@=Z141dWCD-m7P=hBfrNC5XX!X*eOZq2o(*v&h zztmdRY;oaw;rRva)tBPp8ycjt^sui#uHCkt`qg;4rq8raVM@)q8_^JLb(0f5uRL~8 z2b}t0XA33W_ZmGVnt&Z{lab})1^I1AeM+Jez{Glerlt1I`N>k@Qo3><1PBz6fD^lq zd%R*gO8rRmjx~Mj^c8sX91iCMCdkf0$9yIY>`BIfMBW2Rx<=oeQ7}lk78qFZeAsJW zCgzBd*Q>@QAgrfM|MIT(;aFYvI!RBy!hUK78>pEnxtqS~ZDLhJzQ@Q_i(&LW%pUD0 z+~o7;mD7~Ie&OHX#G3k!#fpQa5D@!?a%QB*L;5LBH)Vr2U*4~x2dlckABVABoYz%W zMX1v#6Lq)EM41J%ko3)Cy=)6UF2>R7evFG`{`wURD%_9hMg?RpmR45ufdI2Q z-uFl#j+`+HbmIk=_~TG01UaiQxpLQrcYKJ?8R@C|l>ODKj_DhZaoH)$>KsJEIf|0k z;_%!*`yZ z*(i8Y*=C2p|L77uz-6Or0dl3$p_b4ePB3^(O^N{Y(f!CTw_BCzjZX7`(iT94I&9l5`CVYH}r2B zy016tGyMDKcSyud+pAxE>;33%{~Qm5Q4B5+Apz;LU7FuStjYV^BOhN^+gCHEdpZFB z2{6ru>%H=_P4}urnV`wBhceWD^j}-tc;Icikgl1Nk9|l%YVs*^v`!*s@={Rkm|Nq> z#^*?;52SQ1LJ2S1O@?nfx`{)zYv-~!M(Uje&e7Y+Lrn(3p7<=QAYFn=`X2VA(KW#* zExY4pM=O0qKgMP|`mp+~mG{`DL@bn_2Ut!W=-135n4Ox)(@xFD-A z3CarzAU%FN7whqar%@vR0~!@XtKr`uf!)C5F$F4lhdUn|HZx9mMEq|Q*sSGrpzwgM zZLE2^nlUb4=~k{OB|qMB*fyoCUt|{~c+V{Ct#Ex3<+4v;aXDpcKjT7K`~B!WM~TZ} zp4k`2=wM2CYZ3qbGj)Ac)4*vuAwnETOM8ba#)_HpVoZ(K=yPK$`=wg5Iw5m`q!h$@ zyj@ZBE+i%|u5Z@adugEt`{r~fjkUCzgBc?VA6u+vwz5s()URQ)xz-Dt`_OrN-?zrX zcbgjHAyUHoMHXuLG7|9Zki`iXgbgPQ7bp(Ok(FW>YEcShYjbY^wovwLv6rVOjn26B z9g7&Dgz&zo`S(Gmt)3e=PnFoYIKR?Hi3THAd`|rUo8?{mBl>K=aK6MK?mM{X$jII| z8mN?FF`bBm)Y!Ufi(YN8w%q3LM?&Y(3%@47huuDB9gEhcF(i835G+%F~Ys|=l; zhBYH=tTMgsv|PZ3mHw@x`k6Fgnnr1DQ`47nZIN*pb`uB=fVhaXIl0;%&W+n?wY1dL z0hUw%xi>>kaZ<`Y24wUBpa7|Z<*Z*h} z<-Yx&0lv!nm`QG1s+Gl0-Ny>73fi*w8kACuDSw#D=L=B--74x*H5ehkeyQ}Zn@-Mr z=a4gYbs(O)mMj&9&vuJcPadXK);&l7)zXesz3JR;hWhebI_$%7^MC?x>Y7nr7P@-K zi||E}tQ!elI-l>}EnLpcG1uOF@9G^dWMV1S4?eq3i+@@Z>Npc&6TWnP?t(w#?p)e< zstuNrXN_NSGg~~LpED8=_P?6y4s)%`N>^^mJjp+xK9KUJ5?EvOK^FXed}gEHhF6pY zVUF$Bn85%=)$VmCsdg`X{yE+=tnhUk)&Bi#P8&1o#=jIb)YS2s+xF$B;mfWoj7#Cq z`V+d65aCFX!);LzXm7U+1uL{kAD~<#vDc=m-{LOcT;40N>Ns#8IYRsEMMC%vX@AIp zeQve|)EaK&w;+-CY>0YZl2g>O1Hg54%5;Z}nj(%e3Z zaB+S7I3{pvrQh@+(2_Uv!!JMw=nD%27p2M!^zZKODow}!v1xeuEky<3Ch$$j$FoJ2 zQG<{3(zSdlP|6grYm5c(|@|zi;9Y9X=%Y`4UpI(p*WE9 z&TvXy-K?Q2l8L*!y{+w%i~T|r-U)5a4*%HE(GdW+ET8-e43Ldl3dPf0TwH*E^H9PC zCb^Xr9~TEOIPfN$-1f>+6ufG<#(=w=j+T~cX4D}|273MP-@l6s&i?2hvIG5=R#t!@ z#3E#5mkm^P3~d7++oa#@ya_)^OllrY2%WX9^HBnznrVGqD#yq{YMY4?o zqG`_2GpxWQuUavlzU72or(T(xs+O3WfV}WLisd2SAX3ox&J_{pYT)oNq<4r3qkscT zVE#TfU2fxv$DmRY0xye2Es6R3gMEs;f+@Kh+i!npauNlO5yS=pb+U`$cE%%f3hVo> zKjyrIh<+t7Yfejud;HnRm6AGF>$QFsa36L$bw&>7i!1|Od@EzT_$w3NHm1iAiOw1- zuy^X4rsX=WY1IC5E^5YAv*^{@_NG0Ky)VD8s!Xd~ojl+G5(SIVbMlcr+{e{Jz1}8R z2PMgI$QI5ch1Mcdg@cFLAJiHhM{q2`p$es+gOeUMnT(e`x3ShMqSyC7hMR1=3j7Dq z(BKwF9Sj@XyG%6kAkOUrk66|KQ1sm(46!8*6+&7@o^)` z?L>+y7CUou8csZ?tu5w};T_k+F0x5mJe)n5kGZO}_zmT;9ZZ2}VG{XjjR3Mz%J(hh ze;n$714BqzO&%x}?3wQOC^ zo0skJ{(*uC8g@dP-`j1oyo>1rL@D2oLBorFC;K zbVE;Hp`Vf5K^C2}Bi`P~ynOkF5sP0GXicmml~tUlHojd!ii6ohmBN{zt^#LIk@P?7 zyGpJiM4uq(>9n2ei2MjuZzw=m@L4ebQSL78Ai0<9j?46T-)$DCb}+|MPVjR2uuhV; zN1zobl3QDEwy*Er=pGUQjLi%6M|~5>K_-RC$y3yVuWPre4i&}iXJKLMcX7iF0gr3$ zo{}Mqj&Ui`{oTGxe{5fm=u{Cm!}p931ZX7}iv_&z55B%Pk6@<2wNXYbi~^L(L&ss2 z_KH=M_Lyz)PAN{fhQ~v)C38+dj7#~B_6)o)9EypfPb@QNsRZj+OXjJOhHwh-`j!V% z;In^8kNgP_4+k{(mPhJg$(5UY={li%Uqj~;CPJ2UhcAg)&2f^jk1-sn3dOK%@9l9k zO0Zd?lebSqzW|>ySJJ42y&|vz3sp=0`gN;B+XJlaGODo(Y^R7etu`6|wQT_&%t-NY z7uiU^>Y4KhPzB9U!KTBUYdcW?-^4XWa;YSFe_Ha&nkD|%0qF_6bfjBLu@QYJm zFBYeEjUmpJfNfe?DhG{XFV!E zaWFQSlbD^yMGr%8GHuJEqr@31Gn!{H0>9E$cTbVZAKHyc+lVn zE&43g>-8l-kUYsGtXgGjZ?apzo}#*!&bX^8v@Mt!|BLHBCk`A&W!GT;z zu8~VeifkI)X?^j#6DoLMcYP7d8-YezGfS@f3)WHs%H>cZZ$sw z+-kKI=H1z3&51CN9|m4ro92?_Kd-}(=I%%iUSVN<=J$a1lbV*+uop+2^9vv{tpa&X zsTqc>lP+A$BGy!{^6QO-i7;K#!|OAm0I)5iHqy+;NL=^*O_7^K62q@M`sJxlQ&S}l z_EhX*q#Pj(&}qaB;}d=@BYN$LtNYk z|5A?Q?E@lr351BpAct@{$r;b7`B7Zza|I4Pf9-AL(4Fa)t6<_NbcY+bwsscL==Y#=(vb7 z(a1Ia41W}wV^-nl2fl4q=Jd5y z6-I=;I)vBba<3@jni=Z4<*v18-%CtIe!yL zB{{!)z1f2ycDfLd;P#IsJbYuRZuhBGQ3`^`OGNR(8q)+-HzYaltutAQa!Hr29q5-h z_#KtCa!>~nC@*USecl)Q6~?yalmUm^Yw&O^t_7`Q|EtD}<7bQ$Udi#-uB}+3#eLnc z2K_Q!%bQFhKTn?dEcgR5ZD82KDX8ynCuu9rVX6*JqUB(a979xRC?zxKYLynWjn;$M z8d1BxiltGj2(^1uZeJx_bTo);j8T+r)N@;yy=-I}Mi9(q_bOhW$1JKI--?cHXGIk< zeFC;~MK=8wXlBgaM)C{-dw`Ye$yf>pg%&@EW#iT6w5^AxrOaot?&f2u#$HZNmK8TO zCN(A+bv_6+NFEOy5?9TEZNCKrfk{{wj8E#~j?uwYaAro2OFv_Wx{#4V5r4=KStyTv zD{}ko-n|BUb}3WI)-P`MS-QRVd5(LIIw`}yG4u&r*M&7i3!+8H;o!WVVT5PUcWEJO z{DlK2|1VbY2gxCi8x~lH|7Kef!CG7)3Io}vc|1FPskT+Exhvx?t<++~`Rp(&q3)pP z>@VMOW<%g~0oKdrpCyDnm=WTiyQt!cHN1}(h*GhZ1BV2|dk(cR&r3s1&npa=j+6OV zbpmjE%9d4!v00_L=?tny)hCR7Q+vCXF$fy@zETH?ip#(0)u16o`3ZT%RrZ9={h>gs zLVsRm+N|=I^63oRJy;h9TV6 zCQWPnW&L^>83EU<3jvM;y}fYdm2mj5tK0p|jMO4J3wN{Q2S0e#_U&Ue^QWiJp8e~O zyr5R&oJadGVjwIjC1)U|jmQvll5AaH=QyY8)(MU~E0tlQ^M@$8ki8s{jvM zwiDJyUh_ty+b5_|+#ESILR%?>`*FpxOh9t^ucVZ2rBFz?mki!n@_Fk^W*S2f-Q_n{ zaa=N&LGuy%<~Lkk{0a$a$=n&20uCiC!L0RGmmozDYq|O~=Y3LI5(b%^19iGsED|{7%HzO#5H&%B zuotAJC`xPod8+0Op8GvZe?9lPxp72G zu$~^(7%s_HEtMQ%!hc`Rppm?sIR+6e^8X8Vo4fE-uK8mahFgo}4Zd{YEFTdTc|JZ7 za0UuTDMYgaOsZUHoHT_r1q>B*mFX%PD$`ZQkR%Cr%XPIukmkinLdt%C-f;r$#`+IP zK6F8KfIB#0$+7aIH6$( z*r1{UDS>k+6dX;nUGlA{@xbQQ+#e#EnzE!+bxr9iNyD%SWYSM4EP_V0tZ>AnXn?L<;m1|$R`rP+V-}q9h{3}(4tw+Y;7{Eh+IC&$0ewFmOs*RtD zSvh>_(3-U?ax8y-@|>yFr_Ay7#VaZ@A?HA9#A#t{L}Fb8`(nyK^UukHdZU_5I)n&nuPc9tB~TeiuOa!ic#! z`@n%ar)K~8D_`Ot{mAqC`l`WcTLE+Ei$5Ae4uuf9t}`Yq^9g1TA@2dQB~CHO1I;O_ zCZU(na)jq35>gJaTr>9@>TPcQRiM_2qSQ6v>=Y0Jk#spyffzE*6-D8iq32aa39{+Y z(qP=a;fe%Ha%jCRT?&Im5}M`YOQF;ouHllr*^*jc^pkF0ZfRso81eWc44)^}BK`D6 z=2R+`Wy_ZJ_4T=~s5cIo1%H~*KlS$Z4h#&$c`yhh7zjy{fz(kTISgzD4g-gQ&B$h8 zbFdlN9PDbPJ~>&b)nwfi3K!^wABc_mT?ujw9{CFN?}P&cPn$4#64u_PUj1S?{g0=% zuOs97T~MNZN8m|-(*SjVH2_*8L5$wBx%~}_#;cPSAoLdoYEyMZ*8xydwV7e3r@MP} zZd6K=LW~WM10i=}yBI<$FYmp`tLs^Us)r_3>t!~L9w>l_OICjs z0-M8agUt?K%d%8eb%*J?g9Y8O^B!l6YdqZgD|ei*uIq}TAU317Mk<926$+X(Yo=q{ zM6#%v3L`|7F|IHUO>QJ1q!5m(*p9FOn8H|Jk&QI*HupIV)BLC1H@>Ln+_IAsOs$&$ zmk1^=!5Y3?EsP(Wv~C(?=AlE{HBh++@&GkNyI6ex)~%c|rCNnRHyo*;T)BG3Y<2eh z%o#2eoeXQ-q!ki~bf%LDx?=Pwy^a(EeFNpWxvFDBmGv@Xj#_g?8xta!y#GfVAADf_ z9WOm#nl)7gNl?gxbU^K5K!S6=W-Vzdm=@J*00fna_WkdzK5}T4Zamd+!9Kv0C3E0_NTu&X+^sajos^vJ*` zKl$g491OLTAqM6UHOb$Cbmv046h7!asNy)b!WBo@j$@Zdq6fxOm@#{a0Hr1Joe?5D zwU=E*;8G+Cmdx0D-tUt2n=BzJhYXi8_#h0R1sE9e)jZx(%DK5Y_jiV2Tz&P`+qP|6 zxpJl3qCYb;0|2>PPSdo}(b2~rfBe*`Q-wmISSPYSZr+6;0TE}WYUT3iT)9@M&gApCQZaYUs_v%`NH+kX21f{~w)NAo ze1!kHNH%KYssH*RFxJ0EbV?>L=<~{WjcjEli#(oVaS^sHSr%QM%q@ zfI(7{lv3u6yeic)%?y>6l`CZ-#K`RMnq_MRIQd>?R%+AJ(>(({L)walULzr;YsaBU$lTa+;^b8ep;=_Nn(`C5Q4U2pu z?I>>k$DTcdPd?fA$AA1xe?N?lf^EZ3ezIwL+CX&t9}En;X;O_!BCl0FmxH_RQd9*1 z+Y{t8=SKwsBVE_eojd)BPkd(e>NUUd8*f>)`f$E*OjX7ZmeoxmX@tXsZEvnscRukr ze&Gw>oSB(mjOmT3uM}`w$OEOD7RASxD2W`$5mM;70R%)+At1}KR7GRRIp>nFiD0uC0Q{Hw@wqRTA9bW9Up-nf8{+0a*b?@)c(1{kH}M!c-^i~)y5Sfs7pkqR5jrn*5o!@ForH)0pr}|A$B$P*jVnX zU*551?bPnw=c*NJ`3ml~=H>Eq{Fpj2QuxB>H+OeiZj*-)%tf5ZckyWLQ@sxFc*l*u z{_Bt4efJgP<3&vqh$1m)@QIRitF@XxoP*4ujC>uVEpOXfF2}J?pFa8axBt%1{oF79 z%*(G|y_yCG^Z6Vwr8qnN!hO#b@45TOk3YUApD(zt)961B(K})!?-59VNCIi-hHF?Y z+fo>^#yAIRm0V#Us$PN;#*hPjIS;LW;_YRm`3Sq1xHRETkUeQ>a6o`1GsK8XRa4%K z1LWm?HEf~;6oMfAhp)-}@3OMHAeBoTS1cBV5H88COL|`_mE4@F%aP?9Ul*8>sHt36 zIW_rJ4UHK(Qx(p*B0)ir0+8E~Qz@r&1py@?0%w>r6lzWq_P8MZJCp};c>Q{Anp5NB z+lGfH_rRSW<-hxdtzZ0VUS*^LxvCR=O?Sglb& zzU9l8zx&;9V{C3_{FmPS?!Ty1W~7wGV#$ZXv5?{Lrt7q-aGK*i-PS-Mq<xh=k)P zh)5vGozT;&vvSd2^5OSO7S7XBwf!y;R)(Po?f+#!9>5U2^Afz7+jOu5Cb8Lnz9dFJ z&@hOBA->JtQ(e;z9y)Z#9d{f$bf{Xb)@rr=`}dEHjk!};e57RP=G6xW2Uo3HNRUT{{s!qCfZw#V4l6LN zpfS!a92ueL*bo3j+`es_$Khn;^nLsGOCe$f=DvH4KlvZnslA5#Knlvpj@xkRo zC8*(~U)~ez>!_!tQMM#qQ1HJZT;|`sr2~1E48K}xdyff|qX4j2D(=4Fh6DTepE`9) zN;x|_d&L!3Y~8vw?iv694DsT{i~sTO|Bj5+s@3bRy_TBpF%hj=wQAL>RUE`YyDkAF zhZo&aOsOd0OdPE{c5WHv`0X#u6G$P2J8p9MiWMtYtVnq~8{qaBn7Y-8)~fkH*tTsO zL=cofDRJNu7*cTLgNpLG{O%iWNO`aa?uT1$2`Jp=2nqkw5&$ZSx^w5wwh==#KJorb zG-gjVK*+wnzIGCUDJYg`WI?E>r{~5SZ%lcfyYIgHw%cCVDt5pW=*KtQGZg*$J|_u) zgb6~E7hvs*!W#^3~Cw6G{;?+*_8?mu%rNh1KgoPb1J=`vWO_q5)YPS z7HGgU^f9dXo`GVe0)s0VJAa-viB&>yc`JYG0*M&W(18+4FC7riejlrnm2eLrGDUGe z+3L;q#ddz?=>!-ubk~**>PTc=NDm{Wv=pbt0w7-Sor!>Rp6UxxHk;+s&(ttol878z zp~inhtyU>IHsgA;ac1c{BrqH&Ek(u!mjvuVKL)Y{N|p$4NwKn}Y5T+_gaLj1ga4WF zBF6pCFvx&O8q5FdhU{U&+rFZ8rIl4vf8Jtcr@cI|gl)7mP#{0R;>kVt}-} zokRv7iTt@V@9v&Q$vE>eQXV;g5V8fVVPbVEQP6;e#(ZEZ0ce9aKh4RAeJ78-27RLm zL#8=2>71gG6Hx$3jogihY{w=k2}o0QX!d^)BFh;CO;H^Jmw>a`&9{WPQ6B}+(zttY z`RiR9gP8vlG|^J*8*?4B{{+13vMX*}>ix=e$H2*sh8z&Wa{}cC1o5@_Nvx$5_iPkS zN(6gs`m1qQ}TMLmW+D?ml(falJ}CK_M*$XhO}hwwd6}lL937yLbluSVti6Qc$go}r6>lSV$sh|jHO+u=aB9;O%#b{!-sFpIE@RWy$^%^N+N(o}g zJOZ!pSJF}l#}OW$s|^jQ3C}8E0O5(G-kV6dTMH8c>@n=5NAwv204R!j?AWofu`yLu;s5{1 z@QK0wM6tf`zWJM zYKe)$xu)x?qH@L=n zIJeWV1KS~Q)VXv~w$J-N_UTW5nk4z=5F-GsS+mCDAM>vJuYy{E7;ZKwc0Mhyv0 zD`mQ5!Y3QGt{7W;i^-Zjqi^2UwT~(nOpT;7=3_BAOHA1!i7ap0_B9&^gvg`dU9)EO zwrx8$Z@yyr^5ur19yxOCsiz))^2x_}XqHIWkYK=W#K#l<*6$X%Ny{(6*64K~sD#P! zOz5u-rbdNv#<>teRW--4^7*3TVXv||1o%d4a~b&8RAlM)K4{0M3~ z=L~uz=pkCJY`74m22ArnrIO-_w%4a@;*>GQO@AJ*XNCM!!mbIC5&#rMx$?@Zw`_Ud zx^=5nl^KR{#~rt?TD2~hGah;5;TXf?Cw|9ZPe)A714G+_3H8}=@=Ou4OVPXv0w6L) zQ*(yll07S&Nsl8`axGNE$L$t%W2blJ8S{dT&p8-~G}ljg8VHjwVx%tw6_sj8aK=Pk>^ zCi@)$FveU`@kLj%`FvhgRsV}1fTn4eLmJ(2ew=e6>DD3=k)kN>t1a&IdRH1P(`1ab z$|K|IUqktdq&}%gS|d!qnCfn~)IRw}t(LN zRS^LMk(9DtufOeWzuMQguDiQbsZ-)Q61)dwp7L|6WdvF=PxIx`i=8lG(NeM4WMCtm#-{Gk$IYp@fbj z7F|Ioic%_-y1Kd)MfJ}vwrxvM7TH`e#tMZ(sZ`1r3c_))Ib6;i%92t5GjC1Q)z#J2 z)m5w2{7h*sQ|aQqnxZIOU0pprJyJ^999@P0LWo5-jqWnKuU4h0|nj^oXC1tQzFePdY{QyNR961vlokh$)fZQF}39*F2Jqiz_MZ3nc2e`=I}5^;-~ zDiIjK;J5em5wiEfeuCNZIlq6!{l@_mumluNbxqd?~@?P{LhY zr~I|Aea*;7d3LrsGBQ~%S1hYuuUqxHRjbvyySuk<-{CeDMt`8yISUvDO`86j*Y52D zr!X#Hir;S^2O!0D!1&Af7-Niag)54psG6p0nj%SZgrmyY*|lFPqli`wrp1!A>!=ptb3jj(Y9@m9eUm_Gv_>?&kqg`_V@R@ z<3GI%N-3+=DiL|Fw!nM2tJL4$-{0Slh?g#1^0JYfv1+yII8LEZux;D2tVLPIo}Qk; z!NKmHo{8~s%d)U(oa*(uD`cvwT9!3$zBa$sD;A4GLqom2y`!U}larIpx&X2))0JUO z(`?&rP(v?Z84=MijDdlHzP`Th?(WgCG0_-zLjW){J&o(v>$>i4S;m@{bmP(8-90!s z*wfQ9Gc)4|!J4jAxjg4uVwc^vF?DCbHh6Gwu(!8&a&mHZZU*D3WWtlO!XypNMucFi zan#RF0-~vnFOL-Guw!bFk-cRs^i-IfAc1U5;FNHSPPZx}?3QA`gUq!gr5qn0U$^f0 zwr$nx)rpBo!_cm{VuPk}(`2ez|Jk3t^Q&L|yp$pmd_-TIq5&nv<*~>|sDl1+GL5Nd zlmvu&qUBG_dnUvk{-JQiHDJ|hRnb(v88r*vg~KD|=E~*Mr%&(NwQJR?Rfb_K+#NFv zV{mZLw(TF?ci#gKJfLZs|8_@@9=-nh>sPN{?cxawcP$471~g6EzkmPNzy5W{wmrw0 zA&v|W4-O7)-n_X~DlOb$N5tOV-cqSFIXU^2uY7rYeB6sR2w-}8dU$yFdCz-ZPft%S zms^x&T()ePZQJ+UefQ&!Kh7BQmeFyXBS((haKjC&R;^l;Wn_#E4Gk%Za`526FMs*V z)MUFxKuL7+b`yZ zzWL2>lAt6WjyNqzA)F*!P1BeUfnFUW`RoD2t85Cj9Qq%G5`duC>Z!H?1ZCFy8FM6* zoTZ@5*T-1hoNRt5HPaKC9Vw-ln==g~XIV8Ngb+@>UVG@F#~I_hc5UChd0kIW*W~0> zcXxLntr!d_qEIBIK!q*-tdLw$bKYQjEe3}AOuTUyh-lkpr7~+6hH#{=8;UD!Qi^om zJ%)Jc;-zw>a>drID_5>U%!Gl)`WlT3a(?*Gp?&-I4G#}%ng+qv$!fLw=%bIWTeoi8 zwrwmp3y$Wc(=T1RbYTDflc!GFw&NW+Z~D!?=bjrK9li3(D@&!)JopDgUznMhIeGHr z!Gj0q=H>#U5db)2XV09OnV#OVb?cfnYrL2MJHHot%Xs+kv(G*|Ix>PSkJ5sxPNSi$#= z?Pm!W^FT{|m`9ErIehpqHg6aC3EB4n2gVuWr1!Ec>+s>j zM~)nc{+&8MfwPug;tI3baZPAwj)fKXmBe!Gi~* zU&L%CBz_r#>r63Poq~H4nKat?Q$VCU4aX>hlFisuv5*i1Q@#EyvJ|Qbret>(Q@1JQ zWz!mQ`~%YgU4|$k(lkCgI);csIL&{;#k$X(yKvyZVfTNAY)^807OU=%Lh>A@h{cv} z3sB#Caz+g}6eB}0y~LxCj&Kl}5Dr6Rj4PbE1wxI3iUGvT{{qbrhM`x7iVz*0o3W-4 zW7T5t^Q{Bs4;V1v&|-|N`*|5y$S(`k9khZH#Ms9BR2%6n0{O8|&lm91;(AUf_tI7# zgzcLG)b>Coli@@@+$N>6haCnBr(Ptb97@;tQ4$Fz}5^i z1m9@&#zf161R4fQ$uSyGM;d4`SQLTbb{A+etPq99&?XmPP;|3H3*D?bKy0<)v~c9$ zE=H$aQSf;^szz!f;$HO7{Fd*nD71pXWudtBBX8Fzp+AG-^*d2gpINg=qiNC;$@XLG zVf-Xc6gXhy+Z#$Qt-;og5O}Po3AQc%B7QNTKw(pilv1$FDWNi_C8fbHx2k8F{}H&O z|4pNh9l?>J5hA6y3!bTticpG{#N<{FOg=BrW_{9(3dKy#nvc1~c1ioT&rI2Bc4K!W zq4^10kqD8La_`=~v$GQyFJ8Rnnr%{&5RPrzmSsvQCML$7dFDw~QG_=eR=RbR!pnb9 za)lUXUVls|x}zwPiOqs9@~2`*5=oF={RjeZ#uir zFeL3}R06P#VGn-LQ}sbfh;RsI<)RNhf8y?7jLOECZEg16c*nVUq{G7D3xE+Lf)QF( z@A0s;+cC=#*6|Tr3n9;-QFRm2ciu}N#OZX5a|jX)K=KZHa~)bwNKtV@AMS$zNo=oJ zF`LE<8s-=~we|V%E=PmP zbYmP+!PrTQIL0aQ?Ej+PC&uAd(C!MD?ZcG({1ki8TD^oMrR1DH_~4Hpee{82$4>6r zwWGVc3jkDAo0}_t^P8W4|Nr{P@?E=av+lPaVK}Shfl=^4hkcRIp0-_ljJ%G|2BKe} z86rd8n0ziBNs=+HXsSldnvI0k_IRf>f)-Iyt-zx6u~U2d8ZW+-oIA=M9mm3DSyG6J z6qmkXE}f1%q0BErF}oJVgsDx{J1%5vQb@4l!Q9ppQp@NgL>CHud1DMZI_Zyr8N7$M z>Ll=&$@}h3AqOSe>79Zzq|^w-HGE+_+(XR<5sbmXF*3m@0(koI@i1)>W`>EQCT|~Q`)<-*vW&4x$HX%7 zWx4p3_dkb+M-@f6aN)ENf-zdVc5Q8T?&(K<+Fi)M>Q{dCOP~Im+QqZTxtm8MFTO=g zlL2hCi)WB4YUd&QGZ!J>4uo_#=bS6<40eXV9N}1wr2W0au};4NP#7>6I?hQ?@oU|jKRnK*kcE%G$zzL zVT@;uDL61j*NuWZ85C_wB}v5&lN=o_c*d6Rd4D&%SY`*bDUSIV6J{3$(8A`AZQE`N zfiWhfM1%`_9(eT8M@`GV^Uc4ib@jLW*}p@7!Xpj*QO>$sfh$rP1GIj~LE^CTtSMWV8L|Atj+m z6s&Efkb-XIeJQFLlTw$#SN10fh$7n*2k|GRH^T?m|D52%_c09k1T+C8wnxRj8ilM> z3p^!?L;2&f)hB+0*0uAhJc)L zmq18CWUiJTxYwkZ{A%80s9yF_|6YylI1mSEd`@RAs>sS>f2DDK=gs}Tq) z$&YFzz8ys%ueOMJ?Cl~xQELVO#jYY!7~D^Qn=u9tyA%Z^Tjk_`c` zDndve%~JRukkSTjQ-aKRf2I(C7StmiqTAv|^uE$cI(CNhq?eBZL~5N=!99%Rd72Qk zulYGk`!^;430a^g%!VG%Lsx{JGlem}Q)>65T?_Xx5Vh^QBBC6FLytU|E0$jV;@isA z`lH|avZ|`d{ex*)qUe}+O3ct?LV5#zW=v7J=Au}x^eV2?3y2`8b@niY?I55yIx=XgwM~j7nU*Z&Rh?!aAc0VJ9y#zV0}3gkpt59Tq7l6tf4IFJ z?jXV_{M$0v)#G~~xG!HQEFW6-lxcY%!nk-ky&TCuJ0w~;hT-uXfq=8s@*FDJM-nVEG|-jn<3Z=p3!}Qc2%kvhn_`* zKcdQg4h_YZfTnO;rR`LfMmdTWlm-=GT3Ruo%w!&0oZe(knZ-MOA_yg%WlA+OS)7cH zfUHRC1Nl=OvFSr-je^AK15bVL()l7tRa41Vc0>sSi!tUDB-@m@K)K}uVSMcF**rSA!pP3tyc-iPeVoq#>X302z)yttF>r@8hj z8e7jCt!`{9(AdGL$?63AaHF)qvm;y5_P&^&`$0@GK(sKOl5Rq>vkxVi$?S!*m}wWt(f&H5h%G_URAW&x#?QHDjY}Aw1$q2Njjk)$tC~aF^nE01Gtpxh+s#~NGyyS zdS-~VuHbK2X^~wg2gF;y&@8*_m&nHI&0h79 zcSUAjQVNY&WYGzuxuamYZiEB`Qc4f3@HJb6N`})tV9XFCX3b{D z(BKk9`^A!XgVNa#A*LESY>JYb8Iz+WzpLH>6@0*y`0R1oy7}DREVck4xk)%X!Ld&%6F8C-Zu#p0+P{MCLM8Ue7lM$>jH zGmr3^0D60SL#c9i6i}zvfljK+upOqCC2sbEn4zX`HU?U$5q9Vt7WQdO2UHD%Znk7 zM>hPn*k*=JR8TOHxH~50Lvczubi~ptoiG-DMNE%ZD3Ce8xWkZye@4mJ2tuPy!jN~2 z*WWO-F}69;t-%D}EnxyjXNAZZ3}^ksWgfK`#G??2{b4C*EsK-k;VMFiblA#&HUIEw zFA~N1pxGU1(F|~|@cGbD96kw(Pm_iAT07~jDJU(ekRzq|m~D+;iWO-)S2(QDe1o14 zAa4{(rCx@OF$apODlUv;nsvq%##nRqIf2C35tbQY_XXzJ+S-?PkAaJb&SQp0ZvXIc z@J`z)Th#9HJH=$;*DnDOqJ;IQ46$7sOOS3M6D$FSGK5448xeRPY!f(A`kBXMek}~H z9i(9e@f+ax;wciPVf$D$6fpQs{mZdW9;`%*Ick*XMu!0mjP=+&kOz}26~>u-h|Vg;4%I2eC{m0K2I6fP zk!L&rK;f#w5CO1M>=IHaTy2K-@!$ zf03eL$NcPBn{TzLehyd&#JIKtpC3nyxc`)pEyK7r$t3hFpgb`i8jY(K!;abo+D@{I zkH{llEd@i0n3I~>6T$>UkP-jn(UlZRXnj7w2q0tQHwUg;S*;jOC5^d{K|T_bDs zn>TfV61a!Iq`cWoNU__K;Ec?>l(TKB5Ho3^G&8d(wxrY9H8Dboaonz#!C)+6tc77S z)R~>ecK92l74l;=i2{k^IpeGw#hVj~alaQ~7viC3jGqG(H&QVA))1S!>dZ?>j`kt} zvPY;B;zf?)cA?stu-6&%39zlFNXg)Ssvsp%TvIe`!Wic|T=>vQ@m{#WJH=Edr+YD| z*n>lZFg}A2Yx5{IV2X$VwsVVv99Dor+Cn-CS8T@-!sc96Jor*bK}6oDx-k1fXtl{N zIx)MP-e5rqCN8BhvR!;i;n*+{&~KynDf!~qE-b-z&TQ;~2+6c>WdjEwSZp>QfG$f{ za0U&9u^>sOkx;tZk%28HPHAFFwJimMtFQ@K+>k0m0y9f*Q0S!0(*?*~fz{zR2C#pO)|Pyk4gM2=$tAT<~tW4z+Ps>j>9Ornh0#f9RfA-y09LJ2Wi zXf1544U1d!ti2;C0eirXQcP(mC1_E~kec$3I8I;gPEA76Fpv2)uViWbP6BY-Pl$=@ z4@oL_UUXYBKZD&Vg;85$mgM6Hkv*i0=M*tbDE!z=1hvOSYI8|7*zIk0M0JKL6ma2N zob;zqQYsl+i<5@QSi6hq5NDQmTA6LWKA5oO%9Ow*J!Pxl=GR8>_J z#WYPJWj0+BlZsXql`9G&)N1uuDWo>?)A*&PY3`7gdcEGZ4>swqh^T2QAlB<<;Euso zmA3n(X)0%&h)mO@4D47*WEh67BchPfYIeP5#xMderE5A7)lCzjLy}C79D$*xX|XJP z*~)J+CG=uh0#mn=g0l_$Lk^JID6O=aed)eJgbtbFJTFQv$ce!@ea3d7WjUb-bLB9D zGEBUWs;a^E>9GC{m#Bq&L`0Qy+i{Za)i&H@h`e!ytX~O<31iHq8No#6<2GK7rfHUC zQG#Kkc1i{TG+j^XJ;dbG8-FC@vO%2&e8?JR!{dciEZZa^MOCD57)yivq?B{z@|rbk z9N(^F{9%lZjEoGAjBMS!`ND+@>(;N&{K)>)C)H}T;Y*iRuUX9)o0yo`xN##9q?Okv zD5J^ANz1ajySp9Ru2w25SFWVa?II$cJ9no+Rk`=xdvCeTG42k<-bOCs(Xk9*71LGN^5teK8^0fP_j}O71hIFuam{mJr*bb{L5X{3V;AY;7>Z zoRI$asqtv@U<@m8Gyxfpk3+lCgFr-USyrV|UA=m>OZnFURs_H~KY#vwwOZ}%?HwE( z3|;}#iYJ=LjH;?fjvOJPp`oF!t}ZF5Q`A}4w5OhV#?bZEt5+L_F^{8d7{^NF znW&nhdq@f?gyW7t=Uf2*#e;lwJ+Ck>o8OMLkcy(@^ZEY%{;8=c%d%4X@`Vs<*RE9* z#kTEBmo6cqs;WW=LS&rh^Lbs@5wTvcr(8rzxqSKZd_M0u&gkf41q`zp^#wN6cQ9gQH7AMB<6Ctd_Es5aEQqX5&(B#fcN`+KJR)85nqIe zD3{CWhEblI^S*-3LCOu!5fKn{UC-z9{;xZZ)2*u99j@6FPRn*?9Y<5u(0f619%Wm= zsx3r~ZQzJV4H3m8$>UVmJPQH*5ex+(L`aAm5}qJ|MYmOcMIQ8(lr3mC-aIB?N=Sh; zxp;}(Ly=%V(tbGSilPW1G)>Fr^D-mS;QMib0o%4+@tcS8)pZ>Kq?Gx5K9|eQ;|jT4 zPD<&%!hEon=6J#A3CeCi+$+gc3CuG3H+onS-4SRGRHsO{3J?HTwppuJIb*7-&&|y= z><0j8YMw}B2y=lk_U?DTdu(j%Z$9w}JI>u^h?Z@=@fUvKy6dj*?dyB=kw-rFg)g|{ zw7kz$tJSx@^{v~sZTsW*{gEx4*bS&uDtFxRl2^Xsm0jK4r;eZa=YRcdtyXIUl+<|7 z&}9J-MIBc?|Jcbh-8pqROdtR-ZW#LQFTC};-~9F;JoL~AvcJ3Ij=-SY`0JRs{^tG9 zJ+r(gH-ys!2*{Q#8|>-sK7R7J!d25W(KoyvB3%DM!ioXfxF*-vW9W(`upOb)Oy$(M z$&=?>Pz7S6_{Dpe=*$4lxvHw}z%TbkLI}rk{N^fjNMZ*M5K(t`x29>iT<(4E|C0yq z|IyHj<)8TIN0$u^4J}{(+_TRrisHfkZdS~1lLWHzr3)|JaV2N0N!LY)Xj;~}>Du9n zr56e$rDu(@SI2e^Pbc&wVyMv`&dzckj6{t&8(lK&I zwnA0|Oyw*%6f_+DB$3T!Ia3L_*rqdtQ38y{XjDZ}HPv7Yy)F=ih*U)v!ZNM8BOI5@ z9g_L-s@3Yf_uTWQH@#{5_A8%w>IsD_q0dZAPyf|l{6(!=8y_G4i@*HK;gOMiF6YWY zGcQZJu7B%W-}>lBKYHh#cmCVgzvdcSAyG<1kO*X2)_dRkNBMkiWMpK|o;_dw>Q{^T zJRmk4qNW-R>wPJ#zOBXXp;z3w3lSgP`?$eLojd^!z2HSJx$9p(cdA-D4RFhMzx&nQ zyS+0jqt_u}uDG_Z)b+Ywc#~yWd!Ks7u;+~Gux*RCzU|lgdW-LV&mUB)!f!u3mVeh} z%o(`r3R*tE2M1J!maZwB8EUSFh_C3E8&}&;9+(}UX6_?MDLob78iqhBLf3U&R}_VF z?tzc)$4t|#*X!;$W$*5;9TGxB;}2C;Kl#Z|G0rayk1DEi^R2hd&dwA|r8R5TPESv{ zU-9lv&FPzs$1v+J9vV11G&DRpxvZ;168!Xu8+v=~^XH$fR(qO+KiQqWMQ(>oM(q<) zzEP9Y4%_bJhuQ^IzPKrcfdb<}I}F2dDTJ&YSrjQ{ne{xd{WEIMG6ql+&^5B>wv!)p zcrH&R zx%AH^>yiXMW2}B~f3f_7fj}X5T))o!k}9X6NQgrP9Xr z8wLjYzw^EC`Cm&)IWjWx`@jGDZ+`QeU-8nHef>M%)|BF#U%CJKo5p3Gs7|6T*LA;h zbYja{?cE4??bX+8zw*j&edpU0q^$7keUeh|Uui5~XWN!-+m>bRzV%jfddhaTpE-7f zz2uGy7tWsqI1O-^2xJ2ZnSj^%Q_2m%p>C`;nYmgRFs1*AN5N}jpInnsAC z!pAu`3?rAzsj8}~Dr3yH9Y9byCnCpj7-KF5=ro_F#R3*_+=LJ}-FPDr9XWDj#i~_# zO{-O_oZ-9P`K}F{HhtmqpF4K!n13D6H|vHN8?@?GvtHEHx@9@0ElC13;8G%T5C)4S z{nD`P?vC1z%hdmvEhCBO<0ZTE z+&Wza=^QA$Xl`)#HP_wt;|KrIea#3kkd$+iKUnuycinz<*T|UpB=II6SK}xVkyCra z?!jl5fAX0pAG~?=A1HDDk>Q_0!X#|!22;KXU z5)njcRi#?b<%~+DlI!Za;k#e#ajdSM-apvC2QHjH18@f5EP!>(Elx{oHw4VP4&$2B zwR&b|wpc9I>vh90Tr9Y|yX)%bZGX#K-n#F=q1dR!y@005jjOF~8w-V;)m2go`FyF= z-7~bQ&^ypGu%=KPEasGAjyA0y*s_)i1_~j)$=KwJxZNmC*L6+PG);3HyHqUx($D|g z>tB0kUvF<;Z?F4%_XDkyhUhZT_yX|81hn4nZqAsHL{caW48s`g@3SqNYnsA&Z*T9q z_3I782u&&Q9I+f{(y|I1@7;gEH0#2)9ow>P+qNvnwrtB{Aa7W?LbFV2NgPq!7@|(c z-?mlX*p5vHJ1+esS^#N!YzJS`@a?7>h_QYmB@MhoZ2SX+P@%N%xQ083lb;ZS|0DoO zDedZ58BR|@)pWqB1VpNNU_gp#>c02Ne|XU?H*8y#Q)C?o8_-Ssk0g?F*nRK%zv_S9 z?KfPpte{avsz-7+&aAuhHLtp@WB}N8gs=?9T}gm+X87PwU-Fi{0*RUx4?h_X#g z!6Z|Q7?G8h%*RtiyBS|XN7!|<=Bi@TG9AZKO2zJaz3SMu!WBdY*Z{97!5i`%TP>%* z=iTrA^rt`lkq>|5@b0_s_E$lWf2=&i z_r33r-ujle^_Fg_Oh1zEhTr+q-gCn}@BD@HH*d6s1J~f6-{agfJ3IHoyYFs5G(;HG zZmtiO+k8{iVbZp2+a4SoteIx9T7K*M-#*trR2aRmAK)m!34rk%Zg9G~U~J6q#rl*l zc0cd-OT%NFGa*E=Sgh4*nx-kL_T*3RyLP$qy>EQ=9e?~6S1d0!xF%ahh@_O3C9hbI z8&oyiE0ZVob467v<&A5*g{VCAj3jE(y7}Zu zZ~o+SxwB`^%+Ait^o@V?+2?Wv<3%^$IzBbAam}hDC(pPG>o`thI;PJ;`}aR*7{B-X zzo+MmW8;%oT(SN9#S6AAxx&}4Ur*9uOnJ#2FMaLn-|+E|eE8|7p7P76ivvuKjXgIr zeMr}IN4#+3x~ET{*|}nQE8ry}AdM?W&zxDC&)-wG)~{L9d@1tpyXQM6H_%c_>o2wQ z!V)49qS#bnB3eXA=x};gBgKSZhW5P#3mU_Hkf~}j5Z1KGz{f)kLXcTiIh70)!Unq< z3ThE(QeU@EdBN_N-t}{X-Or8U@F;LmAzxZCOlb~8!1fq-uD<3)ufB5YnOSyt916mj zTJy?VufOV&ng8)|Sl{h{Qv=505|jRHfpf9@h7*IYd&#Z4HcrEVG1NH>fs~RwAh&5e zh@^u6hsPkV!ul(=5AOQsyZ0Qv;rIu2F-ySG@*h%gu%EePEFbE>Y0J&u_)&hFIsV|O zZnb;W3vU^mnb~^JkMDbV(D zTNja1QI)TK<7+Rt<<@&2-u%4R?mjtoli*vv{qPG(00RC6)^}-<{vTZTY3o8d@Z+DNP zIGWKtu;F>K&@YvOB#lTBpgBg@@?E#+xq_xpsi5?9(b|=oXiQ!KWXwxBD2n3dJkFjy zJ#y)irmGW^)6=uFwR-)j{m*t4i(?bxyRY5leX^nJeFwn%5khFXe*eAqUb=Y6G;4L! zEEJ2gbFB9?-^aNW}Fi9_5`i>^1mGs32Bp4MFNe1;|OV0e5Y2} z#4h35gZ*!~^XGq2FZSGX0>>**a{!&1AOOJDvGPgc7%sbS-Jf6cvY&hYu5AyUV`rwJ z?f^)8+lH0LXY*54P#JI%AWW}7Cgw*tCMjq8UOaxy@4xEByN-;5Bf;RHD*$eZsSqS3 zH1i)q2(oL)Ag_SNVY&)uXYuwMwmi4{pGLLKQV1zU_zulkvr-5U4o8?X;qat-^RCUc zxtT5<5a9Tvr#cVAUUm4U`#tb(Q9zB^y@vj^Az&KcZj zN!I#`6wcH0ZSf9&|78C-AXUr5${!?(>*r=?HBB>3 zvs5Y(QLa!Z%}v_?X8=wDoB&`y`^KBD+V!>1{PlIu-$_IaTcAP1P3T_f=v`o2rdhAm zYC}Uqj4?yk^Tn=*zx(;$edllg(|3RRq8oRu+;rvhU;c~F-2M5TyRL0SKh1o8Z^>RU zSnTR5X&NoxuvvC56Qm%p#sC%|Ago$q#g1FfJ$0`wV4%Us#gJ{^zJ1G<&Bu=%aBTaTXP*t>S0p9awlOzrZ1UET2&M#X2n%3-{M1CGqxR^k+ADR!CJc)#&te4a(pNl0i zO?s4QSdtzY#4z-AQgVaoL5f#L7YGgAtrtR?)tUpg0J0r)sstpZi$cxtN;YiWdO~HbCYKO zN>I6LR0TLDXe}%^P~9slmyGRaw*1zMU-10V3hW;RjvxsH0XQIp!(G7DpFSZ1yDA7w z0h|Lvs5)?FPT8@xtF-A;_x|8JFBtv|2ge_Xc-c)U1qnw2Z~$At@kzT#W>E(Pps2!` zY2f{ve&Mc-KYB3#lPCYL!hkyAy4k_HT6WDZnCfA#Ix4-c>U(Rcps4)`G_ zM*>3t5*A32*MKu1tK!EVF|}#4)6`wZ?WGjxCGj^=DV%ZNQEFeUAKlTh$%)VY%fEc! z{qK9SaJANXPSRkNSEaPfk!>u!!WkeCgYy}Cb^ZGG`epL^eX-}|vo{?qi- zwSWEm-vxDu=Q4}d<%{2Et_P~u- zthoPF{oQZ6>#N`R-r)A@{`6O0@f(*ejEx>+E*%U25iuqPd$Fghz@gUFy$K854lx8o zVJv&Rn?Q*^gKYZCREin4Frr<0W_0E%V+V{b+V(dT80;vSrH# z2L>wTDNR%R`vy)OKVGR+LW?Ykkcd0>Y*i|Z0b^_Px%*F^e*M->Roj`fEg(Q5L@cOk zUSU?Hu1KQbMbd|sr#Su;v@vlsiwP{B0njLQ>PKRyNB{s1)APm8h)lG07$z%hp9Avu zap8OhM}})XW8u5-01RJZSxNzREw4z0@p9dkR*fV{gcIz_bKSSU_I0nQh}`K3&^YKE z2tX2WB*&^s0`x&Z4CELLK0EM+SHJ32dd@gL4Jw18=1Lc+463%RgPl`BNFV^)cEGNA zK3Pj|khGZb=*stOx&DrquI@fJ1qz3Lqw(;z1co4{9Y#V*^1X!wBC;zIU?2|~2hM;2 z0D_b-UW3>F+-vTA=BDl^{&IC~9|Iy}LHtVAZF{f_nCm50M18WVav-H4I|Oie9Cz)$ zSzdF^55D!4jg$ASR>oW^LC-OjX2p?UC@tFb)6>w~v+~Wq^Sj^p(%|yZ`!}$23?wKZ~fJ`f9NYe z`q{64(6~x{gVMcq`>Wsbs+<1)Th6)t-?{FF8@)B`?at?mUAnGvO_5A-8;JlIBj)2_ zmQupt#?4dXXH{M?s}m|0NiB+&S+i_&W=7`nIlJF}^s&cpz4fL`BcmHPu0M9{#GWVi zN=L3*vEtnM^PVE0kn4x|`q#gH+qP|%WeFjU95}FP{RUOj`g?nq4K3^M?_0iVMWr%3 zJ2OR*x+(V}w&P6I>w~&(5fvG;0B%~b?8MkanLxE|1(5(4qEOW-DM|G6MfqsU} z1+O9Li{d{RZ-EjAw1hhuGmM`~t95CG9kIg(6S>MUl1hn9Wl&-<45UoVj*F!bk|#aH zza2KS-%@~G)fG??Y9P?6OhWIoa_5z|{p{v7Tc@m?B*>{PjEo2vg0yOl|LJOBDSl#J zv+E7-dDXyRP3q+e6tuusG!Ao)a2&@HjfHcB1ETICU|xcglYOXg8{6=rTW+{bpgLZL zyapVbRRRDi0RWg%_zPQ_@rMMf$`A?~D7+D)GxzQQmu6t+=4G_%e?GhC{@&4_tgAfk zpyr;z1`h1l1%+G~R!65|*Ac*JSqLD4i?hI4;U%wq^SPrtANldW?#i8JAX~b{t_cF! zsQPUDj8|d22DiTIO;+{gKmOFat{=(oRdq9n5NaHb#*UGytH@!&BnXSz zkpWW(D3)Ydb;dbkyk4&Y03(vEfrW_P&_WhF0yCl7psWn66GPhB)7!US^}>z$A-WhU zod|oizA7UxPgQ5d&2sZf=ZnDS5Mg+N{o$9^ zJ~ua)D-=f#JW=`9*WONa{eRrs^{0PW{Hyo9^4EU{h_2mr%{o5O*WVuvsvIFVZ&<%c zo$SeJtjjuf>Y4GGv!_lx{QB3wZq3RSH!kD1nnSPIxA7OZ+@h-L?p;@}=aa>rzSiPM zvK^;hosr~DUiK?0a>)f-^kSMuqRg1kR8kb_0dw9$xfVp>imn^ET&`ZPkByJL-~~5K zO-;Y&9q*Dt0^p&8N5;p;g|MT-)L0oIR<2yRW5Uc68# zm&eA(CMPB*C#M}Dhet=8W)q2jySc8LeSKrK+Jt3In&ySN*=HD*kQ`Z;s`hAFucmdY zstUk~6lCt9q4}3D&BM$j#pdLaI%1Lyh{b~`P{0J)f~R0DSZ9wNs(pes4f&DDR9;qz zlJZ6v2S!jznHiBJA;77roD2?}oT>x+N-uly+upx?(=}DfJJis^9EkvGHq4qZYl5(A zvRM{CD~yMVufO^=zty*F^|YniP03QT;I$8`)3c8?l@P@Yv>d- zC};pqCB9A~QcTtQ3654w%3`F^>jrsEd>lI194gpoCpFEQTSvzb8~?bXvV`6i|Gh=z zr^frwt$)vf2cNz7v;S1CR-ssW)#1b4wW|L!e%0?;g4SP!W0G-t`EO0xr~3LI1E8t} zcYm~R`z2kF^j|~>;hr*ofd>)Uw!LZVw%_}e*BF&cxkBmlAN$~)ySKjV=9}jx$A9+L z8~*+e-v9j4>bjr?m_|6z*B5Kd>h;>IU-P>E_L>_f51c)B@uAQC;5`r2zWl5Azx~dy zzUJ58@{51-o<9<#7P?CSz!;av`g(f2z=%kyDwEO%kjOL!4w57i0Fsah-Te?Py~gsY z-piQbI0Bo@Gl9jCa@ER}TeogO#&lgTmn%fD`?~8ZwaQ(0-Ffp1b~BF4R}9U}%z71z zt@=wh^=(<#TyxFD#Dv=$SgBNIXJ?0&FIPC<`@|DMietx)&6UgJ+R15$? zl$0>Xkm{!3MT2#XvHybFA2U8SWypkw%n62BSiHHq*fNBH5Hxh7L?h)(<2OH#NCZMS z(k$0)s5xL-HaDk>=EcL0-d{(kJ78L13a|wTLe8k9QD2UF4cBpQNMK&hD)os==g(Cn zm=4q(umlJRjzmDrtJG&uj{zv19Jfk3m2@g;z(9g90ik&iq%CoI`I*zl4i}41)Tmpd z9)tP}=*vNWj=FTx6<`Ra0Jn-qh=%{-rNhCl)Fn6qID?!5Jq8Wrs4oXS2K4IGrBO)( zLa1LjkhjK#B)5h|N)kfUEPKwxvV~O#Oxq#5mQ$dpQc0sO_nCF-)~TRUK_kZD;*qB~ z)HylS;5Cs%H!Drmrj*-YJp>pr3z z84~G)e}S*~Yd3-iB=D_3>cb_%&{W2_VdQl^r|UT;q!3aNkPuG5_l&I@iG&_?%CFq< zlFH*x|MbNls^0MGbK_%`>FM1!-SqZTr~2x3@`Vo3{JD1#o7Cl3zpPM}Q>&kU(AhA0 zL7zLP-+s-tFRj$^J*z2 zL;Q~)Jvj8@w|??lKdqTo1A>bHXtr&SkB^U!k5{WzA%vK3Itc!ahw$^ zR_xxrdvbD8Rn4k2Q>T)ukePFsk{$teVOX?R2mVOgf*IF@aBeTe?+%+1Y>oWHoD zkYAU}$wE#?9Iw_&hQ40Y6osn_*Axy68E0HmZRzZ584vKcuXfs$m-4OHKT+7-N=q%r zUpYb>7q0e-FYB6reak#PpY2MNRD_n{Tg{RZDbT5@j0^=76sj|`qx_?hJzqKflW!aL zMBad$0)|SuLU{%9Dil=6DFCAGLH~l_`q~ezJ)hkB#Sg32L_r5b0bPNdLOD(a74jq}S-$nDh+a}qHKO6@D zH10m0kd~=(P&w!v3mO(x%&TZ9P|%R76VHC<@9TR%d$azW!7ON0JG&lPsOw)7&3q%|qpZeq9 z`X$SV9#tCcfVlOvOWt>ty;NrVvNQ&T{4>y}N=+wnYIGq!BmEQC0B_H4dT zIDGVQcUO0@RGgTelTtd4Bb#-=9)4vQhT}Nr&Yi2(YHQZ4v2EKl%`IEDeD6EoDHQU^ zfTWviVUBPNT@R(EymCgAf+N}hnvNP?6k zJtU2Qq)n3iP)DPUPgEp=f{g-qNhBqj2&w`I^sUeRE=Qxeq1bu zI%|ZL+xX&-{N;~p-RpMjT2ncHVBP4yo+}JK*xS4J3tt$z{#tMuRVU;2~=%S zApVeo^>4cXFFHD=th;*K>o)u!^Y34E;6EOG%OjVbeDZtcW5=$!?Y7lI{H%KsPhU4p zq}vRi&*vY0{OQx@E-DIlvki=MPwW&`L1db$>NzdY9OO$i3n6m3T&a-%?mZ8F{ef@Z z`R8|5`YNynU=6?^076kMB9NvUjIn${hgLU!EB-KTF+R=8bzYg9shQ>4$fRQ0Iyj6R z0-Hb(I1+3IHlLfURmLsL9v{CrJ|k!5Y>q8EFQqh1)3Pkvw(E5h5ta=Ob(gwtzV+tb zzP_ocsh*x*+p=%kebeOh)NHxt*tTh!E;+G3Za~E6KmYlsPoKX1_S=siKVGd?T}GC^ zzP{<1nSuU(1lHA6;)-GzhGUEV{=R5&ox9|&g>a-)8IuSWSH1j(B(kLxL_lQK>)i|; z%c53M20`K=ua1=_My6^fMF80GK}z{s6bZ<5}akTz0S)X;sb;oOiQ zD5>^s`ZFg!`&)az{`aO?2SiEaNN}jBkVyKgryL1+W?rWsvk!jv-#_%5wmpd)r34|t z5smu^0*Am7;7C8T80ydlA{ungZ9Dqmum8ob9eV0f3&0d$39uZn1lk0S)#@s5p}{1< zuG$i8iM9kwfF-~bU=ciW?{~iWXTS1-v47Oj5`^If^2UERa9B47E(DkkSORQ8b%#uX z$?55DedPC#fBgeD6;E>X-M-2A0YG&Dwgk%o)1f*+)vo{WpFi>BzkT#p_ULl0>_~8z zTLM@T$|lHIEHw$kj6@F930#a>u_lb=!*fpS+r=Pvw+zEnUb_Q+W2OoRvMQ?udb?esI|N5_YojLQ}RjXVo zf<_%%bDK3ybE?(<{=pA@xR{#+Afk*CswtIV`D(GBpJif0aVI$@2fw)_rCjJ zBft>Aa)3O%Z0MzrT-pPO(h*f~8!Q{>x)8#1JzW7meZIV+zrKFm+Iqcye&pHZOm?ka z$y6>#IKTmjqts33#DRyam6=+dpF4l?^m!Y|tuJrzjz}r%^}3=cnx+BhngC5zg%lUg zo!524GR?{Iq-ERB+xfgbd-uAQ#%DiTd3Z$3=kum%e(6hJ>h0~V*Xu6B{OIUtty&!z z=w}RjdwLAR$Qe0ZQ-_B~yzWJR{DBC%u5*A3rsW{^>V{pfN`gw=G)>FZ6bfS9ar8p& z>Ynb?j+7DFyNC&yhp&{T2ZM!Blv+|(m@kB}17Q4tP^AG&PbL)2Bwe!}OTMjV<#()5XBw*+TuMNlnV6#44 z6XTD4`d!6sFS+RrZ?)>g2qd6GBuJmE5;Ein<;LVH^f%&#UgT=!Xyu3R{f`H(z4`4Q zc8J&QhE*un9ZgE7A;XPl03xt!7t3H)z)(nSs+O^!KiNRN$yZ_PtO{=sVWBWg?Kvfcu zl!CE`bbZEg9{R_B-1>@FY+kWqy=4tpmUQd;u!#yvVN2!W<_{dd`{ADLSLS-U&ph-c zwR{QYfX#t!!aWLSn)bkFKii{e+ji_&W!uXv%W;bogD8y))O54@r#|x!lhbpIG3JZQ z80Q5Aiz>QP-w}W$MXQxS!cjOnGdKgQ09F930KHp(@A^Od&JEwVdG!kn)D=xDGDqjU zQT*48O|jLtAt$Hl>@Yub`gD1&B0(RUI9WYE>`cvYt7h0WwLVJ|BgdY)yIwcT<;vLD z_?Zi}vzJVNtF|lgwr$tz^?JQ-Sys7f&X&uwv$JNse&*DvYPD7<FMdMTet4nv&Xco-kx4$thcAPR4nC-#bT*= z^!SM&e$~i8a?bmEx-B8M|L1Iy4fP?nGwOChnje z0pLitz^O$u>bd0xb9TwcFWvuldw=l7iSdy-VbyX!Dcv(3s|%6+}PVq)S~qNKBs#P&t2VJb;%}8dE)fhzxv0o&0IJ> zHa6xzX^o3W(2F{(0T=>U4aTv-Z}0xsA#M4jGx?R9z5ptHN&8Wa=~ms^^Yo!l|J!}D zXP&Fq>n-X-A}J+f^6-gTDQBu`j_9nBhIG?D11)70!f|dTP&(D>wUp_QCH6syL6moUjak{#eGbGC@sj3ci7Fn)ggfKKLFEkl2 z&|w=MeAI5LT08k~$MuBSUG)@;mDIBCg~+il3y?GzJmwWr+Xmwqx-c0kjCNGUheR%5 zBxT(O!O)hCf{~C;lK|WGi?yfz_MxZm@7{9rm9Kr9C0xV?lGv*xz{dQfIr9C3pWAPi zw(flEpUs)Hu2dcW>>JPZz3{46{Dx*|tw)H|-Gr`oWp23kjW-`1cxm5_Zz`<2ngArU zy4Jn15sld$3{F1q#oWyd(xq1y3XgvAi`TyNrEJ57Wn*Kfg9WC3+0u1=YV`CyKf3>Ax4#eo z7{b)d+`hvnR~N+FU$psw$Dca+;Ma%<8IR&u0I+&|^&Fd1oDn z2DYa6IF4Pe%$OEVOjJ&utL#69b7jFf#y*TYYQ-z(wQajxsf6Z7xsiuUGLH?KkVe&= z`&^YuWn^T;G)>2Ga=G02`1pkj7oK?HiQ8_yHD4@o&bzz1^MwNE?7i>%lIW z9>e88@pJ#eT9+cthDk;uv)4v#1{WfR|GO1yBDEPtj&W8hE%n`GlxYv$rHo7`AH%65 z<(WxSRpjiP34oGf`b7kQ%ET^s`uL&I$1m*b>K$yPRU@oLt*;O$Ag-W8$EGSzf9AKl zcHUV4(ZkBQseAT+?%2u~{VK3P6F4M~lOX_2!L8HxocQ)rb65WYFRdT~NdbN%7YM43 zj!fPC*QJRkRwnB$05Y_B~|n`?srd!;-UTWZtw@BrMyp>ZWP9sc39dJVIIQLF^D^zu06oDhR;P zCERewJ`s`PE46eVIPCG4bF_C31$njPmZjo9TWrl^)> zflJBNJegjNUrnp6IE+unj@r-hz0%ajboFw=~=X$SzAsQ4Vz(A*Hv8;j2qL_&c%_5u}S68XX>*Rw;+u* zRW`YmXh=1+|Hpq!PfvA~N&xT&?|m--PEAea^LaNf6?!QmDjLRwu9wF~?pV3(&aMp?=BnIk zbb|?^wW>-09C6aD5BBxjj@_7D*lwIr!%0t^CQXn`I*ZxLNU{Val$k&%wpll8Uw6c! z#GYG9oS&F@&Lccvq5M50j?40mq6*E*c2%cSo;dZL4|QtfnGg*KfDL%IGB_E9E9c%Ms90U!$QlBy zQ^)KBpE<)e0@I}LTW^{@4p*t)&x>g?(x4~SDI3!;{XUX zXCD0C7C5G(W!Zu4@Bsh~{wo)j5K`K6BRxNU*N`SG2fRc}Xl^$l36lH2`)S4y8H4he z28@D}>?wvNgknztCTF&y*CBs2ipHk9?e~T94`|irSM?_U(J_i65-^T3;8>#q>;?AfzVJn=-iT=wRLtX#QL)3p5u4kDt<-RmYfqK=;5`(prN`O0sOjo*+r#_P4w zYJHWWV$+1wr94qC+uhyJC{hSiHn&UVWhvH8!;X@^h8dtLO1iMO4v1~ty3iA4_YISb zK`g-uHP3e}4_L^%Ofee4{C{Wwqt6=yXD2-a*1`m$78utlIT9W2TCme+Fp~`i`O(5MurM_3pEk%jF9fE+lO~ zA`T~C&32srzCO4AV{B~f+_`h{8j1)IFCvBfV&e4a)6ow+wii?t-JAju z*bWI9;zUKuvbJrz0suH?r%#`@EGrfXK`%)V2Mf5@@%Hub;lr)c7a`mh{aUTYIUgS% zPfZHDS0F?f9v(JLGxXOZmZbq03V+TKdCrJH5LJl?K%JQbIPcwb+qNrw01KvA49J|B zh&3T?D^A)?2~6$zXfxC{5eAE(NgY(>r+g`euMs1Qoc4~PT2S9xGseco#?GESJ1?vp zr4ZY;U2*2j*^uyLz5qIoGcY)G;=~F6Eay(IuxiyRcckY0u3+2t@bGZ0R)cx{*tWfK zEoh>709dbAE!$M2BBf|JNx%QQzeV5< z(hviKs|fk%=;+w!$oRx$bQ+b1vuCdtq~O;%=dFwQv#EZ&M-(=lzMBdu)utOBW)DrC z+Y>7vs;b7mR7XWGQc6Wp{2h@Yy@PEo+bVN%H)(#o0@OUZ{y4fF0@L_mVTmCj{5zGF zhoD5Y3qlHaFiA(aP=^_aOr~NUg-i?R|4aMg;yqpm50_F(K=Hme#k%~V@1+D-LI@Tl zgbtqS_V3d0bAvoF>2DW$DIo;sEau^fqG4sM2jMFx37nfuSqDVNar~^<7~@D$@c9GU zj3GLX(-`d&iWSm!7!#?c&q!Bqmn;c*o9>~F^6+DFeijp6%C|C@VxGgI=`$g2lC6czV_I5bfiFJq?^1jJCq>!D zPK^#ZP83bR;37O;;)W)_2?b9sCP$!%AuK&i^_nOM?tl6GhQN2STSTrX7?;V(A^`4< z;+`QQr3eWUjtIawqg329J-&=SKxEC4lFt+Ya7Cen$TA@Sfi@9xXhtn!O7ahbN*DoE z&B)~n0OT?r0f6FhCWdSlW)s;&S9l@k8r%GDS|s&x8I;aE9toG=A*l^yl=Z17qf*0m zV~rvTk2*<%;F9ik>_cJtf~RChIw*?2uyO`JhfVgcjf&bQE8M!~&OtNzLnjxT=> z5FV?U4qH*0@O6&F1WzD^EVe%gO~wVOy&?KfSM#a+PV>#d#>!TDM3TKXg3`4cVyZ0( z(Mbi`L1InFGl z5z~uw5#Tb94p|UV)RB0E(CUQ>#{xo3j33T8uPD=tMWPlZ)~F=72$>ba<#rJ;_2Yq* zWV9L@!%^n^u}YXPTp3$Nky2lt>N;ZBMQHk;gkV}`xjdK4<(dU-q(~{<|KWCup__5S zG^Zyn7D*%#!iDaAuxvThy-cYECdvGiZEZUxboOSkryZ?8d>msBXJ}V=ysJMSf&Zc9LGe)6vmiknTQ}8 zY=CXf5w^W|$8KF_zdxxGKTLhmervFEPlp!v5*cbteO1`;x1jXmtc7UvXtC)$Ld?vY zj;XN`rBsYiyN*A~5NKvpSlGsdbbv0##eZ#%)x0$hW{!9|jQ~2somw@P@y|jTsFwb3 zh&8i6UbHxhE*o!u(#U`$>cjLWN|O`cWJ5$Gl3K1{S*9C$DL|yDIsix}7~_y z(;*xbt{9=1C=yjU#(f}aLb6$-G%tr*-GTGhr)}v_VvSa^sI+f= z&uT^D2fBw9T(+6Sot)$ayZQ47Izw4lS`05CDT<0#OtdSlO!NQJs{RoG$k2^qp$iao z-OzOd0F)+@g^1E$W!$6$OIzwx5Qowa11$;49UEF=gcYMhCzLw&OgcVq@%!F((b}@A zWu%JAczv2r3`CG#KbnM)5VZmQ65fjvk^xD8M${^#IvU{;07wR=qfhP3K--F>s9kLf z5rm?E&cUd*7A2D-MQxR5yH&+xk0HH1I|kX0gqsn%j+C@KVOj$`#xVl5!PsJyzMo+? zt*$Iw5J^$4lptAeus4|6mVsr=6=$fBZf{3316-KiE$_X4m`EdZ%>;={ulRyEw>{RW zN{GoQA@pglrlPn=BK=hGc^B@KQmO}uZK~}3sdMm=jWKM(0}N3KN-`2g-Y-zso|R#tdq@vptKLgeZM9rI?U*;8Lmy!Pqz_ zG5&7j^G0YCLh%-5=!M9j$Fr0gP^=Rz}8H3`LS<66f=Cs|u~66J(C za-rsfVFt=aE>|~6Yz7YF3zU;=s7uz~dML$nZ7}m-&UR-#D!oVxc=5$Tffs!J%yh@; zObbXIKEmQ>88L(Fiiwt((tu1%8$!IyB%hUkg!bxFM&NhX>BMT+G-ne zc?YtcwQk>&7-{Rtn%t!hO;pAhB~(<32^driFA-u}Zzd>Rl-_+3D>jk%0Mop;D7J^e z5*SQstVtXpNTHh2)J33$o_>OCK|*6h8pfn76ll^^G*GSfV1HYiPnSozT^8ff=~b~k z4i@q9h&p=awuJ-K;iGp{B8dy!pms%Kah(S-QNp574A6qb2|EqxFsVV3Vjrnp(?-;U zV0Mc8BC!IVNE9QA+$|ve!V-RH#t~{jGJB z3}!--C2q$%*~S$4`p+AWCrG+!T+S55n<3GpK z_|LgyuQN}!s1DUiP}% zY;jV%mUap;NXA>uEG265w(8i)(JeJ`51I#vhKqTGm&mAO5EPup zv5dDImoxlWdLH71JW&R2#7xsuGKL`88?93du#hsah^3txjDS4xO`Lut2it}b3*#NQ z46z-i^h#4U#}QKpWp(`6oi0@8{S)ysj45qd+9(2QM>L07g2GN-Gu>YyAjUXnoP4g1 z;*P0~4s^uD8()*~=#*?%7t8>k&Fx+I=QBDcZOjQ#M@#vCA!Yr-w+1_}OY8g=K%IOh z^?YX1$caiMN;sHE)fS^VVWHjri?er>NougI?n<3a)vygbK;I=g4sKw}%_8rzq%ptqSv z(3YM^fQ~6|A!eFZl4Fq|7L*{*xEODm^grFnV*cMKj&K}d1E3U+?euWYw#jthFK`PZIRr+v6=Sxi(>9uR&P43- zr>NQtcfTh!(^JRW5x}n8LaYG)l}|}g*7O+BB1i^itQKgmF0#2o8Qp8b|J%x%Qi_1v z$R}lK&53hyIvT8*=@VJ{iYYbl4NnqVRI`!30@!(~53|nJ?qGAU9hGw1Ui9cE7bWPN z2hKT<`$l>7>GE5Vj1P}X6P&e5r7`@QfM3z3zobKy8yRDMm`YI<4S*c!NGZrG+@@HE zccEBXJY9IoxC@N+KX%bnKzWtiwwX0M^bxE7pn7iZwnIt|(V5*2FxaPcd2ga{o80y1=?&Bjohm%%Is zF8DS?S*RK@OZ1qI|0Jk@w9nw;DWIgVFqwF*ea@HWg%h-IO(ANJtpRl)7(OQGjvkg| z%({iQ6|rOQH-jo%th~#jghvr~D{ig^MFor~RhpwY>a>?lAax7wGeviVvJFATct(}Z z1T_(SSxB7Ku@+1=mF<+zaRwoY=QX-2cHA!5azNc$j_Sufp9p-beF|qo;GYN@0;2AEHarDJJL?TPxx^w5H zgSUXTCl>&kRWmf-?Dk^JyovY7C}@(~vZ!F14sH;t%Vf8yp%4+-e5q6Cw`+@=5Si~d zL5R-jighu`ogC#zVOl0vxNVt?Apj~;HWpV%p{i=J*j*}>5(OIrUTsrpvfw5~y4ews zuw=7IuRw{SlIcgBOfY{(0R30_*Y(XaXzhg6q*T& zfQTr8(5vol95jkMQ`SBgDvwj?onq*#itjr~W)^ix*yo7Qju| z`T5fnu`KQmUVl^J8Ml2=u&Rezo-{njRJ)vpUd^IkB0F3kC zXHem4(`RgWdr@;r6wnu8@dk8+ZQGXj%f`wO2;nsMSLTeos%g!k*UjNal323`84*ph zCZr^4nKi~x;VO}o&5OI(h%eELj&0eF?aoOxi~=HYIxi2G0s*2VO zY7>h9h@|lCDI%*@W~G$mW1%;UTyPpODT)@dpoqwjAu{h$wqv*IOQ<2ZKp;s9;kaX% z++w9jPN=a{j&Quwhb?>PZjEPhW2SwFv|M97LeN7M^alKiERVkOCqig)41c z1KX+x-CR&rEl_EL$hksI+%fx)jJ!q27{{7WP1Qo`GP-)UV}-89x#Ie6=+oMvZ`EoQ zq7-NX03e?)2r0a4t+fyBl@NBw_hd`~0Mo2`8X1x0a(VxYgiHt#5lP!IgYLQFegqLM(*yuTQ8i6Z zDK3ajhDBjUZx=kDObB6`wI<|1F5+z%IsbPV<9=o0K6BlyX{zDfT}Tmeq{tOl=6hu! z?2sthw&hnQp%rugq;Lg-LKspnMC3o$fh7$pZUO*D*#2FU zBrU7%M{5}}*U^+Dy=n(Y=#{8-qoC|r#b55iO%*0>0P#{eXx6I2R;?QlJ|dcEom;Az4D zs;cUt?FlIkN7!z)eXDX$lH)l3ozgU&^Kkfr7>=<*PY9V3tyHU3o44Qz$t`4zhb)%+ zguzoLB1VpduH!g%(*`sUGutwS@3DzwE>}cs=}D5(wWvc}_XmTaEh0)OExYax4{t3Fg`wAIGc^l^$jE{hM@b?}MH9N% zI<`Vy%QihV>-vAHqPj}PX%tnV>;C%R#XUhT49>ZN@A{ozM{HQ3WNi*Iq=^tMvu4|- zKj+0cZ$Fn2wpTA^SSoucZG;3 zhYC5hZr3~Zrab8F?T9pwit8g{+ z-6Z3Y?wvToX-YEssh-F3GhH``U~X7h@Z$TFO zAxVZbS`;gfT@%L_ZgZ{zpu%|qrqoJ!)XjS6+9CWZiU}k+k8SM-0y@(1d2>njm^E{+ z?oyx&Plc4Dmj!8h=ot0#LK?)wKfN`VB$}Bq3rrDwqUWtncCN7Hhe=9&$v z)v5uriCou=KvFlxXvh3`XQ}l7adEe|MkyZ)dG4|2N4DxTSoYI}=-P~=!Uw6UH!O`4RBUx6Z`Wtp0$+qUJQRjzj#L|SCTE@mofVaTA3KEW(z!`)&(B;{T?81uOs zj9#utV>%HvSD*!XGsc1y5TGb(%6TCoL(dUOFAhdPM>r^jrs#eZFND*PZ2P193=wT0 zRJ1BpbPXA`&DTrEvk(hXBBt+GLYJ?-aOe z#WC?{yAR;vY%axs5RQAhW?qVd`yz=zN+E>f9-L-|0(Cvt^p>OxXnFZ#T{T<SIch;h+RD3Ru~W=}+yr;YApXa?DUZoG~7W)xsM@K&={)rg+q9 zbD>NC=iEJOj<99pOfpr`LNP%u*Cw2u2OR28qGkcCqV-pi%m+ylQNtO!vX@cwicowA zSmSVMs^+(mjIr1vF-KS-Vb@eW8d1%!&o>%~MDuFVU5J92(Ys5Mj$?;5v>7gts}>s| zPcXq?S(XsObs!qXo}p>hLywxv6@3^65s@1n1&vua*XRf*v|q6WjV^-9f}mn3q0Jfh z%8`7Eu8s2&y9L3BEv9J+kyWc@MDS&Fz%YzZY6==<8sMW?YilhBB56Mvlq?#SXNE?)Bz%6jH|jHiflOJLJEIFNwj9s%O7O18R@7_=rP@d zO>~DW+luaA#JPsJ=j3f8hPdEehSDuAzS*hTO5B?H*bhG~8}mHkXnl@sqVO#P9Ita* zVP9<1nh=hMh~{!d*8?h-rz45_rMBrtUN9C)jhc|QNws(c zObG9bjPYibqmr)E8Dq9>`|s%Pf*LF_chmT7@ufJqlF^lMtw?%gNdRp1*MLpLf yMIXxs7Uz!(F}m+=lA~R%KUr2?N&*DN*#8Sf`$*zxY~3UP0000L0c literal 0 HcmV?d00001 diff --git a/mods/settingtypes.txt b/mods/settingtypes.txt new file mode 100644 index 00000000..910989fd --- /dev/null +++ b/mods/settingtypes.txt @@ -0,0 +1,11 @@ +#Enabling lite mode enables a smaller and simpler version of the Unified +#Inventory, optimized for small displays. +unified_inventory_lite (Lite mode) bool false + +#If enabled, bags will be made available which can be used to extend +#inventory storage size. +unified_inventory_bags (Enable bags) bool true + +#If enabled, the trash slot can be used by those without both creative +#and the give privilege. +unified_inventory_trash (Enable trash) bool true diff --git a/mods/waypoints.lua b/mods/waypoints.lua new file mode 100644 index 00000000..e23ef4b2 --- /dev/null +++ b/mods/waypoints.lua @@ -0,0 +1,247 @@ +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +local hud_colors = { + {"#FFFFFF", 0xFFFFFF, S("White")}, + {"#DBBB00", 0xf1d32c, S("Yellow")}, + {"#DD0000", 0xDD0000, S("Red")}, + {"#2cf136", 0x2cf136, S("Green")}, + {"#2c4df1", 0x2c4df1, S("Blue")}, +} + +local hud_colors_max = #hud_colors + +-- Stores temporary player data (persists until player leaves) +local waypoints_temp = {} + +unified_inventory.register_page("waypoints", { + get_formspec = function(player) + local player_name = player:get_player_name() + + -- build a "fake" temp entry if the server took too long + -- during sign-on and returned an empty entry + if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end + + local waypoints = datastorage.get(player_name, "waypoints") + local formspec = "background[0,4.5;8,4;ui_main_inventory.png]" .. + "image[0,0;1,1;ui_waypoints_icon.png]" .. + "label[1,0;" .. F(S("Waypoints")) .. "]" + + -- Tabs buttons: + for i = 1, 5, 1 do + formspec = formspec .. + "image_button[0.0," .. 0.2 + i * 0.7 .. ";.8,.8;" .. + (i == waypoints.selected and "ui_blue_icon_background.png^" or "") .. + "ui_" .. i .. "_icon.png;" .. + "select_waypoint" .. i .. ";]" .. + "tooltip[select_waypoint" .. i .. ";" + .. S("Select Waypoint #@1", i).."]" + end + + local i = waypoints.selected or 1 + local waypoint = waypoints[i] or {} + local temp = waypoints_temp[player_name][i] or {} + local default_name = S("Waypoint @1", i) + + -- Main buttons: + formspec = formspec .. + "image_button[4.5,3.7;.8,.8;".. + "ui_waypoint_set_icon.png;".. + "set_waypoint"..i..";]".. + "tooltip[set_waypoint" .. i .. ";" + .. F(S("Set waypoint to current location")).."]" + + formspec = formspec .. + "image_button[5.2,3.7;.8,.8;".. + (waypoint.active and "ui_on_icon.png" or "ui_off_icon.png")..";".. + "toggle_waypoint"..i..";]".. + "tooltip[toggle_waypoint" .. i .. ";" + .. F(S("Make waypoint @1", + waypoint.active and S("invisible") or S("visible"))).."]" + + formspec = formspec .. + "image_button[5.9,3.7;.8,.8;".. + (waypoint.display_pos and "ui_green_icon_background.png" or "ui_red_icon_background.png").."^ui_xyz_icon.png;".. + "toggle_display_pos" .. i .. ";]".. + "tooltip[toggle_display_pos" .. i .. ";" + .. F(S("@1 display of waypoint coordinates", + waypoint.display_pos and S("Disable") or S("Enable"))) .."]" + + formspec = formspec .. + "image_button[6.6,3.7;.8,.8;".. + "ui_circular_arrows_icon.png;".. + "toggle_color"..i..";]".. + "tooltip[toggle_color" .. i .. ";" + .. F(S("Change color of waypoint display")).."]" + + formspec = formspec .. + "image_button[7.3,3.7;.8,.8;".. + "ui_pencil_icon.png;".. + "rename_waypoint"..i..";]".. + "tooltip[rename_waypoint" .. i .. ";" + .. F(S("Edit waypoint name")).."]" + + -- Waypoint's info: + if waypoint.active then + formspec = formspec .. "label[1,0.8;"..F(S("Waypoint active")).."]" + else + formspec = formspec .. "label[1,0.8;"..F(S("Waypoint inactive")).."]" + end + + if temp.edit then + formspec = formspec .. + "field[1.3,3.2;6,.8;rename_box" .. i .. ";;" + ..(waypoint.name or default_name).."]" .. + "image_button[7.3,2.9;.8,.8;".. + "ui_ok_icon.png;".. + "confirm_rename"..i.. ";]".. + "tooltip[confirm_rename" .. i .. ";" + .. F(S("Finish editing")).."]" + end + + formspec = formspec .. "label[1,1.3;"..F(S("World position"))..": " .. + minetest.pos_to_string(waypoint.world_pos or vector.new()) .. "]" .. + "label[1,1.8;"..F(S("Name"))..": ".. (waypoint.name or default_name) .. "]" .. + "label[1,2.3;"..F(S("HUD text color"))..": " .. + hud_colors[waypoint.color or 1][3] .. "]" + + return {formspec=formspec} + end, +}) + +unified_inventory.register_button("waypoints", { + type = "image", + image = "ui_waypoints_icon.png", + tooltip = S("Waypoints"), + hide_lite=true +}) + +local function update_hud(player, waypoints, temp, i) + local waypoint = waypoints[i] + if not waypoint then return end + temp[i] = temp[i] or {} + temp = temp[i] + local pos = waypoint.world_pos or vector.new() + local name + if waypoint.display_pos then + name = minetest.pos_to_string(pos) + if waypoint.name then + name = name..", "..waypoint.name + end + else + name = waypoint.name or "Waypoint "..i + end + if temp.hud then + player:hud_remove(temp.hud) + end + if waypoint.active then + temp.hud = player:hud_add({ + hud_elem_type = "waypoint", + number = hud_colors[waypoint.color or 1][2] , + name = name, + text = "m", + world_pos = pos + }) + else + temp.hud = nil + end +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then return end + + local player_name = player:get_player_name() + local update_formspec = false + local need_update_hud = false + local hit = false + + local waypoints = datastorage.get(player_name, "waypoints") + local temp = waypoints_temp[player_name] + for i = 1, 5, 1 do + if fields["select_waypoint"..i] then + hit = true + waypoints.selected = i + update_formspec = true + end + + if fields["toggle_waypoint"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + waypoints[i].active = not (waypoints[i].active) + need_update_hud = true + update_formspec = true + end + + if fields["set_waypoint"..i] then + hit = true + local pos = player:get_pos() + pos.x = math.floor(pos.x) + pos.y = math.floor(pos.y) + pos.z = math.floor(pos.z) + waypoints[i] = waypoints[i] or {} + waypoints[i].world_pos = pos + need_update_hud = true + update_formspec = true + end + + if fields["rename_waypoint"..i] then + hit = true + temp[i] = temp[i] or {} + temp[i].edit = true + update_formspec = true + end + + if fields["toggle_display_pos"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + waypoints[i].display_pos = not waypoints[i].display_pos + need_update_hud = true + update_formspec = true + end + + if fields["toggle_color"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + local color = waypoints[i].color or 1 + color = color + 1 + if color > hud_colors_max then + color = 1 + end + waypoints[i].color = color + need_update_hud = true + update_formspec = true + end + + if fields["confirm_rename"..i] then + hit = true + waypoints[i] = waypoints[i] or {} + temp[i].edit = false + waypoints[i].name = fields["rename_box"..i] + need_update_hud = true + update_formspec = true + end + if need_update_hud then + update_hud(player, waypoints, temp, i) + end + if update_formspec then + unified_inventory.set_inventory_formspec(player, "waypoints") + end + if hit then return end + end +end) + + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + local waypoints = datastorage.get(player_name, "waypoints") + local temp = {} + waypoints_temp[player_name] = temp + for i = 1, 5 do + update_hud(player, waypoints, temp, i) + end +end) + +minetest.register_on_leaveplayer(function(player) + waypoints_temp[player:get_player_name()] = nil +end) + -- 2.40.1 From 9cf597d190b48ff03d38957243358c40864133e1 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:09:24 -0500 Subject: [PATCH 002/321] Delete .gitignore --- mods/.gitignore | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 mods/.gitignore diff --git a/mods/.gitignore b/mods/.gitignore deleted file mode 100644 index 5236e1e4..00000000 --- a/mods/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ - -- 2.40.1 From 4511030113b1d9177c4aae2741b4b14bae557474 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:09:33 -0500 Subject: [PATCH 003/321] Delete LICENSE.txt --- mods/LICENSE.txt | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 mods/LICENSE.txt diff --git a/mods/LICENSE.txt b/mods/LICENSE.txt deleted file mode 100644 index 32492e43..00000000 --- a/mods/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Unified Inventory for Minetest -Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -This library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Contact information: - Examine a git patch to get the contributor's email address. -- 2.40.1 From 4a449dbbeca00a81aaf92cc04c729404c18245c4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:09:51 -0500 Subject: [PATCH 004/321] Delete README.md --- mods/README.md | 96 -------------------------------------------------- 1 file changed, 96 deletions(-) delete mode 100644 mods/README.md diff --git a/mods/README.md b/mods/README.md deleted file mode 100644 index 15802c6e..00000000 --- a/mods/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# Unified Inventory - -Unified Inventory replaces the default survival and creative inventory. - - -## Features - - * Node, item and tool browser - * Crafting guide - * Can copy the recipe to the crafting grid - * Recipe search function by ingredients - * Up to four bags with up to 24 slots each - * Home function to teleport - * Trash slot - * Lite mode: reduces the item browser width - * Mod API for modders: see [mod_api.txt](doc/mod_api.txt) - * Setting-determinated features: see [settingtypes.txt](settingtypes.txt) - - -## Requirements - - * Minetest 5.0.0+ since commit 4403b69 - * Minetest 0.4.16+ prior commit 4403b69 - - -# Licenses - -Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) - -Copyright (C) 2012-? Various minetest-mods contributors - - -## Code - -GNU LGPLv2+, see [license notice](LICENSE.txt) - - -## Textures - -VanessaE: (CC-BY-4.0) - - * `ui_group.png` - -Tango Project: (Public Domain, CC-BY-4.0) - - * [`ui_reset_icon.png`](https://commons.wikimedia.org/wiki/File:Edit-clear.svg) - * [`ui_doubleleft_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg) - * [`ui_doubleright_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg) - * [`ui_left_icon.png` / `ui_right_icon.png`](http://commons.wikimedia.org/wiki/File:Media-playback-start.svg) - * [`ui_skip_backward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg) - * [`ui_skip_forward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg) - -From http://www.clker.com (Public Domain, CC-BY-4.0): - - * [`bags_small.png`](http://www.clker.com/clipart-moneybag-empty.html) - * [`bags_medium.png`](http://www.clker.com/clipart-backpack-1.html) - * [`bags_large.png` / `ui_bags_icon.png`](http://www.clker.com/clipart-backpack-green-brown.html) - * `ui_trash_icon.png`: and - * [`ui_search_icon.png`](http://www.clker.com/clipart-24887.html) - * [`ui_off_icon.png` / `ui_on_icon.png`](http://www.clker.com/clipart-on-off-switches.html) - * [`ui_waypoints_icon.png`](http://www.clker.com/clipart-map-pin-red.html) - * [`ui_circular_arrows_icon.png`](http://www.clker.com/clipart-circular-arrow-pattern.html) - * [`ui_pencil_icon.pnc`](http://www.clker.com/clipart-2256.html) - * [`ui_waypoint_set_icon.png`](http://www.clker.com/clipart-larger-flag.html) - -Everaldo Coelho (YellowIcon) (LGPL v2.1+): - - * [`ui_craftguide_icon.png` / `ui_craft_icon.png`](http://commons.wikimedia.org/wiki/File:Advancedsettings.png) - -Gregory H. Revera: (CC-BY-SA 3.0) - - * [`ui_moon_icon.png`](http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg) - -Thomas Bresson: (CC-BY 3.0) - - * [`ui_sun_icon.png`](http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg) - -Fibonacci: (Public domain, CC-BY 4.0) - - * [`ui_xyz_off_icon.png`](http://commons.wikimedia.org/wiki/File:No_sign.svg) - -Gregory Maxwell: (Public domain, CC-BY 4.0) - - * [`ui_ok_icon.png`](http://commons.wikimedia.org/wiki/File:Yes_check.svg) - -Adrien Facélina: (LGPL v2.1+) - - * [`inventory_plus_worldedit_gui.png`](http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg) - -Other files from Wikimedia Commons: - - * [`ui_gohome_icon.png` / `ui_home_icon.png` / `ui_sethome_icon.png`](http://commons.wikimedia.org/wiki/File:Home_256x256.png) (GPL v2+) - -RealBadAngel: (CC-BY-4.0) - - * Everything else. \ No newline at end of file -- 2.40.1 From 71ceff2813a06e66d29ef1acd361b9236ba57701 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:10:02 -0500 Subject: [PATCH 005/321] Delete api.lua --- mods/api.lua | 307 --------------------------------------------------- 1 file changed, 307 deletions(-) delete mode 100644 mods/api.lua diff --git a/mods/api.lua b/mods/api.lua deleted file mode 100644 index 071900da..00000000 --- a/mods/api.lua +++ /dev/null @@ -1,307 +0,0 @@ -local S = minetest.get_translator("unified_inventory") -local F = minetest.formspec_escape - --- Create detached creative inventory after loading all mods -minetest.after(0.01, function() - local rev_aliases = {} - for source, target in pairs(minetest.registered_aliases) do - if not rev_aliases[target] then rev_aliases[target] = {} end - table.insert(rev_aliases[target], source) - end - unified_inventory.items_list = {} - for name, def in pairs(minetest.registered_items) do - if (not def.groups.not_in_creative_inventory or - def.groups.not_in_creative_inventory == 0) and - def.description and def.description ~= "" then - table.insert(unified_inventory.items_list, name) - local all_names = rev_aliases[name] or {} - table.insert(all_names, name) - for _, name in ipairs(all_names) do - local recipes = minetest.get_all_craft_recipes(name) - if recipes then - for _, recipe in ipairs(recipes) do - - local unknowns - - for _,chk in pairs(recipe.items) do - local groupchk = string.find(chk, "group:") - if (not groupchk and not minetest.registered_items[chk]) - or (groupchk and not unified_inventory.get_group_item(string.gsub(chk, "group:", "")).item) - or minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then - unknowns = true - end - end - - if not unknowns then - unified_inventory.register_craft(recipe) - end - end - end - end - end - end - table.sort(unified_inventory.items_list) - unified_inventory.items_list_size = #unified_inventory.items_list - print("Unified Inventory. inventory size: "..unified_inventory.items_list_size) - for _, name in ipairs(unified_inventory.items_list) do - local def = minetest.registered_items[name] - -- Simple drops - if type(def.drop) == "string" then - local dstack = ItemStack(def.drop) - if not dstack:is_empty() and dstack:get_name() ~= name then - unified_inventory.register_craft({ - type = "digging", - items = {name}, - output = def.drop, - width = 0, - }) - - end - -- Complex drops. Yes, it's really complex! - elseif type(def.drop) == "table" then - --[[ Extract single items from the table and save them into dedicated tables - to register them later, in order to avoid duplicates. These tables counts - the total number of guaranteed drops and drops by chance (“maybes”) for each item. - For “maybes”, the final count is the theoretical maximum number of items, not - neccessarily the actual drop count. ]] - local drop_guaranteed = {} - local drop_maybe = {} - -- This is for catching an obscure corner case: If the top items table has - -- only items with rarity = 1, but max_items is set, then only the first - -- max_items will be part of the drop, any later entries are logically - -- impossible, so this variable is for keeping track of this - local max_items_left = def.drop.max_items - -- For checking whether we still encountered only guaranteed only so far; - -- for the first “maybe” item it will become false which will cause ALL - -- later items to be considered “maybes”. - -- A common idiom is: - -- { max_items 1, { items = { - -- { items={"example:1"}, rarity = 5 }, - -- { items={"example:2"}, rarity = 1 }, }}} - -- example:2 must be considered a “maybe” because max_items is set and it - -- appears after a “maybe” - local max_start = true - -- Let's iterate through the items madness! - -- Handle invalid drop entries gracefully. - local drop_items = def.drop.items or { } - for i=1,#drop_items do - if max_items_left ~= nil and max_items_left <= 0 then break end - local itit = drop_items[i] - for j=1,#itit.items do - local dstack = ItemStack(itit.items[j]) - if not dstack:is_empty() and dstack:get_name() ~= name then - local dname = dstack:get_name() - local dcount = dstack:get_count() - -- Guaranteed drops AND we are not yet in “maybe mode” - if #itit.items == 1 and itit.rarity == 1 and max_start then - if drop_guaranteed[dname] == nil then - drop_guaranteed[dname] = 0 - end - drop_guaranteed[dname] = drop_guaranteed[dname] + dcount - - if max_items_left ~= nil then - max_items_left = max_items_left - 1 - if max_items_left <= 0 then break end - end - -- Drop was a “maybe” - else - if max_items_left ~= nil then max_start = false end - if drop_maybe[dname] == nil then - drop_maybe[dname] = 0 - end - drop_maybe[dname] = drop_maybe[dname] + dcount - end - end - end - end - for itemstring, count in pairs(drop_guaranteed) do - unified_inventory.register_craft({ - type = "digging", - items = {name}, - output = itemstring .. " " .. count, - width = 0, - }) - end - for itemstring, count in pairs(drop_maybe) do - unified_inventory.register_craft({ - type = "digging_chance", - items = {name}, - output = itemstring .. " " .. count, - width = 0, - }) - end - end - end - for _, recipes in pairs(unified_inventory.crafts_for.recipe) do - for _, recipe in ipairs(recipes) do - local ingredient_items = {} - for _, spec in pairs(recipe.items) do - local matches_spec = unified_inventory.canonical_item_spec_matcher(spec) - for _, name in ipairs(unified_inventory.items_list) do - if matches_spec(name) then - ingredient_items[name] = true - end - end - end - for name, _ in pairs(ingredient_items) do - if unified_inventory.crafts_for.usage[name] == nil then - unified_inventory.crafts_for.usage[name] = {} - end - table.insert(unified_inventory.crafts_for.usage[name], recipe) - end - end - end -end) - - --- load_home -local function load_home() - local input = io.open(unified_inventory.home_filename, "r") - if not input then - unified_inventory.home_pos = {} - return - end - while true do - local x = input:read("*n") - if not x then break end - local y = input:read("*n") - local z = input:read("*n") - local name = input:read("*l") - unified_inventory.home_pos[name:sub(2)] = {x = x, y = y, z = z} - end - io.close(input) -end -load_home() - -function unified_inventory.set_home(player, pos) - local player_name = player:get_player_name() - unified_inventory.home_pos[player_name] = vector.round(pos) - -- save the home data from the table to the file - local output = io.open(unified_inventory.home_filename, "w") - for k, v in pairs(unified_inventory.home_pos) do - output:write(v.x.." "..v.y.." "..v.z.." "..k.."\n") - end - io.close(output) -end - -function unified_inventory.go_home(player) - local pos = unified_inventory.home_pos[player:get_player_name()] - if pos then - player:set_pos(pos) - end -end - --- register_craft -function unified_inventory.register_craft(options) - if not options.output then - return - end - local itemstack = ItemStack(options.output) - if itemstack:is_empty() then - return - end - if options.type == "normal" and options.width == 0 then - options = { type = "shapeless", items = options.items, output = options.output, width = 0 } - end - if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then - unified_inventory.crafts_for.recipe[itemstack:get_name()] = {} - end - table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options) -end - - -local craft_type_defaults = { - width = 3, - height = 3, - uses_crafting_grid = false, -} - - -function unified_inventory.craft_type_defaults(name, options) - if not options.description then - options.description = name - end - setmetatable(options, {__index = craft_type_defaults}) - return options -end - - -function unified_inventory.register_craft_type(name, options) - unified_inventory.registered_craft_types[name] = - unified_inventory.craft_type_defaults(name, options) -end - - -unified_inventory.register_craft_type("normal", { - description = F(S("Crafting")), - icon = "ui_craftgrid_icon.png", - width = 3, - height = 3, - get_shaped_craft_width = function (craft) return craft.width end, - dynamic_display_size = function (craft) - local w = craft.width - local h = math.ceil(table.maxn(craft.items) / craft.width) - local g = w < h and h or w - return { width = g, height = g } - end, - uses_crafting_grid = true, -}) - - -unified_inventory.register_craft_type("shapeless", { - description = F(S("Mixing")), - icon = "ui_craftgrid_icon.png", - width = 3, - height = 3, - dynamic_display_size = function (craft) - local maxn = table.maxn(craft.items) - local g = 1 - while g*g < maxn do g = g + 1 end - return { width = g, height = g } - end, - uses_crafting_grid = true, -}) - - -unified_inventory.register_craft_type("cooking", { - description = F(S("Cooking")), - icon = "default_furnace_front.png", - width = 1, - height = 1, -}) - - -unified_inventory.register_craft_type("digging", { - description = F(S("Digging")), - icon = "default_tool_steelpick.png", - width = 1, - height = 1, -}) - -unified_inventory.register_craft_type("digging_chance", { - description = "Digging (by chance)", - icon = "default_tool_steelpick.png^[transformFY.png", - width = 1, - height = 1, -}) - -function unified_inventory.register_page(name, def) - unified_inventory.pages[name] = def -end - - -function unified_inventory.register_button(name, def) - if not def.action then - def.action = function(player) - unified_inventory.set_inventory_formspec(player, name) - end - end - def.name = name - table.insert(unified_inventory.buttons, def) -end - - -function unified_inventory.is_creative(playername) - return minetest.check_player_privs(playername, {creative=true}) - or minetest.settings:get_bool("creative_mode") -end -- 2.40.1 From 60fe5eddd4ed031405007263d076e417451226b6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:10:25 -0500 Subject: [PATCH 006/321] Delete bags.lua --- mods/bags.lua | 276 -------------------------------------------------- 1 file changed, 276 deletions(-) delete mode 100644 mods/bags.lua diff --git a/mods/bags.lua b/mods/bags.lua deleted file mode 100644 index 1ebbdd3f..00000000 --- a/mods/bags.lua +++ /dev/null @@ -1,276 +0,0 @@ ---[[ -Bags for Minetest - -Copyright (c) 2012 cornernote, Brett O'Donnell -License: GPLv3 ---]] - -local S = minetest.get_translator("unified_inventory") -local F = minetest.formspec_escape - -unified_inventory.register_page("bags", { - get_formspec = function(player) - local player_name = player:get_player_name() - return { formspec = table.concat({ - "background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]", - "label[0,0;" .. F(S("Bags")) .. "]", - "button[0,2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]", - "button[2,2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]", - "button[4,2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]", - "button[6,2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]", - "listcolors[#00000000;#00000000]", - "list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1;1,1;]", - "list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1;1,1;]", - "list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1;1,1;]", - "list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1;1,1;]" - }) } - end, -}) - -unified_inventory.register_button("bags", { - type = "image", - image = "ui_bags_icon.png", - tooltip = S("Bags"), - hide_lite=true -}) - -local function get_player_bag_stack(player, i) - return minetest.get_inventory({ - type = "detached", - name = player:get_player_name() .. "_bags" - }):get_stack("bag" .. i, 1) -end - -for bag_i = 1, 4 do - unified_inventory.register_page("bag" .. bag_i, { - get_formspec = function(player) - local stack = get_player_bag_stack(player, bag_i) - local image = stack:get_definition().inventory_image - local fs = { - "image[7,0;1,1;" .. image .. "]", - "label[0,0;" .. F(S("Bag @1", bag_i)) .. "]", - "listcolors[#00000000;#00000000]", - "list[current_player;bag" .. bag_i .. "contents;0,1;8,3;]", - "listring[current_name;bag" .. bag_i .. "contents]", - "listring[current_player;main]" - } - local slots = stack:get_definition().groups.bagslots - if slots == 8 then - fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" - elseif slots == 16 then - fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" - elseif slots == 24 then - fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" - end - local player_name = player:get_player_name() -- For if statement. - if unified_inventory.trash_enabled - or unified_inventory.is_creative(player_name) - or minetest.get_player_privs(player_name).give then - fs[#fs + 1] = "background[6.06,0;0.92,0.92;ui_bags_trash.png]" - .. "list[detached:trash;main;6,0.1;1,1;]" - end - local inv = player:get_inventory() - for i = 1, 4 do - local def = get_player_bag_stack(player, i):get_definition() - if def.groups.bagslots then - local list_name = "bag" .. i .. "contents" - local size = inv:get_size(list_name) - local used = 0 - for si = 1, size do - local stk = inv:get_stack(list_name, si) - if not stk:is_empty() then - used = used + 1 - end - end - local img = def.inventory_image - local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size - fs[#fs + 1] = string.format("image_button[%i,0;1,1;%s;bag%i;%s]", - i + 1, img, i, label) - end - end - return { formspec = table.concat(fs) } - end, - }) -end - -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname ~= "" then - return - end - for i = 1, 4 do - if fields["bag" .. i] then - local stack = get_player_bag_stack(player, i) - if not stack:get_definition().groups.bagslots then - return - end - unified_inventory.set_inventory_formspec(player, "bag" .. i) - return - end - end -end) - -local function save_bags_metadata(player, bags_inv) - local is_empty = true - local bags = {} - for i = 1, 4 do - local bag = "bag" .. i - if not bags_inv:is_empty(bag) then - -- Stack limit is 1, otherwise use stack:to_string() - bags[i] = bags_inv:get_stack(bag, 1):get_name() - is_empty = false - end - end - local meta = player:get_meta() - if is_empty then - meta:set_string("unified_inventory:bags", nil) - else - meta:set_string("unified_inventory:bags", - minetest.serialize(bags)) - end -end - -local function load_bags_metadata(player, bags_inv) - local player_inv = player:get_inventory() - local meta = player:get_meta() - local bags_meta = meta:get_string("unified_inventory:bags") - local bags = bags_meta and minetest.deserialize(bags_meta) or {} - local dirty_meta = false - if not bags_meta then - -- Backwards compatiblity - for i = 1, 4 do - local bag = "bag" .. i - if not player_inv:is_empty(bag) then - -- Stack limit is 1, otherwise use stack:to_string() - bags[i] = player_inv:get_stack(bag, 1):get_name() - dirty_meta = true - end - end - end - -- Fill detached slots - for i = 1, 4 do - local bag = "bag" .. i - bags_inv:set_size(bag, 1) - bags_inv:set_stack(bag, 1, bags[i] or "") - end - - if dirty_meta then - -- Requires detached inventory to be set up - save_bags_metadata(player, bags_inv) - end - - -- Clean up deprecated garbage after saving - for i = 1, 4 do - local bag = "bag" .. i - player_inv:set_size(bag, 0) - end -end - -minetest.register_on_joinplayer(function(player) - local player_inv = player:get_inventory() - local player_name = player:get_player_name() - local bags_inv = minetest.create_detached_inventory(player_name .. "_bags",{ - on_put = function(inv, listname, index, stack, player) - player:get_inventory():set_size(listname .. "contents", - stack:get_definition().groups.bagslots) - save_bags_metadata(player, inv) - end, - allow_put = function(inv, listname, index, stack, player) - local new_slots = stack:get_definition().groups.bagslots - if not new_slots then - return 0 - end - local player_inv = player:get_inventory() - local old_slots = player_inv:get_size(listname .. "contents") - - if new_slots >= old_slots then - return 1 - end - - -- using a smaller bag, make sure it fits - local old_list = player_inv:get_list(listname .. "contents") - local new_list = {} - local slots_used = 0 - local use_new_list = false - - for i, v in ipairs(old_list) do - if v and not v:is_empty() then - slots_used = slots_used + 1 - use_new_list = i > new_slots - new_list[slots_used] = v - end - end - if new_slots >= slots_used then - if use_new_list then - player_inv:set_list(listname .. "contents", new_list) - end - return 1 - end - -- New bag is smaller: Disallow inserting - return 0 - end, - allow_take = function(inv, listname, index, stack, player) - if player:get_inventory():is_empty(listname .. "contents") then - return stack:get_count() - end - return 0 - end, - on_take = function(inv, listname, index, stack, player) - player:get_inventory():set_size(listname .. "contents", 0) - save_bags_metadata(player, inv) - end, - allow_move = function() - return 0 - end, - }, player_name) - - load_bags_metadata(player, bags_inv) -end) - --- register bag tools -minetest.register_tool("unified_inventory:bag_small", { - description = S("Small Bag"), - inventory_image = "bags_small.png", - groups = {bagslots=8}, -}) - -minetest.register_tool("unified_inventory:bag_medium", { - description = S("Medium Bag"), - inventory_image = "bags_medium.png", - groups = {bagslots=16}, -}) - -minetest.register_tool("unified_inventory:bag_large", { - description = S("Large Bag"), - inventory_image = "bags_large.png", - groups = {bagslots=24}, -}) - --- register bag crafts -if minetest.get_modpath("farming") ~= nil then - minetest.register_craft({ - output = "unified_inventory:bag_small", - recipe = { - {"", "farming:cotton", ""}, - {"group:wool", "group:wool", "group:wool"}, - {"group:wool", "group:wool", "group:wool"}, - }, - }) - - minetest.register_craft({ - output = "unified_inventory:bag_medium", - recipe = { - {"", "", ""}, - {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, - {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, - }, - }) - - minetest.register_craft({ - output = "unified_inventory:bag_large", - recipe = { - {"", "", ""}, - {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, - {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, - }, - }) -end -- 2.40.1 From b98f09522e865816efbd97e0f416df63bdd15191 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:10:36 -0500 Subject: [PATCH 007/321] Delete callbacks.lua --- mods/callbacks.lua | 216 --------------------------------------------- 1 file changed, 216 deletions(-) delete mode 100644 mods/callbacks.lua diff --git a/mods/callbacks.lua b/mods/callbacks.lua deleted file mode 100644 index 8bfe6b60..00000000 --- a/mods/callbacks.lua +++ /dev/null @@ -1,216 +0,0 @@ -local function default_refill(stack) - stack:set_count(stack:get_stack_max()) - local itemdef = minetest.registered_items[stack:get_name()] - if itemdef - and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" - and stack:get_wear() ~= 0 then - stack:set_wear(0) - end - return stack -end - -minetest.register_on_joinplayer(function(player) - local player_name = player:get_player_name() - unified_inventory.players[player_name] = {} - unified_inventory.current_index[player_name] = 1 - unified_inventory.filtered_items_list[player_name] = - unified_inventory.items_list - unified_inventory.activefilter[player_name] = "" - unified_inventory.active_search_direction[player_name] = "nochange" - unified_inventory.apply_filter(player, "", "nochange") - unified_inventory.current_searchbox[player_name] = "" - unified_inventory.alternate[player_name] = 1 - unified_inventory.current_item[player_name] = nil - unified_inventory.current_craft_direction[player_name] = "recipe" - unified_inventory.set_inventory_formspec(player, - unified_inventory.default) - - -- Refill slot - local refill = minetest.create_detached_inventory(player_name.."refill", { - allow_put = function(inv, listname, index, stack, player) - local player_name = player:get_player_name() - if unified_inventory.is_creative(player_name) then - return stack:get_count() - else - return 0 - end - end, - on_put = function(inv, listname, index, stack, player) - local player_name = player:get_player_name() - local handle_refill = (minetest.registered_items[stack:get_name()] or {}).on_refill or default_refill - stack = handle_refill(stack) - inv:set_stack(listname, index, stack) - minetest.sound_play("electricity", - {to_player=player_name, gain = 1.0}) - end, - }, player_name) - refill:set_size("main", 1) -end) - -local function apply_new_filter(player, search_text, new_dir) - local player_name = player:get_player_name() - minetest.sound_play("click", {to_player=player_name, gain = 0.1}) - unified_inventory.apply_filter(player, search_text, new_dir) - unified_inventory.current_searchbox[player_name] = search_text - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) -end - -minetest.register_on_player_receive_fields(function(player, formname, fields) - local player_name = player:get_player_name() - - local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) - - if formname ~= "" then - return - end - - -- always take new search text, even if not searching on it yet - if fields.searchbox - and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then - unified_inventory.current_searchbox[player_name] = fields.searchbox - end - - for i, def in pairs(unified_inventory.buttons) do - if fields[def.name] then - def.action(player) - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - return - end - end - - -- Inventory page controls - local start = math.floor( - unified_inventory.current_index[player_name] / ui_peruser.items_per_page + 1) - local start_i = start - local pagemax = math.floor( - (#unified_inventory.filtered_items_list[player_name] - 1) - / (ui_peruser.items_per_page) + 1) - - if fields.start_list then - start_i = 1 - end - if fields.rewind1 then - start_i = start_i - 1 - end - if fields.forward1 then - start_i = start_i + 1 - end - if fields.rewind3 then - start_i = start_i - 3 - end - if fields.forward3 then - start_i = start_i + 3 - end - if fields.end_list then - start_i = pagemax - end - if start_i < 1 then - start_i = 1 - end - if start_i > pagemax then - start_i = pagemax - end - if start_i ~= start then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - unified_inventory.current_index[player_name] = (start_i - 1) * ui_peruser.items_per_page + 1 - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - end - - -- Check clicked item image button - local clicked_item - for name, value in pairs(fields) do - local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$") - if new_dir and mangled_item then - clicked_item = unified_inventory.demangle_for_formspec(mangled_item) - if string.sub(clicked_item, 1, 6) == "group:" then - -- Change search filter to this group - apply_new_filter(player, clicked_item, new_dir) - return - end - if new_dir == "recipe" or new_dir == "usage" then - unified_inventory.current_craft_direction[player_name] = new_dir - end - break - end - end - if clicked_item then - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - local page = unified_inventory.current_page[player_name] - local player_creative = unified_inventory.is_creative(player_name) - if not player_creative then - page = "craftguide" - end - if page == "craftguide" then - unified_inventory.current_item[player_name] = clicked_item - unified_inventory.alternate[player_name] = 1 - unified_inventory.set_inventory_formspec(player, "craftguide") - elseif player_creative then - -- Creative page: Add entire stack to inventory - local inv = player:get_inventory() - local stack = ItemStack(clicked_item) - stack:set_count(stack:get_stack_max()) - if inv:room_for_item("main", stack) then - inv:add_item("main", stack) - end - end - end - - if fields.searchbutton - or fields.key_enter_field == "searchbox" then - unified_inventory.apply_filter(player, unified_inventory.current_searchbox[player_name], "nochange") - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - minetest.sound_play("paperflip2", - {to_player=player_name, gain = 1.0}) - elseif fields.searchresetbutton then - apply_new_filter(player, "", "nochange") - end - - -- alternate buttons - if not (fields.alternate or fields.alternate_prev) then - return - end - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - local item_name = unified_inventory.current_item[player_name] - if not item_name then - return - end - local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name] - if not crafts then - return - end - local alternates = #crafts - if alternates <= 1 then - return - end - local alternate - if fields.alternate then - alternate = unified_inventory.alternate[player_name] + 1 - if alternate > alternates then - alternate = 1 - end - elseif fields.alternate_prev then - alternate = unified_inventory.alternate[player_name] - 1 - if alternate < 1 then - alternate = alternates - end - end - unified_inventory.alternate[player_name] = alternate - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) -end) - -if minetest.delete_detached_inventory then - minetest.register_on_leaveplayer(function(player) - local player_name = player:get_player_name() - minetest.delete_detached_inventory(player_name.."_bags") - minetest.delete_detached_inventory(player_name.."craftrecipe") - minetest.delete_detached_inventory(player_name.."refill") - end) -end -- 2.40.1 From 1d8e595c37f30681795fa70b73372df4e9a1afa9 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:10:45 -0500 Subject: [PATCH 008/321] Delete depends.txt --- mods/depends.txt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 mods/depends.txt diff --git a/mods/depends.txt b/mods/depends.txt deleted file mode 100644 index cb3d2b4f..00000000 --- a/mods/depends.txt +++ /dev/null @@ -1,5 +0,0 @@ -default -creative? -sfinv? -datastorage? -farming? -- 2.40.1 From 3f15ead1b95f7868ec1f7f459628054943ca8c76 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:10:57 -0500 Subject: [PATCH 009/321] Delete description.txt --- mods/description.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/description.txt diff --git a/mods/description.txt b/mods/description.txt deleted file mode 100644 index b541fdf2..00000000 --- a/mods/description.txt +++ /dev/null @@ -1 +0,0 @@ -Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. -- 2.40.1 From 6ba3c0d49d4ab8e7e8fc0f2ac3ef6760be9ba1a3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:11:06 -0500 Subject: [PATCH 010/321] Delete group.lua --- mods/group.lua | 127 ------------------------------------------------- 1 file changed, 127 deletions(-) delete mode 100644 mods/group.lua diff --git a/mods/group.lua b/mods/group.lua deleted file mode 100644 index 3864267a..00000000 --- a/mods/group.lua +++ /dev/null @@ -1,127 +0,0 @@ -local S = minetest.get_translator("unified_inventory") - -function unified_inventory.canonical_item_spec_matcher(spec) - local specname = ItemStack(spec):get_name() - if specname:sub(1, 6) ~= "group:" then - return function (itemname) - return itemname == specname - end - end - - local group_names = specname:sub(7):split(",") - return function (itemname) - local itemdef = minetest.registered_items[itemname] - for _, group_name in ipairs(group_names) do - if (itemdef.groups[group_name] or 0) == 0 then - return false - end - end - return true - end -end - -function unified_inventory.item_matches_spec(item, spec) - local itemname = ItemStack(item):get_name() - return unified_inventory.canonical_item_spec_matcher(spec)(itemname) -end - -function unified_inventory.extract_groupnames(groupname) - local specname = ItemStack(groupname):get_name() - if specname:sub(1, 6) ~= "group:" then - return nil, 0 - end - local group_names = specname:sub(7):split(",") - return table.concat(group_names, S(" and ")), #group_names -end - -unified_inventory.registered_group_items = { - mesecon_conductor_craftable = "mesecons:wire_00000000_off", - stone = "default:cobble", - wood = "default:wood", - book = "default:book", - sand = "default:sand", - leaves = "default:leaves", - tree = "default:tree", - vessel = "vessels:glass_bottle", - wool = "wool:white", -} - -function unified_inventory.register_group_item(groupname, itemname) - unified_inventory.registered_group_items[groupname] = itemname -end - - --- This is used when displaying craft recipes, where an ingredient is --- specified by group rather than as a specific item. A single-item group --- is represented by that item, with the single-item status signalled --- in the "sole" field. If the group contains no items at all, the item --- field will be nil. --- --- Within a multiple-item group, we prefer to use an item that has the --- same specific name as the group, and if there are more than one of --- those items we prefer the one registered for the group by a mod. --- Among equally-preferred items, we just pick the one with the --- lexicographically earliest name. --- --- The parameter to this function isn't just a single group name. --- It may be a comma-separated list of group names. This is really a --- "group:..." ingredient specification, minus the "group:" prefix. - -local function compute_group_item(group_name_list) - local group_names = group_name_list:split(",") - local candidate_items = {} - for itemname, itemdef in pairs(minetest.registered_items) do - if (itemdef.groups.not_in_creative_inventory or 0) == 0 then - local all = true - for _, group_name in ipairs(group_names) do - if (itemdef.groups[group_name] or 0) == 0 then - all = false - end - end - if all then table.insert(candidate_items, itemname) end - end - end - local num_candidates = #candidate_items - if num_candidates == 0 then - return {sole = true} - elseif num_candidates == 1 then - return {item = candidate_items[1], sole = true} - end - local is_group = {} - local registered_rep = {} - for _, group_name in ipairs(group_names) do - is_group[group_name] = true - local rep = unified_inventory.registered_group_items[group_name] - if rep then registered_rep[rep] = true end - end - local bestitem = "" - local bestpref = 0 - for _, item in ipairs(candidate_items) do - local pref - if registered_rep[item] then - pref = 4 - elseif string.sub(item, 1, 8) == "default:" and is_group[string.sub(item, 9)] then - pref = 3 - elseif is_group[item:gsub("^[^:]*:", "")] then - pref = 2 - else - pref = 1 - end - if pref > bestpref or (pref == bestpref and item < bestitem) then - bestitem = item - bestpref = pref - end - end - return {item = bestitem, sole = false} -end - - -local group_item_cache = {} - -function unified_inventory.get_group_item(group_name) - if not group_item_cache[group_name] then - group_item_cache[group_name] = compute_group_item(group_name) - end - return group_item_cache[group_name] -end - -- 2.40.1 From 073b1d7d6244407c79360e8a32af31381272aa42 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:11:17 -0500 Subject: [PATCH 011/321] Delete image_credits.txt --- mods/image_credits.txt | 69 ------------------------------------------ 1 file changed, 69 deletions(-) delete mode 100644 mods/image_credits.txt diff --git a/mods/image_credits.txt b/mods/image_credits.txt deleted file mode 100644 index 12fbc650..00000000 --- a/mods/image_credits.txt +++ /dev/null @@ -1,69 +0,0 @@ -bags_small.png: - http://www.clker.com/clipart-moneybag-empty.html - -bags_medium.png: - http://www.clker.com/clipart-backpack-1.html - -bags_large.png / ui_bags_icon.png: - http://www.clker.com/clipart-backpack-green-brown.html - -ui_craftguide_icon.png / ui_craft_icon.png - http://commons.wikimedia.org/wiki/File:Advancedsettings.png - -ui_doubleleft_icon.png - http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg - -ui_doubleright_icon.png - http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg - -ui_left_icon.png / ui_right_icon.png - http://commons.wikimedia.org/wiki/File:Media-playback-start.svg - -ui_skip_backward_icon.png - http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg - -ui_skip_forward_icon.png - http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg - -ui_reset_icon.png - https://commons.wikimedia.org/wiki/File:Edit-clear.svg - -ui_gohome_icon.png / ui_home_icon.png / ui_sethome_icon.png - http://commons.wikimedia.org/wiki/File:Home_256x256.png - -ui_moon_icon.png - http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg - -ui_sun_icon.png - http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg - -ui_trash_icon.png - http://www.clker.com/clipart-29090.html - http://www.clker.com/clipart-trash.html - -ui_search_icon.png - http://www.clker.com/clipart-24887.html - -ui_off_icon.png / ui_on_icon.png - http://www.clker.com/clipart-on-off-switches.html - -ui_waypoints_icon.png - http://www.clker.com/clipart-map-pin-red.html - -ui_circular_arrows_icon.png - http://www.clker.com/clipart-circular-arrow-pattern.html - -ui_pencil_icon.pnc - http://www.clker.com/clipart-2256.html - -ui_waypoint_set_icon.png - http://www.clker.com/clipart-larger-flag.html - -ui_xyz_off_icon.png - http://commons.wikimedia.org/wiki/File:No_sign.svg - -ui_ok_icon.png - http://commons.wikimedia.org/wiki/File:Yes_check.svg - -inventory_plus_worldedit_gui.png - http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg -- 2.40.1 From e9cf008aab2f3a0aa8b78eae5245ee0c94059fd1 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:11:29 -0500 Subject: [PATCH 012/321] Delete init.lua --- mods/init.lua | 79 --------------------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 mods/init.lua diff --git a/mods/init.lua b/mods/init.lua deleted file mode 100644 index 1a80abbb..00000000 --- a/mods/init.lua +++ /dev/null @@ -1,79 +0,0 @@ --- Unified Inventory for Minetest >= 0.4.16 - -local modpath = minetest.get_modpath(minetest.get_current_modname()) -local worldpath = minetest.get_worldpath() - --- Data tables definitions -unified_inventory = { - activefilter = {}, - active_search_direction = {}, - alternate = {}, - current_page = {}, - current_searchbox = {}, - current_index = {}, - current_item = {}, - current_craft_direction = {}, - registered_craft_types = {}, - crafts_for = {usage = {}, recipe = {} }, - players = {}, - items_list_size = 0, - items_list = {}, - filtered_items_list_size = {}, - filtered_items_list = {}, - pages = {}, - buttons = {}, - - -- Homepos stuff - home_pos = {}, - home_filename = worldpath.."/unified_inventory_home.home", - - -- Default inventory page - default = "craft", - - -- "Lite" mode - lite_mode = minetest.settings:get_bool("unified_inventory_lite"), - - -- Trash enabled - trash_enabled = (minetest.settings:get_bool("unified_inventory_trash") ~= false), - - pagecols = 8, - pagerows = 10, - page_y = 0, - formspec_y = 1, - main_button_x = 0, - main_button_y = 9, - craft_result_x = 0.3, - craft_result_y = 0.5, - form_header_y = 0 -} - --- Disable default creative inventory -local creative = rawget(_G, "creative") or rawget(_G, "creative_inventory") -if creative then - function creative.set_creative_formspec(player, start_i, pagenum) - return - end -end - --- Disable sfinv inventory -local sfinv = rawget(_G, "sfinv") -if sfinv then - sfinv.enabled = false -end - -dofile(modpath.."/group.lua") -dofile(modpath.."/api.lua") -dofile(modpath.."/internal.lua") -dofile(modpath.."/callbacks.lua") -dofile(modpath.."/match_craft.lua") -dofile(modpath.."/register.lua") - -if minetest.settings:get_bool("unified_inventory_bags") ~= false then - dofile(modpath.."/bags.lua") -end - -dofile(modpath.."/item_names.lua") - -if minetest.get_modpath("datastorage") then - dofile(modpath.."/waypoints.lua") -end -- 2.40.1 From 4efc4fadf03e92d728e60af5266a429adff32bc4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:11:40 -0500 Subject: [PATCH 013/321] Delete internal.lua --- mods/internal.lua | 374 ---------------------------------------------- 1 file changed, 374 deletions(-) delete mode 100644 mods/internal.lua diff --git a/mods/internal.lua b/mods/internal.lua deleted file mode 100644 index 05dc5f59..00000000 --- a/mods/internal.lua +++ /dev/null @@ -1,374 +0,0 @@ -local S = minetest.get_translator("unified_inventory") -local F = minetest.formspec_escape - --- This pair of encoding functions is used where variable text must go in --- button names, where the text might contain formspec metacharacters. --- We can escape button names for the formspec, to avoid screwing up --- form structure overall, but they then don't get de-escaped, and so --- the input we get back from the button contains the formspec escaping. --- This is a game engine bug, and in the anticipation that it might be --- fixed some day we don't want to rely on it. So for safety we apply --- an encoding that avoids all formspec metacharacters. -function unified_inventory.mangle_for_formspec(str) - return string.gsub(str, "([^A-Za-z0-9])", function (c) return string.format("_%d_", string.byte(c)) end) -end -function unified_inventory.demangle_for_formspec(str) - return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end) -end - -function unified_inventory.get_per_player_formspec(player_name) - local lite = unified_inventory.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true}) - - local ui = {} - ui.pagecols = unified_inventory.pagecols - ui.pagerows = unified_inventory.pagerows - ui.page_y = unified_inventory.page_y - ui.formspec_y = unified_inventory.formspec_y - ui.main_button_x = unified_inventory.main_button_x - ui.main_button_y = unified_inventory.main_button_y - ui.craft_result_x = unified_inventory.craft_result_x - ui.craft_result_y = unified_inventory.craft_result_y - ui.form_header_y = unified_inventory.form_header_y - - if lite then - ui.pagecols = 4 - ui.pagerows = 6 - ui.page_y = 0.25 - ui.formspec_y = 0.47 - ui.main_button_x = 8.2 - ui.main_button_y = 6.5 - ui.craft_result_x = 2.8 - ui.craft_result_y = 3.4 - ui.form_header_y = -0.1 - end - - ui.items_per_page = ui.pagecols * ui.pagerows - return ui, lite -end - -function unified_inventory.get_formspec(player, page) - - if not player then - return "" - end - - local player_name = player:get_player_name() - local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) - - unified_inventory.current_page[player_name] = page - local pagedef = unified_inventory.pages[page] - - if not pagedef then - return "" -- Invalid page name - end - - local formspec = { - "size[14,10]", - pagedef.formspec_prepend and "" or "no_prepend[]", - "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background - } - local n = 4 - - if draw_lite_mode then - formspec[1] = "size[11,7.7]" - formspec[3] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]" - end - - if unified_inventory.is_creative(player_name) - and page == "craft" then - formspec[n] = "background[0,"..(ui_peruser.formspec_y + 2)..";1,1;ui_single_slot.png]" - n = n+1 - end - - local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name) - local fsdata = pagedef.get_formspec(player, perplayer_formspec) - - formspec[n] = fsdata.formspec - n = n+1 - - local button_row = 0 - local button_col = 0 - - -- Main buttons - - local filtered_inv_buttons = {} - - for i, def in pairs(unified_inventory.buttons) do - if not (draw_lite_mode and def.hide_lite) then - table.insert(filtered_inv_buttons, def) - end - end - - for i, def in pairs(filtered_inv_buttons) do - - if draw_lite_mode and i > 4 then - button_row = 1 - button_col = 1 - end - - if def.type == "image" then - if (def.condition == nil or def.condition(player) == true) then - formspec[n] = "image_button[" - formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) - formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" - formspec[n+3] = F(def.image)..";" - formspec[n+4] = F(def.name)..";]" - formspec[n+5] = "tooltip["..F(def.name) - formspec[n+6] = ";"..(def.tooltip or "").."]" - n = n+7 - else - formspec[n] = "image[" - formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) - formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" - formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]" - n = n+4 - - end - end - end - - if fsdata.draw_inventory ~= false then - -- Player inventory - formspec[n] = "listcolors[#00000000;#00000000]" - formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]" - n = n+2 - end - - if fsdata.draw_item_list == false then - return table.concat(formspec, "") - end - - -- Controls to flip items pages - local start_x = 9.2 - - if not draw_lite_mode then - formspec[n] = - "image_button[" .. (start_x + 0.6 * 0) - .. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]" - .. "tooltip[start_list;" .. F(S("First page")) .. "]" - - .. "image_button[" .. (start_x + 0.6 * 1) - .. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]" - .. "tooltip[rewind3;" .. F(S("Back three pages")) .. "]" - .. "image_button[" .. (start_x + 0.6 * 2) - .. ",9;.8,.8;ui_left_icon.png;rewind1;]" - .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" - - .. "image_button[" .. (start_x + 0.6 * 3) - .. ",9;.8,.8;ui_right_icon.png;forward1;]" - .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" - .. "image_button[" .. (start_x + 0.6 * 4) - .. ",9;.8,.8;ui_doubleright_icon.png;forward3;]" - .. "tooltip[forward3;" .. F(S("Forward three pages")) .. "]" - - .. "image_button[" .. (start_x + 0.6 * 5) - .. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]" - .. "tooltip[end_list;" .. F(S("Last page")) .. "]" - else - formspec[n] = - "image_button[" .. (8.2 + 0.65 * 0) - .. ",5.8;.8,.8;ui_skip_backward_icon.png;start_list;]" - .. "tooltip[start_list;" .. F(S("First page")) .. "]" - .. "image_button[" .. (8.2 + 0.65 * 1) - .. ",5.8;.8,.8;ui_left_icon.png;rewind1;]" - .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" - .. "image_button[" .. (8.2 + 0.65 * 2) - .. ",5.8;.8,.8;ui_right_icon.png;forward1;]" - .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" - .. "image_button[" .. (8.2 + 0.65 * 3) - .. ",5.8;.8,.8;ui_skip_forward_icon.png;end_list;]" - .. "tooltip[end_list;" .. F(S("Last page")) .. "]" - end - n = n+1 - - -- Search box - formspec[n] = "field_close_on_enter[searchbox;false]" - n = n+1 - - if not draw_lite_mode then - formspec[n] = "field[9.5,8.325;3,1;searchbox;;" - .. F(unified_inventory.current_searchbox[player_name]) .. "]" - formspec[n+1] = "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - formspec[n+2] = "image_button[12.9,8.1;.8,.8;ui_reset_icon.png;searchresetbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" - else - formspec[n] = "field[8.5,5.225;2.2,1;searchbox;;" - .. F(unified_inventory.current_searchbox[player_name]) .. "]" - formspec[n+1] = "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - formspec[n+2] = "image_button[11,5;.8,.8;ui_reset_icon.png;searchresetbutton;]" - .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" - .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" - end - n = n+3 - - local no_matches = S("No matching items") - if draw_lite_mode then - no_matches = S("No matches.") - end - - -- Items list - if #unified_inventory.filtered_items_list[player_name] == 0 then - formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. F(no_matches) .. "]" - else - local dir = unified_inventory.active_search_direction[player_name] - local list_index = unified_inventory.current_index[player_name] - local page = math.floor(list_index / (ui_peruser.items_per_page) + 1) - local pagemax = math.floor( - (#unified_inventory.filtered_items_list[player_name] - 1) - / (ui_peruser.items_per_page) + 1) - local item = {} - for y = 0, ui_peruser.pagerows - 1 do - for x = 0, ui_peruser.pagecols - 1 do - local name = unified_inventory.filtered_items_list[player_name][list_index] - local item = minetest.registered_items[name] - if item then - -- Clicked on current item: Flip crafting direction - if name == unified_inventory.current_item[player_name] then - local cdir = unified_inventory.current_craft_direction[player_name] - if cdir == "recipe" then - dir = "usage" - elseif cdir == "usage" then - dir = "recipe" - end - else - -- Default: use active search direction by default - dir = unified_inventory.active_search_direction[player_name] - end - - local button_name = "item_button_" .. dir .. "_" - .. unified_inventory.mangle_for_formspec(name) - formspec[n] = ("item_image_button[%f,%f;.81,.81;%s;%s;]"):format( - 8.2 + x * 0.7, ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7, - name, button_name - ) - formspec[n + 1] = ("tooltip[%s;%s \\[%s\\]]"):format( - button_name, minetest.formspec_escape(item.description), - item.mod_origin or "??" - ) - n = n + 2 - list_index = list_index + 1 - end - end - end - formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..F(S("Page")) .. ": " - .. S("@1 of @2",page,pagemax).."]" - end - n= n+1 - - if unified_inventory.activefilter[player_name] ~= "" then - formspec[n] = "label[8.2,"..(ui_peruser.form_header_y + 0.4)..";" .. F(S("Filter")) .. ":]" - formspec[n+1] = "label[9.1,"..(ui_peruser.form_header_y + 0.4)..";"..F(unified_inventory.activefilter[player_name]).."]" - end - return table.concat(formspec, "") -end - -function unified_inventory.set_inventory_formspec(player, page) - if player then - player:set_inventory_formspec(unified_inventory.get_formspec(player, page)) - end -end - ---apply filter to the inventory list (create filtered copy of full one) -function unified_inventory.apply_filter(player, filter, search_dir) - if not player then - return false - end - local player_name = player:get_player_name() - local lfilter = string.lower(filter) - local ffilter - if lfilter:sub(1, 6) == "group:" then - local groups = lfilter:sub(7):split(",") - ffilter = function(name, def) - for _, group in ipairs(groups) do - if not def.groups[group] - or def.groups[group] <= 0 then - return false - end - end - return true - end - else - ffilter = function(name, def) - local lname = string.lower(name) - local ldesc = string.lower(def.description) - return string.find(lname, lfilter, 1, true) or string.find(ldesc, lfilter, 1, true) - end - end - unified_inventory.filtered_items_list[player_name]={} - for name, def in pairs(minetest.registered_items) do - if (not def.groups.not_in_creative_inventory - or def.groups.not_in_creative_inventory == 0) - and def.description - and def.description ~= "" - and ffilter(name, def) then - table.insert(unified_inventory.filtered_items_list[player_name], name) - end - end - table.sort(unified_inventory.filtered_items_list[player_name]) - unified_inventory.filtered_items_list_size[player_name] = #unified_inventory.filtered_items_list[player_name] - unified_inventory.current_index[player_name] = 1 - unified_inventory.activefilter[player_name] = filter - unified_inventory.active_search_direction[player_name] = search_dir - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) -end - -function unified_inventory.items_in_group(groups) - local items = {} - for name, item in pairs(minetest.registered_items) do - for _, group in pairs(groups:split(',')) do - if item.groups[group] then - table.insert(items, name) - end - end - end - return items -end - -function unified_inventory.sort_inventory(inv) - local inlist = inv:get_list("main") - local typecnt = {} - local typekeys = {} - for _, st in ipairs(inlist) do - if not st:is_empty() then - local n = st:get_name() - local w = st:get_wear() - local m = st:get_metadata() - local k = string.format("%s %05d %s", n, w, m) - if not typecnt[k] then - typecnt[k] = { - name = n, - wear = w, - metadata = m, - stack_max = st:get_stack_max(), - count = 0, - } - table.insert(typekeys, k) - end - typecnt[k].count = typecnt[k].count + st:get_count() - end - end - table.sort(typekeys) - local outlist = {} - for _, k in ipairs(typekeys) do - local tc = typecnt[k] - while tc.count > 0 do - local c = math.min(tc.count, tc.stack_max) - table.insert(outlist, ItemStack({ - name = tc.name, - wear = tc.wear, - metadata = tc.metadata, - count = c, - })) - tc.count = tc.count - c - end - end - if #outlist > #inlist then return end - while #outlist < #inlist do - table.insert(outlist, ItemStack(nil)) - end - inv:set_list("main", outlist) -end -- 2.40.1 From d2efbad690b049b5487b5107712bcea26e9c91a0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:11:50 -0500 Subject: [PATCH 014/321] Delete item_names.lua --- mods/item_names.lua | 76 --------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 mods/item_names.lua diff --git a/mods/item_names.lua b/mods/item_names.lua deleted file mode 100644 index d374b140..00000000 --- a/mods/item_names.lua +++ /dev/null @@ -1,76 +0,0 @@ --- Based on 4itemnames mod by 4aiman - -local item_names = {} -- [player_name] = { hud, dtime, itemname } -local dlimit = 3 -- HUD element will be hidden after this many seconds -local air_hud_mod = minetest.get_modpath("4air") -local hud_mod = minetest.get_modpath("hud") -local hudbars_mod = minetest.get_modpath("hudbars") - -local function set_hud(player) - local player_name = player:get_player_name() - local off = {x=0, y=-70} - if air_hud_mod or hud_mod then - off.y = off.y - 20 - elseif hudbars_mod then - off.y = off.y + 13 - end - item_names[player_name] = { - hud = player:hud_add({ - hud_elem_type = "text", - position = {x=0.5, y=1}, - offset = off, - alignment = {x=0, y=0}, - number = 0xFFFFFF, - text = "", - }), - dtime = dlimit, - index = 1, - itemname = "" - } -end - -minetest.register_on_joinplayer(function(player) - minetest.after(0, set_hud, player) -end) - -minetest.register_on_leaveplayer(function(player) - item_names[player:get_player_name()] = nil -end) - -minetest.register_globalstep(function(dtime) - for _, player in pairs(minetest.get_connected_players()) do - local data = item_names[player:get_player_name()] - if not data or not data.hud then - data = {} -- Update on next step - set_hud(player) - end - - local index = player:get_wield_index() - local stack = player:get_wielded_item() - local itemname = stack:get_name() - - if data.hud and data.dtime < dlimit then - data.dtime = data.dtime + dtime - if data.dtime > dlimit then - player:hud_change(data.hud, 'text', "") - end - end - - if data.hud and (itemname ~= data.itemname or index ~= data.index) then - data.itemname = itemname - data.index = index - data.dtime = 0 - - local desc = stack.get_meta - and stack:get_meta():get_string("description") - - if not desc or desc == "" then - -- Try to use default description when none is set in the meta - local def = minetest.registered_items[itemname] - desc = def and def.description or "" - end - player:hud_change(data.hud, 'text', desc) - end - end -end) - -- 2.40.1 From 1471b543d5dd717263bed2d942d568b69ded6525 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:12:01 -0500 Subject: [PATCH 015/321] Delete match_craft.lua --- mods/match_craft.lua | 409 ------------------------------------------- 1 file changed, 409 deletions(-) delete mode 100644 mods/match_craft.lua diff --git a/mods/match_craft.lua b/mods/match_craft.lua deleted file mode 100644 index 2dd40b04..00000000 --- a/mods/match_craft.lua +++ /dev/null @@ -1,409 +0,0 @@ --- match_craft.lua --- Find and automatically move inventory items to the crafting grid --- according to the recipe. - ---[[ -Retrieve items from inventory lists and calculate their total count. -Return a table of "item name" - "total count" pairs. - -Arguments: - inv: minetest inventory reference - lists: names of inventory lists to use - -Example usage: - -- Count items in "main" and "craft" lists of player inventory - unified_inventory.count_items(player_inv_ref, {"main", "craft"}) - -Example output: - { - ["default:pine_wood"] = 2, - ["default:acacia_wood"] = 4, - ["default:chest"] = 3, - ["default:axe_diamond"] = 2, -- unstackable item are counted too - ["wool:white"] = 6 - } -]]-- -function unified_inventory.count_items(inv, lists) - local counts = {} - - for i = 1, #lists do - local name = lists[i] - local size = inv:get_size(name) - local list = inv:get_list(name) - - for j = 1, size do - local stack = list[j] - - if not stack:is_empty() then - local item = stack:get_name() - local count = stack:get_count() - - counts[item] = (counts[item] or 0) + count - end - end - end - - return counts -end - ---[[ -Retrieve craft recipe items and their positions in the crafting grid. -Return a table of "craft item name" - "set of positions" pairs. - -Note that if craft width is not 3 then positions are recalculated as -if items were placed on a 3x3 grid. Also note that craft can contain -groups of items with "group:" prefix. - -Arguments: - craft: minetest craft recipe - -Example output: - -- Bed recipe - { - ["wool:white"] = {[1] = true, [2] = true, [3] = true} - ["group:wood"] = {[4] = true, [5] = true, [6] = true} - } ---]] -function unified_inventory.count_craft_positions(craft) - local positions = {} - local craft_items = craft.items - local craft_type = unified_inventory.registered_craft_types[craft.type] - or unified_inventory.craft_type_defaults(craft.type, {}) - local display_width = craft_type.dynamic_display_size - and craft_type.dynamic_display_size(craft).width - or craft_type.width - local craft_width = craft_type.get_shaped_craft_width - and craft_type.get_shaped_craft_width(craft) - or display_width - local i = 0 - - for y = 1, 3 do - for x = 1, craft_width do - i = i + 1 - local item = craft_items[i] - - if item ~= nil then - local pos = 3 * (y - 1) + x - local set = positions[item] - - if set ~= nil then - set[pos] = true - else - positions[item] = {[pos] = true} - end - end - end - end - - return positions -end - ---[[ -For every craft item find all matching inventory items. -- If craft item is a group then find all inventory items that matches - this group. -- If craft item is not a group (regular item) then find only this item. - -If inventory doesn't contain needed item then found set is empty for -this item. - -Return a table of "craft item name" - "set of matching inventory items" -pairs. - -Arguments: - inv_items: table with items names as keys - craft_items: table with items names or groups as keys - -Example output: - { - ["group:wood"] = { - ["default:pine_wood"] = true, - ["default:acacia_wood"] = true - }, - ["wool:white"] = { - ["wool:white"] = true - } - } ---]] -function unified_inventory.find_usable_items(inv_items, craft_items) - local get_group = minetest.get_item_group - local result = {} - - for craft_item in pairs(craft_items) do - local group = craft_item:match("^group:(.+)") - local found = {} - - if group ~= nil then - for inv_item in pairs(inv_items) do - if get_group(inv_item, group) > 0 then - found[inv_item] = true - end - end - else - if inv_items[craft_item] ~= nil then - found[craft_item] = true - end - end - - result[craft_item] = found - end - - return result -end - ---[[ -Match inventory items with craft grid positions. -For every position select the matching inventory item with maximum -(total_count / (times_matched + 1)) value. - -If for some position matching item cannot be found or match count is 0 -then return nil. - -Return a table of "matched item name" - "set of craft positions" pairs -and overall match count. - -Arguments: - inv_counts: table of inventory items counts from "count_items" - craft_positions: table of craft positions from "count_craft_positions" - -Example output: - match_table = { - ["wool:white"] = {[1] = true, [2] = true, [3] = true} - ["default:acacia_wood"] = {[4] = true, [6] = true} - ["default:pine_wood"] = {[5] = true} - } - match_count = 2 ---]] -function unified_inventory.match_items(inv_counts, craft_positions) - local usable = unified_inventory.find_usable_items(inv_counts, craft_positions) - local match_table = {} - local match_count - local matches = {} - - for craft_item, pos_set in pairs(craft_positions) do - local use_set = usable[craft_item] - - for pos in pairs(pos_set) do - local pos_item - local pos_count - - for use_item in pairs(use_set) do - local count = inv_counts[use_item] - local times_matched = matches[use_item] or 0 - local new_pos_count = math.floor(count / (times_matched + 1)) - - if pos_count == nil or pos_count < new_pos_count then - pos_item = use_item - pos_count = new_pos_count - end - end - - if pos_item == nil or pos_count == 0 then - return nil - end - - local set = match_table[pos_item] - - if set ~= nil then - set[pos] = true - else - match_table[pos_item] = {[pos] = true} - end - - matches[pos_item] = (matches[pos_item] or 0) + 1 - end - end - - for match_item, times_matched in pairs(matches) do - local count = inv_counts[match_item] - local item_count = math.floor(count / times_matched) - - if match_count == nil or item_count < match_count then - match_count = item_count - end - end - - return match_table, match_count -end - ---[[ -Remove item from inventory lists. -Return stack of actually removed items. - -This function replicates the inv:remove_item function but can accept -multiple lists. - -Arguments: - inv: minetest inventory reference - lists: names of inventory lists - stack: minetest item stack ---]] -function unified_inventory.remove_item(inv, lists, stack) - local removed = ItemStack(nil) - local leftover = ItemStack(stack) - - for i = 1, #lists do - if leftover:is_empty() then - break - end - - local cur_removed = inv:remove_item(lists[i], leftover) - removed:add_item(cur_removed) - leftover:take_item(cur_removed:get_count()) - end - - return removed -end - ---[[ -Add item to inventory lists. -Return leftover stack. - -This function replicates the inv:add_item function but can accept -multiple lists. - -Arguments: - inv: minetest inventory reference - lists: names of inventory lists - stack: minetest item stack ---]] -function unified_inventory.add_item(inv, lists, stack) - local leftover = ItemStack(stack) - - for i = 1, #lists do - if leftover:is_empty() then - break - end - - leftover = inv:add_item(lists[i], leftover) - end - - return leftover -end - ---[[ -Move items from source list to destination list if possible. -Skip positions specified in exclude set. - -Arguments: - inv: minetest inventory reference - src_list: name of source list - dst_list: name of destination list - exclude: set of positions to skip ---]] -function unified_inventory.swap_items(inv, src_list, dst_list, exclude) - local size = inv:get_size(src_list) - local empty = ItemStack(nil) - - for i = 1, size do - if exclude == nil or exclude[i] == nil then - local stack = inv:get_stack(src_list, i) - - if not stack:is_empty() then - inv:set_stack(src_list, i, empty) - local leftover = inv:add_item(dst_list, stack) - - if not leftover:is_empty() then - inv:set_stack(src_list, i, leftover) - end - end - end - end -end - ---[[ -Move matched items to the destination list. - -If destination list position is already occupied with some other item -then function tries to (in that order): -1. Move it to the source list -2. Move it to some other unused position in destination list itself -3. Drop it to the ground if nothing else is possible. - -Arguments: - player: minetest player object - src_list: name of source list - dst_list: name of destination list - match_table: table of matched items - amount: amount of items per every position ---]] -function unified_inventory.move_match(player, src_list, dst_list, match_table, amount) - local inv = player:get_inventory() - local item_drop = minetest.item_drop - local src_dst_list = {src_list, dst_list} - local dst_src_list = {dst_list, src_list} - - local needed = {} - local moved = {} - - -- Remove stacks needed for craft - for item, pos_set in pairs(match_table) do - local stack = ItemStack(item) - local stack_max = stack:get_stack_max() - local bounded_amount = math.min(stack_max, amount) - stack:set_count(bounded_amount) - - for pos in pairs(pos_set) do - needed[pos] = unified_inventory.remove_item(inv, dst_src_list, stack) - end - end - - -- Add already removed stacks - for pos, stack in pairs(needed) do - local occupied = inv:get_stack(dst_list, pos) - inv:set_stack(dst_list, pos, stack) - - if not occupied:is_empty() then - local leftover = unified_inventory.add_item(inv, src_dst_list, occupied) - - if not leftover:is_empty() then - inv:set_stack(dst_list, pos, leftover) - local oversize = unified_inventory.add_item(inv, src_dst_list, stack) - - if not oversize:is_empty() then - item_drop(oversize, player, player:get_pos()) - end - end - end - - moved[pos] = true - end - - -- Swap items from unused positions to src (moved positions excluded) - unified_inventory.swap_items(inv, dst_list, src_list, moved) -end - ---[[ -Find craft match and move matched items to the destination list. - -If match cannot be found or match count is smaller than the desired -amount then do nothing. - -If amount passed is -1 then amount is defined by match count itself. -This is used to indicate "craft All" case. - -Arguments: - player: minetest player object - src_list: name of source list - dst_list: name of destination list - craft: minetest craft recipe - amount: desired amount of output items ---]] -function unified_inventory.craftguide_match_craft(player, src_list, dst_list, craft, amount) - local inv = player:get_inventory() - local src_dst_list = {src_list, dst_list} - - local counts = unified_inventory.count_items(inv, src_dst_list) - local positions = unified_inventory.count_craft_positions(craft) - local match_table, match_count = unified_inventory.match_items(counts, positions) - - if match_table == nil or match_count < amount then - return - end - - if amount == -1 then - amount = match_count - end - - unified_inventory.move_match(player, src_list, dst_list, match_table, amount) -end -- 2.40.1 From 2a4ec61d0645957f830c63956ec3dd78968db60b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:12:11 -0500 Subject: [PATCH 016/321] Delete mod.conf --- mods/mod.conf | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 mods/mod.conf diff --git a/mods/mod.conf b/mods/mod.conf deleted file mode 100644 index 4fe3375f..00000000 --- a/mods/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -name = unified_inventory -depends = default -optional_depends = creative, sfinv, datastorage, farming -description = Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. -- 2.40.1 From bae2ae3c690b40d896bd81e765bfafd06e80f4f8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:12:20 -0500 Subject: [PATCH 017/321] Delete register.lua --- mods/register.lua | 489 ---------------------------------------------- 1 file changed, 489 deletions(-) delete mode 100644 mods/register.lua diff --git a/mods/register.lua b/mods/register.lua deleted file mode 100644 index d89c05e5..00000000 --- a/mods/register.lua +++ /dev/null @@ -1,489 +0,0 @@ -local S = minetest.get_translator("unified_inventory") -local NS = function(s) return s end -local F = minetest.formspec_escape - -minetest.register_privilege("creative", { - description = S("Can use the creative inventory"), - give_to_singleplayer = false, -}) - -minetest.register_privilege("ui_full", { - description = S("Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally"), - give_to_singleplayer = false, -}) - - -local trash = minetest.create_detached_inventory("trash", { - --allow_put = function(inv, listname, index, stack, player) - -- if unified_inventory.is_creative(player:get_player_name()) then - -- return stack:get_count() - -- else - -- return 0 - -- end - --end, - on_put = function(inv, listname, index, stack, player) - inv:set_stack(listname, index, nil) - local player_name = player:get_player_name() - minetest.sound_play("trash", {to_player=player_name, gain = 1.0}) - end, -}) -trash:set_size("main", 1) - -unified_inventory.register_button("craft", { - type = "image", - image = "ui_craft_icon.png", - tooltip = S("Crafting Grid") -}) - -unified_inventory.register_button("craftguide", { - type = "image", - image = "ui_craftguide_icon.png", - tooltip = S("Crafting Guide") -}) - -unified_inventory.register_button("home_gui_set", { - type = "image", - image = "ui_sethome_icon.png", - tooltip = S("Set home position"), - hide_lite=true, - action = function(player) - local player_name = player:get_player_name() - if minetest.check_player_privs(player_name, {home=true}) then - unified_inventory.set_home(player, player:get_pos()) - local home = unified_inventory.home_pos[player_name] - if home ~= nil then - minetest.sound_play("dingdong", - {to_player=player_name, gain = 1.0}) - minetest.chat_send_player(player_name, - S("Home position set to: @1", minetest.pos_to_string(home))) - end - else - minetest.chat_send_player(player_name, - S("You don't have the \"home\" privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) - end - end, - condition = function(player) - return minetest.check_player_privs(player:get_player_name(), {home=true}) - end, -}) - -unified_inventory.register_button("home_gui_go", { - type = "image", - image = "ui_gohome_icon.png", - tooltip = S("Go home"), - hide_lite=true, - action = function(player) - local player_name = player:get_player_name() - if minetest.check_player_privs(player_name, {home=true}) then - minetest.sound_play("teleport", - {to_player=player:get_player_name(), gain = 1.0}) - unified_inventory.go_home(player) - else - minetest.chat_send_player(player_name, - S("You don't have the \"home\" privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) - end - end, - condition = function(player) - return minetest.check_player_privs(player:get_player_name(), {home=true}) - end, -}) - -unified_inventory.register_button("misc_set_day", { - type = "image", - image = "ui_sun_icon.png", - tooltip = S("Set time to day"), - hide_lite=true, - action = function(player) - local player_name = player:get_player_name() - if minetest.check_player_privs(player_name, {settime=true}) then - minetest.sound_play("birds", - {to_player=player_name, gain = 1.0}) - minetest.set_timeofday((6000 % 24000) / 24000) - minetest.chat_send_player(player_name, - S("Time of day set to 6am")) - else - minetest.chat_send_player(player_name, - S("You don't have the settime privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) - end - end, - condition = function(player) - return minetest.check_player_privs(player:get_player_name(), {settime=true}) - end, -}) - -unified_inventory.register_button("misc_set_night", { - type = "image", - image = "ui_moon_icon.png", - tooltip = S("Set time to night"), - hide_lite=true, - action = function(player) - local player_name = player:get_player_name() - if minetest.check_player_privs(player_name, {settime=true}) then - minetest.sound_play("owl", - {to_player=player_name, gain = 1.0}) - minetest.set_timeofday((21000 % 24000) / 24000) - minetest.chat_send_player(player_name, - S("Time of day set to 9pm")) - else - minetest.chat_send_player(player_name, - S("You don't have the settime privilege!")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) - end - end, - condition = function(player) - return minetest.check_player_privs(player:get_player_name(), {settime=true}) - end, -}) - -unified_inventory.register_button("clear_inv", { - type = "image", - image = "ui_trash_icon.png", - tooltip = S("Clear inventory"), - action = function(player) - local player_name = player:get_player_name() - if not unified_inventory.is_creative(player_name) then - minetest.chat_send_player(player_name, - S("This button has been disabled outside" - .." of creative mode to prevent" - .." accidental inventory trashing." - .."\nUse the trash slot instead.")) - unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) - return - end - player:get_inventory():set_list("main", {}) - minetest.chat_send_player(player_name, S('Inventory cleared!')) - minetest.sound_play("trash_all", - {to_player=player_name, gain = 1.0}) - end, - condition = function(player) - return unified_inventory.is_creative(player:get_player_name()) - end, -}) - -unified_inventory.register_page("craft", { - get_formspec = function(player, perplayer_formspec) - - local formspecy = perplayer_formspec.formspec_y - local formheadery = perplayer_formspec.form_header_y - - local player_name = player:get_player_name() - local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]" - formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]" - formspec = formspec.."label[0,"..formheadery..";" ..F(S("Crafting")).."]" - formspec = formspec.."listcolors[#00000000;#00000000]" - formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]" - formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]" - if unified_inventory.trash_enabled or unified_inventory.is_creative(player_name) or minetest.get_player_privs(player_name).give then - formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. F(S("Trash:")) .. "]" - formspec = formspec.."background[7,"..(formspecy + 2)..";1,1;ui_single_slot.png]" - formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]" - end - formspec = formspec.."listring[current_name;craft]" - formspec = formspec.."listring[current_player;main]" - if unified_inventory.is_creative(player_name) then - formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. F(S("Refill:")) .. "]" - formspec = formspec.."list[detached:"..F(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]" - end - return {formspec=formspec} - end, -}) - --- stack_image_button(): generate a form button displaying a stack of items --- --- The specified item may be a group. In that case, the group will be --- represented by some item in the group, along with a flag indicating --- that it's a group. If the group contains only one item, it will be --- treated as if that item had been specified directly. - -local function stack_image_button(x, y, w, h, buttonname_prefix, item) - local name = item:get_name() - local count = item:get_count() - local show_is_group = false - local displayitem = name.." "..count - local selectitem = name - if name:sub(1, 6) == "group:" then - local group_name = name:sub(7) - local group_item = unified_inventory.get_group_item(group_name) - show_is_group = not group_item.sole - displayitem = group_item.item or "unknown" - selectitem = group_item.sole and displayitem or name - end - local label = show_is_group and "G" or "" - local buttonname = F(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)) - local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]", - x, y, w, h, - F(displayitem), buttonname, label) - if show_is_group then - local groupstring, andcount = unified_inventory.extract_groupnames(name) - local grouptip - if andcount == 1 then - grouptip = S("Any item belonging to the @1 group", groupstring) - elseif andcount > 1 then - grouptip = S("Any item belonging to the groups @1", groupstring) - end - grouptip = F(grouptip) - if andcount >= 1 then - button = button .. string.format("tooltip[%s;%s]", buttonname, grouptip) - end - end - return button -end - -local recipe_text = { - recipe = NS("Recipe @1 of @2"), - usage = NS("Usage @1 of @2"), -} -local no_recipe_text = { - recipe = S("No recipes"), - usage = S("No usages"), -} -local role_text = { - recipe = S("Result"), - usage = S("Ingredient"), -} -local next_alt_text = { - recipe = S("Show next recipe"), - usage = S("Show next usage"), -} -local prev_alt_text = { - recipe = S("Show previous recipe"), - usage = S("Show previous usage"), -} -local other_dir = { - recipe = "usage", - usage = "recipe", -} - -unified_inventory.register_page("craftguide", { - get_formspec = function(player, perplayer_formspec) - - local formspecy = perplayer_formspec.formspec_y - local formheadery = perplayer_formspec.form_header_y - local craftresultx = perplayer_formspec.craft_result_x - local craftresulty = perplayer_formspec.craft_result_y - - local player_name = player:get_player_name() - local player_privs = minetest.get_player_privs(player_name) - local fs = { - "background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]", - "label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]", - "listcolors[#00000000;#00000000]" - } - local item_name = unified_inventory.current_item[player_name] - if not item_name then - return { formspec = table.concat(fs) } - end - - local item_name_shown - if minetest.registered_items[item_name] - and minetest.registered_items[item_name].description then - item_name_shown = S("@1 (@2)", - minetest.registered_items[item_name].description, item_name) - else - item_name_shown = item_name - end - - local dir = unified_inventory.current_craft_direction[player_name] - local rdir = dir == "recipe" and "usage" or "recipe" - - local crafts = unified_inventory.crafts_for[dir][item_name] - local alternate = unified_inventory.alternate[player_name] - local alternates, craft - if crafts and #crafts > 0 then - alternates = #crafts - craft = crafts[alternate] - end - local has_give = player_privs.give or unified_inventory.is_creative(player_name) - - fs[#fs + 1] = "background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]" - fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]", - craftresultx, craftresulty, F(role_text[dir]), item_name_shown) - fs[#fs + 1] = stack_image_button(0, formspecy, 1.1, 1.1, - "item_button_" .. rdir .. "_", ItemStack(item_name)) - - if not craft then - -- No craft recipes available for this item. - fs[#fs + 1] = "label[5.5,"..(formspecy + 2.35)..";" - .. F(no_recipe_text[dir]) .. "]" - local no_pos = dir == "recipe" and 4.5 or 6.5 - local item_pos = dir == "recipe" and 6.5 or 4.5 - fs[#fs + 1] = "image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]" - fs[#fs + 1] = stack_image_button(item_pos, formspecy, 1.1, 1.1, - "item_button_" .. other_dir[dir] .. "_", ItemStack(item_name)) - if has_give then - fs[#fs + 1] = "label[0," .. (formspecy + 2.10) .. ";" .. F(S("Give me:")) .. "]" - .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" - .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" - .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" - end - return { formspec = table.concat(fs) } - end - - local craft_type = unified_inventory.registered_craft_types[craft.type] or - unified_inventory.craft_type_defaults(craft.type, {}) - if craft_type.icon then - fs[#fs + 1] = string.format("image[%f,%f;%f,%f;%s]", - 5.7, (formspecy + 0.05), 0.5, 0.5, craft_type.icon) - end - fs[#fs + 1] = "label[5.5,"..(formspecy + 1)..";" .. F(craft_type.description).."]" - fs[#fs + 1] = stack_image_button(6.5, formspecy, 1.1, 1.1, - "item_button_usage_", ItemStack(craft.output)) - - local display_size = craft_type.dynamic_display_size - and craft_type.dynamic_display_size(craft) - or { width = craft_type.width, height = craft_type.height } - local craft_width = craft_type.get_shaped_craft_width - and craft_type.get_shaped_craft_width(craft) - or display_size.width - - -- This keeps recipes aligned to the right, - -- so that they're close to the arrow. - local xoffset = 5.5 - -- Offset factor for crafting grids with side length > 4 - local of = (3/math.max(3, math.max(display_size.width, display_size.height))) - local od = 0 - -- Minimum grid size at which size optimazation measures kick in - local mini_craft_size = 6 - if display_size.width >= mini_craft_size then - od = math.max(1, display_size.width - 2) - xoffset = xoffset - 0.1 - end - -- Size modifier factor - local sf = math.min(1, of * (1.05 + 0.05*od)) - -- Button size - local bsize_h = 1.1 * sf - local bsize_w = bsize_h - if display_size.width >= mini_craft_size then - bsize_w = 1.175 * sf - end - if (bsize_h > 0.35 and display_size.width) then - for y = 1, display_size.height do - for x = 1, display_size.width do - local item - if craft and x <= craft_width then - item = craft.items[(y-1) * craft_width + x] - end - -- Flipped x, used to build formspec buttons from right to left - local fx = display_size.width - (x-1) - -- x offset, y offset - local xof = (fx-1) * of + of - local yof = (y-1) * of + 1 - if item then - fs[#fs + 1] = stack_image_button( - xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h, - "item_button_recipe_", - ItemStack(item)) - else - -- Fake buttons just to make grid - fs[#fs + 1] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]", - xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h) - end - end - end - else - -- Error - fs[#fs + 1] = string.format("label[2,%f;%s]", - formspecy, F(S("This recipe is too\nlarge to be displayed."))) - end - - if craft_type.uses_crafting_grid and display_size.width <= 3 then - fs[#fs + 1] = "label[0," .. (formspecy + 0.9) .. ";" .. F(S("To craft grid:")) .. "]" - .. "button[0, " .. (formspecy + 1.5) .. ";0.6,0.5;craftguide_craft_1;1]" - .. "button[0.6," .. (formspecy + 1.5) .. ";0.7,0.5;craftguide_craft_10;10]" - .. "button[1.3," .. (formspecy + 1.5) .. ";0.8,0.5;craftguide_craft_max;" .. F(S("All")) .. "]" - end - if has_give then - fs[#fs + 1] = "label[0," .. (formspecy + 2.1) .. ";" .. F(S("Give me:")) .. "]" - .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" - .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" - .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" - end - - if alternates and alternates > 1 then - fs[#fs + 1] = "label[5.5," .. (formspecy + 1.6) .. ";" - .. F(S(recipe_text[dir], alternate, alternates)) .. "]" - .. "image_button[5.5," .. (formspecy + 2) .. ";1,1;ui_left_icon.png;alternate_prev;]" - .. "image_button[6.5," .. (formspecy + 2) .. ";1,1;ui_right_icon.png;alternate;]" - .. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]" - .. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]" - end - return { formspec = table.concat(fs) } - end, -}) - -local function craftguide_giveme(player, formname, fields) - local player_name = player:get_player_name() - local player_privs = minetest.get_player_privs(player_name) - if not player_privs.give and - not unified_inventory.is_creative(player_name) then - minetest.log("action", "[unified_inventory] Denied give action to player " .. - player_name) - return - end - - local amount - for k, v in pairs(fields) do - amount = k:match("craftguide_giveme_(.*)") - if amount then break end - end - - amount = tonumber(amount) or 0 - if amount == 0 then return end - - local output = unified_inventory.current_item[player_name] - if (not output) or (output == "") then return end - - local player_inv = player:get_inventory() - - player_inv:add_item("main", {name = output, count = amount}) -end - -local function craftguide_craft(player, formname, fields) - local amount - for k, v in pairs(fields) do - amount = k:match("craftguide_craft_(.*)") - if amount then break end - end - if not amount then return end - - amount = tonumber(amount) or -1 -- fallback for "all" - if amount == 0 or amount < -1 or amount > 99 then return end - - local player_name = player:get_player_name() - - local output = unified_inventory.current_item[player_name] or "" - if output == "" then return end - - local crafts = unified_inventory.crafts_for[ - unified_inventory.current_craft_direction[player_name]][output] or {} - if #crafts == 0 then return end - - local alternate = unified_inventory.alternate[player_name] - - local craft = crafts[alternate] - if craft.width > 3 then return end - - unified_inventory.craftguide_match_craft(player, "main", "craft", craft, amount) - - unified_inventory.set_inventory_formspec(player, "craft") -end - -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname ~= "" then - return - end - - for k, v in pairs(fields) do - if k:match("craftguide_craft_") then - craftguide_craft(player, formname, fields) - return - end - if k:match("craftguide_giveme_") then - craftguide_giveme(player, formname, fields) - return - end - end -end) -- 2.40.1 From 49e0c32749f8214770e8042121fc409a84cae175 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:12:29 -0500 Subject: [PATCH 018/321] Delete screenshot.png --- mods/screenshot.png | Bin 137234 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/screenshot.png diff --git a/mods/screenshot.png b/mods/screenshot.png deleted file mode 100644 index 972cbb469dba9b2c976c7582d91110dc9d765c20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137234 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 -- 2.40.1 From b585735cf247f4e88a0b06d670ffaaee6a334d4d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:12:44 -0500 Subject: [PATCH 019/321] Delete settingtypes.txt --- mods/settingtypes.txt | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 mods/settingtypes.txt diff --git a/mods/settingtypes.txt b/mods/settingtypes.txt deleted file mode 100644 index 910989fd..00000000 --- a/mods/settingtypes.txt +++ /dev/null @@ -1,11 +0,0 @@ -#Enabling lite mode enables a smaller and simpler version of the Unified -#Inventory, optimized for small displays. -unified_inventory_lite (Lite mode) bool false - -#If enabled, bags will be made available which can be used to extend -#inventory storage size. -unified_inventory_bags (Enable bags) bool true - -#If enabled, the trash slot can be used by those without both creative -#and the give privilege. -unified_inventory_trash (Enable trash) bool true -- 2.40.1 From 959098dff863ac38a8a4cfb0476d5a0b65c5990f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:13:46 -0500 Subject: [PATCH 020/321] Rename mods/waypoints.lua to mods/unified_inventory/waypoints.lua --- mods/{ => unified_inventory}/waypoints.lua | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{ => unified_inventory}/waypoints.lua (100%) diff --git a/mods/waypoints.lua b/mods/unified_inventory/waypoints.lua similarity index 100% rename from mods/waypoints.lua rename to mods/unified_inventory/waypoints.lua -- 2.40.1 From d92a9a567eaa3d6210297d44209ecc13efca2d18 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:14:23 -0500 Subject: [PATCH 021/321] Add files via upload --- mods/unified_inventory/.gitignore | 2 + mods/unified_inventory/LICENSE.txt | 19 + mods/unified_inventory/README.md | 96 +++++ mods/unified_inventory/api.lua | 307 ++++++++++++++ mods/unified_inventory/bags.lua | 276 +++++++++++++ mods/unified_inventory/callbacks.lua | 216 ++++++++++ mods/unified_inventory/depends.txt | 5 + mods/unified_inventory/description.txt | 1 + mods/unified_inventory/group.lua | 127 ++++++ mods/unified_inventory/image_credits.txt | 69 ++++ mods/unified_inventory/init.lua | 79 ++++ mods/unified_inventory/internal.lua | 374 +++++++++++++++++ mods/unified_inventory/item_names.lua | 76 ++++ mods/unified_inventory/match_craft.lua | 409 +++++++++++++++++++ mods/unified_inventory/mod.conf | 4 + mods/unified_inventory/register.lua | 489 +++++++++++++++++++++++ mods/unified_inventory/screenshot.png | Bin 0 -> 137234 bytes mods/unified_inventory/settingtypes.txt | 11 + 18 files changed, 2560 insertions(+) create mode 100644 mods/unified_inventory/.gitignore create mode 100644 mods/unified_inventory/LICENSE.txt create mode 100644 mods/unified_inventory/README.md create mode 100644 mods/unified_inventory/api.lua create mode 100644 mods/unified_inventory/bags.lua create mode 100644 mods/unified_inventory/callbacks.lua create mode 100644 mods/unified_inventory/depends.txt create mode 100644 mods/unified_inventory/description.txt create mode 100644 mods/unified_inventory/group.lua create mode 100644 mods/unified_inventory/image_credits.txt create mode 100644 mods/unified_inventory/init.lua create mode 100644 mods/unified_inventory/internal.lua create mode 100644 mods/unified_inventory/item_names.lua create mode 100644 mods/unified_inventory/match_craft.lua create mode 100644 mods/unified_inventory/mod.conf create mode 100644 mods/unified_inventory/register.lua create mode 100644 mods/unified_inventory/screenshot.png create mode 100644 mods/unified_inventory/settingtypes.txt diff --git a/mods/unified_inventory/.gitignore b/mods/unified_inventory/.gitignore new file mode 100644 index 00000000..5236e1e4 --- /dev/null +++ b/mods/unified_inventory/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/mods/unified_inventory/LICENSE.txt b/mods/unified_inventory/LICENSE.txt new file mode 100644 index 00000000..32492e43 --- /dev/null +++ b/mods/unified_inventory/LICENSE.txt @@ -0,0 +1,19 @@ +Unified Inventory for Minetest +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Contact information: + Examine a git patch to get the contributor's email address. diff --git a/mods/unified_inventory/README.md b/mods/unified_inventory/README.md new file mode 100644 index 00000000..15802c6e --- /dev/null +++ b/mods/unified_inventory/README.md @@ -0,0 +1,96 @@ +# Unified Inventory + +Unified Inventory replaces the default survival and creative inventory. + + +## Features + + * Node, item and tool browser + * Crafting guide + * Can copy the recipe to the crafting grid + * Recipe search function by ingredients + * Up to four bags with up to 24 slots each + * Home function to teleport + * Trash slot + * Lite mode: reduces the item browser width + * Mod API for modders: see [mod_api.txt](doc/mod_api.txt) + * Setting-determinated features: see [settingtypes.txt](settingtypes.txt) + + +## Requirements + + * Minetest 5.0.0+ since commit 4403b69 + * Minetest 0.4.16+ prior commit 4403b69 + + +# Licenses + +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +Copyright (C) 2012-? Various minetest-mods contributors + + +## Code + +GNU LGPLv2+, see [license notice](LICENSE.txt) + + +## Textures + +VanessaE: (CC-BY-4.0) + + * `ui_group.png` + +Tango Project: (Public Domain, CC-BY-4.0) + + * [`ui_reset_icon.png`](https://commons.wikimedia.org/wiki/File:Edit-clear.svg) + * [`ui_doubleleft_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg) + * [`ui_doubleright_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg) + * [`ui_left_icon.png` / `ui_right_icon.png`](http://commons.wikimedia.org/wiki/File:Media-playback-start.svg) + * [`ui_skip_backward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg) + * [`ui_skip_forward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg) + +From http://www.clker.com (Public Domain, CC-BY-4.0): + + * [`bags_small.png`](http://www.clker.com/clipart-moneybag-empty.html) + * [`bags_medium.png`](http://www.clker.com/clipart-backpack-1.html) + * [`bags_large.png` / `ui_bags_icon.png`](http://www.clker.com/clipart-backpack-green-brown.html) + * `ui_trash_icon.png`: and + * [`ui_search_icon.png`](http://www.clker.com/clipart-24887.html) + * [`ui_off_icon.png` / `ui_on_icon.png`](http://www.clker.com/clipart-on-off-switches.html) + * [`ui_waypoints_icon.png`](http://www.clker.com/clipart-map-pin-red.html) + * [`ui_circular_arrows_icon.png`](http://www.clker.com/clipart-circular-arrow-pattern.html) + * [`ui_pencil_icon.pnc`](http://www.clker.com/clipart-2256.html) + * [`ui_waypoint_set_icon.png`](http://www.clker.com/clipart-larger-flag.html) + +Everaldo Coelho (YellowIcon) (LGPL v2.1+): + + * [`ui_craftguide_icon.png` / `ui_craft_icon.png`](http://commons.wikimedia.org/wiki/File:Advancedsettings.png) + +Gregory H. Revera: (CC-BY-SA 3.0) + + * [`ui_moon_icon.png`](http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg) + +Thomas Bresson: (CC-BY 3.0) + + * [`ui_sun_icon.png`](http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg) + +Fibonacci: (Public domain, CC-BY 4.0) + + * [`ui_xyz_off_icon.png`](http://commons.wikimedia.org/wiki/File:No_sign.svg) + +Gregory Maxwell: (Public domain, CC-BY 4.0) + + * [`ui_ok_icon.png`](http://commons.wikimedia.org/wiki/File:Yes_check.svg) + +Adrien Facélina: (LGPL v2.1+) + + * [`inventory_plus_worldedit_gui.png`](http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg) + +Other files from Wikimedia Commons: + + * [`ui_gohome_icon.png` / `ui_home_icon.png` / `ui_sethome_icon.png`](http://commons.wikimedia.org/wiki/File:Home_256x256.png) (GPL v2+) + +RealBadAngel: (CC-BY-4.0) + + * Everything else. \ No newline at end of file diff --git a/mods/unified_inventory/api.lua b/mods/unified_inventory/api.lua new file mode 100644 index 00000000..071900da --- /dev/null +++ b/mods/unified_inventory/api.lua @@ -0,0 +1,307 @@ +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +-- Create detached creative inventory after loading all mods +minetest.after(0.01, function() + local rev_aliases = {} + for source, target in pairs(minetest.registered_aliases) do + if not rev_aliases[target] then rev_aliases[target] = {} end + table.insert(rev_aliases[target], source) + end + unified_inventory.items_list = {} + for name, def in pairs(minetest.registered_items) do + if (not def.groups.not_in_creative_inventory or + def.groups.not_in_creative_inventory == 0) and + def.description and def.description ~= "" then + table.insert(unified_inventory.items_list, name) + local all_names = rev_aliases[name] or {} + table.insert(all_names, name) + for _, name in ipairs(all_names) do + local recipes = minetest.get_all_craft_recipes(name) + if recipes then + for _, recipe in ipairs(recipes) do + + local unknowns + + for _,chk in pairs(recipe.items) do + local groupchk = string.find(chk, "group:") + if (not groupchk and not minetest.registered_items[chk]) + or (groupchk and not unified_inventory.get_group_item(string.gsub(chk, "group:", "")).item) + or minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then + unknowns = true + end + end + + if not unknowns then + unified_inventory.register_craft(recipe) + end + end + end + end + end + end + table.sort(unified_inventory.items_list) + unified_inventory.items_list_size = #unified_inventory.items_list + print("Unified Inventory. inventory size: "..unified_inventory.items_list_size) + for _, name in ipairs(unified_inventory.items_list) do + local def = minetest.registered_items[name] + -- Simple drops + if type(def.drop) == "string" then + local dstack = ItemStack(def.drop) + if not dstack:is_empty() and dstack:get_name() ~= name then + unified_inventory.register_craft({ + type = "digging", + items = {name}, + output = def.drop, + width = 0, + }) + + end + -- Complex drops. Yes, it's really complex! + elseif type(def.drop) == "table" then + --[[ Extract single items from the table and save them into dedicated tables + to register them later, in order to avoid duplicates. These tables counts + the total number of guaranteed drops and drops by chance (“maybes”) for each item. + For “maybes”, the final count is the theoretical maximum number of items, not + neccessarily the actual drop count. ]] + local drop_guaranteed = {} + local drop_maybe = {} + -- This is for catching an obscure corner case: If the top items table has + -- only items with rarity = 1, but max_items is set, then only the first + -- max_items will be part of the drop, any later entries are logically + -- impossible, so this variable is for keeping track of this + local max_items_left = def.drop.max_items + -- For checking whether we still encountered only guaranteed only so far; + -- for the first “maybe” item it will become false which will cause ALL + -- later items to be considered “maybes”. + -- A common idiom is: + -- { max_items 1, { items = { + -- { items={"example:1"}, rarity = 5 }, + -- { items={"example:2"}, rarity = 1 }, }}} + -- example:2 must be considered a “maybe” because max_items is set and it + -- appears after a “maybe” + local max_start = true + -- Let's iterate through the items madness! + -- Handle invalid drop entries gracefully. + local drop_items = def.drop.items or { } + for i=1,#drop_items do + if max_items_left ~= nil and max_items_left <= 0 then break end + local itit = drop_items[i] + for j=1,#itit.items do + local dstack = ItemStack(itit.items[j]) + if not dstack:is_empty() and dstack:get_name() ~= name then + local dname = dstack:get_name() + local dcount = dstack:get_count() + -- Guaranteed drops AND we are not yet in “maybe mode” + if #itit.items == 1 and itit.rarity == 1 and max_start then + if drop_guaranteed[dname] == nil then + drop_guaranteed[dname] = 0 + end + drop_guaranteed[dname] = drop_guaranteed[dname] + dcount + + if max_items_left ~= nil then + max_items_left = max_items_left - 1 + if max_items_left <= 0 then break end + end + -- Drop was a “maybe” + else + if max_items_left ~= nil then max_start = false end + if drop_maybe[dname] == nil then + drop_maybe[dname] = 0 + end + drop_maybe[dname] = drop_maybe[dname] + dcount + end + end + end + end + for itemstring, count in pairs(drop_guaranteed) do + unified_inventory.register_craft({ + type = "digging", + items = {name}, + output = itemstring .. " " .. count, + width = 0, + }) + end + for itemstring, count in pairs(drop_maybe) do + unified_inventory.register_craft({ + type = "digging_chance", + items = {name}, + output = itemstring .. " " .. count, + width = 0, + }) + end + end + end + for _, recipes in pairs(unified_inventory.crafts_for.recipe) do + for _, recipe in ipairs(recipes) do + local ingredient_items = {} + for _, spec in pairs(recipe.items) do + local matches_spec = unified_inventory.canonical_item_spec_matcher(spec) + for _, name in ipairs(unified_inventory.items_list) do + if matches_spec(name) then + ingredient_items[name] = true + end + end + end + for name, _ in pairs(ingredient_items) do + if unified_inventory.crafts_for.usage[name] == nil then + unified_inventory.crafts_for.usage[name] = {} + end + table.insert(unified_inventory.crafts_for.usage[name], recipe) + end + end + end +end) + + +-- load_home +local function load_home() + local input = io.open(unified_inventory.home_filename, "r") + if not input then + unified_inventory.home_pos = {} + return + end + while true do + local x = input:read("*n") + if not x then break end + local y = input:read("*n") + local z = input:read("*n") + local name = input:read("*l") + unified_inventory.home_pos[name:sub(2)] = {x = x, y = y, z = z} + end + io.close(input) +end +load_home() + +function unified_inventory.set_home(player, pos) + local player_name = player:get_player_name() + unified_inventory.home_pos[player_name] = vector.round(pos) + -- save the home data from the table to the file + local output = io.open(unified_inventory.home_filename, "w") + for k, v in pairs(unified_inventory.home_pos) do + output:write(v.x.." "..v.y.." "..v.z.." "..k.."\n") + end + io.close(output) +end + +function unified_inventory.go_home(player) + local pos = unified_inventory.home_pos[player:get_player_name()] + if pos then + player:set_pos(pos) + end +end + +-- register_craft +function unified_inventory.register_craft(options) + if not options.output then + return + end + local itemstack = ItemStack(options.output) + if itemstack:is_empty() then + return + end + if options.type == "normal" and options.width == 0 then + options = { type = "shapeless", items = options.items, output = options.output, width = 0 } + end + if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then + unified_inventory.crafts_for.recipe[itemstack:get_name()] = {} + end + table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options) +end + + +local craft_type_defaults = { + width = 3, + height = 3, + uses_crafting_grid = false, +} + + +function unified_inventory.craft_type_defaults(name, options) + if not options.description then + options.description = name + end + setmetatable(options, {__index = craft_type_defaults}) + return options +end + + +function unified_inventory.register_craft_type(name, options) + unified_inventory.registered_craft_types[name] = + unified_inventory.craft_type_defaults(name, options) +end + + +unified_inventory.register_craft_type("normal", { + description = F(S("Crafting")), + icon = "ui_craftgrid_icon.png", + width = 3, + height = 3, + get_shaped_craft_width = function (craft) return craft.width end, + dynamic_display_size = function (craft) + local w = craft.width + local h = math.ceil(table.maxn(craft.items) / craft.width) + local g = w < h and h or w + return { width = g, height = g } + end, + uses_crafting_grid = true, +}) + + +unified_inventory.register_craft_type("shapeless", { + description = F(S("Mixing")), + icon = "ui_craftgrid_icon.png", + width = 3, + height = 3, + dynamic_display_size = function (craft) + local maxn = table.maxn(craft.items) + local g = 1 + while g*g < maxn do g = g + 1 end + return { width = g, height = g } + end, + uses_crafting_grid = true, +}) + + +unified_inventory.register_craft_type("cooking", { + description = F(S("Cooking")), + icon = "default_furnace_front.png", + width = 1, + height = 1, +}) + + +unified_inventory.register_craft_type("digging", { + description = F(S("Digging")), + icon = "default_tool_steelpick.png", + width = 1, + height = 1, +}) + +unified_inventory.register_craft_type("digging_chance", { + description = "Digging (by chance)", + icon = "default_tool_steelpick.png^[transformFY.png", + width = 1, + height = 1, +}) + +function unified_inventory.register_page(name, def) + unified_inventory.pages[name] = def +end + + +function unified_inventory.register_button(name, def) + if not def.action then + def.action = function(player) + unified_inventory.set_inventory_formspec(player, name) + end + end + def.name = name + table.insert(unified_inventory.buttons, def) +end + + +function unified_inventory.is_creative(playername) + return minetest.check_player_privs(playername, {creative=true}) + or minetest.settings:get_bool("creative_mode") +end diff --git a/mods/unified_inventory/bags.lua b/mods/unified_inventory/bags.lua new file mode 100644 index 00000000..1ebbdd3f --- /dev/null +++ b/mods/unified_inventory/bags.lua @@ -0,0 +1,276 @@ +--[[ +Bags for Minetest + +Copyright (c) 2012 cornernote, Brett O'Donnell +License: GPLv3 +--]] + +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +unified_inventory.register_page("bags", { + get_formspec = function(player) + local player_name = player:get_player_name() + return { formspec = table.concat({ + "background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]", + "label[0,0;" .. F(S("Bags")) .. "]", + "button[0,2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]", + "button[2,2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]", + "button[4,2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]", + "button[6,2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]", + "listcolors[#00000000;#00000000]", + "list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1;1,1;]", + "list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1;1,1;]" + }) } + end, +}) + +unified_inventory.register_button("bags", { + type = "image", + image = "ui_bags_icon.png", + tooltip = S("Bags"), + hide_lite=true +}) + +local function get_player_bag_stack(player, i) + return minetest.get_inventory({ + type = "detached", + name = player:get_player_name() .. "_bags" + }):get_stack("bag" .. i, 1) +end + +for bag_i = 1, 4 do + unified_inventory.register_page("bag" .. bag_i, { + get_formspec = function(player) + local stack = get_player_bag_stack(player, bag_i) + local image = stack:get_definition().inventory_image + local fs = { + "image[7,0;1,1;" .. image .. "]", + "label[0,0;" .. F(S("Bag @1", bag_i)) .. "]", + "listcolors[#00000000;#00000000]", + "list[current_player;bag" .. bag_i .. "contents;0,1;8,3;]", + "listring[current_name;bag" .. bag_i .. "contents]", + "listring[current_player;main]" + } + local slots = stack:get_definition().groups.bagslots + if slots == 8 then + fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]" + elseif slots == 16 then + fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]" + elseif slots == 24 then + fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]" + end + local player_name = player:get_player_name() -- For if statement. + if unified_inventory.trash_enabled + or unified_inventory.is_creative(player_name) + or minetest.get_player_privs(player_name).give then + fs[#fs + 1] = "background[6.06,0;0.92,0.92;ui_bags_trash.png]" + .. "list[detached:trash;main;6,0.1;1,1;]" + end + local inv = player:get_inventory() + for i = 1, 4 do + local def = get_player_bag_stack(player, i):get_definition() + if def.groups.bagslots then + local list_name = "bag" .. i .. "contents" + local size = inv:get_size(list_name) + local used = 0 + for si = 1, size do + local stk = inv:get_stack(list_name, si) + if not stk:is_empty() then + used = used + 1 + end + end + local img = def.inventory_image + local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size + fs[#fs + 1] = string.format("image_button[%i,0;1,1;%s;bag%i;%s]", + i + 1, img, i, label) + end + end + return { formspec = table.concat(fs) } + end, + }) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then + return + end + for i = 1, 4 do + if fields["bag" .. i] then + local stack = get_player_bag_stack(player, i) + if not stack:get_definition().groups.bagslots then + return + end + unified_inventory.set_inventory_formspec(player, "bag" .. i) + return + end + end +end) + +local function save_bags_metadata(player, bags_inv) + local is_empty = true + local bags = {} + for i = 1, 4 do + local bag = "bag" .. i + if not bags_inv:is_empty(bag) then + -- Stack limit is 1, otherwise use stack:to_string() + bags[i] = bags_inv:get_stack(bag, 1):get_name() + is_empty = false + end + end + local meta = player:get_meta() + if is_empty then + meta:set_string("unified_inventory:bags", nil) + else + meta:set_string("unified_inventory:bags", + minetest.serialize(bags)) + end +end + +local function load_bags_metadata(player, bags_inv) + local player_inv = player:get_inventory() + local meta = player:get_meta() + local bags_meta = meta:get_string("unified_inventory:bags") + local bags = bags_meta and minetest.deserialize(bags_meta) or {} + local dirty_meta = false + if not bags_meta then + -- Backwards compatiblity + for i = 1, 4 do + local bag = "bag" .. i + if not player_inv:is_empty(bag) then + -- Stack limit is 1, otherwise use stack:to_string() + bags[i] = player_inv:get_stack(bag, 1):get_name() + dirty_meta = true + end + end + end + -- Fill detached slots + for i = 1, 4 do + local bag = "bag" .. i + bags_inv:set_size(bag, 1) + bags_inv:set_stack(bag, 1, bags[i] or "") + end + + if dirty_meta then + -- Requires detached inventory to be set up + save_bags_metadata(player, bags_inv) + end + + -- Clean up deprecated garbage after saving + for i = 1, 4 do + local bag = "bag" .. i + player_inv:set_size(bag, 0) + end +end + +minetest.register_on_joinplayer(function(player) + local player_inv = player:get_inventory() + local player_name = player:get_player_name() + local bags_inv = minetest.create_detached_inventory(player_name .. "_bags",{ + on_put = function(inv, listname, index, stack, player) + player:get_inventory():set_size(listname .. "contents", + stack:get_definition().groups.bagslots) + save_bags_metadata(player, inv) + end, + allow_put = function(inv, listname, index, stack, player) + local new_slots = stack:get_definition().groups.bagslots + if not new_slots then + return 0 + end + local player_inv = player:get_inventory() + local old_slots = player_inv:get_size(listname .. "contents") + + if new_slots >= old_slots then + return 1 + end + + -- using a smaller bag, make sure it fits + local old_list = player_inv:get_list(listname .. "contents") + local new_list = {} + local slots_used = 0 + local use_new_list = false + + for i, v in ipairs(old_list) do + if v and not v:is_empty() then + slots_used = slots_used + 1 + use_new_list = i > new_slots + new_list[slots_used] = v + end + end + if new_slots >= slots_used then + if use_new_list then + player_inv:set_list(listname .. "contents", new_list) + end + return 1 + end + -- New bag is smaller: Disallow inserting + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + if player:get_inventory():is_empty(listname .. "contents") then + return stack:get_count() + end + return 0 + end, + on_take = function(inv, listname, index, stack, player) + player:get_inventory():set_size(listname .. "contents", 0) + save_bags_metadata(player, inv) + end, + allow_move = function() + return 0 + end, + }, player_name) + + load_bags_metadata(player, bags_inv) +end) + +-- register bag tools +minetest.register_tool("unified_inventory:bag_small", { + description = S("Small Bag"), + inventory_image = "bags_small.png", + groups = {bagslots=8}, +}) + +minetest.register_tool("unified_inventory:bag_medium", { + description = S("Medium Bag"), + inventory_image = "bags_medium.png", + groups = {bagslots=16}, +}) + +minetest.register_tool("unified_inventory:bag_large", { + description = S("Large Bag"), + inventory_image = "bags_large.png", + groups = {bagslots=24}, +}) + +-- register bag crafts +if minetest.get_modpath("farming") ~= nil then + minetest.register_craft({ + output = "unified_inventory:bag_small", + recipe = { + {"", "farming:cotton", ""}, + {"group:wool", "group:wool", "group:wool"}, + {"group:wool", "group:wool", "group:wool"}, + }, + }) + + minetest.register_craft({ + output = "unified_inventory:bag_medium", + recipe = { + {"", "", ""}, + {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, + {"farming:cotton", "unified_inventory:bag_small", "farming:cotton"}, + }, + }) + + minetest.register_craft({ + output = "unified_inventory:bag_large", + recipe = { + {"", "", ""}, + {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, + {"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"}, + }, + }) +end diff --git a/mods/unified_inventory/callbacks.lua b/mods/unified_inventory/callbacks.lua new file mode 100644 index 00000000..8bfe6b60 --- /dev/null +++ b/mods/unified_inventory/callbacks.lua @@ -0,0 +1,216 @@ +local function default_refill(stack) + stack:set_count(stack:get_stack_max()) + local itemdef = minetest.registered_items[stack:get_name()] + if itemdef + and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" + and stack:get_wear() ~= 0 then + stack:set_wear(0) + end + return stack +end + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + unified_inventory.players[player_name] = {} + unified_inventory.current_index[player_name] = 1 + unified_inventory.filtered_items_list[player_name] = + unified_inventory.items_list + unified_inventory.activefilter[player_name] = "" + unified_inventory.active_search_direction[player_name] = "nochange" + unified_inventory.apply_filter(player, "", "nochange") + unified_inventory.current_searchbox[player_name] = "" + unified_inventory.alternate[player_name] = 1 + unified_inventory.current_item[player_name] = nil + unified_inventory.current_craft_direction[player_name] = "recipe" + unified_inventory.set_inventory_formspec(player, + unified_inventory.default) + + -- Refill slot + local refill = minetest.create_detached_inventory(player_name.."refill", { + allow_put = function(inv, listname, index, stack, player) + local player_name = player:get_player_name() + if unified_inventory.is_creative(player_name) then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + local player_name = player:get_player_name() + local handle_refill = (minetest.registered_items[stack:get_name()] or {}).on_refill or default_refill + stack = handle_refill(stack) + inv:set_stack(listname, index, stack) + minetest.sound_play("electricity", + {to_player=player_name, gain = 1.0}) + end, + }, player_name) + refill:set_size("main", 1) +end) + +local function apply_new_filter(player, search_text, new_dir) + local player_name = player:get_player_name() + minetest.sound_play("click", {to_player=player_name, gain = 0.1}) + unified_inventory.apply_filter(player, search_text, new_dir) + unified_inventory.current_searchbox[player_name] = search_text + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local player_name = player:get_player_name() + + local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + + if formname ~= "" then + return + end + + -- always take new search text, even if not searching on it yet + if fields.searchbox + and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then + unified_inventory.current_searchbox[player_name] = fields.searchbox + end + + for i, def in pairs(unified_inventory.buttons) do + if fields[def.name] then + def.action(player) + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + return + end + end + + -- Inventory page controls + local start = math.floor( + unified_inventory.current_index[player_name] / ui_peruser.items_per_page + 1) + local start_i = start + local pagemax = math.floor( + (#unified_inventory.filtered_items_list[player_name] - 1) + / (ui_peruser.items_per_page) + 1) + + if fields.start_list then + start_i = 1 + end + if fields.rewind1 then + start_i = start_i - 1 + end + if fields.forward1 then + start_i = start_i + 1 + end + if fields.rewind3 then + start_i = start_i - 3 + end + if fields.forward3 then + start_i = start_i + 3 + end + if fields.end_list then + start_i = pagemax + end + if start_i < 1 then + start_i = 1 + end + if start_i > pagemax then + start_i = pagemax + end + if start_i ~= start then + minetest.sound_play("paperflip1", + {to_player=player_name, gain = 1.0}) + unified_inventory.current_index[player_name] = (start_i - 1) * ui_peruser.items_per_page + 1 + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + end + + -- Check clicked item image button + local clicked_item + for name, value in pairs(fields) do + local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$") + if new_dir and mangled_item then + clicked_item = unified_inventory.demangle_for_formspec(mangled_item) + if string.sub(clicked_item, 1, 6) == "group:" then + -- Change search filter to this group + apply_new_filter(player, clicked_item, new_dir) + return + end + if new_dir == "recipe" or new_dir == "usage" then + unified_inventory.current_craft_direction[player_name] = new_dir + end + break + end + end + if clicked_item then + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local page = unified_inventory.current_page[player_name] + local player_creative = unified_inventory.is_creative(player_name) + if not player_creative then + page = "craftguide" + end + if page == "craftguide" then + unified_inventory.current_item[player_name] = clicked_item + unified_inventory.alternate[player_name] = 1 + unified_inventory.set_inventory_formspec(player, "craftguide") + elseif player_creative then + -- Creative page: Add entire stack to inventory + local inv = player:get_inventory() + local stack = ItemStack(clicked_item) + stack:set_count(stack:get_stack_max()) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + end + end + end + + if fields.searchbutton + or fields.key_enter_field == "searchbox" then + unified_inventory.apply_filter(player, unified_inventory.current_searchbox[player_name], "nochange") + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) + minetest.sound_play("paperflip2", + {to_player=player_name, gain = 1.0}) + elseif fields.searchresetbutton then + apply_new_filter(player, "", "nochange") + end + + -- alternate buttons + if not (fields.alternate or fields.alternate_prev) then + return + end + minetest.sound_play("click", + {to_player=player_name, gain = 0.1}) + local item_name = unified_inventory.current_item[player_name] + if not item_name then + return + end + local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name] + if not crafts then + return + end + local alternates = #crafts + if alternates <= 1 then + return + end + local alternate + if fields.alternate then + alternate = unified_inventory.alternate[player_name] + 1 + if alternate > alternates then + alternate = 1 + end + elseif fields.alternate_prev then + alternate = unified_inventory.alternate[player_name] - 1 + if alternate < 1 then + alternate = alternates + end + end + unified_inventory.alternate[player_name] = alternate + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end) + +if minetest.delete_detached_inventory then + minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + minetest.delete_detached_inventory(player_name.."_bags") + minetest.delete_detached_inventory(player_name.."craftrecipe") + minetest.delete_detached_inventory(player_name.."refill") + end) +end diff --git a/mods/unified_inventory/depends.txt b/mods/unified_inventory/depends.txt new file mode 100644 index 00000000..cb3d2b4f --- /dev/null +++ b/mods/unified_inventory/depends.txt @@ -0,0 +1,5 @@ +default +creative? +sfinv? +datastorage? +farming? diff --git a/mods/unified_inventory/description.txt b/mods/unified_inventory/description.txt new file mode 100644 index 00000000..b541fdf2 --- /dev/null +++ b/mods/unified_inventory/description.txt @@ -0,0 +1 @@ +Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. diff --git a/mods/unified_inventory/group.lua b/mods/unified_inventory/group.lua new file mode 100644 index 00000000..3864267a --- /dev/null +++ b/mods/unified_inventory/group.lua @@ -0,0 +1,127 @@ +local S = minetest.get_translator("unified_inventory") + +function unified_inventory.canonical_item_spec_matcher(spec) + local specname = ItemStack(spec):get_name() + if specname:sub(1, 6) ~= "group:" then + return function (itemname) + return itemname == specname + end + end + + local group_names = specname:sub(7):split(",") + return function (itemname) + local itemdef = minetest.registered_items[itemname] + for _, group_name in ipairs(group_names) do + if (itemdef.groups[group_name] or 0) == 0 then + return false + end + end + return true + end +end + +function unified_inventory.item_matches_spec(item, spec) + local itemname = ItemStack(item):get_name() + return unified_inventory.canonical_item_spec_matcher(spec)(itemname) +end + +function unified_inventory.extract_groupnames(groupname) + local specname = ItemStack(groupname):get_name() + if specname:sub(1, 6) ~= "group:" then + return nil, 0 + end + local group_names = specname:sub(7):split(",") + return table.concat(group_names, S(" and ")), #group_names +end + +unified_inventory.registered_group_items = { + mesecon_conductor_craftable = "mesecons:wire_00000000_off", + stone = "default:cobble", + wood = "default:wood", + book = "default:book", + sand = "default:sand", + leaves = "default:leaves", + tree = "default:tree", + vessel = "vessels:glass_bottle", + wool = "wool:white", +} + +function unified_inventory.register_group_item(groupname, itemname) + unified_inventory.registered_group_items[groupname] = itemname +end + + +-- This is used when displaying craft recipes, where an ingredient is +-- specified by group rather than as a specific item. A single-item group +-- is represented by that item, with the single-item status signalled +-- in the "sole" field. If the group contains no items at all, the item +-- field will be nil. +-- +-- Within a multiple-item group, we prefer to use an item that has the +-- same specific name as the group, and if there are more than one of +-- those items we prefer the one registered for the group by a mod. +-- Among equally-preferred items, we just pick the one with the +-- lexicographically earliest name. +-- +-- The parameter to this function isn't just a single group name. +-- It may be a comma-separated list of group names. This is really a +-- "group:..." ingredient specification, minus the "group:" prefix. + +local function compute_group_item(group_name_list) + local group_names = group_name_list:split(",") + local candidate_items = {} + for itemname, itemdef in pairs(minetest.registered_items) do + if (itemdef.groups.not_in_creative_inventory or 0) == 0 then + local all = true + for _, group_name in ipairs(group_names) do + if (itemdef.groups[group_name] or 0) == 0 then + all = false + end + end + if all then table.insert(candidate_items, itemname) end + end + end + local num_candidates = #candidate_items + if num_candidates == 0 then + return {sole = true} + elseif num_candidates == 1 then + return {item = candidate_items[1], sole = true} + end + local is_group = {} + local registered_rep = {} + for _, group_name in ipairs(group_names) do + is_group[group_name] = true + local rep = unified_inventory.registered_group_items[group_name] + if rep then registered_rep[rep] = true end + end + local bestitem = "" + local bestpref = 0 + for _, item in ipairs(candidate_items) do + local pref + if registered_rep[item] then + pref = 4 + elseif string.sub(item, 1, 8) == "default:" and is_group[string.sub(item, 9)] then + pref = 3 + elseif is_group[item:gsub("^[^:]*:", "")] then + pref = 2 + else + pref = 1 + end + if pref > bestpref or (pref == bestpref and item < bestitem) then + bestitem = item + bestpref = pref + end + end + return {item = bestitem, sole = false} +end + + +local group_item_cache = {} + +function unified_inventory.get_group_item(group_name) + if not group_item_cache[group_name] then + group_item_cache[group_name] = compute_group_item(group_name) + end + return group_item_cache[group_name] +end + diff --git a/mods/unified_inventory/image_credits.txt b/mods/unified_inventory/image_credits.txt new file mode 100644 index 00000000..12fbc650 --- /dev/null +++ b/mods/unified_inventory/image_credits.txt @@ -0,0 +1,69 @@ +bags_small.png: + http://www.clker.com/clipart-moneybag-empty.html + +bags_medium.png: + http://www.clker.com/clipart-backpack-1.html + +bags_large.png / ui_bags_icon.png: + http://www.clker.com/clipart-backpack-green-brown.html + +ui_craftguide_icon.png / ui_craft_icon.png + http://commons.wikimedia.org/wiki/File:Advancedsettings.png + +ui_doubleleft_icon.png + http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg + +ui_doubleright_icon.png + http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg + +ui_left_icon.png / ui_right_icon.png + http://commons.wikimedia.org/wiki/File:Media-playback-start.svg + +ui_skip_backward_icon.png + http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg + +ui_skip_forward_icon.png + http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg + +ui_reset_icon.png + https://commons.wikimedia.org/wiki/File:Edit-clear.svg + +ui_gohome_icon.png / ui_home_icon.png / ui_sethome_icon.png + http://commons.wikimedia.org/wiki/File:Home_256x256.png + +ui_moon_icon.png + http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg + +ui_sun_icon.png + http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg + +ui_trash_icon.png + http://www.clker.com/clipart-29090.html + http://www.clker.com/clipart-trash.html + +ui_search_icon.png + http://www.clker.com/clipart-24887.html + +ui_off_icon.png / ui_on_icon.png + http://www.clker.com/clipart-on-off-switches.html + +ui_waypoints_icon.png + http://www.clker.com/clipart-map-pin-red.html + +ui_circular_arrows_icon.png + http://www.clker.com/clipart-circular-arrow-pattern.html + +ui_pencil_icon.pnc + http://www.clker.com/clipart-2256.html + +ui_waypoint_set_icon.png + http://www.clker.com/clipart-larger-flag.html + +ui_xyz_off_icon.png + http://commons.wikimedia.org/wiki/File:No_sign.svg + +ui_ok_icon.png + http://commons.wikimedia.org/wiki/File:Yes_check.svg + +inventory_plus_worldedit_gui.png + http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg diff --git a/mods/unified_inventory/init.lua b/mods/unified_inventory/init.lua new file mode 100644 index 00000000..1a80abbb --- /dev/null +++ b/mods/unified_inventory/init.lua @@ -0,0 +1,79 @@ +-- Unified Inventory for Minetest >= 0.4.16 + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +local worldpath = minetest.get_worldpath() + +-- Data tables definitions +unified_inventory = { + activefilter = {}, + active_search_direction = {}, + alternate = {}, + current_page = {}, + current_searchbox = {}, + current_index = {}, + current_item = {}, + current_craft_direction = {}, + registered_craft_types = {}, + crafts_for = {usage = {}, recipe = {} }, + players = {}, + items_list_size = 0, + items_list = {}, + filtered_items_list_size = {}, + filtered_items_list = {}, + pages = {}, + buttons = {}, + + -- Homepos stuff + home_pos = {}, + home_filename = worldpath.."/unified_inventory_home.home", + + -- Default inventory page + default = "craft", + + -- "Lite" mode + lite_mode = minetest.settings:get_bool("unified_inventory_lite"), + + -- Trash enabled + trash_enabled = (minetest.settings:get_bool("unified_inventory_trash") ~= false), + + pagecols = 8, + pagerows = 10, + page_y = 0, + formspec_y = 1, + main_button_x = 0, + main_button_y = 9, + craft_result_x = 0.3, + craft_result_y = 0.5, + form_header_y = 0 +} + +-- Disable default creative inventory +local creative = rawget(_G, "creative") or rawget(_G, "creative_inventory") +if creative then + function creative.set_creative_formspec(player, start_i, pagenum) + return + end +end + +-- Disable sfinv inventory +local sfinv = rawget(_G, "sfinv") +if sfinv then + sfinv.enabled = false +end + +dofile(modpath.."/group.lua") +dofile(modpath.."/api.lua") +dofile(modpath.."/internal.lua") +dofile(modpath.."/callbacks.lua") +dofile(modpath.."/match_craft.lua") +dofile(modpath.."/register.lua") + +if minetest.settings:get_bool("unified_inventory_bags") ~= false then + dofile(modpath.."/bags.lua") +end + +dofile(modpath.."/item_names.lua") + +if minetest.get_modpath("datastorage") then + dofile(modpath.."/waypoints.lua") +end diff --git a/mods/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua new file mode 100644 index 00000000..05dc5f59 --- /dev/null +++ b/mods/unified_inventory/internal.lua @@ -0,0 +1,374 @@ +local S = minetest.get_translator("unified_inventory") +local F = minetest.formspec_escape + +-- This pair of encoding functions is used where variable text must go in +-- button names, where the text might contain formspec metacharacters. +-- We can escape button names for the formspec, to avoid screwing up +-- form structure overall, but they then don't get de-escaped, and so +-- the input we get back from the button contains the formspec escaping. +-- This is a game engine bug, and in the anticipation that it might be +-- fixed some day we don't want to rely on it. So for safety we apply +-- an encoding that avoids all formspec metacharacters. +function unified_inventory.mangle_for_formspec(str) + return string.gsub(str, "([^A-Za-z0-9])", function (c) return string.format("_%d_", string.byte(c)) end) +end +function unified_inventory.demangle_for_formspec(str) + return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end) +end + +function unified_inventory.get_per_player_formspec(player_name) + local lite = unified_inventory.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true}) + + local ui = {} + ui.pagecols = unified_inventory.pagecols + ui.pagerows = unified_inventory.pagerows + ui.page_y = unified_inventory.page_y + ui.formspec_y = unified_inventory.formspec_y + ui.main_button_x = unified_inventory.main_button_x + ui.main_button_y = unified_inventory.main_button_y + ui.craft_result_x = unified_inventory.craft_result_x + ui.craft_result_y = unified_inventory.craft_result_y + ui.form_header_y = unified_inventory.form_header_y + + if lite then + ui.pagecols = 4 + ui.pagerows = 6 + ui.page_y = 0.25 + ui.formspec_y = 0.47 + ui.main_button_x = 8.2 + ui.main_button_y = 6.5 + ui.craft_result_x = 2.8 + ui.craft_result_y = 3.4 + ui.form_header_y = -0.1 + end + + ui.items_per_page = ui.pagecols * ui.pagerows + return ui, lite +end + +function unified_inventory.get_formspec(player, page) + + if not player then + return "" + end + + local player_name = player:get_player_name() + local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name) + + unified_inventory.current_page[player_name] = page + local pagedef = unified_inventory.pages[page] + + if not pagedef then + return "" -- Invalid page name + end + + local formspec = { + "size[14,10]", + pagedef.formspec_prepend and "" or "no_prepend[]", + "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background + } + local n = 4 + + if draw_lite_mode then + formspec[1] = "size[11,7.7]" + formspec[3] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]" + end + + if unified_inventory.is_creative(player_name) + and page == "craft" then + formspec[n] = "background[0,"..(ui_peruser.formspec_y + 2)..";1,1;ui_single_slot.png]" + n = n+1 + end + + local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name) + local fsdata = pagedef.get_formspec(player, perplayer_formspec) + + formspec[n] = fsdata.formspec + n = n+1 + + local button_row = 0 + local button_col = 0 + + -- Main buttons + + local filtered_inv_buttons = {} + + for i, def in pairs(unified_inventory.buttons) do + if not (draw_lite_mode and def.hide_lite) then + table.insert(filtered_inv_buttons, def) + end + end + + for i, def in pairs(filtered_inv_buttons) do + + if draw_lite_mode and i > 4 then + button_row = 1 + button_col = 1 + end + + if def.type == "image" then + if (def.condition == nil or def.condition(player) == true) then + formspec[n] = "image_button[" + formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) + formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" + formspec[n+3] = F(def.image)..";" + formspec[n+4] = F(def.name)..";]" + formspec[n+5] = "tooltip["..F(def.name) + formspec[n+6] = ";"..(def.tooltip or "").."]" + n = n+7 + else + formspec[n] = "image[" + formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4) + formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;" + formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]" + n = n+4 + + end + end + end + + if fsdata.draw_inventory ~= false then + -- Player inventory + formspec[n] = "listcolors[#00000000;#00000000]" + formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]" + n = n+2 + end + + if fsdata.draw_item_list == false then + return table.concat(formspec, "") + end + + -- Controls to flip items pages + local start_x = 9.2 + + if not draw_lite_mode then + formspec[n] = + "image_button[" .. (start_x + 0.6 * 0) + .. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]" + .. "tooltip[start_list;" .. F(S("First page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 1) + .. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]" + .. "tooltip[rewind3;" .. F(S("Back three pages")) .. "]" + .. "image_button[" .. (start_x + 0.6 * 2) + .. ",9;.8,.8;ui_left_icon.png;rewind1;]" + .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 3) + .. ",9;.8,.8;ui_right_icon.png;forward1;]" + .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" + .. "image_button[" .. (start_x + 0.6 * 4) + .. ",9;.8,.8;ui_doubleright_icon.png;forward3;]" + .. "tooltip[forward3;" .. F(S("Forward three pages")) .. "]" + + .. "image_button[" .. (start_x + 0.6 * 5) + .. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]" + .. "tooltip[end_list;" .. F(S("Last page")) .. "]" + else + formspec[n] = + "image_button[" .. (8.2 + 0.65 * 0) + .. ",5.8;.8,.8;ui_skip_backward_icon.png;start_list;]" + .. "tooltip[start_list;" .. F(S("First page")) .. "]" + .. "image_button[" .. (8.2 + 0.65 * 1) + .. ",5.8;.8,.8;ui_left_icon.png;rewind1;]" + .. "tooltip[rewind1;" .. F(S("Back one page")) .. "]" + .. "image_button[" .. (8.2 + 0.65 * 2) + .. ",5.8;.8,.8;ui_right_icon.png;forward1;]" + .. "tooltip[forward1;" .. F(S("Forward one page")) .. "]" + .. "image_button[" .. (8.2 + 0.65 * 3) + .. ",5.8;.8,.8;ui_skip_forward_icon.png;end_list;]" + .. "tooltip[end_list;" .. F(S("Last page")) .. "]" + end + n = n+1 + + -- Search box + formspec[n] = "field_close_on_enter[searchbox;false]" + n = n+1 + + if not draw_lite_mode then + formspec[n] = "field[9.5,8.325;3,1;searchbox;;" + .. F(unified_inventory.current_searchbox[player_name]) .. "]" + formspec[n+1] = "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + formspec[n+2] = "image_button[12.9,8.1;.8,.8;ui_reset_icon.png;searchresetbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" + else + formspec[n] = "field[8.5,5.225;2.2,1;searchbox;;" + .. F(unified_inventory.current_searchbox[player_name]) .. "]" + formspec[n+1] = "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + formspec[n+2] = "image_button[11,5;.8,.8;ui_reset_icon.png;searchresetbutton;]" + .. "tooltip[searchbutton;" ..F(S("Search")) .. "]" + .. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]" + end + n = n+3 + + local no_matches = S("No matching items") + if draw_lite_mode then + no_matches = S("No matches.") + end + + -- Items list + if #unified_inventory.filtered_items_list[player_name] == 0 then + formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. F(no_matches) .. "]" + else + local dir = unified_inventory.active_search_direction[player_name] + local list_index = unified_inventory.current_index[player_name] + local page = math.floor(list_index / (ui_peruser.items_per_page) + 1) + local pagemax = math.floor( + (#unified_inventory.filtered_items_list[player_name] - 1) + / (ui_peruser.items_per_page) + 1) + local item = {} + for y = 0, ui_peruser.pagerows - 1 do + for x = 0, ui_peruser.pagecols - 1 do + local name = unified_inventory.filtered_items_list[player_name][list_index] + local item = minetest.registered_items[name] + if item then + -- Clicked on current item: Flip crafting direction + if name == unified_inventory.current_item[player_name] then + local cdir = unified_inventory.current_craft_direction[player_name] + if cdir == "recipe" then + dir = "usage" + elseif cdir == "usage" then + dir = "recipe" + end + else + -- Default: use active search direction by default + dir = unified_inventory.active_search_direction[player_name] + end + + local button_name = "item_button_" .. dir .. "_" + .. unified_inventory.mangle_for_formspec(name) + formspec[n] = ("item_image_button[%f,%f;.81,.81;%s;%s;]"):format( + 8.2 + x * 0.7, ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7, + name, button_name + ) + formspec[n + 1] = ("tooltip[%s;%s \\[%s\\]]"):format( + button_name, minetest.formspec_escape(item.description), + item.mod_origin or "??" + ) + n = n + 2 + list_index = list_index + 1 + end + end + end + formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..F(S("Page")) .. ": " + .. S("@1 of @2",page,pagemax).."]" + end + n= n+1 + + if unified_inventory.activefilter[player_name] ~= "" then + formspec[n] = "label[8.2,"..(ui_peruser.form_header_y + 0.4)..";" .. F(S("Filter")) .. ":]" + formspec[n+1] = "label[9.1,"..(ui_peruser.form_header_y + 0.4)..";"..F(unified_inventory.activefilter[player_name]).."]" + end + return table.concat(formspec, "") +end + +function unified_inventory.set_inventory_formspec(player, page) + if player then + player:set_inventory_formspec(unified_inventory.get_formspec(player, page)) + end +end + +--apply filter to the inventory list (create filtered copy of full one) +function unified_inventory.apply_filter(player, filter, search_dir) + if not player then + return false + end + local player_name = player:get_player_name() + local lfilter = string.lower(filter) + local ffilter + if lfilter:sub(1, 6) == "group:" then + local groups = lfilter:sub(7):split(",") + ffilter = function(name, def) + for _, group in ipairs(groups) do + if not def.groups[group] + or def.groups[group] <= 0 then + return false + end + end + return true + end + else + ffilter = function(name, def) + local lname = string.lower(name) + local ldesc = string.lower(def.description) + return string.find(lname, lfilter, 1, true) or string.find(ldesc, lfilter, 1, true) + end + end + unified_inventory.filtered_items_list[player_name]={} + for name, def in pairs(minetest.registered_items) do + if (not def.groups.not_in_creative_inventory + or def.groups.not_in_creative_inventory == 0) + and def.description + and def.description ~= "" + and ffilter(name, def) then + table.insert(unified_inventory.filtered_items_list[player_name], name) + end + end + table.sort(unified_inventory.filtered_items_list[player_name]) + unified_inventory.filtered_items_list_size[player_name] = #unified_inventory.filtered_items_list[player_name] + unified_inventory.current_index[player_name] = 1 + unified_inventory.activefilter[player_name] = filter + unified_inventory.active_search_direction[player_name] = search_dir + unified_inventory.set_inventory_formspec(player, + unified_inventory.current_page[player_name]) +end + +function unified_inventory.items_in_group(groups) + local items = {} + for name, item in pairs(minetest.registered_items) do + for _, group in pairs(groups:split(',')) do + if item.groups[group] then + table.insert(items, name) + end + end + end + return items +end + +function unified_inventory.sort_inventory(inv) + local inlist = inv:get_list("main") + local typecnt = {} + local typekeys = {} + for _, st in ipairs(inlist) do + if not st:is_empty() then + local n = st:get_name() + local w = st:get_wear() + local m = st:get_metadata() + local k = string.format("%s %05d %s", n, w, m) + if not typecnt[k] then + typecnt[k] = { + name = n, + wear = w, + metadata = m, + stack_max = st:get_stack_max(), + count = 0, + } + table.insert(typekeys, k) + end + typecnt[k].count = typecnt[k].count + st:get_count() + end + end + table.sort(typekeys) + local outlist = {} + for _, k in ipairs(typekeys) do + local tc = typecnt[k] + while tc.count > 0 do + local c = math.min(tc.count, tc.stack_max) + table.insert(outlist, ItemStack({ + name = tc.name, + wear = tc.wear, + metadata = tc.metadata, + count = c, + })) + tc.count = tc.count - c + end + end + if #outlist > #inlist then return end + while #outlist < #inlist do + table.insert(outlist, ItemStack(nil)) + end + inv:set_list("main", outlist) +end diff --git a/mods/unified_inventory/item_names.lua b/mods/unified_inventory/item_names.lua new file mode 100644 index 00000000..d374b140 --- /dev/null +++ b/mods/unified_inventory/item_names.lua @@ -0,0 +1,76 @@ +-- Based on 4itemnames mod by 4aiman + +local item_names = {} -- [player_name] = { hud, dtime, itemname } +local dlimit = 3 -- HUD element will be hidden after this many seconds +local air_hud_mod = minetest.get_modpath("4air") +local hud_mod = minetest.get_modpath("hud") +local hudbars_mod = minetest.get_modpath("hudbars") + +local function set_hud(player) + local player_name = player:get_player_name() + local off = {x=0, y=-70} + if air_hud_mod or hud_mod then + off.y = off.y - 20 + elseif hudbars_mod then + off.y = off.y + 13 + end + item_names[player_name] = { + hud = player:hud_add({ + hud_elem_type = "text", + position = {x=0.5, y=1}, + offset = off, + alignment = {x=0, y=0}, + number = 0xFFFFFF, + text = "", + }), + dtime = dlimit, + index = 1, + itemname = "" + } +end + +minetest.register_on_joinplayer(function(player) + minetest.after(0, set_hud, player) +end) + +minetest.register_on_leaveplayer(function(player) + item_names[player:get_player_name()] = nil +end) + +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local data = item_names[player:get_player_name()] + if not data or not data.hud then + data = {} -- Update on next step + set_hud(player) + end + + local index = player:get_wield_index() + local stack = player:get_wielded_item() + local itemname = stack:get_name() + + if data.hud and data.dtime < dlimit then + data.dtime = data.dtime + dtime + if data.dtime > dlimit then + player:hud_change(data.hud, 'text', "") + end + end + + if data.hud and (itemname ~= data.itemname or index ~= data.index) then + data.itemname = itemname + data.index = index + data.dtime = 0 + + local desc = stack.get_meta + and stack:get_meta():get_string("description") + + if not desc or desc == "" then + -- Try to use default description when none is set in the meta + local def = minetest.registered_items[itemname] + desc = def and def.description or "" + end + player:hud_change(data.hud, 'text', desc) + end + end +end) + diff --git a/mods/unified_inventory/match_craft.lua b/mods/unified_inventory/match_craft.lua new file mode 100644 index 00000000..2dd40b04 --- /dev/null +++ b/mods/unified_inventory/match_craft.lua @@ -0,0 +1,409 @@ +-- match_craft.lua +-- Find and automatically move inventory items to the crafting grid +-- according to the recipe. + +--[[ +Retrieve items from inventory lists and calculate their total count. +Return a table of "item name" - "total count" pairs. + +Arguments: + inv: minetest inventory reference + lists: names of inventory lists to use + +Example usage: + -- Count items in "main" and "craft" lists of player inventory + unified_inventory.count_items(player_inv_ref, {"main", "craft"}) + +Example output: + { + ["default:pine_wood"] = 2, + ["default:acacia_wood"] = 4, + ["default:chest"] = 3, + ["default:axe_diamond"] = 2, -- unstackable item are counted too + ["wool:white"] = 6 + } +]]-- +function unified_inventory.count_items(inv, lists) + local counts = {} + + for i = 1, #lists do + local name = lists[i] + local size = inv:get_size(name) + local list = inv:get_list(name) + + for j = 1, size do + local stack = list[j] + + if not stack:is_empty() then + local item = stack:get_name() + local count = stack:get_count() + + counts[item] = (counts[item] or 0) + count + end + end + end + + return counts +end + +--[[ +Retrieve craft recipe items and their positions in the crafting grid. +Return a table of "craft item name" - "set of positions" pairs. + +Note that if craft width is not 3 then positions are recalculated as +if items were placed on a 3x3 grid. Also note that craft can contain +groups of items with "group:" prefix. + +Arguments: + craft: minetest craft recipe + +Example output: + -- Bed recipe + { + ["wool:white"] = {[1] = true, [2] = true, [3] = true} + ["group:wood"] = {[4] = true, [5] = true, [6] = true} + } +--]] +function unified_inventory.count_craft_positions(craft) + local positions = {} + local craft_items = craft.items + local craft_type = unified_inventory.registered_craft_types[craft.type] + or unified_inventory.craft_type_defaults(craft.type, {}) + local display_width = craft_type.dynamic_display_size + and craft_type.dynamic_display_size(craft).width + or craft_type.width + local craft_width = craft_type.get_shaped_craft_width + and craft_type.get_shaped_craft_width(craft) + or display_width + local i = 0 + + for y = 1, 3 do + for x = 1, craft_width do + i = i + 1 + local item = craft_items[i] + + if item ~= nil then + local pos = 3 * (y - 1) + x + local set = positions[item] + + if set ~= nil then + set[pos] = true + else + positions[item] = {[pos] = true} + end + end + end + end + + return positions +end + +--[[ +For every craft item find all matching inventory items. +- If craft item is a group then find all inventory items that matches + this group. +- If craft item is not a group (regular item) then find only this item. + +If inventory doesn't contain needed item then found set is empty for +this item. + +Return a table of "craft item name" - "set of matching inventory items" +pairs. + +Arguments: + inv_items: table with items names as keys + craft_items: table with items names or groups as keys + +Example output: + { + ["group:wood"] = { + ["default:pine_wood"] = true, + ["default:acacia_wood"] = true + }, + ["wool:white"] = { + ["wool:white"] = true + } + } +--]] +function unified_inventory.find_usable_items(inv_items, craft_items) + local get_group = minetest.get_item_group + local result = {} + + for craft_item in pairs(craft_items) do + local group = craft_item:match("^group:(.+)") + local found = {} + + if group ~= nil then + for inv_item in pairs(inv_items) do + if get_group(inv_item, group) > 0 then + found[inv_item] = true + end + end + else + if inv_items[craft_item] ~= nil then + found[craft_item] = true + end + end + + result[craft_item] = found + end + + return result +end + +--[[ +Match inventory items with craft grid positions. +For every position select the matching inventory item with maximum +(total_count / (times_matched + 1)) value. + +If for some position matching item cannot be found or match count is 0 +then return nil. + +Return a table of "matched item name" - "set of craft positions" pairs +and overall match count. + +Arguments: + inv_counts: table of inventory items counts from "count_items" + craft_positions: table of craft positions from "count_craft_positions" + +Example output: + match_table = { + ["wool:white"] = {[1] = true, [2] = true, [3] = true} + ["default:acacia_wood"] = {[4] = true, [6] = true} + ["default:pine_wood"] = {[5] = true} + } + match_count = 2 +--]] +function unified_inventory.match_items(inv_counts, craft_positions) + local usable = unified_inventory.find_usable_items(inv_counts, craft_positions) + local match_table = {} + local match_count + local matches = {} + + for craft_item, pos_set in pairs(craft_positions) do + local use_set = usable[craft_item] + + for pos in pairs(pos_set) do + local pos_item + local pos_count + + for use_item in pairs(use_set) do + local count = inv_counts[use_item] + local times_matched = matches[use_item] or 0 + local new_pos_count = math.floor(count / (times_matched + 1)) + + if pos_count == nil or pos_count < new_pos_count then + pos_item = use_item + pos_count = new_pos_count + end + end + + if pos_item == nil or pos_count == 0 then + return nil + end + + local set = match_table[pos_item] + + if set ~= nil then + set[pos] = true + else + match_table[pos_item] = {[pos] = true} + end + + matches[pos_item] = (matches[pos_item] or 0) + 1 + end + end + + for match_item, times_matched in pairs(matches) do + local count = inv_counts[match_item] + local item_count = math.floor(count / times_matched) + + if match_count == nil or item_count < match_count then + match_count = item_count + end + end + + return match_table, match_count +end + +--[[ +Remove item from inventory lists. +Return stack of actually removed items. + +This function replicates the inv:remove_item function but can accept +multiple lists. + +Arguments: + inv: minetest inventory reference + lists: names of inventory lists + stack: minetest item stack +--]] +function unified_inventory.remove_item(inv, lists, stack) + local removed = ItemStack(nil) + local leftover = ItemStack(stack) + + for i = 1, #lists do + if leftover:is_empty() then + break + end + + local cur_removed = inv:remove_item(lists[i], leftover) + removed:add_item(cur_removed) + leftover:take_item(cur_removed:get_count()) + end + + return removed +end + +--[[ +Add item to inventory lists. +Return leftover stack. + +This function replicates the inv:add_item function but can accept +multiple lists. + +Arguments: + inv: minetest inventory reference + lists: names of inventory lists + stack: minetest item stack +--]] +function unified_inventory.add_item(inv, lists, stack) + local leftover = ItemStack(stack) + + for i = 1, #lists do + if leftover:is_empty() then + break + end + + leftover = inv:add_item(lists[i], leftover) + end + + return leftover +end + +--[[ +Move items from source list to destination list if possible. +Skip positions specified in exclude set. + +Arguments: + inv: minetest inventory reference + src_list: name of source list + dst_list: name of destination list + exclude: set of positions to skip +--]] +function unified_inventory.swap_items(inv, src_list, dst_list, exclude) + local size = inv:get_size(src_list) + local empty = ItemStack(nil) + + for i = 1, size do + if exclude == nil or exclude[i] == nil then + local stack = inv:get_stack(src_list, i) + + if not stack:is_empty() then + inv:set_stack(src_list, i, empty) + local leftover = inv:add_item(dst_list, stack) + + if not leftover:is_empty() then + inv:set_stack(src_list, i, leftover) + end + end + end + end +end + +--[[ +Move matched items to the destination list. + +If destination list position is already occupied with some other item +then function tries to (in that order): +1. Move it to the source list +2. Move it to some other unused position in destination list itself +3. Drop it to the ground if nothing else is possible. + +Arguments: + player: minetest player object + src_list: name of source list + dst_list: name of destination list + match_table: table of matched items + amount: amount of items per every position +--]] +function unified_inventory.move_match(player, src_list, dst_list, match_table, amount) + local inv = player:get_inventory() + local item_drop = minetest.item_drop + local src_dst_list = {src_list, dst_list} + local dst_src_list = {dst_list, src_list} + + local needed = {} + local moved = {} + + -- Remove stacks needed for craft + for item, pos_set in pairs(match_table) do + local stack = ItemStack(item) + local stack_max = stack:get_stack_max() + local bounded_amount = math.min(stack_max, amount) + stack:set_count(bounded_amount) + + for pos in pairs(pos_set) do + needed[pos] = unified_inventory.remove_item(inv, dst_src_list, stack) + end + end + + -- Add already removed stacks + for pos, stack in pairs(needed) do + local occupied = inv:get_stack(dst_list, pos) + inv:set_stack(dst_list, pos, stack) + + if not occupied:is_empty() then + local leftover = unified_inventory.add_item(inv, src_dst_list, occupied) + + if not leftover:is_empty() then + inv:set_stack(dst_list, pos, leftover) + local oversize = unified_inventory.add_item(inv, src_dst_list, stack) + + if not oversize:is_empty() then + item_drop(oversize, player, player:get_pos()) + end + end + end + + moved[pos] = true + end + + -- Swap items from unused positions to src (moved positions excluded) + unified_inventory.swap_items(inv, dst_list, src_list, moved) +end + +--[[ +Find craft match and move matched items to the destination list. + +If match cannot be found or match count is smaller than the desired +amount then do nothing. + +If amount passed is -1 then amount is defined by match count itself. +This is used to indicate "craft All" case. + +Arguments: + player: minetest player object + src_list: name of source list + dst_list: name of destination list + craft: minetest craft recipe + amount: desired amount of output items +--]] +function unified_inventory.craftguide_match_craft(player, src_list, dst_list, craft, amount) + local inv = player:get_inventory() + local src_dst_list = {src_list, dst_list} + + local counts = unified_inventory.count_items(inv, src_dst_list) + local positions = unified_inventory.count_craft_positions(craft) + local match_table, match_count = unified_inventory.match_items(counts, positions) + + if match_table == nil or match_count < amount then + return + end + + if amount == -1 then + amount = match_count + end + + unified_inventory.move_match(player, src_list, dst_list, match_table, amount) +end diff --git a/mods/unified_inventory/mod.conf b/mods/unified_inventory/mod.conf new file mode 100644 index 00000000..4fe3375f --- /dev/null +++ b/mods/unified_inventory/mod.conf @@ -0,0 +1,4 @@ +name = unified_inventory +depends = default +optional_depends = creative, sfinv, datastorage, farming +description = Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide. diff --git a/mods/unified_inventory/register.lua b/mods/unified_inventory/register.lua new file mode 100644 index 00000000..d89c05e5 --- /dev/null +++ b/mods/unified_inventory/register.lua @@ -0,0 +1,489 @@ +local S = minetest.get_translator("unified_inventory") +local NS = function(s) return s end +local F = minetest.formspec_escape + +minetest.register_privilege("creative", { + description = S("Can use the creative inventory"), + give_to_singleplayer = false, +}) + +minetest.register_privilege("ui_full", { + description = S("Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally"), + give_to_singleplayer = false, +}) + + +local trash = minetest.create_detached_inventory("trash", { + --allow_put = function(inv, listname, index, stack, player) + -- if unified_inventory.is_creative(player:get_player_name()) then + -- return stack:get_count() + -- else + -- return 0 + -- end + --end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, nil) + local player_name = player:get_player_name() + minetest.sound_play("trash", {to_player=player_name, gain = 1.0}) + end, +}) +trash:set_size("main", 1) + +unified_inventory.register_button("craft", { + type = "image", + image = "ui_craft_icon.png", + tooltip = S("Crafting Grid") +}) + +unified_inventory.register_button("craftguide", { + type = "image", + image = "ui_craftguide_icon.png", + tooltip = S("Crafting Guide") +}) + +unified_inventory.register_button("home_gui_set", { + type = "image", + image = "ui_sethome_icon.png", + tooltip = S("Set home position"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {home=true}) then + unified_inventory.set_home(player, player:get_pos()) + local home = unified_inventory.home_pos[player_name] + if home ~= nil then + minetest.sound_play("dingdong", + {to_player=player_name, gain = 1.0}) + minetest.chat_send_player(player_name, + S("Home position set to: @1", minetest.pos_to_string(home))) + end + else + minetest.chat_send_player(player_name, + S("You don't have the \"home\" privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {home=true}) + end, +}) + +unified_inventory.register_button("home_gui_go", { + type = "image", + image = "ui_gohome_icon.png", + tooltip = S("Go home"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {home=true}) then + minetest.sound_play("teleport", + {to_player=player:get_player_name(), gain = 1.0}) + unified_inventory.go_home(player) + else + minetest.chat_send_player(player_name, + S("You don't have the \"home\" privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {home=true}) + end, +}) + +unified_inventory.register_button("misc_set_day", { + type = "image", + image = "ui_sun_icon.png", + tooltip = S("Set time to day"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("birds", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((6000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 6am")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {settime=true}) + end, +}) + +unified_inventory.register_button("misc_set_night", { + type = "image", + image = "ui_moon_icon.png", + tooltip = S("Set time to night"), + hide_lite=true, + action = function(player) + local player_name = player:get_player_name() + if minetest.check_player_privs(player_name, {settime=true}) then + minetest.sound_play("owl", + {to_player=player_name, gain = 1.0}) + minetest.set_timeofday((21000 % 24000) / 24000) + minetest.chat_send_player(player_name, + S("Time of day set to 9pm")) + else + minetest.chat_send_player(player_name, + S("You don't have the settime privilege!")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + end + end, + condition = function(player) + return minetest.check_player_privs(player:get_player_name(), {settime=true}) + end, +}) + +unified_inventory.register_button("clear_inv", { + type = "image", + image = "ui_trash_icon.png", + tooltip = S("Clear inventory"), + action = function(player) + local player_name = player:get_player_name() + if not unified_inventory.is_creative(player_name) then + minetest.chat_send_player(player_name, + S("This button has been disabled outside" + .." of creative mode to prevent" + .." accidental inventory trashing." + .."\nUse the trash slot instead.")) + unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name]) + return + end + player:get_inventory():set_list("main", {}) + minetest.chat_send_player(player_name, S('Inventory cleared!')) + minetest.sound_play("trash_all", + {to_player=player_name, gain = 1.0}) + end, + condition = function(player) + return unified_inventory.is_creative(player:get_player_name()) + end, +}) + +unified_inventory.register_page("craft", { + get_formspec = function(player, perplayer_formspec) + + local formspecy = perplayer_formspec.formspec_y + local formheadery = perplayer_formspec.form_header_y + + local player_name = player:get_player_name() + local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]" + formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]" + formspec = formspec.."label[0,"..formheadery..";" ..F(S("Crafting")).."]" + formspec = formspec.."listcolors[#00000000;#00000000]" + formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]" + formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]" + if unified_inventory.trash_enabled or unified_inventory.is_creative(player_name) or minetest.get_player_privs(player_name).give then + formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. F(S("Trash:")) .. "]" + formspec = formspec.."background[7,"..(formspecy + 2)..";1,1;ui_single_slot.png]" + formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]" + end + formspec = formspec.."listring[current_name;craft]" + formspec = formspec.."listring[current_player;main]" + if unified_inventory.is_creative(player_name) then + formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. F(S("Refill:")) .. "]" + formspec = formspec.."list[detached:"..F(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]" + end + return {formspec=formspec} + end, +}) + +-- stack_image_button(): generate a form button displaying a stack of items +-- +-- The specified item may be a group. In that case, the group will be +-- represented by some item in the group, along with a flag indicating +-- that it's a group. If the group contains only one item, it will be +-- treated as if that item had been specified directly. + +local function stack_image_button(x, y, w, h, buttonname_prefix, item) + local name = item:get_name() + local count = item:get_count() + local show_is_group = false + local displayitem = name.." "..count + local selectitem = name + if name:sub(1, 6) == "group:" then + local group_name = name:sub(7) + local group_item = unified_inventory.get_group_item(group_name) + show_is_group = not group_item.sole + displayitem = group_item.item or "unknown" + selectitem = group_item.sole and displayitem or name + end + local label = show_is_group and "G" or "" + local buttonname = F(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)) + local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]", + x, y, w, h, + F(displayitem), buttonname, label) + if show_is_group then + local groupstring, andcount = unified_inventory.extract_groupnames(name) + local grouptip + if andcount == 1 then + grouptip = S("Any item belonging to the @1 group", groupstring) + elseif andcount > 1 then + grouptip = S("Any item belonging to the groups @1", groupstring) + end + grouptip = F(grouptip) + if andcount >= 1 then + button = button .. string.format("tooltip[%s;%s]", buttonname, grouptip) + end + end + return button +end + +local recipe_text = { + recipe = NS("Recipe @1 of @2"), + usage = NS("Usage @1 of @2"), +} +local no_recipe_text = { + recipe = S("No recipes"), + usage = S("No usages"), +} +local role_text = { + recipe = S("Result"), + usage = S("Ingredient"), +} +local next_alt_text = { + recipe = S("Show next recipe"), + usage = S("Show next usage"), +} +local prev_alt_text = { + recipe = S("Show previous recipe"), + usage = S("Show previous usage"), +} +local other_dir = { + recipe = "usage", + usage = "recipe", +} + +unified_inventory.register_page("craftguide", { + get_formspec = function(player, perplayer_formspec) + + local formspecy = perplayer_formspec.formspec_y + local formheadery = perplayer_formspec.form_header_y + local craftresultx = perplayer_formspec.craft_result_x + local craftresulty = perplayer_formspec.craft_result_y + + local player_name = player:get_player_name() + local player_privs = minetest.get_player_privs(player_name) + local fs = { + "background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]", + "label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]", + "listcolors[#00000000;#00000000]" + } + local item_name = unified_inventory.current_item[player_name] + if not item_name then + return { formspec = table.concat(fs) } + end + + local item_name_shown + if minetest.registered_items[item_name] + and minetest.registered_items[item_name].description then + item_name_shown = S("@1 (@2)", + minetest.registered_items[item_name].description, item_name) + else + item_name_shown = item_name + end + + local dir = unified_inventory.current_craft_direction[player_name] + local rdir = dir == "recipe" and "usage" or "recipe" + + local crafts = unified_inventory.crafts_for[dir][item_name] + local alternate = unified_inventory.alternate[player_name] + local alternates, craft + if crafts and #crafts > 0 then + alternates = #crafts + craft = crafts[alternate] + end + local has_give = player_privs.give or unified_inventory.is_creative(player_name) + + fs[#fs + 1] = "background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]" + fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]", + craftresultx, craftresulty, F(role_text[dir]), item_name_shown) + fs[#fs + 1] = stack_image_button(0, formspecy, 1.1, 1.1, + "item_button_" .. rdir .. "_", ItemStack(item_name)) + + if not craft then + -- No craft recipes available for this item. + fs[#fs + 1] = "label[5.5,"..(formspecy + 2.35)..";" + .. F(no_recipe_text[dir]) .. "]" + local no_pos = dir == "recipe" and 4.5 or 6.5 + local item_pos = dir == "recipe" and 6.5 or 4.5 + fs[#fs + 1] = "image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]" + fs[#fs + 1] = stack_image_button(item_pos, formspecy, 1.1, 1.1, + "item_button_" .. other_dir[dir] .. "_", ItemStack(item_name)) + if has_give then + fs[#fs + 1] = "label[0," .. (formspecy + 2.10) .. ";" .. F(S("Give me:")) .. "]" + .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" + .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" + .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" + end + return { formspec = table.concat(fs) } + end + + local craft_type = unified_inventory.registered_craft_types[craft.type] or + unified_inventory.craft_type_defaults(craft.type, {}) + if craft_type.icon then + fs[#fs + 1] = string.format("image[%f,%f;%f,%f;%s]", + 5.7, (formspecy + 0.05), 0.5, 0.5, craft_type.icon) + end + fs[#fs + 1] = "label[5.5,"..(formspecy + 1)..";" .. F(craft_type.description).."]" + fs[#fs + 1] = stack_image_button(6.5, formspecy, 1.1, 1.1, + "item_button_usage_", ItemStack(craft.output)) + + local display_size = craft_type.dynamic_display_size + and craft_type.dynamic_display_size(craft) + or { width = craft_type.width, height = craft_type.height } + local craft_width = craft_type.get_shaped_craft_width + and craft_type.get_shaped_craft_width(craft) + or display_size.width + + -- This keeps recipes aligned to the right, + -- so that they're close to the arrow. + local xoffset = 5.5 + -- Offset factor for crafting grids with side length > 4 + local of = (3/math.max(3, math.max(display_size.width, display_size.height))) + local od = 0 + -- Minimum grid size at which size optimazation measures kick in + local mini_craft_size = 6 + if display_size.width >= mini_craft_size then + od = math.max(1, display_size.width - 2) + xoffset = xoffset - 0.1 + end + -- Size modifier factor + local sf = math.min(1, of * (1.05 + 0.05*od)) + -- Button size + local bsize_h = 1.1 * sf + local bsize_w = bsize_h + if display_size.width >= mini_craft_size then + bsize_w = 1.175 * sf + end + if (bsize_h > 0.35 and display_size.width) then + for y = 1, display_size.height do + for x = 1, display_size.width do + local item + if craft and x <= craft_width then + item = craft.items[(y-1) * craft_width + x] + end + -- Flipped x, used to build formspec buttons from right to left + local fx = display_size.width - (x-1) + -- x offset, y offset + local xof = (fx-1) * of + of + local yof = (y-1) * of + 1 + if item then + fs[#fs + 1] = stack_image_button( + xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h, + "item_button_recipe_", + ItemStack(item)) + else + -- Fake buttons just to make grid + fs[#fs + 1] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]", + xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h) + end + end + end + else + -- Error + fs[#fs + 1] = string.format("label[2,%f;%s]", + formspecy, F(S("This recipe is too\nlarge to be displayed."))) + end + + if craft_type.uses_crafting_grid and display_size.width <= 3 then + fs[#fs + 1] = "label[0," .. (formspecy + 0.9) .. ";" .. F(S("To craft grid:")) .. "]" + .. "button[0, " .. (formspecy + 1.5) .. ";0.6,0.5;craftguide_craft_1;1]" + .. "button[0.6," .. (formspecy + 1.5) .. ";0.7,0.5;craftguide_craft_10;10]" + .. "button[1.3," .. (formspecy + 1.5) .. ";0.8,0.5;craftguide_craft_max;" .. F(S("All")) .. "]" + end + if has_give then + fs[#fs + 1] = "label[0," .. (formspecy + 2.1) .. ";" .. F(S("Give me:")) .. "]" + .. "button[0, " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]" + .. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]" + .. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]" + end + + if alternates and alternates > 1 then + fs[#fs + 1] = "label[5.5," .. (formspecy + 1.6) .. ";" + .. F(S(recipe_text[dir], alternate, alternates)) .. "]" + .. "image_button[5.5," .. (formspecy + 2) .. ";1,1;ui_left_icon.png;alternate_prev;]" + .. "image_button[6.5," .. (formspecy + 2) .. ";1,1;ui_right_icon.png;alternate;]" + .. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]" + .. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]" + end + return { formspec = table.concat(fs) } + end, +}) + +local function craftguide_giveme(player, formname, fields) + local player_name = player:get_player_name() + local player_privs = minetest.get_player_privs(player_name) + if not player_privs.give and + not unified_inventory.is_creative(player_name) then + minetest.log("action", "[unified_inventory] Denied give action to player " .. + player_name) + return + end + + local amount + for k, v in pairs(fields) do + amount = k:match("craftguide_giveme_(.*)") + if amount then break end + end + + amount = tonumber(amount) or 0 + if amount == 0 then return end + + local output = unified_inventory.current_item[player_name] + if (not output) or (output == "") then return end + + local player_inv = player:get_inventory() + + player_inv:add_item("main", {name = output, count = amount}) +end + +local function craftguide_craft(player, formname, fields) + local amount + for k, v in pairs(fields) do + amount = k:match("craftguide_craft_(.*)") + if amount then break end + end + if not amount then return end + + amount = tonumber(amount) or -1 -- fallback for "all" + if amount == 0 or amount < -1 or amount > 99 then return end + + local player_name = player:get_player_name() + + local output = unified_inventory.current_item[player_name] or "" + if output == "" then return end + + local crafts = unified_inventory.crafts_for[ + unified_inventory.current_craft_direction[player_name]][output] or {} + if #crafts == 0 then return end + + local alternate = unified_inventory.alternate[player_name] + + local craft = crafts[alternate] + if craft.width > 3 then return end + + unified_inventory.craftguide_match_craft(player, "main", "craft", craft, amount) + + unified_inventory.set_inventory_formspec(player, "craft") +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" then + return + end + + for k, v in pairs(fields) do + if k:match("craftguide_craft_") then + craftguide_craft(player, formname, fields) + return + end + if k:match("craftguide_giveme_") then + craftguide_giveme(player, formname, fields) + return + end + end +end) diff --git a/mods/unified_inventory/screenshot.png b/mods/unified_inventory/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..972cbb469dba9b2c976c7582d91110dc9d765c20 GIT binary patch literal 137234 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/settingtypes.txt b/mods/unified_inventory/settingtypes.txt new file mode 100644 index 00000000..910989fd --- /dev/null +++ b/mods/unified_inventory/settingtypes.txt @@ -0,0 +1,11 @@ +#Enabling lite mode enables a smaller and simpler version of the Unified +#Inventory, optimized for small displays. +unified_inventory_lite (Lite mode) bool false + +#If enabled, bags will be made available which can be used to extend +#inventory storage size. +unified_inventory_bags (Enable bags) bool true + +#If enabled, the trash slot can be used by those without both creative +#and the give privilege. +unified_inventory_trash (Enable trash) bool true -- 2.40.1 From e7230f4ea54ac1e897de391d8b31e23e8fc0aaba Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:20:39 -0500 Subject: [PATCH 022/321] Add files via upload --- mods/unified_inventory/mod_api.txt | 95 ++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 mods/unified_inventory/mod_api.txt diff --git a/mods/unified_inventory/mod_api.txt b/mods/unified_inventory/mod_api.txt new file mode 100644 index 00000000..c0be129b --- /dev/null +++ b/mods/unified_inventory/mod_api.txt @@ -0,0 +1,95 @@ +unified_inventory API +===================== + +This file provides information about the API of unified_inventory. + + +Misc functions +-------------- +Grouped by use-case, afterwards sorted alphabetically. + +* `unified_inventory.is_creative(name)` + * Checks whether creative is enabled or the player has `creative` + + +Pages +----- + +Register a new page: The callback inside this function is called on user input. + + unified_inventory.register_page("pagename", { + get_formspec = function(player) + -- ^ `player` is an `ObjectRef` + -- Compute the formspec string here + return { + formspec = "button[2,2;2,1;mybutton;Press me]", + -- ^ Final form of the formspec to display + draw_inventory = false, -- default `true` + -- ^ Optional. Hides the player's `main` inventory list + draw_item_list = false, -- default `true` + -- ^ Optional. Hides the item list on the right side + formspec_prepend = false, -- default `false` + -- ^ Optional. When `false`: Disables the formspec prepend + } + end, + }) + + +Buttons +------- + +Register a new button for the bottom row: + + unified_inventory.register_button("skins", { + type = "image", + image = "skins_skin_button.png", + tooltip = "Skins", + hide_lite = true + -- ^ Button is hidden when following two conditions are met: + -- Configuration line `unified_inventory_lite = true` + -- Player does not have the privilege `ui_full` + }) + + + +Crafting +-------- + +The code blocks below document each possible parameter using exemplary values. + +Provide information to display custom craft types: + + unified_inventory.register_craft_type("mytype", { + -- ^ Unique identifier for `register_craft` + description = "Sample Craft", + -- ^ Text shown below the crafting arrow + icon = "dummy.png", + -- ^ Image shown above the crafting arrow + width = 3, + height = 3, + -- ^ Maximal input dimensions of the recipes + dynamic_display_size = function(craft) + -- ^ `craft` is the definition from `register_craft` + return { + width = 2, + height = 3 + } + end, + -- ^ Optional callback to change the displayed recipe size + uses_crafting_grid = true, + }) + +Register a non-standard craft recipe: + + unified_inventory.register_craft({ + output = "default:foobar", + type = "mytype", + -- ^ Standard craft type or custom (see `register_craft_type`) + items = { + { "default:foo" }, + { "default:bar" } + }, + width = 3, + -- ^ Same as `minetest.register_recipe` + }) + -- 2.40.1 From 4260135aedfb007e033177de9445c86b43666896 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:21:09 -0500 Subject: [PATCH 023/321] Rename mods/unified_inventory/mod_api.txt to mods/unified_inventory/doc/mod_api.txt --- mods/unified_inventory/{ => doc}/mod_api.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/unified_inventory/{ => doc}/mod_api.txt (100%) diff --git a/mods/unified_inventory/mod_api.txt b/mods/unified_inventory/doc/mod_api.txt similarity index 100% rename from mods/unified_inventory/mod_api.txt rename to mods/unified_inventory/doc/mod_api.txt -- 2.40.1 From 84478a507493088e87d89c8843bfdc66f5d2de4f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:21:57 -0500 Subject: [PATCH 024/321] Add files via upload --- mods/unified_inventory/birds.ogg | Bin 0 -> 14797 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/unified_inventory/birds.ogg diff --git a/mods/unified_inventory/birds.ogg b/mods/unified_inventory/birds.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4a9339544a9ce969a2ff2402d4e951d36dc03077 GIT binary patch literal 14797 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 Date: Sun, 15 Dec 2019 16:22:19 -0500 Subject: [PATCH 025/321] Delete birds.ogg --- mods/unified_inventory/birds.ogg | Bin 14797 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/unified_inventory/birds.ogg diff --git a/mods/unified_inventory/birds.ogg b/mods/unified_inventory/birds.ogg deleted file mode 100644 index 4a9339544a9ce969a2ff2402d4e951d36dc03077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14797 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 Date: Sun, 15 Dec 2019 16:22:41 -0500 Subject: [PATCH 026/321] Create main --- mods/unified_inventory/sounds/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/unified_inventory/sounds/main diff --git a/mods/unified_inventory/sounds/main b/mods/unified_inventory/sounds/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/unified_inventory/sounds/main @@ -0,0 +1 @@ + -- 2.40.1 From 0a251c9c5685cfb486e40f9ad14497c086096f1c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:22:52 -0500 Subject: [PATCH 027/321] Add files via upload --- mods/unified_inventory/sounds/birds.ogg | Bin 0 -> 14797 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/unified_inventory/sounds/birds.ogg diff --git a/mods/unified_inventory/sounds/birds.ogg b/mods/unified_inventory/sounds/birds.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4a9339544a9ce969a2ff2402d4e951d36dc03077 GIT binary patch literal 14797 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 Date: Sun, 15 Dec 2019 16:23:27 -0500 Subject: [PATCH 028/321] Delete main --- mods/unified_inventory/sounds/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/unified_inventory/sounds/main diff --git a/mods/unified_inventory/sounds/main b/mods/unified_inventory/sounds/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/unified_inventory/sounds/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 67c0f6f6d2246e87ebcc11d8570d9f4df694cb93 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:23:48 -0500 Subject: [PATCH 029/321] Add files via upload --- mods/unified_inventory/sounds/click.ogg | Bin 0 -> 4869 bytes mods/unified_inventory/sounds/dingdong.ogg | Bin 0 -> 27849 bytes mods/unified_inventory/sounds/electricity.ogg | Bin 0 -> 18175 bytes mods/unified_inventory/sounds/owl.ogg | Bin 0 -> 50950 bytes mods/unified_inventory/sounds/paperflip1.ogg | Bin 0 -> 19880 bytes mods/unified_inventory/sounds/paperflip2.ogg | Bin 0 -> 20582 bytes mods/unified_inventory/sounds/teleport.ogg | Bin 0 -> 59041 bytes mods/unified_inventory/sounds/trash.ogg | Bin 0 -> 33615 bytes mods/unified_inventory/sounds/trash_all.ogg | Bin 0 -> 32753 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/unified_inventory/sounds/click.ogg create mode 100644 mods/unified_inventory/sounds/dingdong.ogg create mode 100644 mods/unified_inventory/sounds/electricity.ogg create mode 100644 mods/unified_inventory/sounds/owl.ogg create mode 100644 mods/unified_inventory/sounds/paperflip1.ogg create mode 100644 mods/unified_inventory/sounds/paperflip2.ogg create mode 100644 mods/unified_inventory/sounds/teleport.ogg create mode 100644 mods/unified_inventory/sounds/trash.ogg create mode 100644 mods/unified_inventory/sounds/trash_all.ogg diff --git a/mods/unified_inventory/sounds/click.ogg b/mods/unified_inventory/sounds/click.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3db63a0796e6e95dcf6046565c4f310dcdc8313f GIT binary patch literal 4869 zcmcInd011&79SKsK#CCp1dKLN5H12WES6AhA%c=%3S0;Xlp+a{OdU1H3U38Ckf_V5vd&)=W++A7dBl|eu+b4QKd^~`C?(Y{J1Zo?7}dI>s6tZI zO5%#CZF3F9JIM+FLy+TQQd%?4NYm1iNzSF2a$4#KzI7Di;_y2(lPkY3<8G;KtWDpd zMV#<kS8UJAWd?Jc9oI?8o5^O#rXLi`v$udn{zm(^idUjCq)_YDW4t(G@`DIP1 z-_I_M-Sh?SjlInE)cz>$$qTsnPxxBegzQygqPK$r*FwkHCK2d(Onf0yTagJx&6-64 zInYe7ZaYvi#3jCoj+qaY3w>t)*j_sLl z#(EET02ot$)U7qsdmZ1qoxcj!byo9xWzAhr28JT83Gra+ca@QDv;I?}a?u37L7D zZ6X|(+FNN{KePePjp?o&|FVS$sUk_0v!*3-R^BUE)PE$?enT6DGm5^eN^dcVht!`* zvPWGe81L`!@rQ9s93-_J$)yNOaU7z3t^I+eS)ZF9kW)Jl#nO_}waogwFx1vrnU$-z zoC1J|phxjsqlfY=iWTL>uGd}8-1NNRhBYUyYW?nib(OHjj0#cg<^xe&q8UHRKS>Kt zS88;z%asz8i700?3I>&uR2G1<)h9_oMdo#+4raw)1NW=rtwl?E{!(u}CWl)%!P?{L z9^ti`9m$T)&WJfA7(SaHKPb38AiOq|ZqSM@(&(<$XXmnGNt< z=4>an?069)$C&bEJEh4*mGy^@PSzhY z{afaw6xUT0*A*5|6qdRaNmGj|RV~LhUq5;O-2bevGiP0DJo`@LCx-q5iJ0k8#N z&1#(OCj|36Lde$DDW+6o_3s-4aLO^VsFkor%vflb)y-hiQpB_|^4J|J{xCOpdkJ-2 zFTsf3E)TDj8^dkS5QGDeLv5p8BV}qCo$^2})#QkzgXXL}(91yFr6e!Jsn&u!CadXX zbSfmIkm4f>3vQ7bP6Ed8x1hSa%*w!@2mr?nHAV6zs1_M7L$6cskx?eCP8Ol1;g^Vt zskkF~1Vl-W&>|CL(anH+vb^p97XT=i4d9RN;++%(2+rV68Tr-$?+~I>h-FYHkvCw; zik5nJ5q-iV*UhJ0>4q(f z&p(_FuG~~v>7r6CD^{hcR2fyO^kFId{8H8M;IL{r9Cu%}eE1^lU9M8O?NhnlP`OQ? zb3K2~L#5hsyuodzcKQ8_52wY$I>BgUe0(%-=ovfasc`t&!BL$c@sIU=O|0mCL4-g! zq7&RboRQ$WmfbI8OY;*C@WG7>Gl{ReWxYt`yLNk#-)Fp?ENa#j%cXGVOoSoQOLmD?0M`f2{KjqCYe z76<8d2op3s?x67Y$JvRUnvBF|;gTWU!HbW_rrUZn8KW)2gw*Mk6FUk-emscjocX{% z$Al->gF*&CUKzg_!5`!h{P2i?fT~D&Wi)3et~t}iNl9R)S#b%T?T$%WhKW-nk(pYb zSBAPMHDS#3dW~H~8a11MnkpNunW^p?VqBVgTOo#F)N@=RLSs#p3MoV>zYI0DSEA@X zr9$W0rby}zpCn5n(V}|Ax3N$Zii(|-)^X{lo2=8{z(f_P6+~`YeUmj;tyiwVlq;cf zhMKdUX}sj%%>agzQpaQhpaN-=FhE+Nuk#HDn+QXz?jcTyvBc#B+_!gMo- z3o6DI1Xkdv1*A3IR0M860n3~Ybo&}30*NP6dCh{mw*FcaM=a+{=uBIs1viyi6Ui|< z4L6-^xS;Hf_C&h|3(x_vCk}^tWnOsdJ$ORfiip@TP2|EA$oR$7Htf_MhfM(99_yfp zx@mAXBG7-5@y+4+m8GQ_+lvT(6S6#b2ZT3GD_?k~54tqaz6lPiwqI_LvkF3-q?F}_ zF>8oi0+Ue>)j^XYX~xyiMaQuYrdoh?Xh`qEj&EbdN(pu#4umm7+}k$rVJJ!bE}9a; z&u8L803PMe2ZMV{9I7nEhE{V%5TNtgNNY@~Z53RtJp`GUsy6~Ioe6nx>H21ZJZo4f z6|;%fjx`f9F4pk1&M2jsMA4Kj0m6jv8Jc($zkhVd=9}J@$$5So)6t ze*?<4=FiW0nOEXgn*j)NupDL93s5x8U8#%Rr#?`Qh9DTVL==gpsWpR~`xJ!)g;tTcE>6&(eVBU@ z1X5zEZUfwRUk{QZPybBeL-XJq!o(|1|bI}3G+S$Vhalu#2chKFrJ>mADQFft6%dV{AS0&A#>yGMcuD? z7JjpHF;R0=7;}yy&|O}2Sjg50nKb0|AtrK<(rD+Ugh`&(NrIbAQH#hNQ7EL{ zG-X-11PyT#;R8}>ZKQYG0NfD_0jaR;u)iFbnk9kD2J~Da2-~pnCz8j!d6_1*M!0iH`0G&9(qD5Wgb)U5x2N!nW8AY8YOt=hK3@#f3|MGc( zfq`D_J)@5eEF3)PC?_-5VzwK$hK4XhV8LG7hKBm*v*8Jxo&~VyGsfSsdnyRe3JVYW z;HAOH39Ees4!`&9`GGHV7o;C0ym;sO8QE?JyBl(!6)d04N8gd%%0WPZ)p3^Hnhj-dv>1i2!6V!n(kp>=67S!;>1SFj<}E0JTzm&4hI$UpBlYOf#V`6G}&z^r|XDw`s{UTXY_3kfrxVlyAoKIc5l>PYj z#GymUQ|;3d(PqSe9JOOZXz-P&!pisU_ho)={|h7i%_q5Cixb5gpYPhbAz|lR_m_oQ z4nNdgTl>ZGf~4=o(FuilOLoUM@BTP_*Th#-CF$DGhwlp`5v#`yClpapU?zOW@?lDI zh5faj`vF5&pPqdh9ruS~%zyhA%;jC%tWvjG-TUF8sXBS#A;(ga9b0|Xh565hyQoz6 znU^t_KJZF$^DvJSZt~e6hz?yU(t^ znEqT_I8>wN@AzTh>7`Sr+|E5(HA3BfX1ekD1%8Bf$n4(BI%e9-T@T~Fo_;#w@S{23 z96awI4qP%?IZ4_3)9wTOiJeF5&Md9C8f?74)Y^Y!MtZ(r9#6N54IPNUe@4&CA)ftu{W95oZoJ{z zQ?76Ls#5k39+&?)nOicF@sZn=RqZc!_)@&=Oxm|z3gZanrTu=_cQey)NjS}hACE2x zZ$4$1RC!a|#U-}_5On5rA%46f*(9W5LeTJHy9TkV3ZLJyivI+BkUwH1m7wxjE^^JS}8CPU6pL_uih8>;>&S&jD%bXY8DG}f{E*)<_)Qm5hd9c?M zk85@D-1FhM>*aBy>BGlo<{8mEtf!_^JOUmaJ^ib?ToSn%k^V6jr)z7&4I~30m#+#cmMzZ literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/dingdong.ogg b/mods/unified_inventory/sounds/dingdong.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2c9d7ef7f5748fae1cc19c83abf5de2bee2fd826 GIT binary patch literal 27849 zcmagG1z1#F*D$;%7=|7Yap<8#KtLLi0YqA9X=&+Biy@>01Vl;c5D-Nr4IF6{q)U`k zKm|lmOqhS8_x(Q4_x{)QeaFMO&e^f{-mBNzdpvpOj2S?Jf37ROv47qUR#wR%co1R! zLC&7RdnJftxBfPn=l|Qd1#xn(=l@)LJrVFLI-!un97y>;uhXc%kR)LPE6)HAsgprx z2tJ<9mVe+A^a!%jGSV{eCWxB3csPZ+yZMElIpY>0wl@|x{4?`+4+(b)a#J(&_lqQ$ z`G@+s5{~-^opB>5Nl7!o2FEnawbf*$rIjV&Evty2`a9r3O)X0Vz`_PHhJ-HCP`U*G zH~<_4#Tc);>xorlm54^>Wa;j`bx9}XWF>XsT~cJa|9ueTT=xTj1|(6Mw6bMAuNTT^ z@FHnJ#mb&1l&T2S$tLs4H0@u7UHmE=D!u()hzVgCtf>G*CsCL0607On!#R;J9uFT0 zTtU5jRRuw`;x~(9Xk~i|v4*nm%CDYKd3UocP3664!;mJOWW$KQq0G3Y%k9S)`}4ss zlvfJ=dC>e>2LaAS6T|L`)5Pw9PZX=n34);hE{gz2aG5|SgH`V?>+`!@1H*zRKTDYG zlOH~;ZDwv{0k2T|Q(@7p!wG*|uD;ZnNl^d6a4&!~C7Mcf1;MpDxVi$l`XDw;B}aqgPX((@1{+O6RP15o|9(aP z;TO0Nz8mh>y-3)@=}v#pLV{rNC0H%`zazm0i6w6cc|&&hhQ~2&1F@y_g7-v?#O1`T+Ay*i$7R&UCmGh*g9oMgpH8y1zsR)VrvvL9eakxKR z{O{urEC1!<^2}uMXQKD}WuHszJ#KZpQ29{bfzzUwfm|#h54kwCak((~wz95wMdO6c z!HO(XeX)wa5(SA$a81|1u>TQ~_?)0;VpUKo{+n={f`iQ5!~b;;e&RA=5rX%ytfbjt zH4Af#Q(?Z=*`YJdm+YrP=O!=AO{Shc5dXg!>whE%K%t5IBa>OqDKb3;u_rWX{u20K z$q8ib$>8eC5Hz?aXfz@*@LBHUmfY|@Z4)^ov;FqN`$I?B+{_g0N9El{E!@V#+@_n{ zY@07wH~k|pf5m2QGW5SBXHP`9 zm(u<($?-_8%1N$DOkPP$6HU7AnUq)4TI%!c_J;@m&-;HQM<+-S-cWM1g9QIea>z1V zT2PwqNf>SYU8CACL}-Zif&V4|0OWLfgFkx2#8h(JRDRr4(!yNr|1L4Gc3jSAR1PBc z8UXA7RCGbC;}~O&of$Q)=*4u@z7u3zv&IN<6|BxI=Wuz>DayjF%{cK(*it+16r4bJ zAWqiBRIE?qd#0C|G8U>mG%$hUrkN7uCCXsA{I&*bHZ!3RWx>XPOLqD2oUM zpU@YrXf)RMVs^pF_LRH6(4!G*VAc1miybokQ{i3RXk+GeHwf%*5 zktl=B4K|fsDUUO?p{pprt}Id!n{GVp9%=-HvCk@ie1{9Rl|f$txTh(_kRXYk#EL(Gyc!umnA3J zTn69*ZBrVX@WFMB6As=RYOn`fAgs9C?ciPaIQ%~=x7=I#e+?e|zXq?9?6x!WmWQB> z>bh)#*Oj|D&iw@?*<|Nkr#8uT4*CF&WCS3P<7ACJdi4Q;78+*^UpGOnSF{Ts*G;Iv z$Ku4ga)M38EAS8v-8sQH(>{DKqoy8ToT;g&SR77YzZ#ll<9TSy9b+py7r~|YTWFw( z1bCM$=YHjt^71TGNQ)F@>XNK18*fNznH54-rm6R}y|O(hUUh%U;*9n6>)c@3jW`wv zxhX|vg)5FlU$44x>Tf&vhF4u7#F^^ri8W3*!@ex0des$E&T9lX4d^yZIHy3x_P6ZT zU8v&zmffw)GWCK`oNwKofQ8ktZ_3??JR5JxraxsiX5Mv;Y%Z|O#v6J~)Qr%>IzFU# z{F?TZNBbq};y*0Q3Nc0ROfM5(5R8+>W(3n~Qu75tMkseR)$}Z>Fx1x-DrbYM4KbA! z6&5Ntw-Ezi4Wf6AtSKtzDg@H00hs_FFLjG729Hf^J8lplKurVZuzW$A1oTexw zmL?W9hWNjPgF=~QZX;d+8$We`a&Bm(^fK4L`hE&`JDRBLa~2q#w%{ zyXP6j!3PaA(0lWgE}>`TxW@u?p;tz~NAmJ=);-?BL2CcyiY%MG&pnd=WfB{o+`pfD zbl>9{nfO1oP-OQe?kzK6W9lUa#crUrJj>=XBx0`TJ7P`}fv}r3N6ysb9IL_-eX-SynKMrl`<0OOA?y zt1Oxjdr(0MRhZj&NmlkNi-}#^TS^!dggs`iy?Zs?^bbR(a>tq5B*XQ1uMx7wY~X6` zpz?rCARpUkiS6-ho&2PYX|iOKjdz{=%3p*8-&U)daIS6awhMlt@u$g3UN8d&6A4*e191&@F~cz6ZCaWTkkjQ>z-Pb8tx{Usbflz2v!za->y{jUnm-am}>hqioi zL;vZaPgAkSaepd=vRL$~x%WVoK%Rp9@-HaJQ<`G`^kvzrF#Tt6p+7#!fAuicr}@)v zj|*Wt7TE6Z8~ha7YxmcSfn|F`{sFc3`0olh(BCos9VpBA-**2802;n5W6iy}{HXcg`y+J<%EVX_cf@Va$=0(ddf5P^=0H!pzuJo2$kHJ?5b#mIaG_#XG_hE%`_Dk zf`V5oIl-t2Cpu>1+d7fw4NVgiMoGw~w;E&9^$qG^*mS#bdsahqPfMmWPP__ctSH}m z+qOCPQ7r-T8RVpM1CPHI8t6-QLtnRbrSRMfXu`ZxT9;o1zfk)&VgpB<4Sw@z)Y`4t@d8^Nww19z-*y0Zk|;p57l@|DJX zF;F8Ufi)lIA_7_mkUZ}A&@K{XZ$=#TXp5{v;AMi$HiJ`GwRDj^+0 ze*l4KjY~nsw#zIOguH}4I-jhTAU|7dXPj5@%^XI+b^!kwLC|s$SYJdwpbyYE5YCO| z!)joi0|Axb{Cpf|VMND1zkrw%Ce?p~cOoD`$Hx_wnCR}FR@SkE5tPdxOuaxd85 ztF4Z@BE;$EGD9i?dB zAY}t}y=SmUs_W~(&~P&)Ds4K1<7?kKGv$~4hvgS*V|H`1?A4x1l&^<(Bkd_Se``iH zJo0%km^tIT`{|OzjnKn)SM{rAtCPefJ(9lPEx%Do-dPtGtEp9xK|M7x~oh^SzGB%t_^Fl)aqKp=DImg0|s1 z{iW&}I!eRxuXATrFLY~iKG3fn5Wl%4BJ}n6#{*y6Qukxzj;o#QX4AjX?HNX|W!Uxb z=XLv!RrX%beErv)l0U{Vos0LIGTPit^YfOdbSM)M&7ShPpeX#jvFu71Z{)>_Avz}0 z-wTn`VxFIj0GR-?aem?vVzZ>0j5$bb*Zv>UX zJ9Rk#ypp9wh|01DDb_fOY&2Y4$|abEoaY+$kH(Df;JKE zA=_#j?{QCmn%lt%L&M>aXrw`47l8uH6l^yscm4=4zH$ypL=Xdy^%$~G;Q~l};NDr7 zG&qhbRu}?@a*&_~yfUSp|4u_H*385=*o^YZ&GKddDg?I6k)g6F@5#D72CW-(X$znK z@RU$h4=H3_1A{RDcvYsCNzaV^1#Vy-ol{pcWh=@-U&XH=#c|VtJt%85K6U(bksB*e z!ho&Z*xr3xY;b>gMX zA65zP@Yhl_qik(CQ~3EqMJDJYRO3_c_1`#ED`)NDOAh^JA1IQ)o4s=V$!|WvHwtTp zo+J9_0{xg3ZSK(wAFimIx-cWou5Q;}?of^0|3jD{o1j%wR{B%D1L&gSkA}1PrSSC% z(xlLcKUv8_R|u5c(cxN^awd=5u@uND!V@zQB*a9?qUTGFV&HIU;N3%4=F!G4FYB~F zwv~$a{lW7UL_p^bbnP6#rY-XQB;vg}itBSVs|eW`HC2N!zln&z1Ja7VW1Buup<)BX zAy!&(?VcW}*#_x|R3N1uh$C%rSQ*l7hHY~W>bkPp0pORqAaoT;YDsbq|0N*wa zNPs~?Z)9QJrTsDH;~jK=sv1Ji^Z4sI32}vIj6TF0I3PLwG%A4p%Nf7|Jy4hq13+s? z9W7IEaj1#`w4E9#KiOy6@ZtUXdeX!B(-BIG$5TrFA5_QWY`2+0d>>GN)~{q-(bTW%-imRomq376wkb-K>n7KL)0Ol`td&7 zIP;2Hd~@MCt8_Q`okEQ{qi3Cw^Fr0qxEyb?eoH@*p0v)?xf&+W^KhBN+xHT`G?&b^ zpeZ_|Qw9q%*;o;3=|1b8yJ%2 zHR6Sb=)pWjR+jzy&fFI)AMyk#mj>d*3#Uol>LOLfzWwQWQ2&M{R` zd;*NI0K0ew@`0-x{6Zb?w1rP6kv&dQ;XBE>`lL3iJ%;_+d`#e__q&vJs-gW4wF^J* z<+0~g;e*ToRYW*FS(KBgwg$87OIxaAw9>2~5MzudKGp39;P*wu6>+e65=A;s16Ge1 zlMqO)!%W(E1aYYmt<((yB9Iya^KTU#*M0AcZ5ho9VEqps#ET!ddc(@-NcZ7Z`p`3F zD{ms8DGuvYK0qQY8lp;ZEMycp!1}H87q(69tu{)SFg=2#_RD#i3MGO7L`T_o_YTJc zGBC_}z39FDd+rnf1bXRo*Tgen>it`yk%cPgLiVP~oQ#QKSHA^?*^ze*$s4q`WA5&& zt?{OE&!(S9Nr)CrnPf|76)XF88YB6F-}g|JysltezwcilpLl&vK(TD>>~X%z5ebKT zcB562Gj3*!u4W9R$us)TEe2RZK$e#D^f8X|kPu$unz);|*-YJIL^mvfdEWlE7lK6F zcB*kFn^o*t+37XkkAD3^ru|&sI6~Mie1)U+83X{DqNDqj&*m0++Vj5Qj+` zoG@6TH6*{V;jBAM;)u^jfRL|+Echjz%NkOyFUa8$Xf=Gt${>x@S?68LQ5E7 zg#tH^GqXOtaA!)d!fjSZZ0s{Nvqv2=fnw;REg_$lr$6MfHNl0rSUT3LW0N@O+o`PZ ztuQEgz|~9I(LpzDs*YCH6Q%nm(EMzF?(ui^^*4esNSsQi;yM3bX+%3wf%VE;xCA5- zNp!!n+|qI@R@&f`qV>49XF5BMZLA5sHgDc2$0(SSxoOYVwDP+ksz-DcTO`aiqn*iC z;@Y0jfg|3t;4=MvYAM!fz~j0!I-Q2_^*gwxt9LDRITlsX)n1HEuF!d=#4~b+raof- zz9)?!8UgwMIh$0&UW`HefG-FGMQv$NsKYR7doL->{zh;^$bmcdi@6^mY5_0GF_H2G zvMp2`WREbgBn=qVMS$aZQyRdUL0*op(}#!;aR735)Wt5&c!)mZj`!glkKmS!Kc_U@ zX<=~jHDtz+;)zxQset^s8E}#1Zyj;M-QYe=(^Kjs6D=(~EsHnjqsu*P(%x`{nD~aI zH~ZsF+`e<6lfk{2`;hc@xgRh70Qekow6tZD=r?6J22yMG%|w~OSM^9&`=PErnGr_x z*BX7TQsdFE$q#d-$VVnQCw9&Vzk_B*bncnW?Fp}GDajL|$@^={j{Y7kY+I)}=z>{A z`FpVC&@1O4TPiODmVvP%LW{2cw{OjWgx%WbIMYicq9rb6l1iSUdg)l->`s`3?o(NO zglf>x^i|r&Jx%Z77{C{JSP(cU4&?fanMa1)__i4nkX>y%lKn68mgeZ8;|39#i&PcN zdB#YVaiatK5je)wY$TA&AiJk=Q%&WF0Z^ppxJv_=Xjq|smQHJoC(OZ3C-r*iVl0q0 z?KMh;PFjk#BLS(jwn9&J{NQWi=;_b<4$~GKKoE_P^}PXhKi#4qrsXS4v&6?PM!bkT zd5YTmX*zR$w-e)shvRbUu>eKywzEXhijRw?0jVE8%nHLX zmtq(qj-?c;Rk7RG^yDgEHH%ey^Ujz+j}Rox>8@d4(YrUFdMJoD9y+eSdi88@pec&* z^kJCp8(LksX@V`DFz44ngCi`a2yjt^;disEz{^I7*&e!uqr3aw{rE?`6+{{!HV%OE zbg1{Lq`==DT%;h7^(mF&4jhxPBqh;+=reK=ElwSfQ4diEJVFBXVgN)zz$cTtA7DUp z@u=fGjCtr4qq)!z5FjTSf%X9SPzJ2W3}2J-ZJdz73^h?3Cbk%{{GChNv|LpQmvqbx zJtPOU=x%~&YeQ?f*!0wAJ+9tVcnnf~=Alj@6eBFEh^gq;S0<7Z5Jr>eEc?5|BhjV1 zvP`16$_ezkr}K*0Z4>Q>^B+&`>#eGYuD{Y^Q7UKz7)GE6~8+W(?zg1K;TWc%1UYcSx9O}uraLC zpgxctVRV4tojzY@%t3~N{E(}G>)o+8T$$o@n>Yd>EPELReKy+qHF)SV1`ooN6DD8g z(x3o>?eq5AC+d43bK*X}RD04)liBWlB1f8b;UR*1rB(tXajJ$>fj&_#BM0@1tu}#9 zIqi4iNw%;8r*}Rk3<7QV``2!XYdfoT7#mE5?;m94^wy)^7UN+woqojEvRc7^^{%Yj z*Ng8C)y8RT6zd+Sa-)A#7-|;$^R3*t;6k_KFQR*;KVnw(rlu|b=zzRbT-MEDe5nR- zfc$o-uX@B~eSJaf+vZE=fj=(gAJJWcS}ou>;u$b>K`d=OVg-pw<&FuQmK_jhJh!nC z%~*0U5;(wH34sH}4`xzW`S4&~CK2{poTUo=~EP~xHr45x* z=p)yx<5bPFt!@VqHC>PDYUWF~Om>SQF{ItWMY$^&3=l?5E4ee}Lz9Ih_PQmUe>)ll z!$3TU*OMJBe-M&?ft@-NXb5kdi zPW@%Iy-2kM`hM-o&qzNtKrKdzlx`25oE#FjAM5c-06sHIf(a-v?Qb*2G;o4T8>9-Y8HQe%z^Gg z&qq%k!F=&gecNvB-0sHk>(eXE&Si>f@K}h)%lGdP2{b7CM@siIg~|6y(=Z}N+n41% z5ZlXiQ(n|{aRXvMF0Iq(D|?=wZ0%G`=DPV7KX~Q9K$4uenXqpv+LXb0L%mj4p(*ql z@5kGuW9WZ!C9ZIh@Y>6j?8##bXU{G_MT8v&8E=1vW)!SK`I0U{uz&`TZ zhrRV6(cP61+Z9~#!53kMQct+NF#lTA`pBr?g8fyGX&;BD{R;MG0#{C7D!yJBsL{JM zAz?Nw@o|z+LwhfQUMae>=WNPa(D?RQ8I~lhn4cx9bkrl;ed%>!_!HtkQk^2M3Pb9CBVv0biDG zFvw|wmN&Oqw9GOPo_SqM@~Pf&2p~ZBUFMm#STr3I-*>Zpq+=l$T}cKC-r??+O0HnO z`tqy|5#qyS$twYb zL2^VQV+`{^?a7tYq{t(WwVvU=8TSag^}k3m^t&^V8pX+X%NQlPsXOr?rd-qj>2RQN z$sg)C@AcOM2IZ81a2l6?Yy;qFftnsN6R>Tf_wYxNpY8|qfPAx-7X>tr!QwH@yODZk z7>X?L)IVVY4p}UKgd@rH4~02-0T2DY?FZ8{h?y^9;veJ^y2 zu@!4WLoAjdwMm6bCEa2_SCoN>C4PCz|CDJwV3l`S26EJ$-H0qcdLll)Rps=X%aC}G zk*E8g#1Br;EX5n^&1BeOeN#=He(gxvY+fD7ekziUD|plrf332Zj8ea(`J-ITjnw=i z+;?O3kXZO8JHE%R!S-;Rp5tZorxy%Hm zRUXO^qlp9rt0Rj)ZHrL7s}lx~;P|c|6FhnSB>L!q#vOmXrjf?&!Y;bL3%A0UtNyUn zcRbjp9EG|V)kgDT4s>&%Q&6WA;H>#rA{L|=IH8MtMiR+mjh@$aWClZJ0K0om#~wPu zb5LT*2*PrMpBL_S1wQ@y^{4$Z9*uZ2L?GSSH;P9VAJkvKKDE6U|6y8OL5ez|j$P(c z4)tM#Q+#cIzbbb~tN(jfNQm&+xHH)Z3}~mn+w|kNF&r3ALio+A`|!+e>VC0e0W<8I ziMbt>UvihR%`dW~*n-6xvWCp2eg`dxZ!7jYFwoxEb@4x4Bc~b|n9yu6h3+q7k*i97 zbT1;fh3HwE$ei=Y~z2+5D7;&+Flu-3W{Y6vhUv%v`ZvjwIIG#ehuLE4XV$f+xPgSXg zyS<1*cDiLqKuVyJE;@wVTt$`}k>np?9Op?0;%i$J%@;LYEw%V( zd0>cy2t*g_#zxB%yj0jcJJ8VqZqgE%CQoh!&R`56ZOr&SNrdqn&i$&-mWwz5{b;;9 zTgR9W8=GQ*PVb&z^sb2#X#inr{c z5vOp>lBBZ4rdCvPh#B5gwx3(hH~z_?{f>+775D3BYD*k{o_!vswz5%sIPc53p_oa} znCC<34{J~_IZ8$Va+8tV!hJvT-I?|wA(AwS1J!E)X4x3t_|y1SOg?y!e?XJ+G^2M( z6;6xX1Lifd{$i>jERX)C8>=rIu&qz4Q+3QT~jL>Z-oh|_cKOTGYJviF62M+<7`3N?^2 zCAsN4dV|h<{(kT7^!o93xK|v>!*fss2e%7aY92r0IfMfH2q^jvvEBT))Ez%rkLE<; zJ!$XHjNb_L*TqZ#nS5wOa^sd4`YXq5v|a=vm>arkmfT+re@}8aB#nRWJ)_w~ot#=# zc|7#0vW@b4QIyd1CR_Hg;@S>Edg17qrQb@i(J`3GarQLUbPL7zq|L-WYqKnagY@z! z#L)v5&;9!%D?;sGcW@TYGEo>!{^MTYQ5*V~w!Z!G$QEn?sliW>6>4#Sg)tixyn&&3nCALf3Z7NVyIi23`KKMH5D5ErEMa=8mHm|$W6091P1ozItcb+qiF z<0aiBS+iW_X5U5Be0nl7{7`Vt;m)}ot23o4UdsKyn|fSDB}?|Hm{!?apzwf}W=(P1 zj#iXZOizxm&cB4pT|<+^DIj_o#rCJs|@`XzprEI}%_fi9L=S_UNDm7TC3{YxN_+Efnf0 zz$97Bv#0WSacRP>lZrV+<#j~C(8j?I?(^lz zv6=E%kC038-BKIvE0qsxn)*GI2_YYbZS`U=Qt?n*{J!$0ijS^y&aPi+m6rRp*BrlX<1-a@aa)XGs)2v7)GEo z#?EebCoNT(C-NY`ZIyoBX#lN4yw$_?vj^b59+rsd9~~*WjD6|;I8Q{D+EzGFiSS54 zcG1{cq4HQA%1iz{Nrz6de4Z%AM3ZE2^=PzJg`N5{PEXTkAA;Q8pKxMNVDD4ABJ84h z^Zb=hmOCYLqqLYaN+da@*zb0e`WU^7f%kQK9?P=G1YfRc**DfcKsAeD7~s|Otem{} zvuQJHx2IGf>ra4Fgs7*yLx6%uz0ege&g2f5Wg~l$0*yNyU^cy+CSuHx7S7zCll=P# zB0|xV2)KZi+;Zq#6=XLYz};I5r=7z)E)%G-Hl@j}99+3NNh_$+)*yX6j5zf!hPxa)6Hn-9^>dL7Zv#OXcf*0@FC!$lV#Klxt1RSWt zd5|)@8wRI3QBB+CLs!au4W2J)c^&?$J%(831*C75r%~T;tE0$I#E_)(BYCz2m_Xc~ z3ctxj`KU{_S|SBvXB(tMX>lUL^Lo}D#{tkdf9@%Vg}?IWk3Tq{tAq&sZ%?ZT&oz(Xq6zBNM&`6o$sa!uKN|4A z=f;>WeyqD|XLWh)*z9)WmuefOMGoJKFPiSU=i3k0QlUpu**p!C-2)#bobo$FI+I4j zcNoO9cvqSj3M#4XL`5kQ%LJkWnA`$hO}mm;5i;$``e>enGO}5`4E_LMO(3LBM9>?ec+Xh zZ7v@VyIR7FvRl0^jqmTartFLx`T4iW*6dXI$viK|D;-40*)+OxeqE*iQPn&;zVqvL zi`SzYqk#**CVGCT54v74Wr|XoebwYy=pWXwxqEn!@saQIh5DYUHi0v5?%S}52EWC4 zshe}0wJSROv#|^}{)JL&bV{|Y!u{R5=gYN`eR>!c&q1dhED=d(Z> zU6R%lOCbJwDAp|%(8(OFaXx60o_v%qIraN1 zZ}avpkJ_An%o{=3XTP`F)UQ)1exy5gvhK!Y=jr2%1yL=WDnAcwU;k|L`jX8d za`;H$JrJa}{YlqS&;UJNHu)7pce-Qn(ew18-n&-PhBa#=c1#9T60zr3=^12cA_|SHd4o=k&(DrrC;9G&sQhQ)jd$LFWpO zL*a)2@%uY#eyZYi1ATH{XD-;F72Tc%s(oHlCex)>WlyfGkG9&sPh(+H^*%k%5NJ-i ztNCN;qy5t`)zkOfI{n;frl#-sBCk)bUF<-i0r1p3I~}fjvZlHm`?YWKeXx-V>O^VH zC7ET4sC7b>eMsOcPL!)HT?STDHM2?ckkNEtUxFrKJ@fgE{Zlha-vSr zph!?;DPl0Uau8-%_$eF|Zi;xD&cN2B|5;us8JZ`9ycbC#ePW6FH588T+p3$3CLa!g zdv9!?0b@Yt7KCLY4#+I9T%p>a&Va{mQSlEYWAs%|VxPtbkd3>K7pnRQX%wa&fkt<@aMajZ?_aW^C)_TAI!lFoa#NkjreYO!uwF3!x@W6$yR&O6&_ z4~N5Bn=cDK7pKo(H$CETkT}zI@nJpJSiOptHvfvs%MF1-zhkqHv}(@z{PGeU$ank7 z&~ZuAlV>F-%<~*?*}hM!v>{Fz<23ZI>d93^Cc3l!&yQuhkO4X8>3f{s8VP~ftoXQoinzqVj10%6jqBTa>p_fu#}wHN zH14v7(Ie0?)UU8*QgtV(ksNwHEQv0;T$ziL^+YMb@bT%1c)uVlRxYst>s%)jhyQkwE zXlnJYS_ihWd>D+rxkK#s%#zcm0$$HQ<{tg}NUa>Pb%$ve=6F65G=BF_6i45jcj-tM z{zXI}1Rq4GKftoyYKdj)Os6gs5oZ~X1KjX@h;bXbv`Z}8;pF!xzo@^{e_!C5|G>{1 z&_>O5@#SH1&<9Yw!+n5!hacc+jft|R$EX+)QSRnBWCN|3L;K{V$p@CJQD&I{WCaQz zpN>9tfc*jD#pa6ZlZ;j>(D?EV4+SnrMh52aZ~*+fFq7x&?Ce zi6BG3qOgk7k={HIw5e4^rUN3A~Vx^|u1;cA+YA$_=R={*6;0f|>P@dCKb ztw-c6*bO59R|g_eAqpYiSM` zOntyepZ={EL1a)VIc#=Yjv5fDvRc&MpaB9+Jgyw+9f5wjk&2x+{9*Cn_FJ8fTNzEq zFCzp3U&a4=l1kkZMX%-J!mTWuP?#*@`3e zAF6D!-zoPq*A4jT_Qfoq_KCiw#yv5F0btO5eQqf7egmFas7++xU{U6MO8VK?Z0~t} zemNgSwFMQlhg0$BuUSb)BvDj>>Wh15urB+m1f_&8e)^p>S%BE5B;-vUA)VI&0AZ%f zZ6wY3oe~{5v+Lqg+oTZz@T>`(Nb<46h>t(yFo1Dh|NL2wrr>#w^eIy3tj>fGFc+kj z0EtgLV`xQ_0uJ7@T4^>dr^|F+Wz9#FPa23>ICf#aIh$=ZW=+!SydcT+COnlxVx@00 zyp;93TDT2&YPxjXluy^}?;3FDddXJM+LFYE-&z`P&rp?CdXt4yI&jW;3+-)Xqi!-Z zko%J^kM;&r42#0a&mg+{5yPlq1?zF2pYwyak&;g%=skEP-tyzL^g+xjmwpt$%WKk~ z00$6)vI_&naT>^>c`qK^)X6u(aQksU>@?D;G)a3d?x)U{mS!hYBDMI5ryXwRa~GDP z(1(uVqI{_A+C@?17q6VCHfhaimQZXJa?;T^;vHkT9XouiVCYmg*&Fn}e$Bqwoy7Az z+GKe@zz+x`h)khRe;qvMga){C1vPVUn-_sYQcXV=w!BmV5_x?%aOCSv!h{}e#L_{A1JZB2N@TrK!>YlI zHrrrC- zW7P9_FMmgY`E%{hPZ4?4Q&1jf8-b(L8!1v26=_2RrZDG0jO;8)ht$yEE&_i&Rn$isQ^*?@<^{wY2Ec%6<($v+M(+V z;3*iWLl8SpcjpqT5wryLbmMA1qoGq5!m66fsf|H6z3)4#jg4bf)3m+iuj2OOT%%9s zYq`cDDzJ#yk5WG_|HABI24?0mKS#Yct>XQi#ss~JLP7tjC$wWpZA|@biL#_OkE&qs z-JLjoh@`e3*l+@>akgU6P5s^$9bctZ)Cc}*{+#I(Cm0eby(*fj}I~Eqh`{q-T z9v5u|fbQEzWYZB@HVrWZscE$O^qLS!S47}*@^TU}5Fp#03f$A*^b9n*cu!omW&2$7 z6!W|UjaRe3yFPu3HpdS_XjTFbA%)1FMBg+@n>$OF#2(US=UBa&8R)8}I;yyWMSg89 zV*AlCGaDijTCr>^b5A4G_P6}SfjO=zw0Q5G>ps5OpM|Q4^9c-@j3``mo8?j3p?w0} zL(1*G@DB_m;4vup6O?U)FiETU zs3h=06n-7fam;~c5UJ!^e^K*|cnPTVTQ!@VA{+)DxrQiUOdacJb>sSmC_v6D4PPxx zrkW?m9CTE~O(#jvlGf1(k7|9Zej^ICoC;q>8hdcs=@fO20vx{P?Y#8LD~2pw0qb>n z4C149hIs*sy2eD`)rs+w6=O}GT~I6Sg|W8&mDJBN2^y;f*co-Mo`f6=pL8b@CcCjb zkW=!o45^vtgyl#TsL!Eqczgz&e05oTR z^zrB|f55XVHhXjufl|9nF>5c6rL{6}_||Wujucy{@f{vy+x_@m>lxE#M| zj|%~x78MW^eGoM+&+Gt29DE;!XRh~=ka%9{Y~Y0@zM_JgP|?-Q^IqRx2(o(tzXk80 zMKK1%T6hd_)V*K-v-%V>Ak1@L`f&CwhaAAv&0;Q7Ng>7#Bx?kulhZU>4rxsX94pk- zAn-9x_yk^|Lfdb=y>yrDU9nK^h#&I8i0cq@O7WTeD|ScSo%HYeOrJf(W|VF7Q#QKK zs6qMiY>u=Pw(e~4cP&Fh2J2@EOZXFhZIrxwO~`v19f=x+redg}JdIFXQEO!FZ}NG; zpo*sV$nxf>^x&_rmck2g^IjN~6lA8KsxYtKaUNt<0y6F57>KONWs;N0G)z=c> z=(m2cD0EP17r(v}FpAhP_K#_`E zGp!4ccskIo?x#6aSbq>rU^rgn(7mLkeNcjyRsg2@TJwyRbJ)5qem`{A6aW{S4B$iCx$o$^u4kzdKwaRCghBE(V3!=8TVS9UD<# z71Xds3t3RD)ApvJhX?8-T7LJ6Y6fG>-=0zu1$xzWWgT=JZ_ZUWV}uUzzXXn^bl$_Q zkqp-coygMS?IrwQ<&Q_wLe8Nd_m3{-2}(f*p<+ZGD__EN$m zP<(KUh7|S`b%?|a(ksyOUQG!@WP zVc{yGxuF9csmdt+_wkovfKmXdQ=yI^A_&xN5YY&giIi+x7mhnVolPf$VmgW9^@E%W zdO<8ooWggK8oN-uc?&*~a(Ao_OFJ)hwFNkGxh%czNC|u0v~HduX5^C|%1*< zBnS-nT%>U}$5c;h1>>5J6{TM}ACu@RieTjYlsbLWQO=;J_?!U@(?vU;nEH~sClU|+ zw0VD^Z2u`lOzzc;XcI}#%1(?Cr6<6Vx08!Sow9Jd6C7QkzcrT`e~88cIz}_R zuHViOctr0kgo;%qaZ~#p9pwcX=AfRM=@lXa#BHF-h;Hihg9!K7CO{&JnakaV+PS#* z__!QhWph3!+1+2_1-&XW!ZH133yPF;n9;edj9L^y0-33-^oJ4!0nj%&dviLNYoQQN zJXM+JsNp@<__VKSq%He!lgYD-=$ta6D?%1e-Y18oDY1lg7_;zKUVB_ri4w}XJf=i{ z=)?EYgV&xtN9iX;u9l33T*KSV8Rv06|1lyOo;T-=;msKOm5(u@J}NfhVz$2B-Ye_z0;Agj|PP&v`!W;<={yFwB1#t$iz2pRR2!WvC@J}8JCrm@|QG_X6@E?J) zA0GSQp&X#FP*^GS6nx<_7j~DnygCfP z=hd_XAQH*r547ixqTo-U2#%C)><Q;TIpC(5kM&@%n zGMQK($!cJXkW)fWO1Q1w8la)b%;PT7)Jn{Uyubr6JJJ903DtXI-AN0c0p2kk^?yS&>V6R1tjxDnMa%G0Hi3u^VUmIjiDoC{ah;n@F>lkx#7Pd zRf=&`_xCF`YEA{)?Vf;8Z8_w96a&aO+qwtl`!r&id$ZFOX^wDMQ^z4JH|np5SWWiR z@M;hqBRlUF5DAW_FB4qSr0Z!hnn71P1p|6arWh`MjJ?m%mHE}SYwk_KS~0WEqei`? zGM8s0xGUbn-#V>KW`;ruR&_gCyz!Qn-+v$UTl6weL3IRG)z=Ao49eVUwb2V}nO% zslaP7cq$sj6GVzEZ-vMC0sre>L3pmCgY`}CueQ&MyXKnG zM=j@OeBEU*S6?ELuIjipUosCLP==0Q|+Ni4yBH`D&uZc*}&&Mh-1BVGNtl|OeVSQ7PrSJ=JTfBfcb#QU! z&eJmLL7w>+&!O1-ZkPUTI&Vou!iyS9zeW~A)O=M0Tl7-{fCNO3omh1g)`Q2J6XTkQ z;R*KiRtV=A=FE-bRnBSiq;jX z<~&$yw!-w2MW(yzjepx!N$7?lXcv3n(Jh1g!~{Hwk>CR_qzw%Pc?elCLKD}21svc! zOkvS)2)V~V5)cYtTF+8d02+N?P~hrgeFD=-dz1jQ4jl^<-9-=<*d!U|Z!}SS1r)@0 zZHQdXRvFc+oc} zem{~T4lkq|*+Y9?O7Mpg-6Iax+@uSF6+tx)n;|BFhIK&X2!@Jp`&$^08mc9EH5x%| z<_UUVv}Ud_a`vWt=AlQ4__dSjxBW5RGpP7CZ+F9!Z|L5AGF3j>Wb`1%XZ%lKH{~X` zW5#0LQ#X^M8_i#WgF)fYRR#EIy1pSbPUufZ`K~y%I0d|;nvo|Zx`~fWLiN3Y<6@Dh z4@K{OuK!E6U(nP|z)|E2#Q>j#JMfdPSEF#x%#de;{$o?Nd#^Te2{4lh~#(sgfoFJLpK~SgmtHt*7|+MLiOpeG6x( z@m4fe5Z6+2`*^gC(XwpaCu@=7jau!Ui`}xl76jxJ&icBZ>!^QY7Tx};LH}Zq!w4E* zvE7MWzDtDNrGK6h;~{yFd##&l*8WA*%Ey>kel&lKyo(RJvM`-7Y2GBk8tY#)BBYi^O^8e!|R~7=jlW(abI2wOVoz!Ls*3yGzn#Z=mxidLjz+%S(^T3 zwVxG`O!5ovo34AEuOd7Mi6ecnUkwXyTsP7MxMyjs2anVr13=Ef5S54=09&K{D%kzE zFcO!P##*i+Q%D)iuP88d6+{-vMk~epW&Dl4#FnJ3^N2MiO9D9+X*45qhq^Xp#7$YL zD`s%}n-oqwG4XlNh1(^uw^)V4PEQuL@MqV48DB&vSw+x_yGmp{eJTyR+Ws(SpOWC= zyM6m{>u_SZFLZ8!50hh;6;K9YgW9*8X=_m=tBm|c`8S4I3WC+W|St) zAOU^3D&Y^*6k9|%fj(AH|KzMNbPSb=IR};94-;+#35KSZS`PEFEJ(UylwjAn9=37O zmILa|31t7>kwp+YFD@dw5Yy>aK$f?0jCKUsT40=`NG#5tn&DZ#p=%&F47&Jl(@+EY zIJ;eIFGfmMduw_etLR7i>IWm-dg$c3+S2s!H17>6^n4Z_Kc;I%*XooIv_48eP0&9; zF&*FJ#tfy{zk&CVV+^lypzv^_Z~?z4XYXieo~1nEtSP$*KzV0nJ@U|NXQ9s@dGzX= zWos8liD>*>*I~O;e5y1Dq`;(j|J-_$ulH|8q!X{$$lSEa%PpuVlZJPNb#xpAB3+t} zAXy6WZ;2o5z6ce7j_Nf?*Fq0St)?Jfm>k5(4qYl5UX}Brv=BuOpUY-PZ*HpY7lc8y-&*R&)A6)egEOQup zUn@w-Q|WUTH@wiVm;C-9oyLt);QI{em`tt{ec>VHQXlXE(4;x$Q+oiWeun2lTAK?F}HjHo-vFB+@m^ zy%@WO?)#LaT>7B1KV%*Pj}E9@JBOOTvxR^N5f`N=Ig=W!`IXseL9>hS`8|MKH77^5 zxM3ZX`PuVoz!DzEI^`y--aYf^E@%5cfvht-I;Z7l4W;mG?3Wa=ecraut_R7=a0qS} z7=D*7{P1f3lbC)IAXP1+X=4PLV3CxW2ZQ}~Z}QS@_=1w$-10UqnrhQ8Tc=%!KN;$+ zQEzj1o7K=MQa&K8A^ATZkp~4NhaAhhp7Wx5+hvKY-Ri zZu+arR;wtLK=Ct?|27{NACs`!Z2tn2e^O6Hlb%KYil%9#cVq#i_8+gu5Y;3YRm=(; z%mc9c6%Gts;73 z2=sqyulXZl2#Ot{8a7Ec;(Zcrm&=$OHt8X0tXN`&hTWwxjikoD&RlQGb79i*wzm;t z;8lcow{V`*kzsjfY=2e7`1YqLYiV}tDaiqUro2GUk4mTK2+wn+3Zi{p93=qQ`>t0>wMAl# z3tv+LaI7dekuc4KJkzE~X^7>VF&$u+Rff2a&xHsIxEp+;yW$IDu+gLtdrV^X?7J7YxBL6b#-PRCxJWZA1} z)v6>k5imu`JkhsiTQX$U;CMRsFe`qzbaXBKdceos)L*Fynfku+&a9+YKk$T<>awrl zjD?(E7X@!G#RmLPI`nz>>-wM0ssLEh*g?!s)`%o@A%#<`@l`;52m6zs`q=xr){O3` zo5CZ@C@WLn0=;{)GFgLd!#**I?MSUC>y9~QH{W%uQJ;d7{d2d#eadFj{%t=_J%XA= z0-rEtPd>skj zEe7eX0@A1v7x|mEkO#Cwv$cg6g;8TwfiCX#zAg_8UrUBs9&pT^Ya!gq@mC)(d%?Ig zui0OV{UP~~;zlDfhtFTs5=MFUK&eJ3)==+-u*(C{hCA-7>WEy2IFlEiM>Q_K3;yVu za%b8J9aD`h24jTI#VortQL$H!hd_ zV8fp#32FMAw*UEEVLFnNkuyLTFvrHf4D@|7_WdAHh0?ZB?*FBC5}*_FzsG-U1tj&$PA(fpY~Rx@JHzsa?W7*22Br)YLUD!nT(hG6Bi&Tk>5>BH-4EBlvvmY^3ztYs zNla|SRXJdH`%tMt6GFo664_rh^G_p$56(tA^s?p*7Oznga@YKr+3Ho@n6;ExWw@Va&xZG;4QR!U}+wR;Nr4pZ2A zeR?!gnEZ1&7X=`%mgoMm+qA3tim^`;{{`t!_@n4?SupRs<2u*yJ^M>Q{ z*Vo>T9^RbU%d#Iw>g&hc5=So#=^MN9#l^BlUW-)EANoD%2(pS6Yi6=WWZfn`TTlJJ zXFNNfPB|NX+Ijx-5s{GA_3Y1iiN#OrpXgKXWEovPz5Tt$iXWvbvix^Co+C%QMQ^$q z4|LiuQRCYzel%u@ef-D#gvQAR!Zb#o=H5h^HQ(tt&Hs(i@DSc_9hpOJX@}|F=qXT_e89Ofr=B{h>-(?6bHZL_E)SC|L*R@aV?npql%+pJ&(Y8 zrn-rX*T9jpQKr=VYi~R+pBuv(Mbcpu;C)O;b*qff^h@Fl;h|M9Z?Twp=_YPG;cJpf zRNn$ebGIHZtQ?U!<(VXE+j{i%Qg_{B;4y7zzd1%j&~qwyW@uGYFO1^~Q@+1tRVDei zNBC@qB8SrSaMoY=$zdR}x|AZxHr$^Y3EmsL>bSx@*$|uIN4v)`9%A)PA&G_6?ZA2o z<$~d84yN*Zk^snyS(o4wG*E(Rx6Uu<7EOa=?aFkGo&$mfGh6pELrR1fXxwA;w4o}; zz-oAuECF#s5^>4F5e8)Sxt}?VGlDVlWg>#X{UImm4>JvJ>C^oJfqvDPgHBnE1ReOu zh=v|6ep4}Jm_kwbZeZzps5tz)XN&rbge_ewT^aM#rlN*su}n`7lCRo0@GPTF%1o>+5pC%on#7X~@se@0DJ)UuoSC3&1jkgkJeh zb?_TI|F%7E`!{BLpyPmIoBKb}@ph<0Aobu&KuU&@5-BYJ=7*(@JQCC;pB)-i5xp`; zk@O8c^(n)L3a~a&fx>g2t-b zdK=;vzj4*GmKz4~-0js$E*biRd7Qtg{zF74odN0jq91gC-8psM=Qwvi(x&L<0)nmDtqZGUsvfkk9?QkqM zYkqj>7N{Nf7Xb_p<2`Qh1RFB!ag&Xsc%YQxjbb`!5`_DozzHQ3fY4bUASfmZ$Q2LW zk_)v2&^0f40C|}fmOI5x1sQ{EVk%r@Q36)B{IOu|5+y0gMF&go&xFW`kOy|6v@4mI z56QQG<0P9~z1;1uQ;y`BHRi7lJZ~TVTc!vg3|x|+_GF} zEMqHhE;L}*gEre{p={`Z6fhO>d8Q@(w1XU75(IFkvgG9>2Ly<+okvXzgNtljahfK2 zVD*Y88BBD#DskwCclFXJd$X3fBjsyrOI>l2C5a;D+!u{_&2|TsaXXtLS#f2H=+8Ex zOLw=el9sAw|| zB%f4$Im;3Sx{wlYE*g~!9yh%+ZB>0T67DS|O&0rpQ)^NSTABUp@m0D~w>9BXUvA+N zBHubwr03G#<$p8h?`OBy){0;HZ(ufBQ+}%qnK+h)PVjv=CW&6TN%K$YPWHmFc%!jQ zE<&Ss6p$PGs3B{bpO^*GKjyLx@&XVgn3S00h!yx`>)f9mN^hK?<|qBEvQoX zfgIQ8>9n=5EV_ynFT0O#qTi+7U3318S=?fdq}4fVPN5!HmT_s9e$CeK> z7v`6kT?(TR@IT``^Lnzt=Di$WqGk1P`O03e^jUZa#yVo4bV?T_>=4cT~naMs_@IO9nI_?eCI)4kwQt1 zwp|PeC^C`&tG9cBVd*sl0DZc27gJ$HK=;qD6eQtqIEsM^+5N`6TOF<1@-m83Ii1N6`KR`i0 zAZZ}m=f+U$J(@aI(=?aMU+-_s-h6HH?j+^q3#$1q;$1sUo;d2R24x3TlpP)-KGQze^_#sLXpS!TH)yA?y5d8r>cth}3E|IK zb;Ev!;?5Ji(gzQlutmaIt1-2Gr?R*jl{0v{h63Vj#H3nMQI-$c93x+8)=`Xr z_xpwLxs--H$AI5U6-VDX7`FSGb<%4yu3;%zzeGfUe`*&2C}rq=$TAPj7bGTgJOAZ7 z8aEn%OePJKPZj;zpa+LOZGI6UXtHS^j1;U7%5wg55Gjr2w@`?ZoF}BbaNq$qAcve; zBEee!7?HbhcsUeXgaQVNCv#5V^m*ntpP-kRaXCFx@1n8m-#hpz3YPDa`=Pazzb=la zyb8qZ@sQi*UmJzj`P)xyQyU3%mKibg4b<6nPKgXSG=@?3UY9pC_MMPQDa>?Jh_7s) zbEwX22(~DblG*Dg8epuyC}VFSZB`$mf^%BRo}v~SbGlA~9E_wxps(xt#DbO2&M*Uw52*i zTjCH+N0XoQtXRfU(T(0BGD&#ydni5NrF8)~7eS!k&kK=JsmEMqIWU^K^s>2T8(_)B z0Xp5-I7$cUWr@=$lAg>*3gEk8{hjUlXaa7#PvCq%k2spk?qPe0iRYmFh*-gUYi`W_5 z>mKfSuBgqUt1Fs%0%bqp*9>R4CmYxlRodIMcd8qXn&!q*k8jAx?O9&omKUj=Cgs?;s>y*Y^r0)B=(wr6z|_H;>gBsp!+T01%Mq1QlP32 zU)664%LfJ4`CmvbGTY!iUiMEG+yQp@I+Y zlWCCu;1$Fr&(WbU>R@Y6LtggP2hSp;g@Yuz1B+sZ&rSZ$==_17{Qcx5$G*hC+)Mz^ z&M6}nHry!IvJ=7Sv4d8Vyk37Y6pXxP;%(A|&Xsaxi)H=VKj=ykolckDRNHHkg>%t! zcE4@kS{MHe^hA_?#DA*3O^K_Ye*0&PF-Km>%yC?mPNvLCxytCH z#9V*Z>swB#Gq3H_I|$9ZXL%E%u5;o0BDp%qk*!s#gWLo#{tkRXKp}pp2>@iB^-9uQ z+#r#jE|Uu>HzKc)dj4y$%vHND(tza45(y*CO2NU92|x5t7)MbHtb%}y!gAoQofjho zu(JaFbHriMznO*9cPyubJjgw7ln6nN#+Xk`^Q=HLUz}IS z1=;{qaY>frm6{|@^0$u<)r6J6ZjK#b3;`quY9b)aPjbT|Ekp&9ykqX#fqe}Snfc%X zBa7k@EdomBGfH3vJ$yUC9j|OCQ(gwieX3~Tz9U?=js>?^i;nr6DwnU+HA}KKCEKJb zIW7r2Cq#hlV_WvvNpkUYh|I`VDDM2f)`!4zvc}lgvzc$_w>%gal!H;OeUG?>B{_MWfilg1) zo7Y*UTejk5USF6OpBZ8&YNKR5F2F=BlyBO!LG)_>qU)x=T~9Y`UUbQf@5;CwptFY% z?J_K;hQ}FlV-~P?u~2|%2SU>4Q#n5hVjxl$M02yBG4ku=rDo;&3TFxr*Aeq_qH3>r zzAbJci~q(d;8o`vjMn@bAHeFm|Kag%AB)a&H2n_m*1y8jX&jc5O+ii zsoR}$J+-$#*Mgm2YF0j^d{3xk;6bZrDla=W&0`r&T0nAP= z6<^679@%9l9{ao8k2Ig?=cI1n>`3kzN_7;Aow;n`!wGq0l?ybqM*bFPZ%^gEZ<;Vy z`~aGsbjM_fps-7e**v=ze({^!PK}=MoLivo8_DWXVwNIk@bQoj+l?zpYSnT=Hly=i zGF|9j9g_^QG-fBmwJuu256 za6oU(Z0ic$GU+CT^@aV)Y#h1%gYv_1Hx$Tpq5`Gk%-~dx4hpiVodi{BpkwRllRqkw z;KYdul;asW!rv>2dQ8aoMI+#}`9Q-f*uZPwd&;(_3rNvFR5<3OzwSq3IdcVX(?oZpf@J5YekQ3*?U}vv+na`2gqRbhY<(gu*NUcjAo>7_3mbx4P(N@VPKXua=jHU zR$!qXzsb;k&5+$ zPn=12YGI(=oPzKtCQ%ho8Yb0TzXp2R_+1#rBTNZk6#?lCIBq6%L?aI`>NEMxd!)e} z4gAYTed@v#z1LqwICA5X7R=;b)!w&Vqo%5BF)l*c-Ut}Fd@RFtiqu>Py5YxUbI+Mi zEkk&$^PkLlj`HdTekm>euCz_Iv6WHpqcnBZHqvf;BPsRCYHND8p2dq9`=|TAuhXhI zG|c-ld01jyrJq=cPXl(qiy4{EAk69-tW0)mvr#{%&?eY_^0RF3j=af;Vpj0lT?QbEi4qdq{otUT#SvLHOkJ?>7$!eFac zlAv$c2&XcL#jPnggNOtjtB)L`c@uu9-(TwY?v6NrGjj9Im(nXyDGXI@kvbV9SY@Y= z5xOwtW^@&=%=*NZ zdu!f~g4t1?`BpwA=K-n$JrC!_q#Zmae6qLH^gh*&b#5kAW4I+h>Z){zB3=$NU5BCr z!mNDU+}wnrO9Ys~2l}b{^o%?w#ni0gB(1lFQ2wbtxWEW$)@fhSKw=O&@VkAOnh~7% zLLY~sQaR%sev*;YeMm9|4eYyi+;wKge48ghQurqgd#M(OYF}9%-(nolZp}LPC&)C~ z?2^pb{=NIxLx+5@DWw(4`1cOOPjUlu_uo1{Gn^W_S!s81EmnXw9}l#UyBisVH{w0K zZ%)ro<7DRV^>0_o$b@Yoi&fh)kkHJ5d35wsWd85WBBWSa6v3Lc_&h3?WZ{GKv>^DN zDTx~a@*Qg{P$1zoxpw5xhyV@@pc1cUj}%5AI&hIir5?}o-$j33MnsZHewFvrw5kHe zg)R}Y^(X`=FlvCcu*X3Zx{#*>7xKL=k_@{4sPI7Xsj$!NBdUbZ4EPfxP6!tL??KP> zoCyRw8+e+4^&Yr~0lZn190k2ojpgTsI=Wyx6-pc03SEJI9x9%0e1ft)C1|yf)5qRd c7|Afh|0Wc4VP%49lNBb1akZAWhchVt4@H;FX#fBK literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/electricity.ogg b/mods/unified_inventory/sounds/electricity.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4cd7c846c346416e71bc87a5efb9a16082e7522a GIT binary patch literal 18175 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 z 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/owl.ogg b/mods/unified_inventory/sounds/owl.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f30d0b3ccb2646787afedcff0a64f79840e61695 GIT binary patch literal 50950 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/paperflip1.ogg b/mods/unified_inventory/sounds/paperflip1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..eaed13f8207dfab7eebd4aeae1e17c75691e9c0b GIT binary patch literal 19880 zcmafb1z1&2xA&n00qJg}OG4_9($YvuOLrbRRl1dKP)b_5LAs>7r9qlQ*ZDU3fA9O= z`#sOS`x(aBv(~Jc6~CFaH(Qh~EYv{opnop7j8?73CdN8CHyj0=n}f5l738r4PO{|j z9}wu*^S{jXaLSJ(|Lb}j2?yK}*3gh+3&Z~VWr*-s5*xtq*2>ZHg|f2+m93Sr<{$Y~ zvQ%6goE)4$p<+}su{3fuH?w!OurPCBdK3?b^mj0exP&Gg2nFcjRG{j9Kl(`n1i}J= z-qA8)#F@)7<;8zt^h}O_{n+Z}2uqF+>n1XZDK#d*9Ym&2I*f084(5lQ?7hhE+5Mu)v4e> z*)-t9b*8V+NxrUuzaj(%m%xKeA5B8_H1;`DY>sTcxpkRUTCHVqt=(WH>tH4N9~KZC z!18!yTczgzf5luo(d_>&uPpnRL9YN?_BxUEI?+n0()K#DBLA^)9|-X2D^=ERXKon? zcP~T;C^9aR{qYJzX9}4Aa>AqAL7-QhWZh0={eU%8*(RKMv>?JW5XBk56pt49->(mU z;ssEII>S8C`aR0aPey;t@*WUN^aVu%{qIZwL+FbmfX`|?6}fQk zEihJlGi^a$XrpBv3!DBX|VK(JvHdkw= zTj#4?`ww9L!e(X0^*@mF2$ARD==ImJi2p`THe>V}e>9D3EUk7dy=S6DSZZNP=5FCv z)c=7T%kYBa@Pg3r?a*k(utck{)S`y3wgY8*jsIu)FXYHL(*gxRj+8U)e<0@vCz%9* zrb<>t=wBU$#{h%6ND=<013;i3pU~z1>?3bf*``!^rc~K9)P?_d!~oPOZp8_1z_1A* z5HSdp*9}-53nM_q7(@ImI+Kj>6&0sx{3KOi9-c9dH&&`~B$&RT4vRSm<*S}eBo6zijsjO0Wi4-DmeLLKl)423R8oePCJ zK}EHT2)ON|3RD+oA`kqe`Z^B;dJjSde$c**e!_=)l@0<0e1e2Bp?o&R5

c#ZnCi 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

CN^EWnCs5QBDf4RM*je=b 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/teleport.ogg b/mods/unified_inventory/sounds/teleport.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ca32f74561724b0c01525d3cc29a551531073804 GIT binary patch literal 59041 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/trash.ogg b/mods/unified_inventory/sounds/trash.ogg new file mode 100644 index 0000000000000000000000000000000000000000..51e4f24ab26902c600866dbb51108c9c4d15b4b2 GIT binary patch literal 33615 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/sounds/trash_all.ogg b/mods/unified_inventory/sounds/trash_all.ogg new file mode 100644 index 0000000000000000000000000000000000000000..85c3f66cdf2fafcca72b69e9bb37ed3a884de052 GIT binary patch literal 32753 zcmcG#bzGFs*EfEFNK1F4)Dj{{NF&lqF5S`%($XlQG*Z$bCEcBp(gM=4G}7I$`z(IG zpZmUl&+~dc&tJcJ&CZ@{X0Dkz=e*CE*jZ&uOEmx)_)l29)=_>Sv+^EGBGDkZJ35zT-n)@ z&d%CI^KbKXa&+7;xL$A}A{~pGsg<#tg}H;9rKPzm=%IC_$N#(xl6a$u1fU~wxD@Dm z0)EA40015Uyk!94#97FJ^5U~uJd@&OAE=%ep-J(fJ!Ga4T)qD$bUbFn0DuAnuwX>x zY|7b;2w0LaM>%H+SS!6MphF8&T^7LTJZCa>$gjz_br=CLqCe4j3?L*UE=wOw1bIkI zKGTPgA(Bs2&Ohl3(ws3_zh`~Kb|={XHj2aEGPlmjo6^&A7Y**QBOt zSu3i6kIRU_R@#3OjK6%)A;uzsN^XWHf&S3^XHb5UGoq<~*rEdh5NrZ6Ux?%?i3TgF zhQ}C`PuNundB}1yW6z8uTE01UW2brL$KaVu)$@pF#U0F><6pZ z2dl9ERsoO@RUSf?bxQvK5iN8Q&Hvv~-0CMQAdZk_pA%J|6N40lq0gBe?XQG?0tlUo zL)d$qd1PF8`dow&QN~rWKVD(@Oab>_B|NAd0K~bddYq{G5z>HgOgQsuxrj`=C{80p z@gR}^d-(7dF9=5H(=8Hh0?=Q^82=SZ0HRs4Z1gwS|MY~Y@Hu;(F6CFs>97D!%0^Zp zQR>8xQ1w*i#=@l3zZ$d~Azwr25;Tz9la>4{#brbeJ0VhmSZyZ^koZz3Ct6e4|iJi0Jd_<7ix?apJPLeu8poBBP|`3jvz5P4AEKNf{hDxF!(YgF>TMiP?bJOC;{SjGQT+!4blKK0oDh@;0; zssxOPIL6JP_EJPcT|>*=UgxXZe0{LNj2m>?7djnjL>ltH1M9ym2S6B2&|jO3H;Lft zOAAzz!1zbO|5}a{QQsG;{x1yRDh9=I_TdvAq z2@Uf}ck|ggbG>?Box1-R%s*xWop$>lmh)gDPX(gZWMfhO+j6p4qE=r;J(G)N(1~U8 zOtcJ5DNN4TF8qf1zgdn|SV2-)!RN58&rvL)iPoVhMUCI=2FiAu{-5!`EJwzf0TB_F zBjwESKP;z%i|P%+nyT0pPygXjWDFrtS1Ho}sQ>`zh`|Q`^&_efj!6jbB!ojlUF836 zF^JMh9>obBgkTc@fE)nch@g`D;Nb+~fgMGxFuBl5&)>dA&0D7m>cM*xA%{!h`b$n; zz$!vuooaoV3q9HNqf;c8%sAd-iM}k={46wt+d~0V0U&^@m#dr1c|@*1OLBw@BR&47 z0CQg4xEzQhk?bXiF`vM6JuPQku0J=P3>=o8OJEvWig*b?LwvBZf5i|Zi4y^U2{r^1 z6dVs30d2-W2Dmn;Ao2nQX=)<^=+r@BT&U@Rc%VEgwGq%3RnXAujkLgDuUPVg&xq9Ba@N-fw9B_L+{FPs-YSNGbKV4_~8NbJH1L=zDkL{#twE z24Cvgsf4!U_1oUDTKknoUnA>VzAcZCAVG5krUM=U;sF@uS${#11^|IEE@2?_1QR?# zbdVb!q=+mqMu3^o6i1$gF%M7PhS(I3yN|(aL=JDtJHxYqSmly~deI5i7o|ikt+M8?kOLdzn zUL6uznEP87(G&y{!I(#)XIoiEV*BKwsnF6~B2$~fIug^;zn$kkbe@OkT&~naK^~1d zVd%9SW8Rd!9LQosZksOm_iLHLTmn5gP#t1ajCnH>Adb2j8%4zUbH-)a;-{)=j#gSlz9(phS~BDg=dKV9KPVHa=cAqLu^zRF)A7ytje*-K#)wNC^t? z4e@A-XM!ye7y*fRZG{a96F~n0i9o0r62`TaYZfKIOrIAau$2{0B!SR)q6B(gZoDpH zP5KxIv5Mrgl4r+33@GejK)?%Bt`M>}zqmjM_w$;GG49tZG>}_7w|rhVfvI$1x28!% zmP@>ZJb500sWn%Qx(RkA!s)mp2IT&ho`|A~0QiZ(UW6*5-?W$LTpNfPnmmZ;VVWi~ zMT{WLC5)^0Vb~7eLEKh^Y9XK)%%Np`eyb z2vP7`HzF_oVM3f%kq2}1YP%p*N#-&vkcWUD@0LCQ9DIBP%zTJ^no1afLi{ficnIP3 zlD)y?>P<2op+|r$g6l66h@s0P@(@G+n`}}2!&ns815W~d56M=V=|kc&f{?<)BVzIN ze=zY5;k(iQy!u;#AIGE=v3#&C<#krE{f8=icznoH{9EwLdf-pUHZk?4wdd03PO;Zfw%#S=(?5FmQZ%!sgh#FA&|H3*at3z08$ zgFtLJ@}_jdOXFf8V9*0a9i$GiDXpC`*`>>khak8jGi6~!FckhEUJwXDMQ}}NBm54c z0I@GYv{(9fhmshNXyt*bMQG5DtCzww@-gs^{}mw4F!QQQeq3k8>fK*F#31lN{})z& z5I6$$Jm}^DLQnI^9;8o)z}ADR5O_mSKOge`Qt0Xb=Amc*R~`a>|I|ZN`L`Z@(69f> zBM|)O-G`?BrBvkqrSK$J{!>8kFBOj`fsy@BWr#dWHsTRcSq0&FgCGbPe|YfJ_^z?4 z=J|_7B-} zWMpRy^2eybrkw)YHHeL)gjtBJBs*#-#-z9^7d62C{Kfhs@sM8Wxt_|SY$~_$(Ma&E5}F#Pq`%^Ce9xT{wYSJC@2UEL4=3hHVVprw$BK6`4Aqq z&wqE}!+Di_a*AMOMX($*s{&Yo1uQ4aqM$6hxy{1PDyOb=#0Gi}Vr63m%lu(s0m;jP zK_C`(d1>$gy8^e%u2$uW66V-y^!91(|n^t%{{ig z_f>3B#O}Cd%omVaERX4^DY$@7-!eJ&Rw~1M8jMv%$ZYD{C^qHwg3{5# zBq$Y0l8L$!47n0>u4>P`u(@Do-A}>TuFjJdx_-;A1%rtBCx_sW5Y+VBpn6^w#{iBz2||CtbV!@FIHe183Bgu{6958b|o zk=b!*rp3jAfM~maosFwcqtSuE;K--F!tKu04e3Gct%d7!wZ@}&JJSnGR>`!dleZ}Y zuE;~w947VivP>Mk!;dtjh)S2=cVOfRF*cu!8Yw&Z)^*d{U-`Q)p?|A@ckEWlZZ5nX z)p{vbK8{9g^YlZ`dRC@T=@;{p_P#;>f&@~ub;j`6DZ$#WHP&fJ7eJf7=~tls2|Aj zOjIlHTYD(r1F=TS+UUy*@NdBpr^hi$r=^%;=2;V?^=f~@cnl6XajhAlR2sefK`tqZ z_4x<;REsfA>1tb*7nLA8+{+nD3%L66^-EDs+ufeniu!S~M>%6XTrL`p)qdHG#Ua(4 z0iT<=SQ=k*iEUoZKGG9@^UZMrkI=`^cLs>@z$Sk$qARd>$F<|wL+grL^5b`qO(R1jr znfNnvy|u1Br(2U_)Fng#D3FA|n$4FC;9DY$i4`=t(0)UhwE1m018+3EoHR!?7NpXq99P2>095&zTfErO*0j z36w^miek997bPrvPXzj*rQuaK$zN*rM$!Z8ZoO@3T9@<}8sX`|YW?#ZH~Wl$q~QHn z0JmS)FV0a($OI#w&AzK)-ci}>WZ?wEPaC5a7l#w2mF>;Wy<&XS_37ys3Ss>4q08dZ zJGF|OI?cw5o2}E(g4EXvl6>H7d|ApCr*@Q3$*wnwo0WIkm9PKk<#OOc4_?@xw;E4KOUPH-rE+)^{Y2^KQ>#`Xep-0BTjt`$!mZ8W#+^l3!q+yP z3{KgwPkE2(U8;fy`7Mh_U@2eqmq>ROIis{?5Fqqb>5@AQ@3@}Vq^53d8{7T#V<{U0 zS8YrBPP-3kd(?8j?o@kiq3PrP+Dmh;&Dq6;!t!MN%XAX-;D^+R{c7V^)(^puF$~bF zoAX`LAPH+^hO=P7?Jd)0Mce8WhXVYeX|fS5MgBAIcIEP2!~3-&J>~WT`~7<>>!peJ zTdG#wrKHJa6RVe*3H~F0)`YYs#qczdy|$^$@E4DeI=q*JLw3z)W=CXR%s5N1dE@5E zLeyiC&AWbR1YR(+ig6Fs8-?7JpTOF+z#f^q^%oR{OtId z5D!VWxHnsVc$VbK2B;a9{pkM1JK2VlQMyK#TceQAeSgh@P6~N}+u{^i?%ED2Ut{|8 zzAme-Wm;f&@Ow+CG|mb7CMl7Lz4`&keVYpT zc?VEoB;*i@e7GNs7_USu?g zyew8MYU5fNY}+Lm zYx$<&5oDgBsoTd>Z0GH=`Mys-&Ca}i3#%?kcY&3pdnem>UZ5$QXn^ju@6*rM)Cu0X z^C|iJA48TxJ2sO>r`P1=mMOicUqdUP6C>K9Ifr9O6fSRx4ssWzG*ERokYB3^Zj`(Y zNh~W0E_Hu4T6k)9G9KKxTlE|1g1|@Vd;s-r=a;pxX9S6=`^OWd0XD+UZ_QRMpFGD* z&Nte@uF}o6O9#$W%LC{DLOwm!QE_@ENnAzNCxeCBg}?UEr1T0m+^eT*EwzQSq{5tT z9|5l1=fA`?O+uAc?8W%#Bqo$cYg?5)S+ZZe|MT980!IOs_9kLs@lr5LZQU-d*qkJc}C*xgps~=u=rTCY>e1C9us~B1` zU4NR{T-^43?&b2@OQqDqLpiRQ=R=F_tvidDGXCCaq*e5sY|%#EA4S`DvM}^Du~hTb zrC@XpV%DU#hS0e``k|DmIIljc@wL3tao|cF-k8OV_P-yX$dC5BsfS(FU*L=_Ojsq* zdXALVaKY<{Lyy3@({c01L_P4QRSiQxfZ-96_~psg36CYwKHFy+EhIUx*W+Q0*A&km zHIczF2CL0)K>ZYf(X?ME3qP+Fa zL9nk01E&b;a3%Fp0xV3as)f9BeV4rS@@4H=GiJWxOS^V!=b{R0cvtltOrd_4T{8XS zB=RONuKJr^#sKyakP5{; zhM|BeB3Q>W)=jo*rhxl|L^-1OU36s$1={H?@%K(@k{cisYJfuTy4sz^z;l9W{noW- znXH17T-?M}e`IL+yS5z>HOq$$_C%kW+QLm4AHOx8GkI*9RW_)IZ4#^P>G=`>5cM7evBRrOd4T^0BZ+}#gYk;LQSxte~Hr5mHt(oP+bDkNEJ zbR-@BG45A;`unriIM>qe$H2nIfU5!pd!$l1EtEthA`$I8L0gAwEpFk+KIf9rR+{iL zx69L#{QOEl_=X4nJ3VVMMfdHF9Gz3nROUc}d;b?qT8_9xUC*B9=g-_j8AUH{EP{Zu zZDFr{u9P?8S@ZSl$e}T@g=mwS86x;^kPSMxI9ptV zTgt3yaS*g|6fT$|3rmEvCdunm+?A*5Vogp56o_9DP|=x{Rr9896;wgDaQ#{f_}k&Q znYd|}%0iY1^78QVeL~ZwE$@|*NQ-iW;_uxSG zSypWZ5wWlwvD_R%LrUG(vw`tF4U?7I7eeZOHcGlGYRPxELnLA_bM5S47R*iF7YqGLf49;I>d+BU4(8 zXyL}~h;~X8uhQhsy4b=$7-7PkHD7@@-CZ#b>RwQjC*8J_?lggYpS?!rF$_-#THh%; z*Bm1}+a6E@;v7_BX=$;Pz3u`!$+9?<%^Z%<~5gM~9N_siG#m1r=$YcqR; z7a^mqhpP*%9``+vg`KVY*qRn60(~{)8KepKXPU6&}IZ3A1&g}JD52v=< z1MkeONeKsq@*=FNaf0g`9=^+#<9A-?Ej7Px-Z^|keRQ@jpIj*r8YH=>#vBtdvX46U z`Dw6(7KiFl@oQV~%k{A?fxFv4Nlxmt4Z|N9D<~Ae{rArRll0aHwnw|ps?Q;(l@0O^ z;|eL^&r326eXTgyQEuczd0cbUHOVsBv&ioFmXvfvpupR>pP;35+xM_OhmC%1TU|PWThMgBkqm z=IT9eEB&mcJfWr5EP%ddD}=H$(cuX8+77dME-CEf3XkU93j7PK?40e>;^a~lhjY9C zeap@DlCGB?>5dd_bhz&%X*)iu%V~K#u3r@4>}53y1M9sK7vaKkyR#s6(BwUmw;tZ& z^FSO}xsye{@y=z(?R<^^3$@ri7w;kaM0AkIrAKG;dZf@5i}UE{DCc6yl2O$$A7#JD%oo_3o;ZB8q<>n^rT4hQQ9+<0kJarpchKzHr`X@OMHbR(}~6=%gpA_*L2yd0e`ewg)}%uK}WXfxtk(&(!qX?kJy4SBxce9GU7 z)xh~mEbM8l%Nt9lr&39NeqUR)0%nFvl=CF`S1KSgi)E^FtkEr;aNe{IDH- zGp6LxOq?6Anq3v(S0=(8If*#uuL5VE6W3rH5W`gyARR9BGzYS@*p5$T@1V2i3p=u( zh}DPd0?dXyOt-I@8>bF`oRh}m`Q=I5A{QmJ*ztmAkAb0m_blC)HtIegzr(JN7;ntm zeW7@)jV&Eh1Iv77ADZ>Mo5*+6pgN{9@0WkoqQu)HE03n$`qL0Vd#1EiuLEi118W@BLm zgXP#+!MVo+7$F9akamc~O@4L(GIN|1!3s~w&DKlC{9Y8Ko{3D{cGL>`clGTc|GxJT z?<(s0@qF~|a1$pLf0)9H^TcB@L!%9T)7wvd_sfR%wYk=E*bC(05teVG zNN4!GTMsY!%WW~Gv>Qg2uZvD@^t^m#+B_zo(jqp&r)O%;yVYV}YCV`G8kSZo_X{?D zkjs?#;}%5kkkYFMV3xVOQ6iEe`L~s&>CaKhx{OIz?wntWRumS>?wYTY5rgGxfabz>smd$Lp(aI5oz; zt9K+`Gp+X0_K-G_E^j=WoZ%z4cdJczo`sc=@uhegPuCLot6CD$v<#{xYFO8w!NRz8 z(gP6^f+3FqaVp@B_*|R~=M?QwLmJhk{^GjTP2>2Rc_ya+8{Rm*%$YlOjII67?%7t$ zuLa>Guv$`vTer1gqr*=U+}=@}OiCw*p2?x%H#dvS)dvgcC>QSH{Yrx9y3Zr{pAozx zEB#8I2Zuz@V~iWT;mgc#VncE_(XuhPVm*?98S ziSXJ2;>R9VscGgi*wxI$A;2<1&aFIeK!o)BG2)Cz-v^KGWrtsx{h&UR+8M0yaQqz# zhNkh5zuW9gdS_$hr}R8xwXScCKWIKxpN75P(b78q%D;Ml^~{9|!eyfGa5>%i-K&TX z_0b*@7GC7rK^aw;;LcuN(^g5{%Eiy7irFQ!kid8F-wRqY@aG3s{oP{aq42?Cs7S^o znTPAo7J-)+6~Q(R+t+ukQK$ZfqtgSuf&TmoK}f<(su*cRq-HQn)~bWalj&G8?=(Ss zZG}>vT@OQ6ojVSa5bz;vPp@)y!>X#})?L?%9Cm%l%Xq0}8Q8TZ=ASP{J-u`@>WC%* zP~FH^{Eks1CU#=m1mq!?rRM`6woP-ZI`QM!XDQdjeetPULZX{G$SW`;o{Ir8)hZiS zgIMUP(pz$S^UT7cb8Ru+dN}rgaow-}Vq#=5Qa9U;9IAT`BA7gW*DvElv%$Xf_moNR ztj0Xm!v91> zSo+6ancQ$<)i9J8^YXxZ=@NB9@+NHHD+#8$4t1yW)P+DAhq5{&w?Y*2T;@1{H{>MpngZ18Xo?AD! z!;7<1#Tc_z8lET^PXHp#L7m&)o*3sS==XY;CnJ^9w^_`u-@l@=w#~P2AW*9sHBA&W zOw7D!ag1vhWrf2JybEjW^`!ke^=9-gXT%z9{6@o}3GBGQ5Pf*$qQkqqH_A_h;89Vp zUwBJcGKn!s)v%J8w(Gzmuh?yCr|o$8hshH2*5IS9Vqal64vXy$O_a*#eK{B$DUO&E z{LPH@QtDtPSHS1k5N*#L!ikxSvNnYp6CwSDmxDvnrIpzG6L+BfqK|^e^QfR?I$k8S znqxyGh-$6=^2}FqyyL9T*Ev&Z-tHBiZ4G8=_4?^W*?G%3*1HwWK=-k`8clEP`jY{( zxm6uHa@IAj34y8n8Akr73hsfD1taA*C<5G^L>J5e&qWvu9b-8Q6X|B}6%xan+OL-6 z1{NmiT5`V~4;A9J?O#dT66?(K^S)w4rc%OE8AUZv3;yv9+HSZ3w-(>NZ|amr$Bme$ zjIOzyS~RWP*xrXNj(%FL2ltKM?saCi7i;oRa76N3rgf_tb5JWPLnZCayf0lN$z=f^ zC2-!Cx0_ObbT%ipsZ8qR#EQOqTAc?d&AX(GAGBxejzUux(+sT~5{=s0T}InQwa!Gw z7O(y4525gOSXBW{{q1m(kOAy2pEwB+e)`x>l2pm3@p{_FDp#>ApO7Wl%k;fA@m^UD zEZ43PeQO~3Voa;uoGLN+>T!dYOF>@-y7faA0BSlNq`O5G&(j6N_q zZM0~<93_^v?9RVxncr4do4Ry}8}RzLvnx7?Elkm>Kk;Um@{Pk?>h}0xPg%()Q4nL| zacH(nS1{~u^3c~EQo!$%p`+jEv3I_{IiT5i%twE}Rkzsx*y++_qqF<$=(<1ge9lHe z8UqD$@EIx!^9zO!BJtJyM*%CZjZmsF3uPU7PEUAS zru|_KQ@^uPN!hm4`Cn?NAoqQy`@Ey6#{p=7oi0`tQvZ3lF^tw3cjso(yXM3`^3`ftou^+&6UU5&BEYar_-^WSo)A#_|2_16&PB5AyIF2mLKd+&dVSH zCd6BgraSB-ckgN_XWAx@7*zYy_rdcIiJ8>T!l+|nwnP0l`E2z*0`5)+#u|No*M~3* zxBQp=Fkg6od?IvhF!cry=HtalRE2fG^`v~wg3ej0lhn-OE;TLQl2Om(}Dqp`4{Yx~1pEdBez7rUpzNgfd+qW2ly ze~N6-%%njUz;h$%tNl}S4kNa6X$l$)@vHRovgVs{zt$peLHH{}gLLOz?K${&IKS1V$T9b4xmkRC-ye@J+z=))xh^QN~`lRsN2NczK)J#oW)U|I3@ zkw&@Q5&DM(3Ae0|GC+yp$!MXBYm!EGwxvV?Vh2@JdCnJm8T>^^R56* zq3Kp^VkiFK*lOo|*8f&$I&(ksadK5-aAuvvDBFS3{-U>s_lqWPc$`>er?9J0DeIrh z+5;&-UGx6)6S;xt;by2?(&3xly+hsVDi*GniZ2u*+ijmp8?A&^PVa;FAManmVe6OB z_H@hB;B*?voE+a{s+8*3koi5ay572|NnRvCA9DVM89=_L!WAIuW8@rYcAefK_b{4Cq9nZC$&|r`G$D7g3yIcB%MLYj0`)IR9S#z z-!a@`=&2^Ds#^M{0TG9Vpm+^M?T@{m=N2hf*S95Toc`2bp*fwbqBc}Ge0RH^n=?kT zN;0#}R)$I+V`&rUz96$}iu6{~Q@6%cW&SLb#-6*IG@I-rWHj_8sCt@VGn%^9y~TLU|aqoH(1rx;VXL@Wtxuh5z-t3;#Y6q&jyvW#w{?TsF`>- zZ`xEAR7y#?s5c*2?w4$q_gXaA{q@#q4xnl<3m22~-8e2w8zVQkXZXhRp21-5$eG65 ziVaeu+b5rp0V+{n`B{N3k;=hlp;?75g9VT?<-JRB(}pD@tw}FGFYJA(X-ALw1A)c# za!!K`|8u{U8$LQ)MB`shkij|Bc%W7uEJnZm6QkK6OyPY6WH>Ww%qV(z* zY^Lof;;Ho6g%3%eFT8|0R)N6lRph`45cYbwJ8?{tV6mW2!(ev9r&e@zGoDo{?_PqK zQ$h4T!p@0?eC18MMkAkj_kyDZm%rk%$s*dy(Wjs5L$}E#UmLtvjtfLQ75AE5SdA9% zFI#LZ3FNe2v8#jq=ZAxLoz8jsc@n<>uJR(|;!}5lJ8O<3=M_|Q4b6L049i?4u_2ZD z@H!V2*yd0y-0;*nE&k)$ur?jJ6UCOA(?NK2!H`@6_mtp}Qt>uF z2JyPAnRFZ=3=@v$k#)xFAu>MvPADsle;9@;FVA;Rl04B^YdzSa43>kLeW>}8gk$#H zdT=$&@cr)cmfCag7j~t4icjSa-v#`7Jsu!z=L${p-Z_d9o4xe}Z|<-8#(>KF=df?F_v6w^LK?cWrtdyT^mgs7T8J!!U>G^ofq9sXhiK&n<=X?uHm&N zeVC1YE8kHF0AYE2yZ2SU@9_CXfaV{LyB5h1jMmM(izCI4p_wl3N3gwt0t^@5Vsks2 zH}SU`dyO1-ZMA>0YjLkn(ekC7Uug(Au7C90*ko<$k*Q|{*jZc0alrERVcXCIJwk!Y z#N?FObmRiA&6kV%abHEj+70j{r(9FcdQ0Vr+C=~PHU1~jw8xoS@}q|q?mG*OZTDwS zT{P9-xyE83Oqm2^cPhOeN_pD)oF6Y?iKuiqF{stPGyK#^_}1zBHWcps3U;v5dNd`t zFZ^6!U}+em)^@AZvfOKTeWQ0LG4J@M?G;60ddbQ1W1z}vNc@9?_8$ONA4OXgFI0|g zfc&SFS>$W1dM?X{tYa&oqni3_Hy797<(=Pfz3s?cb8P`y9jLo?wV9fsyA9glzOeq| zrOiv3;CrLYaP#)S3LKlnq3t~FX$1U#j}dF-MUE4_3LZrCuyxnF1p*N zKazNL6w#y`i8&5t-hFQ4^LC|%Y(T2RxmMOtQ>-%>DYFVjH8oOc(OI@IPwHe@_2Y2r z({3fjsDD%>sRbDq^gp&a*YEpfkZkD@CoQ-7!-e>}cEfNgHkvDOtMPc*o@&g#7K^c= zl4bsHwO4cb9_3Ly(4InOAzg2PiZz@#<^|^(eBaxvbm34jSbS?1JrGa zZpr5-*ljYnIlYAplSw}v=uG1X`mROwlFGsEPN=N`JEhj3+5{@j%@o>b!KlqA6c+aV zdry^69pXlQ+bf(ey^q|)Wj6gCpRkwwic0T~pobkyXuiMmV0>83+y0$z5{ySlu!QzY zmOdYdeIFqG25S$Q6R!U5JHE%$y)U!^w1$tWTx`lghg+wsKk?rVWZ1}TC=cErz2Cmy z_~{!t_tD1#X0aWA_}!>sHP^NF@#{b&l&AMeGvG19=9rsI!7t9i%M{-jqYZzxISQLa zFngXV!QOWFIqdSfPowRMj6c#@5NJl`KB1*Oq-SQn_5Xf%O5M@!h`52J|2&)=PcYq& zs$S@Wgp0JjW9B$(DS`8&%Ad;Up^aJtT@Y8Wv2(Jys3akzkSIF=4Tw(ri&^3v*ms&gHV|W9}3h<-YGK zn)`V7QDOuxSI@r(NHX1{r^JIZ-d?x_#JVoHjh>5K*>}hp1k%JwwxpXq56oLJ^$*iV za}~YEMz`_D^WZd6vMDa9cnS+0UvJ+e3wu>K6mq#D=Dg()>A*h_HR?&^;OKh_@i^V~ z+>RdllUbeP+`8nsm>f3%ccYml1Senv`i59}B5~Hl&gF_V1*5gqCBON}AZy0g5%q>J z;YQ26C^6N!qq#3omUDf#Q^cX_^lrM!`^j>$2EutPTxS}`L$-4qO_yn;Ejc>b`sTe;dCz<&@?L|N;%jWm z-Eus5_bFSNuBhIA2Q+(D^h6)e0ry8?Ew# z)0#@YMxV|7Jx`PCq07lP_O=^!d-}JXn~en7X7)_NJC3=fY##iVHOfzJv5d@_kQAiB zxzrt+2TMz%FI7G(2H5Ry!ZaMB*f2!bky^}LBeTZZf5(1y1-VzHQSwqBbUqRHWlcX zHEZN*U&9v@suz0eZ)C#7>bw*4P3XiH&O8T3lax^TkDwz9=#<6w(X$uq-7hwIbh6YUk!T3@alWFH9V z5%w@G>-Vl=n$$sVevQmgzwD^M3rDI3S}~XWuY(t@f-^f`ukz14c;>4oigDHRWC|8e zmFoEliuBl+WF)I_YY%rpZ-HES{9-y>@QZeG=R+;hR9hmMR`hC(N0x1wE5apz+UlYF z8;hfXj$8LKnV*IX(P%~k{hC*5)cE)o$OT9>_?>f_H&&a3i65nDT7S>R;!@FRAH9hw zEWI=~R7MRRO294Bt@fz(uW>pZC~iBif$W|zJGpv!WuE4}uN_~LaP+fXhO>(L;GH)tg>xSLiJ4*Rcl?gWo3}P?Ras?+^%SDt?8IF= zz*j?@PwI#3sV(6u1@#L#zG4FLFl<9%wD!~6#r=adJ`&W8g2RLCDI3>fC)h374#hB1 zkdpPcsdX{_Lw2HLRV$?J>7gjSwQ^DW_StCI`qr=3q~*m`gJj~b)81j@nQcot z^MZm64XsP>(+DR$rJ99orh07v1#ataF}&WvT=yl@iUeylG?)zWtB{6fHecS|_aQwV z?&&*$iwDI<-y(L^wOb|Qe6AZaN^0GAGFJ9agnD}Tue5%Xj%W7+448viQzc;o>789< zqgd=Y9g7AudEY#&cgxMx`Q^8DtJQK;4VowyG#C{q!e7khM`9ONIHF_)##lguCM--e zy)<2=kP=3sHICNnp}lj$pavym9;QL^JS0G9X;r&|td&&n>%==He}k6ImIh`c3To>v z?(0Za=UG)O9(gS6N(~#Mq)}ju?`}-)Co5)1P*rlzRr(wFB6PIANn^Fa?|m&BTbbeV zSbOi{@I1d!YiU0Xc7ca3Y0BE0^j9#OKNO>?=BR+As4r3A?>_Poh2l}m=g~^$QSYmi zk9)r2DN9;sE|lK6*ey7U@NQj8FI@ZAyxaPgNk-*bM_V6-Qjp*{dLr*tWn8*?8^-2V z2?PluO~rKINqryk7Y<_5Rn=yYB2s1xIs81du>tmPa)uWQ&2K>caiZLuH!1_m%c9Ht zl@zVy5W9Y+=)ft@tue}3WiE-=yr_Uaw`%`hjP{HBJpJ$;nf`I|Tn(*Ul8_^t=_Fr? zn~~C$=257BTDSMP@-vSt^NE&UO?NXsTl&@aVN(`ppUip^ec-~-c;F>AtM3#IeJ@Uz z*2~dG3$}90wZq`4vh5oFV@k^{Tgt%U@e8BNEs6IIu=(MW%%xQ)`o%<@ghkF{DyqrD z9~VWlli_e`hp&WW@c`sA6~l|R71RLute&}V5`Q>*BH$|K)$m+yPJspKr1l2%y*q6( z*QmWesj(_!3kEeP@|>3}}1C(xgemB{2|{(`eM`^KnyaQmC6UJJ_-;1U*Ew{tDF= zLj6IaCEm}D=Z+(f;&vCWBrTkrLW9DUsn9xl$JGnv@t0XkhXp=6)3n--d-1tSIhbb^ zT3;=S!no|KP9IDAW9Rv{)E}hk;~vn@La7Pm=Y9?!F+r*~-1sSd1ZXgA|HT&o4<lx=CT>4VnTCI2(z7n=WD^Mm#7#q)NoV?vB}N%Mz%jCQ@c!3Tw@~7c&}6~JC#*q+SrDKv-};&U?VkUsH+;Y} z%NBlDAd2_sOQ3huGG9xY*My=EWPN^9mcM7-=i>TBqO%{dUz;Uo96@e{?pc+rW|^E?0K3 zWfq>jKlPL{+4A#A7RLJb;ahxW>vnF{oQk0wr8FCg#EDwE%C4#ke7@bE7wKO3hti$h zUS0i}#EihXXyg4jmvK|?afrr!*gRZ*v)Q$Je0x9LPSd-(@FnfG7pgV(XGV;oxxAPH z_pmHaB2+^Au_WKUKAQ=D*bo06?Y%0#3kyCZLMKa-PTS(EhW1UdlBR3#d?RY}^5-6W z?aI$dzn0Ippok>fJs+)2G1@9Wgw8EpRT zYFG%TZOHAQ9~PM;l^R3yCHy9V%pe$^C;cJ$#oc$r+Wv{g=EgKz30@zqeGNUA;2351 zVLcqvAB+R5d7>NT;dnqCIlWlUZ@zkw>skRlH5_v|E}ZWh7HB`hSNVn%BG{*1O8GFJmV#M1U+4&L%U; z$?DC%x>LbV4m5qI8d0d!K&Lnoso!+r+B^Eq#V^2=P5ek)xif(wyUQf&m@~z*Ae8ioOt* z0)s;}dJNjkK}_59ilx`6bgKDXE0e>{&f`YWx|Qn(;iVYDor+z7G`K#=Hd&LjeQ0q; zO;rkVGN);iDM2bdqQd9S3-u8%PxA{SmOlrr4Z1R7FkAL+4cD{a_P?7KJI{@|yHAb(?$O~ACB?gRKUQ}Cy1Kfor@7!pmM0c5N^AFN0 zf7LnOGFiFs#Tzu~9!Xsv_YKFrbFky*E8(0%{a8R~i)VZBEn1yD0)&aFT|iyp4UNTR zl|cD3me8XKzJX*-#Xsn}GoJUrs+eUX>%gWJrz;1aYmjK$V*6 zaQ1z02MXJ=EhJ+Mo{G-#0}2$aD)VXV)baZSDiIFM3Y}jxs~F0tCuXf^85--^QNaT` zcU8; zx14opm`rk`MXOJF_V6(Z2iE?Jrc5WT=5!yg!D6M>rKT%2!MaMPVo>_hxu~5lXffl? zfK_6qXlJ#%cR1$|PP`Bd=u3+%d=9?qi(Z54)l6~o`}lfRVeR34E<3*!quSMMP4GUu z`VNg)N~Es)dOpg?295Ny&#c%^E$f$sc%G_SS!vp9VXui%&6j+E zOb_j?_RA{~C=r-sUe+(Pf?y4=67PA>H%Ho2WagSUuUp&qHt+4stKp~HN1vhQ>jg4f zc{a>RBBGKct?>pf?_y?@DhWdX0!7O^>sB3Gr#Gq^e9X;svoQVk7nBvs6R!!8P%zzU zp1l4X{Z{NcueO3o*A`VE?4aX4z5?|V6sF=!cO&om0|OROkNdLEVQ9B9_62CFgu5gA zpEiaf+vn0)uD9*t^f@#;`DBn7l)@`2&2Ro(6-M4`Ol41HOnlyE-)5;y7Iv11>OEXf>_ zN@S5qGAn4mVTmPVh@V0+@~N-9Ib`S0-tPs!=BoWEq4MlS4$)hY>td2=N0?omAZ)|U z&aqWcEbOvnLYS&f7=nV2EXmhOr9OBkPz8sJHfk2x*Yl=i;cAP`#fC*B>NU;h^ffy5 z%dEiUhQY9lp1_HoQ}>aGdTeDw++O(Ag%INW+m*>$UBWKtS@$M?T(In} zeZ^PDvfV(&lze;}wc8B2jYIA&(f<|SIv~X_Oth}{JhN}{apTnS)vfvH{3m}i)pBL> zgEYM?JUO+yHK|81LsSn`Dp5sR^zlUS|GJ7n+nFm%2Kb~H3>1WNIyug&1h%W9GoxQ} z+XwQ?tMBjDj!uvH8=F;2N&B<=-Cxt+O~>*6SAR8{22?ifE`s?r4DLo$6GW|81+6@r>Mx5 z_Uxm3$BpgJh%ag!KM#2AE?%|)1R8f@Tg&<=IFI9J3nUH{;Vss&U<#>8&OZ&lg!eXy zxA=Kf9)`=dWCDV2(c>)M+6Pu(JWz2|^Fe)H1e-g~e2 z?R&lYeVJplaD090cDgP~7e&w0B_|ER9Bz7e{|!Xa0qhkEX#1UY%n$5uT_MRF|EcfQ zA;OEsusaYwKJ~0*y*s@1WAFc&($_bRQyxxlJ+{`rzGZGbXsSGK>+s&ieDnFxvDN!` zCFTYIOfpdpjzRud*Z*BIwN$GqYELgyi-!@yT+r~=do#giBo4iAz0H0l^Yk+17?j>? zJtLDQ7A3nh_s8ksj8pmi_~we+i!sVcU;yOpcIl+D$fooKxO7ww0i?tlH0xp^D)oL& zF%Vpkz2pAB_M#l-3&yXQuA&m;>B{+(0Z_xxjZq0mhB8SAdtr9UrF`n$Sk(sal)&+> zYSpQgFKq?@-0gPIKt-$MAl=vV0x?D>J+}$I5?M`?O5}R%6p{KxbOb-zFgMFF7Yl7cL{}1Q??l{T6{I1>o{uUdTr~hb@_mp@Zd47JLUD)XN z-rf7LRFv1J%MZHfH5CBFDNBr}(NKHAd>-JG;^Q5&q~?LP(oUg&H#_C$_k5nbZ{2!V zYqVc}*G67-ncq&Qr{5=gS$r(hy6Sq>$JiIyIoEuy2PW@KlwMG0f02~f6t&rqxN*a;>=gLyso5Rf`gr~phy*E0yz4ooF7GLP0E`L_O z=F0Cl&reEQR*LT4j?R{u>A&6^!~}F=(da=tc4Dsa>xfKx@8DFluwLovbkH_#)lLW= zn6vXo9-Zr@-_7@zE9Kj_oeoZ4-rZYRxfSba$2h-W`tCtdcll>1^}7H7BqnvyMrU^m zj`+%BNa{7sdl|`!JRu0Td=Rtf5kTqU6s2yFuHu9}q&9fnSylM%Q-Pgrr&a``FjZ4_;vcAk=4zfE84mCkjKp3`(H z6w9Qxz2&us&&7wymi!6zSQ~>(FDbe|`%%w>YiotE8SQO6#s zGW}C=;i&@U&(zy@&~qJmlGwjueedPn)tTwzy({kCpa17AjfU6hzw`Hn?c&3C>F)jc zKV!GwiN{O0T=Arl*^v$eDoc&cN^7_Y-p>uv&XK;wE<2kGXpFo*JZ5Fi*Y6*^dH*rd zeYh{PxUb{C=d?pIbY6FhH}&yo_&r>f{l0eRU-GRIQW;W_nE(_9cQFa4DU-D^%>X8h zPHIy7aW2wVa72`nA2&{};+gX|Tt&4q1FR{pBAyRAO%T0*IdYfi?;pL8f)fldNgmuc zN2afz&m4*`f8YH7dtZL>{l670jqU9}|NG~K1xNnbE9$9FM_PTns!iyneh_E^BtAW; zr&hkK2j|NEw}_ck>uvK=`-E>bfMJXKu0O(EF>~H7JypBkm0Q00wRG#$E1^sNo?riD zm-ZC#;=HZj#QLVpAC9fgzbq_t1}q+FZfL=ngA;N;?#;uJb3;+?)dsi>lg_9}@%)!w z%!k`$a?XF<`oH~u7kTz#m&>n*lh<+=+hx0r8@!eHBj@j>&W}@Jem#2u9ULwZAy^yi zFY>Q?mi5Tm_Jh(U>3jw9F<`T%KM)s@kN^K4q?5a&pL?S{)%mT-cJWvJ?R(+$dTMfi zYRF#U=*^epq1jb06*~w#PK%gP&e;gdPZWnx$98Z2+j4YqQ6@szKJHEvzryUjTq`-e zKG*!)F?X&jy(2e>*2nUjb}i7){_p9{%ccI_GA=mQqYSIuF?UN_yOyKG?XaId(_-dG z^b>Yuu-*`^i}c;QJAX@##@;;~=EB#j^AoMF>o>yd@Agfp{JChEzrA^{=y~4p^Qw4} zo%j5u{R%N0A~i-9<>tWjyDjFHB1epu`Dla!hWcP)+$Xr@zp9?t$>ZhocP^RwT^Fw9 z^x<$c6btgs;@jrwttx2hs-=0S`aq9dqY`vpy&PC!GLXyOqZQk`;q~oR(E@4!d1-de zKHl#9oBHvW$NhUh7dO>G>)Ynug~8lMdy#D0+ozKKmD9*N`tfQweY{b*Y0`u<<`4i} zK1H1}ma`6`dH44+WiaA?%1DFki(*`YliTHu{$IP8o1O1(A2l8P{MSrvUCYGE=4{a^ zi7&J5;hd*r_k8>EEg6Y>c!>ct9`)Ran&~ge*&pMSt-tTGr%gU)VE*wt84{X0i2Ums zd+=|3h0x;MK6v}9ZOZZBm#mxqnOXVbY<%o+uA_a)pS@|+x|*Rh2?YLj01#3Qd@1YN z#04qhX2m|a71gw6%iCr>N8K7xesDCNO<&A!Xp#a90(WBtK!r3I6GDK(lf1eZHKGOz z>6{+rjlQ`Zj5Hvw@RK3gxElZzI`zcUPPn!gnIYW&iBYd!mASX>M{&YzUI?l1`}ofE zd(CV4PjMUmzuPLThu*K9h9%d7+t+_LCHp^}9P^ISb8iZh8{SWQ=RVh`2Mj6;HEEDk z{*0G-#Z*XZ&9&inZ7k>&!0hmPj?X%_Z~yPy zd3SY}Zy(8CoPM)a(l#;IyndSI>gwh;^VI&+PTN17Tf;*XBLHMtecVQ(DdM61lh|Xl zVek9caMQm~1YlaLDP5ml_m$qSd^qY?jg`yXI^;L2($L)0wr_0}Tgm-1w`-#_zaP7E zS9M2Ux^(K+-@q>c0%Sf#r&*VWJ3h+xFBQ$QiyX;_IkhaYE@9Vh` zhnc1WttBn-3`I(lkO7U~JR{d{qlU+7qiWMksZMz2#dcp1yQhZ-BlC@EMMVB2gn@00 z&Q=K7cC@=+-8^p!wO(G+BF0lOj;kJ_wyRusltxPk-P6Y+NI-Ihj& znW7?A^nWey=9~lo%=OAd<5;-q)Fhk&m@uvkF!{u(DW%ckv`gvs0Y-ptzQ7wnCUvSF_k0Q~XvI>WO8 zRv|ItbtX_4rSANp2DyCXZ3tD5IAv+A=ALk|=IqyS9#3ayQvd)!$N&HU0002u`B_f} z0002T89?7RDJm){O-)Zs@9FU9OG-;9DJUr{NlZ!TC@Co@DJn}#N-QczN=qpzDlRD} zD@sU3C`U#|QA+8o>0U$ZaV`SF(A~+MKw`xAeiB+oM7MmJ-x*38Rg)5quf6=j4>GV!s-d9e@0c_|8|jU_#Q{LQuO_BDqy%iT5W(VwlT0{1>mE`X{@z~8A=CvR$1TBbCay+w zoo(ZE@#Du!*&f&F{^XnZUvqlrE(o{nDaX(L*}0;><%eyNVJiRWP3I3T{{cK^eUyy> zWRU!`Vu+Bgjh3MeP|g%I*u`p*>exRT{W9Mb)jcr2-FC08zef1Aw!<+=<8p<(W3Y4L zSv|{~ZQt0L6~}kE7PBnm+gAYmA^oDZw+3DDN?rX`x!GwqP%Wha2IVT@Qe!wd7rm7z90WR=$nV$-sR^}001l+y#^ek zT#WahbM6iDm)zM{Afy2F( zsQcAayZTms?@n`_@A)9R<@0N|yMxmmdF%I8Myrpi5hBWE!&n4$E1WroEUlQHV$h-s zXS#kq$)B#en!<_9!H|~UuE~WAmbBK&rqDQ}F^5axf!V`#g%CV~n;NG+B&t>;{=-rq8=_K8_@w=yR=NWIaKrn`OdY!P;Gv03K+x z0S3$q0RN4Re*>dM)RhEn0pxX}T$7~|7?>2U|9SU&9*+(`E^j7Qtgd8kd9Ro+^G}KO znNz7hU{kZ|D&UAE2a-KJ)RxOKzvtg;=bNuEltl)@GU1o*bxWvT+8Z)6EZp zmY|MaHg$EKr#h#?MlS9KHO(5_H~=1LR3!lF2W&|DyNI-B@yj3(NsH!&au7;V0#)mz z_sFT_tm!AbqGj)TB z{Sq0RlSH>e4^etd)mi2$OD_#C>3q*nHo(4R)%3)p63cyiB51Z&5qI^G+=qhC)LVkL zZaK&(i&T$H1W9N;mwl{wo4FQUPlTJHa3s$tgf9$m`b2)?#0g7YyhsG~mJ}?tM%Jg! z8~`?Gw4?#_0fEYv_ad)h7@WVs&(a zS8z7Te;2YdaZ&WGStb9hHqQp?<;l7l^RbCK0(w&V2^tSA8#WFRJr$0WwJZ2&H%Tq; z34F4eA<|Nao!VLpW36}(uqj5_V-+hPk4gmZi{ir?W{4k6kkLsHA>RZ(AZGWp31Z`N^x}-p^v`Bx=m6SQ9uGBX8w1?^${8b}2+73wab*LAz@aetGcenn znH?+t!-HDEhII*+i<6U(=uZIb?TUc`XUL2=CW-|TAqiz{jMYyojuHyX|`TrV28BTWG1~_6JeM53N1`Bo6(+ zZVaV$q=;0uTUj4K7o+$6E!OtKzBzd~d6r1h8IwWE@8e1>eWGLm6c$lz1Xh0h@i%j8 zYfbIdLvv4VA_OIlgxb4o>`QlDLHClN0=XCw* zt@+{N>pd$e0Q^bIDRxxUe=OrF%na~@u?>_KN7F%|Eh`Gxer;ASdcD0GGq;~_?b~;^ z_tkO!IoSWc+4K6U&0A8wYj>v(itYUJp&R@QvOJCi0PHy3XS&J`XU zLIBcdRJDW)`G5kv_wrtE3|=`ebpp_m-hEe;tfXXM??tW z7cFTm(`D}8c$*sGq>_gK^gg_I70a#%3;@ja{0M;CAYd`yHou)3L($Ena#1^-s*mNvvP!@L)cJ}4aJ^JW zkui-05~F&<%>Yw^Z+`EFjhkcI54|BzF{VW0*@;{L-1S5e4B&>08+UsEich?xmY?KW zIr210Zk-Kn=JVl>ec{<_44IdrJoNQ+91L=*IFx!G6AnNz?$hTVB#Cq7vU2f_tmtP% zm3PvSuMR{^irNFb75&PNFvXwx#aCR}?EF@~(v1|;X$cUXXVdik?B@Qua{8$^b_)OR zAKc%*X`a4U;?H~BRIeIkr|oXzcw*mn@#mS+yYmSav;gb{3l-afmJ7@$?GRb-eC5># z&5&x8gw`Y!z1G(LUyuGYJbymt-@KQ-b^iaW@3QmyxO4A0M$da^zP){G!=udk`1Zku z{F~5{F^mn1m904!AM4HlS2deOU`C@%hBpaLU&K)EU#iBYR z%yeVp-rkQ$W{0;!_L68c8b=en2@4=lYOBO1{dhA2C`MmL{0=Q;BrRLmxb*IWUM4wG zyTYbQw7nG=2gDHp0|NSD@_x6SHL<0&RtH+J!$>OYde@%1=Q%@qjk#Y;S^kQ)9{0-l<{yU3qY$08II=7$X26nRcQUU>VibHf2s&zqY@$MQ|=)k1W%0 zn^L&69ONG?R{)Ipin)S=2s4QL*1f>Q==s%LgEm1}6x7*yGAU-Eb+xMdMUwsUXz2iy z^$MXf3L}}sFa;1XssNl?6KoDBlhFB#lgZ+mBJR|wHGk;gU2s(`9c=k_S#}Jv32b37 z1yGDe0m?mTG?eNL{*+ECNI5vkcL=&zoo|G<^dVsQyLaSTD~DZILP5nbr8anSZCYg~<-g&*_mcY5ipSybocH6YcmLkK zIVVVFXa20kkNI0i&TX6S&I)*}zbQfhv>{Q>CS}YDWAoQ#%vz7~Nq81gf~5+F!0cD{ zCOv~&WLqHJJ(%rWoRx(P&OjFOkb8F^0}13m006+z zGWWwW8a8VCweR15gFh+&ybbk9dK4-S&HE%GO=J z0HhIpl>Kl#7eD@R28a!9r2ns3R?>r<2-Ug+{%*eizwfK$?%y-VulCh{o%{FiRm;-S znfK>b?QDMa1#OG*e?M4S;js77gd^1GqKp_Ja5imb6RI@W$X15F5b)l zl4i82hQx~pz#azxuosBln(r!u6ii70ugi9kZGexv?dRMJj~iRm2FIosdjmB-?kPH# zVzr$VH7t4);S^0;9i1??weg{em#q8Q$B#^bvA1^N-l1LvPW0`X%^~QZ=cx_Z4pE09 zu5gp^bmdo&Fk|3sQb(8@8=cucUnj=f-JJUS&v%i>Tw#2_M7`o@rK)j@ajP^|X@SKm z{KGW^clgVuQn^04`(}(@;;}(cF2ObO{>7~oBPNW|`)*}_^SRte2+`YjJ==NVey84v z96*U7AEXJzDo^x;!Z)+df(ffy20XRF08eLUQvd*f{Qv*}0002u`B_f~0000KRVP|6 zEJ#aCN$uj@Crn97C@Co^Mo35JCoCx_NJ>cKDk&#SQA$QgN$uj@C@3dKN=7Jr`F23# zULc)e6~zgF4xUN}pyYlXw@rs4#@D5eo^T`z{mds|l~rOhk+Tc55%m^SR{m-3&pKvS z#@|d<8>xb)(Hbu9)>iKH!S_%7@z2GIJ)8ILU0g4oncTJQ8*#H#S6%&CEbUj< z-n{!KbJcceZlAe7l3t$cCe=CF$3Nz|eMPZhdjPB{ck!UH?xPckLgYu|oh`Y!mF?WP z{3I~$mzHh0WqE6=u~ysP9WDI5z4}k_prdr7Bbwc)4}*%&uhtGZXYS05ngL zN>Gvl=0&gJ$_kw>z79>#iuCNAn|+JFid4aneJ0LpFZ&)hQXthNqNHY#rx+abz=(ZF0cw0mJHc)zpcQdmY&yUVN_YQVJSQ=MF8%!A<^ z(VsQDi50Q%qbBOYe8CJI*9#ysh`CPjbSN*`q`uEH5Zh;>0 zkk;`AV04VVViTAXc_&8g>hL~uBRBTL@x?c8cKa-MFaY^Nbv`L+uq>v~>)ZTQ-|>Jz zEgNPQ{4ta2>*I;t=!R81Hvsllw2Xl*KLE@xZr!(IKBQiqW)JAS^>AHgB{BuBu6y6^ z>iSGN@9xI?E62>JF)7o0zuK;&J4X$@RH~^?@`Y3eHG^Tq#Y3Nc!VJDK23f2;8}VOD zblS3pk^0y!d3G~)jgH>X)AA&)yi-xP_i8L!cnAR0{d7PKfCg-;C+mNut8Hx^)rI(*h8QT$pG9L{SyG}jmXF+K8Tt*soufb#^*W(T256t~a71^YqLVm{G15kL<23n8G7GzoQg&GpPWG1%? z|7^17owvCw2mq7;uP9|R7eAJ*nGscjOj|^ZXm65O!w^Kyxipr)D?kLFx38F`uA9| z^m|wIhe>Zj&};dF4xRaSg;X*nHf8@7w;k;-EN=?(e(Wo(`n7W=pPh{_KgW;$^-Ja7 z3jQgd761f3MQa=6S-uF1e;gU~YWK6BHK^2~&RYk4C%#t#2g^0b%f;>DH?oa)p0|s? zi`rhMtYfb*pdaeIa_)|8ynbAJ_EmMCzX2Q;h0HYFWE;nyk9XyoJ$uJV4nd9 z0Q2kVX?*{3KhOR25N3c0Ad()gl7vc0023XFkBrv+e0yrO_M`~K&)+;=Ns4NvMO**Q z(jmLvQR{}Y(XJ@Yi(Sw#?r*~JJDy^cN0)trKjr+%DWa*(GS>r1ZHH!4!fd&%4zf45 zLokng4ko)bx;AcFVCEo*i_umM3_AA}lA0nWLEmKUFAYzF($9o#yIN-(Q5t)dUeEwk zed_9pu|dcE_g19E5Gvk1iDbpC>uJf${mz#aH%g_m2t&_%6du0^fOaZ)GpfCK{UPG>+eia9;6 zgh#x+h3>+)cWryXc4=wx!PJrusPugR+!?i~A<6lRmTJ|p+AQPkaIWIOGOvj;04ncn2^zgTi2TcLOWv>|r}rPQqx zR-Zi75jm`p?ERxC%mR4`UxHmnChuh9LvEFGzIuKlI!TKg83PL!LHwq-V&Uj5erOLyE!nIU$+4IRLU|%pjMn1O$L5ZudOx@>z4R z0cfqPJx^1t6a&~x?tX8#OP)bSdAa*PPuJ|i#nZkQmFnI3jtuSi!8Ee9-tZ!}T?vrL+;-AK+c}lX)YP_Elrspjo2+vOHVQ04p z@ZOZX6iY|!B^24aKfwPWGEe*c5?*qaHZc%u-NfAsNqPhG@6hYS%me3{-Ad7?OCY*% zobGZh7uZt3$}FT8gE7s|bd%9YLpgax1V3|$apk#ixqLGH|CQIyrR|aNeYzhFg*WL> z0;CB`q_j1^adO1&xMsjIn(7Zmqp^zrqSn=RPOzJ@kx^Pb(<>AdiH`wX0k2ACICRJe z^0%x26r;(-FtRKQiS?r-w=~DD$bx|14%OZbgE|)gyb%jHa6)$3t@Sb803rqx6>Xp` zVV0~lM|0o2Y0yur6)sdHNN5eDnM*({e`?{U_=kuRBg6b+N)7+{v~94f&S>Ojhd?5b{zT*QFwn4K z&)8U*@PEE#vb*hg*Zq&1vAvIrXWN`)J}$OA&Xz9^YEI=|cL(|8DorKs!gylRte8%%h} zPt3n;{YY9b=l`~OPrO{5Dl0pGi)Ra6L9+`0lpTw*Az7zPET@?PR{i|74v2E_2Y++)#HNpx8Lr+<=h`0%5+_)sl#-tLH)odPI5whP~=)febRD~N3Zo4N}oEI zD7ubp%wgGVUM046Ml3?ueGW~#)6O_LzrY!UoQ%X1^9aZ~vA_`?!ljHOEod+fiw`KZ z<>aMCV~&uSq&A`JW2s(z(+a8S&0^J>2xQ^qLkdld$QxK^SMd2jHTaXO^L=x%oWb5}Tw5PTZJxymbl#)`hfz&V~R0 z-f`7Kz2!Cfu-kY%Xf0`eE;6ZE48Sm}X*$R@*!!JrEz<_w27HLA-z%#}Er{WWApE29YvenhV-&+!{d6bxmsFcl01nA9(PDM-V@dN1FPGe5&F$5x|m;wUid*; zj}Oz!TnY>MHSV`$aF3_g28$wht*xwd`sdxP>E#1b1<`?MK3c(oV2zygg?+1B536r5n|!g)T%A17rz{u#sf7 z#dzb5O<+Pu_sx2Km^fO6(PUqrte!c**)Xip^Zk540GtWS2ex!@gWXpFNJg5*PrVkt zmU%T!(sHzzXtUkKQ#-5s-05%tq#Y$8w{oK@d-VTAm=E@5<(jqfzrFN4C!yX10hhjs z;4B--%l$@KY8T$})ls}Vx>b7KmQuGmf257s=+X7D>1fB`M;8Em9d*FNhlTG#W&P~E zEhBpw$>NpJL};&csFvpZtipTV+Wd?1Bkyx}#g%D(@Oyf%E54gG#r@6d$!Wf5?(uMQ z)s3z1x6S+w0E{7Nr8eCmVc~!5L8jK(RH{cOi2fCDSD~Xz#>DM7vQj(9NSP)NoyW>c zYt?Cwkt{|9S6M@H1x*Ci$> zDkv&OMMc^uC@3c-Lq|g=Cn-WfLdV6s4-_dwN54c3%cRx>HwQzyj{5^p2x+zJhoco$ zeuq8Xa;(Ld1Cv#KYpcIHY%2kTCB;bxzJyy>|)f(}yFilqYimp%*rWO;=gIt5}5o|Sr zn||Z~YLtUf?SWL{`X?FM0|jihRM==(pMX?pPyk!Egdp6ZqsxeOs!dZIgVVYD<2d)b zHw6VI86KS?%|GzrowdJT=?l?p3}FCB0Dgw#XbkQEz{y>*Hb{J-wP+Czmdc_4%+iM3 zo_{ZHYthu1eOG(R#eL&r=XZ8bmgW!FwK{#644>8Qn&x9JD{n(OT~A+bq*LH6uErLu zm3_C=EqaLVEE}v#Y3KAI8u~rmAu}EFU^h;eZsKx^*O<%Kqw~)>?Gv+-%j3=Z2Szia ziur!Gv*&HUVenFyMFrKjWHen9%B~ML*;NLGZFI?okYaIqu{TPeEjx>|WxZ>ym$qEUfKtU{Hy-+`(~XG zuk2Tc@~P-9b8Q}v0y)R-({7V__Ly$0GmSfsQJkC5e`Grb-aJ z$9i>qG?HBwQ8fl!9Sb7eq;3}B*kjTHP-sYtwf*fvs*18`bj;a3ES9^SE{E*6G%5oe z9d|dDkhlu5H=hDX+)yRJuvGj8uP|L+(D*#JuI(Ih=pmCe2U_Cyuw7*c5&%9l z=YJb~gI_7!d{$dE%XeMrmGhq!ZPEAJySp*Ebdo!kW6;!p=m$C;%l^ADqSL#t&7<;= z9FW@0+Q&4Vk`k@djot6(^&~hXhMDYTJjo$EqD0|FinBG-m~H~^egg-4D>X9jvq_Lr zLOPvi^K_Dwh#TT|ancKKsm5-GBJ50#Xzr?_<&papa%1;MRsHS+OJ#Ys+u4DIY*|WG zY>Gv>GTj|~?Cv_0k@e@qbCV5Z$E~Uu?b0%t59}a!O|~|r;TW$us%!&=fvMr2-j-cn zT2soUq9VD>cf@_H(|Wr+1JoRMSzz_yW&1D28wDW3fO}j{PKlm7;+Y^<@ zO0NBV0PHABBbapi@O+*rfJDNm1lszfbwKh_`649(s!jG^ZQ9yx^Srx|0Q4k_14tr$ zw7VFe23QQ-rcPK`XTE97+w8%Y4z?2sGV_akL4G?21Sv~r;0!n1<(O0e5fYwfn>szC zJmFAl(axp6hl_7&wNuS40t_)hl}OvU%r$u{o`eCb7Tboe1o*q9yA=TJkusE zyz6+XJKvu3ICfmO?5JDhJt}+^2A>m&URtEJ*^3(h3@uAGg?LvIap(M7vbM+C?!BmC zEGZ$Orwx{uIe!ix7ChhY|9-u3{`YqMT=)J_`Ms%A>nr(UuW@`z>jJGB?%V6OrRV^J zG3f)yWhtENPY#A<(QBm=O+!Ec&13ZHEiHcS^>Us*+ueQo+g*L}PR4WeYQ@j-dGGV5 z-#3q%C!;&bh&FjTni(u5J;|^$3P0wWdtL*I!9>;A6SFplq$rw&vijq4fO}^#qNS>( z0}Lq(5@Wk2UbyTYPXLL*Yt2OFW~XRU7F%P@Q+8J8dGqeoA~ie!93gdGD;DO2(evzE zmkksWwm#nGB&U>>N==gKmtnc#^kn7)y6o%h030#Vl`-o*jwSb;zq1f+LtPfvC~9sE z#H}5@eKuE9H-HuemNBuXzdDVYKQ z$$R>z|G)F(?J}^ox7~Sv$!VqdJu$3M^Yk;p)_q=`M^|G3PqbnVKaATcvscU%3(Y9({%vAK?L8OAybdkK`yQ4W+&Sy3xY*L&bp+3AkINF^VvuUY21z3 zitaOlCFQxJoxIgz#B=w@)Ft`>A=y@OiVhSH_#z^%^- zhvf)!WgP@_IPKLV;!U`xHXo@3z&Uf_sP~r&d_uj3hx4O66pQqD{Q3iX;nY5EGCoTg zT6WGz7;0loB3(cw^Nkqf>n@6<*`LLt1BaJ>f)czl#X3v+)6Hsb?gkQ----&>V*z$m zJkD7FnAZ_VZIwy zlMu0ZmaFD%m6EndtE`F*^5#nKXXoBtg}bdWOPbFyw{?G^ydxdxqB??oopn#l$;Phh z?%Z_DTfEj9KO>ytQaq*m?0-3<=C-R%r7a+1+TnLOMFt@3F5uaTrl`{CqL$Eov5*Lr z5$jcObaH*=d0ZJAONf%1SX!mbGF%K_$2r;D1;i+C)dhn=a0mcE!2tjO%qZ{G4TC{& z6d-_N2fzlo`%D-B+%Q=;pQK^EF&x`95KI`1&DOgk(U_a?_Wz=^Uh1Qr-T%@{`pZOM z3;Zy}O+p?vBjMO_@og0carosT+MwwG95D;-OcSf#!D#pR>7&hZ)wa^ zC;xX(FP!s!w_?TS{d(!6Os?;aPrdzj=VrcJxsK>H_Z|j%Rcz0bH$NW>`Zv^u_ZZiA z$B))POCoGnDUt#JHr~mtylg3X4qZF18uQ*7+gfd3@7dWIqk5B*)P;{#UrADbPyr68q%3o={#=Lj85_rKM*Lz Date: Sun, 15 Dec 2019 16:25:23 -0500 Subject: [PATCH 030/321] Create main --- mods/unified_inventory/textures/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/unified_inventory/textures/main diff --git a/mods/unified_inventory/textures/main b/mods/unified_inventory/textures/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/unified_inventory/textures/main @@ -0,0 +1 @@ + -- 2.40.1 From 9887e51f3d4b3aa01af13ff81a89586985d8cda4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:25:37 -0500 Subject: [PATCH 031/321] Add files via upload --- mods/unified_inventory/textures/bags_large.png | Bin 0 -> 12624 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/unified_inventory/textures/bags_large.png diff --git a/mods/unified_inventory/textures/bags_large.png b/mods/unified_inventory/textures/bags_large.png new file mode 100644 index 0000000000000000000000000000000000000000..187021c09b164675f602feebb09e199227f12777 GIT binary patch literal 12624 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 Date: Sun, 15 Dec 2019 16:25:59 -0500 Subject: [PATCH 032/321] Delete main --- mods/unified_inventory/textures/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/unified_inventory/textures/main diff --git a/mods/unified_inventory/textures/main b/mods/unified_inventory/textures/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/unified_inventory/textures/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From edd8a7438481130404c8f3ff1cd4749fda31ebd3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 16:27:23 -0500 Subject: [PATCH 033/321] Add files via upload --- mods/unified_inventory/textures/bags_medium.png | Bin 0 -> 11709 bytes mods/unified_inventory/textures/bags_small.png | Bin 0 -> 9333 bytes mods/unified_inventory/textures/ui_1_icon.png | Bin 0 -> 456 bytes mods/unified_inventory/textures/ui_2_icon.png | Bin 0 -> 961 bytes mods/unified_inventory/textures/ui_3_icon.png | Bin 0 -> 1154 bytes mods/unified_inventory/textures/ui_4_icon.png | Bin 0 -> 658 bytes mods/unified_inventory/textures/ui_5_icon.png | Bin 0 -> 928 bytes .../unified_inventory/textures/ui_bags_icon.png | Bin 0 -> 12503 bytes .../textures/ui_bags_lg_form.png | Bin 0 -> 8119 bytes .../textures/ui_bags_main_form.png | Bin 0 -> 6068 bytes .../textures/ui_bags_med_form.png | Bin 0 -> 7197 bytes .../textures/ui_bags_sm_form.png | Bin 0 -> 6411 bytes .../textures/ui_bags_trash.png | Bin 0 -> 1382 bytes .../textures/ui_blank_image.png | Bin 0 -> 71 bytes .../textures/ui_blue_icon_background.png | Bin 0 -> 3335 bytes .../textures/ui_circular_arrows_icon.png | Bin 0 -> 8818 bytes .../textures/ui_craft_icon.png | Bin 0 -> 15693 bytes .../textures/ui_craftgrid_icon.png | Bin 0 -> 483 bytes .../textures/ui_craftguide_form.png | Bin 0 -> 962 bytes .../textures/ui_craftguide_icon.png | Bin 0 -> 15765 bytes .../textures/ui_crafting_form.png | Bin 0 -> 2343 bytes .../textures/ui_doubleleft_icon.png | Bin 0 -> 9234 bytes .../textures/ui_doubleright_icon.png | Bin 0 -> 9322 bytes mods/unified_inventory/textures/ui_form_bg.png | Bin 0 -> 1650 bytes .../textures/ui_gohome_icon.png | Bin 0 -> 15013 bytes .../textures/ui_green_icon_background.png | Bin 0 -> 3727 bytes mods/unified_inventory/textures/ui_group.png | Bin 0 -> 22281 bytes .../unified_inventory/textures/ui_home_icon.png | Bin 0 -> 14289 bytes .../unified_inventory/textures/ui_left_icon.png | Bin 0 -> 6433 bytes .../textures/ui_main_inventory.png | Bin 0 -> 4112 bytes .../unified_inventory/textures/ui_misc_form.png | Bin 0 -> 5368 bytes .../unified_inventory/textures/ui_moon_icon.png | Bin 0 -> 12865 bytes mods/unified_inventory/textures/ui_no.png | Bin 0 -> 6373 bytes mods/unified_inventory/textures/ui_off_icon.png | Bin 0 -> 5716 bytes mods/unified_inventory/textures/ui_ok_icon.png | Bin 0 -> 3664 bytes mods/unified_inventory/textures/ui_on_icon.png | Bin 0 -> 5708 bytes .../textures/ui_pencil_icon.png | Bin 0 -> 6038 bytes .../textures/ui_red_icon_background.png | Bin 0 -> 3318 bytes .../textures/ui_reset_icon.png | Bin 0 -> 10548 bytes .../textures/ui_right_icon.png | Bin 0 -> 6502 bytes .../textures/ui_search_icon.png | Bin 0 -> 10461 bytes .../textures/ui_sethome_icon.png | Bin 0 -> 13517 bytes .../textures/ui_single_slot.png | Bin 0 -> 629 bytes .../textures/ui_skip_backward_icon.png | Bin 0 -> 8260 bytes .../textures/ui_skip_forward_icon.png | Bin 0 -> 8145 bytes mods/unified_inventory/textures/ui_sun_icon.png | Bin 0 -> 18167 bytes .../textures/ui_trash_icon.png | Bin 0 -> 13264 bytes .../textures/ui_waypoint_set_icon.png | Bin 0 -> 3739 bytes .../textures/ui_waypoints_icon.png | Bin 0 -> 15051 bytes mods/unified_inventory/textures/ui_xyz_icon.png | Bin 0 -> 2182 bytes .../textures/ui_xyz_off_icon.png | Bin 0 -> 8606 bytes .../textures/ui_xyz_on_icon.png | Bin 0 -> 2182 bytes 52 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/unified_inventory/textures/bags_medium.png create mode 100644 mods/unified_inventory/textures/bags_small.png create mode 100644 mods/unified_inventory/textures/ui_1_icon.png create mode 100644 mods/unified_inventory/textures/ui_2_icon.png create mode 100644 mods/unified_inventory/textures/ui_3_icon.png create mode 100644 mods/unified_inventory/textures/ui_4_icon.png create mode 100644 mods/unified_inventory/textures/ui_5_icon.png create mode 100644 mods/unified_inventory/textures/ui_bags_icon.png create mode 100644 mods/unified_inventory/textures/ui_bags_lg_form.png create mode 100644 mods/unified_inventory/textures/ui_bags_main_form.png create mode 100644 mods/unified_inventory/textures/ui_bags_med_form.png create mode 100644 mods/unified_inventory/textures/ui_bags_sm_form.png create mode 100644 mods/unified_inventory/textures/ui_bags_trash.png create mode 100644 mods/unified_inventory/textures/ui_blank_image.png create mode 100644 mods/unified_inventory/textures/ui_blue_icon_background.png create mode 100644 mods/unified_inventory/textures/ui_circular_arrows_icon.png create mode 100644 mods/unified_inventory/textures/ui_craft_icon.png create mode 100644 mods/unified_inventory/textures/ui_craftgrid_icon.png create mode 100644 mods/unified_inventory/textures/ui_craftguide_form.png create mode 100644 mods/unified_inventory/textures/ui_craftguide_icon.png create mode 100644 mods/unified_inventory/textures/ui_crafting_form.png create mode 100644 mods/unified_inventory/textures/ui_doubleleft_icon.png create mode 100644 mods/unified_inventory/textures/ui_doubleright_icon.png create mode 100644 mods/unified_inventory/textures/ui_form_bg.png create mode 100644 mods/unified_inventory/textures/ui_gohome_icon.png create mode 100644 mods/unified_inventory/textures/ui_green_icon_background.png create mode 100644 mods/unified_inventory/textures/ui_group.png create mode 100644 mods/unified_inventory/textures/ui_home_icon.png create mode 100644 mods/unified_inventory/textures/ui_left_icon.png create mode 100644 mods/unified_inventory/textures/ui_main_inventory.png create mode 100644 mods/unified_inventory/textures/ui_misc_form.png create mode 100644 mods/unified_inventory/textures/ui_moon_icon.png create mode 100644 mods/unified_inventory/textures/ui_no.png create mode 100644 mods/unified_inventory/textures/ui_off_icon.png create mode 100644 mods/unified_inventory/textures/ui_ok_icon.png create mode 100644 mods/unified_inventory/textures/ui_on_icon.png create mode 100644 mods/unified_inventory/textures/ui_pencil_icon.png create mode 100644 mods/unified_inventory/textures/ui_red_icon_background.png create mode 100644 mods/unified_inventory/textures/ui_reset_icon.png create mode 100644 mods/unified_inventory/textures/ui_right_icon.png create mode 100644 mods/unified_inventory/textures/ui_search_icon.png create mode 100644 mods/unified_inventory/textures/ui_sethome_icon.png create mode 100644 mods/unified_inventory/textures/ui_single_slot.png create mode 100644 mods/unified_inventory/textures/ui_skip_backward_icon.png create mode 100644 mods/unified_inventory/textures/ui_skip_forward_icon.png create mode 100644 mods/unified_inventory/textures/ui_sun_icon.png create mode 100644 mods/unified_inventory/textures/ui_trash_icon.png create mode 100644 mods/unified_inventory/textures/ui_waypoint_set_icon.png create mode 100644 mods/unified_inventory/textures/ui_waypoints_icon.png create mode 100644 mods/unified_inventory/textures/ui_xyz_icon.png create mode 100644 mods/unified_inventory/textures/ui_xyz_off_icon.png create mode 100644 mods/unified_inventory/textures/ui_xyz_on_icon.png diff --git a/mods/unified_inventory/textures/bags_medium.png b/mods/unified_inventory/textures/bags_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..d908883f071caf128b21b955c03194fe2a4082bb GIT binary patch literal 11709 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 Tn&AiV00000NkvXXu0mjf6(%^+ literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/bags_small.png b/mods/unified_inventory/textures/bags_small.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4f4f6175b74eb1324e016650967ca4b94cffeb GIT binary patch literal 9333 zcmV-*B#PUKP) z-SL}~^w*NrF`cSvwWNq4Lxv0)GGxe*Awz}?88T$Z{~3f6#IJqqhYO$_M>R&ICL$G} zs;Z+v1E>L$z#?!KxDK2P$5ao;RS4)V$}{ zg?x{Ce4eY%QgK-ZE{MlOwkQ867<}k`ma(_GLVIhI(fI|YuU!YgJ4Y0kIQ-mM`#^k} zzIIeDe~NSNBY=Gd6zjcbfKX%14DcSn>j2k)1)zp1rFw(fKG!RN?fZ`pFT}>a*8Onvir=_9IUM&hq6i~ zDq~HGY=yq`o@^h4yZkUnGJKYXkE{2@)hdNtLLlt!lI-mv#)M!H5lpFc7+BLLjvod7 zP`x*RXTY$k`eHBnCEy)EKN7gp=WY~LjI}BS_0uynW@d?NHAD=mN~JkY6qkz@BO)QY zeO|OQEm}sNWrXb@K1dJQ?Xx`W+d{rX5w)o))Oor)J0U1Uq(5zhDx+FQ^~~@b;MGSB zkq^iFPbdV=WbL*fLTO|KQ!2~Y!Xouk(?J#x-U0m}2wOmT7yz#xs=x=}{ikG|&QvkyiaJMSd?K8THJ8p( zpPuG8>O)D#_kgv^y<>~$&>T-IB+_IsF>;s_6 zAYyp&azF5)*}=i7WM?O2CnBgSCbrmGHDqNE^)3kaNlKn2H#0u%$xr$jAI2RWS0!Y9 zd1Qpj*cgqO8K$q_2unei=cM}w&@cU=M~;MxF$ci2ys!)dz_~mYV;*p6ayew6cY+X5 z=W$6wXJaD>4dq|`kJ;_K$*@w0YqkElgiEuK{bB@sPkuiRLv<+r z{g!(FAHVe0{$$D?uu zTP}z5hvEb>%=x|5f~wLZ+24o$zJP)N9thcQj0YY^^;uqEh5_JR7uEkVrShJ!cEo2H zh@b*NRPLxvOj0{_DqNsR_V>uz9m4$XJqUygHf4*6BRvWBQVh z$qyAIPrCFF0Tn?}fKXYCwH>_wJK$ir3V4BuOswkM-xQho*Kw`>ddc1{s3JWZV(9E_ zhb(TMIg2_M#G?u*C?MQCX)^|qq8T}6R6~17WZiDaa*;5$_h|#_Lq+i-vIG1YB0AUs zAi|3i{TD>OE3Vh?^m#U!wc7+45JdXiaj?D-GCC@iFvjqbp&vMXRC#Hr^W;f#yz~cp z8{Xxpsuz)eMda@Q0dyDuFF2wFKV_omT4`kTdYBFT`Z6gv& zzd9d2zefQ@08b#SFhnFp}T@-IdEJwO?73@?73L-h+xT>9;JWW<3G{z|WhyxYa)j@zOy z*r5dJ9H0D!@O2OokH}A{_XmJyz_APhMaBW27RB+m3i41P%7BDFi1g=f>}}n3#Ai9` zeLwY;o461hxd)bkUsvZ+KpAkX<~akx--)#!XKeIs>iu1L(vec5A;Qf|w6}vg7b-xY zCttN63_eX%oio6108fgw$_c=VwG0fZe~HM4OB8)mG4J1(?(b1*jNHC_4H@1q`@KG( zpx%?GsTO@lqUeW#9Zm?AK|(~u+CSGU``DuYs_t&LQ^mzY#ki%-1-(f2mAc^Z~rcx z_5tlQt!(ZeR5)SSkN=6EVL(xU<<{=X!bG!LA8Vlh@b{>LM{eBU&Px|?&Vj&at-&Mr z+(o@s1wG1q4I8xf_E=t9166$PNRlo;{2RZ;V~3B1ce^~jzCpECrrSwSr^*RK7+~u4 zsFs7QKGrYuSvx7J!a2HWO70veIPbZB_AGz?um8e9 znj8gyCr>k~qjlz%W_bLur&wFvz!-ze-LHDDp8)*($vO!fV3H(jMv-~F`Nf%$$V4RF zBxLG^%V(KBJqf_G&#bV#vc`X|J;%gk6Aa|J(A@EwkC$ zVd2sOhcDtGC4JldXEP-*09kW0_S-bZDr|0UP_9(K!*&rUqDq!$ zMWAfa>2ydt8A&@KOEc1BA&R_w@Eg>ph(Fe-5+|Es@!qjP5_Y?{1ZN7X)fSr5j2P}czr^L!GyMB= z%cOY*K)qDr4X$0~%KRJ{6H30Q(im%EOEFKR4%?`3?d&{{{nwLhu5asfwYv2V*DuFF zn*qmuiuT}S0^uAl>1ak!=v1Si1H?P-$AQ=0IC336ER+IP^nh? z|A_>Ya5#!+6oC=fYT==e5Jcq)9wjT65o4%UD_p#MmN>RiwA=ZpxsgVFc4Fe2FW-Il zV}m>m$RB_4=Q3#QudiQG@4wbq`(~4uF3afLJnB8pc~Aw_Ah^4=S@c;Dsvb;isf>=I z>O&By5{?;biEK<52mO~t7?ENMc$Uxpz8|1%l&R?n_V#vJerkpHxqjWf{*_CAJ32l6 zg+9-J7uaI}v3qN43>3ypsrR2|qUgD0mIy!Y&%*`!L4Ptkswt9p%6N?cZtbw1{GZ=KkE2`c8}QEA9+FzP1)F88;d=OeC~+_nE8LS!~pg-bm6!L{z<>1|9;YfIkD$ zVFkE-6u2AJFR+#J+~lPz;cVS||BB0Z?$*p#{}Sc*_aW>*vAoP5{`0>C;s5b(kFmPC z9+ruT&v|xl4{IY3Q0EabVr+~c)4+!V-wMnFGQ1aXd(0#9WhS!MCeB?jm9Zx30euDJ z`(8FHf#;X~Am0&=YZwcF9tGDwJn2a!+a=16}_IX~XSc_of4ApM|{ z$bfTog?9x;fX{f5Yv-c!j02^PIo5gox1EIv`TvY;zpvJ>g9xc@~b{{Jemw1>Oqy8sHv4h5_)(Q3l>q zRo|^PHC1Y!IS2Z@Io}6a&y(+8qI_;C`~D@%@0|lEfO5yuBHg_Cl}cgXJ5Ok7CO*$O3W6^O?tVprU>E?U(vo`r3AR+ee3<#=dP9JImKhrnMG=Y; z=!<`e@_U|{@$FF!N|=vRwcxx~Bt|3~@Y*L^*jlvrQgVI+Hs$^iA%wrP zaqXH`cFrg7B@}^B6oe3FS-m&|7r~qJ7JOge`7xct48D8oI%F$?SVs)wuRZZTKK38| z1ODQjck$E!x}K_<%wG}kt%m8u)q{jiD*c+{E zZd|*=rgN&?38C@)&W)TEz6^c>Pl7+Y<`H$Xg#r*#L^FVj-W-i)fhI-C?(Qz<*4HsJ zkn)&BfD0rrBMgQJQ2M?Yo5oXK*8|``03QnU0fRFG2*4WR6GJHOo3?46X4e|{MF+k_ ztSUT4SmODJ+4VMjp>#cF@H5ZPRu%4TgJ~*>=dN9Ao+VHY2VjP$_vL`{>8jVm9a3E4 zRmH6D;TG`!XSD<1%m5ttj~M@Aw6jxAn?EZ?EQIC&GViY^ljZOM$vf~p^F(P8d{9gV zlz)cSh!M(?(dH%(-G#(xd#7npU-WvU-%p=4peYumrJ(?cdVkF1{`*0?7x*~f32rt+*q0(ScwK#WER_e%bs2kYyDmE8-58CGiGpp#O^8_=&&*Oxnz)zqX z@c0Zod0?2sPp{sE?^(dv1hyd{32&9NuiyUw)7JRFKLh?6pxfC10`7m-;Qx*`xAf3~ zM^7!=nUfiDJVqX&1>fbkE1!R*1@L_-e5F@!!%s^+p)P!c)Pdg`ZRE38rO)NxX-!76 z#Fe+Bs_UA)`#%8gyTFG5D}dde24J>=+5a#4gUxB7C-izW1)d_XP!jc|LY|j%)q*b< z+z`Gmgr7j>?+JIIgFN3I67craL@E+7AE&re6eXe&((C~Cu3x7fj|0)G?G?YJc@ zApHe1`@8+MwJ_Y?F+mgfnc4F8t#zHl*TaF&QuvVmb~`7~9p*dmrFr;D@M*;*X@nBE zFoUuvnN*XO0f<;f_8xeE_2KX`@DB;$SAhN7r(3ubFzX}zKMP@N?eY~1A>_-xr3Mi5 za;^(?mU;+a&f}Vch48%vUoH3!F5qDJ`OgmI*FYKkv94GA1Fr!72(a5F1{eY#7Rut%+J#F< z!pyL;1c^nGJ9RZ7#(Dw#HbjtOdcRxLIX?K_g71zx@Hq&+3jmWS%<@Lna_Sg)@cMOm zRjp$7EMODR?O_0Be-U`baDAifudE<>+TFA4_lb2)tR^6q!%qpBZ2j*`Dth_nJo*y& zz5ssy-GVvKSAy>?`0nWyNSR3|7?^=ecq_IUkHAMkzr8F`7)z~JJ3B$5{qNJT<0H^Ws@v;zxxc}L5Fx>91tqaKjihhq} z-))f9(B;0omLKzVeRppFhk~C#3YWS@H4on%p~di1Oo5id7fL}eGNE)0Az(b&Z(7!l zR#)$qbP;&P>74?kr%C!-{nd3s*)vJa@Lw!n`XMPLfRHaq@GOGwo{boAWBBe4Imk3( z+!%iHet~z=%D4^#e|8SR0yS~=zHmg0k^RX&k}jLsMNUwqnVoF%2cBp}abIs`#Y0g9 zq_ja|xzfhZlmXOH;QIpjaRy&Ge06^I_Qw0v zbrt&k!NnM352#Mv6kui>z|%un_IjfgSui|Cin2V!1Dq;6I%byU=REmyIQR){`pi=J zndiG&#@4MKss-P3_-gMH&|>&59HpwRb3H10^9=(fe)O<7~qnm$M*)qCfzG{tSBG^ZX}ORtSi75t^YGf8GHda za&XU=b--M0Ux$XT%=0t&Wp&>kIF4!;q}^M&SNKTP`EEsh8u3^2C3j(o|8vgqp|#0e1~8K_~P4eAt&n<#lt^ibNcwyuX~K5sMAXiqlvQUXgTP(}c0t zM~b*RrG*UQBE_mok^W-%d3G;Y$J%{1osd_=kIdLs1l%*}EmLPH+kkCnFhH0f1VWvpS-l zcg)>!00+g!K#l-kIehQH_r>s84nILZ2KaGq*yj-N1r#A919*$1$*CIw40E7D4AOEf zYv3r)*1VDcQlGvfz}KPSla+Iq!( zfe$Fgwe~%Fv92j%8sb5;I(Hfng%WI!Af*Fud2tsuTD0#!hp$EO)q=0wP?QCW^YA@` zFC;Sf6R)X{3?Jm8-|JJBJtVyh>H5hTfOJv@P|5vm9^;j)mOrV`U#0c7iYk2wg% z7W@{F1Tsm|q2WuQL%@gS!+rv<1b?>1uN032-vDKu@&=Se8QuL2W;Qu}I?@ zL^ZWLF6ZGWgurkxq$rAa#2DWW=;UGmPDTdTffsm;|29@*iv9peX{Qf_kf7%tnmqqN z_)CU;Pv?0e=wSH1xS}U;gah*A@hyWufM%XwQ#J4-E&&|b`z2@4A2J%QAnBFBTTknz z&^-&`6<$Y=lW`~pgB0LVR}(^6wtDp_pU>e?@DDEP=*I9pBC!;{@;d!IdD&<{3A5MZ{)T!yxw{U8l=Z~?F5 z(&4+iO`Ik7=q-oet_5VVLH@U)y^*5@Ur5Zu_lP6@G%A`Wl&z{Pdt>0)X7+(oyCqE0 zn=pHBoQ&^|lS#S-tSR+2BY*)S&+a9N9sv%l=#kEsd4A^Iq+qWD-}|~5D8dABVZ-k%F)FFo3=83jNXHs`stri3oY1REU@egobY5Bucc1;hlr1K&>wzJRhQ*x5Rd znY~QXF9Q)UfYW?q$TX1oey^%~<9L6g9FCAYMf-%JLYw{)xN)b_n6Q$u>@H3;+l~(oXgsrM z{rb0M34Rr;27DU!k5iIZ8?ABS{6)%M?=5D0 zA?|MhjGH9;g^&3#ZkDVlj2O2ieW9fPY$2?MqO=?3^^-Su;ivcJ;X86Iho4}hL&C4A z+=+@DuSCB$;OgZ&d}Cwt10jUZv=F`x*ykq7e(B>slAA3_=jHyXa{pguwrL@BZ`;a( zzU7|pFaww1yE|lt;WPMI8h0stp$2}PYWZm+$1zH3%Dr5P&|TKr6+B-(2l5Xw@@DV(M8Y=1^O8$|O{yI>Q3}C+B z?$O}8gN_K_V~X^fSC@_*{_1Fzix)1lvA+3$1^aGEUzjR>kA&>!Kl(#?q-7yI5$V6n z{l5WM(i1_wjz@+ssgpqB(C|}&r%JW_W0NooY^gM^p6Ff%TJsq8G+hjfZE7h%G|KY(G0?|M(ih^F*V|{g<&5bRF zqZKd9@^yk=un@kp>=%YV`)1uW&mu>vM_uUmIlYipwf7akGNp}M0 zfpcEh#L0xZs_?p^uA_U57VAjuZgQuI^y`YTS82cgp+O5_7{%;KrbQ^}^?Di(2DZAg z#`^lXsrNsK*{clx$U^wxyZ^#p`Zd70MP;w}ksshR=nc>QBbz;YHv&BU-~3N|!B2eu z-Lb0f72IWTx0zkW>>l88a=+3T#OzL^x~}DQ^s26GQcak|iB0Ot>R99Mc-HX)FvEgj z7SdfhQ@AS2>CscK?Au^42-5(s-yg(K6ff}@pDlQ#%*BT%q|FBHE{`SN9dfvnqX)!z^soDhU9wC%qr0Rnu0ZZC-7!7UN7-(gLhil ze+%#+r&RV!pZKxdZc?mF?f{~r^N)Liz3&aL8+cv!UFylbz^t@j!LS|{N+ekkR8L!X zo4FYgtO`Y075%{&n9$OL?|O%g&TRsSQzrZ6Pxxrg^ypRKOlJmgrZWRL)0qLB>C6Dm jbY=i&Ix~PXJ&N=v6#u2|2zX&s00000NkvXXu0mjf)V&~x literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_1_icon.png b/mods/unified_inventory/textures/ui_1_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4ceb9e62aa653ef44d27e600ba5d606350437c GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2{2-F!p=8IEGZ*dV71n*Wmz(wvStE zmvujS^yF%Zre9O@?C^(jnM*Y|l-}Lzdaz`2bF=va(<#%I&8b;$^4B?Nwio+BmGkeL zixx!gYro{9&H*$P4nBz2T%OZ<%6~OmwtC*aXHQO?dmCl@HC%XQ@I{u(ZI(N4W|kx@ zKe>1B?4ZKDwl0ydoKn;D`SA`sHkDc9%2c=g zYhph#)E*ULNF$L=m;+_prKfsw<3fk~i&fklA?rpDJvx~;R* zof{gzanH+}UjDal(V4Rw-o&h9{ZMsr!GoLao7gx+Gk26(=U7gbH|MN5IC*2pJ%-(P zByTnWEpmAJkEML(CAJ&ir0%4i`XvR53mEu+$UIC#MW8A5rX)zn)78&qol`;+0IT1# An*aa+ literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_2_icon.png b/mods/unified_inventory/textures/ui_2_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f4566d83161620ffef9f07e6612f93dace289482 GIT binary patch literal 961 zcmV;y13vtTP)B|K> z*>R$lsyy}^@hH997Jo_vNKapDeYlhvxtglS7&#GO*Ofj1_)Fw$bpwzjzzAV_nPHz1 zE8SHKfQ3n4U&v+Yko~ep4#^ojuLq?dP;#^?0Z4O!+>>qb)cSv2_^6>?^5T_vS^OB7 zg+oQO%mGO9`rCL@`d%R3aOKi2PkeL55#@dY68TH<>_k2KO_zsJ&phcH>IQxtHu08{ zmc*e6QV4$phz#BVZq&*#K;lzU6IbF)v9w%SfH1)ORcxD(F*-_d= z*u>PS#Z1T+0_jq=Vj%quc_79+Z2>sfP!2_)N*|saMA%pebOoR$dvyoEl_L#xK-&;- z9J$hv11z3s3ji7x<ObNZxw!jNH=5nmEvO|4(EmM6UwlDv|GVXSlg_p*y<9|LN@g zx69Pb1W=1+<`%_1>goZI-8eDx6wL&syRidAC>J&Le_M;z1N&ViqunqSt&I8HojJ^eWYbxe`UlRT28T}aeI9f&N`;h2A&FlA$QBwIGM;>SN1?V5E zNB==ye_*^G{kxetzW{@i^yuHtodG~NMUVciynZxI&75Cu<_^Iinx#koT3+AG(WBp8 zpuYgV7X7aLd12EAPmBJ=yuMweNB?~O9H?E27A^Xn`QHfG<k3Z)-^VuW!tN1Ydt^$dA5JCtcgb+dq jA%qY@2qA+bF8M@Q9V_Kjm?QwpGmbNfWzvJ zNa;j@)I{|Rj)lyD3Z};IZk~@i|NndMUfHzwTffU4FWeLPzRFHs)HP598`>j#>5%DK zv%l-))_s3_?|t>(1^b^h|Ld}U$-i{9N~c!V+DQw$!e&33R&n9}^ZaLXeEgFXEKb+= zCKq*P@X0F&4oQbEUUKN$neXkX*pu%R_yfpunLeH_eaDwx~V=p?oYH)G~50K zKPz$-H#*BKxEgcem!gsKrC&~;AG~`a+M{ZJ*6Fju_x-0in*`4~uFF_z!I0wCHv8ok ztrag{fI-H}tuN0^{m790Mu>fj)ry@{opmBNrJS79UVFp+@0$ADhMt@2+W!Qu6|&+h z>~c|>=%FIiIj=|Z^aJ~K`@6$dxAduYa&vxI|LAZ~eCE~*8&y8Kor(I_qw+LtbvsDP zTJXE~rI)Q?+_K(6;$kTujD^;Qamuz^xI#^8JQFAM#6M$dK(Tgv1jt@hZ~2df`wwt3 zf0+^cCw8q+mK6j@Y2}`J|9SBn)!*u~npb2j*}?uoajIHTRNZDbgb=EcHaOs-|{kt#5 ztkG9Fw&{KGa?3=WpNi$PgpaY^fA3dpsPnH_GWpx{yIFdR`exreSiTEr(+>_?<-gU7 zF4YLk$nAO7d^*WKnR)+(D=v$-tC$PzK2jIu>-}%RlEK) zy_)G_LA%&48(*vTT)dKz?Zf@Yrzg2QR?{t!3%uy{zqWlpGfOg?ui$!arkX?jM{=#& zXHDyKOJ5r=IsdWif^`1By<29sxvzia33f7M=l;rp-4`;_zk`09FIxwt~3YY{f|DEE7P7vr1{@1NZUl{O5X Lu6{1-oD!MmZ+md+w(uZ zM}qdSd{lCAbactl5z*Dr$fU?4XSea;o4kxbYf!*Hw%qu_M>C3rCZbGe z|EqU0(?fh^iY_z!UKJJmA@IMW^?J!2EB;?IJh`z!;7zw%9&5&hd%mA$88aS!S9Rvm z_IFYV^XsqPSGgPh)T1G(TAepK{z|etQ<+uvUzN<%_0AU-t!BHi{L4G}rn8wRdl`;? zE0fx?bK!~?ZU@5Bmrhde3OJZ-V=Od_+RU%t72@A82_=55xBON!^$ z{?|R`$^6DS>i?^hyTvLF8+Xq9`_KPM>6M1Hd;YD>eNrT2a^T+bukv%l?oVVm`YdYO zk6N>TwHKM%D*xsh#eC%5P@cKx*PC~5-n%p;6`QX9e>yX{OVnW7kBK6O(vDwMO~}8T zakkXeoi`w7T}t)-tC5epL^fCk{@?nq?D#~WkA0<9&z0Z*TU-}t@szcH_rEpWc7p9m z<0|3B^RyYiX?2F&R{knu>acO>vdMeV2}pVg6MA+im%p_g)QaRSLDLchx6z2`z}2 zf4lm9cn$NXU)R&q&i-rV+VDK`Z@kPJQ`K0e%)f6Bq}yKDV8dANWc=~ur}|GHmh`oG zbze5S#NoieByd3Iga6U@vY+-8U1My&ZEsQK!o~=eXkcJbU;r{5v=SVp{o?1|z3cpH kk66q;8(x%nW?*nXmdKI;Vst08}?D$^ZZW literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_5_icon.png b/mods/unified_inventory/textures/ui_5_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c3891528d5d1455943cc5efeced7e67697293988 GIT binary patch literal 928 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2{2-FsFOEIEGZ*dOLf6wuqz1@#o*n z)c?7#D7*b(R_X0kax`4gF;z@RFj`S+b%(%WmAIx>i2x=ik^fB6f*~&5B2hP8c$zX4 zqardAC(gff?rhEcH*cSwxSOZf$$scvjs5MrOHcfMb7r=A{r`yQy~-8ww6qlddebmFEd zN82{G%X1tFvE!`F_DlD0O0sA0m39#2-4?F-I6d^hD~E>2yNdHxGdcBi?0vGSAw$FF z)HH@GL9w=0HTShOc1-7GG~*In|3<;@<=)9#Z>}wW%;NS@Q|e1+@j~^Z*-au#G(Ic+ zNL)X?EcCSO{R%7b+W1qF{B;r!jQNkAitt#lW$l}#VGMc6G27c4XD@SnG3STZ!^}%8 z2ir^ho9DzG|84wy(y<2Hq|E`MYdojt_Z_{=uq@`5!_xxoI9eHSU-Zb^@z%6+^@RfclbfeAyx+8O zuHnU%{0;pTeVjdsBIO?#^q)k3tqBl1JpcT;y1bP;#qY6Qyn4U+#VOy3Q#D#2O6x~6 zUF$nqvg&ZYr-MS1wAWwH@~`oG1sh7^`Y%2-{Pjr9^Y^pxJu}a46VK0jf5jxUQN!2i zL%{n0uk?kid3!Sc^4%)D=a;}0R35Gpp~u>Een&R{+V3Wos!BPzN3U03XqAgO#?WTi xlKtYay>@D0|^tRfdr*UAC|8)Nc_iuR>#xPsq0AS8z@O1TaS?83{1OTM(kH!E1 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_bags_icon.png b/mods/unified_inventory/textures/ui_bags_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2882a23945c9a7021e2da4e78feec7c7542d60d3 GIT binary patch literal 12503 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_bags_lg_form.png b/mods/unified_inventory/textures/ui_bags_lg_form.png new file mode 100644 index 0000000000000000000000000000000000000000..24dab308b163f3e395886aea17223b05e530ad7d GIT binary patch literal 8119 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_bags_med_form.png b/mods/unified_inventory/textures/ui_bags_med_form.png new file mode 100644 index 0000000000000000000000000000000000000000..27a1591c0af720bf9f5279a3e60af124052126cd GIT binary patch literal 7197 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_bags_sm_form.png b/mods/unified_inventory/textures/ui_bags_sm_form.png new file mode 100644 index 0000000000000000000000000000000000000000..6234eb8820eedbe0e6d8c3524f532d48459ee11e GIT binary patch literal 6411 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_blue_icon_background.png b/mods/unified_inventory/textures/ui_blue_icon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..2f872a4605ea1cc22c98f43b1cae6f372f8d2a09 GIT binary patch literal 3335 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 RvxEQu002ovPDHLkV1mQ$`d|P6 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_circular_arrows_icon.png b/mods/unified_inventory/textures/ui_circular_arrows_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c6846e62849665c70a61846d52193e8c16492ae9 GIT binary patch literal 8818 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_craft_icon.png b/mods/unified_inventory/textures/ui_craft_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a2283e304c2882c5d2ba2147fb4a022ac1ebcfe6 GIT binary patch literal 15693 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_craftguide_form.png b/mods/unified_inventory/textures/ui_craftguide_form.png new file mode 100644 index 0000000000000000000000000000000000000000..d9be53f7dd54cad096c80fb9d7a784ba09bb7078 GIT binary patch literal 962 zcmeAS@N?(olHy`uVBq!ia0y~yU;;834sb97N!N?op$rU+VF5lNu0U=^MuwM{*VL&~ zTUuJ8qM{NL6RoYSKYsjJQBeUDkB^T}N=gFCCL|;@G&ERQS=rj!nwy(jT3P~?LC86C z<^WaN+1UX_GBY#(|Nrmi=Jw~$pTfdI3k!>?sw!7k*S&l9&YU?DD0Sh&h3V6$&jy3{ z@8AFZ`}fP2FFC&Zb+qMBM1zNFg-MYBAxE(uo zT)TEHKR^Hb_wT;GzCfn}-5eSkdh6D$($dnhva+>n*S5B{-nemN(xgd1m)P6ecXoDe z*|KHRrcDbMF5IEakt5%>0vYjH@RK*PmzE^3^O67SyW z<*TgQv3vLL|K@3qj-g?bSy}hkr5FD{5FT58S@tw2lA++hiHsDtuW2dAKHPZa(ZhQ^ zZ++*U6@K^kZnV9$=+}dbtNEP+)z+-v@+Ca)Z`jH|HPc?*w~Vcct`SN-H0@-PrIc~{ zb+gE|{^qyfXNSYQv&$TO!0WITMQhe4QOUahm;sKg-WAUuTYdS2nD=@0K>lLh`>U z%x_@&Mb{OHjw=y@D>rKWqMth^|`6r5!k z7#JMFmmG8WlX`>uKpcY_S>__#V%_+~C9A|Gi^nbN%TakYpy>>M7?>Cv4hjF;KN-aH MboFyt=akR{0KFTassI20 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_craftguide_icon.png b/mods/unified_inventory/textures/ui_craftguide_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c89e6ed1d1874fb92cab41741c0f24560bf860 GIT binary patch literal 15765 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 TFyYu?00000NkvXXu0mjfIJd2d literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_crafting_form.png b/mods/unified_inventory/textures/ui_crafting_form.png new file mode 100644 index 0000000000000000000000000000000000000000..904328799f0095583663358921550fe04a99fb02 GIT binary patch literal 2343 zcma)8c|4Ts9)D?$Gs!Yz%dup7W$AD%sgRv9hA`Br6lIyIAraY^XeLQUldWcuu_SJX zvd(ZRLndp7QehCHLy}R^plP@>y61Cm=bn4+eg1eqzvuV3VB zTgDZwqRH;}TB?T3J91Xb&yM=p^5mcK+aZ_|V`=u4u?*URM)Oh*d`=?O#&BOjesjnp z5IbC%%Q0q{2NkGBp5?q54U*iXp1luiy@U11B*m+jX0d4adx_=N-i7G!t&*Y{0cZeg z6wG@4^VHIQW05-VJulCmi8+%vlmFddtu-z-^Mma7Yn@}u*HBLqUW6w;4APRNompkr zgU{pw`in;9-#xf4;?MMJOq6NW(u)(TxufM1t%Pe>qeuetN1T^2ptkODK>gu!qmUgT zlqg`hlFBJS`T)r0oeJuLSuO{oc?tDPA^(@zwWM_{m}-rLr)Z19?GeRLq#Pjygt

ZEv7VNgIIfqiM#UpE34`10a@rQScZjR5> zXw+Z-qBUw`P6wG^j7e#5!?byX=-ySn>(E9 z3Jx4ewT=u`Q}31ya5r%19bb`lxv^@Q7$STvt8w0O?3q1lFYXPe%qJ*YO)Mw?ortl? zxr+9__1B4%bNW^Yv-jspdgTZes9>J`jvCeS^|r*BQp1`&wSKeU1w+zOBwGBywh7vP z?yg!#IJ$M0PF^JS=xr#gI;n?xJk@$Sa>(*jPJ$wdpIeF8{LSXK7?k!6p@fjjf}+t> z%WEAXLpT?nd_O;{NqGfqH7MOV+1cgjXeV}ot5eF;g1?jMa@b~2+LiUJ#F6ynSRh1r zrU`vPZLon+Hk=Gab}NWDxKi|XuBOyS-rMBQJl!}x^l{W_sx7kIrLYhoT;XYwL+IIYLn^oY0~$>1{=4hq$+jU2id2avdWTuHF|fH>@HSg%X`k9i1u$u;_BSy zT{Zg<+sh9ampWFJ;-0&s)RFN@FG7#Q49?gr#IN#*dqX|HCC%-vTf38oO2noSe{bAu@14#l$Cxws=`QH z?9rR}$j=YuNofI0lw9jGF57o`n%w(xz(AY#Q?*D2Y;X#3&NPnuxZ`WVRM@L8WQVAy z2v|-s#9;3f%Gq^~D>GcynzyGIx@}}U2H*Ng7nVcAePI!-YL@x8-~s|WHq7H5X8knI zK;v>jmwn+)`48%M0rP{&;0o(xpY`5P5DCmhiNW<6kwX5k8|2dMEj~zUtQZ->`6y-0 zqZdIXE_50{@`G%|V8)Mvqssgv9siW0|9|o^@K0KQv&0~6)`;;m;k-66DQR{wTIGVv zK%MuN)Ix&3j083pB;UN5y&DJkGxy51a?;~pi(qrjO5;p82}B}VJEGlpcMg^iBNJU8QIRMqEape*v^(?vVH0nHJaYGR$I5D;}P7wslhf zoN>IG&bf41%-NsmDkpNE7M3_%e^Ei#FI)3UKxRa|78XjYsNE`VVgrOq(Dk7zAygq*Mk3U1?s62 z)%^S@1+PBQj9JHajLM37+_;sJ4ewA^(uk|3Is0P}30bIKy6? z-HLy?cxQPEYTE^mRtldr#Gq6@zMYI{7dFr|p{scJ@M1V2CKXH2;kx(RrH%$RM^A_e zY+K$Q_$w(B$W62le5Gyhf)6_82QWG6R0|9iuFqrGOGw{a>^7;=_J_@U@|QQGw? jlec05o}Jtfv9&D{HJrW~MBtj>2MBPqcSYW_^&$QP6{$O_ literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_doubleleft_icon.png b/mods/unified_inventory/textures/ui_doubleleft_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..64d50c05f2c289107234d3b9eb825f14e4e1b701 GIT binary patch literal 9234 zcmV+tB<G4D1yP>B9p5bO zT%E%*4yng*87YRkEZ`uzM;DH%*6ldwUXb) z?~yOd_|r1>APr^gl&=F5^J^S^MC!-L8_`gbU%;Q^559p@e*vFR^&^s(gSbF;@MRBR zDBZU`XO;``?a0x=8Li$y|32#DWI@tFP+6yz0bk$mxb@7U@1hUd816hh&Y4-h>%ZRU*ALrHzIT504)3 z%u@?E`Q!}-)L;@X(fb$iMY1j$lr&*99N1l(H8~pk$49QZb96)%LQei%8blk+P_L5w zu&R$rmZdjURY?hFCPwzQmMQ-FpB|w+G()<3IW7DX4P6_SZddgWQ9q>e3QX!$rP5>2 z%F5!ji<|Q@UJ0CIw7KV6_qP}}7D@OivI@553dEuD$s!0O6^D?7`! z&dvGv$Da1r=}wjbdUp!o#-l}`YokTIzg5+bOWuLAB2}cPU~y*B&f2`o8*>(>hlY*b zJAF*XbjZUOzEbFFVx4>l-;cLQrqD|&JvFGZxG?L|&N+MQ3+B#@z<3<`m~!$Aa9aFF z8kk;)+c(}Q{fpG6up=mn$~Yz_hIY@*ySTMrZE@15mENPHgmf}S0RpJ|c>Oa2jJ3&; z^mmdkNqtylRRXD`rFYZQXY6mTxOjfq^86WtM(WP2wf|~b3$^Li^)D#j zFJ4AQ;@HZS&E;8_wia!#%s4aAKo3D7kdRIQ3XppW|8yx$4T3Ai2S2RpGq{W<1*BJN z1KXP`F7K?`SeY|9Y7%;PjFUCM=?1v^A4R8)Ch>0k0(p~IAfT$~F*`l!^7&=^Yx5SS zhxfm2C1iZOigVvf+stjARy?NG4cb6^AO&YcmB<@2TMX15=FEsiwg@b?rylevu0{yAUS@v;&99pH+k$Pn{%wq&`}U1 zC$s?ZUCWbyTL>6VjwCOq?uI;@7^CSaVrp{2=Gs{=IKN_JX&UsDDhk1^L!P|NV>h^c z#LNWcSQ2-yfu$EhGVSo@+i73I7sjwjEfH+bd_hnMJjF6*~W`HB#H9YngC1E%*ki3fiBlwVH zA3>C=qi$+y%J%w-%X@3q7N@i}kdPb~|Kj&gM6Cd|N?iN8m zq8g(5xQvesheKPt+b&%=Z)^3e;o!LGRB6TS!{?v-$aQWUQW!P_1q7`eXOnxIPXRsO zr&Ya~%u7H;Rbqa2*2Voz7q?f;Pftin0yK0ybNlYPzs*r7G{i~B zu@ZxH3(IF+xwLP0Yt8KRNbmo{&0R3Zl_gmK{_>S9GRd}N21&+cW@ct)hJa=IoeO~* zyv$^hRPUY*ZwYDh(8-%8&&e#677CE8I{Ux-AO7|gQZ_@28r z_H1u%NEq`;dG-2iRqp>`)nQvUf}n*Y9S}umsG?=Q2M{*5Hyqx%?%?W0;~0S|WhEp3 zd6jftoRO)iG}CJoU?|GW*+M=_buD=;Tv!sppr_svUl0>;cdtF zRyHcM1`HU(zrNsa|C@h%$yuY1LRIN!d5XeN45f?EmW)e^AsYtKLX@FcHvavMqPdFP{^mcCO zlPy7!>DFnX)-k|H74i`p1|@~-g#F67Jt$ax%`Bd$lGRN*{)zs>?>{65yjS3)sDO zf#F-E{gL=GTp&QAhT)Bk>gl5+j}LF#+1j+IngXwd7iVv7{i^gXM;3(ws=Uvbbm9Zi z#iRmgqyKsxFaMJlCnOBR6kyC*_+@QWsG{`IsesSw3b1o+OVu;{7VXExHEJLvV0&lB z?OQi}{Do0)4r!DOd!MNgq&ao4|l&i+_6= zmv+17nO;Lv z2->;w$vat#J>&BG@pIHy;W9}PGH7w>>b{2$A9-;9mP_Z)Q;dzIR56B^r>k-8tL3EJ z*L)LQ>%7$&5K;iNnGESI;t*sq*j~_WYKD2-JvY`fN4M9;jS+2DF%QMDCVKI1L(U6S=T4<%mwf3eM)JwC#zqT;mUqPm=$pJ6V8c*1$*&dgvapT6mt<7`NXaQhsE6`t@vTVRmKBcJnn<%xOs}pLX0Lp~_ zk%WAF99*=fMAfu&r_7r`YAQRa&L?QaVsdsA)3dz`KEUpN5wxhqf%p!U-y~nHWfMhV z^`eIhm-ZYz{v3x7?%CblMom}TwQ#cHdZ&$KwyeK>guwjN4V_Bp6;|&8i=-h4X=|Ou zK&W|&l0G5VsFWayq^1e*AuNRS;Af0lY~ri6@fTJ7sOAa)A+fW2(XIQ3j-Nbp}4 zi_(H_1^VR~ua~rjS}&<)W2Pd`@qgwd*-Wyv7GtO>52pcXs$wV-)cko3ru~H8ryyYr zi{f;Q%>@#av4xBnNXUmp0nh&_F5Y=Weg;2Fp7p-xu(9Fb_I*c>p1OJSmd$e;U^xa< zu?(;O5BRcd6ovtz>eK)8&}z<;M}_E{vnenUCH-1>MrkoN#s(8WJCK_mbY#8qs9}ve znUKjLRUd*6aN*_!{Fscth_A(VUvn>BJ#hTwbKSXj--Yw%K@tGL$&y#gvK&bm>g~X+ z@+n0!|M)_Rf{p@8{~VK@z>>u4kr!vQ24oEd^m4Dd^ZGLuh295%7ODYhA7BNzcxyxQ z725c_)VC_vdtrNSd)J+#XC6LzYHx4PFbrB^8e>}le>TzrRK0(&3+nBAfca<5TeuZU ze-o!o;PCNr@D$)RbTH#J#M($P6so6@kR=B4L8*X?Hy5hzN`3*qh$FHgA}N~1#-_dN zcRl*NFLv|h4U5G>l-8nZ+T@kjXSC?!t&*U;&nOC*_X1EglMsbk^EGWGBceVo1FK86 zddq2}u4?!s6_#mCOepyb4uf_N3bA#moV~m%`BwZk?Q5|~Nl87rP2-y8Uv0j}WxlMG02zZQcT&29=1Ol9B{h-Ro*4C^a$%{3vz`u;Wj zL@>~=g%=>7#@7Yx>=$A@i^aL~PF{Se!Ou}YCG8@hv{sbu-HUDQFzI+n8~F%NzZdT-Etx}pc8+r}2_b$UY!)nZI!It*%~MXfifN*C1~IFoo#vnydE zhEMZG(C+m@EVj=vKEzMZeo8#UKt_n@1nf}m!;msMt?zd!-V6x?2xP4)@GP_#zF*qCkvRiebAP;Vhj>b;?B7*MEn za|ro#Siw_GfA$9an=HSN`bqLlWJ`<`?QE!F;o`v^cOHMf+xHJ$x^z)Smdh9>;GeB- zy=9vRwg*#abdGyScs|SX~V7Y84 zRi#aC{aK@}9fNijYniue`w3ns5hX2%q(o`ybarT&pXf=~aLtt5pbbL!tj`xnHj>&%$!&;CNh)Iwk)O*jilk}-s|PcT{T^&j!#JwIak)bf7Pzx z*+;$pS$o01wi-*xO)B8#>Rq6!ckeRM&jK>Yo(QUn%y}ALa~fC^1r1CFRmYG3nSV>< zWpa*tS-MU+d#Q`BdWmHhKkKkqBTz~LDCqSKUw5Y^>(e&Py1Tkwua2r#Fo~L4CJ@!p zWd;#sgVh6xsF5T>4TJ6Aihdec1(}W-(N>*;7CoXo7Fj^))rXYGVs>iG?Cg}P6M6-Z zF=#Bag^3wvdJSTSAe%#65r}%UPlc!mg9|~_+;nS-*b1!ty_n{}`7_LzF~xCl1(f&-d)z`k3>sc!9GPUwHVk zgSxK%q#@`xa&lm@bM>gy&*54$-y959by76_o@ns|apdQ3vqe`nlTMBxqM>N->xr2&y^5bb=}k()%jixAwyv}I z@)tSx!b>d}8e+gO!ySeyx`o+7BJ@|w5zy!r5OujU1R9N>>O^QZd$t%OK}P+V`pcjs zjL2fJ4nX}G+Y!ityuUeYda4O9x-r3-7lx{{PH*ae5I>OlSMcYhbI2f+nF*ttA2z;c zi+vYg?SiXb>Wss+fer~&eIhLAFx#VBh^U?ObrQ6a;>n2-a^U@Wwvki&n08R16GRLO zLUOJt6sSKt#L?BLQ`0cYQ%8XM)vD?AWkEHi*S$yhyZ8?NN?+)?5MXwEpS^2tGrs*1 zi?4jSrO$buQ%^r#2$_jc^@GHrLJzVY^fkX|5%s{Zo*Je)QM7uJ7PKjclBgLXK$%m3 zmZGZn`L&ZT8;x3vAqGhqWc)k`0Ec!Y(!xa{b06i4GVj6f$^32lw{9Yn$^Bbx`SBMV z*s{v9t6uII7d-p0>Nh1BV5nj!C}mIs&{8I@eVyhSfCl2!y+oKlvc5+(cu!z=t`L-| zsu`)3ponOxR%#ZOL_C!QsAGJ0qUV%zDs0r9`S+^o7MX9v8*qUL$jn|Gc>F$NyEYoV z`YF z{*(kuFS*vjGtU)5DM>_saC5K(4C+xd2>m6A=9E&+Gc+D0O<%7GYct7~z633aL{JS# zfg(a3f@lzpR!^#63Z%?q7zECr1p5=|q|+-AyYMO5yHA$CK>oILjWDE&BD0#<^_b10 zJB)5#Yw49QvgnytJNeX8lx~q?@Rm#&WHuYWiWJR(Ri8*rFLKTBZD(^${2@qn85r3l z5J}Wxm6B@4uV*d|&ru^_A_uRQgG>eSb0Y++C4W=o5_EN{ zPMIEy(e-y5-?iTU=iKlF5iWSP$j+dmwf$_X8^6{MsH1|00gY&L$3ZmYUKx-BjjEO- zMl-6ITdivLdQ1?MLNAG!+uI*G0bph!I(_Yb@u~=*skacQ5g^OJL{4PA z-p~wnvd%5q37(L(xTczWju6uELV&qEFwJ3~UiWJ{L-*nr@i)i|5vnROGbZ+Iv~_f+ z(Jkwo|GZaQcIkD7VgW)_F-U^eyYuRQ{i(U+JQ#$ji7l%j+N@Vmp(G_kL4_)sNtqhZ zqIj;8k7iLyoy_w=<>!UYP{C%rAHRl=VK0avDy2K^;FeV$x#{B`{{AQJAK9#Acc8l& zh{hg$XbBRdZqyoiJb8aY%g=YBPQuWD_Hpvmj=INaB+2njfI4RIF#b0F5|(3p@L$=R zI%N0iTRr&o_gH_=a^na0>J11&nxlEDKr~;kl8$mRsCfjuj{0%a9>moiz9hYD*srcb zY$Q^R^iLxKKw<)4!kh8$u@VU)z|80l8*clYmEZfQ?Q8EfGc_qHh-M=+p~)zz5hdvs zN+BKnUuGMDs2dXoM!cJ!M=5gzEZO2!;^{+xy64`C|A4=Y_hJM<1d0P2?zirTAGPl0 z&l}mYUMW3MMO{PC>{7FScGj+et^dGLxaMqEEY(TSU-_gY=q07)XKSeK{q!S1oy51{ zpY)0F9ZZ7E)EUy9I%xYt%dPqDhdi?4I}YsMDMc+FgM7ci1&_Z00UsY$w0in)Djy2)CBXkhOQ z)Jg5>O#n!sf(>{dR^Uze6)cijiH_2njRRZP7$4bW&t)%i(KRpgjPoxx)LEcNks%r` zc`PlBmOy3_AzIGxBSzGM$ogIbw9lNIXNV@^B-z5UF#n^Va{QqHW^fPj_wd*8Jscn- z$rRb0nY8P{n>_ff4_fz=@7uq3CyGQ$b<|YJ^(eppHlJAYd{Gm!`4}pt?$*hiTcz}m zhWQ#apT-`b`H0I(#Dt75lXv6S@q4(8Jf+`cGBvtAHr)0F`!=m{{xvUm-X&K#<CqZLRAR);h%HT*hA+(@>t{*`RfGFw$5t)NQYZ3%9v}Z2Jl6n!kClCPuQFMkw zuL~Px?|etnVl(pH4`rA-~ncfLU0CcAlJtBxMR*-9PYo7>z zPUga-XK1+7ojhpA!#5k<{-~u_ywn9(-sr4F=P8+#R7Hqr9tVq-5^D~;jXXL}-0h{A z9tI4W8TC;#>MiFyVzr_KCn5o0VShRq#&-oqiLc;Z+=k!53&^4xLa8SIFk4vhHTyQN zcK%f_ao*)GIDGq9uUAA=ssK+)2I{j5?Z~EJ4Vh_L|31S$jfo=~c&)3MwY00niA#VQ z8I~jwf%4`~kj$ zX%rDup*wld?sa!s`JE4W_?E94JGf6~>LsO^ds~j|h0MW~{ncEIlBH|^V|QEkop;-C z?@eZ>C)#6t^=siMsURa!&d(&#&*(uRd>dkESLXI&JhTsGuK{392 zFW!q=@t5!mxBwt~U1KAUTm9V+7`gO?o_XD?owej5!^6W;l6Cz(>T`?@8vRnx=0PHq z?zBT&S6R1bvvV(dne(oGg)`1QPp4DW2~a0N<3vy*YFFC+@g@K)T$IK~5-ahyupDp1 zt8qHWRC+T;R^4iJ%i6;#q-B@Cz!}e2s#ED_3_t;7L!ehO2FKiWN}8O__A!5 z7~QnelB-|k85dn<_>_}H89WwvshUrAhqJoB}3b5+BDq`)@}O`9zm9vo~Y^`nx@T z(}z8J+ZXNMzDc*&rK**SYYQ~*{U-#ddjkZzxEuc#e*<5|0hyT;oguxMaifpiVarV) zuGOh}zh&W!J~`{A2B`knXNbl*+J zM)wgZ)in!sQq=eU69P1PgE=CUQG6SJ8UGA-VMb=5Dk98`?Xl1OzhiY>m8r>$PYhi$GZE>&Q4HKGFvl}bRyRQ zGLOwVbx}HXNurBgcz@p*{}&s{f59=+Y>AAQ)C72h{5|{~+>8T= zB(t+1yA%8Ee((p@|KP(m-nHDs!97wE+4l$o%Aphb2$(*2?AP$=`O{TI2Qfx`8-E@D z0=J?jF-q<3!9!%Tj-xhy)nh8MfTc{T~kZygS_e|Bmf?@MEn1UKn|( zGV<_F*?phPzefIdJc>$YsupDSW=-x`YsVd*w(*wF+PC2W-R`ugLS{{fa`Y08$M8S! zSMfgVK!wuJ798AkzYRBk()wG!WZ$+&r6MAfOnJf{0lgWrgsMYo2Qi;@m}EO2WX~g& zhd!Mi`ou$e-GBWA5quI8BvCz)EliI&xPFDrH-EzBpM2SY-CK!@3|X`wn^q3IKSkbw ze~Q0>Z(o_p7RqNuH3Ez?m_o$0)NQS`*$dKP1S) z?0Be#$WmGPnF)N~mA~<@p_6_ns=tcsK-H;8vj<1)edq_qwykr{<*&5lsuzlAdBiM^ z5c@>uOSl)mfWL}o5l`%$#nhgSb{yL6z?QX^Ui~WPUiv~IPcQ;J`0;S+xnzc3moy*5 zQGLC1AqZqz{e_*DUH@6nxNL>ag0~QF#1f)Xg)CiDdp6j)V!N^Jt5j#4|K!_lz3XU+ zxxs}mc^_`+li)XSnuw0*D6^Bswym~t-xhl}uU4IW7Q)dWT>Hl3!_aO2+h{3a=1|Bo zAH%0(f#Ea4#jhB4^4Tv|#or=cin9$ODp7T0>5`cU?82MzU7K#LjBd<%HSw-};~97@ z{uXY;LW8I}A}ZONJ*q!|q2tcrb(AhC=I`o-V}aQ*cHZALe8z3gy7)c|7rjx$?-SSH zBp~&TuMwF?`h2O5sK#XZ2JY<>>UVGnhCu1bD2^6G$C=UV2&ETCc=cs?Dv^al+tbMt zVdlW3lg@m%rPnW44ZT&wFW@;cwW2pYU(%*Wznw0A1q)8wF7w|Dx8jZXvsec5IEVrI zhR&lfNc;C^k5pH_g+D4xjWRn6Oj5-|C8AU4 zx~}|<3v^EU^CEsn#EUQl#v+CyTfNe}LCv58jQBAOBf^cA`1nQ4MkCMS%h?c+nZE zp|e4EdJo1um6)9jq*G1_4(EbrVitQaO?!I5|8JKL1^@s67zp`W&tumkgQ^hVmH-HV o00@8p2!H?xfB*=900@8p3?#(}o8iK8oB#j-07*qoM6N<$f}ngnIsgCw literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_doubleright_icon.png b/mods/unified_inventory/textures/ui_doubleright_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..af209302659d58b0e1ce402ab8bfdd0b618242cd GIT binary patch literal 9322 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_green_icon_background.png b/mods/unified_inventory/textures/ui_green_icon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ea28c822baa5b42d0beac2bd74b1a49954f687d1 GIT binary patch literal 3727 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_home_icon.png b/mods/unified_inventory/textures/ui_home_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ce4f3df54fe199eb50192ab2be8b0ece0aa3ef GIT binary patch literal 14289 zcmV;?H!jGDP)x+{Hq>CEa*M#s2s8SSTTR8q{)dKW5z45cHMs;X z6$TE0L4iXBK|zf{|3Gwlxp3Ep=u0|3c&2AK!vhB@1|ftHLI@#*5JCtc?E}MhaP&5d z!UiVq82keyJ=x>tqsdIu&{V-CN7rlo!3fwI>&(77JP+XLgTFx6bt7MZOa%N4QL^|r z-|kWtUI!Ctl*X6Q6P$hVj3f^l8x6rGVzAZHOU#Fn(h z{@BX1H#CRh1E3flU{`?cL+6{=dDU~S~j;bExE&7 zs8l*vZ?DT65BE2_PmgyySCpQF<9whEAtPI2}YI=#cDPr z3r;*AN7lWJ@7wn7*p5&lsWmwSC7Pr_Ucq@p^q}-JTxZ7u!BZc2;K3 zn9-vSpE!APXGUh`uIdA|D?_31=J6B82DDmj!s&D!BY;He_aH!eB6xKmZ`F0orlTXb#t0Q|Y3P zkp42W*`&+Q&qt@?dYw)Ohr-FwXlH>0-yZzIKg9khPRck%?Z??+HN}luprUQ6Y5rF|nA{vdsW;Ma*^}uK{!{yE* zks+CkL#xxlY%;N%U)}tpy8VdF<_P0|sp;_pXb)dhjQI-u8!tJ-T(8T&G6c(ICX+^| z8vp2UyWIqyfFmlb)4zgFVglro-u6GHT|W`GcolIV1JB>G=Y_ z?^~>PuEpb^m0A~{C}q%BLLi=M2@fyyAemX_V#vkb#+167$h#LB^=ehD*+u-0Yx{j z)%?8b(m~C}k~H2ndw1M^K>*K5#5S z=Dh)BWiXjcXlSTse|2=Dv7rIV9-uwJXKn?^IcnVOtgNiPnX_kCD#F^R)XB=NuPm;e zb<>};tJi##@b7#VY=J<401C&GAgG#Mh55AsLtZS0W^^8rMHZ8Gw^=eT?a`1imUbOrX4hG=&_8<}ts%J5RPInbLy%uJR z9m=aY76*`a?yqk!Cr!@#TDtsmEw&V6X=y1z2OGgAxKsu70toi7VZ$i$NfhKTf=n>j zhmwH52?Qm8fKTEO!VwOJL9a)T*UNcPQ*!{`9xs%?&VI5s$C5r;)VWa+)M|BpK^dHN z$CYNq&z(B@BTxuxNs zJONxgf4oVGYc4_(i;F8p{7sk6LP(q-gz8;6`>X1;_CVD*%l45_ z1%y0f<8yK|0p)LsaH4ha@fJFcn7nBYQ|KudVRoBlq zlw{g(wAfQG^#?;q{vinM7HQ|0!bneF6VOsMPlJ|@&5^^JmZ;09$RZ`E2RQ$ z2KFH_2~iPLN(B-H53WfAlw(DOfQ|h~2qY4&#rG>KE5qayr@(+H-hJUQf)6(4BpzP; z2pXDN*k1rR776_IU)I0|XmkeCFM_?D!Ca4@sX+VOb1du=y`_o>KSU-uC zV@L#g#PRB1??YE>6Es>Kv^qW5cJJPUn}2r)x_i9G2!L(w)feIE>rTbU>E{fu>(Sk5 zw%YTRMXez?0y^C`aj?jktSmjL4M;lq>&A_d6h5(|*H z0ErDvO-%y0NCM8swWxYH|JNjtybJrel+-{XhS!%aM&qF>02(;+%8)y3B8)Z%*tTr_ z0tyqMPVq(2avt~gDTUr<2qCOFjl5_lme6A-$8En6WY*wV$?O3zo z1$^@QbBIR5$jr$_{)iKiuxFy9W;>epZb2-H zN{ck5rYZ&wLe1`Nc<1@Y5%Be}A1=D^d`vpwL<}v?!3l%1VbB7Z14kpXY(%d&62yzk zmgD8+uOrl(w*F7F|9vHN=V9DfQK#?Jq)!gOa!)W4&1USKRWTy62{5g5aw$2Cwt%>T z1czWqT%LV6h6y2_MI!Jw!4r-rck{l4e96IVlrEf$eFy^A;yN79cVH6(l0-#fVIRID zBZ1kud1yUy5G$U30BwzRBreRJbr#N=IRikF1t`dIJK*9p$@PJU?dg2?jwRSF@kQ_~~W|Xi^9&nLJ4Y6J+)kuYmn2#z`asG$jkibFB1{wZKMz z={3-(%vA5=@9x0+uPi}RZ8g`zq~j-I#*8y1$ADxq0jtG=Q^pR#fD9{)Mia6sj)S{s z5Oo;p8yd0b-ali<&RqzF!pTS^`r|eNPrBr$>_{xWJk^yxDLo@YL$C-Afu}g84kkC# z(w1l)pG(M#e^-zEWe7r;x@pugB}dvJbbR$rDDPrxT64K1FxS zVMeh~R9N7>>-JmjakRp9Gk7*<6R+;kd_Yi|I{-2mhQ$b(kDS>5pd;8no0e|-uw<}IA4qI~ytdpyO7M4W*3`D4?# zBR7f-K>bb7$h`!U0I@H}Nv4m0P~`KPkv?)Tfg%WeCNTg4FOr4CBgP!(V;`P5kJuoR zd=kS@*5b7)5Jk|}jdxyn0$nYQlopsUemqW}cA6NZQ~_|iTwvq8Oae)*R1{|6 z)R9H7=#y|24@J(9@zBt-LDHyzKNCp&7ABkf2d@HVU31%zxW@RGICN84Y)PPaP*jT% zCRsXyCy_lq=RJZZl|Q^DQLvvx14$GTmSsO$^%Tic87zjRh3f$%x0a4b8?2beKh0 z1Lt6WAr`JH-UHX8=obPcv81`vvHI0#vFZI4H2Szc7W{TTii?Uk7MY4ziq!9;jX#Yf zpn78sBK0Jol$-8^*XKuDPXJ~|Itc^5jwTWTMdWenMitDd2ca{>5exT!3Gj<~cVmX{ zS!{4#U}+C(E)ImF4=Zl7iSv1Z)VdWa~Ju1Zn6V zvOnkK80uj${MeU$IJdZ#5(1V26DblEw^52j3yX^J<@)#Wrb_Yzyxk;VEV${nIBwKP zusM|Kp{S<{`liOYS;5rQ+|1v7+`~XHgyrjYp{ChGqY_PfKSO8TKE@CTQG){ieAwNa zk%-0NZR_7Qz`Kv%g=F4XO?Om3NdBF_C(`j39E|CK4D+EDxK|*0aJ|{3@?MtC4lT$T&w&A1K zo+J2bZWAsz|CbmxbO`5SABL}45rl7Q60D+en5&50q}Cv~T-zTEA{I|z=ET9sb=hIG z*cd26N>%{}0!Zd5;Fl@jhY@^aR`h=x;I!ZTpRqQp?KQ=vd5XKV5_gv^TjV;a!6TUD zG!h6UfuvR?$1ZLj!KVHvKr)uVavTYU2AaeXB(E>?P?}KG^SOk1$@NlABq~Aj`CL=t z69KOWuRrr3s=nL=wx6Fq4Od)oIjp^D;G)7pmW0W!VsbQedL8sSJ?s7{)!+?;5Q;<* ziN@9MAZn`it8*AW1-@Thcl$#aKfD4+M6vAS-DvUz5bSJ1{q}VTc*yZcK%=Wx3;Ys^ z*sgv}0B2nD$Fe{;vV_~K6d-zXl5ihE6t_+Me%YiUV6tyvVIiLrXzEWsr^pudAY4iS zWp17cGL0}1vMh@Oo{5omi?54wE;D76P~FwAQ-G&Q5Xr2`$F9_}?@MUYy@fT5!&LKpu^S{V%n zj4ernJH>>?wl2K7p%QJrFnrCmII?{$BL1G<7=dmxwEABo9fQ@|#wg4rPLdHtP4+(~ZMYoNF zARvpa!QWEW&3^J;Vu?#+P(s0(nOWGp=1qLO;_r;{D;=MU^Ul8jVSNfd-+u(n3i*UR z3)M~CSoz)>#o0arjo|~!aQv7N$Z@6M)6aL|^vPp!-|yyP+N3d`_P zg)}g_3!t~9LT9#Na77tzpL-$xFy{iyyYNh0I_ory8B&T^Bm}cT2fNJ*X_07*IRQW& zNdP8`73nzz3Sje5?x7Z=2Nq&nMJ`NwAg!PrdBZ2Mm;^x5ig@%YM0~%3BPRtVg52@uRkmPbDSqK)# z@_wHPAH}=`m&860LLgDeo&X^Vt|ux(BnbBvkl5%#cD1+S!`GfgS8F5tVd8}Gn5lC6 zoIlEpU->|&jGct2VKy3&lj%mP!wx0=)V(+lKIa+=D`qL-x8K)Ng7MJR;e&=-TqyiN4a`KarM<#amyCs^jMrO zSRJX5CTfG5M}Z`K-X64fbRraqamO#(JG=1q`yb+=zb?g`TmFc1=G=@8d+QO2g!|ax zW}5@KdHD)xL!a!SUZ=&+#|}hEmV<>QNG~1&SK%NC5g-zL6kUf;M*08^$|m=dTtEUn zA)n`}%JpxrX{y>D?PzO-FA$U*yzHBo;E0HFf=w`4^Cx1u&z3CV+<(dzihk!a3GLF8 zV1M=z0uZoyEvaN#x3?(74V%@9cb7edy<66C$1W-=DsbZs*TKYm0RUI36E=H_nzyeD z6$pi~V_yy4djAtV`TTO+asOZN;F4EhPfN$nx;8xY@)~SC)Q*tOj?w|;7*LR{fHizA zPQXZFUT!Xl7t*+vPOHJp34>7JPJ!0c8zacfmmNk!^R zz_F4;=#xYuVUS}os zT?1}?;2GTc=yO=N`v{VjG?bQ=Bk1>`LV?gx#wn#E6-N*nEHSq zn^6l2^64@3$rrGh40_C%Fc5hz8}zm`CXQfD%@F*uf#j3W>L>K4Y#{lhJsFSA@2uT( z@1f5>I#gG+TLGJp!V57FWmAR(en<$^*HUdO96@kJzjG`AFiI$(_sJ(nFiCuUDfpC# zB0(2P;&7y3-_FlfHSa43`Mo3*od3&nF|eY7#u$Bc#spM9C-_N#qgWTk`FXhh^7C;2 zt=D4F^_SpJ3$DQLub7RlmU`s4Q!#by2o&aJ_lBgSbop@9EKC=}X0s2%`GYT;4_2b7 zv5}yPSeIfCf<>St22WdnKrv~==e#C>vf)GYJjbz)PYOp#Tz$L(@gig`aWf@z*xJ;9 z4_UK9z8r&s!b0|=WI*4#4#KEGeoh8vOc{%5C;SY<2baN>mWrfa z2UBhezHF$*6I^9h3CH<-%AR6>W=qUWx?Kkf>dFyd__ZBJ%@x`S;QxZ5* zjxA;2lB}T-C*S&!_`ht*pd=yDh^Xhhk`v(k z!D=jg=XoqyvjVri@i=BJyAv;HK0|YQ3-iQ-Y`OVCDY{iHNY0!FOTk$eK!#08T*e&Qa|Q{XlGYoJlN{fAIn zxr6;NX3S_+%YOmKP}DQS$EcsI4P9@AuW%*DCv*uMNwi^o?U(qpeH$L={0Hva{{mjK zZbW3T4w14r+RYv;jemq^G^_Al;4{=1yx5ahi?=&hqSJE-{ykqJT)P=aL?9wY(%MWO zi5(+)m0iXS%tJwjBNB-vlFpnGhY*{JEHaw!p#~a z)3ksEK&m?T05E9KUFieL0gYLM?4TX+0Xf|c46De%xYR+QqfD1i){@4(5=?T@{gu?T zd~PNq#kg8|D-Nx}I3g{-+!+n}Sx~|~2X^(pMF{k?AsBrbK(yaf1xqsK{PWJkW#^p* zPnF7hHyx&UmZT23zfWbalx|6?m!g}`xle$AOW0RR#YBb3hohwKFW6f$#_eZS%IMp= z<_&}ces#~zjT{&?a->89Q9fV**Xyf;dk>K?^u_Jg6gV?n2xLVODpdgHYRFPRBmvk# z(4kkLv;Hr=T@h7#I?jv?!G%4eaDr_B@|#RB(~ig!_YYq)GMRNOEh*{qKGArBL88}s z8V*bY@JGGTv>{`_P+wX>1>X%wCM@ds8!TCq``gyAUO){vamp0jFy}HDdyc47>qdkr z0Ze8_3n_-l{Y)B>iwU$y2m&OPxAJM1J}GAQk?mruiNK+<|;!9QH09EC&p*`Sc2Kpj2_U zwNekX#*x{Tg2~<@oYp-6XZr>rJ7R++sY5!43Ki0dc2ehIi3gR-j_Ma9MFYHP--Wlx~F zt{QBooN_W|Dek9xN@AeFM;A;>y?+!KI;{@YWB`U}1a`9mIvIm6)B%SliW4H)h#3q> zx1_?;6+pQm6<pk?2>eoFun02w%F5N^D79#+2j7T#U= z2};MFqV%|qfJm;M#6VC9W}go>h*v;KK(JYvLqd@7uAE6YJ)Ir+VEIzi?cD*kabw5g z>{+u&Fa#T^&Qun5Fed*sPUN++w@{d7f=Q?0d-01FFc#;)X*OZ!ww+Kq-SqQVYn#jO+l&_e4D-n=Dqp=tbWqC&h{!*}wId1{hJ#`x? z`%h^F!yH{lb_e_aXW}HDpPh{hFF0R`xdJ@>;tHe`4nb~lIrS{U3TSc*#X0Q)Ng2zI z9x3MJLFquRf!xCTQh;hS=&<3vx3PQEN3`TAPRaS~E9!)97bA4vB!&qRzb(wtFG?e^ zE!4dn>S=hoyT1b1Y+*$ZxZ#!WN^a+jlBVWaIJmjF1tz1366)VlowPd`E+)}X68>}h z;*|#=O@ZI@gZfUORQ#TF(o}|DvH0<)(UgqCpH)crQ0nz)*+c3J$*tllN`gnc2uUVM z0;+QR7HoXyB}Bttsg-k-uTR}8MWLmoCG7i6;FFMOd{V`b6UET%-GG|Ts3Dq~n@A9> z{_T_U<(I*ZZZekk4dV)O{Vh!rT`WVVs`~MLD3YL!RigRsJ6(AA(Z|tV^T4+?*)}Fk zxR`S?oZQyl#!CYFjS@u8lxPydcJ=Oy{5P9K3wiwL2tZs#1zZ{KP@h!$`*Y7>%eJ-L zL`ezpwVc1G1mR@a)k}#$VrXfs$Lml389q-ZpJUo-r{eT!)4md?&>%g-EyxDTmS046yT=bz!Z7|R^RgZc!K`Z`u754SI)d^uEESHW8gcy8`XPu zGD1g?Ws4UJL}&mq_#+ZRHhb_(9eDpAPou5=pt`S7HTE3R3ESKeNY zhC~$6q6(NzMglGpLBhP`a(V(Bj8ETRiJD!^JH#3KReJv%xZSSaa&iJzB=rgZBT|co zV2T2q#4B8z?9Cm}CUCpl=;&y}p_;>}t~rQQbv=IU&wf;&iThXNY5|ZAz^!z&<-2m5 zh`+OD&&G9EU5s>%7gbx=(#RtCeZCYTd4E>b?B22-+tmKOaL^B%)rQM2`xQz{iX}40 zJ$wZ0e>Auy>yrq%2a@l;Z(k+eU9}2JpL-EE+`148{_A1l__{kO8F1NUmtv%fw849|**|D9TUhUpngi9?wQ~n* z4mYB%sf}ghNE$4NY4qs!2GHg4Fm}M5KZrwzm|h65{}X`bUmVt6pdGzuvm~o}rHcM2 z0*MlU?;~!>T}4I3__eCkajkeA@2uYfqi!Os4kv-84n|wUVHR|vr=ykNFz0}Ay%s+k zbL@00zmH+XakM$!dix#ht3H5zwTuex_>a5^w1kM3V1Ud?ko;Q zu)7_>P(=M4_W#?v(ilCf>-^kz`?lHbF&;eL4cM3^iQ9%2$q=`pAyH`4q$N@T6@k z5+DYTKl2^w(QDbV#@2c6x%ZrVpL6Pl09nEcy{cOltZcc!;bO@?uNaF>oa>3U`h@F_ z+iydATMM3i{^u||H{<#*+{DkY_dWMRO!W6~DRW z|KJdIKeG>Z$65qNC*oX$SeOWc1VZpjUnYtH2}6Z2AsLVfP91s~&dT)=KwU+ERhj^b zAZmz86waSpr&JSxN=Z3m}7lA8neB4FLrM5e%hZBB8HbNL(Er>8m8CiV*cffC}L>;R;OxiRCvw z0N${3C!hLv@7|3!_wEH5hxj}1ypvw_UWTd3Np8!!cI`UO8a^�c#vUC# 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_left_icon.png b/mods/unified_inventory/textures/ui_left_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..373b71ef17aa6c31b263ced82b3728815e99f664 GIT binary patch literal 6433 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 Z{_g2_TG|LM{rCC+=xP~ieo#k6{0}CR65;>= literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_main_inventory.png b/mods/unified_inventory/textures/ui_main_inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..b7860cad36be16f7c51dc105c9c1d88d5f2c65cb GIT binary patch literal 4112 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_misc_form.png b/mods/unified_inventory/textures/ui_misc_form.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6ad018d4b51f3a0315475e0a1e070a08521d55 GIT binary patch literal 5368 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 wlLnOnqty`OIMhw?+;fB*mh literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_moon_icon.png b/mods/unified_inventory/textures/ui_moon_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cec7009db94d1984954ede4c306adc049b5aa41d GIT binary patch literal 12865 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_no.png b/mods/unified_inventory/textures/ui_no.png new file mode 100644 index 0000000000000000000000000000000000000000..aa98ed621e4aa5d7c528e00f099e90907284511a GIT binary patch literal 6373 zcmVF8!mU{UaL}#Apj`*8<%-XeU*hG>uB@+G#7Dv`Nzj6|7pj ztr+r&z?w4TF|p(lT6Z6B$B7VDLoRaLF)gaY>8`PXvb0dM*8q zwDmg%^0#CUzZ z!_a#rbC=<*cs^_!J&(!o44Jt@sD$!-0Jj4~3pGbj>Gb=CW0{5z4QXq(_vN$E9bRET zf5QbkXMiw(I2sQPpBaQj3o*`@WxD!M3Dt;Ua2gEXqp#f=bbSon7Cl0*Gb3JM3_O*m zO99eQx)22L$5xX?u72_}z84uwM(i}4Gqf364QCB!49$kqqHzM=7pL{}XGN>w1HER- z5=ze`gb%q*L~3rFUvZw#p!l$k>J>5LAM<8{*A|b%xb&Vg)RJ86H~( z50=4wPr$AJ4L3aoH$DoV`#-qpak!-n?k$J!zY346g4ZkH=mrROKzwNY_5E5yy(Nei zi9sGh-eGb=P$}t+K>sDU{vs@%4+6MPMh_;M^}Q~mTQl7@`bonvhz^6d6XFeqRdC={ z_~{eMu@+t!I!};>)_!E*t-?tO2d2L z)j@O`;$|ycbm~3#shr_2aN;ITUZPlC*NTeFHqT4g5nALj%N3dcPl_5Rs!022s@@ zhTz$`TH9CKrCngv^L<&m`Lmkswd3wLIsoBDh*!eOU&9hqPL|I?yj%&zm-M&(8b0?n zys~Rtpiu*aO$rZL3&AcOEg=j;H~>`uy-+k)I(p~r1rkp#f6(y(bWLFRY6y2jycRCL z3_n3*Sso=xuULjz2S3;WLq{QQfbeo?IA@23>_lLPg>*mk0CYof-q!b8y-VB1S9zD{ z^1Jl`waC?<)QsOVZutHe;4hJTC(p+_dXH=18@r&ZX8do8&SWHuT{+|i5<>bsTmncz zN!}S>LcA)S@+EdjJD)>lFBHpDN(KLC`?A>9tuvt|5e>^fgD-)($b0ET_AnguxCQvBWz+Z%H)7482H+u*6I-P^y%?(n5^ zF}`Tk%G&^hU9g=6Ja)q)r&J+i8xCwCqzq@^8?7_FcA#CZ*W1ST>{2gFdZhM#L_q}X zf_qLuoJ&q%?^QTwsDbP1p?Ic6Fr=(M_SNL+pW?6_q_`uXn?^K_+2^V0v+HrLe*3gzdP(roEJaF^>@qlpVo5jR>R|P z13(q*I18afkdr6qD})1%L-7u{_H0%whgL2iFK`TQuYr=uiXf%L&*}QlXmMx1;WhY2 zd;eS&Y;Und;NDwb=o8qZ5lZXe!E+g(TaQBk=OCzuj>*pcdkwLj`1MWPfUsS^w;t-4 zU{t}oXWb$wR0j#88BTP8*JFoa+_^v%eB&6D<|=}7muLT|VJM-c+hjN)*Z(i@$>%0Y zJmd)`CxSvw&RlL%0csn8c_qf1L+3%ma`?__D4k@xbLVt;g46;M!MSlSa9^M7lOzHw8I0b8*p>W! z{j&QXOQ`!VCl)6ldJD#w;y4Ujry>HKqzSthSWeIl9}YsK&%k-c^0Z+We0AT)CF;84 z&WjSdemz>;X;8oa4fyd}j@e(x38sH^L1`!aU;v`Qq)je!@!rj)7MJE1Bj|rEt(*@B~?n zUU+pFyhJZxg@N}C+u+N4p*XYrE4ST$U&5kKgL?kuaLbD6--KA`7-l&Jp|}seIBegL znh*xg8JfX62+QKka!{8Zhe__gOYXlGqRrFg{vDp6AOiOo2Hz0r0!`Nm?64a8$-MjC z&i)4`{9u*+%l)s1a;a#>Mm229RRp~YtZkfvq9J(dB6#uwi5G9Q>L4yq{5C8?#{aG% zPR{<-QBv*yGTgCB?*A%@ps;o@!5D>N!)>GT+=B^wHM^`3z6~DO1tszTEHk9l`kn9v zx>f$w8MZmx|J6?n3)R7h>z+mH29_pB?}6uax*K9>Gz6Xwcb-q^{=EmmZ{aYGadi{J zLUoXa1EUZOxkii zA-I%~J$7Fy0lf|I=$3rC#acN*%L2~{B3K;4Be4V^TPE%13U)44tDBox38U&1&c+-rUkD z0qlWcV(>0+06p&zK$YPo_@nHbKy$B8&^JeO0$t$s1-A!~01SJ;Lpy-A2f!_W=isxe zC4f8^!4`>NK`bCi05=+9&mn-61h5-IVu*q)1#s9<4mZjJuz*CceU1p=v)KwjJA^}G zJ-cq$5dzLA2Urd_t)C+TKugIj3!qOR0o>#ifVHl(6Vk+R!H3A{0aOL7fSdDQ0FG5e zF^R(`+wxohw`MDV_aWM;B(TdRfF5+)gkcTbyU8j8=aMIw&((p-!26s6P#M?=(RP)A zjXs1f5745s0Gr^!Ez{o!%K!ZYB45LS8bJ?cBLHm+3%98ebRdAh^>h!dAbD@YBipT3 z@WSu}`QJ9yCEkx2ytJbapq1TVt6IV9J@7}8I)Rn|-i6ng<3pZc-c<)NtVj}oy|?ou z_?uxJ5iAWMt%o@#t{}Y+!Ct7w9tBVEZXOAs#t@7-7WQKa2GLLAD{!F36(&n^`NKqaLd-b=>-&a8><37H@FUf z5Un9QT!+dBe;@qxxK#=+08fzD3rH#fe`fHkwtm9i&Wyu7J~Zf1L1HPWQzgM6*w1_$ z@&qkY*i*|@GI zhS;?ipi>Fp2}oDKGs94X4?v0mh>kB)R|FoOe4}_5X25uZQPjd-jh&@dfzOh%(6jgfhauYv!o)kVwH3 z^v!T$7{hAU-A+B$q&;Z(4cz(0L=$%yVngJ*Y^Vb*C>U5EL)*({DKT_+|NMl*y{RkZ zU$iC3WUVg7PD2|+C*dMM!4u$KJDBFgP*?g#5xUnoVfnXSx4OR!UwJ)gN0$T;Wpndn zhZ+l&aNp6Ky+EN)kb$OE<+<3V8$RfR zKx$141zpxk;ZFFS6Hrv}1k)Q1Vkoko=M*_+fBTi$A8dj)avAMV+6sTBH|Tyyq4m`2 zCOFBYMq#6=ND@Jl!FN5!xf4CaTeJTa_}UwjsnR}x_C5#_A5ti~gti?0uzlLf!a~PT zr+$8t`5fnggjK&r!%+w}LK~AAZBWt*x2No1kfkSRHyniP>Zh6y6mo)X62R|WHh$uB zoUPtWt(JXXgj*f4-zkIx=fQIez^)7k+TcSL@Th`!rqnT1bRAqfmH1`#9Onwy z$5ciW6di+WIoz++?TLr`3(4yG=G4(l1t)#LsC^UUNp3B@Pix@NukR5l{81Yj*Oe}@G;sweOSy*U~` zWtDu#4DT3z0iS+hrYBb&EItljKbxsw;c9gbUO9vKa{wrWgW;qDISEPMX_b6C4KKmn z>#pWW_AdfF zpRWn?PPwEb(A^B_c9#g;At4@vFoHOSONPIbOAh*?_Ja_N=hoBstLjt#V}`HAbKqk3?pw~@bqDd<%T8JX364NO6nE?=!o_k zmot0Y@S)!Sh`pNUc)0Ufb@+~}&R-3c0FTeL3TYoab4uB(!y7n-a8c{yo*@R$`mmoi z+<{$V%Q(~Q+KUY(*1!F!q5O&{^`1nKgW>IX->j|NM-AHzufbEy<*^OEeq#I&^II)% zkg`OOs}L?Ji3%ag_~0uIj~Z_Im=iUnmOv(=L_f25g8%=^hF=(}ZKK<>J+fl_hgllF z$6C~R|4NPTzYTFYe3iLA_QT@U@aaR)*8u)mDg9i6H*h72!&Z)vmRC@o5ZKwa{`;um zb;BdNPW@iPEqc1f=L|RM`&$k7>1Q5Om^q=>u?-&Rd&}sW?bcn3y}5MuESJ9@{B_X# z?{Mv^`Et~5vtslvc)E66>0zrK7IIn=l~=IDa8ZoO7~vH`L^7Bs;w(v9#*Q)#9vD2A z(VekgiJt2FDhRhjyaLLsWN-eB3i#q7NH>7r46%fuu;5G*-Ms|4-%%@61VX})I3^|% zq3~twF}!WTrdm^`?8GejP1T$>x`jM+qWvg+dMw&{|Dg3g|ua^1&SVlPwj@o$Mh_M zCd(sq*k$7k&|~8g+%y{gJwp`)??Su^_S^%Xs9vZ$q}HmgT?e=Bgq9jT%A{FYahs!b z%vZY6MOs#ZS8J$-U?;?Dpyg?}S&KP~Smg$zo*Dh#1G9DlO(-3Eb2gmxt?9pT0 zq}rkwUoTf*1^&AbzX`3+!(DRsneE)d*rXWvGA!8+dn(6Wrr!WjlP!k)@C-Tzr;J{+ zy-`{Hafl9qw^^>f4E_Y*6?dF33_Y8ezlBe}1;5&%&R8vYjSyY-3@uhqq4O$;!M+=* zT}E$G1E)?#KMdY3h}Rodz^}dqp8$BFFynI{ufw8FD3VwB(mSwWhaOvV0=!cYHma6B zW91F<5ROf&?%8e6@HV~v8U4O`#r5M5R)V)1;ths3prQ=!1ULyr&lO_)^o&*34Ehb+ zxdE2F1A}{X{doovn`AUXy?6{Pn< zyxFi823~_@Pg?5{<%QWk^C7}s?0E$qSOd?#1$CQsJgRcsQ-n3(odEwN1ho*Jgs9GN zN{yI0aT20hLk)z6;3)Xj;8jAnTl?-S46C4SIXtrr?zb0<%4esPD~yj^>?$aUt)0hG0wqt*1NZ*_|A6^vrLDD-00000NkvXXu0mjfYvnA2 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_off_icon.png b/mods/unified_inventory/textures/ui_off_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..187e59a6183b8b0df0a8b5c16bc833d0f1d34166 GIT binary patch literal 5716 zcmbVQRZtWRxZPc9fn`}jLIjqOMnFJmSb7PGB}KXiq#H?HkOrl@ zW3T_ieY$V=%vbY0o|$jvd?!Nlg%SzTLm~hGK!Q}3*Z$W7|4T6bzuGNjJ`4a*(IMp# zI-bDYE&<@b<#+f^NmC!x?BDo*Ae5O^4~Sv$!1z0K#n20eriqH$Tnhd#*e?9|7+l|t zWM+1cKvQR1PwunJ<5klzJehu}J6v8iw(fsXP;WKwhp7&>FqX+P62H1u_W8PGz(Kjs^jimos`qkn zsg=%p@h8ct2UzR2qesVCURCAR-rlax@57Z9z_mpykuAW_KQVA3R$Xv>?5)F1D>1kal?Qc<&rOfxbhpq8fWQT$NECH(-RYB(b3U3;5jLOEHR+c z%=gX89pd=gN^n<|QS;bGxxKwT&O#rizrILQ(84JA|KslCU z&{rgAyC394i}-MT?L9X=O&QG~=}nATiEYE$8XNyMw&I0UWcl5k8#cZlm%Q*?x3(Eg zKg-O{&c0yYE7@D>=%9j8zEbN_`n#>02_!1Y^H52}H@<8ALhfD(WDSOgY*l~zCK{$^ z5HWk#^^t_`K4b11!7a(0iI3Bab+LNJre2MSG0w?SR8Ii7Ph;(2L{MJOr!ot+zrt}9 zg`_l~AZ6(Rf0O4@XKUTfB50f+d=`xT~?D zp;C^{ms;??;+yLqs6^bjEB|;o({60*T8y~;pV5qquKoRe(p-dC?L~4T`1ced4g8D0 zJA$mfdwm8?;{^J!uS?C=<9@K{6gWg$IH~-0GhXyAve6nGdYC?ezqr*jJ3A{0p7luc z^0Qs}{^6UwdhnE)zMR8cwYtaq_r9=Y->B&)Tk7Sq$lIO>3X%-#Z62Gh#Bo8XGK?H7 zcNU^!lE9z_+M5;1_pD`?R{el5^;CYuNFpw&0Qw<04Q{ZQnj#j{*mRN7 z(SW9Vlc@efmGomjL_q)`q#~NSwDijkr`|SWH0MoOoh5Ith^IP@CONJVpsNH{EzJ`6 zL1i>(zR@8?SC)Tv?`Peb5DgZG6^l!=V=l7398LFptZ&l1?5*RsY9%(sbzN^mmkhvy^nW{ASMC+i~nA!gEBM6&QgEI*c(@h~Lgq0?6ySG!-tpD~ zjZENM5hfW>*SqS2HCw~8{g#%NO3EPCFiZgcvpdqlX9Qkb)ZOcQpX>tHz=PB$gEg#u zDJ1Ev(y~pa`l9jP&V`A-AlZUD>{X8YGP^X{Q}yxK2jtzZf#{nB*Q&!{YJ-AK+eZ_M#Z5Mp*UzK(~NYFl?DUs5+}P%A%qF3 zB9@fO5TpjD;nJ7;UGVy#^LdBe9k+fu4r@0sh;NI57cMh(UO-6NcDs?B;F_9BFAoc5 zVYmgK+=w#l@fj}Nl}|U|ju! zw#etsACm;j`*W3%Rx1&&Pk;yl&IJW;Bkc!U`|-TyyXq4YVkeUTwng^hMYj(UBialr zDZ^i*yV{A&EFij0iZ)0qtEA6~vJ4tewE{uwtSjc6AuROmxRKl1r$P(PDOJSkK7LYnoPhiFBvKN^Z@l(*>NUD|uJl>+=Kz+go8bl&0ZTt% z+k1P5`Q2`+UMQ<8;RyVBBM})h|yvxksAVbK(W-=Zi ztrC(2MF~b8`3$BA4QWjYzu!%4E0LBrnM`$lw(vGAdd+w$k<*6%)r(g_aR(++R^pvB z@WXh#AA|s|K}txFit9R0F}tAU#|{0O>Yupl10KZCtqp)n)-`8@2JV-h@HOCS+Usn> zK&DYa;QEWe%Z^0xQdm>$Fg4JC{Z1mIjtup@^LB^qBThP|&pP2s_u?&h$`NCqKOzFq z)Fv)99!&=?&s3Ve5yfRHsuMjHZwNKOVYD%z9SS$J{_DxRBgS!h`1sD;P&!rv#5H+B zFJ8H^UE#zPq9y22t+3XgL5MpYZ&TY3H+JKHSCtxUJe<2KiNbrDMhWahA-KbcQpVCO zi#eG#hI%jYzU%TI$~I_9dX0x7os_k4&QyXJiVu9sJOt-<%+IB&#}x(DgGFhNbD;2t z1AOYsLM{(+Y9535MMNtK6|XNGhj?V<+>d^TNYE+V3vKw)*3=}KMj)ys40^s={T%sR zQuA@5RD#kTSR`r<)C^M3*ptNapK`e6K=9Z@MA){>JMEp@XZn^ra%RG}(&rMaZi-rx z*jGJRezE5>&F0Y(5mUY9PdFp;R7wq|Wa|Xxha;Zg0oo0fvNPiDMU^pDm{Ap795kDM z#bSHgn@}wZ&*r3tkN&1%j8kgTMz0HkZmSk9m}kmsjL*!{PkHlL+*98fH?Y_=Yibb4 zVAL6aX85@d^52t8We)x36~)DYb!svS>x}@^B?7~YYv5>Km8D-l49X1_xx*z5oS60L z!zI~nu2xc!)}C{pchUlzr*YW64KjAH)C|arUy+Oyhz0;8VY<(p2nA(xfoTR_B{KvWc0&k9;v=gvE0++ zD*+<_e7C_5AcvF7_zsgS%;k6C24)U%^!ok86KMg4VzOjK52kH?Jl)n%apTtAwwjzv zoPEivLr4NJQ~+=+#W+B25?_^QfI1VDKdjK^N88cx_R%pqa1l?bL#$y=H|~P7thk|C zKZTL;z(A|tlM*ZS%5J^(Ka&hn4k9cGN7s3KLb5kKIx>+!5F0UWR>L<6I22B~H|bJ$ z@;uA^%c-zqffAHUJ0o%@A~-EHbxB#}$-#aRed7`_crqd_thy?&x?C9NET_T($E7v3 zV_u3Jpqw;+uo>_<62m2T&ALVQYB`P^u^Qv(Kj^b$nfv^&imiFz!=QKAdA zH>=nfi4H=J&Ed&8c<~AI0KyT`N9{wz0H%pq{!4uvlPl2H*O)rxa|*2!6i}OvoVSYX z{EVp2ToOJJSiCmV@pxU5EYNOtLWMRc&w@M-Z#h&3KV4AJ5pX%AG7_e`f5F}P7qLfd zwv#s164IG_SYN1r_7pye?@d*Aztr6ltf~?mi^JOZsk4B?GL3}A!oKQR1}K+v5HT#ii1I2S;{kWNhb?7e`txz`n%1%H#~YCnL-#-4*7V^Lh3Wn6F59-e zLdExdDUNKw9I&YAYn<4S8=44BAbo%RY~o~0B`uzk-9C}Vj*$J9&IcS3JI?-$88 z@I+jn5^ypBB@yVBw|6CFBUs868;ljE5_jd%U`&wR4xm8L^AH1`Ce2s)$8nmXXn?15 zB5paaX3s7diVVd(!+)MZA9ZmC!lN}{gSei2sS*|z(m0s2LUu#@Ba6l|6;%hOA2|C36riF-LVqJ*?#>Pu2P0SHlve6nwPZ0RSi11n{ zvW^KXv@{p2@t5Wr9-s5rGjXmq&3wnf#1d~&!^~DAE0szl>bGytrt4T;2%k?{H2zHX z)nL+h7$g#JeYP^5cH-bmdZ{rqdle#J`D`ML=h-VrHH+KPJ~Z$btl|!WJh}Hy5JG4# zxuMW>gH^q4!ugm2PX_6D_xztDp*C_2x@6iIorW5eWku~Xq+J|Y!9Dk^Of^_?(S&Ocd3weQ2?AQoIYV#rJj0vWC zm!&XiFC?AngqkOcS>1&6uZWPX*^$E8)h1kWY%QVJ)Mdt>LJ$lMUEcD&lZ>4FO|Rpd zqOROyReRd?FFB3_7Wnbr(wIUXkM zC@ytGIDd5%JC7#y?PQ*9rZdpPXHzIiJ|>ivQ8@nlrsFsMTdu6<)J4jBpKVrRIi|P2 z=E$2;zcr;B*C{^o0U?E`M%iYbbmaZ^Imx3v3^A5?^eQ{Po0Da$KV<-}>7}4!IZ6=> zV34oump`->9#kocx=&)}ccHLS54{`fAUR#GPO8J zMdq|#PoI|Q3rHQaN$p6~@$hu1Gas;hgu}bKWAWjJhUZpIr(HSwfp2jded$UT>*!2L zzje{M(utEL?W;80#^1DIK}m94dYdvw-X!&H=fI(4;|8XVp@GxWLC3fBRLBV!tH-Qi za!McXDo#3dfoiYI9v&o1c7p=k zrdXP+(;SPfpV!@9>i8$-_fm{)`m}3jVMKb5?e_U(-p=Gt=1MnGUbLG^;YE>yWzU|J zp?cKOVVvdtjyCjw%(0U?DRP=Pl-Dgz(x_I+(0elQ=Yn5|d&5Lmy~jV?sruhc&oA2e z_0!vi4Dw!esU=a!%~ic@R2lASPR8v_L7zV6R#5gj`DL4Pw{>;$CxFIor2FrC0Mtlh zJw}dMj5s$4QluXy9;ygLs7Y)OE*yR{)zqdH2ms4)$r-n5-OQu0ei>a)UEFCh5X_Bb zg~#`oFWUxO8}0z!ddiOW$Rxv-vm2-{Ew;UktH^{iWT?hxrh+G|qY$8bJl}rZ??}hq z?B8P&drT*bK2EAJ;JhC5Ko>}i2Mz|LO8I%W(iFb)7c1>9dRcEea;gp?9JqnCc*7GH zsH%PamB?aBns4M7ngAYiH33d*W74MCr`xp55^-l2^xw81f8f+qF#@9 zI+qU%iY$o31D6w(zjXJqjxV_IWe7z~#vApQ)l<6#oGf9T-LSVMyoGJqk~T<)O=V^% zzG>NJ4+ZZ@Lx~|222tK)v{udPGZC+I?zlVOc>eo6$~r?<`ZSN!P*eE@%>WWo7&@w=~D_@($}=(&lgU_4xyTDzaWiOn2mJ zW59j=uj38(d?9%WT_2u=snoxZdK&DKX9jcEVw=Nv08%)g^d4(Gc37CLG^}5{-l@SZ z9|T};0(2XAeW^;zLpMj#rjFYFNFJ!NXM3*Fi9Xi({0g$_lD}10HwMn^@fYp|C&(No zO3)hs!-sUFg$Fd3c)pj;3ju^Z<5=Bls{|clI zP7S;2Xun+jB&~JS6-Qm${*_$ppzUPAXz@6CD*LpM{SKz?BJl%}($F<;INF+?C9Qo{ zlH=b3q~!axeXB*^!5Z1lGJw!&B^-U~w5=mfJl~K1gCGmJpC^Ub{m{kkbP#Dvhu4le zzQL-F&oWQnk8%*_>;rQygrYmy7X%=KHuF+)I~2ie_g?E zJsA^s!uL5Bl8cigF#DL<$qHy=`8!T&e-7`Eb;|;+iJm*Ub#Y+?5L!A%Lp&(|=($<$ z>aVL)YS{aphIY*@Li3Bo3-laU(XV=2@wRIr^W_Vc6~FiP`Bp{{k!Mo!J z4sCNC_h)*XT|De(BS!~f551QL*>i5Cgt`nyA!aSaPOV}kZScu`^o_H+x{j2WrcRST z2U1np0l)+78)qI8z#8C$d1MPOdGH6YyJK&9?9iX^X(~TnF<-p2IGKS(z2jFvHHy8! zZ)XTt#!*e?NyFnHDj(M%^HaKWcSbg{W}+0e4dq^BFMc|jgobA5){ugA(RJpRaPWLt z%NWu1a|=IIu9AAbIjZ#T$-U9=10I9c76d^m9Y zW`j=TH7iD3uagYHws~^k$-H_kO4E@t)Bd1x^fvlKlXydon>;39h1m2pivqV^r3;_m zma3BFaEaM)PArutTV3EFs#wjgC!>Y{A}kWS|F#DGHJW{}BKGhzzS(=e1b+a)QTFpa z-$OIJe+tUd*OS#!FD5W3n$;Ydsa&4Z89i1q+Gi{BA=XGHJy^_vwJ52d!PfWhD<%Gy z6;%Xv7a7VPg1u-erk5cn5}haEH?Mnek`Hb>+_!T7dA1;s!O{++45YUIA6Jua-3n{vS;F3-%)EtpMPL1tfoh_$+a`^> z(Kn;9uk1ygdnBE!CYFY#X_}^Knx<)*rfHfc>^+*-nZf{pA-15i8^Y^Mre+N;jv1`N z0Q+Gjdf1Bdunrq=G!DaNo0-#AQjhEtOScYU_oQpT$ zP?&@OX!@>#*9wosl!bE~UW5;0-6Yfjnkm=7t0lLP^>l!2z8#4tRcZiLJ-4zDn&m>z zRfN~#7U+R6-?rnQcnE%h4q5;#rh$-LT6hg^jXr=V+V0tgKj6XmJ3tG7#kR~Lc!h8` z^aZnxj4&Uz;fHt(j(`>bi)~t1?gGN|gol-PK8SgF7P|%Cz|(Owv;bIatA#21$ew~{ z2!lCOeVGl)?}Smd;wyLoj)oQhi*1dNWZ7f!5@7|^0WJD=dhoxF7vdt4%^o3?u z%oqp{(|Htn03ZQ61V9lSkVXc<(RhgPFAJnE*;&oOl5pSI)Sr}hdZ0r>1^{JWJqWU6 z@I>qV0oeixFSaw9%M0Q9vQO$<2t65!ft;%;rh{C$<}{rb8u|pbT0niPG~>F6q_al$ z0^!1v1Uh6SWOaG&^j}2)60`MD}K^ zXW@l+XvVQt4^P31bXLpAP)YBQD}7ycI{2&X&N$H?($~|BBe{X>!LrpmtmZRHsj>se zmCpm&QNn{HC&MHKKy$DeJVEEm01{LJAplub@i6Et$#ZZ7Iu(mi2WV#OizmwNEfrh6 z+QP41*eTZmS=I^f6MlfLDi)&-(5y9O=%#ptkcFtG{usBqw?lv6i+C3{SOnointA{n zBKwNYH9>|k_WT_buXBAT`z!0L?>$YfF+0>M0)r&>>fX zAV9_@yjk*ZbdweU&B1P}^Jwf>-Qoo@6xqPscYg8y{laI^nGk&eni&_CJxOvI8D+|c zP^bh!psWanA4%RM*=mCHO=)IK+3t3@wLrPg4?u5>>RvfLWLY>{cq>kmWfP?5K9;tF zg`w->ox&Oz|77nN!gjnApTjm2CVXYd2f+S#JMOET+jE%>#;EQ=hYn<&FUg*X<4u^h z4Lnd!atGWEKpt_9uU_3FlJ`7St9#|5Z-eB6_@nsiXo5uZwJAo+c{gs0q$!uQ{Eam&~YvEH^ZvwSN zU~*|Z6r{>e=;#nA7kHH4FP$O0*?Eq%mkD2U{&xxc;Z4FrB|rjzvcx;rb@4v$@cu(O z&&E0SGJUI^zpXLA&4hbNGD0dVcV%_2O!JksKt}kJ>;uwd4t|>gvi*ctVH!kbP;+H& zr#|S-$6RMpF?76S(hO#LEfHDXm1G=)m zXpnU{Ugy=ap$XIqLCaiP_CR5OWqOYy2y*#aG|GS&;s#! zno{k~A91(We|S?CemuMK-)<+hUBFS63l|fP!d468x_Gc`y4c#4mA=sdK-srd_Dc&l zgn)9vS2_Gqr1)wkI7jv+*}qk^I>4VKNl5M>JP9|G^~w@z5db7t#Ut=CoMl%Wpr`X7 zTv?K+9qphFrct1IvRv+$l;aJFsW?=07I1K~xo>&gbQ`aT=F;+R#k5^u28*}@mm*%_T@ zNG?7bbVcf~Oh42g{XzyE{(-MR%K)X{x`gB&vKI^c$ol2oUJr(1U|24^L$(E9Gp-BwHiA8-099 z63A+%_3$X2%Zf7HR|a|r#hSpJQ&bkdhCgC^%K*O?$hf%Vfp{YJuMRTx!B9D66MC|P zg?CC;$v%p#CR|%~ODv-t@M4h5Ow_5b`pGz5=dHpfpk;s_ZilDi`m#Y~FpKNjXO-6w zI7s$J;o_1H;CSUM-8ay=gXHqELM8ahV6DmEy~2^Q4q&M-0D(E8vrz9##RB_Qb-**Fg0#x|fb z-*?r|iU%xXJ$PBBb8XqH@Ed$&HYlDYdjT$A{5y{ReLP+L7dXteq0akps3ju&*m(Zn zl6W2Nf*wdn2n1%YLHWM?o?2h!^RQLeg3vP%1|Z5-`QzK5T9pL&t?+pK#S+o;AmlOH zsm{eoxH4uC0;nFh9_x4IRtBy79zE|Ch_4I&RRj^n$DElg(8Sy81qq5!WQ1@qi+fcTIgzwpTe|0~+8>>Yn#YcHv_7^Rw z_p3|`qklVh`C79cZ@?=pF+C4JHh%k?z&~&`~xq* zIwQ1a0aud!L*NrwgO|z%Wv#znbFa+L>gpxlBFzsGNK~tnK7cKjsQx?+e&DOJ z1Mo`hFH=36pDT+z2;?#M{2ih^16cIWwdf2PN6Eg5EtatGCG+Pf(|D=yc*zREY^$X9 zF&iYPP6_oaP~VC^QTPxxTf)K@&99@);KP!e34?lJr#8?d(!R=PDt+ec`#0``e_G$ihyCKvF-- z9q7i|>dh?!I10aOgTIgga3R@A{w{kC-htJlf}p;TD|CRU_SKJqk%jNz4?xp%4+~>o z+pTvpR^ggR<`SSTD^#99mVF({>u@sOhra<$_@sq(vPOCToCh@F;}+hju8H>w*QgKn$ZB6b5J369xaJJJ2=51=2_La%oZJ=RuBz>2Y*G^ZxK&EneZT6j0EX&ed02nIIc_QKDQ&8Z1*vADKMcs`zs zX=59?9sH8;G@PiZ3U9W!wh8Qy&*8>Mc1C>>_(TKmL1%)sDF9%zhvKbRWp{;B@lbpp zn!3I%7GDQnNN$Kux7AfiOr58!*l4hkrmPQF_kd*H3Uf}n?_w7F3 zZ@v?AX3oQz`Q|))5Oq~~d>kqqBqSt!MFm;Se>LR4frare_eog%MnWPdQI!3l?Sp*O z6Z&t46jJb1K~aJ7-}e8&+-nr2HG$cvZ>$P25)B*4B0f z-y`R>Wpnq`$6L`;?H@{-_lt?gr8CcEiL6&nnfdzI!;(+gu<#UJi&CTSZyRio8 zCi@*-Umiw7t3t)46lEEMP#G8zVQcVPd~<@g=tmUL(^3aN41G@WxOZy{Hozvsgk|YA zQAxpPKE>9W!-56pIvJ%mo)Fs8UjR*8STG=w zDJNcx2$3`Q{QGWu1LleHTpFZ?>uQWw%E4Zk(T=i{wcLKZBK?W1chdWlHos zRwjpytR)0m=(&uiV*YSbx5h&PN%r0dNehWn-BWEOAh^+pGo9+}GdPnS zgcfCaE7;dfIKp1k>)L95iEHpL;K<3#gAOD8%gvv4TfC=upx0GO7Na$8vWaKMd7mzy zdQKbuHqcz?6Ad!U!vW;`az(_Z#zA~)O8K(7qxLh@hdK{CCZIfD1^ne*C(^p(tu3J6 z%RZf!6CR9x?a`2?ll<-n-Kyrrm;HT*W)ysR|5U{4G*58d%{}`vQH*i_JwnWkJus37 zKNylVj92m1r>B@DPnlS*bFl#LV)%m7SMvf`$*EJ{R2?X1G&yH-hfZiYQB#VQYrZV~ zok|)aXXH)t;dMKhVax$|$C`ll33JD*24mttXqM*6NBkDn1Zb5reC z286D>;{dWK%9srJXvF*H4rJZbHz&)FD>aSLMP|LW6OJ!9I)C#IDI{cg{vJ|%{xYsD z@zWo3#c7K~W{U~FSemF%Q+hLa1%=n#3CA`uQZZm-ZE-^Pw(7tDlgSU}?dIBOa?Q_6 zXw&Jp;I0dE#tExqt9fq+DxZAvNEj-Mw;`(jiKN%jJk!<2i;hu(g$B}8?X#oqwoD-X z21#)~AWp!N{*>Up(}~lBT7tU-6ACRwR{3pVe5D^Vuf-9jXBv3@haQ<RMY%yOr!g5b^;p#!j&h3kRiMHf_6E}iyZ_h6S3modX) zk8cM@O$M+|_IvQ{o4-a*ltRZ;_e$?$zpoa>$D$^Xt|QdteZ(cc4V(t=jATiC7IvSU z4NE9s*ugN#^~>kDn`M-~Ju-8}MLe!`U2YfhXt_q3Fs!zS)hv*YlBgKk8MWGA68DGm z4e3j-AE4~pu&3Z0+pDzL(>O?xi01PHi?K_qloj5v4ekht4(N5{$|NNy`$KLXj#Ot^&cY8!&3^_%qWnc?n*pq*g#(|8SA!c=& z=}9LQk}P$-FkBS}cX&Wfn@?g9&&G_GR3~vK0%|i$0E7PJV4zE4IKi9l+!-RUndvef z_(PM1sjGnTsz|!OTL2@bHqKd+pq`2Heki92nHH9kOi-pxr~9FnsD1&jzX)IAa_QhH z&aowJX)616aWT3aJwmA~8}Vgamq?hFopJ{%FtQNnc{ejh*?*D^ z(jFI`1)d~9{4E1c&UHjT$*bMN4U-m|93$aU%X59BEei{#xzU$phSLFx?ZDvA{iB=I zlvac!#-QqSB_(jl*m@q5V4_H?{4qBk>4O`1IW&=Sai}|?Z5G+98o%ff^du+z!8+Xe zNF;_amT}*-$B~(fWm?hFOZQHZqw$+z<5)`!EUs@_XsUyK`*1iF#--I(C;d|M0C}_w zm?lY(lih?uv$+iJWGt^00KEX_I*-5c#lG;N#ThCrB2?lJ)=R%);(52C2TfMaA3qB( z#)DbAwhaSBpXlUaZ$YF3&3Zt_l=;84^sYAJJ?F(VX`6S|oPlrW_*{G!t6)WPNZ`8?i#2&#K zAj04%lYzA;5VbPU&*lc>6_@`f%4sio5rd0TB)T@DW7)g5bAj}?CfI3 z*lTI?R9S1sqGm9bTu~q8y#@Wdn3gacSX8tz*8xQO(P86^`4hT{2$8ec>V>Yd^#H$N znUSvcgHTto6M-dLhtbEVI`YJ^lvmEM0haLiYXh%yrFsb+saD9%oNZ@Z;g*%@x9RpHxxHJwbL0m zRp?ex_3DqGug~w}Bkc}pE~ekr#6pm)y=#{?MS{K6yF~};t5X_2R_^?%bPT*gkv0M6 zfyVfLHjcQGZDuDdKV7+YJPoFGNE^)W)1nsOFzPuDs z2x){%a;TA8iC*c}7xMRz8`)N0`2gP$7xPirq$Wv8c)XW18VOsVBE1YJD$S8-7>T?J zI1zm~m8c0rC4EMa>w78>-^5X zH^V)iz6QkqS@^=ffyDDH4Oh9_v%OienP}>w<`}oTx41<@d|&OoW5~`rOTrU={htwA zkEh4ahIWRuKdl6b4D5&uhX}0oL+1r%W$rKdB`%V`J7r!sjI{eQHl1XzLaYAZD27JQ zoQ#86KY?}(tLsN-E^{uY541)qx%kwk6k1oa9$hiLso7o+QOj+9rz^1E{bi>AN&+?} zm$#QcI*UAZK+R5e8hFdk`x8ERyyX?34wgS7qOcm)ORXtwK&&!t?Yiqqz@@>BQCrfT zIV5KE)aQ4&Tekx{UV(WoYwB^dPb5!*8QHVwfTPz%x;mnh?|W#AL?cw$#BN(C-fzAo zKwCVAtOUZ3Mm*TJU-}4do--X!aTL@&M)nYFx02qU@|v%FqWq)X91q0-2Z_QKq2>6` zy?*^rS{Ujc;XAZDUVDESWtGVsJaMU{r7qxg1(;$?G}a2_S9=^vN~CbZJbSw9@y>vY zDK7>Z8xrmVWT91KPb7ulXo!gR;H#`Q>Z*f?4kBFxmWYU{Z{?jNEf=`H#1NAx@L#kW zH3L;!weAVv76)W-&zDP|yJt+dmOk$d)98~ilHePAQ;)k+xaWD>(P0M_z4vYqegB{5 z?ut$JVn2WRH9>xwMK_!YidVr%t;rZa;^KcBW}Hj;0>m{4Rl%6wvliQ789hdXDe)kn!+TQdWepxN>I1xc6i10Z;rjcWz3BG(8B4B zN4;OYxHk3u4>2c(X3>ZNhY|daxyyLO5ZvM9Gdyr-6b`;gfP0;9i*fj|S#?+)=ch3|WnvQ#8;cv@$b0H;B>?F(2B zVh_IpA8$HN9}Zz%X*$`lwZ`@oHBXN`kC?3C7wn#UPPB4= zBmm-Ppo+m=SwU*Jei(TF4APv}QV3psPGJrr2Zd@~@woiquv91)P3GwQLOGHvC6PoI zHkL2>=}A(fNcQ1HCC2UL`H7@VHFv}7>>dESjKC%VVlg-X455r547Q3o3aXq4MdnvIFfIxE@|jZ|Bpp@th@K2L#2E zrf}$Rh%0J0WUKL*{Frgu9!~4g?2U)}UMjh!aO%}Y{EQ{b&SBU3hM}K4@R?ei}`?aPiT^bOG89TdDKE>rC!k*Sa+DG;RiTMrZ=n zR%-n_RIzj}!^ad$Y!spi>6`JG%sK;f?I){H_>;NKI^o+JKjRpfA_-peN`-x)74@2@ z60}zrH)?jCo+?rN65$q=gkR1xM))ba1#$Mw;4OACNVyqrEX-pRb%vPpxZk=RI-vQH z%1b)`cWe4d?UkJwjYB>jWniAt#)+-(kBg7Fm!ASFC_m(iSC_9>W|b79wnaYPp0>Df zY7|A-puL|oRK$gy=oD)8sK>E_ZEFZkv0W=C&{!+-ugJb*OuwEYUt=bULg&83U1d2 zI`4uItw6QBoIJHKd#S=6F$wLy7hO{u1ub_I>7*GRg!|4r0Ch0%Qxa+(El z$VIYPOzrNQXlQTlZ&ziwuXQ80xo^h;oN;8SZ`ruRs8Hp{s`6zkO$Y?c0C%+>WL&E7Netq|>c8 zTyp~=P7mi`zYAreBT(OB<)#1?U-|J4<>*4n4BKO`hTe|9p=ZvqLEE1yC5du~-#VO= zizGXg2tmyK^LFxFcgJ!oXkL+F`^F1>6$TIIGvpEN;PyTSe(!b}#Qd>->ys(Xfd4Kg z`D{**z?86w&+~AW3m5-nx!q0&8PVl}6yfJ}ZI9KONAB3&W6#Us>#5rbVfli*E!pL| z-s=hI*G>(Tlqn8~)qt6bV@FQB8WP^FppaNA7Lj+DM?FiY!o3y%&`?M3T_3+3Wr>fy z>aD9$@4^Ux#v=z>JcYpu(0aJOl z#^{#oqkO-1x%vlb&i(1K7DigUZW3G$Os8Xla*p`O)?y)tjf90O+R7KwSN8HXk@s~k zs)FjVI}{y@iaCUF?sTthPR?-oR-}q{cU|8S6fTS6|Ed=^j+RY$%_rT<)E9*>Kqcam z!{@fqe;tCNGLfZ}^UlMTg;N&QMTAq zU0A9%@-g$R?KfgTwF(oH{NO85ucIh?^%>cvx3-Io4&rAmg(_tGeay9=kP6`@GQ6NY z-a_ZgUkTKbYsWCCvNH(FAlmx;6=7_AvXJ-DyauC^IaIDxDUFc<4+w(j(|*?>u6u(G z#NjtL>lab8?uyb9N60tg1K1WKQo8#3y3CnQ#8XZ%T?@ci*hU%*Vj&Cxu@l9XReCUP zV)jf$5q<6pDH%a2F^d`p^?{u}>OrhH)!6)!j0I1@J0|k?nd(o|cVOfoea RZTPPRtO!z-t(7(p`wv+(0C4~S literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_pencil_icon.png b/mods/unified_inventory/textures/ui_pencil_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dfcc19bca213e4c20eaf8872c37312a331215a48 GIT binary patch literal 6038 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 QhX4Qo07*qoM6N<$f{=4IZ~y=R literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_red_icon_background.png b/mods/unified_inventory/textures/ui_red_icon_background.png new file mode 100644 index 0000000000000000000000000000000000000000..8d4d8070dd6ffdb219c01c8ff2b12dbbfcaa736a GIT binary patch literal 3318 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 AS^xk5 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_reset_icon.png b/mods/unified_inventory/textures/ui_reset_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e966685ccf3fe3a20a889159d981b26768647046 GIT binary patch literal 10548 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 Trcxp&00000NkvXXu0mjf6r#x_ literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_sethome_icon.png b/mods/unified_inventory/textures/ui_sethome_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0f6e58144bca14cb6e531b8fa36aba3f3c49eb GIT binary patch literal 13517 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 FV1im&{R031 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_waypoints_icon.png b/mods/unified_inventory/textures/ui_waypoints_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..91d6e3b98cfc9880d0ab441e6d7d5804460faa19 GIT binary patch literal 15051 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_xyz_icon.png b/mods/unified_inventory/textures/ui_xyz_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..003ea63344be5dbf1f7a2b5da8eb6911e4aeb329 GIT binary patch literal 2182 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 literal 0 HcmV?d00001 diff --git a/mods/unified_inventory/textures/ui_xyz_on_icon.png b/mods/unified_inventory/textures/ui_xyz_on_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..003ea63344be5dbf1f7a2b5da8eb6911e4aeb329 GIT binary patch literal 2182 zcmaKu`9Bkm1I8!i*i}f5ZKO}BIX{lcIoHV9D9W9jIhyO!T5^R*V#<~KEZd7*ZTL=fbaM9dYI!>XEw ztCMvHMkKG;PZ*znC}1cLB4Eo>@xVRciLTcv(<;n!RWltG$_bA<0x~RF7ieNZ=Kfpl zq|4kD1F3~VR=RTa^e%qj>yN6IZKsDdE!$KD!&Arqx8iGr1wte%E*7fC>v5hgyDdF& zIMepR$}?Cp8||xR91h9NIHJdi5BOof!n9 zNr{YjQ913cMtkkT;kcjka&pVNMlwaxhP)1E6x#)-Hcl%hL1@Ax!7+Bf#E6VB-LY43 zLK#YukOBwmpojFXGFk*h#On0|d07SVJWvzTGi5)MZO!X^IOlBBZ&tLQsW{HsD=m;H z3nu9*t_mKe60XZfBo%69txNRJ2}fy@eGx(ICYAj&0|5pes~~JJZ`NWs zXfGc@WgS{3{qo)L@4;|pkr*B+; zpl__~81Q_Y6M6lKltEtB=6&Dgvlh`JML)7q{0om}8-1=LZw+^>wHM`Yn1hmhi{mqI zkUlEWXx5Q@E#*^fAp8FLsDw;n$^-^Mpk4?7VCCLBS0ioxefJQph}Y8WDxHYKC%DaQ z;S}S{SxnxrX!9e)2O$3D(a}s)^K?Fsnr)dgYAEgs*N+MRAcFhsAtt+nKqn3tX!>A| z1ov$oM*^>J27j`N+!YN9YUgUVDi7_^D2K1$;313Dr4NYEy>ZC!n*?sr4bU`n7X_G# zK{&~O*Kj((kKI=w2WB+EPWcc2#H<)eJ^{NJXi}UR;}%KD1hd!U zrzlkqN2*Y`%i5Uh*xC->5p`nn-txzl!Q3n>dHca*Bh5TYHps&g{ozy;zTt|o>Edl1 zGZb36Bo{vk=IC2nMpmFtP|UePYO|={)YE6oFFjRlt+Ky3`lS|;{=(+14mjMnLPXRb z=%$uxJ8-$2t1#y^7}V6~%B{VevlrJm-VD{LLA%dpIAwU1e_iR|;d?CfdWxB= zbsW0u$iNG4;z#+L&BAYpyDkSmLkQhz!>PXr4Wh^EF6jZqi?k>6M9#OAM$mg?TH!|z zmtluqC?B?WV@!9!nCU3Log)4<+f4e6Xv<*!cX^+(t@wu;i^$T0m~&{ch3VWE>q%i@ z1|2ucYMEm`;RBBJz*}ENv~w%L)W*&Tt-A_Vmb=pl`O3pB)+I4u19?_`g6$m=UUoOV zJ4iCLa6=0jw*LJ2E|pO;mt)v>qz=b(0&q-;>~<%wlal}}*J=NwXP!y~Ka7dufwZCc zol_l@ld4hwn4up9~Ohll2w^?KZn@|4IqM>?o2sYWdzV=I#HaV4u@Z%+cb-$ls zJ)&m>qI_b9TkysleiNE|}Mrvu3O^xpPCH&hbs5@O@OD1J2IZc;z z;MeFgh5WE#L^LQRpJxS@BKg;*Nw~$Ij%|EYr!}tbnB~J73wyNN;N&?QgghL{OL2?S zhrvSmF>G}ayjIFgH+X8geB)a`}fF^>uc>{K*ChO1tmvbO|6}R z=ezexO#6VrJKM+E49hPQJ7>FqzH(^hYZ`_~!CVW9*%J`$*eCXwJFz5zxb3$#)ykbT z8x$eyO*@5UW=Xu=kbUHN!4sfUzG_eqvaXeQ%fZknc{kp6`(02^9}=Vt8$F-7VM|5< z7(1@))*4XvhUK9jV?b^@>u>ToJDB%?ucy?n2yfYnknr z@#~Cu(b|LlVuc*tWFK}5W Date: Sun, 15 Dec 2019 17:25:38 -0500 Subject: [PATCH 034/321] Add files via upload --- mods/depends.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 mods/depends.txt diff --git a/mods/depends.txt b/mods/depends.txt new file mode 100644 index 00000000..7c7fa76b --- /dev/null +++ b/mods/depends.txt @@ -0,0 +1,4 @@ +default +3d_armor? +player_monoids? +pova? -- 2.40.1 From 17053065bedc543163e2ef94710494591362090d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:26:27 -0500 Subject: [PATCH 035/321] Rename mods/stamdepends.txt to mods/stamina/depends.txt --- mods/{ => stamina}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{ => stamina}/depends.txt (100%) diff --git a/mods/depends.txt b/mods/stamina/depends.txt similarity index 100% rename from mods/depends.txt rename to mods/stamina/depends.txt -- 2.40.1 From 0a6c32ab674a9d812f9823c0e0fceceaede4d362 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:29:30 -0500 Subject: [PATCH 036/321] Add files via upload --- mods/stamina/README.txt | 70 ++++ mods/stamina/description.txt | 1 + mods/stamina/init.lua | 621 +++++++++++++++++++++++++++++++++++ mods/stamina/mod.conf | 1 + mods/stamina/screenshot.png | Bin 0 -> 1165 bytes 5 files changed, 693 insertions(+) create mode 100644 mods/stamina/README.txt create mode 100644 mods/stamina/description.txt create mode 100644 mods/stamina/init.lua create mode 100644 mods/stamina/mod.conf create mode 100644 mods/stamina/screenshot.png diff --git a/mods/stamina/README.txt b/mods/stamina/README.txt new file mode 100644 index 00000000..b959c4f8 --- /dev/null +++ b/mods/stamina/README.txt @@ -0,0 +1,70 @@ +Minetest mod "Stamina" +===================== + +(C) 2015 - BlockMen +(C) 2016 - Auke Kok + + +About this mod: +--------------- +This mod adds a stamina, or "hunger" mechanic to Minetest. Actions like +crafting, walking, digging or fighting make the player exhausted. When +enough exhaustion has been accumulated, the player gets more hungry, +and loses stamina. + +If a player is low on stamina, they start taking periodical damage, +and ultimately will die if they do not eat food. + +Eating food no longer heals the player. Instead, it increases the +stamina of the player. The stamina bar shows how well fed the player +is. More bread pieces means more stamina. + +Walking while holding down Aux1 (usually E key) will make player sprint so +long as their stamina bar is 3 or more bread. This will make the player run +that bit faster and jump a tiny bit higher. + +Q&A time: Why won't I move the stamina bar to the right? + +Answer: this conflicts with the builtin breath bar. To move the +builtin breath bar, I basically have to entirely re-implement it +in lua including timers to catch breath changes for each online +player, which is all a waste of time, just to move a few pixels +around. + + +For Modders: +------------ +This mod intercepts minetest.item_eat(), and applies the hp_change +as stamina change. The value can be positive (increase stamina) or +negative (periodically damage the player by 1 hp). + +Callbacks that are registered via minetest.register_on_item_eat() +are called after this mod, so the itemstack will have changed already +when callbacks are called. You can get the original itemstack as 6th +parameter of your function then. + +A global function is available for mods to change player stamina levels: + + stamina.change(player, change) + + +TenPlus1 Additions: +------------------- + + - Added support for POVA and player_monoids + - Added Pipeworks checks for fake players + - Added 60 second drunk effect when foods have {alcohol=1} group (eat 4 or more) + - Moved exhaustion and hud_id to player table instead of player attributes + + +License: +-------- +Code: +- all code LGPL-2.1+ +Textures: +- stamina_hud_poison.png - BlockMen (CC-BY 3.0) +- stamina_hud_fg.png - PilzAdam (WTFPL), modified by BlockMen +- stamina_hud_bg.png - PilzAdam (WTFPL), modified by BlockMen +Sounds: +- stamina_eat.*.ogg - http://www.freesound.org/people/sonictechtonic/sounds/242215/ CC-BY-3.0 + diff --git a/mods/stamina/description.txt b/mods/stamina/description.txt new file mode 100644 index 00000000..1074b3d4 --- /dev/null +++ b/mods/stamina/description.txt @@ -0,0 +1 @@ +Adds stamina and hunger effects. diff --git a/mods/stamina/init.lua b/mods/stamina/init.lua new file mode 100644 index 00000000..8e8f8c3d --- /dev/null +++ b/mods/stamina/init.lua @@ -0,0 +1,621 @@ + +stamina = {players = {}} + +STAMINA_TICK = 800 -- time in seconds after that 1 stamina point is taken +STAMINA_TICK_MIN = 4 -- stamina ticks won't reduce stamina below this level +STAMINA_HEALTH_TICK = 4 -- time in seconds after player gets healed/damaged +STAMINA_MOVE_TICK = 0.5 -- time in seconds after the movement is checked +STAMINA_POISON_TICK = 1.25 -- time in seconds after player is poisoned + +STAMINA_EXHAUST_DIG = 3 -- exhaustion increased this value after digged node +STAMINA_EXHAUST_PLACE = 1 -- .. after digging node +STAMINA_EXHAUST_MOVE = 1.5 -- .. if player movement detected +STAMINA_EXHAUST_JUMP = 5 -- .. if jumping +STAMINA_EXHAUST_CRAFT = 20 -- .. if player crafts +STAMINA_EXHAUST_PUNCH = 40 -- .. if player punches another player +STAMINA_EXHAUST_LVL = 160 -- at what exhaustion player saturation gets lowered + +STAMINA_HEAL = 1 -- number of HP player gets healed after STAMINA_HEALTH_TICK +STAMINA_HEAL_LVL = 5 -- lower level of saturation needed to get healed +STAMINA_STARVE = 1 -- number of HP player gets damaged by stamina after STAMINA_HEALTH_TICK +STAMINA_STARVE_LVL = 3 -- level of staturation that causes starving + +STAMINA_VISUAL_MAX = 20 -- hud bar extends only to 20 + +SPRINT_SPEED = 0.3 -- how much faster player can run if satiated +SPRINT_JUMP = 0.1 -- how much higher player can jump if satiated +SPRINT_DRAIN = 0.35 -- how fast to drain satation while sprinting (0-1) + + +local function get_int_attribute(player, key) + + -- pipeworks fake player check + if not player.get_attribute then + return nil + end + + local level = player:get_attribute(key) + + if level then + return tonumber(level) + end + + return nil +end + + +local function stamina_update_level(player, level) + + -- pipeworks fake player check + if not player.get_attribute then + return nil + end + + local old = get_int_attribute(player, "stamina:level") + + if level == old then -- To suppress HUD update + return + end + + -- players without interact priv cannot eat + if not minetest.check_player_privs(player, {interact = true}) then + return + end + + player:set_attribute("stamina:level", level) + + player:hud_change(stamina.players[player:get_player_name()].hud_id, + "number", math.min(STAMINA_VISUAL_MAX, level)) +end + + +-- global function for mods to amend stamina level +stamina.change = function(player, change) + + local name = player:get_player_name() + + if not name or not change or change == 0 then + return false + end + + local level = get_int_attribute(player, "stamina:level") + change + + if level < 0 then level = 0 end + + if level > STAMINA_VISUAL_MAX then level = STAMINA_VISUAL_MAX end + + stamina_update_level(player, level) + + return true +end + + +local function exhaust_player(player, v) + + if not player + or not player.is_player + or not player:is_player() + or not player.set_attribute then + return + end + + local name = player:get_player_name() + + if not name then + return + end + + local exhaustion = stamina.players[name].exhaustion + v + + if exhaustion > STAMINA_EXHAUST_LVL then + + exhaustion = 0 + + local h = get_int_attribute(player, "stamina:level") + + if h > 0 then + stamina_update_level(player, h - 1) + end + end + + stamina.players[name].exhaustion = exhaustion +end + + +-- Sprint settings and function +local enable_sprint = minetest.setting_getbool("sprint") ~= false +local enable_sprint_particles = minetest.setting_getbool("sprint_particles") ~= false +local monoids = minetest.get_modpath("player_monoids") +local pova_mod = minetest.get_modpath("pova") + + +local function set_sprinting(name, sprinting) + + local player = minetest.get_player_by_name(name) + + -- get player physics + local def = player:get_physics_override() + +--print ("---", def.speed, def.jump) + + if sprinting == true and not stamina.players[name].sprint then + + if monoids then + + stamina.players[name].sprint = player_monoids.speed:add_change( + player, def.speed + SPRINT_SPEED) + + stamina.players[name].jump = player_monoids.jump:add_change( + player, def.jump + SPRINT_JUMP) + + elseif pova_mod then + + pova.add_override(name, "sprint", + {speed = SPRINT_SPEED, jump = SPRINT_JUMP}) + + pova.do_override(player) + + stamina.players[name].sprint = true + else + player:set_physics_override({ + speed = def.speed + SPRINT_SPEED, + jump = def.jump + SPRINT_JUMP, + }) + + stamina.players[name].sprint = true + end + + elseif sprinting == false and stamina.players[name].sprint then + + if monoids then + + player_monoids.speed:del_change(player, stamina.players[name].speed) + player_monoids.jump:del_change(player, stamina.players[name].jump) + + stamina.players[name].sprint = nil + stamina.players[name].jump = nil + + elseif pova_mod then + + pova.del_override(name, "sprint") + pova.do_override(player) + + stamina.players[name].sprint = nil + else + player:set_physics_override({ + speed = def.speed - SPRINT_SPEED, + jump = def.jump - SPRINT_JUMP, + }) + + stamina.players[name].sprint = nil + end + end +end + + +-- Time based stamina functions +local stamina_timer = 0 +local health_timer = 0 +local action_timer = 0 +local poison_timer = 0 +local drunk_timer = 0 + +local function stamina_globaltimer(dtime) + + stamina_timer = stamina_timer + dtime + health_timer = health_timer + dtime + action_timer = action_timer + dtime + poison_timer = poison_timer + dtime + drunk_timer = drunk_timer + dtime + + local players = minetest.get_connected_players() + + -- simulate drunk walking (thanks LumberJ) + if drunk_timer > 1.0 then + + for _,player in pairs(players) do + + local name = player:get_player_name() + + if stamina.players[name] + and stamina.players[name].drunk then + + stamina.players[name].drunk = stamina.players[name].drunk - 1 + + if stamina.players[name].drunk < 1 then + + stamina.players[name].drunk = nil + stamina.players[name].units = 0 + + player:hud_change(stamina.players[name].hud_id, + "text", "stamina_hud_fg.png") + end + + -- effect only works when not riding boat/cart/horse etc. + if not player:get_attach() then + + local yaw = player:get_look_horizontal() + + yaw = yaw + math.random(-0.5, 0.5) + + player:set_look_horizontal(yaw) + end + end + + drunk_timer = 0 + end + end + + + -- hurt player when poisoned + if poison_timer > STAMINA_POISON_TICK then + + for _,player in pairs(players) do + + local name = player:get_player_name() + + if stamina.players[name].poisoned + and stamina.players[name].poisoned > 0 then + + stamina.players[name].poisoned = + stamina.players[name].poisoned - 1 + + local hp = player:get_hp() - 1 + + if hp > 0 then + player:set_hp(hp) + end + + elseif stamina.players[name].poisoned then + + player:hud_change(stamina.players[name].hud_id, + "text", "stamina_hud_fg.png") + + stamina.players[name].poisoned = nil + end + + poison_timer = 0 + end + end + + + -- sprint control and particle animation + if action_timer > STAMINA_MOVE_TICK then + + for _,player in pairs(players) do + + local controls = player:get_player_control() + + -- Determine if the player is walking + if controls.jump then + exhaust_player(player, STAMINA_EXHAUST_JUMP) + + elseif controls.up + or controls.down + or controls.left + or controls.right then + exhaust_player(player, STAMINA_EXHAUST_MOVE) + end + + --- START sprint + if enable_sprint then + + local name = player:get_player_name() + + -- check if player can sprint (stamina must be over 6 points) + if not stamina.players[name].poisoned + and not stamina.players[name].drunk + and controls.aux1 and controls.up + and not minetest.check_player_privs(player, {fast = true}) + and get_int_attribute(player, "stamina:level") > 6 then + + set_sprinting(name, true) + + -- create particles behind player when sprinting + if enable_sprint_particles then + + local pos = player:get_pos() + local node = minetest.get_node({ + x = pos.x, y = pos.y - 1, z = pos.z}) + + if node.name ~= "air" then + + minetest.add_particlespawner({ + amount = 5, + time = 0.01, + minpos = {x = pos.x - 0.25, y = pos.y + 0.1, z = pos.z - 0.25}, + maxpos = {x = pos.x + 0.25, y = pos.y + 0.1, z = pos.z + 0.25}, + minvel = {x = -0.5, y = 1, z = -0.5}, + maxvel = {x = 0.5, y = 2, z = 0.5}, + minacc = {x = 0, y = -5, z = 0}, + maxacc = {x = 0, y = -12, z = 0}, + minexptime = 0.25, + maxexptime = 0.5, + minsize = 0.5, + maxsize = 1.0, + vertical = false, + collisiondetection = false, + texture = "default_dirt.png", + }) + + end + end + + -- Lower the player's stamina when sprinting + local level = get_int_attribute(player, "stamina:level") + + stamina_update_level(player, + level - (SPRINT_DRAIN * STAMINA_MOVE_TICK)) + else + set_sprinting(name, false) + end + end + -- END sprint + + action_timer = 0 + end + end + + + + -- lower saturation by 1 point after STAMINA_TICK + if stamina_timer > STAMINA_TICK then + + for _,player in pairs(players) do + + local h = get_int_attribute(player, "stamina:level") + + if h > STAMINA_TICK_MIN then + stamina_update_level(player, h - 1) + end + + stamina_timer = 0 + end + end + + + -- heal or damage player, depending on saturation + if health_timer > STAMINA_HEALTH_TICK then + + for _,player in pairs(players) do + + local air = player:get_breath() or 0 + local hp = player:get_hp() + local h = get_int_attribute(player, "stamina:level") + local name = player:get_player_name() + + -- damage player by 1 hp if saturation is < 2 (of 30) + if h < STAMINA_STARVE_LVL + and hp > 0 then + player:set_hp(hp - STAMINA_STARVE) + end + + -- don't heal if drowning or dead or poisoned + if h >= STAMINA_HEAL_LVL + and h >= hp + and hp > 0 + and air > 0 + and not stamina.players[name].poisoned then + + player:set_hp(hp + STAMINA_HEAL) + + stamina_update_level(player, h - 1) + end + + health_timer = 0 + end + end + +end + + +-- override core.do_item_eat() so we can redirect hp_change to stamina +core.do_item_eat = function(hp_change, replace_with_item, itemstack, user, pointed_thing) + + if user.is_fake_player then + return -- abort if called by fake player (eg. pipeworks-wielder) + end + + local old_itemstack = itemstack + + itemstack = stamina.eat(hp_change, replace_with_item, itemstack, user, pointed_thing) + + for _, callback in pairs(core.registered_on_item_eats) do + + local result = callback(hp_change, replace_with_item, itemstack, user, + pointed_thing, old_itemstack) + + if result then + return result + end + end + + return itemstack +end + + +-- not local since it's called from within core context +function stamina.eat(hp_change, replace_with_item, itemstack, user, pointed_thing) + + if not itemstack or not user then + return itemstack + end + + local level = get_int_attribute(user, "stamina:level") or 0 + + if level >= STAMINA_VISUAL_MAX then + return itemstack + end + + local name = user:get_player_name() + + if hp_change > 0 then + + stamina_update_level(user, level + hp_change) + + elseif hp_change < 0 then + + -- assume hp_change < 0 + user:hud_change(stamina.players[name].hud_id, "text", + "stamina_hud_poison.png") + + stamina.players[name].poisoned = -hp_change + end + + minetest.sound_play("stamina_eat", {to_player = name, gain = 0.7}) + + -- particle effect when eating + local pos = user:get_pos() ; pos.y = pos.y + 1.5 -- mouth level + local itemname = itemstack:get_name() + local texture = minetest.registered_items[itemname].inventory_image + local dir = user:get_look_dir() + + minetest.add_particlespawner({ + amount = 5, + time = 0.1, + minpos = pos, + maxpos = pos, + minvel = {x = dir.x - 1, y = dir.y, z = dir.z - 1}, + maxvel = {x = dir.x + 1, y = dir.y, z = dir.z + 1}, + minacc = {x = 0, y = -5, z = 0}, + maxacc = {x = 0, y = -9, z = 0}, + minexptime = 1, + maxexptime = 1, + minsize = 1, + maxsize = 2, + texture = texture, + }) + + itemstack:take_item() + + if replace_with_item then + + if itemstack:is_empty() then + itemstack:add_item(replace_with_item) + else + local inv = user:get_inventory() + + if inv:room_for_item("main", {name = replace_with_item}) then + inv:add_item("main", replace_with_item) + else + pos.y = math.floor(pos.y - 1.0) + core.add_item(pos, replace_with_item) + end + end + end + + -- check for alcohol + local units = minetest.registered_items[itemname].groups + and minetest.registered_items[itemname].groups.alcohol or 0 + + if units > 0 then + + stamina.players[name].units = (stamina.players[name].units or 0) + 1 + + if stamina.players[name].units > 3 then + + stamina.players[name].drunk = 60 + stamina.players[name].units = 0 + + user:hud_change(stamina.players[name].hud_id, "text", + "stamina_hud_poison.png") + + minetest.chat_send_player(name, + minetest.get_color_escape_sequence("#1eff00") + .. "You suddenly feel tipsy!") + end + end + + return itemstack +end + + +-- stamina is disabled if damage is disabled +if minetest.setting_getbool("enable_damage") +and minetest.setting_get("enable_stamina") ~= false then + + minetest.register_on_joinplayer(function(player) + + local level = STAMINA_VISUAL_MAX -- TODO + + if get_int_attribute(player, "stamina:level") then + + level = math.min(get_int_attribute(player, "stamina:level"), + STAMINA_VISUAL_MAX) + else + player:set_attribute("stamina:level", level) + end + + local name = player:get_player_name() + + local id = player:hud_add({ + name = "stamina", + hud_elem_type = "statbar", + position = {x = 0.5, y = 1}, + size = {x = 24, y = 24}, + text = "stamina_hud_fg.png", + number = level, + alignment = {x = -1, y = -1}, + offset = {x = -266, y = -110}, + max = 0, + }) + + stamina.players[name] = { + hud_id = id, + exhaustion = 0, + poisoned = nil, + drunk = nil, + sprint = nil, + } + end) + + minetest.register_on_respawnplayer(function(player) + + local name = player:get_player_name() + + if stamina.players[name].poisoned + or stamina.players[name].drunk then + player:hud_change(stamina.players[name].hud_id, + "text", "stamina_hud_fg.png") + end + + stamina.players[name].exhaustion = 0 + stamina.players[name].poisoned = nil + stamina.players[name].drunk = nil + stamina.players[name].sprint = nil + + stamina_update_level(player, STAMINA_VISUAL_MAX) + end) + + minetest.register_globalstep(stamina_globaltimer) + + minetest.register_on_placenode(function(pos, oldnode, player, ext) + exhaust_player(player, STAMINA_EXHAUST_PLACE) + end) + + minetest.register_on_dignode(function(pos, oldnode, player, ext) + exhaust_player(player, STAMINA_EXHAUST_DIG) + end) + + minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + exhaust_player(player, STAMINA_EXHAUST_CRAFT) + end) + + minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage) + exhaust_player(hitter, STAMINA_EXHAUST_PUNCH) + end) + +else + + -- create player table on join + minetest.register_on_joinplayer(function(player) + stamina.players[player:get_player_name()] = { + poisoned = nil, sprint = nil, drunk = nil, exhaustion = 0} + end) + +end + +-- clear when player leaves +minetest.register_on_leaveplayer(function(player) + stamina.players[player:get_player_name()] = nil +end) diff --git a/mods/stamina/mod.conf b/mods/stamina/mod.conf new file mode 100644 index 00000000..b049a5a0 --- /dev/null +++ b/mods/stamina/mod.conf @@ -0,0 +1 @@ +name = stamina diff --git a/mods/stamina/screenshot.png b/mods/stamina/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..f3776ef5ca677fbbf53537f96271510236314568 GIT binary patch literal 1165 zcmV;81akX{P)96>0BmoV<%mKC(!^+YQ6e_x-N#TT&U9yojV08HToP zp)!cRZI3OIOFp{DVAif{a`ty^%P21*-y?!`=tkN1U5D+FOFn_fZrA!f)9k1negh_X z5%~rYb3oHgvFr51FzmXHQ9g|bti3mVR@dPoqr8Zu7qL~*;FV8urst~AzXzWg=0zmE zh=hoUh=_xzVAkF;86c(L^e}{(BP}x@vZL5lJa>fBy@@ z)l@OfM-wSay~d}f)0)`jMI^BZ#AY+vKiTCYid3d&vh~2BooQY~l8Hds9KdWvMZq;6 z^H+RPR1ThTUPMxgxQ0iYBENj(@eyD?foGQ&k;Ec;o%7>rZ1OUyDC4XmA|f>E@W@l7 zR!wl!If~S3>tl~GUh-ix+hcJbN>Z$Pmw_f?0QA#Hgb0n4$V-Q9mLjUr9E~ys8@N;W zC6{rpIiGJ7`MWp*KZhckLx<2`=2*k_F3o2k(k>E2u5n10D+A7<~wZ~bfCwON> zaO0`SFbrM<-X29niO6k;sGHeqFnkY^qK)J%auAW*74c>1M?Nj`wO?o=!dZm6;LTO& zZ&ptuA`wNDh^$Hk&++gd-;c&eXx~A@i+GN&{qLKrh>|vvgNP@X7Ct)qo^&X_ABk{n zK)xc4h~y-4Awxv`rTx@}T<^b)b4ATHN1l_4)Job&G!b?Eqwj^`cyeXl{OlMvAtc_l zifi~il0rm@$V7zmnckAQ6WdA5&z%sFh$2cvc#C{8ZfLJrB*Nj}iLj}Q%RgmB4)$QQ zCwp0A4_VWxuJB-H>p>yxd#-veCyE@W@s7G4de}Y@X#z#oKi?PokrRnA$)v&P#|HPB z3}-;AM!8wNIH8ry^i^c0FPZ=AX90stmiG-%21V(6MX1X`wCr+*_YFW22)uoUFVr?i fUYqd>y|=`FLTt|gyS!6600000NkvXXu0mjfoKYmz literal 0 HcmV?d00001 -- 2.40.1 From 24df7314e7a0da2427896716b1f5e7a4a487c1bc Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:30:31 -0500 Subject: [PATCH 037/321] Create main --- mods/stamina/sounds/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/stamina/sounds/main diff --git a/mods/stamina/sounds/main b/mods/stamina/sounds/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/stamina/sounds/main @@ -0,0 +1 @@ + -- 2.40.1 From d5807fdd970d64a4ee2e9cdb069d8672fa7a24d3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:30:52 -0500 Subject: [PATCH 038/321] Add files via upload --- mods/stamina/sounds/stamina_eat.1.ogg | Bin 0 -> 9333 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/stamina/sounds/stamina_eat.1.ogg diff --git a/mods/stamina/sounds/stamina_eat.1.ogg b/mods/stamina/sounds/stamina_eat.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..da2b68b201772eb175924885b85fc5030e5d806a GIT binary patch literal 9333 zcmaiacUY9avTzoVE=3R#7U^Xv(oql)P&x=KEPbVe^s+2cL{=$EN2Ev*5v4cjRpo~i z=^do2NC!cXBK5wD=bU@KKfdSY3E4>|Gnq_gGV|s^$H74#5P*M`o~+ljcrayuHv)DA z=Hu>V?TEn-z-|}ee*o~Hg`NG@!gTPI|0#G%Jf@M`-GNH>^uG!%;a@g_5Z2hycj~_aLkyDND$l$aTu#`Rn`e5M^m&8fa{ZEreRBHZ{0N8k)={ zsiqrDEWHE|X%^&*c-$gV%Md~&$rttbhsfvQU<#$Dsln=!`%EDYioOhg*WglAiwh=J z{LC1lq6kSqEL}?<(xsTk6v8h}${NBZVS5q80g#!+7m>wBPQz4A4n6}wqo7CM?g{UB z2Ja|?Q;?oFIR_~NkV5m+BHpUS{7{SMGKuFts|(=;f?efjRqTvh4FFv|N@Y)ak~2D6 z07x^hM`RmEWZ#Qed>TU<5>`Y2Z~zcN%ShbPmsL%;-DiLrt9G6IuWFWLclnGQ(jm>D zqkTT{QxU?;#AoLKiGiby5NW~vTgf;^4XP}%V(HoRxl9wPRE;uemUOi$zxcF>I_br9 zOmD|Rx@a#1Wu==?rb6=;(_1o4$p1pTWq$ps{P;1?-et>l+BOK{DfWv?jjn>AbH$D^ zshVXFq*mvLOw+`VVeqWZnw8dNcsd=voAm3@qJyn;=8Vo#=_w;Qgy`0-!+39!if?`*&mg zls$~ms}qr%`B;NLKQAjvtV^(>`>c^!E2^NnK`Giob4#GO1*z{UIcn_uQ+hEqxYE$n zxws0cfyhoklAr014br_5@nzdMJv?XYr-ffzH4$cM{``?Wq+88n2 z(o0+kH2>ZvbfCb4UiHl0)XTXv2f2C%1$DM1bm-*t=#_^gPy-jyde>a_r0j+y(fU$o zl%cCplB-!Yb~4#+axZZ9zbcyKY>O8FkcsC+#B(6x=dQO_e%4gItUeZtu6DI~;c9m24kR;#wMs-!Cu1iW-Ozi{Jrb^y-e~kSw9%L=`dXOD zSfGUg%EHKQ{Fq8U5&`%DpP&uvM{76MRujJhNEbep^bBK+fz}p6bw>q@ofUqR3N)D zNm?}<6Ne;W&yGh%a%VFNEWWkv*IQjN;B_GK&zZVZ=~DtdQYl z5F!%M&S29^YoiOXf)+<)R~l+K6?@&$fLL`aszaMLw-hZR-vtke;ZR4x!J zO?A;~MvNPxnn}YEV&$xkXoFY@RZq!~7Ka*GQ)ah(vF@&`GITy$yoft{!n&vmTKs%= zi!m}EPf=Jl#%R-ns5aM+l&oP4C=sf;i=mRQGQ>n6#u#jViq^0>_rAYR1MR$pQ6s#p z)zCRobWv9WzYk6IGH7wv;?XM*0>5~E8>3BcS=(KG=c;PPfIC8?=9r)F+u*@Y#S0KC zM0L7z$@{UX$51+CdFFB7uh7pp(vI>40-4Ccxe*$kOZ+swvagF zB0MDCbTvI#SHn3wA;C1VEFm80EXn}I`ma!gwhYc``3^$EiiiLb1}I}}Ofno&3!J)Q zxcxHt3UUfpsyR(Ecq0l53aVZGG7!*jeMyPg*+_j!;cABC*@)ok2Z*YmphTeSgL^>% zbkjm<#b#Q;N@II3M&J3XOEhabw|s?{Zj^&&@Y9?-oj z`wtA{HHD4P-ic@GW&uk%3JVk^gAfb>%3@4Wc=P0Tg zHMJ>*nn*n4TnvTGv$*;HZD0UNM+K17Quj0jss8HmB3_S(9C$FL%%=oQzd9dxHl)_{ z;CQ4)A_l3Uo?kVJw^qFN>}imWLTyaWJ#3IhqeOQh`w?n0#q`NRHXm6vI)#C{@PIx= z(&xy+ss(rmRY8@hbFcJ1o0fCgD3dph5+lG3LF)In{Io*Kt8DY=-v>Y%l3?8pEqY5s zbOE2LJo($j+!1Yqx{9Q)@mPFB#$)k`Xg74`!H`3~#8923q%vn%Qg-jZT_q?7J9I2l^_ka1iw7Cz+puh+fMz9aS_1n0oPZvbQB&4p($jU1yK{oNX;BdGz zKmlrTxPN_V+&UWq_%99oLR17!zqB^VdZ9H zW8>0;-=OT<>j?-5K*W7C_}Pe&j}4nwm-|KefOU31q03MQRpxQ1TE%8g*n%|axGX}} zcgmN|jZmn&)8V1HI|I)-nMS;ufXn*nP?O)fEGB-sf@KHTB-MzGp;Rxse$p zpS7GSDidMCDz4H{vU2JQv@EIwpM3lE=MgYfAjzCK-59#69-6bdzwyAwzpl*YWEQ)w z@2+xULEvH)*r@1R{xN+4POjV2dv)&mgo%u!py}N;<9(8E1y|?Z&%l8ByhJ^z4l@q+ zg)mR5KA(j@vNf{xPYBoT(RYVe_CL2m%ki(Rhvmuuq9z~QrLa_6xri1=p`(Rrhi;ub zIiO|pbk*X6$1=>61qTxQ2;4?!I}80yGhFJ5wT{1bT&e401rjE`o7`8;{c$t5-T+?) zww@Cotoo#Ny4rB~R?=y=XZilc`{IWjkSZ(Ym1|`b2>1g)Pm@R8y{d`!5!D*&*oS^| zZK~JY65MZX96vc^A_BK(fA&Rg?&~8YX>skc-CCHU@GY^b-R0kJW$LiSIc~SB_U0C@ z!{D>$Ub{8R;9w&wxaS84-Qjm$@5{(PsBN@B-+q!5q-M4jK6O|_1|(*G?mP)8BxKa3 zR&Z@Xfm*8vZER`+uYUfX`;%VXVv&`{XbJ?!lU8`lcVa8(qyQnmWSRQVpr7`I>UrCi z632=;-hEEMWdd)YE1{x+B}NlnIVjmpO0Jtbo;6B|DdsowoT@E7Rq-n`(6+NA1QL@B zb5@_26o?F*2@NW*@p&~Ao(R{JXS5GRZxp)sxjit_u>a?1od_71$$MB!P3_DTKKepL ztJ??GyXr^tN8Pg>3ravgdMW<9=fT>cNjE3V%c%z|TD|a*#8l8S>(|YrgT1Z8SPIeJ zWSi@`PZ9%wq=4GM@Hrr|EHl=! zorB_MBiiz`WkYh~C9PHJ*KT=3E|Qe2PGO2OL5Wi{hZZLfXwl*&6?76dC0>^^b^vA5 z48gv^9{09P`jI`BBSw?SLT<8I==J)%BDg(2adhv~8yK6y{5YV-=9(6BEo_U`e(4td z%OpVJThccUSyw=8xk1OrBtM^ZMQ^8>Uvv${!PJK+ zg$bIerc#Gtain>p#I?pZ`y~;Y*|G8k-&fu&l}sl?hUupK10_4ToeT+Mr&=PO9X4W- zF{2{f51kWk{<(P7lio+W_B~o4^Fu*py9nE61z5~gIpIns5(6(o#QLI+n+bZ;4Uw9HL@W=iV}c zyNJ-}Xo;h1B-U-0F3FOyC z+o5>!<@ri;<)ddIbh#TrGLu82M!a+We$2Fc@Rd{HrkMGexyIrZn8PFY;lrFp0oe`d zc4n`a!RPwPTcuIy41r}lPgKGgiX*Jc$6fQu8e{Fgx-bj8PtO7#I}2@Ul*0 zBPBzXs(SP|Rr_F1I8Z&P_U40{vKO0FPR4SBezre?+XPkG*gY>M#}m)*FU6|bC=gt9 zd?mZ^qKPqkeXf4;qT__4zy|gCrSOxL_cwnZ-nx{l`PE+zC${)uD(pA60Bk zygDpjnO4TOb)h6)wrfNEp?;?%Z>;K{sWrG8!>oC$?6^gYv@$CK_M=}})cjLb=>j0g zdr{Eo8GJqp|=V6D;lC0CvSvpcO2Er=Occ6cy)hz znGO)?ReTe1v8XGL15-iuw8i?7c{<5s+n?$TNr^i>A+-5U)8-N&4WVmVh&W)3Oc+5W z!!LXGoW#{y+_(+{zmdkBFD+|NR2v?_5=G@)4Zf+IJ`__5c-(yP+Ai(T+ynq?y2deb z60#>xOaXzxfn23#YvF_YLb11~6PZa6zg=KIbjLI4xP73j&yX^+{m{n&K|OJLuva51 zw^jAPt)QS#-d|oIrF4goe%x(X)Zxp=yVF<>f`WCQQWJRu!^y&Sbnf12-^v=}%a2nZ z=jT>(Ovu3?qDpnV=IGTs4iypdP3+F$wdCTf*Y*n1#q$>Z?P2!g-IRG0;2nH+Vu$B& zZ?wGKEiEYW&X`oGZrky^9$&`v1MgnN$`{)wi)jI=0!wMP<_0uKdi*OlwUhXU^NX9+ z?mH~_b(NehkYDViioG!s7urSL^?Ss+=J3;>VYoiM!{8o9Crxz28{3d~Pr2VH)4d(n zU&=G#R-i3602_21GuVh_?kgaIqgB^*LL6M7>`=LhCD`GOdCOLN%7di+_p@OapOU>7 z^#JrHn!h49D`8w<1IW5j^F20xC{}Pus(gnWcAciunA`1Mz#j; z_}=bjA3G4GQrO6GNG(YS;6~#gNkUYQyI=o9a4rw7QW%^|Rw(tQaoD}kW70wMBA^^_ zYqNVn)r51B#Gy_}{_)fteRki`k&%ya{B3Bm5D}o%QQKj*Cs9*)FYZAcw?L2Uw$HN^ z>}h!!>s#ObT<&8`bBCVGWNx7f30Kd=AF*Gtswu|j@^lF2Qh!+4@59(0Hckt+9lOZp z*RAi)y=~vT4<9harm(QV66J6qn2u>i-tX-e8YK&N3;18L@b<;(Chb)1uM+}6eR+&E z&suU{h#{`?uwGc@y~hJ{`a^!NsS>6Al#yr=@*OciZ=@Re2Fj>zE7%c!?e=SUlFDHx zA2joFWPbO4lpOPzN!04lfzy#b2HZB$_c$Lga@`@EG%xA-W}3uRhw-X`d6aremony_e9BE~0RMK*PF}@UvKxg zzVQ+7GGEWGKV7Ski0OJ$S@?ZkbT*a(N`PJJ!wOFrD7+t&=JA4UMt7bG18$a<8$w`B z@TO2{M=Uk3{!ixH4&Lyv1`u+K&4>#2wY}qMn_g|jt@lr_9Q%_1K_lz^TYrLl z)$YNZ6yAfr4Xu)&FVfXoonbiUkG~8AXWv}^?ohZ(FK80J%!BuGAL4hf+m>uO5`1$S ze^-jQ?*=yh9Eu)mzq=e!WKH7m`OPX9(CaD>e790*e-p~2^N zN+$PYBHo$35LUUbS9q~^=YyFOA^5GEKRYcV2PAcIomoVFb)sCFOPjJzX3+gW3y zz9AplTb%=NRF#-JZ4PK-*>+p36psxmT)hA!^e<+- z2|14KeHTtJ%+gd|oyz&16^LkljQuWJn)F`hR68+N?qzZ;OwgopLqv8Nkn4^U<{d`W zGS|%WN#B-z{}Q9;p#QGo12X~SbdB@Rz8x6dAS2SPd%!Ksy-?A<{chVdw9SFVZ8?|= z9Nhu>aGOsffFtt?EFHL!gX4^9|K_M-Cr?`BnmjET%7IR zjQ>@Ga^sv6mM!#=eFlep?@J!&ny2^`IZPP$Xq3PQ`hFoZ*z-=ZsPxn_DbMN589{aw zNuSRDsBGATo~s2X$0Kg?eBi%C#*tY96RqQPb}<283y*fMlss%>jqTICso(mH^TP@W z*LYd~r`_32pIZd{A9s(JG~JT+9POum?d!TP`#+ej?%j)?paNWDCEo)-RTZQYFzUK4 zf9upA{7~)t(us%!E-TY(L_ldY-pCoEN)043C#26U^~%$RtC^Ry^DT62H+|M?>17Ps zmI7=2KilTQ+U31SpbOA{@L1)O#N7z_*i3;gQ+Yu*V=&c!jyEGb4auvEbCN%mHum>m zh{zD73-_yR_}K1n9{kYF6TI|of>lmaBy-TJLLgbXL+HPj%vZ0{RgQEUcbhyUp)WROvf-j{iT31(-y7@44`dTK zZde-Z@SX$odSvT7H*gG=Ff4&TSn(~-`$2$XMPr>qFZVFa7PK!{Oq~Y&dMl;_`)%C5 zaeqr+isT-+16J;Qz484*z@Qf|a#V{D1f|d9Z|v^-FR59=m=N;~UwU>wO26}gjX&Ey zJt|zG;mj$$;=!UC@=TGdznfnmwH|;$mv_HN+h=%4KHvp1j?V z?!0r{qc>}3*y_hjv{W;tQ=@dm*ycf+(Zd`1Nn= z$-gCd)IN;G9N@-L*ln$69bdmkq7TuFrC!&>B*iOUy1scVt?j^eYnZ*ttRB1HALDtk z!TBMpXZn~db7_Fg$>GDbzDn@W^qg`*95@}YEi=D!XmWY>QsJd(=#5Zqhmt0he?wgX zN&z1}-EB=@u#HehXLZOVJDA_Q78vF4EBj#e0{K95|8$K`;Q+(oEXAc~`$@U(on_?> zUYbwSeMh)C$G3NcnT_P?c1o%|YyMzq%OY?drS9ICkE(SEH=fLvy^@Hsbqo#MJt=)6 zR+RhLPnSc*sn;#tmCP-xXJxi@)hbF9WFSz_m;a0e>1z#YuDCwlztSf$j?r7pNu<(L zLY*5ODsF<_@_=IcP2L=})5~wOG*u6&Hq7L98=}VNUGBI7|5yr+J!XC)_@RkoVw*$p z3lp75|4OceOAE$XcF7wK%GAxncL)2M0>rXkIAR?gh1Jftwx@dLt?`)bEdO~;*WWu_ z^=2=Fs3{ASg1tx3YRUa{OecA z0y1vBK6-B-Dk#H%DUcz1lG`k*vG=8Swb-27cfn(imqP<#_)O8SB3=?h74`Fqn|y>{ z{CUqAdZST&^A8fg<*D9%($^{rL_~60nN=Vp-^n;zV?m20qB=Dq78=@Rmng8A|GI{_;9Nvh6kpt-D(IuWqg(o&iIuh{5fb;=DSz#?JjQ%ZGZF_F^ccjEH+3(FxXUx?h5UkeCNUtSsI z8F(wH{|{ripjgrK)E$=^-IwiEPi{`i9C{ThO_+1Oen*tJvcX_@CvRUp3|%o1w$)+% zXOB!?PVTrp`{LDt<00E8wf8c1?a^ z3)>fgnzmx_=~XAVi?CB3?fQ1}Yk`Rn@s<}ni=;uWMbwLsA+Wvpgavtp@)#KtK*Zu z`hp^JRayOq%=%^##c4v<`uJE2;{(0&C-@6Tb^=i$?G&$yz4yLfljJ-{Gjh+a=zd+y zIGNnq(U7cmlHlai)tB-Ug0C)>`$vmq`jk#ZpEvHZpI6ZDHk!Fq#Nl;Tw5o_wKa6!|ul6)889qYW^N_jQN;YSU?^!Q4mWG zuJ7dvtj{!tBK-3bx9Fz( rzJJ!r#bJ8xf*4cos}ohj7QY5F?)?*aOF!X9S3Yx-3mIqx3WWay2_?qu literal 0 HcmV?d00001 -- 2.40.1 From dc41ff574e4df39552f280e408133a1f906e719a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:31:08 -0500 Subject: [PATCH 039/321] Delete main --- mods/stamina/sounds/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/sounds/main diff --git a/mods/stamina/sounds/main b/mods/stamina/sounds/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/stamina/sounds/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 4a13b6853d1f77ac64f56e430aa1ca7885c60742 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:32:11 -0500 Subject: [PATCH 040/321] Add files via upload --- mods/stamina/sounds/stamina_eat.2.ogg | Bin 0 -> 11736 bytes mods/stamina/sounds/stamina_eat.3.ogg | Bin 0 -> 11656 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/stamina/sounds/stamina_eat.2.ogg create mode 100644 mods/stamina/sounds/stamina_eat.3.ogg diff --git a/mods/stamina/sounds/stamina_eat.2.ogg b/mods/stamina/sounds/stamina_eat.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..edca4239dc6c9b95df5588afa9f227e379886d6e GIT binary patch literal 11736 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 VXr4zSvBvFFyCks}pO667{{aK%bkqO< literal 0 HcmV?d00001 -- 2.40.1 From 411e50db0ac700bdcdf4a595b0476860c2fe9765 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:32:44 -0500 Subject: [PATCH 041/321] Create main --- mods/stamina/textures/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/stamina/textures/main diff --git a/mods/stamina/textures/main b/mods/stamina/textures/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/stamina/textures/main @@ -0,0 +1 @@ + -- 2.40.1 From 35471488fe1c0ed923eb5993128ea2c4234f5183 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:32:59 -0500 Subject: [PATCH 042/321] Add files via upload --- mods/stamina/textures/stamina_hud_bg.png | Bin 0 -> 417 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/stamina/textures/stamina_hud_bg.png diff --git a/mods/stamina/textures/stamina_hud_bg.png b/mods/stamina/textures/stamina_hud_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..07e21e7be47ebfe19f972382f6ea5a086a33cbfc GIT binary patch literal 417 zcmV;S0bc%zP)pGQ%OWYRCt`Nlf7=jFcd~Z)s4q-V#j}S9N(Bo9uNaUNQ_8GOc{AB z-maBG`8vgdma0hS*v&hyhZwANsZfiVWoIXLI2s_N})-8TUd zjUfaO5kd%1O2HU|rfFcUg;ENPvG<1pBD&Od4Jjq8wTLldwOXO?dsu5Bgg{xAQ?fA& z_WS*8yWNh)7?foR&N5y3eJB7(IRbzSGHX|2bcfQT;6IdIP5z0X~xln_Ed zN(t{hy!V*u7-N@P!PPkj=Nw{;xm#6LIh9fhA%u(&0=I$>BFd4Sb1=q0YmKI9Af<#c z2Gf8i02IYA470=GaOt`(Prq&3%x%}(!$fqwdxhO@hZrMbjOe-!lkg`V?!kF}D%R^Y zQc6fEVX;^s#)y;>Hk%FlzQ@Bw8iwKJ(MJBpU4rBB`1&Wov!Ce`d<6U`HGiA|00000 LNkvXXu0mjf5NEV} literal 0 HcmV?d00001 -- 2.40.1 From c33a69cf4100a9fa6580765bac09145ef9dd0776 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:33:16 -0500 Subject: [PATCH 043/321] Delete main --- mods/stamina/textures/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/textures/main diff --git a/mods/stamina/textures/main b/mods/stamina/textures/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/stamina/textures/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 7643c59beaa70d680d2ed80563500444cb2b36ce Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:33:32 -0500 Subject: [PATCH 044/321] Add files via upload --- mods/stamina/textures/stamina_hud_fg.png | Bin 0 -> 522 bytes mods/stamina/textures/stamina_hud_poison.png | Bin 0 -> 3196 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/stamina/textures/stamina_hud_fg.png create mode 100644 mods/stamina/textures/stamina_hud_poison.png diff --git a/mods/stamina/textures/stamina_hud_fg.png b/mods/stamina/textures/stamina_hud_fg.png new file mode 100644 index 0000000000000000000000000000000000000000..a5cc2a12339c1fcba9e605fb5cae51aabcefb60c GIT binary patch literal 522 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 Date: Sun, 15 Dec 2019 17:47:28 -0500 Subject: [PATCH 045/321] Add files via upload --- mods/description.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/description.txt diff --git a/mods/description.txt b/mods/description.txt new file mode 100644 index 00000000..44d784dc --- /dev/null +++ b/mods/description.txt @@ -0,0 +1 @@ +Pova gives mod makers a set of functions to safely apply overrides for player speed, jump height and gravity. \ No newline at end of file -- 2.40.1 From 915f82c8110f197772ed49a86ddc2b50fb330ec6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:48:02 -0500 Subject: [PATCH 046/321] Rename mods/description.txt to mods/pova/description.txt --- mods/{ => pova}/description.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename mods/{ => pova}/description.txt (58%) diff --git a/mods/description.txt b/mods/pova/description.txt similarity index 58% rename from mods/description.txt rename to mods/pova/description.txt index 44d784dc..16ab4585 100644 --- a/mods/description.txt +++ b/mods/pova/description.txt @@ -1 +1 @@ -Pova gives mod makers a set of functions to safely apply overrides for player speed, jump height and gravity. \ No newline at end of file +Pova gives mod makers a set of functions to safely apply overrides for player speed, jump height and gravity. -- 2.40.1 From dc9b47dd4719191f6d4d32348b26acca9e2b8fcf Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:48:29 -0500 Subject: [PATCH 047/321] Add files via upload --- mods/pova/README.md | 55 +++++++++++ mods/pova/init.lua | 196 +++++++++++++++++++++++++++++++++++++ mods/pova/license.txt | 21 ++++ mods/pova/mod.conf | 1 + mods/pova/settingtypes.txt | 2 + 5 files changed, 275 insertions(+) create mode 100644 mods/pova/README.md create mode 100644 mods/pova/init.lua create mode 100644 mods/pova/license.txt create mode 100644 mods/pova/mod.conf create mode 100644 mods/pova/settingtypes.txt diff --git a/mods/pova/README.md b/mods/pova/README.md new file mode 100644 index 00000000..4c5595f7 --- /dev/null +++ b/mods/pova/README.md @@ -0,0 +1,55 @@ +# POVA + +Pova gives mod makers a set of easy to use functions that safely apply overrides for player speed, jump height and gravity effects. + +## Settings + +'pova_loop' setting is 1.0 by default and will calculate and set overrides once a second for each player, set to 0.5 for every half a second or 0 to disable. + +## Functions + +pova.add_override = function(name, item, def) + +- Adds a named override which can be used to add or subtract from speed, jump and gravity effects. Custom overrides are also used for specific tasks: + +- "default" sets default values for each of the settings to which overrides are added. +- "min" provides a minimum level for each of the settings. +- "max" provides a maximum level for each of the settings. +- "force" overrides all and forces a value for each setting (e.g setting speed to 0 when sleeping in beds) + + - 'def.priority' can be used to set priorities for custom effects, higher numbers get applied (defaults to 50) + +pova.get_override = function(name, item) + +- Returns the table containing {speed, jump, gravity} for an added item. + +pova.del_override = function(name, item) + +- Removes the override settings for the item named. + +pova.do_override(player) + +- Calculates and sets new overrides instantly, this can be used when the 'pova_loop' setting is false. + + +## Changelog + +### 0.1 + + - Initial Upload + +### 0.2 + + - Added pova.do_override(player) to instantly set overrides on list. + - Added 'pova_loop' setting in minetest.conf to disable override calc loop + +### 0.3 + + - Added custom override names for special functions "default", "min", "max", "force" + - Tweaked test axe to use new settings. + +### 0.4 + + - 'pova_loop' now contains loop timer in seconds, 0 to disable + - Added def.priority setting to add_override to stop unimportant changes + - tweak and optimize code diff --git a/mods/pova/init.lua b/mods/pova/init.lua new file mode 100644 index 00000000..b03fee3a --- /dev/null +++ b/mods/pova/init.lua @@ -0,0 +1,196 @@ + +-- global +pova = {} + +-- local +local pova_list = {} +local min, max = math.min, math.max + +-- time each override loop runs, 0 to disable +local pova_loop = minetest.settings:get_bool("pova_loop") or 1.0 + +-- if enabled activate main loop that totals override list on timer +if pova_loop > 0 then + + local timer = 0 + + minetest.register_globalstep(function(dtime) + + timer = timer + dtime + + if timer < pova_loop then + return + end + + timer = 0 + + -- loop through players and apply overrides + for _,player in ipairs(minetest.get_connected_players()) do + pova.do_override(player) + end + end) +end + + +-- global functions +pova.add_override = function(name, item, def) + + -- nil check + if not name or not item then return end + + -- priority defaults to 50 when not included + def.priority = tonumber(def.priority) or 50 + + -- if same item is assigned with lower priority then change ignored + if pova_list[name][item] + and pova_list[name][item].priority + and pova_list[name][item].priority > def.priority then + return + end + + pova_list[name][item] = def +end + +pova.get_override = function(name, item) + return pova_list[name][item] +end + +pova.del_override = function(name, item) + pova_list[name][item] = nil +end + +pova.do_override = function(player) + + local name = player:get_player_name() + + -- somehow player list is missing + if not pova_list[name] then + return + end + + -- set base defaults + local speed, jump, gravity = 1, 1, 1 + + -- check for new defaults + if pova_list[name]["default"] then + speed = pova_list[name]["default"].speed or 1 + jump = pova_list[name]["default"].jump or 1 + gravity = pova_list[name]["default"].gravity or 1 + end + + -- loop through list of named overrides + for id, var in pairs(pova_list[name]) do + + -- skip any custom names + if var + and id ~= "default" + and id ~= "min" + and id ~= "max" + and id ~= "force" then + + -- add any additional changes + speed = speed + (pova_list[name][id].speed or 0) + jump = jump + (pova_list[name][id].jump or 0) + gravity = gravity + (pova_list[name][id].gravity or 0) + end + end + + -- make sure total doesn't go below minimum values + if pova_list[name]["min"] then + speed = max(pova_list[name]["min"].speed or 0, speed) + jump = max(pova_list[name]["min"].jump or 0, jump) + gravity = max(pova_list[name]["min"].gravity or 0, gravity) + end + + -- make sure total doesn't go above maximum values + if pova_list[name]["max"] then + speed = min(pova_list[name]["max"].speed or speed, speed) + jump = min(pova_list[name]["max"].jump or jump, jump) + gravity = min(pova_list[name]["max"].gravity or gravity, gravity) + end + + -- force values (for things like sleeping in bed when speed is 0) + if pova_list[name]["force"] then + speed = pova_list[name]["force"].speed or speed + jump = pova_list[name]["force"].jump or jump + gravity = pova_list[name]["force"].gravity or gravity + end + + -- for testing only + if name == "singleplayer" then + print ("speed: " .. speed .. " / jump: " .. jump .. " / gravity: " .. gravity) + end + + -- set new overrides + player:set_physics_override(speed, jump, gravity) +end + + +-- set player table on join +minetest.register_on_joinplayer(function(player) + pova_list[ player:get_player_name() ] = {} + pova.do_override(player) +end) + +-- reset player table on respawn +minetest.register_on_respawnplayer(function(player) + pova_list[ player:get_player_name() ] = {} + pova.do_override(player) +end) + +-- blank player table on leave +minetest.register_on_leaveplayer(function(player) + pova_list[ player:get_player_name() ] = nil +end) + + +-- axe tool to showcase features +minetest.register_craftitem("pova:axe", { + description = "Test Axe (left to apply, right to remove effects)", + inventory_image = "default_tool_steelaxe.png", + + on_use = function(itemstack, user, pointed_thing) + + local name = user:get_player_name() + + -- set new defaults + pova.add_override(name, "default", {speed = 2, jump = 3, gravity = 1}) + + -- define changes that are added onto defaults + pova.add_override(name, "test", {speed = 1, jump = -1, gravity = 0.5}) + +--= speed is now 3, jump is 2 and gravity is 1.5 + + -- set new minimum for jump + pova.add_override(name, "min", {jump = 3}) + + -- add new maximum for speed + pova.add_override(name, "max", {speed = 2}) + + -- add force value for gravity + pova.add_override(name, "force", {gravity = 1.2}) + +--= speed is now max 2, jump is min 3 and gravity forced to 1.2 + + -- this wont get applied because priority is lower than 50 + pova.add_override(name, "force", {speed = 8, priority = 10}) + + -- apply override + pova.do_override(user) + end, + + on_place = function(itemstack, user, pointed_thing) + + local name = user:get_player_name() + + -- remove changes + pova.del_override(name, "min") + pova.del_override(name, "max") + pova.del_override(name, "force") + pova.del_override(name, "test") + pova.del_override(name, "default") + + -- apply override + pova.do_override(user) + end, +}) diff --git a/mods/pova/license.txt b/mods/pova/license.txt new file mode 100644 index 00000000..fec6f6aa --- /dev/null +++ b/mods/pova/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/mods/pova/mod.conf b/mods/pova/mod.conf new file mode 100644 index 00000000..97a28b20 --- /dev/null +++ b/mods/pova/mod.conf @@ -0,0 +1 @@ +name = pova \ No newline at end of file diff --git a/mods/pova/settingtypes.txt b/mods/pova/settingtypes.txt new file mode 100644 index 00000000..1db93952 --- /dev/null +++ b/mods/pova/settingtypes.txt @@ -0,0 +1,2 @@ +# POVA recalc loop in seconds (0 to disable) +pova_loop (POVA loop number in seconds) float 1.0 -- 2.40.1 From d00f3d42b6e02e2b8b8fd6543265cfeb9eaa9863 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:49:58 -0500 Subject: [PATCH 048/321] Add files via upload --- mods/API.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 mods/API.md diff --git a/mods/API.md b/mods/API.md new file mode 100644 index 00000000..a032112b --- /dev/null +++ b/mods/API.md @@ -0,0 +1,76 @@ +#Player Monoids + +The idea behind this library is that global player state (physics overrides, +armor values, etc.) changes from multiple mods should mesh nicely with each +other. This means they must be combinable in a sane way. + +Monoids +======= +A player monoid covers a single kind of player state a mod might want to change. +These can be built-in player state, like speed multipliers or fly permissions, +or could be custom state introduced by mods, such as corruption or reputation +level. When you make a player monoid, you must choose some type of value to +represent state changes - for example, numbers for speed multipliers, or vectors +for "lucky direction". Each mod can contribute different changes, represented +by this type of value, and they are all combined together. This combined value +is interpreted and converted into actual effects on the player's state. +Privileges could be set, physics overrides would be used to effect speed +changes, and a mod might change some value to match the monoid. + +Definition +---------- +A player monoid definition is a table with the following: + + * ```combine(elem1, elem2)``` - An associative binary operation + * ```fold({elems})``` - Equivalent to combining a whole list with ```combine``` + * ```identity``` - An identity element for ```combine``` + * ```apply(value, player)``` - Apply the effect represented by ```value``` + to ```player``` + * ```on_change(val1, val2, player)``` - Do something when the value on a + player changes. (optional) + +Additionally, you should document what values are valid representatives of +your monoid's effects. When something says that a value is "in a monoid", it +means that value is a valid representative of your monoid's effects. + +combine and fold +---------------- +```combine``` should take two values in your monoid and produce a third value in +your monoid. It should also be an associative operation. ```fold`` should take a +table containing elements of your monoid as input and combine them together in +key order. It should be equivalent to using ```combine``` to combine all the +values together. For example, ```combine``` could multiply two speed multipliers +together, and ```fold``` could multiply every value together. + +identity +-------- +```identity```, when combined with any other value, should result in the other +value. It also represents the "default" or "neutral" state of the player, and +will be used when there are no status effects active for a particular monoid. +For example, the identity of a speed monoid could be the multiplier ```1```. + +apply +----- +```apply``` is the function that interprets a value in your monoid to do +something to the player's state. For example, you could set a speed multiplier +as the speed physics override for the player. + +Functions +========= +```player_monoids.make_monoid(monoid_def)``` - Creates a new monoid that can be +used to make changes to the player state. Returns a monoid. + +Monoid Methods +-------------- +```monoid:add_change(player, value[, "id"])``` - Applies the change represented +by ```value``` to ```player```. Returns an ID for the change. If the optional +string argument ```"id"``` is supplied, that is used as the ID instead, and any +existing change with that ID is removed. IDs are only guaranteed to be unique +per-player. Conversely, you are allowed to make multiple changes with the same +ID as long as they are all on different players. + +```monoid:del_change(player, id)``` - Removes the change with the given ID, from +the given player, if it exists. + +```monoid:value(player)``` - The current combined value of the monoid for the +given player. -- 2.40.1 From 1045d88d8af5c8477e16f5c5d4429850e08730fe Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:50:26 -0500 Subject: [PATCH 049/321] Rename mods/API.md to mods/player_monoids/API.md --- mods/{ => player_monoids}/API.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{ => player_monoids}/API.md (100%) diff --git a/mods/API.md b/mods/player_monoids/API.md similarity index 100% rename from mods/API.md rename to mods/player_monoids/API.md -- 2.40.1 From 3ae5819427c69a5bebaffbcd19ff6474605f0f52 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 17:50:59 -0500 Subject: [PATCH 050/321] Add files via upload --- mods/player_monoids/COPYING | 13 ++ mods/player_monoids/README.md | 205 +++++++++++++++++++++++ mods/player_monoids/bower.json | 19 +++ mods/player_monoids/description.txt | 2 + mods/player_monoids/init.lua | 118 +++++++++++++ mods/player_monoids/mod.conf | 1 + mods/player_monoids/standard_monoids.lua | 180 ++++++++++++++++++++ mods/player_monoids/test.lua | 27 +++ 8 files changed, 565 insertions(+) create mode 100644 mods/player_monoids/COPYING create mode 100644 mods/player_monoids/README.md create mode 100644 mods/player_monoids/bower.json create mode 100644 mods/player_monoids/description.txt create mode 100644 mods/player_monoids/init.lua create mode 100644 mods/player_monoids/mod.conf create mode 100644 mods/player_monoids/standard_monoids.lua create mode 100644 mods/player_monoids/test.lua diff --git a/mods/player_monoids/COPYING b/mods/player_monoids/COPYING new file mode 100644 index 00000000..8034ed73 --- /dev/null +++ b/mods/player_monoids/COPYING @@ -0,0 +1,13 @@ +Copyright 2015-2016 raymoo + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/mods/player_monoids/README.md b/mods/player_monoids/README.md new file mode 100644 index 00000000..245174ab --- /dev/null +++ b/mods/player_monoids/README.md @@ -0,0 +1,205 @@ +# Player Monoids + +This is a small library for managing global player state, so that changes made +from different mods do not result in unexpected behavior. The README gives an +introduction to the mod, but you might want to reference API.md along the way. +This mod, combined with playereffects, deprecates monoidal_effects. + +Global Player State +=================== +Players have behavior-affecting state that can be modified through mods. A couple +examples are physics overrides and armor groups. If more than one mod tries to +change them, it can result in unexpected results. + +For example, a player could be +under a speed boost effect from a playereffects effect, and then sleep in a bed. +The bed sets the player's speed to 0, and sets it back to 1 when they get out. +Because the beds mod had no way of knowing that the player was supposed to have +a speed boost, it effectively removed it. One hack to "fix" it would be to save +the player's speed and restore it on wakeup, but this would have its own problems +if the effect wears off in bed. The beds mod would restore the boosted speed, +which wouldn't be removed, since the effect already went away. Thus an exploit +allowing a permanent (until log out) speed boost is introduced. + +Player Monoids manages this by creating layers (monoids) on top of player state, +which can keep track of different changes and combine them usefully. + +Monoids +======= + +Creation +-------- +A monoid in Player Monoids is an interface to one piece of player state. For +example, you could have one monoid covering physics overrides, and another +covering fly privilege. You could define a speed monoids like this: +``` +-- The values in my speed monoid must be speed multipliers (numbers). +mymod.speed_monoid = player_monoids.make_monoid({ + combine = function(speed1, speed2) + return speed1 * speed2 + end, + fold = function(tab) + local res = 1 + for _, speed in pairs(tab) do + res = res * speed + end + end, + identity = 1, + apply = function(speed, player) + local override = player:get_physics_override() + override.speed = speed + player:set_physics_override(override) + end, + on_change = function() return end, +}) +``` + +This says that two speed multipliers can be combined by multiplication, that +1 can be used as a neutral element, and that the "interpretation" of the speed +multiplier is to set the player's speed physics override to that value. It also +says that nothing in particular needs to happen when the speed changes, other +than applying the new speed multiplier. + +Use +--- +To add or remove change through a monoid, you must use the ```add_change``` +and ```del_change``` methods. For example, you could speed the player up +temporarily like this: +``` +-- Zoom! +local zoom_id = mymod.speed_monoid:add_change(some_player, 10) + +minetest.after(5,function() mymod.speed_monoid:del_change(some_player, zoom_id) end) +``` +You could also specify a string ID to use, instead of the numerical one that +is automatically provided: +``` +-- Zoom Mk. II +mymod.speed_monoid:add_change(some_player, 10, "mymod:zoom") + +minetest.after(5,function() mymod.speed_monoid:del_change(some_player, "mymod:zoom") end) +``` + +Reading Values +-------------- +You can use ```monoid:value(player)``` to read the current value of the monoid, +for that player. This could be useful if it doesn't just represent built-in +player state. For example, it could represent gardening skill, and you might use +it to calculate the chance of success when harvesting spices. + +Nesting Monoids +--------------- +You may have already noticed one limitation of this design. That is, for each +kind of player state, you can only combine state changes in one way. If the +standard speed monoid combines speed multipliers by multiplication, you cannot +change it to instead choose the highest speed multiplier. Unfortunately, there +is currently no way change this - you will have to hope that the given monoid +combines in a useful way. However, it is possible to manage a subset of the +values in a custom way. + +Suppose that a speed monoid (```mymod.speed_monoid```) already exists, using +multiplication, but you want to write a mod with speed boosts, and only apply +the strongest boost. Most of it could be done the same way: +``` +-- My speed boosts monoid takes speed multipliers (numbers) that are at least 1. +newmod.speed_boosts = player_monoids.make_monoid({ + combine = function(speed1, speed2) + return speed1 * speed2 + end, + fold = function(tab) + local res = 1 + for _, speed in pairs(tab) do + res = res * speed + end + end, + identity = 1, + apply = ??? + on_change = function() return end, +}) +``` +But we cannot just change the player speed in ```apply```, otherwise we will +break compatibility with the original speed monoid! The trick here is to use +the original monoid as a proxy for our effects. +``` +apply = function(speed, player) + mymod.speed_monoid:add_change(player, speed, "newmod:speed_boosts") +end +``` +This means the speed boosts we control can be limited to the strongest boost, but +the resulting boost will still play nice with speed effects from other mods. +You could even add another "nested monoid" just for speed maluses, that takes +the worst speed drain and applies it as a multiplier. + +Standard Monoids +================ +In the spirit of compatibility, this mod provides some canonical monoids for +commonly used player state. They combine values in a way that should allow +different mods to affect player state fairly. If you make another monoid handling +the same state as one of these, you will break compatibility with any mods using +the standard monoid. + +Physics Overrides +----------------- +These monoids set the multiplier of the override they are named after. All three +take non-negative numbers as values and combine them with multiplication. They +are: + * ```player_monoids.speed``` + * ```player_monoids.jump``` + * ```player_monoids.gravity``` + +Privileges +---------- +These monoids set privileges that affect the player's ordinary gameplay. They +take booleans as input and combine them with logical or. They are: + * ```player_monoids.fly``` + * ```player_monoids.noclip``` + +Other +----- + * ```player_monoids.collisionbox``` - Sets the player's collisionbox. Values are + 3D multiplier vectors, which are combined with component-wise multiplication. + * ```player_monoids.visual_size``` - Sets the player's collisionbox. Values are + 2D multiplier vectors (x and y), which are combined with component-wise + multiplication. + +Use with playereffects +====================== +Player Monoids does not provide anything special for persistent effects with +limited lifetime. By using monoids with Wuzzy's playereffects, you can easily +create temporary effects that stack with each other. As an example, an effect +that gives the player 2x speed: +``` +local speed = player_monoids.speed + +local function apply(player) + speed:add_change(player, 2, "mymod:2x_speed") +end + +local function cancel(player) + speed:del_change(player, "mymod:2x_speed") +end + +local groups = { "mymod:2x_speed" } + +playereffects.register_effect_type("mymod:2x_speed", "2x Speed", groups, apply, cancel) +``` + +Note that this effect does NOT use the "speed" effect group. As long as other +speed effects use the speed monoid, we do not want them to be cancelled, since +the goal is to combine the effects together. It does use a singleton group to +prevent multiple instances of the same effect. I think that playereffects require +effects to belong to at least one group, but I am not sure. + +Caveats +======= +* If the global state managed by a monoid is modified by something other than +the monoid, you will have the same problem as when two mods both independently +try to modify global state without going through a monoid. + * This includes playereffects effects that affect global player state without +going through a monoid. +* You will also get problems if you use multiple monoids to manage the same +global state. +* The order that different effects get combined together is based on key order, +which may not be predictable. So you should try to make your monoids commutative +in addition to associative, or at least not care if the order of two changes +is swapped. \ No newline at end of file diff --git a/mods/player_monoids/bower.json b/mods/player_monoids/bower.json new file mode 100644 index 00000000..830c0d49 --- /dev/null +++ b/mods/player_monoids/bower.json @@ -0,0 +1,19 @@ +{ + "name": "player_monoids", + "description": "Library for making player state changes combinable\n", + "keywords": [ + "player_monoids", + "monoid", + "monoids", + "effect", + "playereffects" + ], + "homepage": "https://github.com/raymoo/player_monoids", + "forum": "https://forum.minetest.net/viewtopic.php?f=9&t=14895", + "screenshots": [ + "https://example.com/screenshot1.png" + ], + "authors": [ + "raymoo" + ] +} diff --git a/mods/player_monoids/description.txt b/mods/player_monoids/description.txt new file mode 100644 index 00000000..87dacddc --- /dev/null +++ b/mods/player_monoids/description.txt @@ -0,0 +1,2 @@ +player_monoids is a library for managing global player state, such as physics +overrides or player visual size. diff --git a/mods/player_monoids/init.lua b/mods/player_monoids/init.lua new file mode 100644 index 00000000..ed34bdf5 --- /dev/null +++ b/mods/player_monoids/init.lua @@ -0,0 +1,118 @@ +-- Copyright (c) raymoo 2016 +-- Licensed under Apache 2.0 license. See COPYING for details. + +-- Any documentation here are internal details, please avoid using them in your +-- mod. + +local modpath = minetest.get_modpath(minetest.get_current_modname()) .. "/" + +player_monoids = {} + +local mon_meta = {} + +mon_meta.__index = mon_meta + +local nop = function() end + +-- A monoid object is a table with the following fields: +-- def: The monoid definition +-- player_map: A map from player names to their effect tables. Effect tables +-- are maps from effect IDs to values. +-- value_cache: A map from player names to the cached value for the monoid. +-- next_id: The next unique ID to assign an effect. + +local function monoid(def) + local mon = {} + + local actual_def = {} + + for k, v in pairs(def) do + actual_def[k] = v + end + + if not actual_def.apply then + actual_def.apply = nop + end + + if not actual_def.on_change then + actual_def.on_change = nop + end + + mon.def = actual_def + + local p_map = {} + mon.player_map = p_map + + mon.next_id = 1 + + local v_cache = {} + mon.value_cache = v_cache + + setmetatable(mon, mon_meta) + + minetest.register_on_leaveplayer(function(player) + local p_name = player:get_player_name() + p_map[p_name] = nil + v_cache[p_name] = nil + end) + + return mon +end + +player_monoids.monoid = monoid + +function mon_meta:add_change(player, value) + local p_name = player:get_player_name() + + local def = self.def + + local p_effects = self.player_map[p_name] + if p_effects == nil then + p_effects = {} + self.player_map[p_name] = p_effects + end + + local actual_id + + if id then + actual_id = id + else + actual_id = self.next_id + self.next_id = actual_id + 1 + end + + local old_total = self.value_cache[p_name] + p_effects[actual_id] = value + local new_total = def.fold(p_effects) + self.value_cache[p_name] = new_total + + def.apply(new_total, player) + def.on_change(old_total, new_total, player) + + return actual_id +end + +function mon_meta:del_change(player, id) + local p_name = player:get_player_name() + + local def = self.def + + local p_effects = self.player_map[p_name] + if p_effects == nil then return end + + local old_total = self.value_cache[p_name] + p_effects[id] = nil + local new_total = def.fold(p_effects) + self.value_cache[p_name] = new_total + + def.apply(new_total, player) + def.on_change(old_total, new_total, player) +end + +function mon_meta:value(player) + local p_name = player:get_player_name() + return self.value_cache[p_name] or self.def.identity +end + +dofile(modpath .. "standard_monoids.lua") +dofile(modpath .. "test.lua") diff --git a/mods/player_monoids/mod.conf b/mods/player_monoids/mod.conf new file mode 100644 index 00000000..2ff945ae --- /dev/null +++ b/mods/player_monoids/mod.conf @@ -0,0 +1 @@ +name=player_monoids \ No newline at end of file diff --git a/mods/player_monoids/standard_monoids.lua b/mods/player_monoids/standard_monoids.lua new file mode 100644 index 00000000..34d76589 --- /dev/null +++ b/mods/player_monoids/standard_monoids.lua @@ -0,0 +1,180 @@ +-- Standard effect monoids, to provide canonicity. + +local function mult(x, y) return x * y end + +local function mult_fold(elems) + local tot = 1 + + for k,v in pairs(elems) do + tot = tot * v + end + + return tot +end + +local function v_mult(v1, v2) + local res = {} + + for k, v in pairs(v1) do + res[k] = v * v2[k] + end + + return res +end + +local function v_mult_fold(identity) + return function(elems) + local tot = identity + + for k, v in pairs(elems) do + tot = v_mult(tot, v) + end + + return tot + end +end + +local monoid = player_monoids.monoid + +-- Speed monoid. Effect values are speed multipliers. Must be nonnegative +-- numbers. +player_monoids.speed = monoid({ + combine = function(x, y) return x * y end, + fold = function(elems) + local res = 1 + for k, v in pairs(elems) do + res = res * v + end + + return res + end, + identity = 1, + apply = function(mult, player) + local ov = player:get_physics_override() + ov.speed = mult + player:set_physics_override(ov) + end, +}) + + +-- Jump monoid. Effect values are jump multipliers. Must be nonnegative +-- numbers. +player_monoids.jump = monoid({ + combine = function(x, y) return x * y end, + fold = function(elems) + local res = 1 + for k, v in pairs(elems) do + res = res * v + end + + return res + end, + identity = 1, + apply = function(mult, player) + local ov = player:get_physics_override() + ov.jump = mult + player:set_physics_override(ov) + end, +}) + + +-- Gravity monoid. Effect values are gravity multipliers. +player_monoids.gravity = monoid({ + combine = function(x, y) return x * y end, + fold = function(elems) + local res = 1 + for k, v in pairs(elems) do + res = res * v + end + + return res + end, + identity = 1, + apply = function(mult, player) + local ov = player:get_physics_override() + ov.gravity = mult + player:set_physics_override(ov) + end, +}) + + +-- Fly ability monoid. The values are booleans, which are combined by or. A true +-- value indicates having the ability to fly. +player_monoids.fly = monoid({ + combine = function(p, q) return p or q end, + fold = function(elems) + for k, v in pairs(elems) do + if v then return true end + end + + return false + end, + identity = false, + apply = function(can_fly, player) + local p_name = player:get_player_name() + local privs = minetest.get_player_privs(p_name) + + if can_fly then + privs.fly = true + else + privs.fly = nil + end + + minetest.set_player_privs(p_name, privs) + + end, +}) + + +-- Noclip ability monoid. Works the same as fly monoid. +player_monoids.noclip = monoid({ + combine = function(p, q) return p or q end, + fold = function(elems) + for k, v in pairs(elems) do + if v then return true end + end + + return false + end, + identity = false, + apply = function(can_noclip, player) + local p_name = player:get_player_name() + local privs = minetest.get_player_privs(p_name) + + if can_noclip then + privs.noclip = true + else + privs.noclip = nil + end + + minetest.set_player_privs(p_name, privs) + + end, +}) + +local def_col_scale = { x=0.3, y=1, z=0.3 } + +-- Collisionbox scaling factor. Values are a vector of x, y, z multipliers. +player_monoids.collisionbox = monoid({ + combine = v_mult, + fold = v_mult_fold({x=1, y=1, z=1}), + identity = {x=1, y=1, z=1}, + apply = function(multiplier, player) + local v = vector.multiply(def_col_scale, multiplier) + + player:set_properties({ + collisionbox = { -v.x, -v.y, -v.z, v.z, v.y, v.z } + }) + end, +}) + +player_monoids.visual_size = monoid({ + combine = v_mult, + fold = v_mult_fold({x=1, y=1}), + identity = {x=1, y=1}, + apply = function(multiplier, player) + player:set_properties({ + visual_size = multiplier + }) + end, +}) diff --git a/mods/player_monoids/test.lua b/mods/player_monoids/test.lua new file mode 100644 index 00000000..eff14911 --- /dev/null +++ b/mods/player_monoids/test.lua @@ -0,0 +1,27 @@ + +local speed = player_monoids.speed + +minetest.register_privilege("monoid_master", { + description = "Allows testing of player monoids.", + give_to_singleplayer = false, +}) + +local function test(player) + local ch_id = speed:add_change(player, 10) + local p_name = player:get_player_name() + + minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) + + minetest.after(3, function() + speed:del_change(player, ch_id) + minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) + end) +end + +minetest.register_chatcommand("test_monoids", { + description = "Runs a test on monoids", + privs = { monoid_master = true }, + func = function(p_name) + test(minetest.get_player_by_name(p_name)) + end, +}) -- 2.40.1 From a18cb5ee8a4e4536755ea28efcf2a96c29ef270e Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:10:51 -0500 Subject: [PATCH 051/321] Add files via upload --- mods/.gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 mods/.gitignore diff --git a/mods/.gitignore b/mods/.gitignore new file mode 100644 index 00000000..ba96b081 --- /dev/null +++ b/mods/.gitignore @@ -0,0 +1,11 @@ +## Generic ignorable patterns and files +*~ +.*.swp +*bak* +tags +*.vim +armor.conf + +## Eclipse project files & directories +.project +.settings -- 2.40.1 From 16b87001612ef4c544d7685c8d166ccc38058781 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:11:18 -0500 Subject: [PATCH 052/321] Rename mods/.gitignore to mods/minetest-3d_armor/.gitignore --- mods/{ => minetest-3d_armor}/.gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{ => minetest-3d_armor}/.gitignore (100%) diff --git a/mods/.gitignore b/mods/minetest-3d_armor/.gitignore similarity index 100% rename from mods/.gitignore rename to mods/minetest-3d_armor/.gitignore -- 2.40.1 From 0609ef5c92170eb4c98e9c611840ffdd2996ee32 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:12:00 -0500 Subject: [PATCH 053/321] Add files via upload --- mods/minetest-3d_armor/LICENSE.md | 9 +++ mods/minetest-3d_armor/README.md | 69 ++++++++++++++++++++ mods/minetest-3d_armor/description.txt | 1 + mods/minetest-3d_armor/preview_gen.py | 81 ++++++++++++++++++++++++ mods/minetest-3d_armor/screenshot.png | Bin 0 -> 66964 bytes mods/minetest-3d_armor/settingtypes.txt | 65 +++++++++++++++++++ 6 files changed, 225 insertions(+) create mode 100644 mods/minetest-3d_armor/LICENSE.md create mode 100644 mods/minetest-3d_armor/README.md create mode 100644 mods/minetest-3d_armor/description.txt create mode 100644 mods/minetest-3d_armor/preview_gen.py create mode 100644 mods/minetest-3d_armor/screenshot.png create mode 100644 mods/minetest-3d_armor/settingtypes.txt diff --git a/mods/minetest-3d_armor/LICENSE.md b/mods/minetest-3d_armor/LICENSE.md new file mode 100644 index 00000000..56c93cdd --- /dev/null +++ b/mods/minetest-3d_armor/LICENSE.md @@ -0,0 +1,9 @@ +3D Armor - Visible Player Armor +=============================== + +License Source Code: Copyright (C) 2013-2018 Stuart Jones - LGPL v2.1 + +Armor Textures: Copyright (C) 2017-2018 davidthecreator - CC-BY-SA 3.0 + +Special credit to Jordach and MirceaKitsune for providing the default 3d character model. + diff --git a/mods/minetest-3d_armor/README.md b/mods/minetest-3d_armor/README.md new file mode 100644 index 00000000..204bf9d1 --- /dev/null +++ b/mods/minetest-3d_armor/README.md @@ -0,0 +1,69 @@ +Modpack - 3d Armor [0.4.13] +=========================== + +### Table of Contents + + + + +- [[mod] Visible Player Armor [3d_armor]](#mod-visible-player-armor-3d_armor) +- [[mod] Visible Wielded Items [wieldview]](#mod-visible-wielded-items-wieldview) +- [[mod] Shields [shields]](#mod-shields-shields) +- [[mod] 3d Armor Stand [3d_armor_stand]](#mod-3d-armor-stand-3d_armor_stand) + + + + +[mod] Visible Player Armor [3d_armor] +------------------------------------- + +Minetest Version: 5.0.0 + +Game: minetest_game and many derivatives + +Depends: default + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to attack. + +Armor takes damage when a player is hurt, however, many armor items offer a 'stackable' +percentage chance of restoring the lost health points. Overall armor level is boosted by 10% +when wearing a full matching set (helmet, chestplate, leggings and boots of the same material) + +Fire protection has been added by TenPlus1 and in use when ethereal mod is found and crystal +armor has been enabled. each piece of armor offers 1 fire protection, level 1 protects +against torches, level 2 against crystal spikes, 3 for fire and 5 protects when in lava. + +Compatible with sfinv, inventory plus or unified inventory by enabling the appropriate +inventory module, [3d_armor_sfinv], [3d_armor_ip] and [3d_armor_ui] respectively. +Also compatible with [smart_inventory] without the need for additional modules. + +built in support player skins [skins] by Zeg9 and Player Textures [player_textures] by PilzAdam +and [simple_skins] by TenPlus1. + +Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory. +see armor.conf.example for all available options. + +For mod installation instructions, please visit: http://wiki.minetest.com/wiki/Installing_Mods + +[mod] Visible Wielded Items [wieldview] +--------------------------------------- + +Depends: 3d_armor + +Makes hand wielded items visible to other players. + +[mod] Shields [shields] +----------------------- + +Depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not want shields then simply remove the shields folder from the modpack. + +[mod] 3d Armor Stand [3d_armor_stand] +------------------------------------- + +Depends: 3d_armor + +Adds a chest-like armor stand for armor storage and display. diff --git a/mods/minetest-3d_armor/description.txt b/mods/minetest-3d_armor/description.txt new file mode 100644 index 00000000..2da5ba4d --- /dev/null +++ b/mods/minetest-3d_armor/description.txt @@ -0,0 +1 @@ +Visible player armor & wielded items. diff --git a/mods/minetest-3d_armor/preview_gen.py b/mods/minetest-3d_armor/preview_gen.py new file mode 100644 index 00000000..a18954df --- /dev/null +++ b/mods/minetest-3d_armor/preview_gen.py @@ -0,0 +1,81 @@ +#!/usr/bin/python + +import os +import sys +import Image + +try : + arg = sys.argv[1] +except IndexError : + print "Usage: preview_gen.py " + sys.exit(1) + +try : + index = open(arg, "r") +except IOError : + print "Failed to open index file%s" %s (arg) + sys.exit(1) + +preview = [] + +for line in index.readlines() : + if ":" in line : + line = line.rstrip('\n') + preview.append(line.split(':')) + +print "Generating preview images..." +for fn, place in preview : + try : + imi = Image.open(fn) + except IOError : + print "Failed to open %s" % (fn) + sys.exit(1) + + w, h = imi.size + if h != w / 2: + print "Incompatible texture size %s" % (fn) + sys.exit(1) + + s = w / 64 + imo = Image.new("RGBA", (16 * s, 32 * s)) + + if place == "all" or place == "head" : + face = (40 * s, 8 * s, 48 * s, 16 * s) + side_l = (56 * s, 8 * s, 57 * s, 16 * s) + side_r = (63 * s, 8 * s, 64 * s, 16 * s) + imo.paste(imi.crop(side_l), (4 * s, 0, 5 * s, 8 * s)) + imo.paste(imi.crop(side_r), (11 * s, 0, 12 * s, 8 * s)) + imo.paste(imi.crop(face), (4 * s, 0, 12 * s, 8 * s)) + + if place == "all" or place == "torso" : + arm = (44 * s, 20 * s, 48 * s, 32 * s) + body = (20 * s, 20 * s, 28 * s, 32 * s) + imo.paste(imi.crop(arm), (0 * s, 8 * s, 4 * s, 20 * s)) + imo.paste(imi.crop(arm).transpose(Image.FLIP_LEFT_RIGHT), + (12 * s, 8 * s, 16 * s, 20 * s)) + imo.paste(imi.crop(body), (4 * s, 8 * s, 12 * s, 20 * s)) + + if place == "all" or place == "legs" : + leg = (4 * s, 20 * s, 8 * s, 32 * s) + imo.paste(imi.crop(leg), (4 * s, 20 * s, 8 * s, 32 * s)) + imo.paste(imi.crop(leg).transpose(Image.FLIP_LEFT_RIGHT), + (8 * s, 20 * s, 12 * s, 32 * s)) + + if place == "all" or place == "feet" : + boot = (20 * s, 4 * s, 24 * s, 11 * s) + imo.paste(imi.crop(boot), (4 * s, 25 * s, 8 * s, 32 * s)) + imo.paste(imi.crop(boot).transpose(Image.FLIP_LEFT_RIGHT), + (8 * s, 25 * s, 12 * s, 32 * s)) + + size = (32 * s, 64 * s) + imo = imo.resize(size) + + if place == "shield" : + shield = (0, 0, 16 * s, 16 * s) + imo.paste(imi.crop(shield), (16 * s, 32 * s, 32 * s, 48 * s)) + + outfile = fn.replace(".png", "_preview.png") + imo.save(outfile) + print outfile + + diff --git a/mods/minetest-3d_armor/screenshot.png b/mods/minetest-3d_armor/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f9e5824ad93f7ac173e171f3359b6e804028ce GIT binary patch literal 66964 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⩔QH?<@Sd{$xvwV*M#-t> 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

GR@H&owE^~8&C!S$YEePm+U=RM9BvLK!%ge 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 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/settingtypes.txt b/mods/minetest-3d_armor/settingtypes.txt new file mode 100644 index 00000000..c6c90de0 --- /dev/null +++ b/mods/minetest-3d_armor/settingtypes.txt @@ -0,0 +1,65 @@ + +[3d_armor] + +armor_material_wood (Enable wood armor) bool true +armor_material_cactus (Enable cactus armor) bool true +armor_material_steel (Enable steel armor) bool true +armor_material_bronze (Enable bronze armor) bool true +armor_material_diamond (Enable diamond armor) bool true +armor_material_gold (Enable gold armor) bool true +armor_material_mithril (Enable mithril armor) bool true +armor_material_crystal (Enable crystal armor) bool true + +# Increase this if you get initialization glitches when a player first joins. +armor_init_delay (Initialization delay) int 2 + +# Number of initialization attempts. +# Use in conjunction with armor_init_delay if initialization problems persist. +armor_init_times (Initialization attempts) int 10 + +# Increase this if armor is not getting into bones due to server lag. +armor_bones_delay (Delay for bones) int 1 + +# How often player armor items are updated. +armor_update_time (Armor refresh rate [seconds]) int 1 + +# Drop armor when a player dies. +# Uses bones mod if present, otherwise items are dropped around the player. +armor_drop (Drop armor on death) bool true + +# Pulverize armor when a player dies, overrides armor_drop. +armor_destroy (Pulverize armor on death) bool false + +# You can use this to increase or decrease overall armor effectiveness, +# eg: level_multiplier = 0.5 will reduce armor level by half. +armor_level_multiplier (Armor effectiveness multiplier) float 1 + +# You can use this to increase or decrease overall armor healing, +# eg: armor_heal_multiplier = 0 will disable healing altogether. +armor_heal_multiplier (Armor healing multiplier) float 1 + +# Enable water protection (periodically restores breath when activated). +armor_water_protect (Enable water protection) bool true + +# Enable fire protection (defaults true if using ethereal mod). +armor_fire_protect (Enable fire protection) bool false + +# Enable punch damage effects. +armor_punch_damage (Enable damage effects) bool true + +# Enable migration of old armor inventories. +armor_migrate_old_inventory (Migrate old armor inventories) bool true + + +[shields] + +shields_disable_sounds (Disable shield sounds) bool false + + +[wieldview] + +# Set number of seconds between visible wielded item updates. +wieldview_update_time (Wieldview refresh rate [seconds]) int 2 + +# Show nodes as tiles, disabled by default. +wieldview_node_tiles (Show nodes as tiles) bool false -- 2.40.1 From 17c7f81c026bc8840fcf4778e5420f2f7c3ad91c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:13:42 -0500 Subject: [PATCH 054/321] Create modpack.txt --- mods/minetest-3d_armor/modpack.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/minetest-3d_armor/modpack.txt diff --git a/mods/minetest-3d_armor/modpack.txt b/mods/minetest-3d_armor/modpack.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/minetest-3d_armor/modpack.txt @@ -0,0 +1 @@ + -- 2.40.1 From d27f0f7a93d0a1b02ffbc92fd642efae8ba53da5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:14:14 -0500 Subject: [PATCH 055/321] Add files via upload --- mods/minetest-3d_armor/api.lua | 525 +++++++++++++++++++++++++++++++++ 1 file changed, 525 insertions(+) create mode 100644 mods/minetest-3d_armor/api.lua diff --git a/mods/minetest-3d_armor/api.lua b/mods/minetest-3d_armor/api.lua new file mode 100644 index 00000000..e460a248 --- /dev/null +++ b/mods/minetest-3d_armor/api.lua @@ -0,0 +1,525 @@ +-- support for i18n +local S = armor_i18n.gettext + +local skin_previews = {} +local use_player_monoids = minetest.global_exists("player_monoids") +local use_armor_monoid = minetest.global_exists("armor_monoid") +local use_pova_mod = minetest.get_modpath("pova") +local armor_def = setmetatable({}, { + __index = function() + return setmetatable({ + groups = setmetatable({}, { + __index = function() + return 0 + end}) + }, { + __index = function() + return 0 + end + }) + end, +}) +local armor_textures = setmetatable({}, { + __index = function() + return setmetatable({}, { + __index = function() + return "blank.png" + end + }) + end +}) + +armor = { + timer = 0, + elements = {"head", "torso", "legs", "feet"}, + physics = {"jump", "speed", "gravity"}, + attributes = {"heal", "fire", "water"}, + formspec = "image[2.5,0;2,4;armor_preview]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + default.get_hotbar_bg(0, 4.7).. + "list[current_player;main;0,4.7;8,1;]".. + "list[current_player;main;0,5.85;8,3;8]", + def = armor_def, + textures = armor_textures, + default_skin = "character", + materials = { + wood = "group:wood", + cactus = "default:cactus", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", + mithril = "moreores:mithril_ingot", + crystal = "ethereal:crystal_ingot", + }, + fire_nodes = { + {"default:lava_source", 5, 8}, + {"default:lava_flowing", 5, 8}, + {"fire:basic_flame", 3, 4}, + {"fire:permanent_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"ethereal:fire_flower", 2, 1}, + {"default:torch", 1, 1}, + {"default:torch_ceiling", 1, 1}, + {"default:torch_wall", 1, 1}, + }, + registered_groups = {["fleshy"]=100}, + registered_callbacks = { + on_update = {}, + on_equip = {}, + on_unequip = {}, + on_damage = {}, + on_destroy = {}, + }, + migrate_old_inventory = true, + version = "0.4.13", +} + +armor.config = { + init_delay = 2, + init_times = 10, + bones_delay = 1, + update_time = 1, + drop = minetest.get_modpath("bones") ~= nil, + destroy = false, + level_multiplier = 1, + heal_multiplier = 1, + material_wood = true, + material_cactus = true, + material_steel = true, + material_bronze = true, + material_diamond = true, + material_gold = true, + material_mithril = true, + material_crystal = true, + water_protect = true, + fire_protect = minetest.get_modpath("ethereal") ~= nil, + punch_damage = true, +} + +-- Armor Registration + +armor.register_armor = function(self, name, def) + minetest.register_tool(name, def) +end + +armor.register_armor_group = function(self, group, base) + base = base or 100 + self.registered_groups[group] = base + if use_armor_monoid then + armor_monoid.register_armor_group(group, base) + end +end + +-- Armor callbacks + +armor.register_on_update = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_update, func) + end +end + +armor.register_on_equip = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_equip, func) + end +end + +armor.register_on_unequip = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_unequip, func) + end +end + +armor.register_on_damage = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_damage, func) + end +end + +armor.register_on_destroy = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_destroy, func) + end +end + +armor.run_callbacks = function(self, callback, player, index, stack) + if stack then + local def = stack:get_definition() or {} + if type(def[callback]) == "function" then + def[callback](player, index, stack) + end + end + local callbacks = self.registered_callbacks[callback] + if callbacks then + for _, func in pairs(callbacks) do + func(player, index, stack) + end + end +end + +armor.update_player_visuals = function(self, player) + if not player then + return + end + local name = player:get_player_name() + if self.textures[name] then + default.player_set_textures(player, { + self.textures[name].skin, + self.textures[name].armor, + self.textures[name].wielditem, + }) + end + self:run_callbacks("on_update", player) +end + +armor.set_player_armor = function(self, player) + local name, armor_inv = self:get_valid_player(player, "[set_player_armor]") + if not name then + return + end + local state = 0 + local count = 0 + local material = {count=1} + local preview = armor:get_preview(name) + local texture = "3d_armor_trans.png" + local textures = {} + local physics = {} + local attributes = {} + local levels = {} + local groups = {} + local change = {} + for _, phys in pairs(self.physics) do + physics[phys] = 1 + end + for _, attr in pairs(self.attributes) do + attributes[attr] = 0 + end + for group, _ in pairs(self.registered_groups) do + change[group] = 1 + levels[group] = 0 + end + local list = armor_inv:get_list("armor") + if type(list) ~= "table" then + return + end + for i, stack in pairs(list) do + if stack:get_count() == 1 then + local def = stack:get_definition() + for _, element in pairs(self.elements) do + if def.groups["armor_"..element] then + if def.armor_groups then + for group, level in pairs(def.armor_groups) do + if levels[group] then + levels[group] = levels[group] + level + end + end + else + local level = def.groups["armor_"..element] + levels["fleshy"] = levels["fleshy"] + level + end + break + end + -- DEPRECATED, use armor_groups instead + if def.groups["armor_radiation"] and levels["radiation"] then + levels["radiation"] = def.groups["armor_radiation"] + end + end + local item = stack:get_name() + local tex = def.texture or item:gsub("%:", "_") + tex = tex:gsub(".png$", "") + local prev = def.preview or tex.."_preview" + prev = prev:gsub(".png$", "") + texture = texture.."^"..tex..".png" + preview = preview.."^"..prev..".png" + state = state + stack:get_wear() + count = count + 1 + for _, phys in pairs(self.physics) do + local value = def.groups["physics_"..phys] or 0 + physics[phys] = physics[phys] + value + end + for _, attr in pairs(self.attributes) do + local value = def.groups["armor_"..attr] or 0 + attributes[attr] = attributes[attr] + value + end + local mat = string.match(item, "%:.+_(.+)$") + if material.name then + if material.name == mat then + material.count = material.count + 1 + end + else + material.name = mat + end + end + end + for group, level in pairs(levels) do + if level > 0 then + level = level * armor.config.level_multiplier + if material.name and material.count == #self.elements then + level = level * 1.1 + end + end + local base = self.registered_groups[group] + self.def[name].groups[group] = level + if level > base then + level = base + end + groups[group] = base - level + change[group] = groups[group] / base + end + for _, attr in pairs(self.attributes) do + local mult = attr == "heal" and self.config.heal_multiplier or 1 + self.def[name][attr] = attributes[attr] * mult + end + for _, phys in pairs(self.physics) do + self.def[name][phys] = physics[phys] + end + if use_armor_monoid then + armor_monoid.monoid:add_change(player, change, "3d_armor:armor") + else + player:set_armor_groups(groups) + end + if use_player_monoids then + player_monoids.speed:add_change(player, physics.speed, + "3d_armor:physics") + player_monoids.jump:add_change(player, physics.jump, + "3d_armor:physics") + player_monoids.gravity:add_change(player, physics.gravity, + "3d_armor:physics") + elseif use_pova_mod then + -- only add the changes, not the default 1.0 for each physics setting + pova.add_override(name, "3d_armor", { + speed = physics.speed - 1, + jump = physics.jump - 1, + gravity = physics.gravity - 1, + }) + pova.do_override(player) + else + player:set_physics_override(physics) + end + self.textures[name].armor = texture + self.textures[name].preview = preview + self.def[name].level = self.def[name].groups.fleshy or 0 + self.def[name].state = state + self.def[name].count = count + self:update_player_visuals(player) +end + +armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabilities) + local name, armor_inv = self:get_valid_player(player, "[punch]") + if not name then + return + end + local state = 0 + local count = 0 + local recip = true + local default_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1} + local list = armor_inv:get_list("armor") + for i, stack in pairs(list) do + if stack:get_count() == 1 then + local name = stack:get_name() + local use = minetest.get_item_group(name, "armor_use") or 0 + local damage = use > 0 + local def = stack:get_definition() or {} + if type(def.on_punched) == "function" then + damage = def.on_punched(player, hitter, time_from_last_punch, + tool_capabilities) ~= false and damage == true + end + if damage == true and tool_capabilities then + local damage_groups = def.damage_groups or default_groups + local level = damage_groups.level or 0 + local groupcaps = tool_capabilities.groupcaps or {} + local uses = 0 + damage = false + for group, caps in pairs(groupcaps) do + local maxlevel = caps.maxlevel or 0 + local diff = maxlevel - level + if diff == 0 then + diff = 1 + end + if diff > 0 and caps.times then + local group_level = damage_groups[group] + if group_level then + local time = caps.times[group_level] + if time then + local dt = time_from_last_punch or 0 + if dt > time / diff then + if caps.uses then + uses = caps.uses * math.pow(3, diff) + end + damage = true + break + end + end + end + end + end + if damage == true and recip == true and hitter and + def.reciprocate_damage == true and uses > 0 then + local item = hitter:get_wielded_item() + if item and item:get_name() ~= "" then + item:add_wear(65535 / uses) + hitter:set_wielded_item(item) + end + -- reciprocate tool damage only once + recip = false + end + end + if damage == true and hitter == "fire" then + damage = minetest.get_item_group(name, "flammable") > 0 + end + if damage == true then + self:damage(player, i, stack, use) + end + state = state + stack:get_wear() + count = count + 1 + end + end + self.def[name].state = state + self.def[name].count = count +end + +armor.damage = function(self, player, index, stack, use) + local old_stack = ItemStack(stack) + stack:add_wear(use) + self:run_callbacks("on_damage", player, index, stack) + self:set_inventory_stack(player, index, stack) + if stack:get_count() == 0 then + self:run_callbacks("on_unequip", player, index, old_stack) + self:run_callbacks("on_destroy", player, index, old_stack) + self:set_player_armor(player) + end +end + +armor.get_player_skin = function(self, name) + if (self.skin_mod == "skins" or self.skin_mod == "simple_skins") and skins.skins[name] then + return skins.skins[name]..".png" + elseif self.skin_mod == "u_skins" and u_skins.u_skins[name] then + return u_skins.u_skins[name]..".png" + elseif self.skin_mod == "wardrobe" and wardrobe.playerSkins and wardrobe.playerSkins[name] then + return wardrobe.playerSkins[name] + end + return armor.default_skin..".png" +end + +armor.add_preview = function(self, preview) + skin_previews[preview] = true +end + +armor.get_preview = function(self, name) + local preview = string.gsub(armor:get_player_skin(name), ".png", "_preview.png") + if skin_previews[preview] then + return preview + end + return "character_preview.png" +end + +armor.get_armor_formspec = function(self, name, listring) + if armor.def[name].init_time == 0 then + return "label[0,0;Armor not initialized!]" + end + local formspec = armor.formspec.. + "list[detached:"..name.."_armor;armor;0,0.5;2,3;]" + if listring == true then + formspec = formspec.."listring[current_player;main]".. + "listring[detached:"..name.."_armor;armor]" + end + formspec = formspec:gsub("armor_preview", armor.textures[name].preview) + formspec = formspec:gsub("armor_level", armor.def[name].level) + for _, attr in pairs(self.attributes) do + formspec = formspec:gsub("armor_attr_"..attr, armor.def[name][attr]) + end + for group, _ in pairs(self.registered_groups) do + formspec = formspec:gsub("armor_group_"..group, + armor.def[name].groups[group]) + end + return formspec +end + +armor.get_element = function(self, item_name) + for _, element in pairs(armor.elements) do + if minetest.get_item_group(item_name, "armor_"..element) > 0 then + return element + end + end +end + +armor.serialize_inventory_list = function(self, list) + local list_table = {} + for _, stack in ipairs(list) do + table.insert(list_table, stack:to_string()) + end + return minetest.serialize(list_table) +end + +armor.deserialize_inventory_list = function(self, list_string) + local list_table = minetest.deserialize(list_string) + local list = {} + for _, stack in ipairs(list_table or {}) do + table.insert(list, ItemStack(stack)) + end + return list +end + +armor.load_armor_inventory = function(self, player) + local _, inv = self:get_valid_player(player, "[load_armor_inventory]") + if inv then + local armor_list_string = player:get_attribute("3d_armor_inventory") + if armor_list_string then + inv:set_list("armor", + self:deserialize_inventory_list(armor_list_string)) + return true + end + end +end + +armor.save_armor_inventory = function(self, player) + local _, inv = self:get_valid_player(player, "[save_armor_inventory]") + if inv then + player:set_attribute("3d_armor_inventory", + self:serialize_inventory_list(inv:get_list("armor"))) + end +end + +armor.update_inventory = function(self, player) + -- DEPRECATED: Legacy inventory support +end + +armor.set_inventory_stack = function(self, player, i, stack) + local _, inv = self:get_valid_player(player, "[set_inventory_stack]") + if inv then + inv:set_stack("armor", i, stack) + self:save_armor_inventory(player) + end +end + +armor.get_valid_player = function(self, player, msg) + msg = msg or "" + if not player then + minetest.log("warning", S("3d_armor: Player reference is nil @1", msg)) + return + end + local name = player:get_player_name() + if not name then + minetest.log("warning", S("3d_armor: Player name is nil @1", msg)) + return + end + local inv = minetest.get_inventory({type="detached", name=name.."_armor"}) + if not inv then + minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg)) + return + end + return name, inv +end + +armor.drop_armor = function(pos, stack) + local node = minetest.get_node_or_nil(pos) + if node then + local obj = minetest.add_item(pos, stack) + if obj then + obj:setvelocity({x=math.random(-1, 1), y=5, z=math.random(-1, 1)}) + end + end +end -- 2.40.1 From c527966e74c9f35e68c29d725a531312cc1a7986 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:14:43 -0500 Subject: [PATCH 056/321] Rename mods/minetest-3d_armor/api.lua to mods/minetest-3d_armor/3d_armor/api.lua --- mods/minetest-3d_armor/{ => 3d_armor}/api.lua | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => 3d_armor}/api.lua (100%) diff --git a/mods/minetest-3d_armor/api.lua b/mods/minetest-3d_armor/3d_armor/api.lua similarity index 100% rename from mods/minetest-3d_armor/api.lua rename to mods/minetest-3d_armor/3d_armor/api.lua -- 2.40.1 From 86ac03ef28d2dc0465d08795a04423b9bb492b87 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:15:12 -0500 Subject: [PATCH 057/321] Add files via upload --- mods/minetest-3d_armor/3d_armor/LICENSE.txt | 26 + mods/minetest-3d_armor/3d_armor/README.txt | 191 +++++++ .../3d_armor/armor.conf.example | 65 +++ mods/minetest-3d_armor/3d_armor/armor.lua | 346 +++++++++++++ .../3d_armor/crafting_guide.txt | 79 +++ mods/minetest-3d_armor/3d_armor/depends.txt | 8 + .../3d_armor/description.txt | 1 + mods/minetest-3d_armor/3d_armor/init.lua | 469 ++++++++++++++++++ mods/minetest-3d_armor/3d_armor/intllib.lua | 45 ++ 9 files changed, 1230 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor/LICENSE.txt create mode 100644 mods/minetest-3d_armor/3d_armor/README.txt create mode 100644 mods/minetest-3d_armor/3d_armor/armor.conf.example create mode 100644 mods/minetest-3d_armor/3d_armor/armor.lua create mode 100644 mods/minetest-3d_armor/3d_armor/crafting_guide.txt create mode 100644 mods/minetest-3d_armor/3d_armor/depends.txt create mode 100644 mods/minetest-3d_armor/3d_armor/description.txt create mode 100644 mods/minetest-3d_armor/3d_armor/init.lua create mode 100644 mods/minetest-3d_armor/3d_armor/intllib.lua diff --git a/mods/minetest-3d_armor/3d_armor/LICENSE.txt b/mods/minetest-3d_armor/3d_armor/LICENSE.txt new file mode 100644 index 00000000..f253f299 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/LICENSE.txt @@ -0,0 +1,26 @@ +[mod] 3d Armor [3d_armor] +========================= + +License Source Code +------------------- + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. + +License Textures +---------------- + +Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0 diff --git a/mods/minetest-3d_armor/3d_armor/README.txt b/mods/minetest-3d_armor/3d_armor/README.txt new file mode 100644 index 00000000..7dbe82d0 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/README.txt @@ -0,0 +1,191 @@ +[mod] Visible Player Armor [3d_armor] +===================================== + +Depends: default + +Recommends: sfinv, unified_inventory or smart_inventory (use only one to avoid conflicts) + +Supports: player_monoids and armor_monoid + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to weapons. + +Armor takes damage when a player is hurt but also offers a percentage chance of healing. +Overall level is boosted by 10% when wearing a full matching set. + +Fire protection added by TenPlus1 when using crystal armor if Ethereal mod active, level 1 +protects against torches, level 2 for crystal spike, level 3 for fire, level 5 for lava. + +Armor Configuration +------------------- + +Override the following default settings by adding them to your minetest.conf file. + +-- Set false to disable individual armor materials. +armor_material_wood = true +armor_material_cactus = true +armor_material_steel = true +armor_material_bronze = true +armor_material_diamond = true +armor_material_gold = true +armor_material_mithril = true +armor_material_crystal = true + +-- Increase this if you get initialization glitches when a player first joins. +armor_init_delay = 2 + +-- Number of initialization attempts. +-- Use in conjunction with armor_init_delay if initialization problems persist. +armor_init_times = 10 + +-- Increase this if armor is not getting into bones due to server lag. +armor_bones_delay = 1 + +-- How often player armor items are updated. +armor_update_time = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +armor_drop = true + +-- Pulverise armor when a player dies, overrides armor_drop. +armor_destroy = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: level_multiplier = 0.5 will reduce armor level by half. +armor_level_multiplier = 1 + +-- You can use this to increase or decrease overall armor healing, +-- eg: armor_heal_multiplier = 0 will disable healing altogether. +armor_heal_multiplier = 1 + +-- Enable water protection (periodically restores breath when activated) +armor_water_protect = true + +-- Enable fire protection (defaults true if using ethereal mod) +armor_fire_protect = false + +-- Enable punch damage effects. +armor_punch_damage = true + +-- Enable migration of old armor inventories +armor_migrate_old_inventory = true + +API +--- + +Armor Registration: + +armor:register_armor(name, def) + +Wrapper function for `minetest.register_tool`, while registering armor as +a tool item is still supported, this may be deprecated in future so new code +should use this method. + +Additional fields supported by 3d_armor: + + texture = + preview = + armor_groups = + damage_groups =
+ reciprocate_damage = + on_equip = + on_unequip = + on_destroy = + on_damage = + on_punched = + +armor:register_armor_group(group, base) + +Example: + +armor:register_armor_group("radiation", 100) + +armor:register_armor("mod_name:speed_boots", { + description = "Speed Boots", + inventory_image = "mod_name_speed_boots_inv.png", + texture = "mod_name_speed_boots.png", + preview = "mod_name_speed_boots_preview.png", + groups = {armor_feet=1, armor_use=500, physics_speed=1.2, flammable=1}, + armor_groups = {fleshy=10, radiation=10}, + damage_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1}, + reciprocate_damage = true, + on_destroy = function(player, index, stack) + local pos = player:get_pos() + if pos then + minetest.sound_play({ + name = "mod_name_break_sound", + pos = pos, + gain = 0.5, + }) + end + end, +}) + +See armor.lua, technic_armor and shields mods for more examples. + +Default groups: + +Elements: armor_head, armor_torso, armor_legs, armor_feet +Attributes: armor_heal, armor_fire, armor_water +Physics: physics_jump, physics_speed, physics_gravity +Durability: armor_use, flammable + +Notes: + +Elements may be modified by dependent mods, eg shields adds armor_shield. +Attributes and physics values are 'stackable', durability is determined +by the level of armor_use, total uses == approx (65535/armor_use), non-fleshy +damage groups need to be defined in the tool/weapon used against the player. + +Reciprocal tool damage will be done only by the first armor inventory item + with `reciprocate_damage = true` + +Armor Functions: + +armor:set_player_armor(player) + +Primarily an internal function but can be called externally to apply any +changes that might not otherwise get handled. + +armor:punch(player, hitter, time_from_last_punch, tool_capabilities) + +Used to apply damage to all equipped armor based on the damage groups of +each individual item.`hitter`, `time_from_last_punch` and `tool_capabilities` +are optional but should be valid if included. + +armor:damage(player, index, stack, use) + +Adds wear to a single armor itemstack, triggers `on_damage` callbacks and +updates the necessary inventories. Also handles item destruction callbacks +and so should NOT be called from `on_unequip` to avoid an infinite loop. + +Item Callbacks: + +on_equip = func(player, index, stack) +on_unequip = func(player, index, stack) +on_destroy = func(player, index, stack) +on_damage = func(player, index, stack) +on_punched = func(player, hitter, time_from_last_punch, tool_capabilities) + +Notes: + +`on_punched` is called every time a player is punched or takes damage, `hitter`, +`time_from_last_punch` and `tool_capabilities` can be `nil` and will be in the +case of fall damage, etc. When fire protection is enabled, hitter == "fire" +in the event of fire damage. Return `false` to override armor damage effects. +When armor is destroyed `stack` will contain a copy of the previous stack. + +Global Callbacks: + +armor:register_on_update(func(player)) +armor:register_on_equip(func(player, index, stack)) +armor:register_on_unequip(func(player, index, stack)) +armor:register_on_destroy(func(player, index, stack)) + +Global Callback Example: + +armor:register_on_update(function(player) + print(player:get_player_name().." armor updated!") +end) + diff --git a/mods/minetest-3d_armor/3d_armor/armor.conf.example b/mods/minetest-3d_armor/3d_armor/armor.conf.example new file mode 100644 index 00000000..9ce34b45 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/armor.conf.example @@ -0,0 +1,65 @@ +-- DEPRECATED, will not be supported in future versions + +-- See README.txt for new configuration options. + +-- Armor Configuration (defaults) + +-- You can remove any unwanted armor materials from this table. +-- Note that existing armor that is removed will show up as an unknown item. +ARMOR_MATERIALS = { + wood = "group:wood", + cactus = "default:cactus", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", + mithril = "moreores:mithril_ingot", + crystal = "ethereal:crystal_ingot", +} + +-- Enable fire protection (defaults true if using ethereal mod) +ARMOR_FIRE_PROTECT = false + +-- Fire protection nodes, (name, protection level, damage) +ARMOR_FIRE_NODES = { + {"default:lava_source", 5, 4}, + {"default:lava_flowing", 5, 4}, + {"fire:basic_flame", 3, 4}, + {"fire:permanent_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"ethereal:fire_flower", 2, 1}, + {"default:torch", 1, 1}, +} + +-- Increase this if you get initialization glitches when a player first joins. +ARMOR_INIT_DELAY = 1 + +-- Number of initialization attempts. +-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist. +ARMOR_INIT_TIMES = 1 + +-- Increase this if armor is not getting into bones due to server lag. +ARMOR_BONES_DELAY = 1 + +-- How often player armor/wield items are updated. +ARMOR_UPDATE_TIME = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +ARMOR_DROP = true + +-- Pulverise armor when a player dies, overrides ARMOR_DROP. +ARMOR_DESTROY = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half. +ARMOR_LEVEL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor healing, +-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether. +ARMOR_HEAL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor radiation protection, +-- eg: ARMOR_RADIATION_MULTIPLIER = 0 will completely disable radiation protection. +-- Note: patched technic mod is required +ARMOR_RADIATION_MULTIPLIER = 1 diff --git a/mods/minetest-3d_armor/3d_armor/armor.lua b/mods/minetest-3d_armor/3d_armor/armor.lua new file mode 100644 index 00000000..85d120a1 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/armor.lua @@ -0,0 +1,346 @@ +-- support for i18n +local S = armor_i18n.gettext + +armor:register_armor("3d_armor:helmet_admin", { + description = S("Admin Helmet"), + inventory_image = "3d_armor_inv_helmet_admin.png", + armor_groups = {fleshy=100}, + groups = {armor_head=1, armor_heal=100, armor_use=0, armor_water=1, + not_in_creative_inventory=1}, + on_drop = function(itemstack, dropper, pos) + return + end, +}) + +armor:register_armor("3d_armor:chestplate_admin", { + description = S("Admin Chestplate"), + inventory_image = "3d_armor_inv_chestplate_admin.png", + armor_groups = {fleshy=100}, + groups = {armor_torso=1, armor_heal=100, armor_use=0, + not_in_creative_inventory=1}, + on_drop = function(itemstack, dropper, pos) + return + end, +}) + +armor:register_armor("3d_armor:leggings_admin", { + description = S("Admin Leggings"), + inventory_image = "3d_armor_inv_leggings_admin.png", + armor_groups = {fleshy=100}, + groups = {armor_legs=1, armor_heal=100, armor_use=0, + not_in_creative_inventory=1}, + on_drop = function(itemstack, dropper, pos) + return + end, +}) + +armor:register_armor("3d_armor:boots_admin", { + description = S("Admin Boots"), + inventory_image = "3d_armor_inv_boots_admin.png", + armor_groups = {fleshy=100}, + groups = {armor_feet=1, armor_heal=100, armor_use=0, + not_in_creative_inventory=1}, + on_drop = function(itemstack, dropper, pos) + return + end, +}) + +minetest.register_alias("adminboots", "3d_armor:boots_admin") +minetest.register_alias("adminhelmet", "3d_armor:helmet_admin") +minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin") +minetest.register_alias("adminleggings", "3d_armor:leggings_admin") + +if armor.materials.wood then + armor:register_armor("3d_armor:helmet_wood", { + description = S("Wood Helmet"), + inventory_image = "3d_armor_inv_helmet_wood.png", + groups = {armor_head=1, armor_heal=0, armor_use=2000, flammable=1}, + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, + }) + armor:register_armor("3d_armor:chestplate_wood", { + description = S("Wood Chestplate"), + inventory_image = "3d_armor_inv_chestplate_wood.png", + groups = {armor_torso=1, armor_heal=0, armor_use=2000, flammable=1}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, + }) + armor:register_armor("3d_armor:leggings_wood", { + description = S("Wood Leggings"), + inventory_image = "3d_armor_inv_leggings_wood.png", + groups = {armor_legs=1, armor_heal=0, armor_use=2000, flammable=1}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, + }) + armor:register_armor("3d_armor:boots_wood", { + description = S("Wood Boots"), + inventory_image = "3d_armor_inv_boots_wood.png", + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, + groups = {armor_feet=1, armor_heal=0, armor_use=2000, flammable=1}, + }) +end + +if armor.materials.cactus then + armor:register_armor("3d_armor:helmet_cactus", { + description = S("Cactus Helmet"), + inventory_image = "3d_armor_inv_helmet_cactus.png", + groups = {armor_head=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, + }) + armor:register_armor("3d_armor:chestplate_cactus", { + description = S("Cactus Chestplate"), + inventory_image = "3d_armor_inv_chestplate_cactus.png", + groups = {armor_torso=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, + }) + armor:register_armor("3d_armor:leggings_cactus", { + description = S("Cactus Leggings"), + inventory_image = "3d_armor_inv_leggings_cactus.png", + groups = {armor_legs=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, + }) + armor:register_armor("3d_armor:boots_cactus", { + description = S("Cactus Boots"), + inventory_image = "3d_armor_inv_boots_cactus.png", + groups = {armor_feet=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, + }) +end + +if armor.materials.steel then + armor:register_armor("3d_armor:helmet_steel", { + description = S("Steel Helmet"), + inventory_image = "3d_armor_inv_helmet_steel.png", + groups = {armor_head=1, armor_heal=0, armor_use=800, + physics_speed=-0.01, physics_gravity=0.01}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + }) + armor:register_armor("3d_armor:chestplate_steel", { + description = S("Steel Chestplate"), + inventory_image = "3d_armor_inv_chestplate_steel.png", + groups = {armor_torso=1, armor_heal=0, armor_use=800, + physics_speed=-0.04, physics_gravity=0.04}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + }) + armor:register_armor("3d_armor:leggings_steel", { + description = S("Steel Leggings"), + inventory_image = "3d_armor_inv_leggings_steel.png", + groups = {armor_legs=1, armor_heal=0, armor_use=800, + physics_speed=-0.03, physics_gravity=0.03}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + }) + armor:register_armor("3d_armor:boots_steel", { + description = S("Steel Boots"), + inventory_image = "3d_armor_inv_boots_steel.png", + groups = {armor_feet=1, armor_heal=0, armor_use=800, + physics_speed=-0.01, physics_gravity=0.01}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + }) +end + +if armor.materials.bronze then + armor:register_armor("3d_armor:helmet_bronze", { + description = S("Bronze Helmet"), + inventory_image = "3d_armor_inv_helmet_bronze.png", + groups = {armor_head=1, armor_heal=6, armor_use=400, + physics_speed=-0.01, physics_gravity=0.01}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2}, + }) + armor:register_armor("3d_armor:chestplate_bronze", { + description = S("Bronze Chestplate"), + inventory_image = "3d_armor_inv_chestplate_bronze.png", + groups = {armor_torso=1, armor_heal=6, armor_use=400, + physics_speed=-0.04, physics_gravity=0.04}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2}, + }) + armor:register_armor("3d_armor:leggings_bronze", { + description = S("Bronze Leggings"), + inventory_image = "3d_armor_inv_leggings_bronze.png", + groups = {armor_legs=1, armor_heal=6, armor_use=400, + physics_speed=-0.03, physics_gravity=0.03}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2}, + }) + armor:register_armor("3d_armor:boots_bronze", { + description = S("Bronze Boots"), + inventory_image = "3d_armor_inv_boots_bronze.png", + groups = {armor_feet=1, armor_heal=6, armor_use=400, + physics_speed=-0.01, physics_gravity=0.01}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2}, + }) +end + +if armor.materials.diamond then + armor:register_armor("3d_armor:helmet_diamond", { + description = S("Diamond Helmet"), + inventory_image = "3d_armor_inv_helmet_diamond.png", + groups = {armor_head=1, armor_heal=12, armor_use=200}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, + }) + armor:register_armor("3d_armor:chestplate_diamond", { + description = S("Diamond Chestplate"), + inventory_image = "3d_armor_inv_chestplate_diamond.png", + groups = {armor_torso=1, armor_heal=12, armor_use=200}, + armor_groups = {fleshy=20}, + damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, + }) + armor:register_armor("3d_armor:leggings_diamond", { + description = S("Diamond Leggings"), + inventory_image = "3d_armor_inv_leggings_diamond.png", + groups = {armor_legs=1, armor_heal=12, armor_use=200}, + armor_groups = {fleshy=20}, + damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, + }) + armor:register_armor("3d_armor:boots_diamond", { + description = S("Diamond Boots"), + inventory_image = "3d_armor_inv_boots_diamond.png", + groups = {armor_feet=1, armor_heal=12, armor_use=200}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, + }) +end + +if armor.materials.gold then + armor:register_armor("3d_armor:helmet_gold", { + description = S("Gold Helmet"), + inventory_image = "3d_armor_inv_helmet_gold.png", + groups = {armor_head=1, armor_heal=6, armor_use=300, + physics_speed=-0.02, physics_gravity=0.02}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, + }) + armor:register_armor("3d_armor:chestplate_gold", { + description = S("Gold Chestplate"), + inventory_image = "3d_armor_inv_chestplate_gold.png", + groups = {armor_torso=1, armor_heal=6, armor_use=300, + physics_speed=-0.05, physics_gravity=0.05}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, + }) + armor:register_armor("3d_armor:leggings_gold", { + description = S("Gold Leggings"), + inventory_image = "3d_armor_inv_leggings_gold.png", + groups = {armor_legs=1, armor_heal=6, armor_use=300, + physics_speed=-0.04, physics_gravity=0.04}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, + }) + armor:register_armor("3d_armor:boots_gold", { + description = S("Gold Boots"), + inventory_image = "3d_armor_inv_boots_gold.png", + groups = {armor_feet=1, armor_heal=6, armor_use=300, + physics_speed=-0.02, physics_gravity=0.02}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, + }) +end + +if armor.materials.mithril then + armor:register_armor("3d_armor:helmet_mithril", { + description = S("Mithril Helmet"), + inventory_image = "3d_armor_inv_helmet_mithril.png", + groups = {armor_head=1, armor_heal=12, armor_use=100}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) + armor:register_armor("3d_armor:chestplate_mithril", { + description = S("Mithril Chestplate"), + inventory_image = "3d_armor_inv_chestplate_mithril.png", + groups = {armor_torso=1, armor_heal=12, armor_use=100}, + armor_groups = {fleshy=20}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) + armor:register_armor("3d_armor:leggings_mithril", { + description = S("Mithril Leggings"), + inventory_image = "3d_armor_inv_leggings_mithril.png", + groups = {armor_legs=1, armor_heal=12, armor_use=100}, + armor_groups = {fleshy=20}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) + armor:register_armor("3d_armor:boots_mithril", { + description = S("Mithril Boots"), + inventory_image = "3d_armor_inv_boots_mithril.png", + groups = {armor_feet=1, armor_heal=12, armor_use=100}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) +end + +if armor.materials.crystal then + armor:register_armor("3d_armor:helmet_crystal", { + description = S("Crystal Helmet"), + inventory_image = "3d_armor_inv_helmet_crystal.png", + groups = {armor_head=1, armor_heal=12, armor_use=100, armor_fire=1}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) + armor:register_armor("3d_armor:chestplate_crystal", { + description = S("Crystal Chestplate"), + inventory_image = "3d_armor_inv_chestplate_crystal.png", + groups = {armor_torso=1, armor_heal=12, armor_use=100, armor_fire=1}, + armor_groups = {fleshy=20}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) + armor:register_armor("3d_armor:leggings_crystal", { + description = S("Crystal Leggings"), + inventory_image = "3d_armor_inv_leggings_crystal.png", + groups = {armor_legs=1, armor_heal=12, armor_use=100, armor_fire=1}, + armor_groups = {fleshy=20}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) + armor:register_armor("3d_armor:boots_crystal", { + description = S("Crystal Boots"), + inventory_image = "3d_armor_inv_boots_crystal.png", + groups = {armor_feet=1, armor_heal=12, armor_use=100, physics_speed=1, + physics_jump=0.5, armor_fire=1}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + }) +end + +for k, v in pairs(armor.materials) do + minetest.register_craft({ + output = "3d_armor:helmet_"..k, + recipe = { + {v, v, v}, + {v, "", v}, + {"", "", ""}, + }, + }) + minetest.register_craft({ + output = "3d_armor:chestplate_"..k, + recipe = { + {v, "", v}, + {v, v, v}, + {v, v, v}, + }, + }) + minetest.register_craft({ + output = "3d_armor:leggings_"..k, + recipe = { + {v, v, v}, + {v, "", v}, + {v, "", v}, + }, + }) + minetest.register_craft({ + output = "3d_armor:boots_"..k, + recipe = { + {v, "", v}, + {v, "", v}, + }, + }) +end diff --git a/mods/minetest-3d_armor/3d_armor/crafting_guide.txt b/mods/minetest-3d_armor/3d_armor/crafting_guide.txt new file mode 100644 index 00000000..abd1519b --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/crafting_guide.txt @@ -0,0 +1,79 @@ +3d_armor -- Crafting Guide +-------------------------- + +Helmets: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| | | | ++---+---+---+ + +[3d_armor:helmet_wood] X = [default:wood] +[3d_armor:helmet_cactus] X = [default:cactus] +[3d_armor:helmet_steel] X = [default:steel_ingot] +[3d_armor:helmet_bronze] X = [default:bronze_ingot] +[3d_armor:helmet_diamond] X = [default:diamond] +[3d_armor:helmet_gold] X = [default:gold_ingot] +[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] * +[3d_armor:helmet_crystal] X = [ethereal:crystal_ingot] ** + +Chestplates: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ + +[3d_armor:chestplate_wood] X = [default:wood] +[3d_armor:chestplate_cactus] X = [default:cactus] +[3d_armor:chestplate_steel] X = [default:steel_ingot] +[3d_armor:chestplate_bronze] X = [default:bronze_ingot] +[3d_armor:chestplate_diamond] X = [default:diamond] +[3d_armor:chestplate_gold] X = [default:gold_ingot] +[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] * +[3d_armor:chestplate_crystal] X = [ethereal:crystal_ingot] ** + +Leggings: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:leggings_wood] X = [default:wood] +[3d_armor:leggings_cactus] X = [default:cactus] +[3d_armor:leggings_steel] X = [default:steel_ingot] +[3d_armor:leggings_bronze] X = [default:bronze_ingot] +[3d_armor:leggings_diamond] X = [default:diamond] +[3d_armor:leggings_gold] X = [default:gold_ingot] +[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] * +[3d_armor:leggings_crystal] X = [ethereal:crystal_ingot] ** + +Boots: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:boots_wood] X = [default:wood] +[3d_armor:boots_cactus] X = [default:cactus] +[3d_armor:boots_steel] X = [default:steel_ingot] +[3d_armor:boots_bronze] X = [default:bronze_ingot +[3d_armor:boots_diamond] X = [default:diamond] +[3d_armor:boots_gold] X = [default:gold_ingot] +[3d_armor:boots_mithril] X = [moreores:mithril_ingot] * +[3d_armor:boots_crystal] X = [ethereal:crystal_ingot] ** + + * Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549 +** Requires ethereal mod by Chinchow & TenPlus1 - https://github.com/tenplus1/ethereal diff --git a/mods/minetest-3d_armor/3d_armor/depends.txt b/mods/minetest-3d_armor/3d_armor/depends.txt new file mode 100644 index 00000000..a33755db --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/depends.txt @@ -0,0 +1,8 @@ +default +player_monoids? +armor_monoid? +pova? +fire? +ethereal? +bakedclay? +intllib? diff --git a/mods/minetest-3d_armor/3d_armor/description.txt b/mods/minetest-3d_armor/3d_armor/description.txt new file mode 100644 index 00000000..b0a9b0a5 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/description.txt @@ -0,0 +1 @@ +Adds craftable armor that is visible to other players. diff --git a/mods/minetest-3d_armor/3d_armor/init.lua b/mods/minetest-3d_armor/3d_armor/init.lua new file mode 100644 index 00000000..646a2865 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/init.lua @@ -0,0 +1,469 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +local worldpath = minetest.get_worldpath() +local last_punch_time = {} +local pending_players = {} +local timer = 0 + +-- support for i18n +armor_i18n = { } +armor_i18n.gettext, armor_i18n.ngettext = dofile(modpath.."/intllib.lua") + +-- local functions +local S = armor_i18n.gettext +local F = minetest.formspec_escape + +dofile(modpath.."/api.lua") + +-- Legacy Config Support + +local input = io.open(modpath.."/armor.conf", "r") +if input then + dofile(modpath.."/armor.conf") + input:close() + input = nil +end +input = io.open(worldpath.."/armor.conf", "r") +if input then + dofile(worldpath.."/armor.conf") + input:close() + input = nil +end +for name, _ in pairs(armor.config) do + local global = "ARMOR_"..name:upper() + if minetest.global_exists(global) then + armor.config[name] = _G[global] + end +end +if minetest.global_exists("ARMOR_MATERIALS") then + armor.materials = table.copy(ARMOR_MATERIALS) +end +if minetest.global_exists("ARMOR_FIRE_NODES") then + armor.fire_nodes = table.copy(ARMOR_FIRE_NODES) +end + +-- Load Configuration + +for name, config in pairs(armor.config) do + local setting = minetest.settings:get("armor_"..name) + if type(config) == "number" then + setting = tonumber(setting) + elseif type(config) == "boolean" then + setting = minetest.settings:get_bool("armor_"..name) + end + if setting ~= nil then + armor.config[name] = setting + end +end +for material, _ in pairs(armor.materials) do + local key = "material_"..material + if armor.config[key] == false then + armor.materials[material] = nil + end +end + +-- Mod Compatibility + +if minetest.get_modpath("technic") then + armor.formspec = armor.formspec.. + "label[5,2.5;"..F(S("Radiation"))..": armor_group_radiation]" + armor:register_armor_group("radiation") +end +local skin_mods = {"skins", "u_skins", "simple_skins", "wardrobe"} +for _, mod in pairs(skin_mods) do + local path = minetest.get_modpath(mod) + if path then + local dir_list = minetest.get_dir_list(path.."/textures") + for _, fn in pairs(dir_list) do + if fn:find("_preview.png$") then + armor:add_preview(fn) + end + end + armor.skin_mod = mod + end +end +if not minetest.get_modpath("moreores") then + armor.materials.mithril = nil +end +if not minetest.get_modpath("ethereal") then + armor.materials.crystal = nil +end + +dofile(modpath.."/armor.lua") + +-- Armor Initialization + +armor.formspec = armor.formspec.. + "label[5,1;"..F(S("Level"))..": armor_level]".. + "label[5,1.5;"..F(S("Heal"))..": armor_attr_heal]" +if armor.config.fire_protect then + armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..": armor_attr_fire]" +end +armor:register_on_destroy(function(player, index, stack) + local name = player:get_player_name() + local def = stack:get_definition() + if name and def and def.description then + minetest.chat_send_player(name, S("Your @1 got destroyed!", def.description)) + end +end) + +local function validate_armor_inventory(player) + -- Workaround for detached inventory swap exploit + local _, inv = armor:get_valid_player(player, "[validate_armor_inventory]") + if not inv then + return + end + local armor_prev = {} + local armor_list_string = player:get_attribute("3d_armor_inventory") + if armor_list_string then + local armor_list = armor:deserialize_inventory_list(armor_list_string) + for i, stack in ipairs(armor_list) do + if stack:get_count() > 0 then + armor_prev[stack:get_name()] = i + end + end + end + local elements = {} + local player_inv = player:get_inventory() + for i = 1, 6 do + local stack = inv:get_stack("armor", i) + if stack:get_count() > 0 then + local item = stack:get_name() + local element = armor:get_element(item) + if element and not elements[element] then + if armor_prev[item] then + armor_prev[item] = nil + else + -- Item was not in previous inventory + armor:run_callbacks("on_equip", player, i, stack) + end + elements[element] = true; + else + inv:remove_item("armor", stack) + -- The following code returns invalid items to the player's main + -- inventory but could open up the possibity for a hacked client + -- to receive items back they never really had. I am not certain + -- so remove the is_singleplayer check at your own risk :] + if minetest.is_singleplayer() and player_inv and + player_inv:room_for_item("main", stack) then + player_inv:add_item("main", stack) + end + end + end + end + for item, i in pairs(armor_prev) do + local stack = ItemStack(item) + -- Previous item is not in current inventory + armor:run_callbacks("on_unequip", player, i, stack) + end +end + +local function init_player_armor(player) + local name = player:get_player_name() + local pos = player:get_pos() + if not name or not pos then + return false + end + local armor_inv = minetest.create_detached_inventory(name.."_armor", { + on_put = function(inv, listname, index, stack, player) + validate_armor_inventory(player) + armor:save_armor_inventory(player) + armor:set_player_armor(player) + end, + on_take = function(inv, listname, index, stack, player) + validate_armor_inventory(player) + armor:save_armor_inventory(player) + armor:set_player_armor(player) + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player) + validate_armor_inventory(player) + armor:save_armor_inventory(player) + armor:set_player_armor(player) + end, + allow_put = function(inv, listname, index, put_stack, player) + local element = armor:get_element(put_stack:get_name()) + if not element then + return 0 + end + for i = 1, 6 do + local stack = inv:get_stack("armor", i) + local def = stack:get_definition() or {} + if def.groups and def.groups["armor_"..element] + and i ~= index then + return 0 + end + end + return 1 + end, + allow_take = function(inv, listname, index, stack, player) + return stack:get_count() + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return count + end, + }, name) + armor_inv:set_size("armor", 6) + if not armor:load_armor_inventory(player) and armor.migrate_old_inventory then + local player_inv = player:get_inventory() + player_inv:set_size("armor", 6) + for i=1, 6 do + local stack = player_inv:get_stack("armor", i) + armor_inv:set_stack("armor", i, stack) + end + armor:save_armor_inventory(player) + player_inv:set_size("armor", 0) + end + for i=1, 6 do + local stack = armor_inv:get_stack("armor", i) + if stack:get_count() > 0 then + armor:run_callbacks("on_equip", player, i, stack) + end + end + armor.def[name] = { + init_time = minetest.get_gametime(), + level = 0, + state = 0, + count = 0, + groups = {}, + } + for _, phys in pairs(armor.physics) do + armor.def[name][phys] = 1 + end + for _, attr in pairs(armor.attributes) do + armor.def[name][attr] = 0 + end + for group, _ in pairs(armor.registered_groups) do + armor.def[name].groups[group] = 0 + end + local skin = armor:get_player_skin(name) + armor.textures[name] = { + skin = skin, + armor = "3d_armor_trans.png", + wielditem = "3d_armor_trans.png", + preview = armor.default_skin.."_preview.png", + } + local texture_path = minetest.get_modpath("player_textures") + if texture_path then + local dir_list = minetest.get_dir_list(texture_path.."/textures") + for _, fn in pairs(dir_list) do + if fn == "player_"..name..".png" then + armor.textures[name].skin = fn + break + end + end + end + armor:set_player_armor(player) + return true +end + +-- Armor Player Model + +default.player_register_model("3d_armor_character.b3d", { + animation_speed = 30, + textures = { + armor.default_skin..".png", + "3d_armor_trans.png", + "3d_armor_trans.png", + }, + animations = { + stand = {x=0, y=79}, + lay = {x=162, y=166}, + walk = {x=168, y=187}, + mine = {x=189, y=198}, + walk_mine = {x=200, y=219}, + sit = {x=81, y=160}, + }, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = armor:get_valid_player(player, "[on_player_receive_fields]") + if not name then + return + end + for field, _ in pairs(fields) do + if string.find(field, "skins_set") then + minetest.after(0, function(player) + local skin = armor:get_player_skin(name) + armor.textures[name].skin = skin + armor:set_player_armor(player) + end, player) + end + end +end) + +minetest.register_on_joinplayer(function(player) + default.player_set_model(player, "3d_armor_character.b3d") + minetest.after(0, function(player) + if init_player_armor(player) == false then + pending_players[player] = 0 + end + end, player) +end) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + if name then + armor.def[name] = nil + armor.textures[name] = nil + end + pending_players[player] = nil +end) + +if armor.config.drop == true or armor.config.destroy == true then + minetest.register_on_dieplayer(function(player) + local name, armor_inv = armor:get_valid_player(player, "[on_dieplayer]") + if not name then + return + end + local drop = {} + for i=1, armor_inv:get_size("armor") do + local stack = armor_inv:get_stack("armor", i) + if stack:get_count() > 0 then + table.insert(drop, stack) + armor:run_callbacks("on_unequip", player, i, stack) + armor_inv:set_stack("armor", i, nil) + end + end + armor:save_armor_inventory(player) + armor:set_player_armor(player) + local pos = player:get_pos() + if pos and armor.config.destroy == false then + minetest.after(armor.config.bones_delay, function() + local meta = nil + local maxp = vector.add(pos, 8) + local minp = vector.subtract(pos, 8) + local bones = minetest.find_nodes_in_area(minp, maxp, {"bones:bones"}) + for _, p in pairs(bones) do + local m = minetest.get_meta(p) + if m:get_string("owner") == name then + meta = m + break + end + end + if meta then + local inv = meta:get_inventory() + for _,stack in ipairs(drop) do + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + armor.drop_armor(pos, stack) + end + end + else + for _,stack in ipairs(drop) do + armor.drop_armor(pos, stack) + end + end + end) + end + end) +end + +if armor.config.punch_damage == true then + minetest.register_on_punchplayer(function(player, hitter, + time_from_last_punch, tool_capabilities) + local name = player:get_player_name() + if name then + armor:punch(player, hitter, time_from_last_punch, tool_capabilities) + last_punch_time[name] = minetest.get_gametime() + end + end) +end + +minetest.register_on_player_hpchange(function(player, hp_change) + if player and hp_change < 0 then + local name = player:get_player_name() + if name then + local heal = armor.def[name].heal + if heal >= math.random(100) then + hp_change = 0 + end + -- check if armor damage was handled by fire or on_punchplayer + local time = last_punch_time[name] or 0 + if time == 0 or time + 1 < minetest.get_gametime() then + armor:punch(player) + end + end + end + return hp_change +end, true) + +minetest.register_globalstep(function(dtime) + timer = timer + dtime + if timer > armor.config.init_delay then + for player, count in pairs(pending_players) do + local remove = init_player_armor(player) == true + pending_players[player] = count + 1 + if remove == false and count > armor.config.init_times then + minetest.log("warning", S("3d_armor: Failed to initialize player")) + remove = true + end + if remove == true then + pending_players[player] = nil + end + end + timer = 0 + end +end) + +-- Fire Protection and water breating, added by TenPlus1 + +if armor.config.fire_protect == true then + -- override hot nodes so they do not hurt player anywhere but mod + for _, row in pairs(armor.fire_nodes) do + if minetest.registered_nodes[row[1]] then + minetest.override_item(row[1], {damage_per_second = 0}) + end + end +else + print (S("[3d_armor] Fire Nodes disabled")) +end + +if armor.config.water_protect == true or armor.config.fire_protect == true then + minetest.register_globalstep(function(dtime) + armor.timer = armor.timer + dtime + if armor.timer < armor.config.update_time then + return + end + for _,player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local pos = player:get_pos() + local hp = player:get_hp() + if not name or not pos or not hp then + return + end + -- water breathing + if armor.config.water_protect == true then + if armor.def[name].water > 0 and + player:get_breath() < 10 then + player:set_breath(10) + end + end + -- fire protection + if armor.config.fire_protect == true then + local fire_damage = true + pos.y = pos.y + 1.4 -- head level + local node_head = minetest.get_node(pos).name + pos.y = pos.y - 1.2 -- feet level + local node_feet = minetest.get_node(pos).name + -- is player inside a hot node? + for _, row in pairs(armor.fire_nodes) do + -- check fire protection, if not enough then get hurt + if row[1] == node_head or row[1] == node_feet then + if fire_damage == true then + armor:punch(player, "fire") + last_punch_time[name] = minetest.get_gametime() + fire_damage = false + end + if hp > 0 and armor.def[name].fire < row[2] then + hp = hp - row[3] * armor.config.update_time + player:set_hp(hp) + break + end + end + end + end + end + armor.timer = 0 + end) +end diff --git a/mods/minetest-3d_armor/3d_armor/intllib.lua b/mods/minetest-3d_armor/3d_armor/intllib.lua new file mode 100644 index 00000000..6669d720 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext -- 2.40.1 From a84c099635d495e8c6c1fbe4140bc588015569d5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:16:18 -0500 Subject: [PATCH 058/321] Create main --- mods/minetest-3d_armor/3d_armor/models/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/minetest-3d_armor/3d_armor/models/main diff --git a/mods/minetest-3d_armor/3d_armor/models/main b/mods/minetest-3d_armor/3d_armor/models/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/models/main @@ -0,0 +1 @@ + -- 2.40.1 From 9d15c40b6284020d7ca30ff98936bc151646c0be Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:17:08 -0500 Subject: [PATCH 059/321] Add files via upload --- .../3d_armor/models/3d_armor_character.b3d | Bin 0 -> 151606 bytes .../3d_armor/models/3d_armor_character.blend | Bin 0 -> 775480 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor/models/3d_armor_character.b3d create mode 100644 mods/minetest-3d_armor/3d_armor/models/3d_armor_character.blend diff --git a/mods/minetest-3d_armor/3d_armor/models/3d_armor_character.b3d b/mods/minetest-3d_armor/3d_armor/models/3d_armor_character.b3d new file mode 100644 index 0000000000000000000000000000000000000000..c4d45b50e371fd8030dec685c001809526ea1b87 GIT binary patch literal 151606 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

gUX+W!Wzx@0XtlH6GQ}=^ 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�Qa&VerrgK5&FAKkT^lpGY72zy~EBcHuX@9|a!z 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�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 B8EOCk literal 0 HcmV?d00001 -- 2.40.1 From 9b3dd900bfc7b1f76c2684afa37d30624379a598 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:17:26 -0500 Subject: [PATCH 060/321] Delete main --- mods/minetest-3d_armor/3d_armor/models/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/models/main diff --git a/mods/minetest-3d_armor/3d_armor/models/main b/mods/minetest-3d_armor/3d_armor/models/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/minetest-3d_armor/3d_armor/models/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 68fc56405deaee41bbce4c727fd23a1ac66441c2 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:18:20 -0500 Subject: [PATCH 061/321] Add files via upload --- .../3d_armor/preview_index.txt | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor/preview_index.txt diff --git a/mods/minetest-3d_armor/3d_armor/preview_index.txt b/mods/minetest-3d_armor/3d_armor/preview_index.txt new file mode 100644 index 00000000..9e2fe9d4 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/preview_index.txt @@ -0,0 +1,44 @@ +3d_armor/textures/3d_armor_helmet_wood.png:head +3d_armor/textures/3d_armor_chestplate_wood.png:torso +3d_armor/textures/3d_armor_leggings_wood.png:legs +3d_armor/textures/3d_armor_boots_wood.png:feet + +3d_armor/textures/3d_armor_helmet_cactus.png:head +3d_armor/textures/3d_armor_chestplate_cactus.png:torso +3d_armor/textures/3d_armor_leggings_cactus.png:legs +3d_armor/textures/3d_armor_boots_cactus.png:feet + +3d_armor/textures/3d_armor_helmet_steel.png:head +3d_armor/textures/3d_armor_chestplate_steel.png:torso +3d_armor/textures/3d_armor_leggings_steel.png:legs +3d_armor/textures/3d_armor_boots_steel.png:feet + +3d_armor/textures/3d_armor_helmet_bronze.png:head +3d_armor/textures/3d_armor_chestplate_bronze.png:torso +3d_armor/textures/3d_armor_leggings_bronze.png:legs +3d_armor/textures/3d_armor_boots_bronze.png:feet + +3d_armor/textures/3d_armor_helmet_gold.png:head +3d_armor/textures/3d_armor_chestplate_gold.png:torso +3d_armor/textures/3d_armor_leggings_gold.png:legs +3d_armor/textures/3d_armor_boots_gold.png:feet + +3d_armor/textures/3d_armor_helmet_diamond.png:head +3d_armor/textures/3d_armor_chestplate_diamond.png:torso +3d_armor/textures/3d_armor_leggings_diamond.png:legs +3d_armor/textures/3d_armor_boots_diamond.png:feet + +3d_armor/textures/3d_armor_helmet_mithril.png:head +3d_armor/textures/3d_armor_chestplate_mithril.png:torso +3d_armor/textures/3d_armor_leggings_mithril.png:legs +3d_armor/textures/3d_armor_boots_mithril.png:feet + +3d_armor/textures/3d_armor_helmet_crystal.png:head +3d_armor/textures/3d_armor_chestplate_crystal.png:torso +3d_armor/textures/3d_armor_leggings_crystal.png:legs +3d_armor/textures/3d_armor_boots_crystal.png:feet + +3d_armor/textures/3d_armor_helmet_admin.png:head +3d_armor/textures/3d_armor_chestplate_admin.png:torso +3d_armor/textures/3d_armor_leggings_admin.png:legs +3d_armor/textures/3d_armor_boots_admin.png:feet -- 2.40.1 From 8470b0db9d161ea48f601cc7d7fe6309cff487d8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:19:34 -0500 Subject: [PATCH 062/321] Rename mods/minetest-3d_armor/3d_armor/preview_index.txt to mods/minetest-3d_armor/3d_armor/textures/preview_index.txt --- mods/minetest-3d_armor/3d_armor/{ => textures}/preview_index.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/3d_armor/{ => textures}/preview_index.txt (100%) diff --git a/mods/minetest-3d_armor/3d_armor/preview_index.txt b/mods/minetest-3d_armor/3d_armor/textures/preview_index.txt similarity index 100% rename from mods/minetest-3d_armor/3d_armor/preview_index.txt rename to mods/minetest-3d_armor/3d_armor/textures/preview_index.txt -- 2.40.1 From 8581b5b568b0eaff76c7ac2a2c7bf666ac01fe3d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:22:03 -0500 Subject: [PATCH 063/321] Add files via upload --- .../3d_armor/textures/3d_armor_boots_admin.png | Bin 0 -> 389 bytes .../textures/3d_armor_boots_admin_preview.png | Bin 0 -> 356 bytes .../3d_armor/textures/3d_armor_boots_bronze.png | Bin 0 -> 368 bytes .../textures/3d_armor_boots_bronze_preview.png | Bin 0 -> 336 bytes .../3d_armor/textures/3d_armor_boots_cactus.png | Bin 0 -> 405 bytes .../textures/3d_armor_boots_cactus_preview.png | Bin 0 -> 355 bytes .../3d_armor/textures/3d_armor_boots_crystal.png | Bin 0 -> 389 bytes .../textures/3d_armor_boots_crystal_preview.png | Bin 0 -> 356 bytes .../3d_armor/textures/3d_armor_boots_diamond.png | Bin 0 -> 389 bytes .../textures/3d_armor_boots_diamond_preview.png | Bin 0 -> 356 bytes .../3d_armor/textures/3d_armor_boots_gold.png | Bin 0 -> 368 bytes .../textures/3d_armor_boots_gold_preview.png | Bin 0 -> 336 bytes .../3d_armor/textures/3d_armor_boots_mithril.png | Bin 0 -> 368 bytes .../textures/3d_armor_boots_mithril_preview.png | Bin 0 -> 336 bytes .../3d_armor/textures/3d_armor_boots_steel.png | Bin 0 -> 391 bytes .../textures/3d_armor_boots_steel_preview.png | Bin 0 -> 347 bytes .../3d_armor/textures/3d_armor_boots_wood.png | Bin 0 -> 389 bytes .../textures/3d_armor_boots_wood_preview.png | Bin 0 -> 361 bytes .../textures/3d_armor_chestplate_admin.png | Bin 0 -> 508 bytes .../3d_armor_chestplate_admin_preview.png | Bin 0 -> 431 bytes .../textures/3d_armor_chestplate_bronze.png | Bin 0 -> 440 bytes .../3d_armor_chestplate_bronze_preview.png | Bin 0 -> 382 bytes .../textures/3d_armor_chestplate_cactus.png | Bin 0 -> 520 bytes .../3d_armor_chestplate_cactus_preview.png | Bin 0 -> 414 bytes .../textures/3d_armor_chestplate_crystal.png | Bin 0 -> 508 bytes .../3d_armor_chestplate_crystal_preview.png | Bin 0 -> 431 bytes .../textures/3d_armor_chestplate_diamond.png | Bin 0 -> 508 bytes .../3d_armor_chestplate_diamond_preview.png | Bin 0 -> 431 bytes .../textures/3d_armor_chestplate_gold.png | Bin 0 -> 440 bytes .../textures/3d_armor_chestplate_gold_preview.png | Bin 0 -> 382 bytes .../textures/3d_armor_chestplate_mithril.png | Bin 0 -> 440 bytes .../3d_armor_chestplate_mithril_preview.png | Bin 0 -> 382 bytes .../textures/3d_armor_chestplate_steel.png | Bin 0 -> 493 bytes .../3d_armor_chestplate_steel_preview.png | Bin 0 -> 399 bytes .../textures/3d_armor_chestplate_wood.png | Bin 0 -> 474 bytes .../textures/3d_armor_chestplate_wood_preview.png | Bin 0 -> 407 bytes 36 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..23be004ff3592066a5a7657012b8d893ee6525a9 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NoT?Wh)sL z{ZD$gfMND^hLgt__HJfa4HRGU`I0738DmM1UoeBivm0q3PLj8~3quF1tOt<8S>O>_ z%)r2R1cVugnPbVsSb-p@G>^A>jaf3r{Q0 zM=gOuk-{UZ8yZBL0vduFS17VP3QU;| zj5%woHs^vouUg_7QIe8al4_M)lnSI6j0_CTbqx)44UIz#Ev!t;t&GjJ4GgUe3^ti4 fPC(I+o1c=IR*74~;mnyjKn)C@u6{1-oD!MtPq28LD!2AfP2C!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|Nnb^rH^Nt zoG!9GlAr_RnjR3j2b5(j3GxeOaCmkj4a7O=u<5X=v zX`mo`iKnkC`$H~XA$`^NYb?(Lg)BW?978NlCnq#8J1Qg`U~l1R<@u;35GWFOWOYM> zXj4GLb*4SjIwYJFSh+Z&9&$83`JE)v)3lI@A+V5rZDhy!Pe4OdOI#yLQW8s2t&)pU zffR$0fuXssp@FWUafqRXm5I5PvAMQ^p_PHbCKJU8C>nC}Q!>*kacel7Ia3Fyfx*+& K&t;ucLK6TNB51Mz literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1f83af3471b54c35e01911efb174314a14df40c0 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI21sKjh*S(pP=I z#_~K+NYB&7F~s6@a)Jcw;slWZNe(AQIY!lFN5^E?)FK#IZ0z|dUR&_LJFIKHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$5q%Lypr`fhU>Pyu5}kY6x^!?PP{AWo9Ey9+}HtE>l*!&%@FSu>8rk9V|gAZ6z%Ea7-Dhy?SzAZ42~=;M>nW4IQ@%Hb-^HBT*u@ZYex>(K}Llcta;~-eio0J78O?9Cb#_AnibP@ z#Lt*kWG||&X+Ec^H+}yH27^eR>=zqe#saNTEpd$~Nl7e8wMs5Z1yT$~28QOkh6cKZ y#vz6lRwm|F#^%}vhE@g!n@kiZplHa=PsvQH#I50Q=1d)+1_n=8KbLh*2~7YITYZ}V literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cbf137e33991d6c4d28a6eaacdf61c7cabc8c1 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIRq% zVn1*SY-2sa$oWW+!Akl`%^D_#6Muy6PU6zm0Xkxq!^4049#^7 z4Rj5SLkumfOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZnL0oX44$rjF6*2UngB@L BVVD2_ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca8899d9d9d3e92037a6dd8ae804d7b8ffaba3e GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjixZ45n! z^G^I{=-9!q@HNBidkmA$0>zaBrzZiGF_r}R1v5B2yO9RsBze2LFm$lWdH^|`1s;*b z3=DinK$vl=HlH+5kiEpy*OmPt7q5`M>iad8=Yc}5o-U3d7N?UF8kijw5)QDp@U-%L z)DkEZDLk^ep+U4Mpdq+%g(AzN5QQ|3MhnpnaVLd1|3_anPE4+_^|~OwI6;I*l!3v` zn6tKOb1um9swJ)wB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4fI^u65 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6b3e46f1b72fbac8f486e14a42d643307733a7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI%a+_7YED zSN4Zoyh8e_@7GwK2MSqwx;TbdoK8-VU|pOb5+KRp#3;w8n(XM9tXjjQr@$y)!?bW= zlR}TX0`C%4-uVudI~6z{3m$kb&LEyEu-AC!CIO%!swJ)wB`Jv|saDBFsX&Us$iUEC z*U&)M&^W}gTe~DWM4f D6gFY0 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..ef4020632e8548326177765e481348e15c5e0ef8 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjhKEez+5 zr2YTSaAYULhsO-hZZcdy4HP#qIadr+##j>M7tG-B>_!@hljQC0!qCAg>jC6&7I;Jg zRq!1FVaBQ2e9}Nc_7YEDSN4Zoyh8e_@7GwK2MW1*x;TbdoK8+?V0KhUIKbY*)5`Nv zOQ2As@W|?h2GOQ~hTz5(iY$*p6w){vEkrxSofP8yAAQw0F}cFl>w@^=1Q8xl1_n1{ z&f2QYxggK0mbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#H eP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCwc;c)T* literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..7575fbd78fc7e67824a96f59f71373637cc1a1b9 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI%a+_7YED zSN4Zoyh8e_@7GwK2MSqwx;TbdoK8-VU|pOb5+KRp#3;w8n(XM9tXjjQr@$y)!?bW= zlR}TX0`C%4-uVudI~6z{3m$kb&LEyEu-AC!CIO%!swJ)wB`Jv|saDBFsX&Us$iUEC z*U&)M&^W}gTe~DWM4f D#baVw literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..f431d9b47618f6614c37808ad652fc643e40f357 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|NoCqu)e%0 z`1+ps^DDeSZo%m)4WKMzNswPKgTu2MX&_FLx4R2N2dk_Hki%Kv5n0T@z;^_M8K-LV zNdpDhOFVsD*&lN83hAr9Ut@V5C}ipB;uvCaIys?%*-;_k0DB8hE6+zQfk2VKBdZ%4 zM4JK{t~2eK)*<1fz{HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|NnN%8)F=H zr+DrUHs1l{ZhxY@7%0nF666=m;PC858ivL>4nJ@ErkR#;MwT z(m+A>5>H=O_J>@&Li(!j*I1qh3R!x(IEGl9PEKfGc2r0>z}~{s%JWf6AW$Um$m)g$ z(WZcg>r8v5bx1fVuyS!kJ>+P7@;gbSr)eP*Ltr8M+Q^RcpMZv_mbgZgq$HN4S|t~y z0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0il KpUXO@geCw@qiFB| literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..21de8c10fa81b29e277202b15b589d02b38b2379 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI21sKjh*S(pP=I z#_~K+NYB&7F~s6@a)Jcw;slWZNe(AQIY!lFN5^E?)FK#IZ0z|dUR&_LJFIKXrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x00r;B4q#NoG-4Y?W&1X$j? zY}nxWT)sA-ZkAI}#$1tiPDM={F8ge5)YPk!c7NBld@?^Hx4mzf$-Kj-{Ij2*XZCt- zX|b!3hi&n8hdT%IUS563m?m9N;h++7fK^5=pwV4nUm~L%bKT*Le}yev0S!zd3m8~6 z92mJeo-o?Y6ra7-B{2->3e^(Vh?11Vl2ohYqEsNoU}Ruuu4`zZYiJx|XkleyZe?t) oZD43+V6e$VaRQ2l-29Zxv`X9>4rk8P0cv3IboFyt=akR{0O6%`^Z)<= literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..170d094c335aea31c73286c96a1f9970c1dc240e GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%r1i7sn8fo=I&29nO2Eg!{N-CIzSB!p00i_>zopr0CGTKo&W#< literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_wood.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..411ce9c67fb123b45c0b98b30ed5ef03c51cb500 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|NqIswsHQJ zRjJ;&(ayyQZgrV{KtbP}`7eNK7)yfuf*Bm1-ADs*lDyqr7&=&GJ%Aj}0*}aI1_r(( zAj~*bn@<`j$X?><>&pI+i&scr_5B*l^FSdFPZ!4!i_^&o4a|zJimq%m4mSdC2(D+E zsxVby57!iysVpBonqwNSi)J+nbVNG}uuRHlJu$h$mg|#BTz`{|=YhqG6GV7;85j;$ zaj)EVQ(6;frfP|6L`h0wNvc(HQ7VvPFfuSS*EKZIH8c(}w6HQUw=y=@HZZg@FxX_G gH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e0I-8@ivR!s literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f192c01c65022c5b81556c927709c37d2d3650 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI_!@hljQC0!Y-EB@fyfsFY)wsWq-)U zE2OXbevRdMppc`di(`nz>Er|n*2M`T0g@bAnw(7rd5o&b;*O5u$*Oypyu2z{Ic_US z%u>^sA=c&Ypvjw(F-u5}aluT5;Eh0!UYID@xud)95zsKz64!{5l*E!$tK_0oAjM#0 zU}&yuXrOCo9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB+!_vN&eQ>FVDNPHb6Mw< G&;$UxD__b0 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..a17d0a480d4f75aba94a4b666ac4e31cba8ab710 GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SGLhuQQzdpYi&?_p|?%?>;izZDgnesyt9X^(#;#V@Z%-FoVOh z8)+a;lDE4HLkFv@2av;A;1OBOz`%C|gc+x5^GO2**-JcqUD+RU@e1jyzF%W`9w@ZR z)5S5w;&gI?1nXi3Z2=Z07U^y##mO6-B%&7y&Sqj`+rhNaB`2&w&`^kfI74U%tVaL%33B^JPHc) zJSpI0l)&E8)Wl>U#K@rVMsK|<4=W?k)v6_~5hW>!C8<`)MX5lF!N|bST-VS**U&h` w(89{Z+{)No+rZGuz+jV!;sg{8x%nxXX_dG&9L}7n1JuCa>FVdQ&MBb@01QKyZ2$lO literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..5395810a54cd4b4a571bcf551804395a2d2fb682 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIp%$~r|)4|Zz$WZtH|9|h>CUbxq7)yfuf*Bm1 z-ADs*lDyqr`11D}_yalYC7!;n><_tkh4fY5udzH26e{v`aSX9I{q};P-~j~zmq490 zt(zNKBP_ThI#_iQ7`Y=3IPFPU$SHZ^s^*WY=d$|_?!2r0rOmXNOtDjSo82 zZ^b!yGkrchRq)qA4V?#-cUYumMogIE%3YL{<#gTe~DWM4fb?J>x literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..ac43ddb2e4084b35f45bb2c60de745f68a73b6b4 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$@& zoG!9Go@sKS-U}$w>=*Y7sDQB~$S;_|;n|He5GTpo-G!lpRn`N@;VkfoEM{QfI|9Ot zQ?>b|fr9KMp1!W^54m`S^i|)lu{;kHs`GSl46!)}V{mp}wr9mPwg%0k%hk9URxm`1JuTHe#k4Op`+$YzEakkJ zAG*X8o;Wx*glhHbE9kQ3bc-j{P41a8?cD{|PxTGl2h0QtZ!UgzPWOCrCR_Bm-!IRF zvP++mD0W?*vbP0l+XkKN;r+d literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..ab1d1ce63ecef65e0cf700048642c1ee3ec41b52 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI50qdm3GxeOaCmkj4a7vf&{CEg8?$C{eF90VN|a@Vwk9&i=t>1|}vi(qwd zIC=Dj#TAK@VkwLpS_2qc9-j~~Sk~6S9ml9DEFVDNPHb6Mw<&;$ShVQszu literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd7eb0572739848c75b706a39ff0f0dff43357a GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|Np0U);biJ z-MzFXsNXfP&&9jh-oMKUD85!M><3U8V@Z%-FoVOh8)+a;lDE4HLkFv@2av;A;1OBO zz`%C|gc+x5^GO2**-JcqUD+RU@e1jyzF%W`9w>Ce)5S5w;`G}Ij$DTo1YA|sIh+gb z2F_&WxwOvsBhy*lB*nYSoz}%~&bT$@CGRg*$*;ZtR~y#?&h-A?BA7k2~~&Aa8ct20T+KJRc`Kf`a;FO4f*)Rt{r*YD_= z<0G?4f93JBocndw{17_oA9AnX_Fq%LTi%&+p6ppCCaI)E8;Wl5DV)%k&Gs)buzGrc z@e$YUCraXPrdLO*i#mMyY{`77=CoTlbH%N+>viw!7`?8lT{AqLUIz4&YKdz^NlIc# zs#S7PDv)9@GB7mPH8jvQG!8Meure{XGB(#XFtjo-*kqzO0YyV@eoAIqC2kFeGiT}m PH86O(`njxgN@xNA5ZJUY literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..9523ef787c986c8464b5df4903ccae2ea68432f1 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%&kNMZSQ6wH%;50s zMjD8dpbjkoGZ7=RvX%)JkAlKH zPYO60C9wB2H8B|oF)}E;(Od7z!^#MBwQ7lLL`h0wNvc(HQ7VvPFfuSS*EKZIH8c(} ww6HQUw=y=@HZZg@FxX_GH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e06w>tE&u=k literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..801dc2ae4a588fc45355db75f27f23cb8c07db16 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI<_tkh4fY5udzH26e{v`aSX9I{q};P-~j~zmq490 zt(zNKBP_ThI#_iQ7`Y=3IPFPU$SHZ^s^*WY=d$|_?!2r0rOmXNOtDjSo82 zZ^b!yGkrchRq)qA4V?#-cUYumMogIE%3YL{<#gTe~DWM4f+!&16 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..35384960fe5955fed1886757ab020a298b0a60e3 GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%F}QaAYULxg!kMPcuBb$?)NE{{J6d|G#(r|Hbh8EyMIapvu~s>>EIhj3q&S!3+-1 zZlr-YN#5=*3>~bp9zYIffk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#iL zPZ!4!i_^&o60D0Ev;|n0Sfsm|6en+Rl89a;IGc%$Z3ojvmz=N$K|k#Sd;%`48eA&s zUYrJbER&4W^QL69IEb(Yai@xT`Law}9p)?I4H7V7S3Nf;l0$K0l;TB=dlw4@oRWCe zK00mu^vR8*Gqf>cQASjhV#|?L4kiIACMJSTNudglG~PTC0_xBbFcUE{D{Glx@hB+F z^Q3^2Q388UQxlVc5F>-a8@=_eJgkgBSF4t|MwFx^mZVxG7o`Fz1|tJQb6rCNT|?s# wLklYtb1P$WZ39Cq1A|Q_iW5*YmdKI;Vst0Ipn_CjbBd literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..92909b3dc4fc2cd9969142b5d160571029db8f42 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI}1%moMFi_!@hljQC0!k53-z#qtAFY)wsWq-)UE2OXbevRdMpiq&gi(`nz>9-dQ1rI0)xCH8~ zY2Dn=8ezd5(ZQ;dz{nkOz-dp)LQcsOS2cfJJ(t~gaOYj^FKwpH91k=tE_`DOX?)PB zek;zwo9Xl6se-=_YUn(uyu%_jGh)INSMH*uEXR{NkpbMN#bTz4GPlkD*L3&(F2))z zhl^HAS*`(XS1oakC`m~yNwrEYN(E93Mh1rFx`qb2hQ=X=7FH(aR>tPq28LD!2AfP2 fC!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$Ih+L^k;M!Qd`Cc- zajG_-G*FPe#M9T6{UH~xkiP2sHJ0arLUo=ljv*GO-%bqVYf#{5`^eTA>u{ZQ#%qQ( z@9LL%Xl;HNy#AlXv18_SY7EZK%l53e#@3*Dbh#Qg!wQCIv8ScFr|1^eIy+8@Zk|4ie28U-i(m`sfLoQw+ zebx7CEYAalB0XIkLo7}wCrGerI0*1eh?v3Tb*!n$%R$glA$Ltn=mA%Op58_#y$DtZ zhm%KdSX_}fDVD;xp*4W9HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$l*!&%@FSu>8rk9V|gAZROjj97-Dhy?ZiO71_h3`k8GW>4%b;{yk=PQ zu6~(^*5-%7>;G9CJ7!*|#^CI{Y|n~oYz>-6m#c9ztYC;1ds?b{ifLbH_5lmaS;~1c zKXi#HJaKSr2-WJgTe~DWM4f@1l)= literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4859295543228417a3c23d94f138ae360209b564 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIPx!4PQ&910@(sg8YIR9G=}s196hP-Cfuc({|JXIqW5#zOL*Kxp;;2 zRo}0%JP#C#^mK6yu{fQaAi=8PAiy&rVg{4fv8E<32SG=L+%+ws2V4budK;PaB3K<9 zP9D8saYf>!SPJ8Y)&Rzq$0tM#mbEo-$1$pki%&TIfwO@@j&aF^W2y#RY|;!2F+UYl zPe(ks541$J#5JNMC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{wS{WE@GEtm> eq9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywqdglxJ1 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..bccb99d1282d420a9dd304b9e3d7c37fdab138f4 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#h(PZ!6Kh{JEEJMuLv2)OR| z6~6qUY3}jY``DB2KmN*aL_n-WG4tYz&w)bbpJRFY>_4dRG^#y{x~nG_&nV&mMFr`- zWrYP5rgP#yU1V^WzE$?=`;RNlnHfI#)PGj%51jWwgki^2vFG-z3CWRhpLDOY1hUHd zbOooI@i8z=4s&I1Rb`UFVg^&TRU84~?F==Eb^ceBcvc(c)UD^4Fx_9_Q)hmwGEYcR~eqJYKfqqpjag8WRNi0dVN-jzTQVd20hUU742D*mEA%+%KCgxVg=Gq2^ lRt5%}OcW=eXvob^$xN%nt>JLyOdX&G22WQ%mvv4FO#nEAqBH;i literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..804e785b0867745ac6722e29faf5d5d645adde70 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%q`g7sn8f<8LP!@--XqxXN>cEHv2g zbb@6+|ID?_9ExJoL@uQrV0HU{^yjp%pG4VxmN`#NQCl+W`zvE7=Dv9x7A*`M^EfKp z)I=GlrLeJlIH~)JCpgXaf+6#VYl5rJI~Hu&Bc%8)zsPHc{e>xOe?HV+mts-&**@{_ z%5bAKM;q#9->HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|Nn9RmdU}k zRjJ;&(ayyQZgrV{KtWS`?bARtj3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|Va? z5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#i-PZ!4!i_>o>1ah?)@VHdBZh27e@^^dF z|E6jN?&^l15C7Z^th#dw`yMQ@@tWy($?E$n(Ww^8zsGeRjOXT>C~+&>G4>H>`G)Dw zS(M_QxVwh7CCV%_YEoRJ<$NM>zVQv!kkpK%U@w-v3$&c~e|cTb_|tr4Y~Tc`oE1jy zAoBbyhpY_?ZyEnr$)D&v)96HWj@Z7&Kcdst$^EgnXAsg?5SyjgHyh|s)e_f;l9a@f zRIB8oR3OD*WMF8nYiOWrXdGf_VP#@&Wo)i(U}$Avu*pPm0*Z#*{FKbJO57R_XU^0C PYGCkm^>bP0l+XkKr0|;H literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..8f75f26a8d6e6d629746d6f9a0422805ba8519c3 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIjK%sn37sn8b({K9@@*Ys&VU9egUD3Mc09Rz=U-uQxflIYi-`j0)Qt>M& z%2r>`z;dnYFXNdLdCM3}jTZ19s=D5Ac;>+?M`Pm;&vJC}ujM%&tk<|(NIPM(o=I z&29nO2Eg!{N-CIzSB!p00i_>zopr E0EZra-~a#s literal 0 HcmV?d00001 -- 2.40.1 From c49505d1716076d448cfdec0d6d6a02c70c1a5f0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:24:03 -0500 Subject: [PATCH 064/321] Add files via upload --- .../3d_armor/textures/3d_armor_helmet_admin.png | Bin 0 -> 431 bytes .../textures/3d_armor_helmet_admin_preview.png | Bin 0 -> 343 bytes .../3d_armor/textures/3d_armor_helmet_bronze.png | Bin 0 -> 426 bytes .../textures/3d_armor_helmet_bronze_preview.png | Bin 0 -> 343 bytes .../3d_armor/textures/3d_armor_helmet_cactus.png | Bin 0 -> 469 bytes .../textures/3d_armor_helmet_cactus_preview.png | Bin 0 -> 352 bytes .../textures/3d_armor_helmet_crystal.png | Bin 0 -> 431 bytes .../textures/3d_armor_helmet_crystal_preview.png | Bin 0 -> 343 bytes .../textures/3d_armor_helmet_diamond.png | Bin 0 -> 431 bytes .../textures/3d_armor_helmet_diamond_preview.png | Bin 0 -> 343 bytes .../3d_armor/textures/3d_armor_helmet_gold.png | Bin 0 -> 426 bytes .../textures/3d_armor_helmet_gold_preview.png | Bin 0 -> 343 bytes .../textures/3d_armor_helmet_mithril.png | Bin 0 -> 426 bytes .../textures/3d_armor_helmet_mithril_preview.png | Bin 0 -> 343 bytes .../3d_armor/textures/3d_armor_helmet_steel.png | Bin 0 -> 478 bytes .../textures/3d_armor_helmet_steel_preview.png | Bin 0 -> 350 bytes .../3d_armor/textures/3d_armor_helmet_wood.png | Bin 0 -> 473 bytes .../textures/3d_armor_helmet_wood_preview.png | Bin 0 -> 337 bytes .../textures/3d_armor_inv_boots_admin.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_boots_bronze.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_boots_cactus.png | Bin 0 -> 407 bytes .../textures/3d_armor_inv_boots_crystal.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_boots_diamond.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_boots_gold.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_boots_mithril.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_boots_steel.png | Bin 0 -> 382 bytes .../textures/3d_armor_inv_boots_wood.png | Bin 0 -> 414 bytes .../textures/3d_armor_inv_chestplate_admin.png | Bin 0 -> 398 bytes .../textures/3d_armor_inv_chestplate_bronze.png | Bin 0 -> 402 bytes .../textures/3d_armor_inv_chestplate_cactus.png | Bin 0 -> 430 bytes .../textures/3d_armor_inv_chestplate_crystal.png | Bin 0 -> 398 bytes .../textures/3d_armor_inv_chestplate_diamond.png | Bin 0 -> 398 bytes .../textures/3d_armor_inv_chestplate_gold.png | Bin 0 -> 402 bytes .../textures/3d_armor_inv_chestplate_mithril.png | Bin 0 -> 402 bytes .../textures/3d_armor_inv_chestplate_steel.png | Bin 0 -> 412 bytes .../textures/3d_armor_inv_chestplate_wood.png | Bin 0 -> 420 bytes .../textures/3d_armor_inv_helmet_admin.png | Bin 0 -> 366 bytes .../textures/3d_armor_inv_helmet_bronze.png | Bin 0 -> 365 bytes .../textures/3d_armor_inv_helmet_cactus.png | Bin 0 -> 381 bytes .../textures/3d_armor_inv_helmet_crystal.png | Bin 0 -> 366 bytes .../textures/3d_armor_inv_helmet_diamond.png | Bin 0 -> 366 bytes .../textures/3d_armor_inv_helmet_gold.png | Bin 0 -> 365 bytes .../textures/3d_armor_inv_helmet_mithril.png | Bin 0 -> 365 bytes .../textures/3d_armor_inv_helmet_steel.png | Bin 0 -> 359 bytes .../textures/3d_armor_inv_helmet_wood.png | Bin 0 -> 364 bytes .../textures/3d_armor_inv_leggings_admin.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_leggings_bronze.png | Bin 0 -> 372 bytes .../textures/3d_armor_inv_leggings_cactus.png | Bin 0 -> 413 bytes .../textures/3d_armor_inv_leggings_crystal.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_leggings_diamond.png | Bin 0 -> 379 bytes .../textures/3d_armor_inv_leggings_gold.png | Bin 0 -> 372 bytes .../textures/3d_armor_inv_leggings_mithril.png | Bin 0 -> 372 bytes .../textures/3d_armor_inv_leggings_steel.png | Bin 0 -> 378 bytes .../textures/3d_armor_inv_leggings_wood.png | Bin 0 -> 414 bytes .../textures/3d_armor_leggings_admin.png | Bin 0 -> 406 bytes .../textures/3d_armor_leggings_admin_preview.png | Bin 0 -> 363 bytes .../textures/3d_armor_leggings_bronze.png | Bin 0 -> 381 bytes .../3d_armor_leggings_bronze_preview.png | Bin 0 -> 339 bytes .../textures/3d_armor_leggings_cactus.png | Bin 0 -> 449 bytes .../3d_armor_leggings_cactus_preview.png | Bin 0 -> 364 bytes .../textures/3d_armor_leggings_crystal.png | Bin 0 -> 406 bytes .../3d_armor_leggings_crystal_preview.png | Bin 0 -> 363 bytes .../textures/3d_armor_leggings_diamond.png | Bin 0 -> 406 bytes .../3d_armor_leggings_diamond_preview.png | Bin 0 -> 363 bytes .../3d_armor/textures/3d_armor_leggings_gold.png | Bin 0 -> 381 bytes .../textures/3d_armor_leggings_gold_preview.png | Bin 0 -> 339 bytes .../textures/3d_armor_leggings_mithril.png | Bin 0 -> 381 bytes .../3d_armor_leggings_mithril_preview.png | Bin 0 -> 339 bytes .../textures/3d_armor_leggings_steel.png | Bin 0 -> 430 bytes .../textures/3d_armor_leggings_steel_preview.png | Bin 0 -> 348 bytes .../3d_armor/textures/3d_armor_leggings_wood.png | Bin 0 -> 426 bytes .../textures/3d_armor_leggings_wood_preview.png | Bin 0 -> 372 bytes .../3d_armor/textures/3d_armor_trans.png | Bin 0 -> 274 bytes .../3d_armor/textures/3d_armor_ui_form.png | Bin 0 -> 9116 bytes .../3d_armor/textures/character_preview.png | Bin 0 -> 349 bytes .../3d_armor/textures/inventory_plus_armor.png | Bin 0 -> 533 bytes 76 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_admin.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_bronze.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_bronze_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_wood.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_wood_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_trans.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_ui_form.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/character_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/inventory_plus_armor.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..0a0425176910b1aa633795613719a105f7370367 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|NoT?Wt$mR zA7j{io#Et4hD8e)W=~+~>0oGUWT*qm)*TT&3{=cm666=m;PC858ivL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh3T1k_IEGl9PEI($#M0Qn zC@)}SR(52yLx|@|f%QxqF9f*m;W~2p64OVm2^#wTK#5I@7Xu~s+!JwOj@aALv$0B0 zGWqKwhG-_`j$^N4Cx|<8IhcgKZ<0|vaNq#PBF?Jmf@{h|dYFWOfs!h5*p%Um3D8p2 z64!{5l*E!$tK_0oAjM#0U}&yuXrOCo9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB W+!_vN&eQ>FVDNPHb6Mw<&;$T5S%MD$ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..9f449216ccc4cb23a133ae967887f3110fc177b4 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI#As4TZ zzUuommgj*&MxHK?Ar_~T6Bw8rH4+*aeHc}f6$%cj3#?*cIrf7^Lc+=UpolAzhlp8Y zpaGW~<6Q=Zq-M^EZ&`P+0d=dExJHzuB$lLFB^RXvDF!10Lvvk216@Po5JL+q6LTwL pb8Q1dD+7Z~CW;eKH00)|WTsW()^Ip;rVda8gQu&X%Q~loCIA$*TMYmJ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef55957e75a98471373cf83a56146b1703c915d GIT binary patch literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$@& z9M3d4U1WQq-U}$Q^!I}npaRB{AirP+hi5m^K%69RcNc~ZR#^`qhqJ&VvY3H^?+6Gp zPSxg<1`4v5c>21sKjh*S(pP=I#_~K+sKC?3F~s6@a>4;7mc|A~d4Zsypd;%K+?dh8 zB%JOgDzK$#g7U|zU;*BQ!h{uz0|Hho@>sEX(S**`N@A>feG2YfJ01ir$jQ+-@aBL< zPR^2!tGgBC8$=p16jPObSQXki4GavLGMetCvaFV6UEILJz!3jN!1cMb(NCb=swJ)w zB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4fqc(xe literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..9a62f820724f66c0a86891a3831f605a30c0cc35 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIF39nw+eQ*grjVMV;EJ?LWE=mPb3`Pcq=DLOkx`xIfh89*P=2ph$ o+6IPJ1_ql<6epl)$jwj5OsmAL;c(_m9iRpVPgg&ebxsLQ0E|#u%K!iX literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..e48ec344562969eb9327eeaeb5d70fda8924406e GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|NjmJW~X-6 zdNdeSTh5E98%4&x)%5d+anV>Q@(L<^I~0wpQQkVqDh8DarEFraf8Du)LV-nvIuy z*zN@PhKIR}r&s46)Qu08*x{-o{-mC#M_ESZ&tbMmFR>LH5)PXI-KbjP8c~vxSdwa$ zT$Bo=7>o=I&29nO2Eg!{N-CIzSB! Mp00i_>zopr0CSR^g#Z8m literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..c8be84a1f0b82edead4aece667b5bb6471099969 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIF1po}8R4u3E#iaG~D9V-+kcff_kX zUK%21jE+rAixWh8n07HT%-F~I-NLx;9ncun64!{5l*E!$tK_0oAjM#0U}&yuXrOCo y9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB+!_vN&eQ>FVDNPHb6Mw<&;$UlXHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|NjixZ48so zGR(fmu<$iQ&tZm+9SrqL8LDP66i)!k*8YB4160gd666=m;PC858ivL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh3T1k_IEGl9PEI($#M0Qn zC@)}SR(52yLx|@|f%QxqF9f*m;W~2p64OVm2^#wTK#5I@7Xu~s+!JwOj@aALv$0B0 zGWqKwhG-_`j$^N4Cx|<8IhcgKZ<0|vaNq#PBF?Jmf@{h|dYFWOfs!h5*p%Um3D8p2 z64!{5l*E!$tK_0oAjM#0U}&yuXrOCo9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB W+!_vN&eQ>FVDNPHb6Mw<&;$Smr-IJ_ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..dddbbc07ef75c15226507c62d41bd026ff1bc3e2 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI^mS!_$i*w9 zuljzC<$0ixk*AAeh{fsT1O_HYjf4h9A4b(=g@S|X0;^b9j{RVfkZ^K7DB{ZGA!61T zXu##hc$a}8shM-)Th<+HK;5b(t`Q|Ei6yC4$wjF^iowXh&|KHhK-bVX#L&XZ#N5i* pT-(6V%D`ZgiQ)tl4Y~O#nQ4`{H5|^IsRPu&;OXk;vd$@?2>>&wTQvXx literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..611dc9f551ba4ea47b0f793756fd354d5b2b2526 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|NjhKEezLB zGd#P=@ZmATxg!imb~0>O&ah+_!}LC&temp2IZ!cUNswPKgTu2MX&_FLx4R2N2dk_H zki%Kv5n0T@z;^_M8K-LVNdpDhOFVsD*&lN83hAr9Ut@V5D3s~x;uvCaIyvD06H8+Q zqr8BTS=o`*4k4Z=1=cfdyb$2JhwI4YOH3cNCTQsU10^;sUJR7jb5F#DIbv@|&&Dc2 z$>gt#7^0b!JC41IognVW>0uHA21=^LVN-@LCO}J7 zOI#yLQW8s2t&)pUffR$0fuXssp@FWUafqRXm5I5PvAMQ^p_PHbCKJU8C>nC}Q!>*k Wacel7Ia3Fyfx*+&&t;ucLK6VE-hylZ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..ed52aedefb10fd4038ba5adde8ec5488977470d5 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIOaJki%Z$>Fdh=kc(GH zU-kVO%kw}XBTpB{5R22v2@Fh*8VL=IK8&i#3Izw%1y-@J9Q(l{A>rhFP{ftVL&U5x z(16R0@h$^HQZwhox2!wZfVx#nTq8HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$$~Fb9w`7tq<57E02MHn1o;IsI6S+N2I3@nySp%Su*!M>Ih+L^k;M!Qd`Cc- zajG_-G*FPe#M9T6{UH~xkiP2sHJ0arLIs{Kjv*GOlM@awu{1U?$_oSq1sz#`;Kqyw zCgF51QGqQ@6O=zz1q<*d6eg@#91yT#k;jV7izalgRuW^?>r-&=+VLQ0K~9dwfj0*< za&ne*T-~i8-yqVEp_r=d!>Z8EX<%T`l+koAm1VUo>*59$28Q@I0tPq28LD!2AfP2C!lD^%}>cptHiD0 TaOO-Mpaup{S3j3^P6`sfLoQw+ zebx7CEYAalj67W&Lo7}wConKMY9ur;`Y@^{t0pI_?qSk%Xb5j;Jg6$-6R6VQk|->} zx;R1P0xtu@U2e{N^-Xc}fx1;oTq8HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$|igGfV$Vydzat3o@cfq_9&M$^4imesPXiyK%N7~^mS!_$i*w9 zuljzC<$0ixk*AAeh{fsT1O_HYjf4h9A4b(=)#PN=JxqEI4dD%q2USIU0#zDZ5``sL z7bl2Z;ALRA%gvduzA0`#P`7G{YeY#(Vo9o1a#1RfVlXl=G}kpW&^0s;F|@EUF}E@{ p*ETS;GBDU=qBsFXLvDUbW?Cg~4Tm#l>Hsw`c)I$ztaD0e0stBZTzLQh literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..8d21e8a5e0128d42f3ff41e450eeb27b6f1eb27a GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#imPZ!6Kh{JEEZsanVm0tKZZ&GH^6NQ3`tnqiv|pn)M%7*Z@7J zTH+c}l9E`GYL#4+3Zxi}3=GY64GnY+jYAAAtW3)&j&! z@^*J&_}|`tWjK%odv7sn8fUftDnm{r-UW|L1$wf literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_wood.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..01e243a9cbebbfd4adf5b9b09d671516b6ea9e39 GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|Nn9RmdU}k zxzWzW32s%X-gTLN6)B!T@l79hUIQv)ED7=pW^j0RBMrn!@^*J&=wOxg0CG4BJR*x3 z82FBWFymBhK53vJdx@v7EBiw(ULk$e_iHTA1BGUKx;TbdoPImOk?XL6fa~5v5^w9& zJiqtub-3kpU94pOp_KR&e^&|>ES@X3;IBfH-7|jwm2M`CTAFir`za+P?dWij536)K z|MAPxrgX^y^PNnMFCMEuQD77Zx_n%5gZ#GN**y<4FRxUcdv}fF;|VD9{p;AiT>{Ae9Y+%Z=W&O3ywcHnv+uP4H|K%gLL)X1p1L#QA64!{5 zl*E!$tK_0oAjM#0U}&yuXrOCo9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB+!_vN S&eQ>FVDNPHb6Mw<&;$T*ET6pq literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0c3b179a46bcb5d73aa37d0604a851a3fc451c GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI#As4TZzUuom zmgj*&`kpS1Ar_~T6Bw8r9aSAwRUIAKBn}7!7?l~Cl@%UTX1Joraj7{vL8PZC(BKRM z!;w#HvRhO2b%9z{OI#yLQW8s2t&)pUffR$0fuXssp@FWUafqRXm5I5PvAMQ^p_PHb iCKJU8C>nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6Urv01_Z literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..69fc00a882e6c2887540f953620f3f856ced9a46 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFb| zfr9KMp1!W^54m`S^i|)lu{;kHa`AL=4B@z*oN$0yf|a#_6ah0f!yaBq7FJeC1s0$?-ej`Bh%HXA2AZc@;u=ws zl30>zm0Xkxq!^4049#^74Rj5SLkumfOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZ RnL0oX44$rjF6*2UngE!?WCj2L literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..448f41d709059cd9d2b46782fc86cb031f293c81 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFb| zfr9KMp1!W^54m`S^i|)lu{;kHa`AL=4B@z*oN$0yf|a#_6ah0f!yaBq7FJeC1r{p?hBuk)FJg-mtbyjKmbgZg zq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6D SbEXbZ1B0ilpUXO@geCxuL1gs+ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..3f57f22a4506f9d9d84425f3a5061ac93333319f GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFri0k z-{o}o(i-n(`=EZ1ph;B2YM>g%k|4ie28U-i(m-mu=e)v_-YVHKHUXu_Vl*!&%@FSu>8rk9V|gAZ_MK79$r29`_Ws zHW6hPmj=fpoJRr*Qv`yHfO26$DFS9}hCRHJEUc`O3M^I(3~w^oU&IzCSOd*dEpd$~ zNl7e8wMs5Z1yT$~28QOkh6cKZ#vz6lRwm|F#^%}vhE@g!n@kiZplHa=PsvQH#I50Q S=1d)+1_n=8KbLh*2~7Z`S7j3b literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..0a866e75f2ab3245b66abcc1daea72f7d414e76c GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF21sKjh*S(pP=I#_~K+$i>seF@)oKa>4;-30BqyjuQewVhJWeEJiL4JnkuM zZ6eApE)9-HIFAGrrU(QX0p-GiQUuJ{410JbSy)*m6<` literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..55d78b719e354096c35f060849015bc91c4acd2d GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFu^72H@VKY2 zwTURZxHLE(;XD#hm?98l1e6O4N)a$)Gwk7&WMO5MRA8}UV0e?s{vx(G!5V0uYKdz^ zNlIc#s#S7PDv)9@GB7mPH8jvQG!8Meure{XGB(#XFtjo-*kqzO0YyV@eoAIqC2kFe TGiT}mH86O(`njxgN@xNAQr>2v literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..00c26f946879a30376bf31c72a35dca18000e983 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?n|H`z>h$P?oVI$S;_|;n|He5GTpo-G!lpRn`N@;VkfoEM{QfI|9OtQ?>b| zfr9KMp1!W^54m`S^i|)lu{;kHa`AL=4B@z*oN$0yf|a#_6ah0f!yaBq7FJeC1r{p?hBuk)FJg-mtbyjKmbgZg zq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6D SbEXbZ1B0ilpUXO@geCxWhh*gd literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..82fc591823572e7ba427fe9a405688a9a082abad GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Cr;B5V#`&cat%Vv4I9%fA zL@a&CVLAW%#Nu1g34)7`-M0{yk|?{GsvvRS@Pc=T>Pl{SQ6wH%;50sMjD8dI7GGJ8;S8(Q7(d`-NF~RYQg-^r9n?NMQuIvxFc!l&;->VNK49 zM@mv^2NY6b^d3dT&EiNB>1vkrdiM0`(uJK4rKg@gO-ztgV4HC4yg|Fsl%C#&JgTau zj2qTE95}$hkmMxXc<1gfKcLB~C9V-ADTyViR>?)FK#IZ0z|dUR&_LJFIKfq@1-UmpkV&=-9kV$j3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|Va? z5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Jr;B3<$Mxid11wEUJUl&34r|^>NNGJ% zI-rp9NJ;9&q-Q4-Qrq9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywq0>UC}a literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..7f5bc70362ccc3694634b4a5970b5a345c40ae53 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFri0k z-E4pN(wd-tS4CS{|1Kw>_*JVvkAcb;OkH}&M z2EHR8%s5q>PZ}u5UgGKN%KngxS4dy={Tj>jK%qQO7sn8e>#5z2TrCD7&dL4?vNN_u zRWWhfHq`8z_o+GCJT5^au6|#sWuyP0)BGRw?HSMAURpITP`%~Y_l0XJMAuIIb?NjoaDnD|6U`{bP0l+XkK%=n3t literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..b9593bf202440aa7f3d2ce1e936a67e00292c652 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8Ynr6BA?=*d`o1Z_sWurKfixkE*IE zRdP`(kYX@0Ff`XSG|)9P4l%T_GBLL@ qHrF;Vv@$T*WTH3$MMG|WN@iLmZViVsXX*eoFnGH9xvX?NMQuIvxFc!l&;->VNK49 zM@mv^2NY6b^d3dT&EiNB>1vkrdiM0`(uJK4rKg@gO-ztgV4HC4yg|Fsl%C#&JgTau zj2qTE95}$hkmMxXc<1gfKcLB~C9V-ADTyViR>?)FK#IZ0z|dUR&_LJFIKX?_wfUrhg6t)pzOL*Kxp;;2Ro}0%JP#BK^>lFz;kcfhaDb(WiHE1B$zjbK2`Q~d zN(U5D9w|w^nDp#~Ldu&*8jl{arD)9Dv17>&3#O}@%#sPR3TzYDjAIH6ePZSuf-Ln{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCx19e1e! literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca92315920760ebf76db3f76c12a5223076966e GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFwt=2Wl_X&prB^($L~Njj3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|Va? z5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Jr;B3<$Mxid11wEUJUl&34r|^>NNGJ% zI-rp9NJ;9&q-Q4-Qrq9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywnz5_Pfw literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..47ef4f209dc075177888209c348cdfadeeb6f00e GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0gr;B5V#`&oi5Arq}2)JB) z&e0OUwLtgPg82dNw-zyR7Z&iDS$G8~eM>njpPgRr{AqVy{SLNgEWs;^LY<73?+#1< zs8eCma8%^b;s-i5{CAY2inzmM*_5A_U%AdBEyDdpNy&?CMenA>iOFptLG{v~LY7x| zgo~A)-7s&@tSbP0l+XkK3onEt literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..dac3b06f2dbd6c3abb127fac1bbd58941fd9aa14 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFJeR{{pIEED7=pW^j0RBMrn!@^*J&=wOxg0CG4BJR*x382FBW zFymBhK53vJdx@v7EBiw(ULk$e_iHTA1BKE(T^vI=uBZ0w=4~+Gap4ty;_lxg!SIH4 zQAMN3Nw%BytUan)>#8p8wQh)?*1%wAZDFAp7orgOB!C8<`) zMX5lF!N|bST-VS**U&h`(89{Z+{)No+rZGuz+jV!;sg{8x%nxXX_dG&9L}7n1JuCa M>FVdQ&MBb@0O?qPFaQ7m literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..494cc84cd48e21f7b1f3b6901044ca90de3647be GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFEal|aXmTV0J{V$E9(IsMO9VT z4Go?dD<&~;9oE^a!`VA=T3ho$1{H~qw>TJf?c?%%;cHsw`c)I$z JtaD0e0sv^}X_Ei| literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..c0028dd60f257b26a2152b781c0062c4fa7c5baa GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF~bp9zYIffk$L90|Va? z5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7zMir;B3<$Mxid1MCv4tgHuk6jfDSH#Bs1 zXHQ^gdB~JFW9bgng@%_d6&Oe~uqek#GcJF~#lSm*K_94BwZt`|BqgyV)hf9t6-Y4{ z85o-D8XD*t8iyEKSeckx8JlYx7+M(^Y%)=tfTAHcKP5A*61RrKnKN~O8W=oX{an^L HB{Ts5@APH~ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..10a2b394839e242608f9cdee2703d1f9b5f79c3f GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF+@cw*i$gmIV0)GdMiEkp|)UftDnm{r-UW|pU`bO literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..565383e6f1540e7d78a8d7d4e8cf16f3fb74049b GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFQpUpjVMV;EJ?LWE=mPb z3`Pcq=DLOkx`xIfh89*P=2ph$+6IPJ1_ql<6epl)$jwj5OsmAL;c(_m9iRpVPgg&e IbxsLQ0J{`t%m4rY literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..6df57bde3811c32a594601673c6297f1825ef39b GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFEal|aXmTV0J{V$E9(IsMO9VT z4Go?dD<&~;9oE^a!`VA=T3ho$1{H~qw>TJf?c?%%;cHsw`c)I$z JtaD0e0szkhY4rdA literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..6820d8f077bb758c072bed2f6543101ff0fb6340 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFX?_wfUrhg6t)pzOL*Kxp;;2Ro}0%JP#By@N{tu;kcfhaDZKcm6i1XkD{uo>xPET z?(7K+Ef1LzXDr>Jy3p{_r2+$q1{UQwX~yLbxfpn7Fz5sIs+PD$l%ynUftDnm{ Hr-UW|9;j$G literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4e9108b3e3d9bccfee26658017f08657857ba9 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFYh7ML)4d!3JfF~Sd`nX z*;K=5+2OC z7#SFv>lzy98XAWfT3DHwTN#^c8yH#{7;G|8oPeSsH$NpatrE9}!p>4u~ z2}&~*rKF@d(w4NfwLMHwF)-L5m@dfhHj&+iDe=DrP^)T*YeY#(Vo9o1a#1RfVlXl= zG}kpW&^0s;F|@EUF}E@{*ETS;GBDU=qBsFXLvDUbW?Cg~4Tm#l>Hsw`c)I$ztaD0e F0sxI$W844$ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..e652ef1164240e514fb337329767dbef78217dcc GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFX?_wfUrhg6t)pzOL*Kxp;;2Ro}0%JP#DI^K@|x;kcfh(7^2Gs35>#)Y9YYGl$oa zCpbCzv5SPVz!?LPCL^k`f1|IWaP%oabhmFQ5|uG)c9@ zHKHUXu_V)^mS!_$i*w9uljzC<$0ixm8Xki2*>s0ga&3eM+E@}qZXf-Ik8NRJjn_U z$t+z?63du+PAxI+Y2)t`Q|Ei6yC4 z$wjF^iowXh&|KHhK-bVX#L&XZ#N5i*T-(6V%D`Zgi6Y412o1UUDVb@NxHTNkoT&rU Oz~JfX=d#Wzp$PyCCT8>i literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c1a2880d69f83bd76aaf91cca840a45b5e67cc GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF<>&pI+i&scr_5B*l^FW~lPZ!4!j_b(@4a{z?ii(b`3eGo<9yzKa za6+J%aT8A?kEyV*_;iI09t)&gPDM5tvg$n5I*`FMNvJF|!Hdyz<-sLKVpwMc9SCv| z+@NPFzCdb2$R>v5D4`ocY;1~*Ey@gDANj8Rs}?r`+NE0J8c~vxSdwa$T$Bo=7>o=I z&29nO2Eg!{N-CIzSB!p00i_>zopr E0B2oyz5oCK literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..d466b204ec93bf9b4509ee7b3299cb7aac714139 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFO>_%)r2R z1cVuHsw`c)I$ztaD0e0sze4Y9Igr literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..c4cd85c7efbdecab6d8460b31fe1b47e5c043f72 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_!@hljQC0!qCAg>jC6&7I;J!GcfQS z0b$0e+I-SLLG}_)Usv{rT)aa1s_)lWo(BrqdAc};a9mGLXkd18R1jb=YU%OynZxVI z6P%p<*hNBF;EaJtlM#!=)Ix)vMjmITATOpKudW1dNr?l~oERBW&T})(7tjd+nxtCd z8c~vxSdwa$T$Bo=7>o=I&29nO2Eg U!{N-CIzSB!p00i_>zopr0MM>#6aWAK literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4b2446afba1fb79e96cbed917c0b4b67da778c GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFb|fr9KMp1!W^54m`S^i|)lu{;kHvhs9s4B@z*oY27R=BOaRVASFhGbfhGktbQf zA(^GiNn#mOKGJ&ioh0?wWdfu4dnn#{~Mf;1Qy`bxQr!d~oN0W?Lm#5JNMC9x#c zD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{wS{WE@GEtm>q9HdwB{QuOw}!)+Gj)I( O7(8A5T-G@yGywn%bZF!N literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe972ce7a3a65be0310daed757899dc71c0dcb9 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF}ZPTexOLwos)ln3K&a*{DK)Ap4~_Tagw~Fdh=kc(GHU-kVO%kw}XD^C~45RU7~2@T9{jtT+{MlC)ub7Gksd6E?z zl3BW(B$hGtoLXYs)5zm2;OyBD=qZ?^$;^BsNP~f)uavte?8WXCKvPspTq8Wz`FhX~#BA-myt^U-p&BQoAx3!Wu%-)TVWx&^d6-Ys)Uj zBfGi7?Mrkj92F+NUSq5o75;R^&V|*F>JPr_kiMEP*H2OC7#SFv>lzy98XAWfT3DHwTN#^c8yH#{7;G|8oPeSs cH$NpatrE9}!5T;F9oV$ED7=pW^j0RBMrn!@^*J&=wOxg0CG4BJR*x382FBW zFymBhK53vJdx@v7EBiw(ULk$e_iHTA1BDVjT^vI=t|uonFe|z$Iyx#UIN!K=nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6Vh CrE;zS literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_admin.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..bedfbc1551e751734f5ab348c5b60f8ad57fcc09 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NoT?W!D)_ zZf010jA8FehD8e)W=~+~0g5NT`f~uNjIkuhFPOpM*^M+1C&}C0g`tC0)&t1lEbxdd zW?X?_wfUrhg6t)pzOL*Kxp;;2Ro}0%JP#BK^K@|xu{fQaAi=trft7!HpRTERRAIrg1b{h<1oODg3nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6T=<#nI{ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1d32265dc5358a8b8ffb12790cbe925474739d9d GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI%a+_7YED zSN4Zoyh8e_@7GwK2MRfOx;TbdoK8-VU|pQh!QiNIKzYFu6^=s{EIqxfjuQP1-Q5Zt zj|Dk+MOhMUm@+e)6nfkj?1>R*`N$#g<*fn(!|J2LD{nHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|Nnb^rH>@& z9M3d4U1SU7#vFNa04U2?666=m;PC858ivL>4nJ@ErkR#;MwT z(m+A>5>H=O_J>@&Li(!j*I1qh3b}c@IEGl9PEL?uUChAB!6g)+u*72}6H^$66Js7X zkD|bKCU=e{4vdc499jV_4xjdRt`k_Ew7^vDT$g~*bS70*R}Rlfq6}Al^Sr#Tbb21sKjh*S(pP=I z#_~K+$k5ZpF~s6@a)Jcw;)D(cM~wr@3sQ76GS;+&A8-x0&>F;eXq$jofDlWf4HHYP zH3tL3q%z*#=lnOrfSOfHTq8HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$l*!&%@FSu>8rk9V|gAZ)b8ox7-Dhy?SzB8M+`VvVwu&&84|f0N*;tH zXusS)Rr$Nul7c)1?Vri(ZJ3wtsVwF`xn#qQB@65{IsTg~2q~WOewFp=grR|jPw~ZD z7al#aUvZt`$~5IejJ%dga_qbMYJ3!*No+Zzq@t4^J!x*sn{D52oY-c^T`$#FtJC)P z#d(fr^Ut2#d9R-F&o|+`Ywrba0G*^-;u=wsl30>zm0Xkxq!^4049#^74Rj5SLkumf tOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZnL0oX44$rjF6*2UngDNTmPh~q literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..9dab4829c88cf4a3648124dedc4fd7d9ee60a66a GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIt1{r~^}S1tVG36x+g3GxeOaCmkj4a7vf&}a0gboHrRRe(|x(ia?C~3S%TGQgLaK+X0q^ijJhK-XZ z8QL*Ac8EFNVLGxyIfS#Nkek6)U8Cb!bVwu6D=Rw10-2@FX90~=Epd$~Nl7e8wMs5Z z1yT$~28QOkh6cKZ#vz6lRwm|F#^%}vhE@g!n@kiZplHa=PsvQH#I50Q=1d)+1_n=8 KKbLh*2~7ZnGG~hb literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..754bd0ff909c38b096deafc48caf681e9ae9581a GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjixZ43)v zGfY0qF#8@u&tZm+9SrqLf#TIW?^gkpF_r}R1v5B2yO9RsBze2LFm$lWdH^|`1s;*b z3=DinK$vl=HlH+5kiEpy*OmPt7q5`M>iad8=Yc|Do-U3d7N?UFBv= zaA@41m>S06#3(23py0=<)F;q!yi=efxG_V4%3K(GGDZg`f9a!aIUDMl4#f zaiem}k%wX%F9bMqcuo>!Fk%;MXo)}h321|AiEBhjN@7W>RdP`(kYX@0Ff`XSG|)9P y4l%T_GBLL@HrF;Vv@$T*WTH3$MMG|WN@iLmZViVsXX*eoFnGH9xvXzzS!wele80we)|Np;b*0b$ES;mqezhDN3XE)M7oFs2|7ml`jQ>%a+_7YED zSN4Zoyh8e_@7GwK2MRfOx;TbdoK8-VU|pQh!QiNIKzYFu6^=s{EIqxfjuQP1-Q5Zt zj|Dk+MOhMUm@+e)6nfkj?1>R*`N$#g<*fn(!|J2LD{nHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjhKEeszX zGh9E-@a!hTxg!imb~0>O4ipa-JmC*i##j>M7tG-B>_!@hljQC0!qCAg>jC6&7I;J! zGcfQS0b$0e+I-SLLG}_)Usv{rT)aa1s_)lWo(BqrdAc};Se#BykYHWRz{NL}L_5Tt6n@@w3GWEr7_n%@ z#*NA?M;?l8yb$2b;W?)FK#IZ0z|dUR&_LJF yIK%a+_7YED zSN4Zoyh8e_@7GwK2MRfOx;TbdoK8-VU|pQh!QiNIKzYFu6^=s{EIqxfjuQP1-Q5Zt zj|Dk+MOhMUm@+e)6nfkj?1>R*`N$#g<*fn(!|J2LD{nHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|NoCqus*-S z`|_sX>wDrruGYzamw~d3B|(0{3=Yq3q=7g|-tI089jvk*Kn`btM`SSr1K$x4W}K?c zCk+&2FY)wsWq-)UE2OXbevRdMppcuVi(`nz>Er|n*2N6099%*H3QIgzGBJg5I5FmN z^C${zXL9FQ;=t&r&7l?0;_zv2=Q@GqNefKX&UFb0O=nV7b>;A!B+78*H_yxaN+&pg zCaRXWMwFx^mZVxG7o`Fz1|tJQb6rCNT|?s#LklYtb1P$WZ39Cq1A|Q_iW5*YmdKI;Vst0BKcfd;kCd literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2e3d04fc45082df5c733e92c178b3efb376128 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI7rRaMU=UydXtKBV$cV_yN~|3#~znhqeib1qiVu+Ay)y zT5~WkOe*8;ea?R~45(SP#5JNMC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{w mS{WE@GEtm>q9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywo;v0p?0 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..2143572ee6402085d7271fae778b66102bf8686b GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|NnN%8-vYv z#5n9u@!SvOy8iVE1j;g&1o;IsI6S+N2I3@nySp%Su*!M>Ih+L^k;M!Qd`Cc-ajG_- zG*FPe#M9T6{UH~xkiP2sHJ0arLT;Wejv*GOlM^IZ7c;POa0vw{Eb&;$#1zKi#F)p; zqbRVQ$(>_~1EZrhhgLv~!>7HS>jai3EihF(*Cik{ok>;ImBVwAD8rTCJTLDno!|hP zs9NG0QIe8al4_M)lnSI6j0_CTbqx)44UIz#Ev!t;t&GjJ4GgUe3^ti4PC(I+o1c=I XR*74~;mnyjKn)C@u6{1-oD!M21sKjh*S(pP=I z#_~K+$k5ZpF~s6@a)Jcw;)D(cM~wr@3sQ76GS;+&A8-x0&>F;eXq$jofDlWf4HHYP zH3tL3q%z*#=lnOrfSOfHTq8Ah3 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..cca4e31a805dd56f9415235b990d1b149bbafb89 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#ijPZ!6Kh{JEE8*&{s;BlSb z>&>QXoBrK^7o=I&29 YnO2Eg!{N-CIzSB!p00i_>zopr0K?9Sn*aa+ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..dbcfcf2b5312bb699c177fe3f25caf7915432510 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%p>C7sn8f>UVZ=o literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_wood.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..eb610344e137a0448f767c0fa905c33e58871c93 GIT binary patch literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|Nn9RmdU}k zRjJ;&(ayyQZgrV{KtWS`?bARtj3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|Va? z5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Pr;B5V#p&b(3D(67tQ=ZG0SY-T4vk&{ zjI2&gEK3vxmNN+|a~xT#z{ymo6=2%raHq}yNQ6l^DfqE2>J;b*Zd|0mVkE$HU_(HV zNXvu>Q4V!3b!l}ck2m``LkdedK|&2a;UY~FPCR0mFhl5e9s7)*K#NsNTq8*my~NYkmHiE{-7K z-m`?{7&{hLuryrb;##zm*;hd~B*4Igx1ZrgzQg^8ViGJ23~wKc?3}rI?gyZ`swJ)w zB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4fNyKS$ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_trans.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_trans.png new file mode 100644 index 0000000000000000000000000000000000000000..4a31242b54fceda3cea196c6083d758a5a8b9c74 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8W<`RdP`(kYX@0Ff`XSG|)9P4l%T_GBLL@HrF;Vv@$T*WTH3$MMG|WN@iLm WZViVsXX*eoFnGH9xvX*ta^RRCrD)iAa$gk{HV{NDEDlCCXOzbwXlnW19}jDKxT%VRCGheTnSV zWH*K(`x3?sF&JYT%gi$iozD9_&-;Gf=g;%`n9tnv``!2NzJJ&9y{_+dd1j!e&3)+9 zAr1}>Zt%_Ph8!Gwn;9SXgZmg)+N&3G8DIOHG<7vOIEoR6w`}$^e($x_(Z0?>4@b1u zb8wuU1Yg&@<2Ohe8AIIj4MvfPLc(d+Je4zE&b=&qe%ECx`*FVF6{wTbOWLE6s-oe> zhks<=G&oqzuUNDMw>|(VIK)?1YGdKWf7OS(|2M_{h>_QgmSQ(5PWaE3Im=W%OYPO- zbDJ_1#`5wIi}*7ELfm~SaSGughFBd_nApqS40ogw)<9k;S_~Y+{^K*3n~}is@oH2C zru(ILU^`}J7SxvtNv<5q)sahswP|p zRhMmc!f9KY2iPf)aAHX{eQP6+_XPR7dX^6RJ<+K*)bpj&`Ce0NB~y6O0>U;?cdPL4 z)6gA@Lj4@0DJ!BqAE5@YHsjZQPu_8q2Cg9bG^HGC(wj6UMI_`cvarcu*mxWZYmBPFP;KC+UJwcsJej6*r zCwAmykFeZp`^1aoh2lAN#^mP|-n|M|$>VpI>_DF+jh$a&zWIt2waEmP_n#lf&Ak}! zgmtX=8DN2@>7SAkUm&vc^I(Hd7k(21TrkZJ_-otq>n4UJ406&o@i3PF(9L)nmo~Mt z`F9|~LKG#{;fB;35^GA!o(@n z<0gpc5Bfj^`8=sv#XlHClFRnsy=DwScc;oJ{edTYO~rW^QSPDQReYr#$^fRwhoQoP z_^HD>fCumjI8L+-(p_V~o}6HIXc4tQg1+)@OeZ5}$=}i_{b%^G3R(;PSYx@ZdtWJc zAF3iS;pt~`spk~xmxUZtJ)C#;UzLqJ9r0+NY+&34#NAdDnt+aeLWN`b9BKP-QD0Vv$xk8KpgbcfjD1!4n8QA8M< zF3eEIcQvBdM2h?tTB*f3`VQzR%vJr!uN`{~Psyu?qv^-Az5)C0-lhYcx_Cs>!Fs3? zTt2awD(lCyvbdujRE>w-M{9z1bZo3qXU*-YRpyST+G#@ls^MngLZ_HEJr6{1FU=!- zowoE0u11`2Qz@`#r{w)t^T7dILXO@?!aJBA8_*F|t3-EQGlADF-;X#i$!&P*$VndTc(6`O z3#9bRq1?PqQPJA7T>{M2L^Cu~cyy$1bF{2n8vSm({mZ@w1ydEY8^n(?k^w{m zL|9`g@gsjJ=;<{g<7G6}h^nJa@O)G18|9bXV&`&axE_baMIuk^mz11Z!F2akq7nbqyb@cI)$MS>om$A8pK%$*^`J-Y*;T92oF9eDS#O-wz>~@ z325cr+8o=HjN)F@OfNL*w0TPWxUsihu(pW}V8=xKMrD%q9r*n&=Wo<}GI?>c*}p+` zV2ZYh8k_Vc@XNaf`#1JAPL5`SwSq*Vlk4hNywEatpm^;OFNPX)IQzd;VqDlf^jcb-GcWi5@I zFzRRAbgm-SI8@Osng89ek8p}Oq@-9=Ce5X1eX1N@9Cn^Nh7Dpd05io^LUC1H+_#a; zE3iC6nvkLn&fYtSbOnsFP;QRl3k#J7YyMjYbAovLUWEg(^ADIJig~0H6B(p&i6LJ@ z(99Plr}ODxtb^& z7{EaPnFX4kZ{vcOM459}_O+BOk-L>mAf{mLLWiqC)>l+YiC2#uGWVK}i7oZ2Yz<;- zG=Qhl_q~Y^PUvJ2n&Ux$+?ny-c!HdiSM$w&7z;(%YNw5_c1U$*p2@kPr(U%Lnsb)~ zx+R!7#%BnnU(=#YP=@X<5t$Y;w3bF|@S2MKdTc+JxVZPWx7k&#P{q>;rhjp?&MN7r z6|RdOW?F0PFu7;erJ+^3;TiJ0fSE3~?R=&^zU;zHuwNe#;^4+Q6hFgYCDWM6LTsm4hNhv%D9d%)R!1Xc zAEIGxGe*W$D{N1T=>2fnT6Pi{hD0Jm2vNUPpqd=P$*!)^zVI5=N#Ckt=4H;^=@=a1 z-LTybK+anT%brOcfTnZpzo_EX(qdM1e@dO@B2jAL!_|XQst}$d{Wcu$)dZp+&EA40 z9apgzo2#*!Vq}O6)kIl{(jNs7k2@Picb}CIv49D$R>UC{+oVfdZ@=gi&47`qq~EBl zsiXjXx^2}`%lBs?VKFgPv?}QzA$n>hMFMNG75#)21m^v|ue`UN%9yyW7aN(EO>{VB zDCcR;mzf#Yr=+hT-|(Kmvgre>vnyqOl@!O65G^+@NoKf3THc4x4oDUPm|!puAcriG z{-WOT`Gddvp~bIUW`%wd)x&W5Oh8Qsk|CJC9rC~R(*MtkxX|-S>!mYCB3c7#P#DD_ zR|-;TK?J|dU!xZB@!bK}QpUBKGnjx- zTY6e{%R!3I_3By|EW51ZdYlr~YrEE_F06j*8f0#L$r|dTdRZa|91#){f+W;6y+D_( z`4wM7Ft?A06z)853m2qa?VHCqcq!&^4=B*}!|@Maj-DPYbB^uG^iW-XbnXBHGOnR? z%lqv^FRh1!#R=D{zF6%oWd*=QhZP2WaWTLZulX*D%aFnP2lvUwYY@X4zZx^>y;9irw z)IZ%jPpjE}dQ6)JFUG~(6S?$?eN0=*;?dw|$6t6N!>7p-R1I1Hd~0QyZ=_3MYg|fl zpjm?+MPC!7=WNy2`;sIALlvwOE&P{fy2sY;8$4jC@J|d^lNsTp3vxoadaJLV5^4p6 zC1iLtyWA2|@9NHIBIZG(5QWLG5bz<`#+;{^?R|3Hk&>BRVZIznn?ej2&j! zLph9`EC~7{mzzhHRn^AQ2J4mEZkxZKBI#qCaoIYho9_`cZ4^U~MK=%@K3Yx5xYw`U zSV#B6ND45#JZ@`wfmYq*n4laN(`6G?Pv30Q$ja0uu7+pMjeKG4Aev%y3SS0^tq@U5 zk--8y-hA7KSaR=(9-|%nbngs6#$8MT{TbzfTUGVN=(Y z1wna0hbzGL_Ic8nFG@kO84P}^ZK4Odvg2_bk7F!2=NkX~eWuePV#~O1@nBOt3o9b} zk%n^CiRz(qr6a1eeWjfaNe(YMHv~E7gp~)EdhL)bHT|WKvn)A~h3#mB4Z;5AwwoIw3CoVjrjNoD^j>xnCPj)cC)9kV$J7V! zjWGd=iD#`cYKjAyYvbCeL<56PBzWQ|FIfkf&FxAaw8GiNy7|wIs^8Jl@7F)*V^F(t25 zZ%u=a@2g8qRla%)73`+(pM%GPzMN{()+qJZM$yCIjViMlO;PHT2=5@4z;3weDR;;< znNIRG&G^DMMCgx5U*t}km$_`XCd5T5l7=)!KhXN?w{op=KK%d*t(=6Im)*M<5oT8g z{EP;*gM0g3Y0G08+lXL#qViQsowH(g?(QBdzI3X7IXqRdk17@1fu%<3mQQz!jEJ4f zaM*EnE~zqSXj}%U{ZuYs05+XdNXxg{Hff^+W_#k3qLk8<-%dxf`EZ>_YaI` z#OV*%&#q1i&8hXWJ=YX^H5?ftBbDbFXD5`d1J=`w4U3CI2Z_HJpA{m>S%`+my5SebsriRC-;Sq zJ^dq~NrgrZV>vwKtfE8)QP)sTPA)kUp8)|88URu8P zbc(0Tn^_oSduf%WGYPa2e5LvZ&N#v?2T3WD8Pr*Ci`HCZy<_|lZ4S6~n=`)cuS8L!dj#ctCd z)LmPZZP1X>HLq1Bc|Y2gd@MY1iHrMC!c3ZT{r#0-HV)tzmB_#XrkK`s!CQ+ygOUt)k zH}@mv4)5M5EmlG(IF2aAFqpz`6>I=O63hZ|uf-sH517S-Jc<^VJoqmi{23IAY_B3% z<1E;odJFnN3U5ER31i7RP$RkfnR|z9F^kOaAif^-gp}v2Bqo=4VJjaZEaftMQuYh)lcE(r#0E<}M)j9P=dqu}{-*QcEW?@rAhR$tv~$u?--h7J7F7F{>zY@= zU<>^K344HZx6L#0L$7OsDR}AwxCJ{ulg0Rgo-COcFWvSyn*-L;Qo|OC{mkvNag*$j zbXGxR+E4AG<$TRR_Uqd^6S8vR89-1%#H_p8J@V}imi4_%mQa_iu>hc2WfpA*^QGiP zXOAz~CvGlis5R_Fw$NVb|H33PAD<7-9!;7Umq@(CcM0%dW9~SI|Gk9*tI?W`Pin!d z&sieq!ASAKp;TLs^4qhA&$(~AZbxAjf*(=76$&*g$Eq*k1_g5=iRZz(mn#3s{dWT+ zq7-RWu&KG6rfvbH#HlW+&4Spqc+ii|$NSo=(|*m2a9`eEmw>FgL+)bB;yYpP8OaFp zm>?%96J;U3u<76LWT~RA(p$1x*rH;6qq-p}VUnolm4!!-a$aFp_Ix#1p(5v@C2(y3@);lkTUqTs@ju~&krEsle+4r( zxS3R}X<1ivJ!7?PE%ek*BZCDcMoLykzHX6fQ38VaiOR<5qyD?~h5Q|%Tk(Dk^jUB! zVW7v?mH4dr^ZQ%v?mmPtAqwOTJ@pPaK(_-Ma`2Rh?H@m*WB4Ec)&V0WO!CHj%B*Gw zx;VlkljfHGHOgnEmoZyBGHrGTFq>b^i@;UluGrhaGZOke;P`>O| z94eT3Tv}D-k*}ZxImPB`jnPyxRF>-;4``HHl!zdn)pBUX zqKD~ULQb5n!sDea3Oq$ve*ZRQ?BLfe!f0V6@6uPxq!^>tPwiL)G_K1 zJ8FklXul>b%x!P<7&O#Q#B01euq>HcbiR*Ju16h#@byxv7$GyY2+@zZWGliK5gm0bL ztTE0Dyn}3p#Js$XeG+)}mX=;bNL<{~24TkOH?KcKHqKIz0X+^zUzljO11I?O;>c731D&E^Zi3AF?Cj&7y;je7n6TIkUH zeQPW3r|y7&($C$2NWmT9n+VegOAQmQ8NK{kqZ~CKql#2zb&-j@~0) z?OGgk5$OGPA|rK2nFGg$a&R0N2gCcPs&9?1trTHvyaK)Q97tBN-aj`QGg90W)3@&Fr8)VQG8YSx=%4i2ib3fIH^7w#!a-X_nV) zVJJl#nf5}h~RT;<-~K&6ap3gk2dJ8WjsVM!q&j%O0nkOt&CvR zm7@AAe3_YJ(%l!H_9t1j(w&6oZHoJRjbJvlm7=uPx~c}a|GSC0ncD4W14F~U?oloQ z?m;h8+h=<(6pn#lb%R!kEZU?$hRk;@%-)mSmeN3_tzTS){pe?Aq#dUI+|R_`@kg>! zfx0F_e7t^yS0iSM(B<@SzP{nKrG7-Bs(ZPlb59I|HMBVMAf_fZ?qQ7sRguL}& zqLNd8pu=_riZlj`;M(n9l6o1;a^<;iN!#`sDsAF2%b%%I3Wb3B_@I>(#>+v)&eMVM#UUqqS?S_s z*^8Iu?_5?^0Vt`+D@n;-R*{u00fNw(nI1QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIl?Wk6gXTj zeqY4@{d{(gfRxdShgMv2C4yfAbfY%L*)C7I9P*=z9jIeE1AlADu232I9w3K-VZ))y z#l=e*fh-&5KYyy{pHt@08l`+#5JNMC9x#cD!C{XNHG{07@F%E8t57thZtH| unV4G{n`;{wS{WE@GEtm>q9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywop9bmrz literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/inventory_plus_armor.png b/mods/minetest-3d_armor/3d_armor/textures/inventory_plus_armor.png new file mode 100644 index 0000000000000000000000000000000000000000..f317c709c4c9f97b788c756c63e6eb4bab1e8c6d GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^+km7#f-x7=Hc-(k~epN(~qoUL`OvSj}Ky5YL|!f7A`A)+WFw#P$FG|Bp|wzP=~^ z{0i^On}Y8iDRk#B@AZ{FU1WPCLFYof7ej6N@k|qjQ~Mcio@EI1W%%@r;r~a57q@{L z1(pd!0L@`63GxeOaCmkj4a7O=u<5X=vX`mo`iKnkC z`$H~XA$`^NYb?(Lg|>LQIEGl9K6-(XuUUbIHQ>gCFe|~G{}Zo=mFR3#IX&s^ahJ*e zS2Psw@4C+OYxXgbe{vR=Q@UhZ1Un2{B=$2;@@Ht^+`{DYV&?le17?O-%pBtXn Date: Sun, 15 Dec 2019 18:26:07 -0500 Subject: [PATCH 065/321] Add files via upload --- mods/minetest-3d_armor/3d_armor/README.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor/README.md diff --git a/mods/minetest-3d_armor/3d_armor/README.md b/mods/minetest-3d_armor/3d_armor/README.md new file mode 100644 index 00000000..6aa7ffed --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/README.md @@ -0,0 +1,7 @@ +# Intllib tool + +please consider using the intllib tool to update locale files: + +```../../intllib/tools/xgettext.sh ../**/*.lua``` + +make sure you are in `3d_armor` derectory before running this command -- 2.40.1 From c93a47a659863dba7f57371cad13b20d84025f04 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:26:54 -0500 Subject: [PATCH 066/321] Rename mods/minetest-3d_armor/3d_armor/README.md to mods/minetest-3d_armor/3d_armor/tools/README.md --- mods/minetest-3d_armor/3d_armor/{ => tools}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/3d_armor/{ => tools}/README.md (100%) diff --git a/mods/minetest-3d_armor/3d_armor/README.md b/mods/minetest-3d_armor/3d_armor/tools/README.md similarity index 100% rename from mods/minetest-3d_armor/3d_armor/README.md rename to mods/minetest-3d_armor/3d_armor/tools/README.md -- 2.40.1 From 519786848457683eb30e147b64bfa00d3216b373 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:27:09 -0500 Subject: [PATCH 067/321] Add files via upload --- .../3d_armor/tools/updatepo.sh | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor/tools/updatepo.sh diff --git a/mods/minetest-3d_armor/3d_armor/tools/updatepo.sh b/mods/minetest-3d_armor/3d_armor/tools/updatepo.sh new file mode 100644 index 00000000..52de9908 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor/tools/updatepo.sh @@ -0,0 +1,24 @@ +#! /bin/bash + +# To create a new translation: +# msginit --locale=ll_CC -o locale/ll_CC.po -i locale/template.pot + +cd "$(dirname "${BASH_SOURCE[0]}")/.."; + +# Extract translatable strings. +xgettext --from-code=UTF-8 \ + --language=Lua \ + --sort-by-file \ + --keyword=S \ + --keyword=NS:1,2 \ + --keyword=N_ \ + --add-comments='Translators:' \ + --add-location=file \ + -o locale/template.pot \ + $(find .. -name '*.lua') + +# Update translations. +find locale -name '*.po' | while read -r file; do + echo $file + msgmerge --update $file locale/template.pot; +done -- 2.40.1 From 7a35356061fa5daf26d229b97e30e46edd98f2c3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:28:21 -0500 Subject: [PATCH 068/321] Add files via upload --- mods/minetest-3d_armor/depends.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mods/minetest-3d_armor/depends.txt diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/depends.txt new file mode 100644 index 00000000..e96293b9 --- /dev/null +++ b/mods/minetest-3d_armor/depends.txt @@ -0,0 +1,2 @@ +3d_armor +inventory_plus? -- 2.40.1 From a81fd233af2f8fb4f7e30e21210d4411f3671ab6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:28:50 -0500 Subject: [PATCH 069/321] Rename mods/minetest-3d_armor/depends.txt to mods/minetest-3d_armor/3d_armor_ip/depends.txt --- mods/minetest-3d_armor/{ => 3d_armor_ip}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => 3d_armor_ip}/depends.txt (100%) diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/3d_armor_ip/depends.txt similarity index 100% rename from mods/minetest-3d_armor/depends.txt rename to mods/minetest-3d_armor/3d_armor_ip/depends.txt -- 2.40.1 From cf45fdd3ec9bc4bbbddbdcad968d53b84ca925d5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:29:06 -0500 Subject: [PATCH 070/321] Add files via upload --- .../minetest-3d_armor/3d_armor_ip/LICENSE.txt | 18 +++++++++ .../3d_armor_ip/description.txt | 1 + mods/minetest-3d_armor/3d_armor_ip/init.lua | 38 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor_ip/LICENSE.txt create mode 100644 mods/minetest-3d_armor/3d_armor_ip/description.txt create mode 100644 mods/minetest-3d_armor/3d_armor_ip/init.lua diff --git a/mods/minetest-3d_armor/3d_armor_ip/LICENSE.txt b/mods/minetest-3d_armor/3d_armor_ip/LICENSE.txt new file mode 100644 index 00000000..b924ac07 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_ip/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] 3d Armor integration to inventory plus [3d_armor_ip] +========================================================== + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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/mods/minetest-3d_armor/3d_armor_ip/description.txt b/mods/minetest-3d_armor/3d_armor_ip/description.txt new file mode 100644 index 00000000..01e1b54c --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_ip/description.txt @@ -0,0 +1 @@ +Adds 3d_armor page to the inventory plus diff --git a/mods/minetest-3d_armor/3d_armor_ip/init.lua b/mods/minetest-3d_armor/3d_armor_ip/init.lua new file mode 100644 index 00000000..7701a707 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_ip/init.lua @@ -0,0 +1,38 @@ +-- support for i18n +local S = armor_i18n.gettext +local F = minetest.formspec_escape + +if not minetest.global_exists("inventory_plus") then + minetest.log("warning", S("3d_armor_ip: Mod loaded but unused.")) + return +end + +armor.formspec = "size[8,8.5]button[6,0;2,0.5;main;"..F(S("Back")).."]"..armor.formspec +armor:register_on_update(function(player) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name, true) + local page = player:get_inventory_formspec() + if page:find("detached:"..name.."_armor") then + inventory_plus.set_inventory_formspec(player, formspec) + end +end) + +if minetest.get_modpath("crafting") then + inventory_plus.get_formspec = function(player, page) + end +end + +minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player,"armor", S("Armor")) +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.armor then + local name = armor:get_valid_player(player, "[on_player_receive_fields]") + if not name then + return + end + local formspec = armor:get_armor_formspec(name, true) + inventory_plus.set_inventory_formspec(player, formspec) + end +end) -- 2.40.1 From 018a33fb21fe07a44a10083d5f4202a3d3f6292a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:30:09 -0500 Subject: [PATCH 071/321] Add files via upload --- mods/minetest-3d_armor/depends.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mods/minetest-3d_armor/depends.txt diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/depends.txt new file mode 100644 index 00000000..c7beedae --- /dev/null +++ b/mods/minetest-3d_armor/depends.txt @@ -0,0 +1,2 @@ +3d_armor +sfinv? -- 2.40.1 From 9951ba14855b9311441ad03745b2b1f004e23257 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:30:31 -0500 Subject: [PATCH 072/321] Rename mods/minetest-3d_armor/depends.txt to mods/minetest-3d_armor/3d_armor_sfinv/depends.txt --- mods/minetest-3d_armor/{ => 3d_armor_sfinv}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => 3d_armor_sfinv}/depends.txt (100%) diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/3d_armor_sfinv/depends.txt similarity index 100% rename from mods/minetest-3d_armor/depends.txt rename to mods/minetest-3d_armor/3d_armor_sfinv/depends.txt -- 2.40.1 From bade4c581f6dff9230a655809f41e52ff5dace43 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:30:49 -0500 Subject: [PATCH 073/321] Add files via upload --- .../3d_armor_sfinv/LICENSE.txt | 18 ++++++++++++++++ .../3d_armor_sfinv/description.txt | 1 + .../minetest-3d_armor/3d_armor_sfinv/init.lua | 21 +++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor_sfinv/LICENSE.txt create mode 100644 mods/minetest-3d_armor/3d_armor_sfinv/description.txt create mode 100644 mods/minetest-3d_armor/3d_armor_sfinv/init.lua diff --git a/mods/minetest-3d_armor/3d_armor_sfinv/LICENSE.txt b/mods/minetest-3d_armor/3d_armor_sfinv/LICENSE.txt new file mode 100644 index 00000000..2b2a9f64 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_sfinv/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] 3d Armor sfinv integration [3d_armor_sfinv] +================================================= + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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/mods/minetest-3d_armor/3d_armor_sfinv/description.txt b/mods/minetest-3d_armor/3d_armor_sfinv/description.txt new file mode 100644 index 00000000..0ef2ae93 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_sfinv/description.txt @@ -0,0 +1 @@ +Adds 3d_armor page to the sfinv inventory diff --git a/mods/minetest-3d_armor/3d_armor_sfinv/init.lua b/mods/minetest-3d_armor/3d_armor_sfinv/init.lua new file mode 100644 index 00000000..a9371278 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_sfinv/init.lua @@ -0,0 +1,21 @@ +-- support for i18n +local S = armor_i18n.gettext + +if not minetest.global_exists("sfinv") then + minetest.log("warning", S("3d_armor_sfinv: Mod loaded but unused.")) + return +end + +sfinv.register_page("3d_armor:armor", { + title = S("Armor"), + get = function(self, player, context) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name, true) + return sfinv.make_formspec(player, context, formspec, false) + end +}) +armor:register_on_update(function(player) + if sfinv.enabled then + sfinv.set_player_inventory_formspec(player) + end +end) -- 2.40.1 From 0a8b919df8769b30723984b0a42ad8ed6227d641 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:32:25 -0500 Subject: [PATCH 074/321] Add files via upload --- mods/minetest-3d_armor/depends.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mods/minetest-3d_armor/depends.txt diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/depends.txt new file mode 100644 index 00000000..fdbb2900 --- /dev/null +++ b/mods/minetest-3d_armor/depends.txt @@ -0,0 +1,2 @@ +3d_armor + -- 2.40.1 From 04cd3dd9da3ad090153ab0e7bb6aa3872770451d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:32:57 -0500 Subject: [PATCH 075/321] Rename mods/minetest-3d_armor/depends.txt to mods/minetest-3d_armor/3d_armor_stand/depends.txt --- mods/minetest-3d_armor/{ => 3d_armor_stand}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => 3d_armor_stand}/depends.txt (100%) diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/3d_armor_stand/depends.txt similarity index 100% rename from mods/minetest-3d_armor/depends.txt rename to mods/minetest-3d_armor/3d_armor_stand/depends.txt -- 2.40.1 From 6973dac7547cabfc43d992867883c2604fbcb492 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:33:27 -0500 Subject: [PATCH 076/321] Add files via upload --- .../3d_armor_stand/LICENSE.txt | 43 +++ .../3d_armor_stand/README.txt | 21 ++ .../minetest-3d_armor/3d_armor_stand/init.lua | 353 ++++++++++++++++++ 3 files changed, 417 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor_stand/LICENSE.txt create mode 100644 mods/minetest-3d_armor/3d_armor_stand/README.txt create mode 100644 mods/minetest-3d_armor/3d_armor_stand/init.lua diff --git a/mods/minetest-3d_armor/3d_armor_stand/LICENSE.txt b/mods/minetest-3d_armor/3d_armor_stand/LICENSE.txt new file mode 100644 index 00000000..e3cb55d6 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/LICENSE.txt @@ -0,0 +1,43 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +License Source Code +------------------- + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. + +Lecense Models +-------------- + +Copyright (C) 2016-2019 Stuart Jones - CC BY-SA 3.0 + +UV model mapping by tobyplowy(aka toby109tt) + +License Textures +---------------- + +3d_armor_stand.png +3d_armor_stand_locked.png + +Copyright (C) 2017-2019 tobyplowy - CC BY-SA 3.0 + +3d_armor_stand_feet.png +3d_armor_stand_head.png +3d_armor_stand_legs.png +3d_armor_stand_torso.png + +Copyright (C) 2016-2019 Stuart Jones - CC BY-SA 3.0 diff --git a/mods/minetest-3d_armor/3d_armor_stand/README.txt b/mods/minetest-3d_armor/3d_armor_stand/README.txt new file mode 100644 index 00000000..6a98ab99 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/README.txt @@ -0,0 +1,21 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +Depends: 3d_armor + +Adds a chest-like armor stand for armor storage and display. + +Crafting +-------- + +F = Wooden Fence [default:fence_wood] +S = Steel Ingot [default:steel_ingot] + ++---+---+---+ +| | F | | ++---+---+---+ +| | F | | ++---+---+---+ +| S | S | S | ++---+---+---+ + diff --git a/mods/minetest-3d_armor/3d_armor_stand/init.lua b/mods/minetest-3d_armor/3d_armor_stand/init.lua new file mode 100644 index 00000000..1dd3ef6c --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/init.lua @@ -0,0 +1,353 @@ +-- support for i18n +local S = armor_i18n.gettext + +local armor_stand_formspec = "size[8,7]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + default.get_hotbar_bg(0,3) .. + "list[current_name;armor_head;3,0.5;1,1;]" .. + "list[current_name;armor_torso;4,0.5;1,1;]" .. + "list[current_name;armor_legs;3,1.5;1,1;]" .. + "list[current_name;armor_feet;4,1.5;1,1;]" .. + "image[3,0.5;1,1;3d_armor_stand_head.png]" .. + "image[4,0.5;1,1;3d_armor_stand_torso.png]" .. + "image[3,1.5;1,1;3d_armor_stand_legs.png]" .. + "image[4,1.5;1,1;3d_armor_stand_feet.png]" .. + "list[current_player;main;0,3;8,1;]" .. + "list[current_player;main;0,4.25;8,3;8]" + +local elements = {"head", "torso", "legs", "feet"} + +local function drop_armor(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + local stack = inv:get_stack("armor_"..element, 1) + if stack and stack:get_count() > 0 then + armor.drop_armor(pos, stack) + inv:set_stack("armor_"..element, 1, nil) + end + end +end + +local function get_stand_object(pos) + local object = nil + local objects = minetest.get_objects_inside_radius(pos, 0.5) or {} + for _, obj in pairs(objects) do + local ent = obj:get_luaentity() + if ent then + if ent.name == "3d_armor_stand:armor_entity" then + -- Remove duplicates + if object then + obj:remove() + else + object = obj + end + end + end + end + return object +end + +local function update_entity(pos) + local node = minetest.get_node(pos) + local object = get_stand_object(pos) + if object then + if not string.find(node.name, "3d_armor_stand:") then + object:remove() + return + end + else + object = minetest.add_entity(pos, "3d_armor_stand:armor_entity") + end + if object then + local texture = "3d_armor_trans.png" + local textures = {} + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local yaw = 0 + if inv then + for _, element in pairs(elements) do + local stack = inv:get_stack("armor_"..element, 1) + if stack:get_count() == 1 then + local item = stack:get_name() or "" + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups["armor_"..element] then + if def.texture then + table.insert(textures, def.texture) + else + table.insert(textures, item:gsub("%:", "_")..".png") + end + end + end + end + end + if #textures > 0 then + texture = table.concat(textures, "^") + end + if node.param2 then + local rot = node.param2 % 4 + if rot == 1 then + yaw = 3 * math.pi / 2 + elseif rot == 2 then + yaw = math.pi + elseif rot == 3 then + yaw = math.pi / 2 + end + end + object:setyaw(yaw) + object:set_properties({textures={texture}}) + end +end + +local function has_locked_armor_stand_privilege(meta, player) + local name = "" + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + name = player:get_player_name() + end + if name ~= meta:get_string("owner") then + return false + end + return true +end + +local function add_hidden_node(pos, player) + local p = {x=pos.x, y=pos.y + 1, z=pos.z} + local name = player:get_player_name() + local node = minetest.get_node(p) + if node.name == "air" and not minetest.is_protected(pos, name) then + minetest.set_node(p, {name="3d_armor_stand:top"}) + end +end + +local function remove_hidden_node(pos) + local p = {x=pos.x, y=pos.y + 1, z=pos.z} + local node = minetest.get_node(p) + if node.name == "3d_armor_stand:top" then + minetest.remove_node(p) + end +end + +minetest.register_node("3d_armor_stand:top", { + description = S("Armor stand top"), + paramtype = "light", + drawtype = "plantlike", + sunlight_propagates = true, + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_blast = function() end, + tiles = {"3d_armor_trans.png"}, +}) + +minetest.register_node("3d_armor_stand:armor_stand", { + description = S("Armor stand"), + drawtype = "mesh", + mesh = "3d_armor_stand.obj", + tiles = {"3d_armor_stand.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25}, + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", armor_stand_formspec) + meta:set_string("infotext", S("Armor Stand")) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + inv:set_size("armor_"..element, 1) + end + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + if not inv:is_empty("armor_"..element) then + return false + end + end + return true + end, + after_place_node = function(pos, placer) + minetest.add_entity(pos, "3d_armor_stand:armor_entity") + add_hidden_node(pos, placer) + end, + allow_metadata_inventory_put = function(pos, listname, index, stack) + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups[listname] then + return 1 + end + return 0 + end, + allow_metadata_inventory_move = function(pos) + return 0 + end, + on_metadata_inventory_put = function(pos) + update_entity(pos) + end, + on_metadata_inventory_take = function(pos) + update_entity(pos) + end, + after_destruct = function(pos) + update_entity(pos) + remove_hidden_node(pos) + end, + on_blast = function(pos) + drop_armor(pos) + armor.drop_armor(pos, "3d_armor_stand:armor_stand") + minetest.remove_node(pos) + end, +}) + +minetest.register_node("3d_armor_stand:locked_armor_stand", { + description = S("Locked Armor stand"), + drawtype = "mesh", + mesh = "3d_armor_stand.obj", + tiles = {"3d_armor_stand_locked.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25}, + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", armor_stand_formspec) + meta:set_string("infotext", S("Armor Stand")) + meta:set_string("owner", "") + local inv = meta:get_inventory() + for _, element in pairs(elements) do + inv:set_size("armor_"..element, 1) + end + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + if not inv:is_empty("armor_"..element) then + return false + end + end + return true + end, + after_place_node = function(pos, placer) + minetest.add_entity(pos, "3d_armor_stand:armor_entity") + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner"))) + add_hidden_node(pos, placer) + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_armor_stand_privilege(meta, player) then + return 0 + end + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups[listname] then + return 1 + end + return 0 + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_armor_stand_privilege(meta, player) then + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_move = function(pos) + return 0 + end, + on_metadata_inventory_put = function(pos) + update_entity(pos) + end, + on_metadata_inventory_take = function(pos) + update_entity(pos) + end, + after_destruct = function(pos) + update_entity(pos) + remove_hidden_node(pos) + end, + on_blast = function(pos) + -- Not affected by TNT + end, +}) + +minetest.register_entity("3d_armor_stand:armor_entity", { + physical = true, + visual = "mesh", + mesh = "3d_armor_entity.obj", + visual_size = {x=1, y=1}, + collisionbox = {0,0,0,0,0,0}, + textures = {"3d_armor_trans.png"}, + pos = nil, + timer = 0, + on_activate = function(self) + local pos = self.object:get_pos() + if pos then + self.pos = vector.round(pos) + update_entity(pos) + end + end, + on_blast = function(self, damage) + local drops = {} + local node = minetest.get_node(self.pos) + if node.name == "3d_armor_stand:armor_stand" then + drop_armor(self.pos) + self.object:remove() + end + return false, false, drops + end, +}) + +minetest.register_abm({ + nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:armor_stand"}, + interval = 15, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local num + num = #minetest.get_objects_inside_radius(pos, 0.5) + if num > 0 then return end + update_entity(pos) + end +}) + +minetest.register_craft({ + output = "3d_armor_stand:armor_stand", + recipe = { + {"", "group:fence", ""}, + {"", "group:fence", ""}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "3d_armor_stand:locked_armor_stand", + recipe = { + {"3d_armor_stand:armor_stand", "default:steel_ingot"}, + } +}) -- 2.40.1 From 1191778ff440011709595bf0d4199547e032e36a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:41:43 -0500 Subject: [PATCH 077/321] Create main --- mods/minetest-3d_armor/3d_armor_stand/models/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/minetest-3d_armor/3d_armor_stand/models/main diff --git a/mods/minetest-3d_armor/3d_armor_stand/models/main b/mods/minetest-3d_armor/3d_armor_stand/models/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/models/main @@ -0,0 +1 @@ + -- 2.40.1 From 8bcb808585e2915fe07c20a2bc4b7066384dbc37 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:42:24 -0500 Subject: [PATCH 078/321] Add files via upload --- .../3d_armor_stand/models/3d_armor_entity.obj | 193 ++++++++++++ .../3d_armor_stand/models/3d_armor_stand.obj | 280 ++++++++++++++++++ .../3d_armor_stand/models/3d_armor_stand.png | Bin 0 -> 1628 bytes .../models/3d_armor_stand_locked.png | Bin 0 -> 1992 bytes 4 files changed, 473 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_entity.obj create mode 100644 mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.obj create mode 100644 mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.png create mode 100644 mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand_locked.png diff --git a/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_entity.obj b/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_entity.obj new file mode 100644 index 00000000..052f6925 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_entity.obj @@ -0,0 +1,193 @@ +# Blender v2.73 (sub 0) OBJ File: '3d_armor_entity_3.blend' +# www.blender.org +mtllib 3d_armor_entity.mtl +o Player_Cube +v 2.200000 9.763893 1.200000 +v 2.200000 9.763893 -1.200000 +v 2.200000 2.663871 1.200000 +v 2.200000 2.663871 -1.200000 +v -2.200000 9.763893 -1.200000 +v -2.200000 9.763893 1.200000 +v -2.200000 2.663871 -1.200000 +v -2.200000 2.663871 1.200000 +v 2.300000 13.863962 2.300000 +v 2.300000 13.863962 -2.300000 +v 2.300000 9.263885 2.300000 +v 2.300000 9.263885 -2.300000 +v -2.300000 13.863962 -2.300000 +v -2.300000 13.863962 2.300000 +v -2.300000 9.263885 -2.300000 +v -2.300000 9.263885 2.300000 +v -2.322686 2.473175 -1.300000 +v -2.322686 2.473175 1.300000 +v -4.713554 2.682348 1.300000 +v -4.713554 2.682348 -1.300000 +v -1.686446 9.745432 -1.300000 +v -1.686446 9.745432 1.300000 +v -4.077313 9.954605 1.300000 +v -4.077313 9.954605 -1.300000 +v 4.077313 9.954605 -1.300000 +v 4.077313 9.954605 1.300000 +v 1.686446 9.745432 1.300000 +v 1.686446 9.745432 -1.300000 +v 4.713554 2.682348 -1.300000 +v 4.713554 2.682348 1.300000 +v 2.322686 2.473175 1.300000 +v 2.322686 2.473175 -1.300000 +v 0.139099 2.938947 -1.200000 +v 0.139099 2.938947 1.200000 +v 0.261266 -4.059988 1.200000 +v 0.261266 -4.059988 -1.200000 +v 2.660901 -4.018101 1.190000 +v 2.660901 -4.018101 -1.210000 +v 2.538733 2.980834 1.190000 +v 2.538733 2.980834 -1.210000 +v -0.139099 2.938947 -1.200000 +v -0.139099 2.938947 1.200000 +v -0.261266 -4.059988 1.200000 +v -0.261266 -4.059988 -1.200000 +v -2.538734 2.980834 -1.210000 +v -2.538734 2.980834 1.190000 +v -2.660901 -4.018101 -1.210000 +v -2.660901 -4.018101 1.190000 +v -2.799999 -4.387500 1.390000 +v -2.799999 -4.387500 -1.410000 +v -2.800000 -0.812499 1.390000 +v -2.800000 -0.812499 -1.410000 +v -0.000000 -4.387500 -1.400000 +v -0.000000 -4.387500 1.400000 +v -0.000000 -0.812499 1.400000 +v -0.000000 -0.812499 -1.400000 +v 2.800000 -0.812499 -1.410000 +v 2.800000 -0.812499 1.390000 +v 2.799999 -4.387500 -1.410000 +v 2.799999 -4.387500 1.390000 +v 0.000000 -4.387500 -1.400000 +v 0.000000 -4.387500 1.400000 +v 0.000000 -0.812499 1.400000 +v 0.000000 -0.812499 -1.400000 +v 2.267006 13.830965 2.267006 +v 2.267006 13.830965 -2.267006 +v 2.267006 9.296881 2.267006 +v 2.267006 9.296881 -2.267006 +v -2.267006 13.830965 -2.267006 +v -2.267006 13.830965 2.267006 +v -2.267006 9.296881 -2.267006 +v -2.267006 9.296881 2.267006 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.312500 0.000000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.375000 +vt 0.625000 0.000000 +vt 0.625000 0.375000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.750000 0.750000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 0.500000 +vt 0.750000 0.375000 +vt 0.812500 0.500000 +vt 0.812500 0.375000 +vt 0.687500 0.375000 +vt 0.687500 0.500000 +vt 0.687500 0.000000 +vt 0.750000 0.000000 +vt 0.812500 0.000000 +vt 0.875000 0.375000 +vt 0.875000 0.000000 +vt 0.125000 0.375000 +vt 0.062500 0.375000 +vt 0.062500 0.500000 +vt 0.125000 0.500000 +vt 0.187500 0.375000 +vt 0.187500 0.500000 +vt 0.000000 0.375000 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.187500 0.000000 +vt 0.125000 0.000000 +vt 0.437500 0.875000 +vt 0.437500 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.875000 +vt 0.250000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.656250 +vt 0.250000 0.656250 +vt 0.500000 0.875000 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.375000 0.656250 +vt 0.312500 1.000000 +usemtl Armor +s off +f 1/1 3/2 4/3 2/4 +f 5/5 6/6 1/7 2/4 +f 8/6 7/5 4/8 3/9 +f 5/5 2/4 4/3 7/10 +f 7/10 8/11 6/12 5/5 +f 8/11 3/13 1/14 6/12 +f 9/15 11/16 12/17 10/18 +f 13/19 14/20 9/21 10/18 +f 12/22 11/23 16/20 15/19 +f 13/19 10/18 12/17 15/24 +f 14/22 13/19 15/24 16/25 +f 9/26 14/22 16/25 11/27 +f 17/28 18/24 19/29 20/30 +f 24/31 23/32 22/24 21/28 +f 23/31 24/14 20/13 19/33 +f 24/31 21/28 17/34 20/33 +f 21/28 22/30 18/35 17/34 +f 22/30 23/36 19/37 18/35 +f 27/30 31/35 30/37 26/36 +f 28/28 32/34 31/35 27/30 +f 25/31 29/33 32/34 28/28 +f 26/31 30/33 29/13 25/14 +f 25/31 28/28 27/24 26/32 +f 32/28 29/30 30/29 31/24 +f 40/38 33/39 34/40 39/41 +f 36/42 38/38 37/41 35/43 +f 39/44 37/45 38/46 40/39 +f 34/1 35/2 37/47 39/42 +f 40/38 38/48 36/46 33/39 +f 33/42 36/47 35/48 34/38 +f 45/38 46/41 42/40 41/39 +f 41/42 42/38 43/48 44/47 +f 45/38 41/39 44/46 47/48 +f 42/1 46/42 48/47 43/2 +f 46/44 45/39 47/46 48/45 +f 44/42 43/43 48/41 47/38 +f 53/49 54/50 49/51 50/52 +f 51/53 52/54 50/55 49/56 +f 55/57 51/49 49/58 54/59 +f 52/52 56/54 53/55 50/60 +f 56/49 55/52 54/60 53/58 +f 52/52 51/51 55/61 56/54 +f 64/49 61/58 62/60 63/52 +f 57/52 59/60 61/55 64/54 +f 63/57 62/59 60/58 58/49 +f 58/53 60/56 59/55 57/54 +f 61/49 59/52 60/51 62/50 +f 57/52 64/54 63/61 58/51 +f 65/15 66/18 68/17 67/16 +f 69/19 66/18 65/21 70/20 +f 68/22 71/19 72/20 67/23 +f 69/19 71/24 68/17 66/18 +f 70/22 72/25 71/24 69/19 +f 65/26 67/27 72/25 70/22 diff --git a/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.obj b/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.obj new file mode 100644 index 00000000..0df6dc78 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.obj @@ -0,0 +1,280 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib 3d_armor_stand.mtl +o Armor_Stand_Player_Cube_Stand +v 0.062500 0.125002 -0.062500 +v 0.062500 -0.437500 -0.062500 +v 0.062500 -0.437500 0.062500 +v 0.062500 0.125002 0.062500 +v -0.187500 0.250004 0.062500 +v -0.187500 0.250004 -0.062500 +v -0.250000 0.250004 -0.062500 +v -0.250000 0.250004 0.062500 +v -0.062500 -0.437500 -0.062500 +v -0.062500 -0.437500 0.062500 +v -0.187500 -0.437500 0.062500 +v -0.187500 -0.437500 -0.062500 +v -0.187500 0.125002 0.062500 +v -0.187500 0.125002 -0.062500 +v -0.187500 0.937504 0.062500 +v -0.187500 0.937504 -0.062500 +v -0.375000 0.937504 -0.062500 +v -0.375000 0.937504 0.062500 +v -0.062500 0.125002 0.062500 +v 0.187500 0.125002 -0.062500 +v 0.187500 -0.437500 -0.062500 +v -0.062500 0.125002 -0.062500 +v -0.250000 0.125007 -0.062500 +v -0.250000 0.125007 0.062500 +v 0.187500 -0.437500 0.062500 +v 0.187500 0.125002 0.062500 +v -0.062500 0.937504 0.062500 +v -0.187500 0.812504 0.062500 +v -0.062500 0.812504 0.062500 +v -0.062500 0.937504 -0.062500 +v 0.187500 0.250004 -0.062500 +v 0.187500 0.250004 0.062500 +v 0.250000 0.250004 0.062500 +v 0.250000 0.250004 -0.062500 +v 0.250000 0.125007 0.062500 +v 0.250000 0.125007 -0.062500 +v 0.187500 0.812504 0.062500 +v 0.187500 0.812504 -0.062500 +v 0.375000 0.812504 -0.062500 +v 0.375000 0.812504 0.062500 +v 0.187500 0.937504 -0.062500 +v 0.187500 0.937504 0.062500 +v 0.375000 0.937504 0.062500 +v 0.375000 0.937504 -0.062500 +v 0.062500 0.937504 -0.062500 +v 0.062500 0.937504 0.062500 +v -0.062500 0.812504 -0.062500 +v -0.187500 0.812504 -0.062500 +v 0.062500 0.812504 -0.062500 +v 0.062500 0.812504 0.062500 +v -0.375000 0.812504 -0.062500 +v -0.375000 0.812504 0.062500 +v -0.062500 0.250004 0.062500 +v 0.062500 0.250004 0.062500 +v 0.062500 0.250004 -0.062500 +v -0.062500 0.250004 -0.062500 +v -0.062500 1.312504 -0.062500 +v 0.062500 1.312504 -0.062500 +v -0.062500 1.312504 0.062500 +v 0.062500 1.312504 0.062500 +v -0.500000 -0.437500 -0.500000 +v -0.500000 -0.437500 0.500000 +v 0.500000 -0.437500 0.500000 +v 0.500000 -0.437500 -0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +vt 0.062500 0.140625 +vt 0.062500 0.000000 +vt 0.093750 0.000000 +vt 0.093750 0.140625 +vt 0.140625 0.234375 +vt 0.140625 0.203125 +vt 0.156250 0.203125 +vt 0.156250 0.234375 +vt 0.093750 0.171875 +vt 0.062500 0.171875 +vt 0.218750 0.140625 +vt 0.187500 0.140625 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.078125 0.437500 +vt 0.078125 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.437500 +vt 0.250000 0.140625 +vt 0.250000 0.000000 +vt 0.031250 0.140625 +vt 0.031250 0.000000 +vt 0.156250 0.140625 +vt 0.156250 0.000000 +vt 0.187500 0.203125 +vt 0.156250 0.171875 +vt 0.187500 0.171875 +vt 0.125000 0.000000 +vt 0.125000 0.140625 +vt 0.000000 0.140625 +vt 0.000000 0.000000 +vt 0.328125 0.437500 +vt 0.296875 0.437500 +vt 0.296875 0.406250 +vt 0.328125 0.406250 +vt 0.109375 0.437500 +vt 0.109375 0.468750 +vt 0.046875 0.203125 +vt 0.046875 0.234375 +vt 0.031250 0.234375 +vt 0.031250 0.203125 +vt 0.000000 0.203125 +vt 0.000000 0.171875 +vt 0.031250 0.171875 +vt 0.265625 0.468750 +vt 0.265625 0.437500 +vt 0.218750 0.437500 +vt 0.218750 0.468750 +vt 0.218750 0.171875 +vt 0.171875 0.468750 +vt 0.171875 0.437500 +vt 0.078125 0.406250 +vt 0.031250 0.406250 +vt 0.140625 0.468750 +vt 0.140625 0.437500 +vt 0.140625 0.406250 +vt 0.171875 0.406250 +vt 0.109375 0.406250 +vt 0.359375 0.437500 +vt 0.359375 0.406250 +vt 0.390625 0.406250 +vt 0.390625 0.437500 +vt 0.437500 0.406250 +vt 0.437500 0.437500 +vt 0.000000 0.437500 +vt 0.000000 0.406250 +vt 0.250000 0.437500 +vt 0.218750 0.406250 +vt 0.250000 0.406250 +vt 0.359375 0.468750 +vt 0.406250 0.468750 +vt 0.406250 0.437500 +vt 0.109375 0.234375 +vt 0.078125 0.234375 +vt 0.078125 0.203125 +vt 0.109375 0.203125 +vt 0.062500 0.468750 +vt 0.062500 0.562500 +vt 0.031250 0.562500 +vt 0.328125 0.468750 +vt 0.296875 0.468750 +vt 0.062500 0.593750 +vt 0.031250 0.593750 +vt 0.093750 0.468750 +vt 0.093750 0.562500 +vt 0.125000 0.468750 +vt 0.125000 0.562500 +vt 0.000000 0.562500 +vt 0.000000 0.468750 +vt 0.078125 0.171875 +vt 0.046875 0.171875 +vt 0.265625 0.203125 +vt 0.265625 0.171875 +vt 0.296875 0.171875 +vt 0.296875 0.203125 +vt 0.265625 0.234375 +vt 0.281250 0.234375 +vt 0.281250 0.203125 +vt 0.312500 0.171875 +vt 0.312500 0.203125 +vt 0.140625 0.171875 +vt 0.171875 0.234375 +vt 0.171875 0.203125 +vt 0.109375 0.171875 +vt 0.234375 0.203125 +vt 0.203125 0.203125 +vt 0.203125 0.171875 +vt 0.234375 0.171875 +vt 0.234375 0.234375 +vt 0.203125 0.234375 +vt 0.062500 0.375000 +vt 0.062500 0.234375 +vt 0.093750 0.234375 +vt 0.093750 0.375000 +vt 0.031250 0.375000 +vt 0.125000 0.234375 +vt 0.125000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.234375 +vt 0.218750 0.375000 +vt 0.187500 0.375000 +vt 0.187500 0.234375 +vt 0.218750 0.234375 +vt 0.250000 0.375000 +vt 0.250000 0.234375 +vt 0.156250 0.375000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 0.750000 0.750000 +vt 0.750000 1.000000 +vt 0.750000 0.734375 +vt 1.000000 0.734375 +vt 1.000000 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.734375 +vt 0.250000 0.734375 +vt 0.500000 0.734375 +usemtl Stand +s off +f 1/1 2/2 3/3 4/4 +f 5/5 6/6 7/7 8/8 +f 9/1 10/4 11/9 12/10 +f 13/11 14/12 12/13 11/14 +f 15/15 16/16 17/17 18/18 +f 19/19 13/11 11/14 10/20 +f 2/2 1/1 20/21 21/22 +f 14/12 22/23 9/24 12/13 +f 8/25 7/7 23/26 24/27 +f 4/4 3/3 25/28 26/29 +f 22/23 19/29 10/28 9/24 +f 26/30 25/31 21/22 20/21 +f 27/32 15/33 28/34 29/35 +f 16/16 15/15 27/36 30/37 +f 31/38 32/39 33/40 34/41 +f 33/42 35/43 36/44 34/41 +f 37/45 38/46 39/47 40/48 +f 2/49 21/27 25/12 3/11 +f 41/50 42/51 43/47 44/48 +f 38/52 41/15 44/18 39/53 +f 41/50 45/54 46/55 42/51 +f 16/51 30/55 47/56 48/57 +f 41/15 38/52 49/58 45/36 +f 46/59 50/60 37/61 42/62 +f 42/62 37/61 40/63 43/64 +f 43/65 40/66 39/53 44/18 +f 18/67 17/47 51/68 52/69 +f 28/34 15/33 18/67 52/69 +f 16/51 48/57 51/68 17/47 +f 48/59 28/70 52/71 51/72 +f 53/73 54/74 55/75 56/76 +f 30/77 57/78 58/79 45/17 +f 50/60 46/59 27/32 29/35 +f 29/80 47/32 49/33 50/81 +f 47/56 30/55 45/36 49/58 +f 57/78 59/82 60/83 58/79 +f 27/84 59/85 57/78 30/77 +f 46/86 60/87 59/85 27/84 +f 45/17 58/79 60/88 46/89 +f 1/90 55/75 31/38 20/91 +f 54/92 4/93 26/94 32/95 +f 26/92 20/96 36/97 35/98 +f 20/91 31/38 34/41 36/44 +f 32/95 26/94 35/99 33/100 +f 6/6 14/101 23/26 7/7 +f 14/102 13/103 24/7 23/8 +f 6/6 56/76 22/104 14/101 +f 53/105 5/106 13/107 19/108 +f 13/107 5/106 8/25 24/27 +f 1/90 22/104 56/76 55/75 +f 53/105 19/108 4/93 54/92 +f 1/109 4/105 19/106 22/110 +f 49/111 55/112 54/113 50/114 +f 38/115 31/40 55/112 49/111 +f 50/114 54/113 32/116 37/117 +f 37/118 32/119 31/40 38/115 +f 28/120 48/121 6/122 5/123 +f 29/124 28/120 5/123 53/125 +f 48/121 47/126 56/8 6/122 +f 47/126 29/117 53/116 56/8 +usemtl Base +f 61/127 62/128 63/129 64/130 +f 65/129 66/131 67/132 68/130 +f 62/131 68/133 67/134 63/135 +f 63/136 67/137 66/138 64/128 +f 61/129 64/128 66/138 65/139 +f 62/131 61/129 65/139 68/133 diff --git a/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.png b/mods/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb26de9d803bcbf7890390ccbcee527361cfe1a GIT binary patch literal 1628 zcmV-i2BZ0jP)zV5HGJAW%*B(^K`<`}I_hpd#+wyXRiMdH~IncZy#c3 za|a7@W(X=^FzjPfORv|f%%8Xc+U+*ZI-IlAY9Xn1IO&RsJLf>AC_kjzA0X@irF>9X z0RzK6Azy}iB4{D~U?U@#oeZnyC~g%A?ud01!BS~Ey3 z-ENF^7NtCtr*PI`t>fIebH59Jq9I_6Aq+yKkXV}{gg{D*j_CT7Zq{*|MDkp z0IfArO7tLQuI3S^l0ni3Ahqd!o@f(Ab&_@uwcqJkXEEAT=1<%J=g*(VIfs)eKgWIS zeoY?^2Bg*y$2}TvWL{E>YFO(qCfh~jE9U3tEAc0u1fM*4f|MSfvj`+oitNvmcv4Xd zYuS#aX|cF4s1XJ=c6W9w^G`$$c=&L0BqV&_NBIh)4efTDMx#Ni)gp=_=H}*TwOTAM zFSEF~h}OCizbeF}_57syGt4l<3^U9y!wfUr+*o%vH`d)*TX&%au3oO=dES}Zcyag6 zb@yQF1wU+c`19Hu#f8mhF>n9z0)PMfUt*dKFd~PqtTwr_+B{PpFk%4TllYz_jONdd z0d#85Wb79Pc+rY^b7cu%Ns_)kdj_!9;d@yme1CsCD-ANsdxNAq{Z*jc2OM>SF1@Yw zl`KBX{|ETTKOc$w8QNIB`tGqPKePPViR}Y!yt~eWtrsID@O4;gHj4XmhPC8{h@I6 z&1W$;-dzWvtQ}5TO#g0LATM*}q_(xwX8iuC*8*WQ&*rnEe~y+XzNs<5ILt6PRL`eP zJIHdEH?9TVTv;lNkYn1kgUomJC@tW7l1s}ABZQ;0!>Kkv7|rwe=?(y^%?O=Znv3<~ zhUY)MI+ncJjHW9Gs32me6^|shG))h#?|Vk>`qR+q9ZG^`|5q5f3M^NI+%u-Z^$*G6 z+qbT{@df9*-dwB~VRGE{k3Rk8R5nC~#yP0<@sZ~N2l_ug_PpR!dcfT~*Z-%NAv(2% zHvqh~c5&qTho5|XsysnG*m}YEdBCrseE&HA)Z^}*>+W@4@!7}kxX(U*XKG%d9XjXu z^4rbV67E0TWtyP!-Ms&Bm+ODK!t=c@|9Sd~n;Yvc*8sU3&c|!b2HIHn!FyLvUCbZq z1IjVK)50{zJY^~jFfMka6vYnbp^$5Xd|b54Q{V}5T+m!xtn=gc9@^L<6!MO*JO=o2 zd++ocV7#>Xo*YqtuPq_dpaus?m#dfS$F{xWW1ZTmdTFY{Xuep`TC*{7vE1{Ik59V@ a%JE-LjdXE6c;~f7=T)} zMmzXdUwPGOXZ*5V0zA)Sa`Fh;Sgf%~3`j{78LG8P{7)PoFK|rr?ISu?E9 zm<#cw7Y}%4MFDE{8kI_=ZG6WGn7=z84?Z$T&rb)ROe9`42Wu^XA7G58QmJ5!VQ_G; zZG5}db`03Lb0^wZ0RD055^}|b`}_OTHuvw}C!f#r@Zm#7_l!~~6foLQtyVMmHp0j>ns%fyU zqFgTH3KvJj6KKT?A&5kiNR#O!!CDMDvKf5GV?eoFPSeux@Gy=eXf~TzYtx@E9C~|t zP)gC?-;eZMj4>=NEoJb=7<|vq^wEkn#u5a62H$ZH0BAHDG#gE-)hg0;sYeQ>RBN?> zs#h@9#1l3aV=RS20i{%mFBEpfgUa-=ij~qux-uoBP$+bsfGCOx`~cwydU|@edFv*% zYAw^|(W6HU4i2UsP_Nf9D|@^ZZ;Zxq9E5NQ{D6AB0VtYEA%sJi3yE};!FQa1d_E6= z@B2(lOkkrX!V8GBCW>M&a9x*3X{6_(lp<0Q!V!c$VY-if-^W^uQ4NF_ppC&1V5}hs zd?KZZbd-8lg6}v1N-2a8sD`E|=TgyvMy(EjHhLvalnBFKYNcwLCXF>jDry_waRPSi z*bxUip?OrPV^(r{v(Z4Ch)ShOzCZSoT$sZcn|g-yBz=8-ZQ(nf1#aECg%B>TH8==_ zaN?gUaD^lnu$M)cg~(ZYG>x|ac!>5=f+oGWzXKJaOk;Ve*Bw{oNgu{BZnu(Mwl2I*-{>m zA;5D5o+}8#zO6%m(q>EU{gi-v#R|`k4&q5ct**8n0mfK7H{J;srsw0-AmX^!s4aJY z7D)b>n)=X2TJgIx-%B5!_{s0VSbll>J8_JVf;UdRiz5X8p1F=T5r6;V&(rpk$KC{M z`QYqN)AnEe=1CBOeZ_ob~HW`zq_y1LoQ$b=Q`ZQOP99w#V*`FWBeDck}-F*^CyrHdp5J zpWT(F!`VBPG~l&rhqvFmx~a9oW3_-M#kyKxZlT25_Fb<9g0PR-I~yNIOA4s2Az-aV z&G?|hq32dVBXyg0ND0_T3p_hIn39lKw`m8Ftm;Nuz;gwAhIVEE8)=74O+XO#@#*aa z0LDf_ls1eE^rj8&-hcR5@YqP$T`@rVAq&MyCb((6TE{1zk+{C}yNm#UXyp`!N)9Zy zWQ4>sy216=$>CG4zhJ+9;QWiI^bGyq@t##>kn3m^T0Pj4^qr03s$`-4qc5T$Z> z_D+SbELX9PVETG|_U4PO#X<7tsT+7wJn{La^?X8EUoDO z;?8TC>%>YkGiiL7nY%~v%9Z&3no@aF+S$`bZL3$TwKFFU+cPH)cg-iXb;so1KR^3K zK(hb4hJa)>r>`$^^u-D8E-mw)+YdQ5xz8pVAd$n#_4r606&d^5k^P%)&#$WkTIKFS zF;;zFIyCxt#*#8wimvbg(W>l{A}Gvx88z6d4o3!hQ|-_d1gsT1t#*5%Mx(ZzzWBJk zP{VUY>M318z*?~*gp;mtvK10-kX)zbau;}lSSx6D5Ac|s literal 0 HcmV?d00001 -- 2.40.1 From 204e1d2e47497679e248331c3f367b4371b24e20 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:42:40 -0500 Subject: [PATCH 079/321] Delete main --- mods/minetest-3d_armor/3d_armor_stand/models/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/minetest-3d_armor/3d_armor_stand/models/main diff --git a/mods/minetest-3d_armor/3d_armor_stand/models/main b/mods/minetest-3d_armor/3d_armor_stand/models/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/minetest-3d_armor/3d_armor_stand/models/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From e2638b858c9bb9370f9b316d8ef9779585fcde99 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:43:02 -0500 Subject: [PATCH 080/321] Create main --- mods/minetest-3d_armor/3d_armor_stand/textures/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/main diff --git a/mods/minetest-3d_armor/3d_armor_stand/textures/main b/mods/minetest-3d_armor/3d_armor_stand/textures/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_stand/textures/main @@ -0,0 +1 @@ + -- 2.40.1 From 0f20373e5b1aa7ec2ff36cb027f3b684447eb159 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:43:32 -0500 Subject: [PATCH 081/321] Add files via upload --- .../textures/3d_armor_stand_feet.png | Bin 0 -> 160 bytes .../textures/3d_armor_stand_head.png | Bin 0 -> 164 bytes .../textures/3d_armor_stand_legs.png | Bin 0 -> 159 bytes .../textures/3d_armor_stand_shield.png | Bin 0 -> 166 bytes .../textures/3d_armor_stand_torso.png | Bin 0 -> 191 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png create mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png create mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png create mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_shield.png create mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png diff --git a/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png b/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png new file mode 100644 index 0000000000000000000000000000000000000000..6b34d666170181f0151c150d0ac5ecc73ac56e55 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-dBg(*J||{XR#ZqNNXROjR+K)`vT%}%K@5)re`*qg z4?nlg7f(imuY7!b|Jm($Bnp4ZTW&Qpm>}-=g^}U^X2}8#CZi~z6%3xPelF{r5}E)s CBQ9V7 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png b/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png new file mode 100644 index 0000000000000000000000000000000000000000..864bf5cfc1e1fa34f5d4670e033b4574db5bb918 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfQea<6xKA8gn{fZABJoqrby`6n^Zv4KQg9a?E&Hl!E&NDu&Qe#Rm zeem=1bDs0_?T?>S&tTAOV4bg`7rpWoQy1?6h8;qJiaQl~7;>j8OMdc^js;r7;OXk; Jvd$@?2>@ZWHPrwB literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png b/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png new file mode 100644 index 0000000000000000000000000000000000000000..5441f0c47ef55360a5503a5828083a1e7b4276d5 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfIEGmC zzMZ_0i@}h?IXB&2YyQ0cQ}<^3?TXRXWtW}hIngGtrE&s!giq&Hv5*_66l9Q$j7D*d^O|C%e3v`?AaUHPadH@FZrNR9UA#!Zovj7BP6b L`njxgN@xNArJy)- literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png b/mods/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png new file mode 100644 index 0000000000000000000000000000000000000000..1856baea87c8c740711c5003cd8af1612e78660d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfU%a54lYYQz-RJR(xx?J>ve{T8Q-$x3=izTv~lla mxB3IzjF&I{u%D=@cZ;_u%gD`8t Date: Sun, 15 Dec 2019 18:43:55 -0500 Subject: [PATCH 082/321] Delete main --- mods/minetest-3d_armor/3d_armor_stand/textures/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/minetest-3d_armor/3d_armor_stand/textures/main diff --git a/mods/minetest-3d_armor/3d_armor_stand/textures/main b/mods/minetest-3d_armor/3d_armor_stand/textures/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/minetest-3d_armor/3d_armor_stand/textures/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 6f2b8d668efcd64175749e41223003866ff61bda Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:44:16 -0500 Subject: [PATCH 083/321] Add files via upload --- mods/minetest-3d_armor/depends.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mods/minetest-3d_armor/depends.txt diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/depends.txt new file mode 100644 index 00000000..cf4ccf91 --- /dev/null +++ b/mods/minetest-3d_armor/depends.txt @@ -0,0 +1,2 @@ +3d_armor +unified_inventory? -- 2.40.1 From e468a232a9a87c885f141432641801329c21fcc3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:44:54 -0500 Subject: [PATCH 084/321] Rename mods/minetest-3d_armor/depends.txt to mods/minetest-3d_armor/3d_armor_ui/depends.txt --- mods/minetest-3d_armor/{ => 3d_armor_ui}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => 3d_armor_ui}/depends.txt (100%) diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/3d_armor_ui/depends.txt similarity index 100% rename from mods/minetest-3d_armor/depends.txt rename to mods/minetest-3d_armor/3d_armor_ui/depends.txt -- 2.40.1 From 86b1e924b2c7ac8c9fea1072a071ead4f9ffda61 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:45:16 -0500 Subject: [PATCH 085/321] Add files via upload --- .../minetest-3d_armor/3d_armor_ui/LICENSE.txt | 18 +++++++ .../3d_armor_ui/description.txt | 1 + mods/minetest-3d_armor/3d_armor_ui/init.lua | 53 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 mods/minetest-3d_armor/3d_armor_ui/LICENSE.txt create mode 100644 mods/minetest-3d_armor/3d_armor_ui/description.txt create mode 100644 mods/minetest-3d_armor/3d_armor_ui/init.lua diff --git a/mods/minetest-3d_armor/3d_armor_ui/LICENSE.txt b/mods/minetest-3d_armor/3d_armor_ui/LICENSE.txt new file mode 100644 index 00000000..6ae23a6f --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_ui/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] 3d Armor integration to unified inventory [3d_armor_ui] +============================================================= + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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/mods/minetest-3d_armor/3d_armor_ui/description.txt b/mods/minetest-3d_armor/3d_armor_ui/description.txt new file mode 100644 index 00000000..873f876b --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_ui/description.txt @@ -0,0 +1 @@ +Adds 3d_armor page to the unified inventory diff --git a/mods/minetest-3d_armor/3d_armor_ui/init.lua b/mods/minetest-3d_armor/3d_armor_ui/init.lua new file mode 100644 index 00000000..41eec7bb --- /dev/null +++ b/mods/minetest-3d_armor/3d_armor_ui/init.lua @@ -0,0 +1,53 @@ +-- support for i18n +local S = armor_i18n.gettext +local F = minetest.formspec_escape +local has_technic = minetest.get_modpath("technic") ~= nil + +if not minetest.global_exists("unified_inventory") then + minetest.log("warning", S("3d_armor_ui: Mod loaded but unused.")) + return +end + +if unified_inventory.sfinv_compat_layer then + return +end + +armor:register_on_update(function(player) + local name = player:get_player_name() + if unified_inventory.current_page[name] == "armor" then + unified_inventory.set_inventory_formspec(player, "armor") + end +end) + +unified_inventory.register_button("armor", { + type = "image", + image = "inventory_plus_armor.png", + tooltip = S("3d Armor") +}) + +unified_inventory.register_page("armor", { + get_formspec = function(player, perplayer_formspec) + local fy = perplayer_formspec.formspec_y + local name = player:get_player_name() + if armor.def[name].init_time == 0 then + return {formspec="label[0,0;"..F(S("Armor not initialized!")).."]"} + end + local formspec = "background[0.06,"..fy..";7.92,7.52;3d_armor_ui_form.png]".. + "label[0,0;"..F(S("Armor")).."]".. + "list[detached:"..name.."_armor;armor;0,"..fy..";2,3;]".. + "image[2.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]".. + "label[5.0,"..(fy + 0.0)..";"..F(S("Level"))..": "..armor.def[name].level.."]".. + "label[5.0,"..(fy + 0.5)..";"..F(S("Heal"))..": "..armor.def[name].heal.."]".. + "listring[current_player;main]".. + "listring[detached:"..name.."_armor;armor]" + if armor.config.fire_protect then + formspec = formspec.."label[5.0,"..(fy + 1.0)..";".. + F(S("Fire"))..": "..armor.def[name].fire.."]" + end + if has_technic then + formspec = formspec.."label[5.0,"..(fy + 1.5)..";".. + F(S("Radiation"))..": "..armor.def[name].groups["radiation"].."]" + end + return {formspec=formspec} + end, +}) -- 2.40.1 From 631680fd1fc6091fde28e82843f002a84ce30ce0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:45:57 -0500 Subject: [PATCH 086/321] Add files via upload --- mods/minetest-3d_armor/crafting_guide.txt | 36 +++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 mods/minetest-3d_armor/crafting_guide.txt diff --git a/mods/minetest-3d_armor/crafting_guide.txt b/mods/minetest-3d_armor/crafting_guide.txt new file mode 100644 index 00000000..9b61dde2 --- /dev/null +++ b/mods/minetest-3d_armor/crafting_guide.txt @@ -0,0 +1,36 @@ +Shields -- Crafting Guide +-------------------------- + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| | X | | ++---+---+---+ + +[shields:shield_wood] X = [default:wood] +[shields:shield_cactus] X = [default:cactus] +[shields:shield_steel] X = [default:steel_ingot] +[shields:shield_bronze] X = [default:bronze_ingot] +[shields:shield_diamond] X = [default:diamond] +[shields:shield_gold] X = [default:gold_ingot] +[shields:shield_mithril] X = [moreores:mithril_ingot] +[shields:shield_crystal] X = [ethereal:crystal_ingot] + +Enhanced Shields +---------------- + ++---+ +| S | ++---+ +| X | ++---+ +| S | ++---+ + +[shields:shield_enhanced_wood] X = [shields:shield_wood] +[shields:shield_enhanced_cactus] X = [shields:shield_cactus] + +S = [default:steel_ingot] + -- 2.40.1 From 0b48726cdbfda227ee122d438207047ead34ef1f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:46:37 -0500 Subject: [PATCH 087/321] Rename mods/minetest-3d_armor/crafting_guide.txt to mods/minetest-3d_armor/shields/crafting_guide.txt --- mods/minetest-3d_armor/{ => shields}/crafting_guide.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => shields}/crafting_guide.txt (100%) diff --git a/mods/minetest-3d_armor/crafting_guide.txt b/mods/minetest-3d_armor/shields/crafting_guide.txt similarity index 100% rename from mods/minetest-3d_armor/crafting_guide.txt rename to mods/minetest-3d_armor/shields/crafting_guide.txt -- 2.40.1 From fad194de831cb5d4a4c1247fce21f5b7f2ad9744 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:47:20 -0500 Subject: [PATCH 088/321] Add files via upload --- mods/minetest-3d_armor/shields/LICENSE.txt | 26 ++ mods/minetest-3d_armor/shields/README.txt | 16 ++ mods/minetest-3d_armor/shields/depends.txt | 2 + .../minetest-3d_armor/shields/description.txt | 1 + mods/minetest-3d_armor/shields/init.lua | 227 ++++++++++++++++++ 5 files changed, 272 insertions(+) create mode 100644 mods/minetest-3d_armor/shields/LICENSE.txt create mode 100644 mods/minetest-3d_armor/shields/README.txt create mode 100644 mods/minetest-3d_armor/shields/depends.txt create mode 100644 mods/minetest-3d_armor/shields/description.txt create mode 100644 mods/minetest-3d_armor/shields/init.lua diff --git a/mods/minetest-3d_armor/shields/LICENSE.txt b/mods/minetest-3d_armor/shields/LICENSE.txt new file mode 100644 index 00000000..1f848593 --- /dev/null +++ b/mods/minetest-3d_armor/shields/LICENSE.txt @@ -0,0 +1,26 @@ +[mod] Shields [shields] +======================= + +License Source Code +------------------- + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. + +License Textures +---------------- + +Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0 diff --git a/mods/minetest-3d_armor/shields/README.txt b/mods/minetest-3d_armor/shields/README.txt new file mode 100644 index 00000000..5a72097a --- /dev/null +++ b/mods/minetest-3d_armor/shields/README.txt @@ -0,0 +1,16 @@ +[mod] Shields [shields] +======================= + +Adds shields to 3d_armor + +Depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not what shields then simply remove the shields folder from the modpack. + +Shields Configuration +--------------------- + +Override the following default settings by adding them to your minetest.conf file. + +shields_disable_sounds = false diff --git a/mods/minetest-3d_armor/shields/depends.txt b/mods/minetest-3d_armor/shields/depends.txt new file mode 100644 index 00000000..585cc7aa --- /dev/null +++ b/mods/minetest-3d_armor/shields/depends.txt @@ -0,0 +1,2 @@ +default +3d_armor diff --git a/mods/minetest-3d_armor/shields/description.txt b/mods/minetest-3d_armor/shields/description.txt new file mode 100644 index 00000000..cb378bbf --- /dev/null +++ b/mods/minetest-3d_armor/shields/description.txt @@ -0,0 +1 @@ +Adds visible shields to 3d armor. diff --git a/mods/minetest-3d_armor/shields/init.lua b/mods/minetest-3d_armor/shields/init.lua new file mode 100644 index 00000000..5c493843 --- /dev/null +++ b/mods/minetest-3d_armor/shields/init.lua @@ -0,0 +1,227 @@ +-- support for i18n +local S = armor_i18n.gettext + +local disable_sounds = minetest.settings:get_bool("shields_disable_sounds") +local use_moreores = minetest.get_modpath("moreores") +local function play_sound_effect(player, name) + if not disable_sounds and player then + local pos = player:get_pos() + if pos then + minetest.sound_play(name, { + pos = pos, + max_hear_distance = 10, + gain = 0.5, + }) + end + end +end + +if minetest.global_exists("armor") and armor.elements then + table.insert(armor.elements, "shield") + local mult = armor.config.level_multiplier or 1 + armor.config.level_multiplier = mult * 0.9 +end + +-- Regisiter Shields + +armor:register_armor("shields:shield_admin", { + description = S("Admin Shield"), + inventory_image = "shields_inv_shield_admin.png", + groups = {armor_shield=1000, armor_heal=100, armor_use=0, not_in_creative_inventory=1}, +}) + +minetest.register_alias("adminshield", "shields:shield_admin") + +if armor.materials.wood then + armor:register_armor("shields:shield_wood", { + description = S("Wooden Shield"), + inventory_image = "shields_inv_shield_wood.png", + groups = {armor_shield=1, armor_heal=0, armor_use=2000, flammable=1}, + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + }) + armor:register_armor("shields:shield_enhanced_wood", { + description = S("Enhanced Wood Shield"), + inventory_image = "shields_inv_shield_enhanced_wood.png", + groups = {armor_shield=1, armor_heal=0, armor_use=2000}, + armor_groups = {fleshy=8}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) + minetest.register_craft({ + output = "shields:shield_enhanced_wood", + recipe = { + {"default:steel_ingot"}, + {"shields:shield_wood"}, + {"default:steel_ingot"}, + }, + }) +end + +if armor.materials.cactus then + armor:register_armor("shields:shield_cactus", { + description = S("Cactus Shield"), + inventory_image = "shields_inv_shield_cactus.png", + groups = {armor_shield=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + }) + armor:register_armor("shields:shield_enhanced_cactus", { + description = S("Enhanced Cactus Shield"), + inventory_image = "shields_inv_shield_enhanced_cactus.png", + groups = {armor_shield=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=8}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) + minetest.register_craft({ + output = "shields:shield_enhanced_cactus", + recipe = { + {"default:steel_ingot"}, + {"shields:shield_cactus"}, + {"default:steel_ingot"}, + }, + }) +end + +if armor.materials.steel then + armor:register_armor("shields:shield_steel", { + description = S("Steel Shield"), + inventory_image = "shields_inv_shield_steel.png", + groups = {armor_shield=1, armor_heal=0, armor_use=800, + physics_speed=-0.03, physics_gravity=0.03}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) +end + +if armor.materials.bronze then + armor:register_armor("shields:shield_bronze", { + description = S("Bronze Shield"), + inventory_image = "shields_inv_shield_bronze.png", + groups = {armor_shield=1, armor_heal=6, armor_use=400, + physics_speed=-0.03, physics_gravity=0.03}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) +end + +if armor.materials.diamond then + armor:register_armor("shields:shield_diamond", { + description = S("Diamond Shield"), + inventory_image = "shields_inv_shield_diamond.png", + groups = {armor_shield=1, armor_heal=12, armor_use=200}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_glass_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_break_glass") + end, + }) +end + +if armor.materials.gold then + armor:register_armor("shields:shield_gold", { + description = S("Gold Shield"), + inventory_image = "shields_inv_shield_gold.png", + groups = {armor_shield=1, armor_heal=6, armor_use=300, + physics_speed=-0.04, physics_gravity=0.04}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) +end + +if armor.materials.mithril then + armor:register_armor("shields:shield_mithril", { + description = S("Mithril Shield"), + inventory_image = "shields_inv_shield_mithril.png", + groups = {armor_shield=1, armor_heal=12, armor_use=100}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_glass_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_break_glass") + end, + }) +end + +if armor.materials.crystal then + armor:register_armor("shields:shield_crystal", { + description = S("Crystal Shield"), + inventory_image = "shields_inv_shield_crystal.png", + groups = {armor_shield=1, armor_heal=12, armor_use=100, armor_fire=1}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_glass_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_break_glass") + end, + }) +end + +for k, v in pairs(armor.materials) do + minetest.register_craft({ + output = "shields:shield_"..k, + recipe = { + {v, v, v}, + {v, v, v}, + {"", v, ""}, + }, + }) +end -- 2.40.1 From 3160c9d1ce500d6e13e9128ceae891bae4b67735 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:47:39 -0500 Subject: [PATCH 089/321] Add files via upload --- mods/minetest-3d_armor/shields/preview_index.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 mods/minetest-3d_armor/shields/preview_index.txt diff --git a/mods/minetest-3d_armor/shields/preview_index.txt b/mods/minetest-3d_armor/shields/preview_index.txt new file mode 100644 index 00000000..4408c61a --- /dev/null +++ b/mods/minetest-3d_armor/shields/preview_index.txt @@ -0,0 +1,11 @@ +shields/textures/shields_shield_wood.png:shield +shields/textures/shields_shield_enhanced_wood.png:shield +shields/textures/shields_shield_cactus.png:shield +shields/textures/shields_shield_enhanced_cactus.png:shield +shields/textures/shields_shield_steel.png:shield +shields/textures/shields_shield_bronze.png:shield +shields/textures/shields_shield_gold.png:shield +shields/textures/shields_shield_diamond.png:shield +shields/textures/shields_shield_mithril.png:shield +shields/textures/shields_shield_crystal.png:shield +shields/textures/shields_shield_admin.png:shield -- 2.40.1 From 457a50edd0d0cdae28698de51ec1530bc6ee49da Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:48:18 -0500 Subject: [PATCH 090/321] Rename mods/minetest-3d_armor/shields/preview_index.txt to mods/minetest-3d_armor/shields/textures/preview_index.txt --- mods/minetest-3d_armor/shields/{ => textures}/preview_index.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/shields/{ => textures}/preview_index.txt (100%) diff --git a/mods/minetest-3d_armor/shields/preview_index.txt b/mods/minetest-3d_armor/shields/textures/preview_index.txt similarity index 100% rename from mods/minetest-3d_armor/shields/preview_index.txt rename to mods/minetest-3d_armor/shields/textures/preview_index.txt -- 2.40.1 From 936681606a9b1156d8bc9e45ac33986b5f383065 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:49:13 -0500 Subject: [PATCH 091/321] Add files via upload --- .../shields/textures/shields_inv_shield_admin.png | Bin 0 -> 443 bytes .../textures/shields_inv_shield_bronze.png | Bin 0 -> 391 bytes .../textures/shields_inv_shield_cactus.png | Bin 0 -> 442 bytes .../textures/shields_inv_shield_crystal.png | Bin 0 -> 443 bytes .../textures/shields_inv_shield_diamond.png | Bin 0 -> 443 bytes .../shields_inv_shield_enhanced_cactus.png | Bin 0 -> 430 bytes .../textures/shields_inv_shield_enhanced_wood.png | Bin 0 -> 428 bytes .../shields/textures/shields_inv_shield_gold.png | Bin 0 -> 391 bytes .../textures/shields_inv_shield_mithril.png | Bin 0 -> 391 bytes .../shields/textures/shields_inv_shield_steel.png | Bin 0 -> 410 bytes .../shields/textures/shields_inv_shield_wood.png | Bin 0 -> 421 bytes .../shields/textures/shields_shield_admin.png | Bin 0 -> 456 bytes .../textures/shields_shield_admin_preview.png | Bin 0 -> 435 bytes .../shields/textures/shields_shield_bronze.png | Bin 0 -> 403 bytes .../textures/shields_shield_bronze_preview.png | Bin 0 -> 394 bytes .../shields/textures/shields_shield_cactus.png | Bin 0 -> 455 bytes .../textures/shields_shield_cactus_preview.png | Bin 0 -> 444 bytes .../shields/textures/shields_shield_crystal.png | Bin 0 -> 456 bytes .../textures/shields_shield_crystal_preview.png | Bin 0 -> 435 bytes .../shields/textures/shields_shield_diamond.png | Bin 0 -> 456 bytes .../textures/shields_shield_diamond_preview.png | Bin 0 -> 435 bytes .../textures/shields_shield_enhanced_cactus.png | Bin 0 -> 441 bytes .../shields_shield_enhanced_cactus_preview.png | Bin 0 -> 428 bytes .../textures/shields_shield_enhanced_wood.png | Bin 0 -> 442 bytes .../shields_shield_enhanced_wood_preview.png | Bin 0 -> 433 bytes .../shields/textures/shields_shield_gold.png | Bin 0 -> 403 bytes .../textures/shields_shield_gold_preview.png | Bin 0 -> 394 bytes .../shields/textures/shields_shield_mithril.png | Bin 0 -> 403 bytes .../textures/shields_shield_mithril_preview.png | Bin 0 -> 394 bytes .../shields/textures/shields_shield_steel.png | Bin 0 -> 439 bytes .../textures/shields_shield_steel_preview.png | Bin 0 -> 414 bytes .../shields/textures/shields_shield_wood.png | Bin 0 -> 433 bytes .../textures/shields_shield_wood_preview.png | Bin 0 -> 422 bytes 33 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_admin.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_bronze.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_cactus.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_crystal.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_diamond.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_gold.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_mithril.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_steel.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_wood.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_admin.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_admin_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_bronze.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_bronze_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_cactus.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_cactus_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_crystal.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_crystal_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_diamond.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_diamond_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_gold.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_gold_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_mithril.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_mithril_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_steel.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_steel_preview.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_wood.png create mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_wood_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_admin.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..0b0637e70e3dadde17df535c182299500633ca6d GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFl*!&%@FSu>8rk9V|gAZ zl;-K;7{YPg_MD?&gMxtD!=;QO4;F~}9O@A?XmUHiA;qYiz_O>}I9JMtmpygubIX5+ zKUsXHxL53|R7p$r1)+WI%EuVzaR|F5%@pj|k)(L3&Ett|rw02bv5n$f3vR}wD5LrqppB{}t`Q|Ei6yC4$wjF^iowXh&|KHhK-bVX#L&XZ#N5i*T-(6V l%D`ZgiQ)tl4Y~O#nQ4`{H5|^IsRPu&;OXk;vd$@?2>>7@jZy#r literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_bronze.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..af47896d4c940bec4f4cde1a5ab0f710ceac56c5 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF|yJZ07&~ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c9ae43cddd6d1354c49e149c67ceec081dd00a GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFiad8=Yc{co-U3d9M_W*8W`PD6_XW{ z1zFj|E(%<9*e<}x7WTPk+f3u-QU)7Vm6vQOU8ZGVu&R7ZX^9WZD#P{5l|QHmbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M= iO(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCx8RfqZj literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_crystal.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..ebb73db65bb857eb0adabe8eac804940e4e7eaa6 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFb|fr9KMp1!W^54m`S^i|)lu{;kH zO7nDa4B@zLd(Kg?K|#Rn;ZjDC2Ma`f4)q8cG`St%kYZF$VA)e~oGazS%bvRSx#hpZ zpDaF8+$(lfs-z|Rg3!Kp;Q&_>k~*NBpo#FA92@O1TaS?83{1OQKijI#g$ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_diamond.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..0e79d974a9368e8a9d2a06e4fbbda37773e13322 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFVvL z|NlqV|6dHh-!go7%<$|c!}Ze)=Z-KO*~zeBIm41!4Ac7sZ*Gvu0P1Bd3GxeO zaCmkj4a7O=u<5X=vX`mo`iKnkC`$H~XA$`^NYb?(L zh0;7-978y++n#e2Y)}wzd$^QQh z@F$DU6!(f|?bKl3B(_nUYhljXuQluo z|EoV?6G~B=5M@*!1GG`K#5JNMC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{w mS{WE@GEtm>q9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywqXw~%@O literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..c5dc4d077eaf3d4ce13290a25358fea3acdfa49b GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF@$Yg9>IX^PHK`sfLoQw+ebx7CEYAalvOQfKLpZJ{Cp0j+xjL%4D!MYV zxh0E>Ckv-DvZ-DEvZ=2xjg`&q`lnBux>5`lui3MQRpaTbIKET{*GrCBcN&P&%vT$93<}wdT3A|Hrn0a;SjWIH@1UHB+lvVeKxl*!&%@F zSu>8rk9V|gAZl7{YNqIiZ2kP0`iSRne7^ z%}qEtT|p=z!HAc&DS?&E?fR7sTehSum{REugxmqAOm%d0O<0zwnVOjJE@4v%y{L2G zfP#?Jv}vz6Oazz6YcR7MdMn!|;C&~EMd6yJ^uafx2@XsQx8y{Z`ad}n542RZ#5JNM zC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{wS{WE@GEtm>q9HdwB{QuOw}!)+ SGj)I(7(8A5T-G@yGywonU3}#L literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_gold.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..d0bd02783bb7cce8a26bb710698026d2a9819250 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_!@hljQC0!qCAg>jC6&7I;J!GcfQS0b$0e z+I-SLLG}_)Usv{rT)aa1s_)lWo(Br~db&7aN)S{P-O!OZVbWyoDGL`hO&!X(gqQG(;Zwnmo;a~K%@ z9OgE5ZB_XWG+4F7HKHUXu_V literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_mithril.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..a55fb00481b7df08cd131460df79e669059e70e7 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF}ZU`ZlH*-%oIPM0>+XczhDN3XE)M7oFs2|7lsa2Sq~tGv%n*=n1O-s2naJy z)#j513bL1Y`ns||=T>Yz_bb literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_steel.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..54176327fc99b15abf6c0616c12129f575d61be3 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Qr;B5V#`)ff8~K_IcwFLF zd5E4mG;Qkp$IYK=*W8Sl;9lOr=)CaDHtYQ=R_Yr2zgpc|gBTZ@Emdd}<6e#3UUuEUE7zi0JV|KOg`%*`d@tMf%~ z-pP<-526m#{B#M3&bHzeJNAIVqCQC4`hlOk^)j8JLyOdX&G22WQ% Jmvv4FO#mz^gqHvS literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_wood.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..407533f521d14853aaf4afaae646037a90c52951 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF`gbex8*5j=`>{xLJBGYmeqS!<9N~M3~O3?V6({^o=I&29nO2Eg!{N-CIzSB! Mp00i_>zopr0Hy?l<^TWy literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_admin.png b/mods/minetest-3d_armor/shields/textures/shields_shield_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..764c3bb198852a208c276f88dbdeef4c705fa227 GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsMa9BC&cyt|NoT?W&gdO z{m*#)zw+HjhP&4pP99^}yP0A2N`^%X7-mmk=;>f+YhvL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh z3Ke_0IEGl9PEJr@kzjRPvVb9v^;DBXLX*4W1R(*9$AJ^1xL6!3M5Zidbkve#ef!iQ zpw0bY51&HD@x=*GeH3Oix*uE@>aanmzv=Ss#sqOW*79=<2Q%+*Nj!PSbWqlYOXBIh zz18It8TlEGwlW;nkYEjAWZ0mrHsSjLrC&hnRZCnWN>UO_QmvAUQh^kMk%6JPuAzah zp>c?zg_Vi9m9e?DfuWUw!6p;M2`CzJ^HVa@DsgK#oH;izz0Pp*7{lJp469c%ELy-YdjdmG2SZyULtPa^1yJ#Zs@O`PHl~sw zzhDN2vdL#HfIP+|Z+92Q|4h2~fE@M`PhVH|hg`fu`l|2OSe^$8<$Jm~hIkx*d(o2b zumO)t;KZOU`rr5GCf%5IXeP_c!{LGt-XF6}?)f?K&K~wvyXGJFWRm|PBxlkg$HW`N z;@><+;nIQ>50e$FM!Zq2PR;igTuLa(Fqy$@#qDza4jXTr@S4jZ3mf0)hS;&hKR2s? z%c*jewRPR3hu48ttCqM%l%ynUftDnm{r-UW|j5m+* literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_bronze.png b/mods/minetest-3d_armor/shields/textures/shields_shield_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a35612e0b9f3eb4ff9b7893507b6d4a54f73d8 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$b|fr9KMp1!W^54m`S^i|)lu{;kHiu81G46!(!oS?vDz$Gw2H0a3kwu=D)fgS-I z{Y=WLg6^uSd(<>mJ}^CK;BoR~YXg(0=q&AkL(3Z+BTP(80tEd7xVV`Z?O1z`IW!z+ zV`H1Z$+I{?B!HcPVX`*2alu}nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6T#esDwp literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_bronze_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_bronze_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..39424715017fe0f56e58da0271faec31bd856d7a GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIm# zbdl|m1f2`@UdJ;{fFiAVreZ)jrjj7PUjaa-yiI}uJcnC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6VLt#n%e literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_shield_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..889ac9433c079b1f3f439dc30e9cfb8294eba5b4 GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|Np0U)@JMq zi{0$yH`UIq-Qw=0HQvqk{#{N%{UBNWLtfrM#f&9Ee!&b5&u*lFI7!~_E({&4vK~MV zXMsm#F#`kN5fEmas?8@26l5>)^mS!_$i*w9uljzC<$0h`qo<2wh{fsT1O*m}sjWS& zJ+2}JS_y)@g1jZ%f(KSMT(w!8`|Qk0wjH7?%1gGCE_<}CDRA%NwTqLL< zIFrM`?8A|x8WOBa7#QX&Dr(+-bXNlC7}XNjh?11Vl2ohYqEsNoU}Ruuu4`zZYiJx| wXkleyZe?t)ZD43+V6e$VaRQ2l-29Zxv`X9>4rk8P0cv3IboFyt=akR{0JbBJTL1t6 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_cactus_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1b46f1e5bbcab9c284771a6b2a40cc87b843c76d GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI#As4TZzUuommgj*&?Vc`tPq28LD!2AfP2C!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsMa9BC&cyt|NjixZDITV zmz?_FcI7|AieC&1Uo*_U$1wRUL(gG`jvWm3OBt$WF%(Z=$mswowi1oV1?pui3GxeO zaCmkj4a7O=u<5X=vX`mo`iKnkC`$H~XA$`^NYb?(L zg^E30978NlCnqSdNU%CCS-_CTdaB7Gp~>BGf{=j5(WzJ2Nt z(B^)yhfg8n_~L}8J_<7$-4Ct{b=V-(-*kC*V}iIGYxy~bgPC`@B%ZuuIw)(yCGqs$ z-sgTe~DWM4fPDYJn literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_crystal_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_crystal_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc632ef16ee6c59ddf17c796d0587b8295df70b GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C%fh@Ck7R(*OVeXUJ{~ z+xNfZ)c>|C{~1>NVp#Z^VfHLW ze!&b3Ws}cZ0C|i_-tI1p|Cw~}0Xgg?p1!W^54m`S^i|)lu{;kH%J+0}4DmSr_M#=< zVFMnQz==Uy^uO=VO}a7b&`g$>hr_YwNm653d8QRxNRjC`m~yNwrEYN(E93Mh1rFx`qb2hQ=X=7FH(aR>tPq28LD! j2AfP2C!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsMa9BC&cyt|NjhKEnfe> z=l}oF_5T;c@3#ye9y2_<$#DHN!?`02M|Lu7SkACy7Q^&DhMrcS;+q>}GJtv+OM?7@ z862M7NCR<_yxm;OkH}&M2EHR8%s5q>PZ}u5UgGKN%KngxS4dy={Tj>j zK%rt!7sn8b)5!@6EE24aOBOKXv7TyjNN93*oFF8i@i=gT6c>wQg~*hpjE-7ztZ$z> z1hlyy?BP?$IKDXHsgJ^pM)!m3LLD{;^*3GK-IyRQ$69`l;b7(+E{P}am=4O?a7jG9 zx3{`{A|pS;(N>1T8WOA_j0_u;)h2vDp!5r9y=sYTL`h0wNvc(HQ7VvPFfuSS*EKZI zH8c(}w6HQUw=y=@HZZg@FxX_GH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e02`!{ AD*ylh literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_diamond_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..87fd958b7701beb9d54373ebce532ba20e5c47ea GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C%fh@Ck7R(*OVeXXtA2 z`u{!u|BtT!zZibMW%%%z;n_`w>!%sc9bq`KlVQVhh9$EYruQ-Qv;q|?bh)hpYGW!1 z@(X5QD4TrN0?1=b@^*J&{LiF&56EFJ@$_|Nf5^ovq_6sZjpccuP`;;&V~EG`w-+t> z4jb^e1WpXvqW^t=Zqkiehi0<8JRC0g;QcYnePI1!KH+f43inmR@^Sv@38U439q>vvas=uZipRA{ByJV zx11_hSzFgldUzdZwQ7lLL`h0wNvc(HQ7VvPFfuSS*EKZIH8c(}w6HQUw=y=@HZZg@ kFxX_GH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e0POdX@c;k- literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..13884ff1f0cc761832e2bd175394db7e6c08f6d2 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%k(C&cyt|Nq_H-SzeL z%a<>oJ9n;kv;EymYy7*Mg8D&HcMWRQfGQbFg8YIR9G=}s196hP-CYD4S+d0=geVQtIvO;vq)alzFY&>MTcTNM-0?wB|?mS>K zSs=4t`SR&g-XEeESu`sSFSOZfBQd|}!j%gf5^VAqShsW<%dt8&IW>7T?N}?py0}4v zfkCTCPNdXAa|h4`swJ)wB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4f^FE8e literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..d8227a83b817f57234f68f1a6006b688bbba240f GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIEwlsKW ztmw|>aB{e@c2VuKGn#E2qKUGyZ|ACNFuj$P4W78ACA4G#Cqrn6!fZjlkPD4j8Lrjt z+FfD_8m@)z?yl}!n;fDdqpG+jNh-AOZd2gY(ALzJ)K=V*P*E?^z{p^eqc-IQv(6r% zD^yEdBT7;dOH!?pi&B9UgOP!uxvrssuAy;=p@o%+xs|cGwt=CQfx#vd#R(`Ha`RI% Y(<*UmIGj0C2dII;)78&qol`;+0PvN4iU0rr literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..64f533159f4b72859687573db0ccc865b16218ee GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%k(C&cyt|NpJ6t@ZWw zGiT21@9(cl^{&hG%Z+v}PH+QCxut&J4OGck666=m;PC858iv zL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh3YB}hIEGl9PEJr@k!TfR6$Rn~ zZ3DwHHl;gUGklyI6(Sh7bFN#Nn3;L9VvWIjjrSV)2a{W~BO;E) zt1In}nn6cP+tQ_0k2p0a*nhmiz;fuVY}=0~k`i}=SUzYa1ehJtKYzgEKtrGbR|h-8 zt!JW3dHoai0iB>);u=wsl30>zm0Xkxq!^4049#^74Rj5SLkumfOw6r}&4Es`GBDU= hqBsFXLvDUbW?Cg~4Tm#l>Hsw`c)I$ztaD0e0svy~iQxbM literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..97ca37856922b308e5035c6b57d0016541754455 GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI^Xy@VtH=xvu>8rk9V|gAZRPX8H7-DfcIYEMTaRY|}2WtVNVyd#La;maxOT%h! z4gp1$mb;f46pjikR9d66ch4Rc&+g-A`ew=oPu$Y7bounaw}{I*O&iIZd1nHeutI&>67;#PGiDP%m->CjSG(xKMy>Te(e8w2lc zIn_;hrwxHlQ7v(eC`m~yNwrEYN(E93Mh1rFx`qb2hQ=X=7FH(aR>tPq28LD!2AfP2 fC!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$yGIHyZwdlM+*+jtfC?B(g8YIR9G=}s196hP-CYeBtXzVfQy@n(T=s}m_x&H zHa4~ioIHyYL;~0u7$$3T8yD<#`vbH@wZt`|BqgyV)hf9t6-Y4{85o-D8XD*t8iyEK vSeckx8JlYx7+M(^Y%)=tfTAHcKP5A*61RrKnKN~O8W=oX{an^LB{Ts5#*%T5 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_gold_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_gold_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..103e0bc2810fe1ba14b3598f6a633a1880501813 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIwDtQukgNmr10{lAW(#9Gy6QC98*b`sf zLoQw+ebx7CEYAal50zBLpMZRTZ1DURTCatW@OiwotzwkgNrW8g+afJYvZ!#XN ztMUW)+H)OXU^w+&cr%OIfqtN6swJ)wB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4fK~r|7 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_mithril.png b/mods/minetest-3d_armor/shields/textures/shields_shield_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..2e14503a30bd1f6db09b740a74dc650c3a1acc18 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$@ z2b=FG2s;|%up21iD>KCpsDQB~$S;_|;n|He5GTpo-G!lpRn`N@;VkfoEM{QfI|9Ot zQ?>b|fr9KMp1!W^54m`S^i|)lu{;kHiu81G46!(!oS?vDz$Gw2H0a3kwu=D)fgS-I z{Y=WLg6^uSd(<>mJ}^CK;BoR~YXg(0=q&AkL(3Z+BTP(80tEd7xVV`Z?O1z`IW!z+ zV`H1Z$+I{?B!HcPVX`*2alu}nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6TPL5 z#dCkK`Hq6HqcIM~IqW5#zOL*K zxp;;2Ro}0%JP#B~^mK6yu{fQaAi=u0fkT0V^#qes*9j(vd7A_ScoZKjNm;UHNsr2d zoHbG@IX#OG-4JnY4c=5(pfRgqrRGVdV<(uJw6ZcYJ>5L~!ULI@QWzD*6#`to$#}4? z$`9OY&vk%-;naKK%`9pM`hk|ImbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}o qV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCx|igZo@ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_steel.png b/mods/minetest-3d_armor/shields/textures/shields_shield_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..22ddb07c3e6a4bd72a410d1914e2c3b48e13251b GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#iLPZ!6Kh{JEM81l6!2(&(w zPugT?R<>ncKL3%QIWKc~RKyu$2X)G?u>O83orRRt`xS(hYTgho#K6KJBy4cqYciL|)QOFqI~_Y23_dX~P`_@O@#wwu%y~Ll|AZHulV&`{ z%@E!Y!4`Hbty*!yk6r(ncNOpS@UNSBz^*wv?Bq{=hCBajeSfok2)Xxzhc|(NS>gZ# zn?Zw_^n;B$waq1oen3~NmbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f- mLn{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCwSFo|mb literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_steel_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_steel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..96fbf9a0bee9a201b8bba8bf9efb4fd5c001b1a6 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!2%>Nw(nI1QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIH2c@VS8Oa7>K0w)eS5%wXYqMXxlKB;T(4Ch09~wF;u=ws zl30>zm0Xkxq!^4049#^74Rj5SLkumfOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZ RnL0oX44$rjF6*2UngCJ4i&6jp literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_wood.png b/mods/minetest-3d_armor/shields/textures/shields_shield_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..129f9f046f55e5bb1c447d401445dae29663646c GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|Nn9RmdU}k zxzWzW32s%X-gTLNK*89vGmin)FqQ=Q1v5B2yO9RsBze2LFm$lWdH^|`1s;*b3=Din zK$vl=HlH+5kiEpy*OmPt7q5`M>iad8=Yc{co-U3d7N_4%NEB^Q;9+ZIx#eKksKm*@ z{Xk>EntGOW20PvZA17CD->dnxbz9k%&9bwa3J5ghHY)!@Fv1jbJd54;mk zCA5chO1xQcpRqcFJ8R*gQr784oiA7zJzI7xtWWLZW>aZop7evG#Oi+~!_`z_=~7$U zXrTS7C9V-ADTyViR>?)FK#IZ0z|dUR&_LJFIKB*-tAfuU^jSqmVKG0EHAh4DX=?mZxfy~NYk zmHimKEFykq&QvEiw%H zQ^cTGuU^TrYE{TDL7Tk+*>_)rofdB?E!)(0u)}b@&>44yTarf{ZFr6eaO`~|?2=S| z<$6K^=YfO;i@o`o4VBk*F-n+!J>aM_`xJu@za_`l#y`K8?iOYXlb#*4Uw#456{;n! z5hW>!C8<`)MX5lF!N|bST-VS**U&h`(89{Z+{)No+rZGuz+jV!;sg{8x%nxXX_dG& U9L}7n1JuCa>FVdQ&MBb@0DHZK8~^|S literal 0 HcmV?d00001 -- 2.40.1 From f8fe69ec1acff2c7e2e2d636bbe5806b6a0e6896 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:53:04 -0500 Subject: [PATCH 092/321] Add files via upload --- mods/minetest-3d_armor/depends.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/minetest-3d_armor/depends.txt diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/depends.txt new file mode 100644 index 00000000..b6cac219 --- /dev/null +++ b/mods/minetest-3d_armor/depends.txt @@ -0,0 +1 @@ +3d_armor -- 2.40.1 From 6d69ff759cfe596d8d8ed634dd96056812f8df45 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:53:37 -0500 Subject: [PATCH 093/321] Rename mods/minetest-3d_armor/depends.txt to mods/minetest-3d_armor/wieldview/depends.txt --- mods/minetest-3d_armor/{ => wieldview}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/minetest-3d_armor/{ => wieldview}/depends.txt (100%) diff --git a/mods/minetest-3d_armor/depends.txt b/mods/minetest-3d_armor/wieldview/depends.txt similarity index 100% rename from mods/minetest-3d_armor/depends.txt rename to mods/minetest-3d_armor/wieldview/depends.txt -- 2.40.1 From e4a387ab28568777983a0380e3d6359cf0789b53 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 18:53:58 -0500 Subject: [PATCH 094/321] Add files via upload --- mods/minetest-3d_armor/wieldview/LICENSE.txt | 18 ++++ mods/minetest-3d_armor/wieldview/README.txt | 23 +++++ .../wieldview/description.txt | 1 + mods/minetest-3d_armor/wieldview/init.lua | 83 +++++++++++++++++++ .../minetest-3d_armor/wieldview/transform.lua | 24 ++++++ 5 files changed, 149 insertions(+) create mode 100644 mods/minetest-3d_armor/wieldview/LICENSE.txt create mode 100644 mods/minetest-3d_armor/wieldview/README.txt create mode 100644 mods/minetest-3d_armor/wieldview/description.txt create mode 100644 mods/minetest-3d_armor/wieldview/init.lua create mode 100644 mods/minetest-3d_armor/wieldview/transform.lua diff --git a/mods/minetest-3d_armor/wieldview/LICENSE.txt b/mods/minetest-3d_armor/wieldview/LICENSE.txt new file mode 100644 index 00000000..e1552c06 --- /dev/null +++ b/mods/minetest-3d_armor/wieldview/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] visible wielded items [wieldview] +======================================= + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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/mods/minetest-3d_armor/wieldview/README.txt b/mods/minetest-3d_armor/wieldview/README.txt new file mode 100644 index 00000000..ffa5ef0c --- /dev/null +++ b/mods/minetest-3d_armor/wieldview/README.txt @@ -0,0 +1,23 @@ +[mod] visible wielded items [wieldview] +======================================= + +Depends on: 3d_armor + +Makes hand wielded items visible to other players. + +default settings: [minetest.conf] + +# Set number of seconds between visible wielded item updates. +wieldview_update_time = 2 + +# Show nodes as tiles, disabled by default +wieldview_node_tiles = false + + +Info for modders +################ + +Wield image transformation: To apply a simple transformation to the item in +hand, add the group “wieldview_transform” to the item definition. The group +rating equals one of the numbers used for the [transform texture modifier +of the Lua API. diff --git a/mods/minetest-3d_armor/wieldview/description.txt b/mods/minetest-3d_armor/wieldview/description.txt new file mode 100644 index 00000000..0d51ad95 --- /dev/null +++ b/mods/minetest-3d_armor/wieldview/description.txt @@ -0,0 +1 @@ +Makes hand wielded items visible to other players. diff --git a/mods/minetest-3d_armor/wieldview/init.lua b/mods/minetest-3d_armor/wieldview/init.lua new file mode 100644 index 00000000..45f9fcaf --- /dev/null +++ b/mods/minetest-3d_armor/wieldview/init.lua @@ -0,0 +1,83 @@ +local time = 0 +local update_time = tonumber(minetest.settings:get("wieldview_update_time")) +if not update_time then + update_time = 2 + minetest.settings:set("wieldview_update_time", tostring(update_time)) +end +local node_tiles = minetest.settings:get_bool("wieldview_node_tiles") +if not node_tiles then + node_tiles = false + minetest.settings:set("wieldview_node_tiles", "false") +end + +wieldview = { + wielded_item = {}, + transform = {}, +} + +dofile(minetest.get_modpath(minetest.get_current_modname()).."/transform.lua") + +wieldview.get_item_texture = function(self, item) + local texture = "3d_armor_trans.png" + if item ~= "" then + if minetest.registered_items[item] then + if minetest.registered_items[item].inventory_image ~= "" then + texture = minetest.registered_items[item].inventory_image + elseif node_tiles == true and minetest.registered_items[item].tiles + and type(minetest.registered_items[item].tiles[1]) == "string" + and minetest.registered_items[item].tiles[1] ~= "" then + texture = minetest.inventorycube(minetest.registered_items[item].tiles[1]) + end + end + -- Get item image transformation, first from group, then from transform.lua + local transform = minetest.get_item_group(item, "wieldview_transform") + if transform == 0 then + transform = wieldview.transform[item] + end + if transform then + -- This actually works with groups ratings because transform1, transform2, etc. + -- have meaning and transform0 is used for identidy, so it can be ignored + texture = texture.."^[transform"..tostring(transform) + end + end + return texture +end + +wieldview.update_wielded_item = function(self, player) + if not player then + return + end + local name = player:get_player_name() + local stack = player:get_wielded_item() + local item = stack:get_name() + if not item then + return + end + if self.wielded_item[name] then + if self.wielded_item[name] == item then + return + end + armor.textures[name].wielditem = self:get_item_texture(item) + armor:update_player_visuals(player) + end + self.wielded_item[name] = item +end + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + wieldview.wielded_item[name] = "" + minetest.after(0, function(player) + wieldview:update_wielded_item(player) + end, player) +end) + +minetest.register_globalstep(function(dtime) + time = time + dtime + if time > update_time then + for _,player in ipairs(minetest.get_connected_players()) do + wieldview:update_wielded_item(player) + end + time = 0 + end +end) + diff --git a/mods/minetest-3d_armor/wieldview/transform.lua b/mods/minetest-3d_armor/wieldview/transform.lua new file mode 100644 index 00000000..4d5133e8 --- /dev/null +++ b/mods/minetest-3d_armor/wieldview/transform.lua @@ -0,0 +1,24 @@ +-- Wielded Item Transformations - http://dev.minetest.net/texture + +wieldview.transform = { + ["default:torch"]="R270", + ["default:sapling"]="R270", + ["flowers:dandelion_white"]="R270", + ["flowers:dandelion_yellow"]="R270", + ["flowers:geranium"]="R270", + ["flowers:rose"]="R270", + ["flowers:tulip"]="R270", + ["flowers:viola"]="R270", + ["bucket:bucket_empty"]="R270", + ["bucket:bucket_water"]="R270", + ["bucket:bucket_lava"]="R270", + ["screwdriver:screwdriver"]="R270", + ["screwdriver:screwdriver1"]="R270", + ["screwdriver:screwdriver2"]="R270", + ["screwdriver:screwdriver3"]="R270", + ["screwdriver:screwdriver4"]="R270", + ["vessels:glass_bottle"]="R270", + ["vessels:drinking_glass"]="R270", + ["vessels:steel_bottle"]="R270", +} + -- 2.40.1 From 8d09b81aafa7573cfd4af5a957c3231bba19c1e4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 19:16:04 -0500 Subject: [PATCH 095/321] Update armor.lua --- mods/minetest-3d_armor/3d_armor/armor.lua | 146 ++++------------------ 1 file changed, 26 insertions(+), 120 deletions(-) diff --git a/mods/minetest-3d_armor/3d_armor/armor.lua b/mods/minetest-3d_armor/3d_armor/armor.lua index 85d120a1..478a4fd8 100644 --- a/mods/minetest-3d_armor/3d_armor/armor.lua +++ b/mods/minetest-3d_armor/3d_armor/armor.lua @@ -81,65 +81,34 @@ if armor.materials.wood then }) end -if armor.materials.cactus then - armor:register_armor("3d_armor:helmet_cactus", { - description = S("Cactus Helmet"), - inventory_image = "3d_armor_inv_helmet_cactus.png", - groups = {armor_head=1, armor_heal=0, armor_use=1000}, - armor_groups = {fleshy=5}, - damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, - }) - armor:register_armor("3d_armor:chestplate_cactus", { - description = S("Cactus Chestplate"), - inventory_image = "3d_armor_inv_chestplate_cactus.png", - groups = {armor_torso=1, armor_heal=0, armor_use=1000}, - armor_groups = {fleshy=10}, - damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, - }) - armor:register_armor("3d_armor:leggings_cactus", { - description = S("Cactus Leggings"), - inventory_image = "3d_armor_inv_leggings_cactus.png", - groups = {armor_legs=1, armor_heal=0, armor_use=1000}, - armor_groups = {fleshy=10}, - damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, - }) - armor:register_armor("3d_armor:boots_cactus", { - description = S("Cactus Boots"), - inventory_image = "3d_armor_inv_boots_cactus.png", - groups = {armor_feet=1, armor_heal=0, armor_use=1000}, - armor_groups = {fleshy=5}, - damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, - }) -end - -if armor.materials.steel then - armor:register_armor("3d_armor:helmet_steel", { - description = S("Steel Helmet"), - inventory_image = "3d_armor_inv_helmet_steel.png", +if armor.materials.durasteel then + armor:register_armor("3d_armor:helmet_durasteel", { + description = S("Durasteel Helmet"), + inventory_image = "3d_armor_inv_helmet_durasteel.png", groups = {armor_head=1, armor_heal=0, armor_use=800, physics_speed=-0.01, physics_gravity=0.01}, armor_groups = {fleshy=10}, damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, }) - armor:register_armor("3d_armor:chestplate_steel", { - description = S("Steel Chestplate"), - inventory_image = "3d_armor_inv_chestplate_steel.png", + armor:register_armor("3d_armor:chestplate_durasteel", { + description = S("Durasteel Chestplate"), + inventory_image = "3d_armor_inv_chestplate_durasteel.png", groups = {armor_torso=1, armor_heal=0, armor_use=800, physics_speed=-0.04, physics_gravity=0.04}, armor_groups = {fleshy=15}, damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, }) - armor:register_armor("3d_armor:leggings_steel", { - description = S("Steel Leggings"), - inventory_image = "3d_armor_inv_leggings_steel.png", + armor:register_armor("3d_armor:leggings_durasteel", { + description = S("Durasteel Leggings"), + inventory_image = "3d_armor_inv_leggings_durasteel.png", groups = {armor_legs=1, armor_heal=0, armor_use=800, physics_speed=-0.03, physics_gravity=0.03}, armor_groups = {fleshy=15}, damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, }) - armor:register_armor("3d_armor:boots_steel", { - description = S("Steel Boots"), - inventory_image = "3d_armor_inv_boots_steel.png", + armor:register_armor("3d_armor:boots_durasteel", { + description = S("Durasteel Boots"), + inventory_image = "3d_armor_inv_boots_durasteel.png", groups = {armor_feet=1, armor_heal=0, armor_use=800, physics_speed=-0.01, physics_gravity=0.01}, armor_groups = {fleshy=10}, @@ -182,31 +151,31 @@ if armor.materials.bronze then }) end -if armor.materials.diamond then - armor:register_armor("3d_armor:helmet_diamond", { - description = S("Diamond Helmet"), - inventory_image = "3d_armor_inv_helmet_diamond.png", +if armor.materials.beskar then + armor:register_armor("3d_armor:helmet_mandalorian", { + description = S("Mandalorian Helmet"), + inventory_image = "3d_armor_inv_helmet_mandalorian.png", groups = {armor_head=1, armor_heal=12, armor_use=200}, armor_groups = {fleshy=15}, damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, }) - armor:register_armor("3d_armor:chestplate_diamond", { - description = S("Diamond Chestplate"), - inventory_image = "3d_armor_inv_chestplate_diamond.png", + armor:register_armor("3d_armor:chestplate_mandalorian", { + description = S("Mandalorian Chestplate"), + inventory_image = "3d_armor_inv_chestplate_mandalorian.png", groups = {armor_torso=1, armor_heal=12, armor_use=200}, armor_groups = {fleshy=20}, damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, }) - armor:register_armor("3d_armor:leggings_diamond", { - description = S("Diamond Leggings"), - inventory_image = "3d_armor_inv_leggings_diamond.png", + armor:register_armor("3d_armor:leggings_mandalorian", { + description = S("Mandalorian Leggings"), + inventory_image = "3d_armor_inv_leggings_mandalorian.png", groups = {armor_legs=1, armor_heal=12, armor_use=200}, armor_groups = {fleshy=20}, damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, }) - armor:register_armor("3d_armor:boots_diamond", { - description = S("Diamond Boots"), - inventory_image = "3d_armor_inv_boots_diamond.png", + armor:register_armor("3d_armor:boots_mandalorian", { + description = S("Mandalorian Boots"), + inventory_image = "3d_armor_inv_boots_mandalorian.png", groups = {armor_feet=1, armor_heal=12, armor_use=200}, armor_groups = {fleshy=15}, damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, @@ -248,69 +217,6 @@ if armor.materials.gold then }) end -if armor.materials.mithril then - armor:register_armor("3d_armor:helmet_mithril", { - description = S("Mithril Helmet"), - inventory_image = "3d_armor_inv_helmet_mithril.png", - groups = {armor_head=1, armor_heal=12, armor_use=100}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) - armor:register_armor("3d_armor:chestplate_mithril", { - description = S("Mithril Chestplate"), - inventory_image = "3d_armor_inv_chestplate_mithril.png", - groups = {armor_torso=1, armor_heal=12, armor_use=100}, - armor_groups = {fleshy=20}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) - armor:register_armor("3d_armor:leggings_mithril", { - description = S("Mithril Leggings"), - inventory_image = "3d_armor_inv_leggings_mithril.png", - groups = {armor_legs=1, armor_heal=12, armor_use=100}, - armor_groups = {fleshy=20}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) - armor:register_armor("3d_armor:boots_mithril", { - description = S("Mithril Boots"), - inventory_image = "3d_armor_inv_boots_mithril.png", - groups = {armor_feet=1, armor_heal=12, armor_use=100}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) -end - -if armor.materials.crystal then - armor:register_armor("3d_armor:helmet_crystal", { - description = S("Crystal Helmet"), - inventory_image = "3d_armor_inv_helmet_crystal.png", - groups = {armor_head=1, armor_heal=12, armor_use=100, armor_fire=1}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) - armor:register_armor("3d_armor:chestplate_crystal", { - description = S("Crystal Chestplate"), - inventory_image = "3d_armor_inv_chestplate_crystal.png", - groups = {armor_torso=1, armor_heal=12, armor_use=100, armor_fire=1}, - armor_groups = {fleshy=20}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) - armor:register_armor("3d_armor:leggings_crystal", { - description = S("Crystal Leggings"), - inventory_image = "3d_armor_inv_leggings_crystal.png", - groups = {armor_legs=1, armor_heal=12, armor_use=100, armor_fire=1}, - armor_groups = {fleshy=20}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) - armor:register_armor("3d_armor:boots_crystal", { - description = S("Crystal Boots"), - inventory_image = "3d_armor_inv_boots_crystal.png", - groups = {armor_feet=1, armor_heal=12, armor_use=100, physics_speed=1, - physics_jump=0.5, armor_fire=1}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, level=3}, - }) -end - for k, v in pairs(armor.materials) do minetest.register_craft({ output = "3d_armor:helmet_"..k, -- 2.40.1 From cfeced6a7e5f9ed662db83684637e3e9aaacb047 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 19:18:09 -0500 Subject: [PATCH 096/321] Update api.lua --- mods/minetest-3d_armor/3d_armor/api.lua | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mods/minetest-3d_armor/3d_armor/api.lua b/mods/minetest-3d_armor/3d_armor/api.lua index e460a248..4989053f 100644 --- a/mods/minetest-3d_armor/3d_armor/api.lua +++ b/mods/minetest-3d_armor/3d_armor/api.lua @@ -47,12 +47,10 @@ armor = { materials = { wood = "group:wood", cactus = "default:cactus", - steel = "default:steel_ingot", + durasteel = "default:durasteel_ingot", bronze = "default:bronze_ingot", - diamond = "default:diamond", + beskar = "default:beskar_ingot", gold = "default:gold_ingot", - mithril = "moreores:mithril_ingot", - crystal = "ethereal:crystal_ingot", }, fire_nodes = { {"default:lava_source", 5, 8}, @@ -88,12 +86,10 @@ armor.config = { heal_multiplier = 1, material_wood = true, material_cactus = true, - material_steel = true, + material_durasteel = true, material_bronze = true, - material_diamond = true, + material_beskar = true, material_gold = true, - material_mithril = true, - material_crystal = true, water_protect = true, fire_protect = minetest.get_modpath("ethereal") ~= nil, punch_damage = true, -- 2.40.1 From 3ab583ac37ad1daba8c2ea8179974de37c1bcf92 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 19:20:26 -0500 Subject: [PATCH 097/321] Update init.lua --- mods/minetest-3d_armor/3d_armor/init.lua | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mods/minetest-3d_armor/3d_armor/init.lua b/mods/minetest-3d_armor/3d_armor/init.lua index 646a2865..bfd9444e 100644 --- a/mods/minetest-3d_armor/3d_armor/init.lua +++ b/mods/minetest-3d_armor/3d_armor/init.lua @@ -82,12 +82,6 @@ for _, mod in pairs(skin_mods) do armor.skin_mod = mod end end -if not minetest.get_modpath("moreores") then - armor.materials.mithril = nil -end -if not minetest.get_modpath("ethereal") then - armor.materials.crystal = nil -end dofile(modpath.."/armor.lua") -- 2.40.1 From 7477d8dd3aa9446d939ffbb6a9ad8782583ae358 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 19:23:38 -0500 Subject: [PATCH 098/321] Update init.lua --- mods/minetest-3d_armor/3d_armor_stand/init.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mods/minetest-3d_armor/3d_armor_stand/init.lua b/mods/minetest-3d_armor/3d_armor_stand/init.lua index 1dd3ef6c..4bd97603 100644 --- a/mods/minetest-3d_armor/3d_armor_stand/init.lua +++ b/mods/minetest-3d_armor/3d_armor_stand/init.lua @@ -341,13 +341,14 @@ minetest.register_craft({ recipe = { {"", "group:fence", ""}, {"", "group:fence", ""}, - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"}, } }) minetest.register_craft({ + type = "shapeless", output = "3d_armor_stand:locked_armor_stand", recipe = { - {"3d_armor_stand:armor_stand", "default:steel_ingot"}, + {"3d_armor_stand:armor_stand", "default:durasteel_ingot"}, } }) -- 2.40.1 From f2cebf0deb8738e0e3922a835a4d239391ff223b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 19:29:35 -0500 Subject: [PATCH 099/321] Update init.lua --- mods/minetest-3d_armor/shields/init.lua | 87 ++----------------------- 1 file changed, 7 insertions(+), 80 deletions(-) diff --git a/mods/minetest-3d_armor/shields/init.lua b/mods/minetest-3d_armor/shields/init.lua index 5c493843..cb920d62 100644 --- a/mods/minetest-3d_armor/shields/init.lua +++ b/mods/minetest-3d_armor/shields/init.lua @@ -71,49 +71,10 @@ if armor.materials.wood then }) end -if armor.materials.cactus then - armor:register_armor("shields:shield_cactus", { - description = S("Cactus Shield"), - inventory_image = "shields_inv_shield_cactus.png", - groups = {armor_shield=1, armor_heal=0, armor_use=1000}, - armor_groups = {fleshy=5}, - damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_wood_footstep") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_wood_footstep") - end, - }) - armor:register_armor("shields:shield_enhanced_cactus", { - description = S("Enhanced Cactus Shield"), - inventory_image = "shields_inv_shield_enhanced_cactus.png", - groups = {armor_shield=1, armor_heal=0, armor_use=1000}, - armor_groups = {fleshy=8}, - damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=2}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_dig_metal") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_dug_metal") - end, - }) - minetest.register_craft({ - output = "shields:shield_enhanced_cactus", - recipe = { - {"default:steel_ingot"}, - {"shields:shield_cactus"}, - {"default:steel_ingot"}, - }, - }) -end - -if armor.materials.steel then - armor:register_armor("shields:shield_steel", { - description = S("Steel Shield"), - inventory_image = "shields_inv_shield_steel.png", +if armor.materials.durasteel then + armor:register_armor("shields:shield_durasteel", { + description = S("Durasteel Shield"), + inventory_image = "shields_inv_shield_durasteel.png", groups = {armor_shield=1, armor_heal=0, armor_use=800, physics_speed=-0.03, physics_gravity=0.03}, armor_groups = {fleshy=10}, @@ -146,10 +107,10 @@ if armor.materials.bronze then }) end -if armor.materials.diamond then - armor:register_armor("shields:shield_diamond", { +if armor.materials.beskar then + armor:register_armor("shields:shield_mandalorian", { description = S("Diamond Shield"), - inventory_image = "shields_inv_shield_diamond.png", + inventory_image = "shields_inv_shield_mandalorian.png", groups = {armor_shield=1, armor_heal=12, armor_use=200}, armor_groups = {fleshy=15}, damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, @@ -181,40 +142,6 @@ if armor.materials.gold then }) end -if armor.materials.mithril then - armor:register_armor("shields:shield_mithril", { - description = S("Mithril Shield"), - inventory_image = "shields_inv_shield_mithril.png", - groups = {armor_shield=1, armor_heal=12, armor_use=100}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, level=3}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_glass_footstep") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_break_glass") - end, - }) -end - -if armor.materials.crystal then - armor:register_armor("shields:shield_crystal", { - description = S("Crystal Shield"), - inventory_image = "shields_inv_shield_crystal.png", - groups = {armor_shield=1, armor_heal=12, armor_use=100, armor_fire=1}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, level=3}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_glass_footstep") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_break_glass") - end, - }) -end - for k, v in pairs(armor.materials) do minetest.register_craft({ output = "shields:shield_"..k, -- 2.40.1 From 95c82b43b673c58eecb4c611fae98cc4c98776de Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Sun, 15 Dec 2019 19:31:17 -0500 Subject: [PATCH 100/321] Update api.lua --- mods/minetest-3d_armor/3d_armor/api.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/mods/minetest-3d_armor/3d_armor/api.lua b/mods/minetest-3d_armor/3d_armor/api.lua index 4989053f..eb017a74 100644 --- a/mods/minetest-3d_armor/3d_armor/api.lua +++ b/mods/minetest-3d_armor/3d_armor/api.lua @@ -46,7 +46,6 @@ armor = { default_skin = "character", materials = { wood = "group:wood", - cactus = "default:cactus", durasteel = "default:durasteel_ingot", bronze = "default:bronze_ingot", beskar = "default:beskar_ingot", @@ -85,7 +84,6 @@ armor.config = { level_multiplier = 1, heal_multiplier = 1, material_wood = true, - material_cactus = true, material_durasteel = true, material_bronze = true, material_beskar = true, -- 2.40.1 From cc6872d8199b2d93bf92c27c550be7faf695feb8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:52:05 -0500 Subject: [PATCH 101/321] Delete 3d_armor_boots_cactus.png --- .../3d_armor/textures/3d_armor_boots_cactus.png | Bin 405 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus.png deleted file mode 100644 index f370644d318a9c3027c6cfcf5c2a67c906357d4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$5q%Lypr`fhU>Pyu5}kY6x^!?PP{AWo9Ey9+}HtE>l*!&%@FSu>8rk9V|gAZ6z%Ea7-Dhy?SzAZ42~=;M>nW4IQ@%Hb-^HBT*u@ZYex>(K}Llcta;~-eio0J78O?9Cb#_AnibP@ z#Lt*kWG||&X+Ec^H+}yH27^eR>=zqe#saNTEpd$~Nl7e8wMs5Z1yT$~28QOkh6cKZ y#vz6lRwm|F#^%}vhE@g!n@kiZplHa=PsvQH#I50Q=1d)+1_n=8KbLh*2~7YITYZ}V -- 2.40.1 From 901dcffb6e4c9284ab9d40a869b3466027808d55 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:52:18 -0500 Subject: [PATCH 102/321] Delete 3d_armor_boots_cactus_preview.png --- .../textures/3d_armor_boots_cactus_preview.png | Bin 355 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png deleted file mode 100644 index e4cbf137e33991d6c4d28a6eaacdf61c7cabc8c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIRq% zVn1*SY-2sa$oWW+!Akl`%^D_#6Muy6PU6zm0Xkxq!^4049#^7 z4Rj5SLkumfOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZnL0oX44$rjF6*2UngB@L BVVD2_ -- 2.40.1 From f5d678a25fa6691f266a47269be628bb470e4de9 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:53:16 -0500 Subject: [PATCH 103/321] Delete 3d_armor_boots_crystal.png --- .../3d_armor/textures/3d_armor_boots_crystal.png | Bin 389 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal.png deleted file mode 100644 index 3ca8899d9d9d3e92037a6dd8ae804d7b8ffaba3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjixZ45n! z^G^I{=-9!q@HNBidkmA$0>zaBrzZiGF_r}R1v5B2yO9RsBze2LFm$lWdH^|`1s;*b z3=DinK$vl=HlH+5kiEpy*OmPt7q5`M>iad8=Yc}5o-U3d7N?UF8kijw5)QDp@U-%L z)DkEZDLk^ep+U4Mpdq+%g(AzN5QQ|3MhnpnaVLd1|3_anPE4+_^|~OwI6;I*l!3v` zn6tKOb1um9swJ)wB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4fI^u65 -- 2.40.1 From 6ef6236d6fd378117ea905eac749fa0d2c7a22c7 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:53:53 -0500 Subject: [PATCH 104/321] Delete 3d_armor_boots_crystal_preview.png --- .../textures/3d_armor_boots_crystal_preview.png | Bin 356 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png deleted file mode 100644 index 0c6b3e46f1b72fbac8f486e14a42d643307733a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI%a+_7YED zSN4Zoyh8e_@7GwK2MSqwx;TbdoK8-VU|pOb5+KRp#3;w8n(XM9tXjjQr@$y)!?bW= zlR}TX0`C%4-uVudI~6z{3m$kb&LEyEu-AC!CIO%!swJ)wB`Jv|saDBFsX&Us$iUEC z*U&)M&^W}gTe~DWM4f D6gFY0 -- 2.40.1 From 2be683a156cacfeba060844643a3b9485b3bf423 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:54:30 -0500 Subject: [PATCH 105/321] Delete 3d_armor_boots_diamond.png --- .../3d_armor/textures/3d_armor_boots_diamond.png | Bin 389 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png deleted file mode 100644 index ef4020632e8548326177765e481348e15c5e0ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjhKEez+5 zr2YTSaAYULhsO-hZZcdy4HP#qIadr+##j>M7tG-B>_!@hljQC0!qCAg>jC6&7I;Jg zRq!1FVaBQ2e9}Nc_7YEDSN4Zoyh8e_@7GwK2MW1*x;TbdoK8+?V0KhUIKbY*)5`Nv zOQ2As@W|?h2GOQ~hTz5(iY$*p6w){vEkrxSofP8yAAQw0F}cFl>w@^=1Q8xl1_n1{ z&f2QYxggK0mbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#H eP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCwc;c)T* -- 2.40.1 From 490d138a0c510a30d1dc100bee596bfe7b593f5f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:54:57 -0500 Subject: [PATCH 106/321] Delete 3d_armor_boots_diamond_preview.png --- .../textures/3d_armor_boots_diamond_preview.png | Bin 356 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png deleted file mode 100644 index 7575fbd78fc7e67824a96f59f71373637cc1a1b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI%a+_7YED zSN4Zoyh8e_@7GwK2MSqwx;TbdoK8-VU|pOb5+KRp#3;w8n(XM9tXjjQr@$y)!?bW= zlR}TX0`C%4-uVudI~6z{3m$kb&LEyEu-AC!CIO%!swJ)wB`Jv|saDBFsX&Us$iUEC z*U&)M&^W}gTe~DWM4f D#baVw -- 2.40.1 From 8143b145a67e3b9adb49ffcda1688057eef8d461 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:55:21 -0500 Subject: [PATCH 107/321] Delete 3d_armor_boots_mithril.png --- .../3d_armor/textures/3d_armor_boots_mithril.png | Bin 368 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril.png deleted file mode 100644 index b6c65d68917538dea68ab94e65ccdbc2095029ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|NnN%8)F=H zr+DrUHs1l{ZhxY@7%0nF666=m;PC858ivL>4nJ@ErkR#;MwT z(m+A>5>H=O_J>@&Li(!j*I1qh3R!x(IEGl9PEKfGc2r0>z}~{s%JWf6AW$Um$m)g$ z(WZcg>r8v5bx1fVuyS!kJ>+P7@;gbSr)eP*Ltr8M+Q^RcpMZv_mbgZgq$HN4S|t~y z0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0il KpUXO@geCw@qiFB| -- 2.40.1 From e3f190e8cc62dcbe8678217e5440c402e1cf86a2 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:55:38 -0500 Subject: [PATCH 108/321] Delete 3d_armor_boots_mithril_preview.png --- .../textures/3d_armor_boots_mithril_preview.png | Bin 336 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png deleted file mode 100644 index 21de8c10fa81b29e277202b15b589d02b38b2379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI21sKjh*S(pP=I z#_~K+NYB&7F~s6@a)Jcw;slWZNe(AQIY!lFN5^E?)FK#IZ0z|dUR&_LJFIK Date: Tue, 17 Dec 2019 08:56:02 -0500 Subject: [PATCH 109/321] Delete 3d_armor_chestplate_cactus.png --- .../textures/3d_armor_chestplate_cactus.png | Bin 520 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png deleted file mode 100644 index 0dd7eb0572739848c75b706a39ff0f0dff43357a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|Np0U);biJ z-MzFXsNXfP&&9jh-oMKUD85!M><3U8V@Z%-FoVOh8)+a;lDE4HLkFv@2av;A;1OBO zz`%C|gc+x5^GO2**-JcqUD+RU@e1jyzF%W`9w>Ce)5S5w;`G}Ij$DTo1YA|sIh+gb z2F_&WxwOvsBhy*lB*nYSoz}%~&bT$@CGRg*$*;ZtR~y#?&h-A?BA7k2~~&Aa8ct20T+KJRc`Kf`a;FO4f*)Rt{r*YD_= z<0G?4f93JBocndw{17_oA9AnX_Fq%LTi%&+p6ppCCaI)E8;Wl5DV)%k&Gs)buzGrc z@e$YUCraXPrdLO*i#mMyY{`77=CoTlbH%N+>viw!7`?8lT{AqLUIz4&YKdz^NlIc# zs#S7PDv)9@GB7mPH8jvQG!8Meure{XGB(#XFtjo-*kqzO0YyV@eoAIqC2kFeGiT}m PH86O(`njxgN@xNA5ZJUY -- 2.40.1 From 410a162cb9837099896f8d3ee4f27683a26f7ed4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:56:18 -0500 Subject: [PATCH 110/321] Delete 3d_armor_chestplate_cactus_preview.png --- .../3d_armor_chestplate_cactus_preview.png | Bin 414 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png deleted file mode 100644 index 9523ef787c986c8464b5df4903ccae2ea68432f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI Date: Tue, 17 Dec 2019 08:56:39 -0500 Subject: [PATCH 111/321] Delete 3d_armor_chestplate_crystal.png --- .../textures/3d_armor_chestplate_crystal.png | Bin 508 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png deleted file mode 100644 index e4981b100d6320a966d03954e0d702b66790f006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%&kNMZSQ6wH%;50s zMjD8dpbjkoGZ7=RvX%)JkAlKH zPYO60C9wB2H8B|oF)}E;(Od7z!^#MBwQ7lLL`h0wNvc(HQ7VvPFfuSS*EKZIH8c(} ww6HQUw=y=@HZZg@FxX_GH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e06w>tE&u=k -- 2.40.1 From 08562bad16a3127216c98ca50d17bb43d12fdfb8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:56:53 -0500 Subject: [PATCH 112/321] Delete 3d_armor_chestplate_crystal_preview.png --- .../3d_armor_chestplate_crystal_preview.png | Bin 431 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png deleted file mode 100644 index 801dc2ae4a588fc45355db75f27f23cb8c07db16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI<_tkh4fY5udzH26e{v`aSX9I{q};P-~j~zmq490 zt(zNKBP_ThI#_iQ7`Y=3IPFPU$SHZ^s^*WY=d$|_?!2r0rOmXNOtDjSo82 zZ^b!yGkrchRq)qA4V?#-cUYumMogIE%3YL{<#gTe~DWM4f+!&16 -- 2.40.1 From f4cc7ae3efa01d335971407641a54f55bcbee7d8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:57:34 -0500 Subject: [PATCH 113/321] Delete 3d_armor_chestplate_diamond.png --- .../textures/3d_armor_chestplate_diamond.png | Bin 508 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png deleted file mode 100644 index 35384960fe5955fed1886757ab020a298b0a60e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%F}QaAYULxg!kMPcuBb$?)NE{{J6d|G#(r|Hbh8EyMIapvu~s>>EIhj3q&S!3+-1 zZlr-YN#5=*3>~bp9zYIffk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#iL zPZ!4!i_^&o60D0Ev;|n0Sfsm|6en+Rl89a;IGc%$Z3ojvmz=N$K|k#Sd;%`48eA&s zUYrJbER&4W^QL69IEb(Yai@xT`Law}9p)?I4H7V7S3Nf;l0$K0l;TB=dlw4@oRWCe zK00mu^vR8*Gqf>cQASjhV#|?L4kiIACMJSTNudglG~PTC0_xBbFcUE{D{Glx@hB+F z^Q3^2Q388UQxlVc5F>-a8@=_eJgkgBSF4t|MwFx^mZVxG7o`Fz1|tJQb6rCNT|?s# wLklYtb1P$WZ39Cq1A|Q_iW5*YmdKI;Vst0Ipn_CjbBd -- 2.40.1 From 1fd3b4e69a285646b0f7470ed79225bc5e969984 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:58:02 -0500 Subject: [PATCH 114/321] Delete 3d_armor_chestplate_diamond_preview.png --- .../3d_armor_chestplate_diamond_preview.png | Bin 431 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png deleted file mode 100644 index 92909b3dc4fc2cd9969142b5d160571029db8f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI}1%moMFi_!@hljQC0!k53-z#qtAFY)wsWq-)UE2OXbevRdMpiq&gi(`nz>9-dQ1rI0)xCH8~ zY2Dn=8ezd5(ZQ;dz{nkOz-dp)LQcsOS2cfJJ(t~gaOYj^FKwpH91k=tE_`DOX?)PB zek;zwo9Xl6se-=_YUn(uyu%_jGh)INSMH*uEXR{NkpbMN#bTz4GPlkD*L3&(F2))z zhl^HAS*`(XS1oakC`m~yNwrEYN(E93Mh1rFx`qb2hQ=X=7FH(aR>tPq28LD!2AfP2 fC!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6 Date: Tue, 17 Dec 2019 08:58:18 -0500 Subject: [PATCH 115/321] Delete 3d_armor_chestplate_mithril.png --- .../textures/3d_armor_chestplate_mithril.png | Bin 440 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png deleted file mode 100644 index b06b2a8157e9754a25bd77084565840858f5f147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$l*!&%@FSu>8rk9V|gAZROjj97-Dhy?ZiO71_h3`k8GW>4%b;{yk=PQ zu6~(^*5-%7>;G9CJ7!*|#^CI{Y|n~oYz>-6m#c9ztYC;1ds?b{ifLbH_5lmaS;~1c zKXi#HJaKSr2-WJgTe~DWM4f@1l)= -- 2.40.1 From 6f5ae156db3d311d2bef1853c1a5424464ae7259 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:58:32 -0500 Subject: [PATCH 116/321] Delete 3d_armor_chestplate_mithril_preview.png --- .../3d_armor_chestplate_mithril_preview.png | Bin 382 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png deleted file mode 100644 index 4859295543228417a3c23d94f138ae360209b564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIPx!4PQ&910@(sg8YIR9G=}s196hP-Cfuc({|JXIqW5#zOL*Kxp;;2 zRo}0%JP#C#^mK6yu{fQaAi=8PAiy&rVg{4fv8E<32SG=L+%+ws2V4budK;PaB3K<9 zP9D8saYf>!SPJ8Y)&Rzq$0tM#mbEo-$1$pki%&TIfwO@@j&aF^W2y#RY|;!2F+UYl zPe(ks541$J#5JNMC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{wS{WE@GEtm> eq9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywqdglxJ1 -- 2.40.1 From 7215abca06e712839adabc35a7931a6a290d0ee5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:59:04 -0500 Subject: [PATCH 117/321] Delete 3d_armor_helmet_cactus.png --- .../3d_armor/textures/3d_armor_helmet_cactus.png | Bin 469 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png deleted file mode 100644 index e48ec344562969eb9327eeaeb5d70fda8924406e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|NjmJW~X-6 zdNdeSTh5E98%4&x)%5d+anV>Q@(L<^I~0wpQQkVqDh8DarEFraf8Du)LV-nvIuy z*zN@PhKIR}r&s46)Qu08*x{-o{-mC#M_ESZ&tbMmFR>LH5)PXI-KbjP8c~vxSdwa$ zT$Bo=7>o=I&29nO2Eg!{N-CIzSB! Mp00i_>zopr0CSR^g#Z8m -- 2.40.1 From f6a803b4f5a493edb1bf487bfed7616135c2cece Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 08:59:39 -0500 Subject: [PATCH 118/321] Delete 3d_armor_helmet_cactus_preview.png --- .../textures/3d_armor_helmet_cactus_preview.png | Bin 352 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png deleted file mode 100644 index c8be84a1f0b82edead4aece667b5bb6471099969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIF1po}8R4u3E#iaG~D9V-+kcff_kX zUK%21jE+rAixWh8n07HT%-F~I-NLx;9ncun64!{5l*E!$tK_0oAjM#0U}&yuXrOCo y9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB+!_vN&eQ>FVDNPHb6Mw<&;$UlX Date: Tue, 17 Dec 2019 09:00:07 -0500 Subject: [PATCH 119/321] Delete 3d_armor_helmet_crystal.png --- .../3d_armor/textures/3d_armor_helmet_crystal.png | Bin 431 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png deleted file mode 100644 index e63a63f7a7fc5f377fa6e717639901f8ebb6b4f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|NjixZ48so zGR(fmu<$iQ&tZm+9SrqL8LDP66i)!k*8YB4160gd666=m;PC858ivL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh3T1k_IEGl9PEI($#M0Qn zC@)}SR(52yLx|@|f%QxqF9f*m;W~2p64OVm2^#wTK#5I@7Xu~s+!JwOj@aALv$0B0 zGWqKwhG-_`j$^N4Cx|<8IhcgKZ<0|vaNq#PBF?Jmf@{h|dYFWOfs!h5*p%Um3D8p2 z64!{5l*E!$tK_0oAjM#0U}&yuXrOCo9Aao;Wnyk+Y_4r!Xk}oq$wYAiiiX_$l+3hB W+!_vN&eQ>FVDNPHb6Mw<&;$Smr-IJ_ -- 2.40.1 From 6c139d85e4ab70e0f0e03a484500a951cc5ff312 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:00:22 -0500 Subject: [PATCH 120/321] Delete 3d_armor_helmet_crystal_preview.png --- .../textures/3d_armor_helmet_crystal_preview.png | Bin 343 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png deleted file mode 100644 index dddbbc07ef75c15226507c62d41bd026ff1bc3e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI^mS!_$i*w9 zuljzC<$0ixk*AAeh{fsT1O_HYjf4h9A4b(=g@S|X0;^b9j{RVfkZ^K7DB{ZGA!61T zXu##hc$a}8shM-)Th<+HK;5b(t`Q|Ei6yC4$wjF^iowXh&|KHhK-bVX#L&XZ#N5i* pT-(6V%D`ZgiQ)tl4Y~O#nQ4`{H5|^IsRPu&;OXk;vd$@?2>>&wTQvXx -- 2.40.1 From 2ec123698e13e4aa9470fe9f6f4ef015bea9e3cf Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:01:07 -0500 Subject: [PATCH 121/321] Delete 3d_armor_helmet_diamond.png --- .../3d_armor/textures/3d_armor_helmet_diamond.png | Bin 431 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png deleted file mode 100644 index 611dc9f551ba4ea47b0f793756fd354d5b2b2526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|NjhKEezLB zGd#P=@ZmATxg!imb~0>O&ah+_!}LC&temp2IZ!cUNswPKgTu2MX&_FLx4R2N2dk_H zki%Kv5n0T@z;^_M8K-LVNdpDhOFVsD*&lN83hAr9Ut@V5D3s~x;uvCaIyvD06H8+Q zqr8BTS=o`*4k4Z=1=cfdyb$2JhwI4YOH3cNCTQsU10^;sUJR7jb5F#DIbv@|&&Dc2 z$>gt#7^0b!JC41IognVW>0uHA21=^LVN-@LCO}J7 zOI#yLQW8s2t&)pUffR$0fuXssp@FWUafqRXm5I5PvAMQ^p_PHbCKJU8C>nC}Q!>*k Wacel7Ia3Fyfx*+&&t;ucLK6VE-hylZ -- 2.40.1 From b5f5bf7f409cae6a0ca2e1a451a8dc36cbc28a36 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:01:38 -0500 Subject: [PATCH 122/321] Delete 3d_armor_helmet_diamond_preview.png --- .../textures/3d_armor_helmet_diamond_preview.png | Bin 343 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png deleted file mode 100644 index ed52aedefb10fd4038ba5adde8ec5488977470d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIOaJki%Z$>Fdh=kc(GH zU-kVO%kw}XBTpB{5R22v2@Fh*8VL=IK8&i#3Izw%1y-@J9Q(l{A>rhFP{ftVL&U5x z(16R0@h$^HQZwhox2!wZfVx#nTq8 Date: Tue, 17 Dec 2019 09:02:16 -0500 Subject: [PATCH 123/321] Delete 3d_armor_helmet_mithril.png --- .../3d_armor/textures/3d_armor_helmet_mithril.png | Bin 426 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png deleted file mode 100644 index 57e579e37f24c280d5e2be4f54d16180dbb662f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$|igGfV$Vydzat3o@cfq_9&M$^4imesPXiyK%N7~ Date: Tue, 17 Dec 2019 09:08:46 -0500 Subject: [PATCH 124/321] Delete 3d_armor_helmet_mithril_preview.png --- .../textures/3d_armor_helmet_mithril_preview.png | Bin 343 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png deleted file mode 100644 index be505238c300fb72dc5db264d45eb877a5eb2367..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI^mS!_$i*w9 zuljzC<$0ixk*AAeh{fsT1O_HYjf4h9A4b(=)#PN=JxqEI4dD%q2USIU0#zDZ5``sL z7bl2Z;ALRA%gvduzA0`#P`7G{YeY#(Vo9o1a#1RfVlXl=G}kpW&^0s;F|@EUF}E@{ p*ETS;GBDU=qBsFXLvDUbW?Cg~4Tm#l>Hsw`c)I$ztaD0e0stBZTzLQh -- 2.40.1 From 807621a4ea5363f81ad55ccea99d04f78e0b5f68 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:09:20 -0500 Subject: [PATCH 125/321] Delete 3d_armor_inv_boots_cactus.png --- .../textures/3d_armor_inv_boots_cactus.png | Bin 407 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png deleted file mode 100644 index 3f57f22a4506f9d9d84425f3a5061ac93333319f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFri0k z-{o}o(i-n(`=EZ1ph;B2YM>g%k|4ie28U-i(m-mu=e)v_-YVHKHUXu_V Date: Tue, 17 Dec 2019 09:21:45 -0500 Subject: [PATCH 126/321] Delete 3d_armor_inv_boots_crystal.png --- .../textures/3d_armor_inv_boots_crystal.png | Bin 379 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png deleted file mode 100644 index e3118933731045797394caf572bacc5567e4c110..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFl*!&%@FSu>8rk9V|gAZ_MK79$r29`_Ws zHW6hPmj=fpoJRr*Qv`yHfO26$DFS9}hCRHJEUc`O3M^I(3~w^oU&IzCSOd*dEpd$~ zNl7e8wMs5Z1yT$~28QOkh6cKZ#vz6lRwm|F#^%}vhE@g!n@kiZplHa=PsvQH#I50Q S=1d)+1_n=8KbLh*2~7Z`S7j3b -- 2.40.1 From 456989840461a2332dbaf114d69dd830b9e7f066 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:22:21 -0500 Subject: [PATCH 127/321] Delete 3d_armor_inv_boots_diamond.png --- .../textures/3d_armor_inv_boots_diamond.png | Bin 379 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png deleted file mode 100644 index 0a866e75f2ab3245b66abcc1daea72f7d414e76c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF21sKjh*S(pP=I#_~K+$i>seF@)oKa>4;-30BqyjuQewVhJWeEJiL4JnkuM zZ6eApE)9-HIFAGrrU(QX0p-GiQUuJ{410JbSy)*m6<` -- 2.40.1 From e45854c1d31023454cc4e9a4be991ebc0e5dcea9 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:22:34 -0500 Subject: [PATCH 128/321] Delete 3d_armor_inv_boots_mithril.png --- .../textures/3d_armor_inv_boots_mithril.png | Bin 379 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png deleted file mode 100644 index 00c26f946879a30376bf31c72a35dca18000e983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?n|H`z>h$P?oVI$S;_|;n|He5GTpo-G!lpRn`N@;VkfoEM{QfI|9OtQ?>b| zfr9KMp1!W^54m`S^i|)lu{;kHa`AL=4B@z*oN$0yf|a#_6ah0f!yaBq7FJeC1r{p?hBuk)FJg-mtbyjKmbgZg zq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6D SbEXbZ1B0ilpUXO@geCxWhh*gd -- 2.40.1 From 72933143a0f7dbca58febb9be68f4cab9143baab Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:22:59 -0500 Subject: [PATCH 129/321] Delete 3d_armor_inv_chestplate_cactus.png --- .../textures/3d_armor_inv_chestplate_cactus.png | Bin 430 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png deleted file mode 100644 index 7f5bc70362ccc3694634b4a5970b5a345c40ae53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFri0k z-E4pN(wd-tS4CS{|1Kw>_*JVvkAcb;OkH}&M z2EHR8%s5q>PZ}u5UgGKN%KngxS4dy={Tj>jK%qQO7sn8e>#5z2TrCD7&dL4?vNN_u zRWWhfHq`8z_o+GCJT5^au6|#sWuyP0)BGRw?HSMAURpITP`%~Y_l0XJMAuIIb?NjoaDnD|6U`{bP0l+XkK%=n3t -- 2.40.1 From dbe186d09ba620e5cf345f4f607972bcee2aa06f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:23:22 -0500 Subject: [PATCH 130/321] Delete 3d_armor_inv_chestplate_crystal.png --- .../textures/3d_armor_inv_chestplate_crystal.png | Bin 398 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png deleted file mode 100644 index b9593bf202440aa7f3d2ce1e936a67e00292c652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8Ynr6BA?=*d`o1Z_sWurKfixkE*IE zRdP`(kYX@0Ff`XSG|)9P4l%T_GBLL@ qHrF;Vv@$T*WTH3$MMG|WN@iLmZViVsXX*eoFnGH9xvX Date: Tue, 17 Dec 2019 09:25:04 -0500 Subject: [PATCH 131/321] Delete 3d_armor_inv_chestplate_diamond.png --- .../textures/3d_armor_inv_chestplate_diamond.png | Bin 398 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png deleted file mode 100644 index f5ca3aa586a7e5eb8284ec332d0c588b2eecc8d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?NMQuIvxFc!l&;->VNK49 zM@mv^2NY6b^d3dT&EiNB>1vkrdiM0`(uJK4rKg@gO-ztgV4HC4yg|Fsl%C#&JgTau zj2qTE95}$hkmMxXc<1gfKcLB~C9V-ADTyViR>?)FK#IZ0z|dUR&_LJFIK Date: Tue, 17 Dec 2019 09:25:18 -0500 Subject: [PATCH 132/321] Delete 3d_armor_inv_chestplate_mithril.png --- .../textures/3d_armor_inv_chestplate_mithril.png | Bin 402 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png deleted file mode 100644 index 6ca92315920760ebf76db3f76c12a5223076966e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFwt=2Wl_X&prB^($L~Njj3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|Va? z5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Jr;B3<$Mxid11wEUJUl&34r|^>NNGJ% zI-rp9NJ;9&q-Q4-Qrq9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywnz5_Pfw -- 2.40.1 From 928f0fa0d14cc4e934786a9ca39744e15cabbe50 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:25:48 -0500 Subject: [PATCH 133/321] Delete 3d_armor_inv_helmet_cactus.png --- .../textures/3d_armor_inv_helmet_cactus.png | Bin 381 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png deleted file mode 100644 index 10a2b394839e242608f9cdee2703d1f9b5f79c3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF+@cw*i$gmIV0)GdMiEkp|)UftDnm{r-UW|pU`bO -- 2.40.1 From 394fd234cdd87ad656687dd83a0a5843877f0b2d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:26:05 -0500 Subject: [PATCH 134/321] Delete 3d_armor_inv_helmet_crystal.png --- .../textures/3d_armor_inv_helmet_crystal.png | Bin 366 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png deleted file mode 100644 index 565383e6f1540e7d78a8d7d4e8cf16f3fb74049b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFQpUpjVMV;EJ?LWE=mPb z3`Pcq=DLOkx`xIfh89*P=2ph$+6IPJ1_ql<6epl)$jwj5OsmAL;c(_m9iRpVPgg&e IbxsLQ0J{`t%m4rY -- 2.40.1 From 76b78e1a97053cfb22c6d62b2ca42f85f3cfc4e6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:26:49 -0500 Subject: [PATCH 135/321] Delete 3d_armor_inv_helmet_diamond.png --- .../textures/3d_armor_inv_helmet_diamond.png | Bin 366 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png deleted file mode 100644 index 6df57bde3811c32a594601673c6297f1825ef39b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFEal|aXmTV0J{V$E9(IsMO9VT z4Go?dD<&~;9oE^a!`VA=T3ho$1{H~qw>TJf?c?%%;cHsw`c)I$z JtaD0e0szkhY4rdA -- 2.40.1 From 4075559f2a0d9a0bc1036b1cfe1144e5df7c44bc Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:27:05 -0500 Subject: [PATCH 136/321] Delete 3d_armor_inv_helmet_mithril.png --- .../textures/3d_armor_inv_helmet_mithril.png | Bin 365 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png deleted file mode 100644 index ce4e9108b3e3d9bccfee26658017f08657857ba9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFYh7ML)4d!3JfF~Sd` Date: Tue, 17 Dec 2019 09:27:30 -0500 Subject: [PATCH 137/321] Delete 3d_armor_inv_leggings_cactus.png --- .../textures/3d_armor_inv_leggings_cactus.png | Bin 413 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png deleted file mode 100644 index f7c1a2880d69f83bd76aaf91cca840a45b5e67cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF<>&pI+i&scr_5B*l^FW~lPZ!4!j_b(@4a{z?ii(b`3eGo<9yzKa za6+J%aT8A?kEyV*_;iI09t)&gPDM5tvg$n5I*`FMNvJF|!Hdyz<-sLKVpwMc9SCv| z+@NPFzCdb2$R>v5D4`ocY;1~*Ey@gDANj8Rs}?r`+NE0J8c~vxSdwa$T$Bo=7>o=I z&29nO2Eg!{N-CIzSB!p00i_>zopr E0B2oyz5oCK -- 2.40.1 From 8b1d853415f6fe9b6760aa029cba4849f6435769 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:28:27 -0500 Subject: [PATCH 138/321] Delete 3d_armor_inv_leggings_crystal.png --- .../textures/3d_armor_inv_leggings_crystal.png | Bin 379 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png deleted file mode 100644 index d466b204ec93bf9b4509ee7b3299cb7aac714139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFO>_%)r2R z1cVuHsw`c)I$ztaD0e0sze4Y9Igr -- 2.40.1 From 636f4fb4d36dd3dc578c62fa80a58a8753b457bb Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:28:48 -0500 Subject: [PATCH 139/321] Delete 3d_armor_inv_leggings_diamond.png --- .../textures/3d_armor_inv_leggings_diamond.png | Bin 379 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png deleted file mode 100644 index c4cd85c7efbdecab6d8460b31fe1b47e5c043f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_!@hljQC0!qCAg>jC6&7I;J!GcfQS z0b$0e+I-SLLG}_)Usv{rT)aa1s_)lWo(BrqdAc};a9mGLXkd18R1jb=YU%OynZxVI z6P%p<*hNBF;EaJtlM#!=)Ix)vMjmITATOpKudW1dNr?l~oERBW&T})(7tjd+nxtCd z8c~vxSdwa$T$Bo=7>o=I&29nO2Eg U!{N-CIzSB!p00i_>zopr0MM>#6aWAK -- 2.40.1 From cd5a8528efd5e287cfed3de78f6da7ab6a5c8b0b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:29:02 -0500 Subject: [PATCH 140/321] Delete 3d_armor_inv_leggings_mithril.png --- .../textures/3d_armor_inv_leggings_mithril.png | Bin 372 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png deleted file mode 100644 index ffe972ce7a3a65be0310daed757899dc71c0dcb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF}ZPTexOLwos)ln3K&a*{DK)Ap4~_Tagw~Fdh=kc(GHU-kVO%kw}XD^C~45RU7~2@T9{jtT+{MlC)ub7Gksd6E?z zl3BW(B$hGtoLXYs)5zm2;OyBD=qZ?^$;^BsNP~f)uavte?8WXCKvPspTq8 Date: Tue, 17 Dec 2019 09:32:28 -0500 Subject: [PATCH 141/321] Delete 3d_armor_leggings_cactus.png --- .../textures/3d_armor_leggings_cactus.png | Bin 449 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png deleted file mode 100644 index 88aa32defab5195208a3e3849f40f5017d412597..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$l*!&%@FSu>8rk9V|gAZ)b8ox7-Dhy?SzB8M+`VvVwu&&84|f0N*;tH zXusS)Rr$Nul7c)1?Vri(ZJ3wtsVwF`xn#qQB@65{IsTg~2q~WOewFp=grR|jPw~ZD z7al#aUvZt`$~5IejJ%dga_qbMYJ3!*No+Zzq@t4^J!x*sn{D52oY-c^T`$#FtJC)P z#d(fr^Ut2#d9R-F&o|+`Ywrba0G*^-;u=wsl30>zm0Xkxq!^4049#^74Rj5SLkumf tOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZnL0oX44$rjF6*2UngDNTmPh~q -- 2.40.1 From 536f27a30be1dbb128a573cf36330aa034bb67e7 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:34:23 -0500 Subject: [PATCH 142/321] Delete 3d_armor_leggings_cactus_preview.png --- .../textures/3d_armor_leggings_cactus_preview.png | Bin 364 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png deleted file mode 100644 index 9dab4829c88cf4a3648124dedc4fd7d9ee60a66a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIt1{r~^}S1tVG36x+g3GxeOaCmkj4a7vf&}a0gboHrRRe(|x(ia?C~3S%TGQgLaK+X0q^ijJhK-XZ z8QL*Ac8EFNVLGxyIfS#Nkek6)U8Cb!bVwu6D=Rw10-2@FX90~=Epd$~Nl7e8wMs5Z z1yT$~28QOkh6cKZ#vz6lRwm|F#^%}vhE@g!n@kiZplHa=PsvQH#I50Q=1d)+1_n=8 KKbLh*2~7ZnGG~hb -- 2.40.1 From c163268b2c353e4d715749d660df840d659960af Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 09:34:41 -0500 Subject: [PATCH 143/321] Delete 3d_armor_leggings_crystal.png --- .../textures/3d_armor_leggings_crystal.png | Bin 406 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png deleted file mode 100644 index 754bd0ff909c38b096deafc48caf681e9ae9581a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjixZ43)v zGfY0qF#8@u&tZm+9SrqLf#TIW?^gkpF_r}R1v5B2yO9RsBze2LFm$lWdH^|`1s;*b z3=DinK$vl=HlH+5kiEpy*OmPt7q5`M>iad8=Yc|Do-U3d7N?UFBv= zaA@41m>S06#3(23py0=<)F;q!yi=efxG_V4%3K(GGDZg`f9a!aIUDMl4#f zaiem}k%wX%F9bMqcuo>!Fk%;MXo)}h321|AiEBhjN@7W>RdP`(kYX@0Ff`XSG|)9P y4l%T_GBLL@HrF;Vv@$T*WTH3$MMG|WN@iLmZViVsXX*eoFnGH9xvX Date: Tue, 17 Dec 2019 09:34:52 -0500 Subject: [PATCH 144/321] Delete 3d_armor_leggings_crystal_preview.png --- .../3d_armor_leggings_crystal_preview.png | Bin 363 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png deleted file mode 100644 index 7808496a8283279e0569ff845678bf59b6c9d8d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIzzS!wele80we)|Np;b*0b$ES;mqezhDN3XE)M7oFs2|7ml`jQ>%a+_7YED zSN4Zoyh8e_@7GwK2MRfOx;TbdoK8-VU|pQh!QiNIKzYFu6^=s{EIqxfjuQP1-Q5Zt zj|Dk+MOhMUm@+e)6nfkj?1>R*`N$#g<*fn(!|J2LD{n Date: Tue, 17 Dec 2019 09:36:19 -0500 Subject: [PATCH 145/321] Delete 3d_armor_leggings_diamond.png --- .../textures/3d_armor_leggings_diamond.png | Bin 406 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png deleted file mode 100644 index a57cf071caab59e212c8e96a8f524fb54b74dc58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%|_C&cyt|NjhKEeszX zGh9E-@a!hTxg!imb~0>O4ipa-JmC*i##j>M7tG-B>_!@hljQC0!qCAg>jC6&7I;J! zGcfQS0b$0e+I-SLLG}_)Usv{rT)aa1s_)lWo(BqrdAc};Se#BykYHWRz{NL}L_5Tt6n@@w3GWEr7_n%@ z#*NA?M;?l8yb$2b;W?)FK#IZ0z|dUR&_LJF yIK Date: Tue, 17 Dec 2019 09:36:53 -0500 Subject: [PATCH 146/321] Delete 3d_armor_leggings_diamond_preview.png --- .../3d_armor_leggings_diamond_preview.png | Bin 363 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png deleted file mode 100644 index 84976c43ed245a0675c5319606dc971c1a4207a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI%a+_7YED zSN4Zoyh8e_@7GwK2MRfOx;TbdoK8-VU|pQh!QiNIKzYFu6^=s{EIqxfjuQP1-Q5Zt zj|Dk+MOhMUm@+e)6nfkj?1>R*`N$#g<*fn(!|J2LD{n Date: Tue, 17 Dec 2019 09:37:04 -0500 Subject: [PATCH 147/321] Delete 3d_armor_leggings_mithril.png --- .../textures/3d_armor_leggings_mithril.png | Bin 381 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png deleted file mode 100644 index 2143572ee6402085d7271fae778b66102bf8686b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%SzC&cyt|NnN%8-vYv z#5n9u@!SvOy8iVE1j;g&1o;IsI6S+N2I3@nySp%Su*!M>Ih+L^k;M!Qd`Cc-ajG_- zG*FPe#M9T6{UH~xkiP2sHJ0arLT;Wejv*GOlM^IZ7c;POa0vw{Eb&;$#1zKi#F)p; zqbRVQ$(>_~1EZrhhgLv~!>7HS>jai3EihF(*Cik{ok>;ImBVwAD8rTCJTLDno!|hP zs9NG0QIe8al4_M)lnSI6j0_CTbqx)44UIz#Ev!t;t&GjJ4GgUe3^ti4PC(I+o1c=I XR*74~;mnyjKn)C@u6{1-oD!M Date: Tue, 17 Dec 2019 09:37:14 -0500 Subject: [PATCH 148/321] Delete 3d_armor_leggings_mithril_preview.png --- .../3d_armor_leggings_mithril_preview.png | Bin 339 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png deleted file mode 100644 index 178054ac82dc86123d640516d4f1ee5717f62605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI21sKjh*S(pP=I z#_~K+$k5ZpF~s6@a)Jcw;)D(cM~wr@3sQ76GS;+&A8-x0&>F;eXq$jofDlWf4HHYP zH3tL3q%z*#=lnOrfSOfHTq8Ah3 -- 2.40.1 From eefe9066c7ecb93f88a5ff6fd302a844ce85023b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 10:58:04 -0500 Subject: [PATCH 149/321] Add files via upload --- .../textures/3d_armor_boots_mandalorian.png | Bin 0 -> 210 bytes .../3d_armor_boots_mandalorian_preview.png | Bin 0 -> 201 bytes .../textures/3d_armor_chestplate_mandalorian.png | Bin 0 -> 322 bytes .../3d_armor_chestplate_mandalorian_preview.png | Bin 0 -> 268 bytes .../textures/3d_armor_helmet_mandalorian.png | Bin 0 -> 228 bytes .../3d_armor_helmet_mandalorian_preview.png | Bin 0 -> 201 bytes .../textures/3d_armor_leggings_mandalorian.png | Bin 0 -> 212 bytes .../3d_armor_leggings_mandalorian_preview.png | Bin 0 -> 190 bytes .../mandalorian-space-marine-13667359.png | Bin 0 -> 1617 bytes .../mandalorian-space-marine-13667360.png | Bin 0 -> 4283 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mandalorian_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_mandalorian_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mandalorian_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_mandalorian_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667359.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667360.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mandalorian.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mandalorian.png new file mode 100644 index 0000000000000000000000000000000000000000..b91694d0f58c9b5cdc656102bd3efe0e0285b3db GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQjEnx?oNz1PwLbIIh+L^k;M!Q zd`Cc-ajG_-G*D19z$e5NNVDkkCni0};XxGAxm>AFCA v=s|^4;W=DEhc7ubD)iQv_cR3>gfK9iP3PoUD%(B}XdHv5tDnm{r-UW|XgNWE literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mandalorian_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_mandalorian_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb3f4ce0e8f2311b1f23931f9122a95967a5baf GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QjEnx?oNz1PwLbIIh+L^k;M!Q z+`=Ht$S`Y;1W-^kz$e5NNVDHYaZfQjEnx?oNz1PwLbIIh+L^k;M!Q zd`Cc-ajG_-G*D1Fz$e5NNVDU=1jA%00mcjx;TbZ%z1mkk?)X#0PBUg#DoO@#vRA27&PPXj$=&r`{X@CD8EQ;}e?Hul4{dU&2j|?}`7m3oDNLC%WzCv3`u0wLlyiiDavUW=e!&d? zA>it%5F?;irKgKyNX4AD7fuVd81OI$L7(}^G-enY24_KW4M3pA;Nl1#|?1r>mdKI;Vst E0QGuY&;S4c literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mandalorian.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_mandalorian.png new file mode 100644 index 0000000000000000000000000000000000000000..6df1c3236939a9bb19def44cc2f7e5d46b81ba55 GIT binary patch literal 228 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 Date: Tue, 17 Dec 2019 10:59:07 -0500 Subject: [PATCH 150/321] Delete mandalorian-space-marine-13667359.png --- .../mandalorian-space-marine-13667359.png | Bin 1617 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667359.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667359.png b/mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667359.png deleted file mode 100644 index a11949bcd566308b5562225598d07577aaf9ccfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1617 zcmV-X2Cn&uP)AF5GA|+-ah{i?e zra{Don}E=i?zE+=LL#-8O%Sv+r4Zaa`9{8Q-sH@jJ9pmGhu*t+_uV;X=A3WN&&-)= z6vnf-xY)L6V(k+X6O9~x$-A_)7St%ewzig}(D3kZ z5;qq@l*@225B~%QN>!VRw>1OfCz9*c*tfcSB54gU?XG! zV3Jng10fZ!I{O$S#R3S1KWP?7Q2@#WK}2~C07UuRr)&(6Go3r@Qs!U~lteWEud)UB zCcNX#!D!@t`rk%0;#&Nc%jEWN@%!U%Q^r!j8o=VO0Wc8A1=!-REx<#dk!!M+Nn7m$ zZ@ukEHvf6jK^ppQ_2;)+7SY)E!T$E4j}JJ$+rRwke)<3M{B?D_FQ<-e(LcPe?*z*V z3PpGC+Et*RJ^P-oEBOBC@#Ag4lU+5`ucjYva%922GUw9%?<#l*w>#=6<2<`QT+MaU3HL) zt+Vd?4_D`%x%!U=0BBA$PpcMi_M4N1v=9IQB~O2Up+Fmzl~!c|K-%f)>9_?9?s=yT zAEe(yLNJF+7VQK8LTGV7J(hBfDq#Rr&mMNeBtb>*WAI7`p0<9Q0lV z-oCehP>{BQ8~H3c2f)nCOnY{AwgZg0xw&>|BN1z>Y89wUU}1#^3$gpZ-*fWhW~ovD zR24eJ2SB+S!={Q)Y-{@d!B5%`9{lACxmY5{V0DvKvl4t$q&1G64bMR}ek z#T0^-pl<>YqlJV=zWlidLTV*v)o%vsfxm_=8D zc*X)(C?NF(05Tg83~WxM&=P=<^5_RHa{R=}tx6Bxv8xMNl;r|G@MSZDl>s2Ds|k`& z8z=+-XF4U>&UoHehR)u9v60#tmG7FRmgp~l0N`wILfwg8sT2#!s zm=Tx-v;_|{Mri=7S%L5=!3YXS_W>{V`2J$c8uvxC_x)11*C2Eq04qRQu8_;03Rn$5 zDqa+ucQuL`-GRskrp-zSX*01*G;vrpaq0X%Y+008bE;K5N@3;+rryC0Cd zx(ot<3koP=SnF~P0A6sA$5%MFL(LBdpDdRFfLs@lRUsK0EX&*qg4&*6nv<*(_-p#m zAo2nQg^~d9TQ}|&WM=^l0GcJtOIm;|o}euRfN$13wWS3B0DQ~6VP<86*fyWM9ou1i zwCV$(@jLbfk@p8=8;;U>D~z$B8!jLxf@7m5z`&=~6PR5(W|7<8GRVcykKHx!?-t10 zCbG{mSpZh#pC8DgNT?nl>jjmr$yuhC(%zR@AVmQy+NShXh1S|$TYWwQfid$^+)z Date: Tue, 17 Dec 2019 10:59:18 -0500 Subject: [PATCH 151/321] Delete mandalorian-space-marine-13667360.png --- .../mandalorian-space-marine-13667360.png | Bin 4283 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667360.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667360.png b/mods/minetest-3d_armor/3d_armor/textures/mandalorian-space-marine-13667360.png deleted file mode 100644 index 6dc26b1b7e65ba0cd5fdb8d3838e3948060f96d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4283 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 Date: Tue, 17 Dec 2019 17:22:04 -0500 Subject: [PATCH 152/321] Add files via upload --- .../textures/3d_armor_inv_boots_mandalorian.png | Bin 0 -> 171 bytes .../3d_armor_inv_chestplate_mandalorian.png | Bin 0 -> 247 bytes .../textures/3d_armor_inv_helmet_mandalorian.png | Bin 0 -> 199 bytes .../3d_armor_inv_leggings_mandalorian.png | Bin 0 -> 195 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mandalorian.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mandalorian.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mandalorian.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_mandalorian.png new file mode 100644 index 0000000000000000000000000000000000000000..f3aa489cdd8244f1970c59ec454065ff32a95da2 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9jKx9jPK-BC>eK@{oCO|{#S9F5 zM?jcysy3fAP>?6UC&U#X?_wfUrhf{Fn?A+A80jhAoc%$f7%&0Dr?+3MA+7cX9%mzOtX%9J&0*6_(GgiYIM z4phWl666=m@E;Cp%WAIzg(Ey&978JRBqtnTX=38x>1lFUqr<_nj)}+Vn1Y*^!UV;8 zhQ&%93t5tOurOWiEH5!>D(#p)U7RU%fq+1RfLXPq% curV_;9DFOJsQx*(7ib5Ar>mdKI;Vst0DMqT`Tzg` literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mandalorian.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_mandalorian.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f8746f29ab3934b8c37f6edefc39796f50339b GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFX?_wfUrhf}#OFA+A8Ww6t{1nl-z3?_RQGNqc)cP{jUrK@5;$FA4GsX7~>VOY4{Y z1`1htx;TbZ%t=l-z%Iec%6foDF;&@hLqqrGPHvA5LlKSxJthhb9W6_pTtW^9HE%GM gU^yzp`tcSA!*v&~P2Y7qK~84yboFyt=akR{0G%2>RR910 literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mandalorian.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_mandalorian.png new file mode 100644 index 0000000000000000000000000000000000000000..eadb323f46f058c5c2f8653ef74c562c5a7030cb GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9jKx9jPK-BC>eK@{oCO|{#S9F5 zM?jcysy3fAP>?6UC&U#UY*mv4G2F7C-0@&HMg|1dJ_^>W2^uPi6tzVd#|6i|A_;~yuGjo1VCL{B0p_QBhOlMfV i6*!*p|6xC%#>lWrS0b%5 Date: Tue, 17 Dec 2019 18:46:45 -0500 Subject: [PATCH 153/321] Delete init.lua --- mods/minetest-3d_armor/shields/init.lua | 154 ------------------------ 1 file changed, 154 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/init.lua diff --git a/mods/minetest-3d_armor/shields/init.lua b/mods/minetest-3d_armor/shields/init.lua deleted file mode 100644 index cb920d62..00000000 --- a/mods/minetest-3d_armor/shields/init.lua +++ /dev/null @@ -1,154 +0,0 @@ --- support for i18n -local S = armor_i18n.gettext - -local disable_sounds = minetest.settings:get_bool("shields_disable_sounds") -local use_moreores = minetest.get_modpath("moreores") -local function play_sound_effect(player, name) - if not disable_sounds and player then - local pos = player:get_pos() - if pos then - minetest.sound_play(name, { - pos = pos, - max_hear_distance = 10, - gain = 0.5, - }) - end - end -end - -if minetest.global_exists("armor") and armor.elements then - table.insert(armor.elements, "shield") - local mult = armor.config.level_multiplier or 1 - armor.config.level_multiplier = mult * 0.9 -end - --- Regisiter Shields - -armor:register_armor("shields:shield_admin", { - description = S("Admin Shield"), - inventory_image = "shields_inv_shield_admin.png", - groups = {armor_shield=1000, armor_heal=100, armor_use=0, not_in_creative_inventory=1}, -}) - -minetest.register_alias("adminshield", "shields:shield_admin") - -if armor.materials.wood then - armor:register_armor("shields:shield_wood", { - description = S("Wooden Shield"), - inventory_image = "shields_inv_shield_wood.png", - groups = {armor_shield=1, armor_heal=0, armor_use=2000, flammable=1}, - armor_groups = {fleshy=5}, - damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_wood_footstep") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_wood_footstep") - end, - }) - armor:register_armor("shields:shield_enhanced_wood", { - description = S("Enhanced Wood Shield"), - inventory_image = "shields_inv_shield_enhanced_wood.png", - groups = {armor_shield=1, armor_heal=0, armor_use=2000}, - armor_groups = {fleshy=8}, - damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=2}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_dig_metal") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_dug_metal") - end, - }) - minetest.register_craft({ - output = "shields:shield_enhanced_wood", - recipe = { - {"default:steel_ingot"}, - {"shields:shield_wood"}, - {"default:steel_ingot"}, - }, - }) -end - -if armor.materials.durasteel then - armor:register_armor("shields:shield_durasteel", { - description = S("Durasteel Shield"), - inventory_image = "shields_inv_shield_durasteel.png", - groups = {armor_shield=1, armor_heal=0, armor_use=800, - physics_speed=-0.03, physics_gravity=0.03}, - armor_groups = {fleshy=10}, - damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_dig_metal") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_dug_metal") - end, - }) -end - -if armor.materials.bronze then - armor:register_armor("shields:shield_bronze", { - description = S("Bronze Shield"), - inventory_image = "shields_inv_shield_bronze.png", - groups = {armor_shield=1, armor_heal=6, armor_use=400, - physics_speed=-0.03, physics_gravity=0.03}, - armor_groups = {fleshy=10}, - damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_dig_metal") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_dug_metal") - end, - }) -end - -if armor.materials.beskar then - armor:register_armor("shields:shield_mandalorian", { - description = S("Diamond Shield"), - inventory_image = "shields_inv_shield_mandalorian.png", - groups = {armor_shield=1, armor_heal=12, armor_use=200}, - armor_groups = {fleshy=15}, - damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_glass_footstep") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_break_glass") - end, - }) -end - -if armor.materials.gold then - armor:register_armor("shields:shield_gold", { - description = S("Gold Shield"), - inventory_image = "shields_inv_shield_gold.png", - groups = {armor_shield=1, armor_heal=6, armor_use=300, - physics_speed=-0.04, physics_gravity=0.04}, - armor_groups = {fleshy=10}, - damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, - reciprocate_damage = true, - on_damage = function(player, index, stack) - play_sound_effect(player, "default_dig_metal") - end, - on_destroy = function(player, index, stack) - play_sound_effect(player, "default_dug_metal") - end, - }) -end - -for k, v in pairs(armor.materials) do - minetest.register_craft({ - output = "shields:shield_"..k, - recipe = { - {v, v, v}, - {v, v, v}, - {"", v, ""}, - }, - }) -end -- 2.40.1 From 856f539c80054c0055c4e5524839a6f6e992ad23 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:46:54 -0500 Subject: [PATCH 154/321] Delete description.txt --- mods/minetest-3d_armor/shields/description.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/minetest-3d_armor/shields/description.txt diff --git a/mods/minetest-3d_armor/shields/description.txt b/mods/minetest-3d_armor/shields/description.txt deleted file mode 100644 index cb378bbf..00000000 --- a/mods/minetest-3d_armor/shields/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds visible shields to 3d armor. -- 2.40.1 From c11e06b3e4a007182414290d0a85ba7ee8c92d1d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:03 -0500 Subject: [PATCH 155/321] Delete depends.txt --- mods/minetest-3d_armor/shields/depends.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/depends.txt diff --git a/mods/minetest-3d_armor/shields/depends.txt b/mods/minetest-3d_armor/shields/depends.txt deleted file mode 100644 index 585cc7aa..00000000 --- a/mods/minetest-3d_armor/shields/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -3d_armor -- 2.40.1 From 4462a34ba4a821f7536b17de65431a5cf07410dd Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:11 -0500 Subject: [PATCH 156/321] Delete crafting_guide.txt --- .../shields/crafting_guide.txt | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/crafting_guide.txt diff --git a/mods/minetest-3d_armor/shields/crafting_guide.txt b/mods/minetest-3d_armor/shields/crafting_guide.txt deleted file mode 100644 index 9b61dde2..00000000 --- a/mods/minetest-3d_armor/shields/crafting_guide.txt +++ /dev/null @@ -1,36 +0,0 @@ -Shields -- Crafting Guide --------------------------- - -+---+---+---+ -| X | X | X | -+---+---+---+ -| X | X | X | -+---+---+---+ -| | X | | -+---+---+---+ - -[shields:shield_wood] X = [default:wood] -[shields:shield_cactus] X = [default:cactus] -[shields:shield_steel] X = [default:steel_ingot] -[shields:shield_bronze] X = [default:bronze_ingot] -[shields:shield_diamond] X = [default:diamond] -[shields:shield_gold] X = [default:gold_ingot] -[shields:shield_mithril] X = [moreores:mithril_ingot] -[shields:shield_crystal] X = [ethereal:crystal_ingot] - -Enhanced Shields ----------------- - -+---+ -| S | -+---+ -| X | -+---+ -| S | -+---+ - -[shields:shield_enhanced_wood] X = [shields:shield_wood] -[shields:shield_enhanced_cactus] X = [shields:shield_cactus] - -S = [default:steel_ingot] - -- 2.40.1 From 0966cac2eecc38a9e4772e4a52c59248111c1242 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:17 -0500 Subject: [PATCH 157/321] Delete README.txt --- mods/minetest-3d_armor/shields/README.txt | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/README.txt diff --git a/mods/minetest-3d_armor/shields/README.txt b/mods/minetest-3d_armor/shields/README.txt deleted file mode 100644 index 5a72097a..00000000 --- a/mods/minetest-3d_armor/shields/README.txt +++ /dev/null @@ -1,16 +0,0 @@ -[mod] Shields [shields] -======================= - -Adds shields to 3d_armor - -Depends: 3d_armor - -Originally a part of 3d_armor, shields have been re-included as an optional extra. -If you do not what shields then simply remove the shields folder from the modpack. - -Shields Configuration ---------------------- - -Override the following default settings by adding them to your minetest.conf file. - -shields_disable_sounds = false -- 2.40.1 From 3c371ee19f32d0af7df06a34185c01c97147358c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:27 -0500 Subject: [PATCH 158/321] Delete LICENSE.txt --- mods/minetest-3d_armor/shields/LICENSE.txt | 26 ---------------------- 1 file changed, 26 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/LICENSE.txt diff --git a/mods/minetest-3d_armor/shields/LICENSE.txt b/mods/minetest-3d_armor/shields/LICENSE.txt deleted file mode 100644 index 1f848593..00000000 --- a/mods/minetest-3d_armor/shields/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -[mod] Shields [shields] -======================= - -License Source Code -------------------- - -Copyright (C) 2012-2019 stujones11, Stuart Jones - -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. - -License Textures ----------------- - -Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0 -- 2.40.1 From e4fd1ce82b0c1fbc39543b0d6c5774c5473b6b4c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:39 -0500 Subject: [PATCH 159/321] Delete preview_index.txt --- .../shields/textures/preview_index.txt | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/preview_index.txt diff --git a/mods/minetest-3d_armor/shields/textures/preview_index.txt b/mods/minetest-3d_armor/shields/textures/preview_index.txt deleted file mode 100644 index 4408c61a..00000000 --- a/mods/minetest-3d_armor/shields/textures/preview_index.txt +++ /dev/null @@ -1,11 +0,0 @@ -shields/textures/shields_shield_wood.png:shield -shields/textures/shields_shield_enhanced_wood.png:shield -shields/textures/shields_shield_cactus.png:shield -shields/textures/shields_shield_enhanced_cactus.png:shield -shields/textures/shields_shield_steel.png:shield -shields/textures/shields_shield_bronze.png:shield -shields/textures/shields_shield_gold.png:shield -shields/textures/shields_shield_diamond.png:shield -shields/textures/shields_shield_mithril.png:shield -shields/textures/shields_shield_crystal.png:shield -shields/textures/shields_shield_admin.png:shield -- 2.40.1 From 51d18cf030e46720121392a8bf3750f4d94c7230 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:48 -0500 Subject: [PATCH 160/321] Delete shields_inv_shield_admin.png --- .../shields/textures/shields_inv_shield_admin.png | Bin 443 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_admin.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_admin.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_admin.png deleted file mode 100644 index 0b0637e70e3dadde17df535c182299500633ca6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFl*!&%@FSu>8rk9V|gAZ zl;-K;7{YPg_MD?&gMxtD!=;QO4;F~}9O@A?XmUHiA;qYiz_O>}I9JMtmpygubIX5+ zKUsXHxL53|R7p$r1)+WI%EuVzaR|F5%@pj|k)(L3&Ett|rw02bv5n$f3vR}wD5LrqppB{}t`Q|Ei6yC4$wjF^iowXh&|KHhK-bVX#L&XZ#N5i*T-(6V l%D`ZgiQ)tl4Y~O#nQ4`{H5|^IsRPu&;OXk;vd$@?2>>7@jZy#r -- 2.40.1 From f18f720e7b68c33329bc0620144dfbe358748ad3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:47:56 -0500 Subject: [PATCH 161/321] Delete shields_inv_shield_bronze.png --- .../textures/shields_inv_shield_bronze.png | Bin 391 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_bronze.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_bronze.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_bronze.png deleted file mode 100644 index af47896d4c940bec4f4cde1a5ab0f710ceac56c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF|yJZ07&~ -- 2.40.1 From 7fa4a3b532f08b8cfe92282bebb42edb74698c02 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:48:38 -0500 Subject: [PATCH 162/321] Delete shields_inv_shield_cactus.png --- .../textures/shields_inv_shield_cactus.png | Bin 442 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_cactus.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_cactus.png deleted file mode 100644 index d5c9ae43cddd6d1354c49e149c67ceec081dd00a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFiad8=Yc{co-U3d9M_W*8W`PD6_XW{ z1zFj|E(%<9*e<}x7WTPk+f3u-QU)7Vm6vQOU8ZGVu&R7ZX^9WZD#P{5l|QHmbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f-Ln{M= iO(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCx8RfqZj -- 2.40.1 From eb72ea6a5fc2a7cb71b6f11b09aa9ca7d22abd81 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:48:48 -0500 Subject: [PATCH 163/321] Delete shields_inv_shield_crystal.png --- .../textures/shields_inv_shield_crystal.png | Bin 443 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_crystal.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_crystal.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_crystal.png deleted file mode 100644 index ebb73db65bb857eb0adabe8eac804940e4e7eaa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFb|fr9KMp1!W^54m`S^i|)lu{;kH zO7nDa4B@zLd(Kg?K|#Rn;ZjDC2Ma`f4)q8cG`St%kYZF$VA)e~oGazS%bvRSx#hpZ zpDaF8+$(lfs-z|Rg3!Kp;Q&_>k~*NBpo#FA92@O1TaS?83{1OQKijI#g$ -- 2.40.1 From f53c64d88082771528942d1be41470287006674a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:48:56 -0500 Subject: [PATCH 164/321] Delete shields_inv_shield_diamond.png --- .../textures/shields_inv_shield_diamond.png | Bin 443 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_diamond.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_diamond.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_diamond.png deleted file mode 100644 index 0e79d974a9368e8a9d2a06e4fbbda37773e13322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFVvL z|NlqV|6dHh-!go7%<$|c!}Ze)=Z-KO*~zeBIm41!4Ac7sZ*Gvu0P1Bd3GxeO zaCmkj4a7O=u<5X=vX`mo`iKnkC`$H~XA$`^NYb?(L zh0;7-978y++n#e2Y)}wzd$^QQh z@F$DU6!(f|?bKl3B(_nUYhljXuQluo z|EoV?6G~B=5M@*!1GG`K#5JNMC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{w mS{WE@GEtm>q9HdwB{QuOw}!)+Gj)I(7(8A5T-G@yGywqXw~%@O -- 2.40.1 From ceb5caac11e684093fab7c9f2d93fe1abd75bab5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:49:03 -0500 Subject: [PATCH 165/321] Delete shields_inv_shield_enhanced_cactus.png --- .../shields_inv_shield_enhanced_cactus.png | Bin 430 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png deleted file mode 100644 index c5dc4d077eaf3d4ce13290a25358fea3acdfa49b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF@$Yg9>IX^PHK`sfLoQw+ebx7CEYAalvOQfKLpZJ{Cp0j+xjL%4D!MYV zxh0E>Ckv-DvZ-DEvZ=2xjg`&q`lnBux>5`lui3MQRpaTbIKET{*GrCBcN&P&%vT$93<}wdT3A|Hrn0a;SjWIH@1UHB+lvVeKx Date: Tue, 17 Dec 2019 18:49:11 -0500 Subject: [PATCH 166/321] Delete shields_inv_shield_enhanced_wood.png --- .../textures/shields_inv_shield_enhanced_wood.png | Bin 428 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png deleted file mode 100644 index 13baede548f4f871e5f44df8cc16abb841ecfcf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFl*!&%@F zSu>8rk9V|gAZl7{YNqIiZ2kP0`iSRne7^ z%}qEtT|p=z!HAc&DS?&E?fR7sTehSum{REugxmqAOm%d0O<0zwnVOjJE@4v%y{L2G zfP#?Jv}vz6Oazz6YcR7MdMn!|;C&~EMd6yJ^uafx2@XsQx8y{Z`ad}n542RZ#5JNM zC9x#cD!C{XNHG{07@F%E8t57thZtH|nV4G{n`;{wS{WE@GEtm>q9HdwB{QuOw}!)+ SGj)I(7(8A5T-G@yGywonU3}#L -- 2.40.1 From fac6cb592e6257f418e40b3b71551c41cf5b1c9b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:49:20 -0500 Subject: [PATCH 167/321] Delete shields_inv_shield_gold.png --- .../shields/textures/shields_inv_shield_gold.png | Bin 391 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_gold.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_gold.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_gold.png deleted file mode 100644 index d0bd02783bb7cce8a26bb710698026d2a9819250..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_!@hljQC0!qCAg>jC6&7I;J!GcfQS0b$0e z+I-SLLG}_)Usv{rT)aa1s_)lWo(Br~db&7aN)S{P-O!OZVbWyoDGL`hO&!X(gqQG(;Zwnmo;a~K%@ z9OgE5ZB_XWG+4F7HKHUXu_V -- 2.40.1 From 467f31b199d4ce1935f4678b8ef5ac638a7e1833 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:49:30 -0500 Subject: [PATCH 168/321] Delete shields_inv_shield_mithril.png --- .../textures/shields_inv_shield_mithril.png | Bin 391 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_mithril.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_mithril.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_mithril.png deleted file mode 100644 index a55fb00481b7df08cd131460df79e669059e70e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF}ZU`ZlH*-%oIPM0>+XczhDN3XE)M7oFs2|7lsa2Sq~tGv%n*=n1O-s2naJy z)#j513bL1Y`ns||=T>Yz_bb -- 2.40.1 From c16586bae9ee9af65269501506106c282d428f2b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:49:38 -0500 Subject: [PATCH 169/321] Delete shields_inv_shield_steel.png --- .../shields/textures/shields_inv_shield_steel.png | Bin 410 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_steel.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_steel.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_steel.png deleted file mode 100644 index 54176327fc99b15abf6c0616c12129f575d61be3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Qr;B5V#`)ff8~K_IcwFLF zd5E4mG;Qkp$IYK=*W8Sl;9lOr=)CaDHtYQ=R_Yr2zgpc|gBTZ@Emdd}<6e#3UUuEUE7zi0JV|KOg`%*`d@tMf%~ z-pP<-526m#{B#M3&bHzeJNAIVqCQC4`hlOk^)j8JLyOdX&G22WQ% Jmvv4FO#mz^gqHvS -- 2.40.1 From 0984be22b3f22c4ae393c4ef61a4f6a405d55a6c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:49:50 -0500 Subject: [PATCH 170/321] Delete shields_inv_shield_wood.png --- .../shields/textures/shields_inv_shield_wood.png | Bin 421 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_inv_shield_wood.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_inv_shield_wood.png b/mods/minetest-3d_armor/shields/textures/shields_inv_shield_wood.png deleted file mode 100644 index 407533f521d14853aaf4afaae646037a90c52951..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF`gbex8*5j=`>{xLJBGYmeqS!<9N~M3~O3?V6({^o=I&29nO2Eg!{N-CIzSB! Mp00i_>zopr0Hy?l<^TWy -- 2.40.1 From 4d116669c141621803049513180b145ac60b7255 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:49:58 -0500 Subject: [PATCH 171/321] Delete shields_shield_admin.png --- .../shields/textures/shields_shield_admin.png | Bin 456 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_admin.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_admin.png b/mods/minetest-3d_armor/shields/textures/shields_shield_admin.png deleted file mode 100644 index 764c3bb198852a208c276f88dbdeef4c705fa227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsMa9BC&cyt|NoT?W&gdO z{m*#)zw+HjhP&4pP99^}yP0A2N`^%X7-mmk=;>f+YhvL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh z3Ke_0IEGl9PEJr@kzjRPvVb9v^;DBXLX*4W1R(*9$AJ^1xL6!3M5Zidbkve#ef!iQ zpw0bY51&HD@x=*GeH3Oix*uE@>aanmzv=Ss#sqOW*79=<2Q%+*Nj!PSbWqlYOXBIh zz18It8TlEGwlW;nkYEjAWZ0mrHsSjLrC&hnRZCnWN>UO_QmvAUQh^kMk%6JPuAzah zp>c?zg_Vi9m9e?DfuWUw!6p;M2`CzJ^HVa@DsgK#oH Date: Tue, 17 Dec 2019 18:50:06 -0500 Subject: [PATCH 172/321] Delete shields_shield_admin_preview.png --- .../textures/shields_shield_admin_preview.png | Bin 435 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_admin_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_admin_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_admin_preview.png deleted file mode 100644 index 1d647665eaddb9d93ac1ebb94803aab7f660066a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C%fh@Ck7R(*OVeuVg6u z@BQq5#_Ru;?>;izz0Pp*7{lJp469c%ELy-YdjdmG2SZyULtPa^1yJ#Zs@O`PHl~sw zzhDN2vdL#HfIP+|Z+92Q|4h2~fE@M`PhVH|hg`fu`l|2OSe^$8<$Jm~hIkx*d(o2b zumO)t;KZOU`rr5GCf%5IXeP_c!{LGt-XF6}?)f?K&K~wvyXGJFWRm|PBxlkg$HW`N z;@><+;nIQ>50e$FM!Zq2PR;igTuLa(Fqy$@#qDza4jXTr@S4jZ3mf0)hS;&hKR2s? z%c*jewRPR3hu48ttCqM%l%ynUftDnm{r-UW|j5m+* -- 2.40.1 From d47ae59e1ce1b0776b4d71284fd81ae02a4affaf Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:51:40 -0500 Subject: [PATCH 173/321] Delete shields_shield_bronze.png --- .../shields/textures/shields_shield_bronze.png | Bin 403 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_bronze.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_bronze.png b/mods/minetest-3d_armor/shields/textures/shields_shield_bronze.png deleted file mode 100644 index d2a35612e0b9f3eb4ff9b7893507b6d4a54f73d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$b|fr9KMp1!W^54m`S^i|)lu{;kHiu81G46!(!oS?vDz$Gw2H0a3kwu=D)fgS-I z{Y=WLg6^uSd(<>mJ}^CK;BoR~YXg(0=q&AkL(3Z+BTP(80tEd7xVV`Z?O1z`IW!z+ zV`H1Z$+I{?B!HcPVX`*2alu}nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6T#esDwp -- 2.40.1 From 7ec184caee226d48b629e9a4f5c7ddd1099df84f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:51:48 -0500 Subject: [PATCH 174/321] Delete shields_shield_bronze_preview.png --- .../textures/shields_shield_bronze_preview.png | Bin 394 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_bronze_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_bronze_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_bronze_preview.png deleted file mode 100644 index 39424715017fe0f56e58da0271faec31bd856d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIm# zbdl|m1f2`@UdJ;{fFiAVreZ)jrjj7PUjaa-yiI}uJcnC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6VLt#n%e -- 2.40.1 From adda5c277aadec70e4b49debd7507f34ce0a3c92 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:51:56 -0500 Subject: [PATCH 175/321] Delete shields_shield_cactus.png --- .../shields/textures/shields_shield_cactus.png | Bin 455 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_cactus.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_shield_cactus.png deleted file mode 100644 index 889ac9433c079b1f3f439dc30e9cfb8294eba5b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%t+C&cyt|Np0U)@JMq zi{0$yH`UIq-Qw=0HQvqk{#{N%{UBNWLtfrM#f&9Ee!&b5&u*lFI7!~_E({&4vK~MV zXMsm#F#`kN5fEmas?8@26l5>)^mS!_$i*w9uljzC<$0h`qo<2wh{fsT1O*m}sjWS& zJ+2}JS_y)@g1jZ%f(KSMT(w!8`|Qk0wjH7?%1gGCE_<}CDRA%NwTqLL< zIFrM`?8A|x8WOBa7#QX&Dr(+-bXNlC7}XNjh?11Vl2ohYqEsNoU}Ruuu4`zZYiJx| wXkleyZe?t)ZD43+V6e$VaRQ2l-29Zxv`X9>4rk8P0cv3IboFyt=akR{0JbBJTL1t6 -- 2.40.1 From f588af0cdd59b7fe2e752f54e23826b86d206877 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:52:03 -0500 Subject: [PATCH 176/321] Delete shields_shield_cactus_preview.png --- .../textures/shields_shield_cactus_preview.png | Bin 444 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_cactus_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_cactus_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_cactus_preview.png deleted file mode 100644 index 1b46f1e5bbcab9c284771a6b2a40cc87b843c76d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI#As4TZzUuommgj*&?Vc`tPq28LD!2AfP2C!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6 Date: Tue, 17 Dec 2019 18:52:13 -0500 Subject: [PATCH 177/321] Delete shields_shield_crystal.png --- .../shields/textures/shields_shield_crystal.png | Bin 456 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_crystal.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_crystal.png b/mods/minetest-3d_armor/shields/textures/shields_shield_crystal.png deleted file mode 100644 index 03882e8fe3417b6592b64d30462e3574099a7e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsMa9BC&cyt|NjixZDITV zmz?_FcI7|AieC&1Uo*_U$1wRUL(gG`jvWm3OBt$WF%(Z=$mswowi1oV1?pui3GxeO zaCmkj4a7O=u<5X=vX`mo`iKnkC`$H~XA$`^NYb?(L zg^E30978NlCnqSdNU%CCS-_CTdaB7Gp~>BGf{=j5(WzJ2Nt z(B^)yhfg8n_~L}8J_<7$-4Ct{b=V-(-*kC*V}iIGYxy~bgPC`@B%ZuuIw)(yCGqs$ z-sgTe~DWM4fPDYJn -- 2.40.1 From 6afc0db02ef5a37e89d9e4f7bdb2b1b21c4e85e7 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:52:20 -0500 Subject: [PATCH 178/321] Delete shields_shield_crystal_preview.png --- .../textures/shields_shield_crystal_preview.png | Bin 435 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_crystal_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_crystal_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_crystal_preview.png deleted file mode 100644 index 8dc632ef16ee6c59ddf17c796d0587b8295df70b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C%fh@Ck7R(*OVeXUJ{~ z+xNfZ)c>|C{~1>NVp#Z^VfHLW ze!&b3Ws}cZ0C|i_-tI1p|Cw~}0Xgg?p1!W^54m`S^i|)lu{;kH%J+0}4DmSr_M#=< zVFMnQz==Uy^uO=VO}a7b&`g$>hr_YwNm653d8QRxNRjC`m~yNwrEYN(E93Mh1rFx`qb2hQ=X=7FH(aR>tPq28LD! j2AfP2C!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6 Date: Tue, 17 Dec 2019 18:52:27 -0500 Subject: [PATCH 179/321] Delete shields_shield_diamond.png --- .../shields/textures/shields_shield_diamond.png | Bin 456 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_diamond.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_diamond.png b/mods/minetest-3d_armor/shields/textures/shields_shield_diamond.png deleted file mode 100644 index d1641b7489a0d6ddef7a66705695a12b7954c521..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsMa9BC&cyt|NjhKEnfe> z=l}oF_5T;c@3#ye9y2_<$#DHN!?`02M|Lu7SkACy7Q^&DhMrcS;+q>}GJtv+OM?7@ z862M7NCR<_yxm;OkH}&M2EHR8%s5q>PZ}u5UgGKN%KngxS4dy={Tj>j zK%rt!7sn8b)5!@6EE24aOBOKXv7TyjNN93*oFF8i@i=gT6c>wQg~*hpjE-7ztZ$z> z1hlyy?BP?$IKDXHsgJ^pM)!m3LLD{;^*3GK-IyRQ$69`l;b7(+E{P}am=4O?a7jG9 zx3{`{A|pS;(N>1T8WOA_j0_u;)h2vDp!5r9y=sYTL`h0wNvc(HQ7VvPFfuSS*EKZI zH8c(}w6HQUw=y=@HZZg@FxX_GH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e02`!{ AD*ylh -- 2.40.1 From bd244a1b109c9a7245419482ce99980b25f58a83 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:52:34 -0500 Subject: [PATCH 180/321] Delete shields_shield_diamond_preview.png --- .../textures/shields_shield_diamond_preview.png | Bin 435 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_diamond_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_diamond_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_diamond_preview.png deleted file mode 100644 index 87fd958b7701beb9d54373ebce532ba20e5c47ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C%fh@Ck7R(*OVeXXtA2 z`u{!u|BtT!zZibMW%%%z;n_`w>!%sc9bq`KlVQVhh9$EYruQ-Qv;q|?bh)hpYGW!1 z@(X5QD4TrN0?1=b@^*J&{LiF&56EFJ@$_|Nf5^ovq_6sZjpccuP`;;&V~EG`w-+t> z4jb^e1WpXvqW^t=Zqkiehi0<8JRC0g;QcYnePI1!KH+f43inmR@^Sv@38U439q>vvas=uZipRA{ByJV zx11_hSzFgldUzdZwQ7lLL`h0wNvc(HQ7VvPFfuSS*EKZIH8c(}w6HQUw=y=@HZZg@ kFxX_GH~~dNZhlH;S|x4`hcjpD05vdpy85}Sb4q9e0POdX@c;k- -- 2.40.1 From 54d9b18df76bf29461947f3c3fdf628f68107679 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:52:40 -0500 Subject: [PATCH 181/321] Delete shields_shield_enhanced_cactus.png --- .../textures/shields_shield_enhanced_cactus.png | Bin 441 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus.png deleted file mode 100644 index 13884ff1f0cc761832e2bd175394db7e6c08f6d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%k(C&cyt|Nq_H-SzeL z%a<>oJ9n;kv;EymYy7*Mg8D&HcMWRQfGQbFg8YIR9G=}s196hP-CYD4S+d0=geVQtIvO;vq)alzFY&>MTcTNM-0?wB|?mS>K zSs=4t`SR&g-XEeESu`sSFSOZfBQd|}!j%gf5^VAqShsW<%dt8&IW>7T?N}?py0}4v zfkCTCPNdXAa|h4`swJ)wB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4f^FE8e -- 2.40.1 From 559e9f181f7d26063c9b8ae924d8a59db1e387d3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:52:47 -0500 Subject: [PATCH 182/321] Delete shields_shield_enhanced_cactus_preview.png --- .../shields_shield_enhanced_cactus_preview.png | Bin 428 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png deleted file mode 100644 index d8227a83b817f57234f68f1a6006b688bbba240f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIEwlsKW ztmw|>aB{e@c2VuKGn#E2qKUGyZ|ACNFuj$P4W78ACA4G#Cqrn6!fZjlkPD4j8Lrjt z+FfD_8m@)z?yl}!n;fDdqpG+jNh-AOZd2gY(ALzJ)K=V*P*E?^z{p^eqc-IQv(6r% zD^yEdBT7;dOH!?pi&B9UgOP!uxvrssuAy;=p@o%+xs|cGwt=CQfx#vd#R(`Ha`RI% Y(<*UmIGj0C2dII;)78&qol`;+0PvN4iU0rr -- 2.40.1 From 30d7c006ab32b09bb1253c7f38cceae8b1e0348a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:52:55 -0500 Subject: [PATCH 183/321] Delete shields_shield_enhanced_wood.png --- .../textures/shields_shield_enhanced_wood.png | Bin 442 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood.png deleted file mode 100644 index 64f533159f4b72859687573db0ccc865b16218ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%k(C&cyt|NpJ6t@ZWw zGiT21@9(cl^{&hG%Z+v}PH+QCxut&J4OGck666=m;PC858iv zL>4nJ@ErkR#;MwT(m+A>5>H=O_J>@&Li(!j*I1qh3YB}hIEGl9PEJr@k!TfR6$Rn~ zZ3DwHHl;gUGklyI6(Sh7bFN#Nn3;L9VvWIjjrSV)2a{W~BO;E) zt1In}nn6cP+tQ_0k2p0a*nhmiz;fuVY}=0~k`i}=SUzYa1ehJtKYzgEKtrGbR|h-8 zt!JW3dHoai0iB>);u=wsl30>zm0Xkxq!^4049#^74Rj5SLkumfOw6r}&4Es`GBDU= hqBsFXLvDUbW?Cg~4Tm#l>Hsw`c)I$ztaD0e0svy~iQxbM -- 2.40.1 From 8fcc536ba85e4e2053465050e07498fde0cd9ed9 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:53:01 -0500 Subject: [PATCH 184/321] Delete shields_shield_enhanced_wood_preview.png --- .../shields_shield_enhanced_wood_preview.png | Bin 433 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png deleted file mode 100644 index 97ca37856922b308e5035c6b57d0016541754455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI^Xy@VtH=xvu>8rk9V|gAZRPX8H7-DfcIYEMTaRY|}2WtVNVyd#La;maxOT%h! z4gp1$mb;f46pjikR9d66ch4Rc&+g-A`ew=oPu$Y7bounaw}{I*O&iIZd1nHeutI&>67;#PGiDP%m->CjSG(xKMy>Te(e8w2lc zIn_;hrwxHlQ7v(eC`m~yNwrEYN(E93Mh1rFx`qb2hQ=X=7FH(aR>tPq28LD!2AfP2 fC!lD^%}>cptHiD0aOO-Mpaup{S3j3^P6 Date: Tue, 17 Dec 2019 18:53:09 -0500 Subject: [PATCH 185/321] Delete shields_shield_gold.png --- .../shields/textures/shields_shield_gold.png | Bin 403 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_gold.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_gold.png b/mods/minetest-3d_armor/shields/textures/shields_shield_gold.png deleted file mode 100644 index e1aecfdb94b9ceb7bdc758e25d4c90c37fd7184f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$yGIHyZwdlM+*+jtfC?B(g8YIR9G=}s196hP-CYeBtXzVfQy@n(T=s}m_x&H zHa4~ioIHyYL;~0u7$$3T8yD<#`vbH@wZt`|BqgyV)hf9t6-Y4{85o-D8XD*t8iyEK vSeckx8JlYx7+M(^Y%)=tfTAHcKP5A*61RrKnKN~O8W=oX{an^LB{Ts5#*%T5 -- 2.40.1 From 2512f7d116404e88093360286d5c69438d924bea Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:53:17 -0500 Subject: [PATCH 186/321] Delete shields_shield_gold_preview.png --- .../textures/shields_shield_gold_preview.png | Bin 394 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_gold_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_gold_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_gold_preview.png deleted file mode 100644 index 103e0bc2810fe1ba14b3598f6a633a1880501813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIwDtQukgNmr10{lAW(#9Gy6QC98*b`sf zLoQw+ebx7CEYAal50zBLpMZRTZ1DURTCatW@OiwotzwkgNrW8g+afJYvZ!#XN ztMUW)+H)OXU^w+&cr%OIfqtN6swJ)wB`Jv|saDBFsX&Us$iUEC*U&)M&^W}gTe~DWM4fK~r|7 -- 2.40.1 From cd38c35e405bfedd2c3a321c5a31de428b12e423 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:53:27 -0500 Subject: [PATCH 187/321] Delete shields_shield_mithril.png --- .../shields/textures/shields_shield_mithril.png | Bin 403 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_mithril.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_mithril.png b/mods/minetest-3d_armor/shields/textures/shields_shield_mithril.png deleted file mode 100644 index 2e14503a30bd1f6db09b740a74dc650c3a1acc18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%$@ z2b=FG2s;|%up21iD>KCpsDQB~$S;_|;n|He5GTpo-G!lpRn`N@;VkfoEM{QfI|9Ot zQ?>b|fr9KMp1!W^54m`S^i|)lu{;kHiu81G46!(!oS?vDz$Gw2H0a3kwu=D)fgS-I z{Y=WLg6^uSd(<>mJ}^CK;BoR~YXg(0=q&AkL(3Z+BTP(80tEd7xVV`Z?O1z`IW!z+ zV`H1Z$+I{?B!HcPVX`*2alu}nC}Q!>*kacel7Ia3Fyfx*+&&t;ucLK6T Date: Tue, 17 Dec 2019 18:53:34 -0500 Subject: [PATCH 188/321] Delete shields_shield_mithril_preview.png --- .../textures/shields_shield_mithril_preview.png | Bin 394 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_mithril_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_mithril_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_mithril_preview.png deleted file mode 100644 index 8adb97832ef01387c1176e5f87e82caa17ef0b80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIPL5 z#dCkK`Hq6HqcIM~IqW5#zOL*K zxp;;2Ro}0%JP#B~^mK6yu{fQaAi=u0fkT0V^#qes*9j(vd7A_ScoZKjNm;UHNsr2d zoHbG@IX#OG-4JnY4c=5(pfRgqrRGVdV<(uJw6ZcYJ>5L~!ULI@QWzD*6#`to$#}4? z$`9OY&vk%-;naKK%`9pM`hk|ImbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}o qV{>f-Ln{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCx|igZo@ -- 2.40.1 From bcf6fcf54f74f0425c4e5cbc7af41aa67646816a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:53:43 -0500 Subject: [PATCH 189/321] Delete shields_shield_steel.png --- .../shields/textures/shields_shield_steel.png | Bin 439 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_steel.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_steel.png b/mods/minetest-3d_armor/shields/textures/shields_shield_steel.png deleted file mode 100644 index 22ddb07c3e6a4bd72a410d1914e2c3b48e13251b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#iLPZ!6Kh{JEM81l6!2(&(w zPugT?R<>ncKL3%QIWKc~RKyu$2X)G?u>O83orRRt`xS(hYTgho#K6KJBy4cqYciL|)QOFqI~_Y23_dX~P`_@O@#wwu%y~Ll|AZHulV&`{ z%@E!Y!4`Hbty*!yk6r(ncNOpS@UNSBz^*wv?Bq{=hCBajeSfok2)Xxzhc|(NS>gZ# zn?Zw_^n;B$waq1oen3~NmbgZgq$HN4S|t~y0x1R~14DCNLjzqy;}Am&D-&}oV{>f- mLn{M=O(u#HP&DM`r(~v8;?{6DbEXbZ1B0ilpUXO@geCwSFo|mb -- 2.40.1 From 74f703acb84022b863d8bcc3213a90a1abc73767 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:54:11 -0500 Subject: [PATCH 190/321] Delete shields_shield_steel_preview.png --- .../textures/shields_shield_steel_preview.png | Bin 414 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_steel_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_steel_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_steel_preview.png deleted file mode 100644 index 96fbf9a0bee9a201b8bba8bf9efb4fd5c001b1a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!2%>Nw(nI1QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIH2c@VS8Oa7>K0w)eS5%wXYqMXxlKB;T(4Ch09~wF;u=ws zl30>zm0Xkxq!^4049#^74Rj5SLkumfOw6r}&9w~-tqcq{nJ7*`(U6;;l9^VCTf^bZ RnL0oX44$rjF6*2UngCJ4i&6jp -- 2.40.1 From e98685efdac10a311ce13b8bb4991b952b3ac14b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 18:54:20 -0500 Subject: [PATCH 191/321] Delete shields_shield_wood.png --- .../shields/textures/shields_shield_wood.png | Bin 433 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_wood.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_wood.png b/mods/minetest-3d_armor/shields/textures/shields_shield_wood.png deleted file mode 100644 index 129f9f046f55e5bb1c447d401445dae29663646c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWs8%AtC&cyt|Nn9RmdU}k zxzWzW32s%X-gTLNK*89vGmin)FqQ=Q1v5B2yO9RsBze2LFm$lWdH^|`1s;*b3=Din zK$vl=HlH+5kiEpy*OmPt7q5`M>iad8=Yc{co-U3d7N_4%NEB^Q;9+ZIx#eKksKm*@ z{Xk>EntGOW20PvZA17CD->dnxbz9k%&9bwa3J5ghHY)!@Fv1jbJd54;mk zCA5chO1xQcpRqcFJ8R*gQr784oiA7zJzI7xtWWLZW>aZop7evG#Oi+~!_`z_=~7$U zXrTS7C9V-ADTyViR>?)FK#IZ0z|dUR&_LJFIK Date: Tue, 17 Dec 2019 18:54:36 -0500 Subject: [PATCH 192/321] Delete shields_shield_wood_preview.png --- .../textures/shields_shield_wood_preview.png | Bin 422 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/shields/textures/shields_shield_wood_preview.png diff --git a/mods/minetest-3d_armor/shields/textures/shields_shield_wood_preview.png b/mods/minetest-3d_armor/shields/textures/shields_shield_wood_preview.png deleted file mode 100644 index d16773847af71189264e4763ea77d81f7ccce925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIB*-tAfuU^jSqmVKG0EHAh4DX=?mZxfy~NYk zmHimKEFykq&QvEiw%H zQ^cTGuU^TrYE{TDL7Tk+*>_)rofdB?E!)(0u)}b@&>44yTarf{ZFr6eaO`~|?2=S| z<$6K^=YfO;i@o`o4VBk*F-n+!J>aM_`xJu@za_`l#y`K8?iOYXlb#*4Uw#456{;n! z5hW>!C8<`)MX5lF!N|bST-VS**U&h`(89{Z+{)No+rZGuz+jV!;sg{8x%nxXX_dG& U9L}7n1JuCa>FVdQ&MBb@0DHZK8~^|S -- 2.40.1 From b689248fa5f1803b9ac1477f0f739d5f5c1d5759 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:13:22 -0500 Subject: [PATCH 193/321] Delete 3d_armor_boots_steel.png --- .../3d_armor/textures/3d_armor_boots_steel.png | Bin 391 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel.png deleted file mode 100644 index 72ec88b79a6a5958dffd741fd41d012a19869755..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x00r;B4q#NoG-4Y?W&1X$j? zY}nxWT)sA-ZkAI}#$1tiPDM={F8ge5)YPk!c7NBld@?^Hx4mzf$-Kj-{Ij2*XZCt- zX|b!3hi&n8hdT%IUS563m?m9N;h++7fK^5=pwV4nUm~L%bKT*Le}yev0S!zd3m8~6 z92mJeo-o?Y6ra7-B{2->3e^(Vh?11Vl2ohYqEsNoU}Ruuu4`zZYiJx|XkleyZe?t) oZD43+V6e$VaRQ2l-29Zxv`X9>4rk8P0cv3IboFyt=akR{0O6%`^Z)<= -- 2.40.1 From ca9abc6c17460f72aea61b0f9a115907f8ae92b8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:14:01 -0500 Subject: [PATCH 194/321] Delete 3d_armor_boots_steel_preview.png --- .../textures/3d_armor_boots_steel_preview.png | Bin 347 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png deleted file mode 100644 index 170d094c335aea31c73286c96a1f9970c1dc240e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%r1i7sn8fo=I&29nO2Eg!{N-CIzSB!p00i_>zopr0CGTKo&W#< -- 2.40.1 From d8d52cb72c2007c0d0f13069f6432a7e8e96a079 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:14:23 -0500 Subject: [PATCH 195/321] Delete 3d_armor_chestplate_steel.png --- .../textures/3d_armor_chestplate_steel.png | Bin 493 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png deleted file mode 100644 index bccb99d1282d420a9dd304b9e3d7c37fdab138f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#h(PZ!6Kh{JEEJMuLv2)OR| z6~6qUY3}jY``DB2KmN*aL_n-WG4tYz&w)bbpJRFY>_4dRG^#y{x~nG_&nV&mMFr`- zWrYP5rgP#yU1V^WzE$?=`;RNlnHfI#)PGj%51jWwgki^2vFG-z3CWRhpLDOY1hUHd zbOooI@i8z=4s&I1Rb`UFVg^&TRU84~?F==Eb^ceBcvc(c)UD^4Fx_9_Q)hmwGEYcR~eqJYKfqqpjag8WRNi0dVN-jzTQVd20hUU742D*mEA%+%KCgxVg=Gq2^ lRt5%}OcW=eXvob^$xN%nt>JLyOdX&G22WQ%mvv4FO#nEAqBH;i -- 2.40.1 From 3260652bfc9e5dfa59a2e57348dbc26da1d04ac0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:15:18 -0500 Subject: [PATCH 196/321] Delete 3d_armor_chestplate_steel_preview.png --- .../3d_armor_chestplate_steel_preview.png | Bin 399 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png deleted file mode 100644 index 804e785b0867745ac6722e29faf5d5d645adde70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%q`g7sn8f<8LP!@--XqxXN>cEHv2g zbb@6+|ID?_9ExJoL@uQrV0HU{^yjp%pG4VxmN`#NQCl+W`zvE7=Dv9x7A*`M^EfKp z)I=GlrLeJlIH~)JCpgXaf+6#VYl5rJI~Hu&Bc%8)zsPHc{e>xOe?HV+mts-&**@{_ z%5bAKM;q#9-> Date: Tue, 17 Dec 2019 19:24:07 -0500 Subject: [PATCH 197/321] Delete 3d_armor_helmet_steel.png --- .../3d_armor/textures/3d_armor_helmet_steel.png | Bin 478 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel.png deleted file mode 100644 index 8d21e8a5e0128d42f3ff41e450eeb27b6f1eb27a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#imPZ!6Kh{JEEZsanVm0tKZZ&GH^6NQ3`tnqiv|pn)M%7*Z@7J zTH+c}l9E`GYL#4+3Zxi}3=GY64GnY+jYAAAtW3 Date: Tue, 17 Dec 2019 19:24:40 -0500 Subject: [PATCH 198/321] Delete 3d_armor_helmet_steel_preview.png --- .../textures/3d_armor_helmet_steel_preview.png | Bin 350 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png deleted file mode 100644 index 774d284dae531181cd2a679569c090ef198d56c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%odv7sn8fUftDnm{r-UW|L1$wf -- 2.40.1 From 9067cfd618ba9c12d3863978065c3f5527e27220 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:25:12 -0500 Subject: [PATCH 199/321] Delete 3d_armor_inv_boots_steel.png --- .../textures/3d_armor_inv_boots_steel.png | Bin 382 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png deleted file mode 100644 index 82fc591823572e7ba427fe9a405688a9a082abad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Cr;B5V#`&cat%Vv4I9%fA zL@a&CVLAW%#Nu1g34)7`-M0{yk|?{GsvvRS@Pc=T>Pl Date: Tue, 17 Dec 2019 19:25:53 -0500 Subject: [PATCH 200/321] Delete 3d_armor_inv_chestplate_steel.png --- .../textures/3d_armor_inv_chestplate_steel.png | Bin 412 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png deleted file mode 100644 index 47ef4f209dc075177888209c348cdfadeeb6f00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0gr;B5V#`&oi5Arq}2)JB) z&e0OUwLtgPg82dNw-zyR7Z&iDS$G8~eM>njpPgRr{AqVy{SLNgEWs;^LY<73?+#1< zs8eCma8%^b;s-i5{CAY2inzmM*_5A_U%AdBEyDdpNy&?CMenA>iOFptLG{v~LY7x| zgo~A)-7s&@tSbP0l+XkK3onEt -- 2.40.1 From d5f528fa4dbab0542af52f6a4ce8e8d099e35dcc Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:26:28 -0500 Subject: [PATCH 201/321] Delete 3d_armor_inv_helmet_steel.png --- .../textures/3d_armor_inv_helmet_steel.png | Bin 359 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png deleted file mode 100644 index 1c8bfe837fb9f85f9823f74bdd7431576e379247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7w~~r;B5V#`)ww=Nse=3nX z*;K=5+2OC z7#SFv>lzy98XAWfT3DHwTN#^c8yH#{7;G|8oPeSsH$NpatrE9}! Date: Tue, 17 Dec 2019 19:26:55 -0500 Subject: [PATCH 202/321] Delete 3d_armor_inv_leggings_steel.png --- .../textures/3d_armor_inv_leggings_steel.png | Bin 378 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png deleted file mode 100644 index 1ca9975a3f10cf646de453d62ee34b7563316d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Pr;B5V#`&WY4fz@jc$oD$ zt~9ome{=k+9BtkraVkN>Wz`FhX~#BA-myt^U-p&BQoAx3!Wu%-)TVWx&^d6-Ys)Uj zBfGi7?Mrkj92F+NUSq5o75;R^&V|*F>JPr_kiMEP*H2OC7#SFv>lzy98XAWfT3DHwTN#^c8yH#{7;G|8oPeSs cH$NpatrE9}! Date: Tue, 17 Dec 2019 19:27:48 -0500 Subject: [PATCH 203/321] Delete 3d_armor_leggings_steel.png --- .../3d_armor/textures/3d_armor_leggings_steel.png | Bin 430 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel.png deleted file mode 100644 index cca4e31a805dd56f9415235b990d1b149bbafb89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#ijPZ!6Kh{JEE8*&{s;BlSb z>&>QXoBrK^7o=I&29 YnO2Eg!{N-CIzSB!p00i_>zopr0K?9Sn*aa+ -- 2.40.1 From 20c643eeb9208d2219b34ca4b29bbca368a4107a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:28:10 -0500 Subject: [PATCH 204/321] Delete 3d_armor_leggings_steel_preview.png --- .../textures/3d_armor_leggings_steel_preview.png | Bin 348 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png deleted file mode 100644 index dbcfcf2b5312bb699c177fe3f25caf7915432510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%p>C7sn8f>UVZ=o -- 2.40.1 From 21d9fb75e030d8743ea60ce53f8ebd2aa6688ee2 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:28:47 -0500 Subject: [PATCH 205/321] Add files via upload --- .../textures/3d_armor_boots_durasteel.png | Bin 0 -> 391 bytes .../textures/3d_armor_boots_durasteel_preview.png | Bin 0 -> 347 bytes .../textures/3d_armor_chestplate_durasteel.png | Bin 0 -> 493 bytes .../3d_armor_chestplate_durasteel_preview.png | Bin 0 -> 399 bytes .../textures/3d_armor_helmet_durasteel.png | Bin 0 -> 478 bytes .../3d_armor_helmet_durasteel_preview.png | Bin 0 -> 350 bytes .../textures/3d_armor_inv_boots_durasteel.png | Bin 0 -> 382 bytes .../3d_armor_inv_chestplate_durasteel.png | Bin 0 -> 412 bytes .../textures/3d_armor_inv_helmet_durasteel.png | Bin 0 -> 359 bytes .../textures/3d_armor_inv_leggings_durasteel.png | Bin 0 -> 378 bytes .../textures/3d_armor_leggings_durasteel.png | Bin 0 -> 430 bytes .../3d_armor_leggings_durasteel_preview.png | Bin 0 -> 348 bytes 12 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_durasteel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_durasteel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_durasteel_preview.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_durasteel.png create mode 100644 mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_durasteel_preview.png diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_durasteel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_durasteel.png new file mode 100644 index 0000000000000000000000000000000000000000..72ec88b79a6a5958dffd741fd41d012a19869755 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x00r;B4q#NoG-4Y?W&1X$j? zY}nxWT)sA-ZkAI}#$1tiPDM={F8ge5)YPk!c7NBld@?^Hx4mzf$-Kj-{Ij2*XZCt- zX|b!3hi&n8hdT%IUS563m?m9N;h++7fK^5=pwV4nUm~L%bKT*Le}yev0S!zd3m8~6 z92mJeo-o?Y6ra7-B{2->3e^(Vh?11Vl2ohYqEsNoU}Ruuu4`zZYiJx|XkleyZe?t) oZD43+V6e$VaRQ2l-29Zxv`X9>4rk8P0cv3IboFyt=akR{0O6%`^Z)<= literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_durasteel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_boots_durasteel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..170d094c335aea31c73286c96a1f9970c1dc240e GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%r1i7sn8fo=I&29nO2Eg!{N-CIzSB!p00i_>zopr0CGTKo&W#< literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_durasteel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_durasteel.png new file mode 100644 index 0000000000000000000000000000000000000000..bccb99d1282d420a9dd304b9e3d7c37fdab138f4 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!2%>XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#h(PZ!6Kh{JEEJMuLv2)OR| z6~6qUY3}jY``DB2KmN*aL_n-WG4tYz&w)bbpJRFY>_4dRG^#y{x~nG_&nV&mMFr`- zWrYP5rgP#yU1V^WzE$?=`;RNlnHfI#)PGj%51jWwgki^2vFG-z3CWRhpLDOY1hUHd zbOooI@i8z=4s&I1Rb`UFVg^&TRU84~?F==Eb^ceBcvc(c)UD^4Fx_9_Q)hmwGEYcR~eqJYKfqqpjag8WRNi0dVN-jzTQVd20hUU742D*mEA%+%KCgxVg=Gq2^ lRt5%}OcW=eXvob^$xN%nt>JLyOdX&G22WQ%mvv4FO#nEAqBH;i literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_durasteel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_durasteel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..804e785b0867745ac6722e29faf5d5d645adde70 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%q`g7sn8f<8LP!@--XqxXN>cEHv2g zbb@6+|ID?_9ExJoL@uQrV0HU{^yjp%pG4VxmN`#NQCl+W`zvE7=Dv9x7A*`M^EfKp z)I=GlrLeJlIH~)JCpgXaf+6#VYl5rJI~Hu&Bc%8)zsPHc{e>xOe?HV+mts-&**@{_ z%5bAKM;q#9->XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#imPZ!6Kh{JEEZsanVm0tKZZ&GH^6NQ3`tnqiv|pn)M%7*Z@7J zTH+c}l9E`GYL#4+3Zxi}3=GY64GnY+jYAAAtW3)&j&! z@^*J&_}|`tWjK%odv7sn8fUftDnm{r-UW|L1$wf literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_durasteel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_durasteel.png new file mode 100644 index 0000000000000000000000000000000000000000..82fc591823572e7ba427fe9a405688a9a082abad GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Cr;B5V#`&cat%Vv4I9%fA zL@a&CVLAW%#Nu1g34)7`-M0{yk|?{GsvvRS@Pc=T>PlnjpPgRr{AqVy{SLNgEWs;^LY<73?+#1< zs8eCma8%^b;s-i5{CAY2inzmM*_5A_U%AdBEyDdpNy&?CMenA>iOFptLG{v~LY7x| zgo~A)-7s&@tSbP0l+XkK3onEt literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_durasteel.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_durasteel.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8bfe837fb9f85f9823f74bdd7431576e379247 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7w~~r;B5V#`)ww=Nse=3nX z*;K=5+2OC z7#SFv>lzy98XAWfT3DHwTN#^c8yH#{7;G|8oPeSsH$NpatrE9}!Wz`FhX~#BA-myt^U-p&BQoAx3!Wu%-)TVWx&^d6-Ys)Uj zBfGi7?Mrkj92F+NUSq5o75;R^&V|*F>JPr_kiMEP*H2OC7#SFv>lzy98XAWfT3DHwTN#^c8yH#{7;G|8oPeSs cH$NpatrE9}!XrflN}QY`6?zK#qG8~eHcB(j1elRbib z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7#ijPZ!6Kh{JEE8*&{s;BlSb z>&>QXoBrK^7o=I&29 YnO2Eg!{N-CIzSB!p00i_>zopr0K?9Sn*aa+ literal 0 HcmV?d00001 diff --git a/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_durasteel_preview.png b/mods/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_durasteel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..dbcfcf2b5312bb699c177fe3f25caf7915432510 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@0VEjWo@x~VDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j&! z@^*J&_}|`tWjK%p>C7sn8f>UVZ=o literal 0 HcmV?d00001 -- 2.40.1 From 7c0902c0f969c092013eb378ca36b0c6b75b5b97 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 17 Dec 2019 19:52:13 -0500 Subject: [PATCH 206/321] Update init.lua --- mods/minetest-3d_armor/3d_armor_stand/init.lua | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mods/minetest-3d_armor/3d_armor_stand/init.lua b/mods/minetest-3d_armor/3d_armor_stand/init.lua index 4bd97603..ab525c93 100644 --- a/mods/minetest-3d_armor/3d_armor_stand/init.lua +++ b/mods/minetest-3d_armor/3d_armor_stand/init.lua @@ -344,11 +344,3 @@ minetest.register_craft({ {"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"}, } }) - -minetest.register_craft({ - type = "shapeless", - output = "3d_armor_stand:locked_armor_stand", - recipe = { - {"3d_armor_stand:armor_stand", "default:durasteel_ingot"}, - } -}) -- 2.40.1 From b03d05e9be37a7fe3b6206c8d40e3349eee0988d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:43:15 -0500 Subject: [PATCH 207/321] Add files via upload --- mods/api.lua | 4273 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4273 insertions(+) create mode 100644 mods/api.lua diff --git a/mods/api.lua b/mods/api.lua new file mode 100644 index 00000000..20636453 --- /dev/null +++ b/mods/api.lua @@ -0,0 +1,4273 @@ + +-- Intllib and CMI support check +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP .. "/intllib.lua") +local use_cmi = minetest.global_exists("cmi") + +mobs = { + mod = "redo", + version = "20191116", + intllib = S, + invis = minetest.global_exists("invisibility") and invisibility or {} +} + +-- creative check +local creative_cache = minetest.settings:get_bool("creative_mode") +function mobs.is_creative(name) + return creative_cache or minetest.check_player_privs(name, {creative = true}) +end + + +-- localize math functions +local pi = math.pi +local square = math.sqrt +local sin = math.sin +local cos = math.cos +local abs = math.abs +local min = math.min +local max = math.max +local atann = math.atan +local random = math.random +local floor = math.floor +local atan = function(x) + if not x or x ~= x then + --error("atan bassed NaN") + return 0 + else + return atann(x) + end +end + + +-- Load settings +local damage_enabled = minetest.settings:get_bool("enable_damage") +local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false +local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") +local disable_blood = minetest.settings:get_bool("mobs_disable_blood") +local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false +local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false +local creative = minetest.settings:get_bool("creative_mode") +local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false +local remove_far = minetest.settings:get_bool("remove_far_mobs") ~= false +local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0 +local show_health = minetest.settings:get_bool("mob_show_health") ~= false +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) +local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1) + +-- Peaceful mode message so players will know there are no monsters +if peaceful_only then + minetest.register_on_joinplayer(function(player) + minetest.chat_send_player(player:get_player_name(), + S("** Peaceful Mode Active - No Monsters Will Spawn")) + end) +end + +-- calculate aoc range for mob count +local aoc_range = tonumber(minetest.settings:get("active_block_range")) * 16 + +-- pathfinding settings +local enable_pathfinding = true +local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching +local stuck_path_timeout = 10 -- how long will mob follow path before giving up + +-- default nodes +local node_fire = "fire:basic_flame" +local node_permanent_flame = "fire:permanent_flame" +local node_ice = "default:ice" +local node_snowblock = "default:snowblock" +local node_snow = "default:snow" +mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" + +local mob_class = { + stepheight = 1.1, + fly_in = "air", + owner = "", + order = "", + jump_height = 4, + lifetimer = 180, -- 3 minutes + physical = true, + collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + visual_size = {x = 1, y = 1}, + makes_footstep_sound = false, + view_range = 5, + walk_velocity = 1, + run_velocity = 2, + light_damage = 0, + light_damage_min = 14, + light_damage_max = 15, + water_damage = 0, + lava_damage = 0, + suffocation = 2, + fall_damage = 1, + fall_speed = -10, -- must be lower than -2 (default: -10) + drops = {}, + armor = 100, + sounds = {}, + jump = true, + knock_back = true, + walk_chance = 50, + stand_chance = 30, + attack_chance = 5, + passive = false, + blood_amount = 5, + blood_texture = "mobs_blood.png", + shoot_offset = 0, + floats = 1, -- floats in water by default + replace_offset = 0, + timer = 0, + env_damage_timer = 0, -- only used when state = "attack" + tamed = false, + pause_timer = 0, + horny = false, + hornytimer = 0, + child = false, + gotten = false, + health = 0, + reach = 3, + htimer = 0, + docile_by_day = false, + time_of_day = 0.5, + fear_height = 0, + runaway_timer = 0, + immune_to = {}, + explosion_timer = 3, + allow_fuse_reset = true, + stop_to_explode = true, + dogshoot_count = 0, + dogshoot_count_max = 5, + dogshoot_count2_max = 5, + group_attack = false, + attack_monsters = false, + attack_animals = false, + attack_players = true, + attack_npcs = true, + facing_fence = false, + _cmi_is_mob = true +} + +local mob_class_meta = {__index = mob_class} + +-- play sound +function mob_class:mob_sound(sound) + + if sound then + minetest.sound_play(sound, { + object = self.object, + gain = 1.0, + max_hear_distance = self.sounds.distance + }) + end +end + + +-- attack player/mob +function mob_class:do_attack(player) + + if self.state == "attack" then + return + end + + self.attack = player + self.state = "attack" + + if random(0, 100) < 90 then + self:mob_sound(self.sounds.war_cry) + end +end + + +-- calculate distance +local get_distance = function(a, b) + + local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z + + return square(x * x + y * y + z * z) +end + + +-- collision function based on jordan4ibanez' open_ai mod +function mob_class:collision() + + local pos = self.object:get_pos() + local vel = self.object:get_velocity() + local x, z = 0, 0 + local width = -self.collisionbox[1] + self.collisionbox[4] + 0.5 + + for _,object in ipairs(minetest.get_objects_inside_radius(pos, width)) do + + if object:is_player() + or (object:get_luaentity() + and object:get_luaentity()._cmi_is_mob == true + and object ~= self.object) then + + local pos2 = object:get_pos() + local vec = {x = pos.x - pos2.x, z = pos.z - pos2.z} + + x = x + vec.x + z = z + vec.z + end + end + + return({x, z}) +end + + +-- move mob in facing direction +function mob_class:set_velocity(v) + + local c_x, c_y = 0, 0 + + -- can mob be pushed, if so calculate direction + if self.pushable then + c_x, c_y = unpack(self:collision()) + end + + -- halt mob if it has been ordered to stay + if self.order == "stand" then + self.object:set_velocity({x = 0, y = 0, z = 0}) + return + end + + local yaw = (self.object:get_yaw() or 0) + self.rotate + + self.object:set_velocity({ + x = (sin(yaw) * -v) + c_x, + y = self.object:get_velocity().y, + z = (cos(yaw) * v) + c_y + }) +end + +-- global version of above function +function mobs:set_velocity(entity, v) + mob_class.set_velocity(entity, v) +end + + +-- calculate mob velocity +function mob_class:get_velocity() + + local v = self.object:get_velocity() + + return (v.x * v.x + v.z * v.z) ^ 0.5 +end + + +-- set and return valid yaw +function mob_class:set_yaw(yaw, delay) + + if not yaw or yaw ~= yaw then + yaw = 0 + end + + delay = delay or 0 + + if delay == 0 then + self.object:set_yaw(yaw) + return yaw + end + + self.target_yaw = yaw + self.delay = delay + + return self.target_yaw +end + +-- global function to set mob yaw +function mobs:yaw(entity, yaw, delay) + mob_class.set_yaw(entity, yaw, delay) +end + + +-- set defined animation +function mob_class:set_animation(anim, force) + + if not self.animation + or not anim then return end + + self.animation.current = self.animation.current or "" + + -- only use different animation for attacks when using same set + if force ~= true and anim ~= "punch" and anim ~= "shoot" + and string.find(self.animation.current, anim) then + return + end + + -- check for more than one animation + local num = 0 + + for n = 1, 4 do + + if self.animation[anim .. n .. "_start"] + and self.animation[anim .. n .. "_end"] then + num = n + end + end + + -- choose random animation from set + if num > 0 then + num = random(0, num) + anim = anim .. (num ~= 0 and num or "") + end + + if anim == self.animation.current + or not self.animation[anim .. "_start"] + or not self.animation[anim .. "_end"] then + return + end + + self.animation.current = anim + + self.object:set_animation({ + x = self.animation[anim .. "_start"], + y = self.animation[anim .. "_end"]}, + self.animation[anim .. "_speed"] or self.animation.speed_normal or 15, + 0, self.animation[anim .. "_loop"] ~= false) +end + +-- above function exported for mount.lua +function mobs:set_animation(entity, anim) + mob_class.set_animation(entity, anim) +end + + +-- check line of sight (BrunoMine) +local line_of_sight = function(self, pos1, pos2, stepsize) + + stepsize = stepsize or 1 + + local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) + + -- normal walking and flying mobs can see you through air + if s == true then + return true + end + + -- New pos1 to be analyzed + local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} + + local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + -- Checks the return + if r == true then return true end + + -- Nodename found + local nn = minetest.get_node(pos).name + + -- Target Distance (td) to travel + local td = get_distance(pos1, pos2) + + -- Actual Distance (ad) traveled + local ad = 0 + + -- It continues to advance in the line of sight in search of a real + -- obstruction which counts as 'normal' nodebox. + while minetest.registered_nodes[nn] + and (minetest.registered_nodes[nn].walkable == false) do +-- or minetest.registered_nodes[nn].drawtype == "nodebox") do + + -- Check if you can still move forward + if td < ad + stepsize then + return true -- Reached the target + end + + -- Moves the analyzed pos + local d = get_distance(pos1, pos2) + + npos1.x = ((pos2.x - pos1.x) / d * stepsize) + pos1.x + npos1.y = ((pos2.y - pos1.y) / d * stepsize) + pos1.y + npos1.z = ((pos2.z - pos1.z) / d * stepsize) + pos1.z + + -- NaN checks + if d == 0 + or npos1.x ~= npos1.x + or npos1.y ~= npos1.y + or npos1.z ~= npos1.z then + return false + end + + ad = ad + stepsize + + -- scan again + r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + if r == true then return true end + + -- New Nodename found + nn = minetest.get_node(pos).name + end + + return false +end + + +-- check line of sight (by BrunoMine, tweaked by Astrobe) +local new_line_of_sight = function(self, pos1, pos2, stepsize) + + if not pos1 or not pos2 then return end + + stepsize = stepsize or 1 + + local stepv = vector.multiply(vector.direction(pos1, pos2), stepsize) + + local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) + + -- normal walking and flying mobs can see you through air + if s == true then return true end + + -- New pos1 to be analyzed + local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} + + local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + -- Checks the return + if r == true then return true end + + -- Nodename found + local nn = minetest.get_node(pos).name + + -- It continues to advance in the line of sight in search of a real + -- obstruction which counts as 'normal' nodebox. + while minetest.registered_nodes[nn] + and (minetest.registered_nodes[nn].walkable == false) do +-- or minetest.registered_nodes[nn].drawtype == "nodebox") do + + npos1 = vector.add(npos1, stepv) + + if get_distance(npos1, pos2) < stepsize then return true end + + -- scan again + r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + if r == true then return true end + + -- New Nodename found + nn = minetest.get_node(pos).name + end + + return false +end + +-- check line of sight using raycasting (thanks Astrobe) +local ray_line_of_sight = function(self, pos1, pos2) + + local ray = minetest.raycast(pos1, pos2, true, false) + local thing = ray:next() + + while thing do + + if thing.type == "object" + and thing.ref ~= self.object + and not thing.ref:is_player() then return false end + + if thing.type == "node" then + + local name = minetest.get_node(thing.under).name + + if minetest.registered_items[name] + and minetest.registered_items[name].walkable then return false end + end + + thing = ray:next() + end + + return true +end + +-- detect if using minetest 5.0 by searching for permafrost node +local is_50 = nil -- minetest.registered_nodes["default:permafrost"] + +function mob_class:line_of_sight(pos1, pos2, stepsize) + + if is_50 then -- only use if minetest 5.0 is detected + return ray_line_of_sight(self, pos1, pos2) + end + + return line_of_sight(self, pos1, pos2, stepsize) +end + +-- global function +function mobs:line_of_sight(entity, pos1, pos2, stepsize) + return entity:line_of_sight(pos1, pos2, stepsize) +end + + +function mob_class:attempt_flight_correction() + + if self:flight_check() then return true end + + -- We are not flying in what we are supposed to. + -- See if we can find intended flight medium and return to it + local pos = self.object:get_pos() + local searchnodes = self.fly_in + + if type(searchnodes) == "string" then + searchnodes = {self.fly_in} + end + + local flyable_nodes = minetest.find_nodes_in_area( + {x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, + searchnodes) + + if #flyable_nodes < 1 then + return false + end + + local escape_target = flyable_nodes[math.random(1, #flyable_nodes)] + local escape_direction = vector.direction(pos, escape_target) + + self.object:set_velocity( + vector.multiply(escape_direction, self.run_velocity)) + + return true +end + + +-- are we flying in what we are suppose to? (taikedz) +function mob_class:flight_check() + + local def = minetest.registered_nodes[self.standing_in] + + if not def then return false end + + if type(self.fly_in) == "string" + and self.standing_in == self.fly_in then + + return true + + elseif type(self.fly_in) == "table" then + + for _,fly_in in pairs(self.fly_in) do + + if self.standing_in == fly_in then + + return true + end + end + end + + -- stops mobs getting stuck inside stairs and plantlike nodes + if def.drawtype ~= "airlike" + and def.drawtype ~= "liquid" + and def.drawtype ~= "flowingliquid" then + return true + end + + return false +end + + +-- if self.stay_near set then check periodically for nodes and turn to face/move +function mob_class:do_stay_near() + + if not self.stay_near then return false end + + local pos = self.object:get_pos() + local searchnodes = self.stay_near[1] + local chance = self.stay_near[2] or 10 + + if random(1, chance) > 1 then + return false + end + + if type(searchnodes) == "string" then + searchnodes = {self.stay_near[1]} + end + + local r = self.view_range + local nearby_nodes = minetest.find_nodes_in_area( + {x = pos.x - r, y = pos.y - 1, z = pos.z - r}, + {x = pos.x + r, y = pos.y + 1, z = pos.z + r}, + searchnodes) + + if #nearby_nodes < 1 then + return false + end + + local target = nearby_nodes[math.random(1, #nearby_nodes)] + local direction = vector.direction(pos, target) + local vec = {x = target.x - pos.x, z = target.z - pos.z} + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if target.x > pos.x then + yaw = yaw + pi + end + + yaw = self:set_yaw(yaw, 4) + + self:set_animation("walk") + + self:set_velocity(self.walk_velocity) + + return true +end + + +-- custom particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = 0, y = gravity, z = 0}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow + }) +end + + +-- update nametag colour +function mob_class:update_tag() + + local col = "#00FF00" + local qua = self.hp_max / 4 + + if self.health <= floor(qua * 3) then + col = "#FFFF00" + end + + if self.health <= floor(qua * 2) then + col = "#FF6600" + end + + if self.health <= floor(qua) then + col = "#FF0000" + end + + self.object:set_properties({ + nametag = self.nametag, + nametag_color = col + }) +end + + +-- drop items +function mob_class:item_drop() + + local pos = self.object:get_pos() + + -- check for drops function + self.drops = type(self.drops) == "function" and self.drops(pos) or self.drops + + -- check for nil or no drops + if not self.drops or #self.drops == 0 then + return + end + + -- no drops if disabled by setting + if not mobs_drop_items then return end + + -- no drops for child mobs + if self.child then return end + + -- was mob killed by player? + local death_by_player = self.cause_of_death and self.cause_of_death.puncher + and self.cause_of_death.puncher:is_player() or nil + + local obj, item, num + + for n = 1, #self.drops do + + if random(1, self.drops[n].chance) == 1 then + + num = random(self.drops[n].min or 0, self.drops[n].max or 1) + item = self.drops[n].name + + -- cook items on a hot death + if self.cause_of_death.hot then + + local output = minetest.get_craft_result({ + method = "cooking", width = 1, items = {item}}) + + if output and output.item and not output.item:is_empty() then + item = output.item:get_name() + end + end + + -- only drop rare items (drops.min=0) if killed by player + if death_by_player then + obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) + + elseif self.drops[n].min ~= 0 then + obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) + end + + if obj and obj:get_luaentity() then + + obj:set_velocity({ + x = random(-10, 10) / 9, + y = 6, + z = random(-10, 10) / 9 + }) + + elseif obj then + obj:remove() -- item does not exist + end + end + end + + self.drops = {} +end + + +-- check if mob is dead or only hurt +function mob_class:check_for_death(cmi_cause) + + -- has health actually changed? + if self.health == self.old_health and self.health > 0 then + return + end + + self.old_health = self.health + + -- still got some health? play hurt sound + if self.health > 0 then + + self:mob_sound(self.sounds.damage) + + -- make sure health isn't higher than max + if self.health > self.hp_max then + self.health = self.hp_max + end + + -- backup nametag so we can show health stats + if not self.nametag2 then + self.nametag2 = self.nametag or "" + end + + if show_health + and (cmi_cause and cmi_cause.type == "punch") then + + self.htimer = 2 + self.nametag = "♥ " .. self.health .. " / " .. self.hp_max + + self:update_tag() + end + + return false + end + + self.cause_of_death = cmi_cause + + -- drop items + self:item_drop() + + self:mob_sound(self.sounds.death) + + local pos = self.object:get_pos() + + -- execute custom death function + if self.on_die then + + self:on_die(pos) + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + + return true + end + + -- default death function and die animation (if defined) + if self.animation + and self.animation.die_start + and self.animation.die_end then + + local frames = self.animation.die_end - self.animation.die_start + local speed = self.animation.die_speed or 15 + local length = max(frames / speed, 0) + + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.passive = true + self.state = "die" + self:set_velocity(0) + self:set_animation("die") + + minetest.after(length, function(self) + + if use_cmi and self.object:get_luaentity() then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end, self) + else + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end + + effect(pos, 20, "tnt_smoke.png") + + return true +end + + +-- is mob facing a cliff +function mob_class:is_at_cliff() + + if self.fear_height == 0 then -- 0 for no falling protection! + return false + end + + local yaw = self.object:get_yaw() + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + local pos = self.object:get_pos() + local ypos = pos.y + self.collisionbox[2] -- just above floor + + if minetest.line_of_sight( + {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, + {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z}, 1) then + + return true + end + + return false +end + + +-- get node but use fallback for nil or unknown +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return minetest.registered_nodes[fallback] +end + + +-- environmental damage (water, lava, fire, light etc.) +function mob_class:do_env_damage() + + -- feed/tame text timer (so mob 'full' messages dont spam chat) + if self.htimer > 0 then + self.htimer = self.htimer - 1 + end + + -- reset nametag after showing health stats + if self.htimer < 1 and self.nametag2 then + + self.nametag = self.nametag2 + self.nametag2 = nil + + self:update_tag() + end + + local pos = self.object:get_pos() + + self.time_of_day = minetest.get_timeofday() + + -- remove mob if standing inside ignore node + if self.standing_in == "ignore" then + self.object:remove() + return + end + + -- is mob light sensative, or scared of the dark :P + if self.light_damage ~= 0 then + + local light = minetest.get_node_light(pos) or 0 + + if light >= self.light_damage_min + and light <= self.light_damage_max then + + self.health = self.health - self.light_damage + + effect(pos, 5, "tnt_smoke.png") + + if self:check_for_death({type = "light"}) then return end + end + end + + local nodef = minetest.registered_nodes[self.standing_in] + + pos.y = pos.y + 1 -- for particle effect position + + -- water + if self.water_damage + and nodef.groups.water then + + if self.water_damage ~= 0 then + + self.health = self.health - self.water_damage + + effect(pos, 5, "bubble.png", nil, nil, 1, nil) + + if self:check_for_death({type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- lava or fire or ignition source + elseif self.lava_damage + and nodef.groups.igniter then +-- and (nodef.groups.lava +-- or self.standing_in == node_fire +-- or self.standing_in == node_permanent_flame) then + + if self.lava_damage ~= 0 then + + self.health = self.health - self.lava_damage + + effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + + if self:check_for_death({type = "environment", + pos = pos, node = self.standing_in, hot = true}) then return end + end + + -- damage_per_second node check + elseif nodef.damage_per_second ~= 0 then + + self.health = self.health - nodef.damage_per_second + + effect(pos, 5, "tnt_smoke.png") + + if self:check_for_death({type = "environment", + pos = pos, node = self.standing_in}) then return end + end +--[[ + --- suffocation inside solid node + if self.suffocation ~= 0 + and nodef.walkable == true + and nodef.groups.disable_suffocation ~= 1 + and nodef.drawtype == "normal" then + + self.health = self.health - self.suffocation + + if self:check_for_death({type = "environment", + pos = pos, node = self.standing_in}) then return end + end +]] + self:check_for_death({type = "unknown"}) +end + + +-- jump if facing a solid node (not fences or gates) +function mob_class:do_jump() + + if not self.jump + or self.jump_height == 0 + or self.fly + or self.child + or self.order == "stand" then + return false + end + + self.facing_fence = false + + -- something stopping us while moving? + if self.state ~= "stand" + and self:get_velocity() > 0.5 + and self.object:get_velocity().y ~= 0 then + return false + end + + local pos = self.object:get_pos() + local yaw = self.object:get_yaw() + + -- what is mob standing on? + pos.y = pos.y + self.collisionbox[2] - 0.2 + + local nod = node_ok(pos) + +--print ("standing on:", nod.name, pos.y) + + if minetest.registered_nodes[nod.name].walkable == false then + return false + end + + -- where is front + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + + -- what is in front of mob? + local nod = node_ok({ + x = pos.x + dir_x, + y = pos.y + 0.5, + z = pos.z + dir_z + }) + + -- thin blocks that do not need to be jumped + if nod.name == node_snow then + return false + end + +--print ("in front:", nod.name, pos.y + 0.5) + + if self.walk_chance == 0 + or minetest.registered_items[nod.name].walkable then + + if not nod.name:find("fence") + and not nod.name:find("gate") then + + local v = self.object:get_velocity() + + v.y = self.jump_height + + self:set_animation("jump") -- only when defined + + self.object:set_velocity(v) + + -- when in air move forward + minetest.after(0.3, function(self, v) + + if self.object:get_luaentity() then + + self.object:set_acceleration({ + x = v.x * 2, + y = 0, + z = v.z * 2 + }) + end + end, self, v) + + if self:get_velocity() > 0 then + self:mob_sound(self.sounds.jump) + end + else + self.facing_fence = true + end + + -- if we jumped against a block/wall 4 times then turn + if self.object:get_velocity().x ~= 0 + or self.object:get_velocity().z ~= 0 then + + self.jump_count = (self.jump_count or 0) + 1 +--print ("----", self.jump_count) + if self.jump_count == 4 then + + local yaw = self.object:get_yaw() or 0 + + yaw = self:set_yaw(yaw + 1.35, 8) +--print ("---- turn") + self.jump_count = 0 + end + end + + return true + end + + return false +end + + +-- blast damage to entities nearby (modified from TNT mod) +local entity_physics = function(pos, radius) + + radius = radius * 2 + + local objs = minetest.get_objects_inside_radius(pos, radius) + local obj_pos, dist + + for n = 1, #objs do + + obj_pos = objs[n]:get_pos() + + dist = get_distance(pos, obj_pos) + + if dist < 1 then dist = 1 end + + local damage = floor((4 / dist) * radius) + local ent = objs[n]:get_luaentity() + + -- punches work on entities AND players + objs[n]:punch(objs[n], 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, pos) + end +end + + +-- should mob follow what I'm holding ? +function mob_class:follow_holding(clicker) + + if mobs.invis[clicker:get_player_name()] then + return false + end + + local item = clicker:get_wielded_item() + local t = type(self.follow) + + -- single item + if t == "string" + and item:get_name() == self.follow then + return true + + -- multiple items + elseif t == "table" then + + for no = 1, #self.follow do + + if self.follow[no] == item:get_name() then + return true + end + end + end + + return false +end + + +-- find two animals of same type and breed if nearby and horny +function mob_class:breed() + + -- child takes 240 seconds before growing into adult + if self.child == true then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer > 240 then + + self.child = false + self.hornytimer = 0 + + self.object:set_properties({ + textures = self.base_texture, + mesh = self.base_mesh, + visual_size = self.base_size, + collisionbox = self.base_colbox, + selectionbox = self.base_selbox + }) + + -- custom function when child grows up + if self.on_grown then + self.on_grown(self) + else + -- jump when fully grown so as not to fall into ground + self.object:set_velocity({ + x = 0, + y = self.jump_height, + z = 0 + }) + end + end + + return + end + + -- horny animal can mate for 40 seconds, + -- afterwards horny animal cannot mate again for 200 seconds + if self.horny == true + and self.hornytimer < 240 then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer >= 240 then + self.hornytimer = 0 + self.horny = false + end + end + + -- find another same animal who is also horny and mate if nearby + if self.horny == true + and self.hornytimer <= 40 then + + local pos = self.object:get_pos() + + effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1) + + local objs = minetest.get_objects_inside_radius(pos, 3) + local num = 0 + local ent = nil + + for n = 1, #objs do + + ent = objs[n]:get_luaentity() + + -- check for same animal with different colour + local canmate = false + + if ent then + + if ent.name == self.name then + canmate = true + else + local entname = string.split(ent.name,":") + local selfname = string.split(self.name,":") + + if entname[1] == selfname[1] then + entname = string.split(entname[2],"_") + selfname = string.split(selfname[2],"_") + + if entname[1] == selfname[1] then + canmate = true + end + end + end + end + + if ent + and canmate == true + and ent.horny == true + and ent.hornytimer <= 40 then + num = num + 1 + end + + -- found your mate? then have a baby + if num > 1 then + + self.hornytimer = 41 + ent.hornytimer = 41 + + -- spawn baby + minetest.after(5, function(self, ent) + + if not self.object:get_luaentity() then + return + end + + -- custom breed function + if self.on_breed then + + -- when false skip going any further + if self:on_breed(ent) == false then + return + end + else + effect(pos, 15, "tnt_smoke.png", 1, 2, 2, 15, 5) + end + + local mob = minetest.add_entity(pos, self.name) + local ent2 = mob:get_luaentity() + local textures = self.base_texture + + -- using specific child texture (if found) + if self.child_texture then + textures = self.child_texture[1] + end + + -- and resize to half height + mob:set_properties({ + textures = textures, + visual_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5 + }, + collisionbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5 + }, + selectionbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5 + }, + }) + -- tamed and owned by parents' owner + ent2.child = true + ent2.tamed = true + ent2.owner = self.owner + end, self, ent) + + num = 0 + + break + end + end + end +end + + +-- find and replace what mob is looking for (grass, wheat etc.) +function mob_class:replace(pos) + + if not mobs_griefing + or not self.replace_rate + or not self.replace_what + or self.child == true + or self.object:get_velocity().y ~= 0 + or random(1, self.replace_rate) > 1 then + return + end + + local what, with, y_offset + + if type(self.replace_what[1]) == "table" then + + local num = random(#self.replace_what) + + what = self.replace_what[num][1] or "" + with = self.replace_what[num][2] or "" + y_offset = self.replace_what[num][3] or 0 + else + what = self.replace_what + with = self.replace_with or "" + y_offset = self.replace_offset or 0 + end + + pos.y = pos.y + y_offset + + if #minetest.find_nodes_in_area(pos, pos, what) > 0 then + +-- print ("replace node = ".. minetest.get_node(pos).name, pos.y) + + local oldnode = {name = what} + local newnode = {name = with} + local on_replace_return + + if self.on_replace then + on_replace_return = self:on_replace(pos, oldnode, newnode) + end + + if on_replace_return ~= false then + minetest.set_node(pos, {name = with}) + end + end +end + + +-- check if daytime and also if mob is docile during daylight hours +function mob_class:day_docile() + + if self.docile_by_day == false then + + return false + + elseif self.docile_by_day == true + and self.time_of_day > 0.2 + and self.time_of_day < 0.8 then + + return true + end +end + + +local los_switcher = false +local height_switcher = false + +-- path finding and smart mob routine by rnd, line_of_sight and other edits by Elkien3 +function mob_class:smart_mobs(s, p, dist, dtime) + + local s1 = self.path.lastpos + + local target_pos = self.attack:get_pos() + + -- is it becoming stuck? + if abs(s1.x - s.x) + abs(s1.z - s.z) < .5 then + self.path.stuck_timer = self.path.stuck_timer + dtime + else + self.path.stuck_timer = 0 + end + + self.path.lastpos = {x = s.x, y = s.y, z = s.z} + + local use_pathfind = false + local has_lineofsight = minetest.line_of_sight( + {x = s.x, y = (s.y) + .5, z = s.z}, + {x = target_pos.x, y = (target_pos.y) + 1.5, z = target_pos.z}, .2) + + -- im stuck, search for path + if not has_lineofsight then + + if los_switcher == true then + use_pathfind = true + los_switcher = false + end -- cannot see target! + else + if los_switcher == false then + + los_switcher = true + use_pathfind = false + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end -- can see target! + end + + if (self.path.stuck_timer > stuck_timeout and not self.path.following) then + + use_pathfind = true + self.path.stuck_timer = 0 + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end + + if (self.path.stuck_timer > stuck_path_timeout and self.path.following) then + + use_pathfind = true + self.path.stuck_timer = 0 + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end + + if abs(vector.subtract(s,target_pos).y) > self.stepheight then + + if height_switcher then + use_pathfind = true + height_switcher = false + end + else + if not height_switcher then + use_pathfind = false + height_switcher = true + end + end + + if use_pathfind then + -- lets try find a path, first take care of positions + -- since pathfinder is very sensitive + local sheight = self.collisionbox[5] - self.collisionbox[2] + + -- round position to center of node to avoid stuck in walls + -- also adjust height for player models! + s.x = floor(s.x + 0.5) +-- s.y = floor(s.y + 0.5) - sheight + s.z = floor(s.z + 0.5) + + local ssight, sground = minetest.line_of_sight(s, { + x = s.x, y = s.y - 4, z = s.z}, 1) + + -- determine node above ground + if not ssight then + s.y = sground.y + 1 + end + + local p1 = self.attack:get_pos() + + p1.x = floor(p1.x + 0.5) + p1.y = floor(p1.y + 0.5) + p1.z = floor(p1.z + 0.5) + + local dropheight = 6 + if self.fear_height ~= 0 then dropheight = self.fear_height end + + self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "Dijkstra") + +--[[ + -- show path using particles + if self.path.way and #self.path.way > 0 then + print ("-- path length:" .. tonumber(#self.path.way)) + for _,pos in pairs(self.path.way) do + minetest.add_particle({ + pos = pos, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 1, + size = 4, + collisiondetection = false, + vertical = false, + texture = "heart.png", + }) + end + end +]] + + self.state = "" + self:do_attack(self.attack) + + -- no path found, try something else + if not self.path.way then + + self.path.following = false + + -- lets make way by digging/building if not accessible + if self.pathfinding == 2 and mobs_griefing then + + -- is player higher than mob? + if s.y < p1.y then + + -- build upwards + if not minetest.is_protected(s, "") then + + local ndef1 = minetest.registered_nodes[self.standing_in] + + if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then + + minetest.set_node(s, {name = mobs.fallback_node}) + end + end + + local sheight = math.ceil(self.collisionbox[5]) + 1 + + -- assume mob is 2 blocks high so it digs above its head + s.y = s.y + sheight + + -- remove one block above to make room to jump + if not minetest.is_protected(s, "") then + + local node1 = node_ok(s, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.set_node(s, {name = "air"}) + minetest.add_item(s, ItemStack(node1)) + + end + end + + s.y = s.y - sheight + self.object:set_pos({x = s.x, y = s.y + 2, z = s.z}) + + else -- dig 2 blocks to make door toward player direction + + local yaw1 = self.object:get_yaw() + pi / 2 + local p1 = { + x = s.x + cos(yaw1), + y = s.y, + z = s.z + sin(yaw1) + } + + if not minetest.is_protected(p1, "") then + + local node1 = node_ok(p1, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + p1.y = p1.y + 1 + node1 = node_ok(p1, "air").name + ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + end + end + end + + -- will try again in 2 second + self.path.stuck_timer = stuck_timeout - 2 + + -- frustration! cant find the damn path :( + --self:mob_sound(self.sounds.random) + else + -- yay i found path + self:mob_sound(self.sounds.war_cry) + self:set_velocity(self.walk_velocity) + + -- follow path now that it has it + self.path.following = true + end + end +end + + +-- specific attacks +local specific_attack = function(list, what) + + -- no list so attack default (player, animals etc.) + if list == nil then + return true + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- general attack function for all mobs +function mob_class:general_attack() + + -- return if already attacking, passive or docile during day + if self.passive + or self.state == "attack" + or self:day_docile() then + return + end + + local s = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + -- remove entities we aren't interested in + for n = 1, #objs do + + local ent = objs[n]:get_luaentity() + + -- are we a player? + if objs[n]:is_player() then + + -- if player invisible or mob not setup to attack then remove from list + if self.attack_players == false + or (self.owner and self.type ~= "monster") + or mobs.invis[objs[n]:get_player_name()] + or not specific_attack(self.specific_attack, "player") then + objs[n] = nil +--print("- pla", n) + end + + -- or are we a mob? + elseif ent and ent._cmi_is_mob then + + -- remove mobs not to attack + if self.name == ent.name + or (not self.attack_animals and ent.type == "animal") + or (not self.attack_monsters and ent.type == "monster") + or (not self.attack_npcs and ent.type == "npc") + or not specific_attack(self.specific_attack, ent.name) then + objs[n] = nil +--print("- mob", n, self.name, ent.name) + end + + -- remove all other entities + else +--print(" -obj", n) + objs[n] = nil + end + end + + local p, sp, dist, min_player + local min_dist = self.view_range + 1 + + -- go through remaining entities and select closest + for _,player in pairs(objs) do + + p = player:get_pos() + sp = s + + dist = get_distance(p, s) + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + -- choose closest player to attack that isnt self + if dist ~= 0 + and dist < min_dist + and self:line_of_sight(sp, p, 2) == true then + min_dist = dist + min_player = player + end + end + + -- attack closest player or mob + if min_player and random(1, 100) > self.attack_chance then + self:do_attack(min_player) + end +end + + +-- specific runaway +local specific_runaway = function(list, what) + + -- no list so do not run + if list == nil then + return false + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- find someone to runaway from +function mob_class:do_runaway_from() + + if not self.runaway_from then + return + end + + local s = self.object:get_pos() + local p, sp, dist, pname + local player, obj, min_player, name + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + pname = objs[n]:get_player_name() + + if mobs.invis[pname] + or self.owner == pname then + + name = "" + else + player = objs[n] + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + name = obj.name or "" + end + end + + -- find specific mob to runaway from + if name ~= "" and name ~= self.name + and specific_runaway(self.runaway_from, name) then + + p = player:get_pos() + sp = s + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + dist = get_distance(p, s) + + -- choose closest player/mob to runaway from + if dist < min_dist + and self:line_of_sight(sp, p, 2) == true then + min_dist = dist + min_player = player + end + end + end + + if min_player then + + local lp = player:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = self:set_yaw(yaw, 4) + self.state = "runaway" + self.runaway_timer = 3 + self.following = nil + end +end + + +-- follow player if owner or holding item, if fish outta water then flop +function mob_class:follow_flop() + + -- find player to follow + if (self.follow ~= "" + or self.order == "follow") + and not self.following + and self.state ~= "attack" + and self.state ~= "runaway" then + + local s = self.object:get_pos() + local players = minetest.get_connected_players() + + for n = 1, #players do + + if get_distance(players[n]:get_pos(), s) < self.view_range + and not mobs.invis[ players[n]:get_player_name() ] then + + self.following = players[n] + + break + end + end + end + + if self.type == "npc" + and self.order == "follow" + and self.state ~= "attack" + and self.owner ~= "" then + + -- npc stop following player if not owner + if self.following + and self.owner + and self.owner ~= self.following:get_player_name() then + self.following = nil + end + else + -- stop following player if not holding specific item + if self.following + and self.following:is_player() + and self:follow_holding(self.following) == false then + self.following = nil + end + + end + + -- follow that thing + if self.following then + + local s = self.object:get_pos() + local p + + if self.following:is_player() then + + p = self.following:get_pos() + + elseif self.following.object then + + p = self.following.object:get_pos() + end + + if p then + + local dist = get_distance(p, s) + + -- dont follow if out of range + if dist > self.view_range then + self.following = nil + else + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = self:set_yaw(yaw, 6) + + -- anyone but standing npc's can move along + if dist > self.reach + and self.order ~= "stand" then + + self:set_velocity(self.walk_velocity) + + if self.walk_chance ~= 0 then + self:set_animation("walk") + end + else + self:set_velocity(0) + self:set_animation("stand") + end + + return + end + end + end + + -- swimmers flop when out of their element, and swim again when back in + if self.fly then + + local s = self.object:get_pos() + + if not self:attempt_flight_correction() then + + self.state = "flop" + self.object:set_velocity({x = 0, y = -5, z = 0}) + + self:set_animation("stand") + + return + elseif self.state == "flop" then + self.state = "stand" + end + end +end + + +-- dogshoot attack switch and counter function +function mob_class:dogswitch(dtime) + + -- switch mode not activated + if not self.dogshoot_switch + or not dtime then + return 0 + end + + self.dogshoot_count = self.dogshoot_count + dtime + + if (self.dogshoot_switch == 1 + and self.dogshoot_count > self.dogshoot_count_max) + or (self.dogshoot_switch == 2 + and self.dogshoot_count > self.dogshoot_count2_max) then + + self.dogshoot_count = 0 + + if self.dogshoot_switch == 1 then + self.dogshoot_switch = 2 + else + self.dogshoot_switch = 1 + end + end + + return self.dogshoot_switch +end + + +-- execute current state (stand, walk, run, attacks) +function mob_class:do_states(dtime) + + local yaw = self.object:get_yaw() or 0 + + if self.state == "stand" then + + if random(1, 4) == 1 then + + local lp = nil + local s = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(s, 3) + + for n = 1, #objs do + + if objs[n]:is_player() then + lp = objs[n]:get_pos() + break + end + end + + -- look at any players nearby, otherwise turn randomly + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + else + yaw = yaw + random(-0.5, 0.5) + end + + yaw = self:set_yaw(yaw, 8) + end + + self:set_velocity(0) + self:set_animation("stand") + + -- mobs ordered to stand stay standing + if self.order ~= "stand" + and self.walk_chance ~= 0 + and self.facing_fence ~= true + and random(1, 100) <= self.walk_chance + and self.at_cliff == false then + + self:set_velocity(self.walk_velocity) + self.state = "walk" + self:set_animation("walk") + end + + elseif self.state == "walk" then + + local s = self.object:get_pos() + local lp = nil + + -- is there something I need to avoid? + if self.water_damage > 0 + and self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) + + elseif self.water_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water"}) + + elseif self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:lava"}) + end + + if lp then + + -- if mob in water or lava then look for land + if (self.lava_damage + and minetest.registered_nodes[self.standing_in].groups.lava) + or (self.water_damage + and minetest.registered_nodes[self.standing_in].groups.water) then + + lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", + "group:sand", node_ice, node_snowblock}) + + -- did we find land? + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + + -- look towards land and jump/move in that direction + yaw = self:set_yaw(yaw, 6) + self:do_jump() + self:set_velocity(self.walk_velocity) + else + yaw = yaw + random(-0.5, 0.5) + end + + else + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + end + + yaw = self:set_yaw(yaw, 8) + + -- otherwise randomly turn + elseif random(1, 100) <= 30 then + + yaw = yaw + random(-0.5, 0.5) + + yaw = self:set_yaw(yaw, 8) + end + + -- stand for great fall in front + if self.facing_fence == true + or self.at_cliff + or random(1, 100) <= self.stand_chance then + + self:set_velocity(0) + self.state = "stand" + self:set_animation("stand", true) + else + self:set_velocity(self.walk_velocity) + + if self:flight_check() + and self.animation + and self.animation.fly_start + and self.animation.fly_end then + self:set_animation("fly") + else + self:set_animation("walk") + end + end + + -- runaway when punched + elseif self.state == "runaway" then + + self.runaway_timer = self.runaway_timer + 1 + + -- stop after 5 seconds or when at cliff + if self.runaway_timer > 5 + or self.at_cliff + or self.order == "stand" then + self.runaway_timer = 0 + self:set_velocity(0) + self.state = "stand" + self:set_animation("stand") + else + self:set_velocity(self.run_velocity) + self:set_animation("walk") + end + + -- attack routines (explode, dogfight, shoot, dogshoot) + elseif self.state == "attack" then + + -- calculate distance from mob and enemy + local s = self.object:get_pos() + local p = self.attack:get_pos() or s + local dist = get_distance(p, s) + + -- stop attacking if player invisible or out of range + if dist > self.view_range + or not self.attack + or not self.attack:get_pos() + or self.attack:get_hp() <= 0 + or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then + +-- print(" ** stop attacking **", dist, self.view_range) + self.state = "stand" + self:set_velocity(0) + self:set_animation("stand") + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.path.way = nil + + return + end + + if self.attack_type == "explode" then + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = self:set_yaw(yaw) + + local node_break_radius = self.explosion_radius or 1 + local entity_damage_radius = self.explosion_damage_radius + or (node_break_radius * 2) + + -- start timer when in reach and line of sight + if not self.v_start + and dist <= self.reach + and self:line_of_sight(s, p, 2) then + + self.v_start = true + self.timer = 0 + self.blinktimer = 0 + self:mob_sound(self.sounds.fuse) +-- print ("=== explosion timer started", self.explosion_timer) + + -- stop timer if out of reach or direct line of sight + elseif self.allow_fuse_reset + and self.v_start + and (dist > self.reach + or not self:line_of_sight(s, p, 2)) then + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.blinkstatus = false + self.object:settexturemod("") + end + + -- walk right up to player unless the timer is active + if self.v_start and (self.stop_to_explode or dist < 1.5) then + self:set_velocity(0) + else + self:set_velocity(self.run_velocity) + end + + if self.animation and self.animation.run_start then + self:set_animation("run") + else + self:set_animation("walk") + end + + if self.v_start then + + self.timer = self.timer + dtime + self.blinktimer = (self.blinktimer or 0) + dtime + + if self.blinktimer > 0.2 then + + self.blinktimer = 0 + + if self.blinkstatus then + self.object:set_texture_mod("") + else + self.object:set_texture_mod("^[brighten") + end + + self.blinkstatus = not self.blinkstatus + end + +-- print ("=== explosion timer", self.timer) + + if self.timer > self.explosion_timer then + + local pos = self.object:get_pos() + + -- dont damage anything if area protected or next to water + if minetest.find_node_near(pos, 1, {"group:water"}) + or minetest.is_protected(pos, "") then + + node_break_radius = 1 + end + + self.object:remove() + + if minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = node_break_radius, + damage_radius = entity_damage_radius, + sound = self.sounds.explode + }) + else + + minetest.sound_play(self.sounds.explode, { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds.distance or 32 + }) + + entity_physics(pos, entity_damage_radius) + effect(pos, 32, "tnt_smoke.png", nil, nil, node_break_radius, 1, 0) + end + + return + end + end + + elseif self.attack_type == "dogfight" + or (self.attack_type == "dogshoot" and self:dogswitch(dtime) == 2) + or (self.attack_type == "dogshoot" and dist <= self.reach and self:dogswitch() == 0) then + + if self.fly + and dist > self.reach then + + local p1 = s + local me_y = floor(p1.y) + local p2 = p + local p_y = floor(p2.y + 1) + local v = self.object:get_velocity() + + if self:flight_check() then + + if me_y < p_y then + + self.object:set_velocity({ + x = v.x, + y = 1 * self.walk_velocity, + z = v.z + }) + + elseif me_y > p_y then + + self.object:set_velocity({ + x = v.x, + y = -1 * self.walk_velocity, + z = v.z + }) + end + else + if me_y < p_y then + + self.object:set_velocity({ + x = v.x, + y = 0.01, + z = v.z + }) + + elseif me_y > p_y then + + self.object:set_velocity({ + x = v.x, + y = -0.01, + z = v.z + }) + end + end + + end + + -- rnd: new movement direction + if self.path.following + and self.path.way + and self.attack_type ~= "dogshoot" then + + -- no paths longer than 50 + if #self.path.way > 50 + or dist < self.reach then + self.path.following = false + return + end + + local p1 = self.path.way[1] + + if not p1 then + self.path.following = false + return + end + + if abs(p1.x-s.x) + abs(p1.z - s.z) < 0.6 then + -- reached waypoint, remove it from queue + table.remove(self.path.way, 1) + end + + -- set new temporary target + p = {x = p1.x, y = p1.y, z = p1.z} + end + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = self:set_yaw(yaw) + + -- move towards enemy if beyond mob reach + if dist > self.reach then + + -- path finding by rnd + if self.pathfinding -- only if mob has pathfinding enabled + and enable_pathfinding then + + self:smart_mobs(s, p, dist, dtime) + end + + if self.at_cliff then + + self:set_velocity(0) + self:set_animation("stand") + else + + if self.path.stuck then + self:set_velocity(self.walk_velocity) + else + self:set_velocity(self.run_velocity) + end + + if self.animation and self.animation.run_start then + self:set_animation("run") + else + self:set_animation("walk") + end + end + + else -- rnd: if inside reach range + + self.path.stuck = false + self.path.stuck_timer = 0 + self.path.following = false -- not stuck anymore + + self:set_velocity(0) + + if not self.custom_attack then + + if self.timer > 1 then + + self.timer = 0 + self:set_animation("punch") + + local p2 = p + local s2 = s + + p2.y = p2.y + .5 + s2.y = s2.y + .5 + + if self:line_of_sight(p2, s2) == true then + + -- play attack sound + self:mob_sound(self.sounds.attack) + + -- punch player (or what player is attached to) + local attached = self.attack:get_attach() + if attached then + self.attack = attached + end + self.attack:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = self.damage} + }, nil) + end + end + else -- call custom attack every second + if self.custom_attack + and self.timer > 1 then + + self.timer = 0 + + self:custom_attack(p) + end + end + end + + elseif self.attack_type == "shoot" + or (self.attack_type == "dogshoot" and self:dogswitch(dtime) == 1) + or (self.attack_type == "dogshoot" and dist > self.reach and self:dogswitch() == 0) then + + p.y = p.y - .5 + s.y = s.y + .5 + + local dist = get_distance(p, s) + local vec = { + x = p.x - s.x, + y = p.y - s.y, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = self:set_yaw(yaw) + + self:set_velocity(0) + + if self.shoot_interval + and self.timer > self.shoot_interval + and random(1, 100) <= 60 then + + self.timer = 0 + self:set_animation("shoot") + + -- play shoot attack sound + self:mob_sound(self.sounds.shoot_attack) + + local p = self.object:get_pos() + + p.y = p.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 + + if minetest.registered_entities[self.arrow] then + + local obj = minetest.add_entity(p, self.arrow) + local ent = obj:get_luaentity() + local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 + local v = ent.velocity or 1 -- or set to default + + ent.switch = 1 + ent.owner_id = tostring(self.object) -- add unique owner id to arrow + + -- offset makes shoot aim accurate + vec.y = vec.y + self.shoot_offset + vec.x = vec.x * (v / amount) + vec.y = vec.y * (v / amount) + vec.z = vec.z * (v / amount) + + obj:set_velocity(vec) + end + end + end + end +end + + +-- falling and fall damage +function mob_class:falling(pos) + + if self.fly or self.disable_falling then + return + end + + -- floating in water (or falling) + local v = self.object:get_velocity() + + if v.y > 0 then + + -- apply gravity when moving up + self.object:set_acceleration({ + x = 0, + y = -10, + z = 0 + }) + + elseif v.y <= 0 and v.y > self.fall_speed then + + -- fall downwards at set speed + self.object:set_acceleration({ + x = 0, + y = self.fall_speed, + z = 0 + }) + else + -- stop accelerating once max fall speed hit + self.object:set_acceleration({x = 0, y = 0, z = 0}) + end + + -- in water then float up + if self.standing_in + and minetest.registered_nodes[self.standing_in].groups.water then + + if self.floats == 1 then + + self.object:set_acceleration({ + x = 0, + y = -self.fall_speed / (max(1, v.y) ^ 8), -- 8 was 2 + z = 0 + }) + end + else + + -- fall damage onto solid ground + if self.fall_damage == 1 + and self.object:get_velocity().y == 0 then + + local d = (self.old_y or 0) - self.object:get_pos().y + + if d > 5 then + + self.health = self.health - floor(d - 5) + + effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) + + if self:check_for_death({type = "fall"}) then + return + end + end + + self.old_y = self.object:get_pos().y + end + end +end + + +-- is Took Ranks mod active? +local tr = minetest.get_modpath("toolranks") + +-- deal damage and effects when mob punched +function mob_class:on_punch(hitter, tflp, tool_capabilities, dir) + + -- mob health check + if self.health <= 0 then + return + end + + -- custom punch function + if self.do_punch + and self:do_punch(hitter, tflp, tool_capabilities, dir) == false then + return + end + + -- error checking when mod profiling is enabled + if not tool_capabilities then + minetest.log("warning", "[mobs] Mod profiling enabled, damage not enabled") + return + end + + -- is mob protected? + if self.protected and hitter:is_player() + and minetest.is_protected(self.object:get_pos(), hitter:get_player_name()) then + minetest.chat_send_player(hitter:get_player_name(), S("Mob has been protected!")) + return + end + + local weapon = hitter:get_wielded_item() + local weapon_def = weapon:get_definition() or {} + local punch_interval = 1.4 + + -- calculate mob damage + local damage = 0 + local armor = self.object:get_armor_groups() or {} + local tmp + + -- quick error check incase it ends up 0 (serialize.h check test) + if tflp == 0 then + tflp = 0.2 + end + + if use_cmi then + damage = cmi.calculate_damage(self.object, hitter, tflp, tool_capabilities, dir) + else + + for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do + + tmp = tflp / (tool_capabilities.full_punch_interval or 1.4) + + if tmp < 0 then + tmp = 0.0 + elseif tmp > 1 then + tmp = 1.0 + end + + damage = damage + (tool_capabilities.damage_groups[group] or 0) + * tmp * ((armor[group] or 0) / 100.0) + end + end + + -- check for tool immunity or special damage + for n = 1, #self.immune_to do + + if self.immune_to[n][1] == weapon_def.name then + + damage = self.immune_to[n][2] or 0 + break + + -- if "all" then no tool does damage unless it's specified in list + elseif self.immune_to[n][1] == "all" then + damage = self.immune_to[n][2] or 0 + end + end + + -- healing + if damage <= -1 then + self.health = self.health - floor(damage) + return + end + +-- print ("Mob Damage is", damage) + + if use_cmi + and cmi.notify_punch(self.object, hitter, tflp, tool_capabilities, dir, damage) then + return + end + + -- add weapon wear + punch_interval = tool_capabilities.full_punch_interval or 1.4 + + -- toolrank support + local wear = floor((punch_interval / 75) * 9000) + + if mobs.is_creative(hitter:get_player_name()) then + + if tr then + wear = 1 + else + wear = 0 + end + end + + if tr then + if weapon_def.original_description then + toolranks.new_afteruse(weapon, hitter, nil, {wear = wear}) + end + else + weapon:add_wear(wear) + end + + hitter:set_wielded_item(weapon) + + -- only play hit sound and show blood effects if damage is 1 or over + if damage >= 1 then + + -- weapon sounds + if weapon_def.sounds then + + local s = random(0, #weapon_def.sounds) + + minetest.sound_play(weapon_def.sounds[s], { + object = self.object, + max_hear_distance = 8 + }) + else + minetest.sound_play("default_punch", { + object = self.object, + max_hear_distance = 5 + }) + end + + -- blood_particles + if not disable_blood and self.blood_amount > 0 then + + local pos = self.object:get_pos() + + pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) * .5 + + -- do we have a single blood texture or multiple? + if type(self.blood_texture) == "table" then + + local blood = self.blood_texture[random(1, #self.blood_texture)] + + effect(pos, self.blood_amount, blood, nil, nil, 1, nil) + else + effect(pos, self.blood_amount, self.blood_texture, nil, nil, 1, nil) + end + end + + -- do damage + self.health = self.health - floor(damage) + + -- exit here if dead, check for tools with fire damage + local hot = tool_capabilities and tool_capabilities.damage_groups + and tool_capabilities.damage_groups.fire + + if self:check_for_death({type = "punch", + puncher = hitter, hot = hot}) then + return + end + + --[[ add healthy afterglow when hit (can cause hit lag with larger textures) + minetest.after(0.1, function() + + if not self.object:get_luaentity() then return end + + self.object:settexturemod("^[colorize:#c9900070") + + core.after(0.3, function() + self.object:settexturemod("") + end) + end) ]] + + end -- END if damage + + -- knock back effect (only on full punch) + if self.knock_back + and tflp >= punch_interval then + + local v = self.object:get_velocity() + local kb = damage or 1 + local up = 2 + + -- if already in air then dont go up anymore when hit + if v.y > 0 + or self.fly then + up = 0 + end + + -- direction error check + dir = dir or {x = 0, y = 0, z = 0} + + -- use tool knockback value or default + kb = tool_capabilities.damage_groups["knockback"] or kb -- (kb * 1.5) + + self.object:set_velocity({ + x = dir.x * kb, + y = up, + z = dir.z * kb + }) + + self.pause_timer = 0.25 + end + + -- if skittish then run away + if self.runaway == true + and self.order ~= "stand" then + + local lp = hitter:get_pos() + local s = self.object:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = self:set_yaw(yaw, 6) + self.state = "runaway" + self.runaway_timer = 0 + self.following = nil + end + + local name = hitter:get_player_name() or "" + + -- attack puncher and call other mobs for help + if self.passive == false + and self.state ~= "flop" + and self.child == false + and self.attack_players == true + and hitter:get_player_name() ~= self.owner + and not mobs.invis[ name ] then + + -- attack whoever punched mob + self.state = "" + self:do_attack(hitter) + + -- alert others to the attack + local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) + local obj = nil + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj and obj._cmi_is_mob then + + -- only alert members of same mob + if obj.group_attack == true + and obj.state ~= "attack" + and obj.owner ~= name + and obj.name == self.name then + obj:do_attack(hitter) + end + + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + obj:do_attack(self.object) + end + end + end + end +end + + +-- get entity staticdata +function mob_class:get_staticdata() + + -- remove mob when out of range unless tamed + if remove_far + and self.remove_ok + and self.type ~= "npc" + and self.state ~= "attack" + and not self.tamed + and self.lifetimer < 20000 then + + --print ("REMOVED " .. self.name) + + self.object:remove() + + return ""-- nil + end + + self.remove_ok = true + self.attack = nil + self.following = nil + self.state = "stand" + + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + + if use_cmi then + self.serialized_cmi_components = cmi.serialize_components(self._cmi_components) + end + + local tmp = {} + + for _,stat in pairs(self) do + + local t = type(stat) + + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" + and _ ~= "_cmi_components" then + tmp[_] = self[_] + end + end + + --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') + return minetest.serialize(tmp) +end + + +-- activate mob and reload settings +function mob_class:mob_activate(staticdata, def, dtime) + + -- remove monsters in peaceful mode + if self.type == "monster" + and peaceful_only then + + self.object:remove() + + return + end + + -- load entity variables + local tmp = minetest.deserialize(staticdata) + + if tmp then + for _,stat in pairs(tmp) do + self[_] = stat + end + end + + -- force current model into mob + self.mesh = def.mesh + self.base_mesh = def.mesh + self.collisionbox = def.collisionbox + self.selectionbox = def.selectionbox + + -- select random texture, set model and size + if not self.base_texture then + + -- compatiblity with old simple mobs textures + if def.textures and type(def.textures[1]) == "string" then + def.textures = {def.textures} + end + + self.base_texture = def.textures and def.textures[random(1, #def.textures)] + self.base_mesh = def.mesh + self.base_size = self.visual_size + self.base_colbox = self.collisionbox + self.base_selbox = self.selectionbox + end + + -- for current mobs that dont have this set + if not self.base_selbox then + self.base_selbox = self.selectionbox or self.base_colbox + end + + -- set texture, model and size + local textures = self.base_texture + local mesh = self.base_mesh + local vis_size = self.base_size + local colbox = self.base_colbox + local selbox = self.base_selbox + + -- specific texture if gotten + if self.gotten == true + and def.gotten_texture then + textures = def.gotten_texture + end + + -- specific mesh if gotten + if self.gotten == true + and def.gotten_mesh then + mesh = def.gotten_mesh + end + + -- set child objects to half size + if self.child == true then + + vis_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + } + + if def.child_texture then + textures = def.child_texture[1] + end + + colbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5 + } + selbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5 + } + end + + if self.health == 0 then + self.health = random(self.hp_min, self.hp_max) + end + + -- pathfinding init + self.path = {} + self.path.way = {} -- path to follow, table of positions + self.path.lastpos = {x = 0, y = 0, z = 0} + self.path.stuck = false + self.path.following = false -- currently following path? + self.path.stuck_timer = 0 -- if stuck for too long search for path + + -- mob defaults + self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) + self.old_y = self.object:get_pos().y + self.old_health = self.health + self.sounds.distance = self.sounds.distance or 10 + self.textures = textures + self.mesh = mesh + self.collisionbox = colbox + self.selectionbox = selbox + self.visual_size = vis_size + self.standing_in = "air" + + -- check existing nametag + if not self.nametag then + self.nametag = def.nametag + end + + -- set anything changed above + self.object:set_properties(self) + self:set_yaw((random(0, 360) - 180) / 180 * pi, 6) + self:update_tag() + self:set_animation("stand") + + -- run on_spawn function if found + if self.on_spawn and not self.on_spawn_run then + if self.on_spawn(self) then + self.on_spawn_run = true -- if true, set flag to run once only + end + end + + -- run after_activate + if def.after_activate then + def.after_activate(self, staticdata, def, dtime) + end + + if use_cmi then + self._cmi_components = cmi.activate_components(self.serialized_cmi_components) + cmi.notify_activate(self.object, dtime) + end +end + + +-- handle mob lifetimer and expiration +function mob_class:mob_expire(pos, dtime) + + -- when lifetimer expires remove mob (except npc and tamed) + if self.type ~= "npc" + and not self.tamed + and self.state ~= "attack" + and remove_far ~= true + and self.lifetimer < 20000 then + + self.lifetimer = self.lifetimer - dtime + + if self.lifetimer <= 0 then + + -- only despawn away from player + local objs = minetest.get_objects_inside_radius(pos, 15) + + for n = 1, #objs do + + if objs[n]:is_player() then + + self.lifetimer = 20 + + return + end + end + +-- minetest.log("action", +-- S("lifetimer expired, removed @1", self.name)) + + effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0) + + self.object:remove() + + return + end + end +end + + +-- main mob function +function mob_class:on_step(dtime) + + if use_cmi then + cmi.notify_step(self.object, dtime) + end + + local pos = self.object:get_pos() + local yaw = 0 + + -- get node at foot level every quarter second + self.node_timer = (self.node_timer or 0) + dtime + + if self.node_timer > 0.25 then + + self.node_timer = 0 + + local y_level = self.collisionbox[2] + + if self.child then + y_level = self.collisionbox[2] * 0.5 + end + + -- what is mob standing in? + self.standing_in = node_ok({ + x = pos.x, y = pos.y + y_level + 0.25, z = pos.z}, "air").name +-- print ("standing in " .. self.standing_in) + + -- if standing inside solid block then jump to escape + if minetest.registered_nodes[self.standing_in].walkable and + minetest.registered_nodes[self.standing_in].drawtype == "normal" then + + self.object:set_velocity({ + x = 0, + y = self.jump_height, + z = 0 + }) + end + + -- check and stop if standing at cliff and fear of heights + self.at_cliff = self:is_at_cliff() + + if self.at_cliff then + self:set_velocity(0) + end + + -- check for mob expiration (0.25 instead of dtime since were in a timer) + self:mob_expire(pos, 0.25) + end + + -- check if falling, flying, floating + self:falling(pos) + + -- smooth rotation by ThomasMonroe314 + + if self.delay and self.delay > 0 then + + local yaw = self.object:get_yaw() + + if self.delay == 1 then + yaw = self.target_yaw + else + local dif = abs(yaw - self.target_yaw) + + if yaw > self.target_yaw then + + if dif > pi then + dif = 2 * pi - dif -- need to add + yaw = yaw + dif / self.delay + else + yaw = yaw - dif / self.delay -- need to subtract + end + + elseif yaw < self.target_yaw then + + if dif > pi then + dif = 2 * pi - dif + yaw = yaw - dif / self.delay -- need to subtract + else + yaw = yaw + dif / self.delay -- need to add + end + end + + if yaw > (pi * 2) then yaw = yaw - (pi * 2) end + if yaw < 0 then yaw = yaw + (pi * 2) end + end + + self.delay = self.delay - 1 + self.object:set_yaw(yaw) + end + + -- end rotation + + -- knockback timer + if self.pause_timer > 0 then + + self.pause_timer = self.pause_timer - dtime + + return + end + + -- run custom function (defined in mob lua file) + if self.do_custom then + + -- when false skip going any further + if self:do_custom(dtime) == false then + return + end + end + + -- attack timer + self.timer = self.timer + dtime + + if self.state ~= "attack" then + + if self.timer < 1 then + return + end + + self.timer = 0 + end + + -- never go over 100 + if self.timer > 100 then + self.timer = 1 + end + + -- mob plays random sound at times + if random(1, 100) == 1 then + self:mob_sound(self.sounds.random) + end + + -- environmental damage timer (every 1 second) + self.env_damage_timer = self.env_damage_timer + dtime + + if (self.state == "attack" and self.env_damage_timer > 1) + or self.state ~= "attack" then + + self.env_damage_timer = 0 + + -- check for environmental damage (water, fire, lava etc.) + self:do_env_damage() + + -- node replace check (cow eats grass etc.) + self:replace(pos) + end + + self:general_attack() + + self:breed() + + self:follow_flop() + + self:do_states(dtime) + + self:do_jump() + + self:do_runaway_from(self) + + self:do_stay_near() +end + + +-- default function when mobs are blown up with TNT +function mob_class:on_blast(damage) + + --print ("----- Damage", damage) + + self.object:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + + return false, true, {} +end + + +mobs.spawning_mobs = {} + +-- register mob entity +function mobs:register_mob(name, def) + + mobs.spawning_mobs[name] = true + +minetest.register_entity(name, setmetatable({ + + stepheight = def.stepheight, + name = name, + type = def.type, + attack_type = def.attack_type, + fly = def.fly, + fly_in = def.fly_in, + owner = def.owner, + order = def.order, + on_die = def.on_die, + do_custom = def.do_custom, + jump_height = def.jump_height, + drawtype = def.drawtype, -- DEPRECATED, use rotate instead + rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 + lifetimer = def.lifetimer, + hp_min = max(1, (def.hp_min or 5) * difficulty), + hp_max = max(1, (def.hp_max or 10) * difficulty), + collisionbox = def.collisionbox, + selectionbox = def.selectionbox or def.collisionbox, + visual = def.visual, + visual_size = def.visual_size, + mesh = def.mesh, + makes_footstep_sound = def.makes_footstep_sound, + view_range = def.view_range, + walk_velocity = def.walk_velocity, + run_velocity = def.run_velocity, + damage = max(0, (def.damage or 0) * difficulty), + light_damage = def.light_damage, + light_damage_min = def.light_damage_min, + light_damage_max = def.light_damage_max, + water_damage = def.water_damage, + lava_damage = def.lava_damage, + suffocation = def.suffocation, + fall_damage = def.fall_damage, + fall_speed = def.fall_speed, + drops = def.drops, + armor = def.armor, + on_rightclick = def.on_rightclick, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds, + animation = def.animation, + follow = def.follow, + jump = def.jump, + walk_chance = def.walk_chance, + stand_chance = def.stand_chance, + attack_chance = def.attack_chance, + passive = def.passive, + knock_back = def.knock_back, + blood_amount = def.blood_amount, + blood_texture = def.blood_texture, + shoot_offset = def.shoot_offset, + floats = def.floats, + replace_rate = def.replace_rate, + replace_what = def.replace_what, + replace_with = def.replace_with, + replace_offset = def.replace_offset, + on_replace = def.on_replace, + reach = def.reach, + texture_list = def.textures, + child_texture = def.child_texture, + docile_by_day = def.docile_by_day, + fear_height = def.fear_height, + runaway = def.runaway, + pathfinding = def.pathfinding, + immune_to = def.immune_to, + explosion_radius = def.explosion_radius, + explosion_damage_radius = def.explosion_damage_radius, + explosion_timer = def.explosion_timer, + allow_fuse_reset = def.allow_fuse_reset, + stop_to_explode = def.stop_to_explode, + custom_attack = def.custom_attack, + double_melee_attack = def.double_melee_attack, + dogshoot_switch = def.dogshoot_switch, + dogshoot_count_max = def.dogshoot_count_max, + dogshoot_count2_max = def.dogshoot_count2_max or def.dogshoot_count_max, + group_attack = def.group_attack, + attack_monsters = def.attacks_monsters or def.attack_monsters, + attack_animals = def.attack_animals, + attack_players = def.attack_players, + attack_npcs = def.attack_npcs, + specific_attack = def.specific_attack, + runaway_from = def.runaway_from, + owner_loyal = def.owner_loyal, + pushable = def.pushable, + stay_near = def.stay_near, + + on_spawn = def.on_spawn, + + on_blast = def.on_blast, -- class redifinition + + do_punch = def.do_punch, + + on_breed = def.on_breed, + + on_grown = def.on_grown, + + on_activate = function(self, staticdata, dtime) + return self:mob_activate(staticdata, def, dtime) + end, + +}, mob_class_meta)) + +end -- END mobs:register_mob function + + +-- count how many mobs of one type are inside an area +-- will also return true for second value if player is inside area +local count_mobs = function(pos, type) + + local total = 0 + local objs = minetest.get_objects_inside_radius(pos, aoc_range * 2) + local ent + local players + + for n = 1, #objs do + + if not objs[n]:is_player() then + + ent = objs[n]:get_luaentity() + + -- count mob type and add to total also + if ent and ent.name and ent.name == type then + total = total + 1 + end + else + players = true + end + end + + return total, players +end + + +-- global functions + +function mobs:spawn_abm_check(pos, node, name) + -- global function to add additional spawn checks + -- return true to stop spawning mob +end + + +function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, + interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) + + -- Do mobs spawn at all? + if not mobs_spawn then + return + end + + -- chance/spawn number override in minetest.conf for registered mob + local numbers = minetest.settings:get(name) + + if numbers then + numbers = numbers:split(",") + chance = tonumber(numbers[1]) or chance + aoc = tonumber(numbers[2]) or aoc + + if chance == 0 then + minetest.log("warning", string.format("[mobs] %s has spawning disabled", name)) + return + end + + minetest.log("action", + string.format("[mobs] Chance setting for %s changed to %s (total: %s)", + name, chance, aoc)) + + end + + minetest.register_abm({ + + label = name .. " spawning", + nodenames = nodes, + neighbors = neighbors, + interval = interval, + chance = max(1, (chance * mob_chance_multiplier)), + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- is mob actually registered? + if not mobs.spawning_mobs[name] + or not minetest.registered_entities[name] then +--print ("--- mob doesn't exist", name) + return + end + + -- additional custom checks for spawning mob + if mobs:spawn_abm_check(pos, node, name) == true then + return + end + + -- do not spawn if too many entities in area + if active_object_count_wider >= max_per_block then +--print("--- too many entities in area", active_object_count_wider) + return + end + + -- get total number of this mob in area + local num_mob, is_pla = count_mobs(pos, name) + + if not is_pla then +--print ("--- no players within active area, will not spawn " .. name) + return + end + + if num_mob >= aoc then +--print ("--- too many " .. name .. " in area", num_mob .. "/" .. aoc) + return + end + + -- if toggle set to nil then ignore day/night check + if day_toggle ~= nil then + + local tod = (minetest.get_timeofday() or 0) * 24000 + + if tod > 4500 and tod < 19500 then + -- daylight, but mob wants night + if day_toggle == false then +--print ("--- mob needs night", name) + return + end + else + -- night time but mob wants day + if day_toggle == true then +--print ("--- mob needs day", name) + return + end + end + end + + -- spawn above node + pos.y = pos.y + 1 + + -- are we spawning within height limits? + if pos.y > max_height + or pos.y < min_height then +--print ("--- height limits not met", name, pos.y) + return + end + + -- are light levels ok? + local light = minetest.get_node_light(pos) + if not light + or light > max_light + or light < min_light then +--print ("--- light limits not met", name, light) + return + end + + -- only spawn away from player + local objs = minetest.get_objects_inside_radius(pos, 8) + + for n = 1, #objs do + + if objs[n]:is_player() then +--print ("--- player too close", name) + return + end + end + + -- do we have enough height clearance to spawn mob? + local ent = minetest.registered_entities[name] + local height = max(1, math.ceil( + (ent.collisionbox[5] or 0.25) - + (ent.collisionbox[2] or -0.25) - 1)) + + for n = 0, height do + + local pos2 = {x = pos.x, y = pos.y + n, z = pos.z} + + if minetest.registered_nodes[node_ok(pos2).name].walkable == true then +--print ("--- inside block", name, node_ok(pos2).name) + return + end + end + + -- mobs cannot spawn in protected areas when enabled + if not spawn_protected + and minetest.is_protected(pos, "") then +--print ("--- inside protected area", name) + return + end + + -- spawn mob half block higher than ground + pos.y = pos.y + 0.5 + + local mob = minetest.add_entity(pos, name) +--[[ + print ("[mobs] Spawned " .. name .. " at " + .. minetest.pos_to_string(pos) .. " on " + .. node.name .. " near " .. neighbors[1]) +]] + if on_spawn then + + local ent = mob:get_luaentity() + + on_spawn(ent, pos) + end + end + }) +end + + +-- compatibility with older mob registration +function mobs:register_spawn(name, nodes, max_light, min_light, chance, + active_object_count, max_height, day_toggle) + + mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30, + chance, active_object_count, -31000, max_height, day_toggle) +end + + +-- MarkBu's spawn function +function mobs:spawn(def) + + mobs:spawn_specific( + def.name, + def.nodes or {"group:soil", "group:stone"}, + def.neighbors or {"air"}, + def.min_light or 0, + def.max_light or 15, + def.interval or 30, + def.chance or 5000, + def.active_object_count or 1, + def.min_height or -31000, + def.max_height or 31000, + def.day_toggle, + def.on_spawn) +end + + +-- register arrow for shoot attack +function mobs:register_arrow(name, def) + + if not name or not def then return end -- errorcheck + + minetest.register_entity(name, { + + physical = false, + visual = def.visual, + visual_size = def.visual_size, + textures = def.textures, + velocity = def.velocity, + hit_player = def.hit_player, + hit_node = def.hit_node, + hit_mob = def.hit_mob, + drop = def.drop or false, -- drops arrow as registered item when true + collisionbox = def.collisionbox or {0, 0, 0, 0, 0, 0}, + timer = 0, + switch = 0, + owner_id = def.owner_id, + rotate = def.rotate, + automatic_face_movement_dir = def.rotate + and (def.rotate - (pi / 180)) or false, + + on_activate = def.on_activate, + + on_punch = def.on_punch or function(self, hitter, tflp, tool_capabilities, dir) + end, + + on_step = def.on_step or function(self, dtime) + + self.timer = self.timer + 1 + + local pos = self.object:get_pos() + + if self.switch == 0 + or self.timer > 150 then + + self.object:remove() ; -- print ("removed arrow") + + return + end + + -- does arrow have a tail (fireball) + if def.tail + and def.tail == 1 + and def.tail_texture then + + minetest.add_particle({ + pos = pos, + velocity = {x = 0, y = 0, z = 0}, + acceleration = {x = 0, y = 0, z = 0}, + expirationtime = def.expire or 0.25, + collisiondetection = false, + texture = def.tail_texture, + size = def.tail_size or 5, + glow = def.glow or 0 + }) + end + + if self.hit_node then + + local node = node_ok(pos).name + + if minetest.registered_nodes[node].walkable then + + self:hit_node(pos, node) + + if self.drop == true then + + pos.y = pos.y + 1 + + self.lastpos = (self.lastpos or pos) + + minetest.add_item(self.lastpos, self.object:get_luaentity().name) + end + + self.object:remove() ; -- print ("hit node") + + return + end + end + + if self.hit_player or self.hit_mob then + + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do + + if self.hit_player + and player:is_player() then + + self:hit_player(player) + self.object:remove() ; -- print ("hit player") + return + end + + local entity = player:get_luaentity() + + if entity + and self.hit_mob + and entity._cmi_is_mob == true + and tostring(player) ~= self.owner_id + and entity.name ~= self.object:get_luaentity().name then + + self:hit_mob(player) + + self.object:remove() ; --print ("hit mob") + + return + end + end + end + + self.lastpos = pos + end + }) +end + + +-- compatibility function +function mobs:explosion(pos, radius) + + local self = {sounds = {explode = "tnt_explode"}} + + mobs:boom(self, pos, radius) +end + + +-- no damage to nodes explosion +function mobs:safe_boom(self, pos, radius) + + minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds and self.sounds.distance or 32 + }) + + entity_physics(pos, radius) + + effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0) +end + + +-- make explosion with protection and tnt mod check +function mobs:boom(self, pos, radius) + + if mobs_griefing + and minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = radius, + damage_radius = radius, + sound = self.sounds and self.sounds.explode, + explode_center = true, + }) + else + mobs:safe_boom(self, pos, radius) + end +end + + +-- Register spawn eggs + +-- Note: This also introduces the “spawn_egg” group: +-- * spawn_egg=1: Spawn egg (generic mob, no metadata) +-- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata) +function mobs:register_egg(mob, desc, background, addegg, no_creative) + + local grp = {spawn_egg = 1} + + -- do NOT add this egg to creative inventory (e.g. dungeon master) + if creative and no_creative == true then + grp.not_in_creative_inventory = 1 + end + + local invimg = background + + if addegg == 1 then + invimg = "mobs_chicken_egg.png^(" .. invimg .. + "^[mask:mobs_chicken_egg_overlay.png)" + end + + -- register new spawn egg containing mob information + minetest.register_craftitem(mob .. "_set", { + + description = S("@1 (Tamed)", desc), + inventory_image = invimg, + groups = {spawn_egg = 2, not_in_creative_inventory = 1}, + stack_max = 1, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local data = itemstack:get_metadata() + local mob = minetest.add_entity(pos, mob, data) + local ent = mob:get_luaentity() + + -- set owner if not a monster + if ent.type ~= "monster" then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- since mob is unique we remove egg once spawned + itemstack:take_item() + end + + return itemstack + end, + }) + + + -- register old stackable mob egg + minetest.register_craftitem(mob, { + + description = desc, + inventory_image = invimg, + groups = grp, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local mob = minetest.add_entity(pos, mob) + local ent = mob:get_luaentity() + + -- don't set owner if monster or sneak pressed + if ent.type ~= "monster" + and not placer:get_player_control().sneak then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- if not in creative then take item + if not mobs.is_creative(placer:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end, + }) + +end + + +-- force capture a mob if space available in inventory, or drop as spawn egg +function mobs:force_capture(self, clicker) + + -- add special mob egg with all mob information + local new_stack = ItemStack(self.name .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:get_pos(), new_stack) + end + + self.object:remove() + + self:mob_sound("default_place_node_hard") +end + + +-- capture critter (thanks to blert2112 for idea) +function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, + force_take, replacewith) + + if self.child + or not clicker:is_player() + or not clicker:get_inventory() then + return false + end + + -- get name of clicked mob + local mobname = self.name + + -- if not nil change what will be added to inventory + if replacewith then + mobname = replacewith + end + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + -- are we using hand, net or lasso to pick up mob? + if tool:get_name() ~= "" + and tool:get_name() ~= "mobs:net" + and tool:get_name() ~= "mobs:lasso" then + return false + end + + -- is mob tamed? + if self.tamed == false + and force_take == false then + + minetest.chat_send_player(name, S("Not tamed!")) + + return false + end + + -- cannot pick up if not owner + if self.owner ~= name + and force_take == false then + + minetest.chat_send_player(name, S("@1 is owner!", self.owner)) + + return false + end + + if clicker:get_inventory():room_for_item("main", mobname) then + + -- was mob clicked with hand, net, or lasso? + local chance = 0 + + if tool:get_name() == "" then + chance = chance_hand + + elseif tool:get_name() == "mobs:net" then + + chance = chance_net + + tool:add_wear(4000) -- 17 uses + + clicker:set_wielded_item(tool) + + elseif tool:get_name() == "mobs:lasso" then + + chance = chance_lasso + + tool:add_wear(650) -- 100 uses + + clicker:set_wielded_item(tool) + + end + + -- calculate chance.. add to inventory if successful? + if chance and chance > 0 and random(1, 100) <= chance then + + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'replacewith' contains new item to use + if not replacewith then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:get_pos(), new_stack) + end + + self.object:remove() + + self:mob_sound("default_place_node_hard") + + return new_stack + + -- when chance above fails or set to 0, miss! + elseif chance and chance ~= 0 then + minetest.chat_send_player(name, S("Missed!")) + + self:mob_sound("mobs_swing") + return false + + -- when chance set to nil always return a miss (used for npc walk/follow) + elseif not chance then + return false + end + end + + return true +end + + +-- protect tamed mob with rune item +function mobs:protect(self, clicker) + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + if tool:get_name() ~= "mobs:protector" then + return false + end + + if self.tamed == false then + minetest.chat_send_player(name, S("Not tamed!")) + return true -- false + end + + if self.protected == true then + minetest.chat_send_player(name, S("Already protected!")) + return true -- false + end + + if not mobs.is_creative(clicker:get_player_name()) then + tool:take_item() -- take 1 protection rune + clicker:set_wielded_item(tool) + end + + self.protected = true + + local pos = self.object:get_pos() + pos.y = pos.y + self.collisionbox[2] + 0.5 + + effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15) + + self:mob_sound("mobs_spell") + + return true +end + + +local mob_obj = {} +local mob_sta = {} + +-- feeding, taming and breeding (thanks blert2112) +function mobs:feed_tame(self, clicker, feed_count, breed, tame) + + -- can eat/tame with item in hand + if self.follow + and self:follow_holding(clicker) then + + -- if not in creative then take item + if not mobs.is_creative(clicker:get_player_name()) then + + local item = clicker:get_wielded_item() + + item:take_item() + + clicker:set_wielded_item(item) + end + + -- increase health + self.health = self.health + 4 + + if self.health >= self.hp_max then + + self.health = self.hp_max + + if self.htimer < 1 then + + minetest.chat_send_player(clicker:get_player_name(), + S("@1 at full health (@2)", + self.name:split(":")[2], tostring(self.health))) + + self.htimer = 5 + end + end + + self.object:set_hp(self.health) + + self:update_tag() + + -- make children grow quicker + if self.child == true then + + self.hornytimer = self.hornytimer + 20 + + return true + end + + -- feed and tame + self.food = (self.food or 0) + 1 + + if self.food >= feed_count then + + self.food = 0 + + if breed and self.hornytimer == 0 then + self.horny = true + end + + if tame then + + if self.tamed == false then + minetest.chat_send_player(clicker:get_player_name(), + S("@1 has been tamed!", + self.name:split(":")[2])) + end + + self.tamed = true + + if not self.owner or self.owner == "" then + self.owner = clicker:get_player_name() + end + end + + -- make sound when fed so many times + self:mob_sound(self.sounds.random) + end + + return true + end + + local item = clicker:get_wielded_item() + + -- if mob has been tamed you can name it with a nametag + if item:get_name() == "mobs:nametag" + and clicker:get_player_name() == self.owner then + + local name = clicker:get_player_name() + + -- store mob and nametag stack in external variables + mob_obj[name] = self + mob_sta[name] = item + + local tag = self.nametag or "" + + minetest.show_formspec(name, "mobs_nametag", "size[8,4]" + .. "field[0.5,1;7.5,0;name;" + .. minetest.formspec_escape(S("Enter name:")) .. ";" .. tag .. "]" + .. "button_exit[2.5,3.5;3,1;mob_rename;" + .. minetest.formspec_escape(S("Rename")) .. "]") + end + + return false +end + + +-- inspired by blockmen's nametag mod +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_nametag" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + if not mob_obj[name] + or not mob_obj[name].object then + return + end + + -- make sure nametag is being used to name mob + local item = player:get_wielded_item() + + if item:get_name() ~= "mobs:nametag" then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update nametag + mob_obj[name].nametag = fields.name + + mob_obj[name]:update_tag() + + -- if not in creative then take item + if not mobs.is_creative(name) then + + mob_sta[name]:take_item() + + player:set_wielded_item(mob_sta[name]) + end + + -- reset external variables + mob_obj[name] = nil + mob_sta[name] = nil + end +end) + + +-- compatibility function for old entities to new modpack entities +function mobs:alias_mob(old_name, new_name) + + -- check old_name entity doesnt already exist + if minetest.registered_entities[old_name] then + return + end + + -- spawn egg + minetest.register_alias(old_name, new_name) + + -- entity + minetest.register_entity(":" .. old_name, { + + physical = false, + + on_activate = function(self) + + if minetest.registered_entities[new_name] then + minetest.add_entity(self.object:get_pos(), new_name) + end + + self.object:remove() + end + }) +end -- 2.40.1 From ca8ce22c08ee67913ad1e8f1aaa22070021bd6b5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:43:39 -0500 Subject: [PATCH 208/321] Rename mods/api.lua to mods/mobs_redo/api.lua --- mods/{ => mobs_redo}/api.lua | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{ => mobs_redo}/api.lua (100%) diff --git a/mods/api.lua b/mods/mobs_redo/api.lua similarity index 100% rename from mods/api.lua rename to mods/mobs_redo/api.lua -- 2.40.1 From 7ade19853916d81c54f5eae5cd7aa1f6d3875db7 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:44:14 -0500 Subject: [PATCH 209/321] Add files via upload --- mods/mobs_redo/api.txt | 768 ++++++++++++++++++++++++++++++++ mods/mobs_redo/crafts.lua | 327 ++++++++++++++ mods/mobs_redo/depends.txt | 9 + mods/mobs_redo/description.txt | 1 + mods/mobs_redo/init.lua | 19 + mods/mobs_redo/intllib.lua | 45 ++ mods/mobs_redo/license.txt | 21 + mods/mobs_redo/lucky_block.lua | 18 + mods/mobs_redo/mod.conf | 1 + mods/mobs_redo/mount.lua | 448 +++++++++++++++++++ mods/mobs_redo/readme.MD | 86 ++++ mods/mobs_redo/settingtypes.txt | 29 ++ mods/mobs_redo/spawner.lua | 178 ++++++++ 13 files changed, 1950 insertions(+) create mode 100644 mods/mobs_redo/api.txt create mode 100644 mods/mobs_redo/crafts.lua create mode 100644 mods/mobs_redo/depends.txt create mode 100644 mods/mobs_redo/description.txt create mode 100644 mods/mobs_redo/init.lua create mode 100644 mods/mobs_redo/intllib.lua create mode 100644 mods/mobs_redo/license.txt create mode 100644 mods/mobs_redo/lucky_block.lua create mode 100644 mods/mobs_redo/mod.conf create mode 100644 mods/mobs_redo/mount.lua create mode 100644 mods/mobs_redo/readme.MD create mode 100644 mods/mobs_redo/settingtypes.txt create mode 100644 mods/mobs_redo/spawner.lua diff --git a/mods/mobs_redo/api.txt b/mods/mobs_redo/api.txt new file mode 100644 index 00000000..7b84ca68 --- /dev/null +++ b/mods/mobs_redo/api.txt @@ -0,0 +1,768 @@ + +Mobs Redo API +============= + +Welcome to the world of mobs in minetest and hopefully an easy guide to defining +your own mobs and having them appear in your worlds. + + +Registering Mobs +---------------- + +To register a mob and have it ready for use requires the following function: + + mobs:register_mob(name, definition) + +The 'name' of a mob usually starts with the mod name it's running from followed +by it's own name e.g. + + "mobs_monster:sand_monster" or "mymod:totally_awesome_beast" + +... and the 'definition' is a table which holds all of the settings and +functions needed for the mob to work properly which contains the following: + + 'nametag' contains the name which is shown above mob. + 'type' holds the type of mob that inhabits your world e.g. + "animal" usually docile and walking around. + "monster" attacks player or npc on sight. + "npc" walk around and will defend themselves if hit first, they + kill monsters. + 'hp_min' has the minimum health value the mob can spawn with. + 'hp_max' has the maximum health value the mob can spawn with. + 'armor' holds strength of mob, 100 is normal, lower is more powerful + and needs more hits and better weapons to kill. + 'passive' when true allows animals to defend themselves when hit, + otherwise they amble onwards. + 'walk_velocity' is the speed that your mob can walk around. + 'run_velocity' is the speed your mob can run with, usually when attacking. + 'stand_chance' has a 0-100 chance value your mob will stand from walking. + 'walk_chance' has a 0-100 chance value your mob will walk from standing, + set to 0 for jumping mobs only. + 'jump' when true allows your mob to jump updwards. + 'jump_height' holds the height your mob can jump, 0 to disable jumping. + 'stepheight' height of a block that your mob can easily walk up onto, + defaults to 1.1. + 'fly' when true allows your mob to fly around instead of walking. + 'fly_in' holds the node name that the mob flies (or swims) around + in e.g. "air" or "default:water_source". + 'stay_near' when set allows mobs the chance to stay around certain nodes. + 'nodes' string or table of nodes to stay nearby e.g. "farming:straw" + 'chance' chance of searching for above node(s), default is 10. + 'runaway' if true causes animals to turn and run away when hit. + 'pushable' when true mobs can be pushed by player or other mobs. + 'view_range' how many nodes in distance the mob can see a player. + 'damage' how many health points the mob does to a player or another + mob when melee attacking. + 'knock_back' when true has mobs falling backwards when hit, the greater + the damage the more they move back. + 'fear_height' is how high a cliff or edge has to be before the mob stops + walking, 0 to turn off height fear. + 'fall_speed' has the maximum speed the mob can fall at, default is -10. + 'fall_damage' when true causes falling to inflict damage. + 'water_damage' holds the damage per second infliced to mobs when standing in + water. + 'lava_damage' holds the damage per second inflicted to mobs when standing + in lava or fire or an ignition source. + 'light_damage' holds the damage per second inflicted to mobs when light + level is between the min and max values below + 'light_damage_min' minimum light value when mob is affected (default: 14) + 'light_damage_max' maximum light value when mob is affected (default: 15) + 'suffocation' when true causes mobs to suffocate inside solid blocks. + 'floats' when set to 1 mob will float in water, 0 has them sink. + 'follow' mobs follow player when holding any of the items which appear + on this table, the same items can be fed to a mob to tame or + breed e.g. {"farming:wheat", "default:apple"} + + 'reach' is how far the mob can attack player when standing + nearby, default is 3 nodes. + 'docile_by_day' when true has mobs wandering around during daylight + hours and only attacking player at night or when + provoked. + 'attack_chance' 0 to 100 chance the mob will attack (default is 5). + 'attack_monsters' when true mob will attack monsters. + 'attack_animals' when true mob will attack animals. + 'attack_npcs' when true mob will attack npcs within range. + 'attack_players' when true mob will attack players nearby. + 'owner_loyal' when true non-docile tamed mobs attack anything player + punches when nearby. + 'group_attack' when true has same mob type grouping together to attack + offender. + 'attack_type' tells the api what a mob does when attacking the player + or another mob: + 'dogfight' is a melee attack when player is within mob reach. + 'shoot' has mob shoot pre-defined arrows at player when inside + view_range. + 'dogshoot' has melee attack when inside reach and shoot attack + when inside view_range. + 'explode' causes mob to stop and explode when inside reach. + 'explosion_radius' the radius of explosion node destruction, + defaults to 1 + 'explosion_damage_radius' the radius of explosion entity & player damage, + defaults to explosion_radius * 2 + 'explosion_timer' number of seconds before mob explodes while its target + is still inside reach or explosion_damage_radius, + defaults to 3. + 'allow_fuse_reset' Allow 'explode' attack_type to reset fuse and resume + chasing if target leaves the blast radius or line of + sight. Defaults to true. + 'stop_to_explode' When set to true (default), mob must stop and wait for + explosion_timer in order to explode. If false, mob will + continue chasing. + 'arrow' holds the pre-defined arrow object to shoot when + attacking. + 'dogshoot_switch' allows switching between attack types by using timers + (1 for shoot, 2 for dogfight) + 'dogshoot_count_max' contains how many seconds before switching from + dogfight to shoot. + 'dogshoot_count2_max' contains how many seconds before switching from shoot + to dogfight. + 'shoot_interval' has the number of seconds between shots. + 'shoot_offset' holds the y position added as to where the + arrow/fireball appears on mob. + 'specific_attack' has a table of entity names that mob can also attack + e.g. {"player", "mobs_animal:chicken"}. + 'runaway_from' contains a table with mob names to run away from, add + "player" to list to runaway from player also. + 'blood_amount' contains the number of blood droplets to appear when + mob is hit. + 'blood_texture' has the texture name to use for droplets e.g. + "mobs_blood.png", or table {"blood1.png", "blood2.png"} + 'pathfinding' set to 1 for mobs to use pathfinder feature to locate + player, set to 2 so they can build/break also (only + works with dogfight attack and when 'mobs_griefing' + in minetest.conf is not false). Adding {unbreakable=1} + to node groups stops them being broken by mobs. + 'immune_to' is a table that holds specific damage when being hit by + certain items e.g. + {"default:sword_wood", 0} -- causes no damage. + {"default:gold_lump", -10} -- heals by 10 health points. + {"default:coal_block", 20} -- 20 damage when hit on head with coal blocks. + {"all"} -- stops all weapons causing damage apart from those on list. + + 'makes_footstep_sound' when true you can hear mobs walking. + 'sounds' this is a table with sounds of the mob + 'distance' maximum distance sounds can be heard, default is 10. + 'random' random sound that plays during gameplay. + 'war_cry' what you hear when mob starts to attack player. + 'attack' what you hear when being attacked. + 'shoot_attack' sound played when mob shoots. + 'damage' sound heard when mob is hurt. + 'death' played when mob is killed. + 'jump' played when mob jumps. + 'fuse' sound played when mob explode timer starts. + 'explode' sound played when mob explodes. + + 'drops' table of items that are dropped when mob is killed, fields are: + 'name' name of item to drop. + 'chance' chance of drop, 1 for always, 2 for 1-in-2 chance etc. + 'min' minimum number of items dropped, set to 0 for rare drops. + 'max' maximum number of items dropped. + Note: If weapon has {fire=1} damage group set then cooked items will drop. + Note2: A function can now be passed which can also return drops table, e.g. + drops = function(pos) + -- do something + return { {name = "farming:bread"}, {name = "default:dirt", chance = 2} } + end + + 'visual' holds the look of the mob you wish to create: + 'cube' looks like a normal node + 'sprite' sprite which looks same from all angles. + 'upright_sprite' flat model standing upright. + 'wielditem' how it looks when player holds it in hand. + 'mesh' uses separate object file to define mob. + 'visual_size' has the size of the mob, defaults to {x = 1, y = 1} + 'collisionbox' has the box in which mob can be interacted with the + world e.g. {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} + 'selectionbox' has the box in which player can interact with mob + 'textures' holds a table list of textures to be used for mob, or you + could use multiple lists inside another table for random + selection e.g. { {"texture1.png"}, {"texture2.png"} } + 'child_texture' holds the texture table for when baby mobs are used. + 'gotten_texture' holds the texture table for when self.gotten value is + true, used for milking cows or shearing sheep. + 'mesh' holds the name of the external object used for mob model + e.g. "mobs_cow.b3d" + 'gotten_mesh" holds the name of the external object used for when + self.gotten is true for mobs. + 'rotate' custom model rotation, 0 = front, 90 = side, 180 = back, + 270 = other side. + 'double_melee_attack' when true has the api choose between 'punch' and + 'punch2' animations. [DEPRECATED] + + 'animation' holds a table containing animation names and settings for use with mesh models: + 'stand_start' start frame for when mob stands still. + 'stand_end' end frame of stand animation. + 'stand_speed' speed of animation in frames per second. + 'walk_start' when mob is walking around. + 'walk_end' + 'walk_speed' + 'run_start' when a mob runs or attacks. + 'run_end' + 'run_speed' + 'fly_start' when a mob is flying. + 'fly_end' + 'fly_speed' + 'punch_start' when a mob melee attacks. + 'punch_end' + 'punch_speed' + 'punch2_start' alternative melee attack animation. + 'punch2_end' + 'punch2_speed' + 'shoot_start' shooting animation. + 'shoot_end' + 'shoot_speed' + 'die_start' death animation + 'die_end' + 'die_speed' + 'die_loop' when set to false stops the animation looping. + + Using '_loop = false' setting will stop any of the above animations from + looping. + + 'speed_normal' is used for animation speed for compatibility with some + older mobs. + + Note: Up to 5 different animations can be used per action e.g. + stand_start, stand_end, stand1_start, stand1_end .. up to stand4_start + + +Node Replacement +---------------- + +Mobs can look around for specific nodes as they walk and replace them to mimic +eating. + + 'replace_what' group of items to replace e.g. + {"farming:wheat_8", "farming:carrot_8"} + or you can use the specific options of what, with and + y offset by using this instead: + { + {"group:grass", "air", 0}, + {"default:dirt_with_grass", "default:dirt", -1} + } + 'replace_with' replace with what e.g. "air" or in chickens case "mobs:egg" + 'replace_rate' how random should the replace rate be (typically 10) + 'replace_offset' +/- value to check specific node to replace + + 'on_replace(self, pos, oldnode, newnode)' is called when mob is about to + replace a node. + 'self' ObjectRef of mob + 'pos' Position of node to replace + 'oldnode' Current node + 'newnode' What the node will become after replacing + + If false is returned, the mob will not replace the node. + + By default, replacing sets self.gotten to true and resets the object + properties. (DEPRECATED, use on_replace to make changes). + + +Custom Definition Functions +--------------------------- + +Along with the above mob registry settings we can also use custom functions to +enhance mob functionality and have them do many interesting things: + + 'on_die' a function that is called when the mob is killed the + parameters are (self, pos) + 'on_rightclick' its same as in minetest.register_entity() + 'on_blast' is called when an explosion happens near mob when using TNT + functions, parameters are (object, damage) and returns + (do_damage, do_knockback, drops) + 'on_spawn' is a custom function that runs on mob spawn with 'self' as + variable, return true at end of function to run only once. + 'after_activate' is a custom function that runs once mob has been activated + with these paramaters (self, staticdata, def, dtime) + 'on_breed' called when two similar mobs breed, paramaters are + (parent1, parent2) objects, return false to stop child from + being resized and owner/tamed flags and child textures being + applied. Function itself must spawn new child mob. + 'on_grown' is called when a child mob has grown up, only paramater is + (self). + 'do_punch' called when mob is punched with paramaters (self, hitter, + time_from_last_punch, tool_capabilities, direction), return + false to stop punch damage and knockback from taking place. + 'custom_attack' when set this function is called instead of the normal mob + melee attack, parameters are (self, to_attack). + 'on_die' a function that is called when mob is killed (self, pos) + 'do_custom' a custom function that is called every tick while mob is + active and which has access to all of the self.* variables + e.g. (self.health for health or self.standing_in for node + status), return with 'false' to skip remainder of mob API. + + +Internal Variables +------------------ + +The mob api also has some preset variables and functions that it will remember +for each mob. + + 'self.health' contains current health of mob (cannot exceed + self.hp_max) + 'self.texture_list' contains list of all mob textures + 'self.child_texture' contains mob child texture when growing up + 'self.base_texture' contains current skin texture which was randomly + selected from textures list + 'self.gotten' this is used for obtaining milk from cow and wool from + sheep + 'self.horny' when animal fed enough it is set to true and animal can + breed with same animal + 'self.hornytimer' background timer that controls breeding functions and + mob childhood timings + 'self.child' used for when breeding animals have child, will use + child_texture and be half size + 'self.owner' string used to set owner of npc mobs, typically used for + dogs + 'self.order' set to "follow" or "stand" so that npc will follow owner + or stand it's ground + 'self.nametag' contains the name of the mob which it can show above + + +Spawning Mobs in World +---------------------- + +mobs:register_spawn(name, nodes, max_light, min_light, chance, + active_object_count, max_height, day_toggle) + +mobs:spawn_specfic(name, nodes, neighbors, min_light, max_light, interval, + chance, active_object_count, min_height, max_height, day_toggle, on_spawn) + +These functions register a spawn algorithm for the mob. Without this function +the call the mobs won't spawn. + + 'name' is the name of the animal/monster + 'nodes' is a list of nodenames on that the animal/monster can + spawn on top of + 'neighbors' is a list of nodenames on that the animal/monster will + spawn beside (default is {"air"} for + mobs:register_spawn) + 'max_light' is the maximum of light + 'min_light' is the minimum of light + 'interval' is same as in register_abm() (default is 30 for + mobs:register_spawn) + 'chance' is same as in register_abm() + 'active_object_count' number of this type of mob to spawn at one time inside + map area + 'min_height' is the minimum height the mob can spawn + 'max_height' is the maximum height the mob can spawn + 'day_toggle' true for day spawning, false for night or nil for + anytime + 'on_spawn' is a custom function which runs after mob has spawned + and gives self and pos values. + +A simpler way to handle mob spawns has been added with the mobs:spawn(def) +command which uses above names to make settings clearer: + + mobs:spawn({name = "mobs_monster:tree_monster", + nodes = {"group:leaves"}, + max_light = 7, + }) + + +For each mob that spawns with this function is a field in mobs.spawning_mobs. +It tells if the mob should spawn or not. Default is true. So other mods can +only use the API of this mod by disabling the spawning of the default mobs in +this mod. + + +mobs:spawn_abm_check(pos, node, name) + +This global function can be changed to contain additional checks for mobs to +spawn e.g. mobs that spawn only in specific areas and the like. By returning +true the mob will not spawn. + + 'pos' holds the position of the spawning mob + 'node' contains the node the mob is spawning on top of + 'name' is the name of the animal/monster + + +Making Arrows +------------- + +mobs:register_arrow(name, definition) + +This function registers a arrow for mobs with the attack type shoot. + + 'name' is the name of the arrow + 'definition' is a table with the following values: + 'visual' same is in minetest.register_entity() + 'visual_size' same is in minetest.register_entity() + 'textures' same is in minetest.register_entity() + 'velocity' the velocity of the arrow + 'drop' if set to true any arrows hitting a node will drop as item + 'hit_player' a function that is called when the arrow hits a player; + this function should hurt the player, the parameters are + (self, player) + 'hit_mob' a function that is called when the arrow hits a mob; + this function should hurt the mob, the parameters are + (self, player) + 'hit_node' a function that is called when the arrow hits a node, the + parameters are (self, pos, node) + 'tail' when set to 1 adds a trail or tail to mob arrows + 'tail_texture' texture string used for above effect + 'tail_size' has size for above texture (defaults to between 5 and 10) + 'expire' contains float value for how long tail appears for + (defaults to 0.25) + 'glow' has value for how brightly tail glows 1 to 10 (default is + 0 for no glow) + 'rotate' integer value in degrees to rotate arrow + 'on_step' is a custom function when arrow is active, nil for + default. + 'on_punch' is a custom function when arrow is punched, nil by default + 'collisionbox' is hitbox table for arrow, {0,0,0,0,0,0} by default. + + +Spawn Eggs +---------- + +mobs:register_egg(name, description, background, addegg, no_creative) + +This function registers a spawn egg which can be used by admin to properly spawn in a mob. + + 'name' this is the name of your new mob to spawn e.g. "mob:sheep" + 'description' the name of the new egg you are creating e.g. "Spawn Sheep" + 'background' the texture displayed for the egg in inventory + 'addegg' would you like an egg image in front of your texture (1 = yes, + 0 = no) + 'no_creative' when set to true this stops spawn egg appearing in creative + mode for destructive mobs like Dungeon Masters. + + +Explosion Function +------------------ + +mobs:explosion(pos, radius) -- DEPRECATED!!! use mobs:boom() instead + +mobs:boom(self, pos, radius) + 'self' mob entity + 'pos' centre position of explosion + 'radius' radius of explosion (typically set to 3) + +This function generates an explosion which removes nodes in a specific radius +and damages any entity caught inside the blast radius. Protection will limit +node destruction but not entity damage. + + +Capturing Mobs +-------------- + +mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, + force_take, replacewith) + +This function is generally called inside the on_rightclick section of the mob +api code, it provides a chance of capturing the mob by hand, using the net or +lasso items, and can also have the player take the mob by force if tamed and +replace with another item entirely. + + 'self' mob information + 'clicker' player information + 'chance_hand' chance of capturing mob by hand (1 to 100) 0 to disable + 'chance_net' chance of capturing mob using net (1 to 100) 0 to disable + 'chance_lasso' chance of capturing mob using magic lasso (1 to 100) 0 to + disable + 'force_take' take mob by force, even if tamed (true or false) + 'replacewith' once captured replace mob with this item instead (overrides + new mob eggs with saved information) + +mobs:force_capture(self, clicker) + +Same as above but does no checks, it simply captures any and all mobs and places +inside a spawn egg containing all of the mob information. + + +Feeding and Taming/Breeding +--------------------------- + +mobs:feed_tame(self, clicker, feed_count, breed, tame) + +This function allows the mob to be fed the item inside self.follow be it apple, +wheat or whatever a set number of times and be tamed or bred as a result. +Will return true when mob is fed with item it likes. + + 'self' mob information + 'clicker' player information + 'feed_count' number of times mob must be fed to tame or breed + 'breed' true or false stating if mob can be bred and a child created + afterwards + 'tame' true or false stating if mob can be tamed so player can pick + them up + + +Protecting Mobs +--------------- + +mobs:protect(self, clicker) + +This function can be used to right-click any tamed mob with mobs:protector item, +this will protect the mob from harm inside of a protected area from other +players. Will return true when mob right-clicked with mobs:protector item. + + 'self' mob information + 'clicker' player information + + +Riding Mobs +----------- + +Mobs can now be ridden by players and the following shows its functions and +usage: + + +mobs:attach(self, player) + +This function attaches a player to the mob so it can be ridden. + + 'self' mob information + 'player' player information + + +mobs:detach(player, offset) + +This function will detach the player currently riding a mob to an offset +position. + + 'player' player information + 'offset' position table containing offset values + + +mobs:drive(self, move_animation, stand_animation, can_fly, dtime) + +This function allows an attached player to move the mob around and animate it at +same time. + + 'self' mob information + 'move_animation' string containing movement animation e.g. "walk" + 'stand_animation' string containing standing animation e.g. "stand" + 'can_fly' if true then jump and sneak controls will allow mob to fly + up and down + 'dtime' tick time used inside drive function + + +mobs:fly(self, dtime, speed, can_shoot, arrow_entity, move_animation, stand_animation) + +This function allows an attached player to fly the mob around using directional +controls. + + 'self' mob information + 'dtime' tick time used inside fly function + 'speed' speed of flight + 'can_shoot' true if mob can fire arrow (sneak and left mouse button + fires) + 'arrow_entity' name of arrow entity used for firing + 'move_animation' string containing name of pre-defined animation e.g. "walk" + or "fly" etc. + 'stand_animation' string containing name of pre-defined animation e.g. + "stand" or "blink" etc. + +Note: animation names above are from the pre-defined animation lists inside mob +registry without extensions. + + +mobs:set_animation(self, name) + +This function sets the current animation for mob, defaulting to "stand" if not +found. + + 'self' mob information + 'name' name of animation + + +Certain variables need to be set before using the above functions: + + 'self.v2' toggle switch used to define below values for the + first time + 'self.max_speed_forward' max speed mob can move forward + 'self.max_speed_reverse' max speed mob can move backwards + 'self.accel' acceleration speed + 'self.terrain_type' integer containing terrain mob can walk on + (1 = water, 2 or 3 = land) + 'self.driver_attach_at' position offset for attaching player to mob + 'self.driver_eye_offset' position offset for attached player view + 'self.driver_scale' sets driver scale for mobs larger than {x=1, y=1} + + +mobs:line_of_sight(self, pos1, pos2, stepsize) [DEPRECATED] + +This function is for use within the mobs definition for special use cases and +returns true if a mob can see the player or victim. + +...'self' mob information + 'pos1' position of mob + 'pos2' position of vistim or player + 'stepsize' usually set to 1 + +Use this instead: + + mob_class:line_of_sight(pos1, pos2, stepsize) + + +External Settings for "minetest.conf" +------------------------------------ + + 'enable_damage' if true monsters will attack players (default is true) + 'only_peaceful_mobs' if true only animals will spawn in game (default is + false) + 'mobs_disable_blood' if false blood effects appear when mob is hit (default + is false) + 'mobs_spawn_protected' if set to false then mobs will not spawn in protected + areas (default is true) + 'remove_far_mobs' if true then untamed mobs that are outside players + visual range will be removed (default is true) + 'mobname' can change specific mob chance rate (0 to disable) and + spawn number e.g. mobs_animal:cow = 1000,5 + 'mob_difficulty' sets difficulty level (health and hit damage + multiplied by this number), defaults to 1.0. + 'mob_show_health' if false then punching mob will not show health status + (true by default) + 'mob_chance_multiplier' multiplies chance of all mobs spawning and can be set + to 0.5 to have mobs spawn more or 2.0 to spawn less. + e.g. 1 in 7000 * 0.5 = 1 in 3500 so better odds of + spawning. + 'mobs_spawn' if false then mobs no longer spawn without spawner or + spawn egg. + 'mobs_drop_items' when false mobs no longer drop items when they die. + 'mobs_griefing' when false mobs cannot break blocks when using either + pathfinding level 2, replace functions or mobs:boom + function. + +Players can override the spawn chance for each mob registered by adding a line +to their minetest.conf file with a new value, the lower the value the more each +mob will spawn e.g. + +mobs_animal:sheep 11000 +mobs_monster:sand_monster 100 + +...you can also change how many of a certain mob appear in an active mapblock by +adding a comma and then a new value e.g. + +mobs_animal:cow 8000,4 <-- 4 cows per mapblock at 8000 spawn chance +mobs_monster:dirt_monster ,20 <-- 20 dirt monsters per mapblock + + +Rideable Horse Example Mob +-------------------------- + +mobs:register_mob("mob_horse:horse", { + type = "animal", + visual = "mesh", + visual_size = {x = 1.20, y = 1.20}, + mesh = "mobs_horse.x", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 15, + speed_run = 30, + stand_start = 25, + stand_end = 75, + walk_start = 75, + walk_end = 100, + run_start = 75, + run_end = 100, + }, + textures = { + {"mobs_horse.png"}, + {"mobs_horsepeg.png"}, + {"mobs_horseara.png"} + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + view_range = 5, + follow = {"farming:wheat"}, + passive = true, + hp_min = 12, + hp_max = 16, + armor = 200, + lava_damage = 5, + fall_damage = 5, + water_damage = 1, + makes_footstep_sound = true, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 2, max = 3} + }, + sounds = { + random = "horse_neigh.ogg", + damage = "horse_whinney.ogg", + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 6 + self.max_speed_reverse = 2 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 20, z = -2} + self.driver_eye_offset = {x = 0, y = 3, z = 0} + self.driver_scale = {x = 1, y = 1} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + minetest.add_item(pos, "mobs:saddle") + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + end + + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == clicker:get_player_name() then + + local inv = clicker:get_inventory() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker.getpos(), "mobs:saddle") + end + + -- attach player to horse + elseif not self.driver + and clicker:get_wielded_item():get_name() == "mobs:saddle" then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + inv:remove_item("main", "mobs:saddle") + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end +}) diff --git a/mods/mobs_redo/crafts.lua b/mods/mobs_redo/crafts.lua new file mode 100644 index 00000000..7806ca86 --- /dev/null +++ b/mods/mobs_redo/crafts.lua @@ -0,0 +1,327 @@ + +local S = mobs.intllib + +-- name tag +minetest.register_craftitem("mobs:nametag", { + description = S("Name Tag"), + inventory_image = "mobs_nametag.png", + groups = {flammable = 2} +}) + +if minetest.get_modpath("dye") and minetest.get_modpath("farming") then + minetest.register_craft({ + type = "shapeless", + output = "mobs:nametag", + recipe = {"default:paper", "dye:black", "farming:string"} + }) +end + +-- leather +minetest.register_craftitem("mobs:leather", { + description = S("Leather"), + inventory_image = "mobs_leather.png", + groups = {flammable = 2} +}) + +-- raw meat +minetest.register_craftitem("mobs:meat_raw", { + description = S("Raw Meat"), + inventory_image = "mobs_meat_raw.png", + on_use = minetest.item_eat(3), + groups = {food_meat_raw = 1, flammable = 2} +}) + +-- cooked meat +minetest.register_craftitem("mobs:meat", { + description = S("Meat"), + inventory_image = "mobs_meat.png", + on_use = minetest.item_eat(8), + groups = {food_meat = 1, flammable = 2} +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:meat", + recipe = "mobs:meat_raw", + cooktime = 5 +}) + +-- lasso +minetest.register_tool("mobs:lasso", { + description = S("Lasso (right-click animal to put in inventory)"), + inventory_image = "mobs_magic_lasso.png", + groups = {flammable = 2} +}) + +if minetest.get_modpath("farming") then + minetest.register_craft({ + output = "mobs:lasso", + recipe = { + {"farming:string", "", "farming:string"}, + {"", "default:diamond", ""}, + {"farming:string", "", "farming:string"} + } + }) +end + +minetest.register_alias("mobs:magic_lasso", "mobs:lasso") + +-- net +minetest.register_tool("mobs:net", { + description = S("Net (right-click animal to put in inventory)"), + inventory_image = "mobs_net.png", + groups = {flammable = 2} +}) + +if minetest.get_modpath("farming") then + minetest.register_craft({ + output = "mobs:net", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "", "group:stick"}, + {"farming:string", "group:stick", "farming:string"} + } + }) +end + +-- shears (right click to shear animal) +minetest.register_tool("mobs:shears", { + description = S("Steel Shears (right-click to shear)"), + inventory_image = "mobs_shears.png", + groups = {flammable = 2} +}) + +minetest.register_craft({ + output = "mobs:shears", + recipe = { + {"", "default:steel_ingot", ""}, + {"", "group:stick", "default:steel_ingot"} + } +}) + +-- protection rune +minetest.register_craftitem("mobs:protector", { + description = S("Mob Protection Rune"), + inventory_image = "mobs_protector.png", + groups = {flammable = 2} +}) + +minetest.register_craft({ + output = "mobs:protector", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:goldblock", "default:stone"}, + {"default:stone", "default:stone", "default:stone"} + } +}) + +-- saddle +minetest.register_craftitem("mobs:saddle", { + description = S("Saddle"), + inventory_image = "mobs_saddle.png", + groups = {flammable = 2} +}) + +minetest.register_craft({ + output = "mobs:saddle", + recipe = { + {"mobs:leather", "mobs:leather", "mobs:leather"}, + {"mobs:leather", "default:steel_ingot", "mobs:leather"}, + {"mobs:leather", "default:steel_ingot", "mobs:leather"} + } +}) + +-- mob fence (looks like normal fence but collision is 2 high) +default.register_fence("mobs:fence_wood", { + description = S("Mob Fence"), + texture = "default_wood.png", + material = "default:fence_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.9, 0.5}, + } + } +}) + +-- mob fence top (has enlarged collisionbox to stop mobs getting over) +minetest.register_node("mobs:fence_top", { + description = S("Mob Fence Top"), + drawtype = "nodebox", + tiles = {"default_wood.png"}, + paramtype = "light", + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + collision_box = { + type = "fixed", + fixed = {-0.4, -1.5, -0.4, 0.4, 0, 0.4} + }, + selection_box = { + type = "fixed", + fixed = {-0.4, -1.5, -0.4, 0.4, 0, 0.4} + } +}) + +minetest.register_craft({ + output = "mobs:fence_top 12", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"", "default:fence_wood", ""} + } +}) + +-- items that can be used as fuel +minetest.register_craft({ + type = "fuel", + recipe = "mobs:nametag", + burntime = 3 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:lasso", + burntime = 7 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:net", + burntime = 8 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:leather", + burntime = 4 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:saddle", + burntime = 7 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:fence_wood", + burntime = 7 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:fence_top", + burntime = 2 +}) + +-- this tool spawns same mob and adds owner, protected, nametag info +-- then removes original entity, this is used for fixing any issues. + +local tex_obj + +minetest.register_tool(":mobs:mob_reset_stick", { + description = S("Mob Reset Stick"), + inventory_image = "default_stick.png^[colorize:#ff000050", + stack_max = 1, + groups = {not_in_creative_inventory = 1}, + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "object" then + return + end + + local obj = pointed_thing.ref + + local control = user:get_player_control() + local sneak = control and control.sneak + + -- spawn same mob with saved stats, with random texture + if obj and not sneak then + + local self = obj:get_luaentity() + local obj2 = minetest.add_entity(obj:get_pos(), self.name) + + if obj2 then + + local ent2 = obj2:get_luaentity() + + ent2.protected = self.protected + ent2.owner = self.owner + ent2.nametag = self.nametag + ent2.gotten = self.gotten + ent2.tamed = self.tamed + ent2.health = self.health + ent2.order = self.order + + if self.child then + obj2:set_velocity({x = 0, y = self.jump_height, z = 0}) + end + + obj2:set_properties({nametag = self.nametag}) + + obj:remove() + end + end + + -- display form to enter texture name ending in .png + if obj and sneak then + + tex_obj = obj + + local name = user:get_player_name() + local tex = "" + + minetest.show_formspec(name, "mobs_texture", "size[8,4]" + .. "field[0.5,1;7.5,0;name;" + .. minetest.formspec_escape(S("Enter texture:")) .. ";" .. tex .. "]" + .. "button_exit[2.5,3.5;3,1;mob_texture_change;" + .. minetest.formspec_escape(S("Change")) .. "]") + end + end +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_texture" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + -- does mob still exist? + if not tex_obj + or not tex_obj:get_luaentity() then + return + end + + -- make sure nametag is being used to name mob + local item = player:get_wielded_item() + + if item:get_name() ~= "mobs:mob_reset_stick" then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update texture + local self = tex_obj:get_luaentity() + + self.base_texture = {fields.name} + + tex_obj:set_properties({textures = {fields.name}}) + + -- reset external variable + tex_obj = nil + end +end) diff --git a/mods/mobs_redo/depends.txt b/mods/mobs_redo/depends.txt new file mode 100644 index 00000000..2f208027 --- /dev/null +++ b/mods/mobs_redo/depends.txt @@ -0,0 +1,9 @@ +default +tnt? +dye? +farming? +invisibility? +intllib? +lucky_block? +cmi? +toolranks? diff --git a/mods/mobs_redo/description.txt b/mods/mobs_redo/description.txt new file mode 100644 index 00000000..919852a1 --- /dev/null +++ b/mods/mobs_redo/description.txt @@ -0,0 +1 @@ +Adds a mob api for mods to add animals or monsters etc. \ No newline at end of file diff --git a/mods/mobs_redo/init.lua b/mods/mobs_redo/init.lua new file mode 100644 index 00000000..f63fb164 --- /dev/null +++ b/mods/mobs_redo/init.lua @@ -0,0 +1,19 @@ + +local path = minetest.get_modpath("mobs") + +-- Mob API +dofile(path .. "/api.lua") + +-- Rideable Mobs +dofile(path .. "/mount.lua") + +-- Mob Items +dofile(path .. "/crafts.lua") + +-- Mob Spawner +dofile(path .. "/spawner.lua") + +-- Lucky Blocks +dofile(path .. "/lucky_block.lua") + +minetest.log("action", "[MOD] Mobs Redo loaded") diff --git a/mods/mobs_redo/intllib.lua b/mods/mobs_redo/intllib.lua new file mode 100644 index 00000000..6669d720 --- /dev/null +++ b/mods/mobs_redo/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/mods/mobs_redo/license.txt b/mods/mobs_redo/license.txt new file mode 100644 index 00000000..fec6f6aa --- /dev/null +++ b/mods/mobs_redo/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/mods/mobs_redo/lucky_block.lua b/mods/mobs_redo/lucky_block.lua new file mode 100644 index 00000000..b823e832 --- /dev/null +++ b/mods/mobs_redo/lucky_block.lua @@ -0,0 +1,18 @@ + +if minetest.get_modpath("lucky_block") then + + lucky_block:add_blocks({ + {"dro", {"mobs:meat_raw"}, 5}, + {"dro", {"mobs:meat"}, 5}, + {"dro", {"mobs:nametag"}, 1}, + {"dro", {"mobs:leather"}, 5}, + {"dro", {"default:stick"}, 10}, + {"dro", {"mobs:net"}, 1}, + {"dro", {"mobs:lasso"}, 1}, + {"dro", {"mobs:shears"}, 1}, + {"dro", {"mobs:protector"}, 1}, + {"dro", {"mobs:fence_wood"}, 10}, + {"dro", {"mobs:fence_top"}, 12}, + {"lig"} + }) +end diff --git a/mods/mobs_redo/mod.conf b/mods/mobs_redo/mod.conf new file mode 100644 index 00000000..f3a3ad74 --- /dev/null +++ b/mods/mobs_redo/mod.conf @@ -0,0 +1 @@ +name = mobs diff --git a/mods/mobs_redo/mount.lua b/mods/mobs_redo/mount.lua new file mode 100644 index 00000000..29b80ed2 --- /dev/null +++ b/mods/mobs_redo/mount.lua @@ -0,0 +1,448 @@ + +-- lib_mount by Blert2112 (edited by TenPlus1) + +local enable_crash = false +local crash_threshold = 6.5 -- ignored if enable_crash=false + +------------------------------------------------------------------------------ + +-- +-- Helper functions +-- + +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return {name = fallback} +end + + +local function node_is(pos) + + local node = node_ok(pos) + + if node.name == "air" then + return "air" + end + + if minetest.get_item_group(node.name, "lava") ~= 0 then + return "lava" + end + + if minetest.get_item_group(node.name, "liquid") ~= 0 then + return "liquid" + end + + if minetest.registered_nodes[node.name].walkable == true then + return "walkable" + end + + return "other" +end + + +local function get_sign(i) + + i = i or 0 + + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + + +local function get_velocity(v, yaw, y) + + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x * v.x + v.z * v.z) +end + + +local function force_detach(player) + + local attached_to = player:get_attach() + + if not attached_to then + return + end + + local entity = attached_to:get_luaentity() + + if entity.driver + and entity.driver == player then + + entity.driver = nil + end + + player:set_detach() + default.player_attached[player:get_player_name()] = false + player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + default.player_set_animation(player, "stand" , 30) + player:set_properties({visual_size = {x = 1, y = 1} }) + +end + +------------------------------------------------------------------------------- + + +minetest.register_on_leaveplayer(function(player) + force_detach(player) +end) + +minetest.register_on_shutdown(function() + local players = minetest.get_connected_players() + for i = 1, #players do + force_detach(players[i]) + end +end) + +minetest.register_on_dieplayer(function(player) + force_detach(player) + return true +end) + +------------------------------------------------------------------------------- + +function mobs.attach(entity, player) + + local attach_at, eye_offset = {}, {} + + entity.player_rotation = entity.player_rotation or {x = 0, y = 0, z = 0} + entity.driver_attach_at = entity.driver_attach_at or {x = 0, y = 0, z = 0} + entity.driver_eye_offset = entity.driver_eye_offset or {x = 0, y = 0, z = 0} + entity.driver_scale = entity.driver_scale or {x = 1, y = 1} + + local rot_view = 0 + + if entity.player_rotation.y == 90 then + rot_view = math.pi/2 + end + + attach_at = entity.driver_attach_at + eye_offset = entity.driver_eye_offset + entity.driver = player + + force_detach(player) + + player:set_attach(entity.object, "", attach_at, entity.player_rotation) + default.player_attached[player:get_player_name()] = true + player:set_eye_offset(eye_offset, {x = 0, y = 0, z = 0}) + + player:set_properties({ + visual_size = { + x = entity.driver_scale.x, + y = entity.driver_scale.y + } + }) + + minetest.after(0.2, function() + default.player_set_animation(player, "sit" , 30) + end) + + --player:set_look_yaw(entity.object:get_yaw() - rot_view) + player:set_look_horizontal(entity.object:get_yaw() - rot_view) +end + + +function mobs.detach(player, offset) + + force_detach(player) + + default.player_set_animation(player, "stand" , 30) + + local pos = player:get_pos() + + pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z} + + minetest.after(0.1, function() + player:set_pos(pos) + end) +end + + +function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) + + local rot_steer, rot_view = math.pi/2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi/2 + end + + local acce_y = 0 + local velo = entity.object:get_velocity() + + entity.v = get_v(velo) * get_sign(entity.v) + + -- process controls + if entity.driver then + +--print ("---velo", get_v(velo)) + + local ctrl = entity.driver:get_player_control() + + -- move forwards + if ctrl.up then + + entity.v = entity.v + entity.accel / 10 + + -- move backwards + elseif ctrl.down then + + if entity.max_speed_reverse == 0 and entity.v == 0 then + return + end + + entity.v = entity.v - entity.accel / 10 + end + + -- fix mob rotation + local horz = entity.driver:get_look_horizontal() or 0 + entity.object:set_yaw(horz - entity.rotate) + + if can_fly then + + -- fly up + if ctrl.jump then + velo.y = velo.y + 1 + if velo.y > entity.accel then velo.y = entity.accel end + + elseif velo.y > 0 then + velo.y = velo.y - 0.1 + if velo.y < 0 then velo.y = 0 end + end + + -- fly down + if ctrl.sneak then + velo.y = velo.y - 1 + if velo.y < -entity.accel then velo.y = -entity.accel end + + elseif velo.y < 0 then + velo.y = velo.y + 0.1 + if velo.y > 0 then velo.y = 0 end + end + + else + + -- jump + if ctrl.jump then + + if velo.y == 0 then + velo.y = velo.y + entity.jump_height + acce_y = acce_y + (acce_y * 3) + 1 + end + end + end + end + + -- if not moving then set animation and return + if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + + if stand_anim then + mobs:set_animation(entity, stand_anim) + end + + return + end + + -- set moving animation + if moving_anim then + mobs:set_animation(entity, moving_anim) + end + + -- Stop! + local s = get_sign(entity.v) + + entity.v = entity.v - 0.02 * s + + if s ~= get_sign(entity.v) then + + entity.object:set_velocity({x = 0, y = 0, z = 0}) + entity.v = 0 + return + end + + -- enforce speed limit forward and reverse + local max_spd = entity.max_speed_reverse + + if get_sign(entity.v) >= 0 then + max_spd = entity.max_speed_forward + end + + if math.abs(entity.v) > max_spd then + entity.v = entity.v - get_sign(entity.v) + end + + -- Set position, velocity and acceleration + local p = entity.object:get_pos() + local new_velo = {x = 0, y = 0, z = 0} + local new_acce = {x = 0, y = -9.8, z = 0} + + p.y = p.y - 0.5 + + local ni = node_is(p) + local v = entity.v + + if ni == "air" then + + if can_fly == true then + new_acce.y = 0 + end + + elseif ni == "liquid" or ni == "lava" then + + if ni == "lava" and entity.lava_damage ~= 0 then + + entity.lava_counter = (entity.lava_counter or 0) + dtime + + if entity.lava_counter > 1 then + + minetest.sound_play("default_punch", { + object = entity.object, + max_hear_distance = 5 + }) + + entity.object:punch(entity.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = entity.lava_damage} + }, nil) + + entity.lava_counter = 0 + end + end + + if entity.terrain_type == 2 + or entity.terrain_type == 3 then + + new_acce.y = 0 + p.y = p.y + 1 + + if node_is(p) == "liquid" then + + if velo.y >= 5 then + velo.y = 5 + elseif velo.y < 0 then + new_acce.y = 20 + else + new_acce.y = 5 + end + else + if math.abs(velo.y) < 1 then + local pos = entity.object:get_pos() + pos.y = math.floor(pos.y) + 0.5 + entity.object:set_pos(pos) + velo.y = 0 + end + end + else + v = v * 0.25 + end + end + + new_velo = get_velocity(v, entity.object:get_yaw() - rot_view, velo.y) + new_acce.y = new_acce.y + acce_y + + entity.object:set_velocity(new_velo) + entity.object:set_acceleration(new_acce) + + -- CRASH! + if enable_crash then + + local intensity = entity.v2 - v + + if intensity >= crash_threshold then + +--print("----------- crash", intensity) + + entity.object:punch(entity.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = intensity} + }, nil) + + end + end + + entity.v2 = v +end + + +-- directional flying routine by D00Med (edited by TenPlus1) + +function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) + + local ctrl = entity.driver:get_player_control() + local velo = entity.object:get_velocity() + local dir = entity.driver:get_look_dir() + local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands + local rot_steer, rot_view = math.pi / 2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi / 2 + end + + if ctrl.up then + entity.object:set_velocity({ + x = dir.x * speed, + y = dir.y * speed + 2, + z = dir.z * speed + }) + + elseif ctrl.down then + entity.object:set_velocity({ + x = -dir.x * speed, + y = dir.y * speed + 2, + z = -dir.z * speed + }) + + elseif not ctrl.down or ctrl.up or ctrl.jump then + entity.object:set_velocity({x = 0, y = -2, z = 0}) + end + + entity.object:set_yaw(yaw + math.pi + math.pi / 2 - entity.rotate) + + -- firing arrows + if ctrl.LMB and ctrl.sneak and shoots then + + local pos = entity.object:get_pos() + local obj = minetest.add_entity({ + x = pos.x + 0 + dir.x * 2.5, + y = pos.y + 1.5 + dir.y, + z = pos.z + 0 + dir.z * 2.5}, arrow) + + local ent = obj:get_luaentity() + if ent then + ent.switch = 1 -- for mob specific arrows + ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding + local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6} + local yaw = entity.driver:get_look_horizontal() + obj:set_yaw(yaw + math.pi / 2) + obj:set_velocity(vec) + else + obj:remove() + end + end + + -- change animation if stopped + if velo.x == 0 and velo.y == 0 and velo.z == 0 then + + mobs:set_animation(entity, stand_anim) + else + -- moving animation + mobs:set_animation(entity, moving_anim) + end +end diff --git a/mods/mobs_redo/readme.MD b/mods/mobs_redo/readme.MD new file mode 100644 index 00000000..27d552f3 --- /dev/null +++ b/mods/mobs_redo/readme.MD @@ -0,0 +1,86 @@ + +MOBS REDO for MINETEST + +Built from PilzAdam's original Simple Mobs with additional mobs by KrupnoPavel, Zeg9, ExeterDad and AspireMint. + + +This mod contains the API only for adding your own mobs into the world, so please use the additional modpacks to add animals, monsters etc. + + +https://forum.minetest.net/viewtopic.php?f=11&t=9917 + + +Crafts: + + - Nametag (paper, black dye, string) can be used right-click on a tamed mob to give them a name. + - Nets can be used to right-click tamed mobs to pick them up and place inside inventory as a spawn egg. + - Magic Lasso is similar to nets but with a better chance of picking up larger mobs. + - Shears are used to right-click sheep and return 1-3 wool. + - Protection Rune lets you protect tamed mobs from harm by other players + - Mob Fence and Fence Top (to stop mobs escaping/glitching through fences) + +Lucky Blocks: 9 + + +Changelog: +- 1.50 - Added new line_of_sight function that uses raycasting if mt5.0 is found (thanks Astrobe), dont spawn mobs if world anchor nearby (technic or simple_anchor mods) +- 1.49- Added mobs:force_capture(self, player) function, api functions now use metatables thanks to bell07 +- 1.48- Add mobs:set_velocity(self, velocity) global function +- 1.47- Mob damage changes, min and max light level for damage added, ignition sources checked for lava damage +- 1.46- Mobs only drop rare items when killed by player (drops.min = 0 makes them rare), code tweak, pathfinding no longer sees through walkable nodes +- 1.45- Added Fence Top to add on top of any fence to stop mobs escaping, new line_of_sight tweaked by Astrobe +- 1.44- Added ToolRanks support for swords when attacking mobs +- 1.43- Better 0.4.16 compatibility, added general attack function and settings +- 1.42- Added "all" option to immune_to table, tidied floating mobs to be less intensive +- 1.41- Mob pathfinding has been updated thanks to Elkien3 +- 1.40- Updated to use newer functions, requires Minetest 0.4.16+ to work. +- 1.39- Added 'on_breed', 'on_grown' and 'do_punch' custom functions per mob +- 1.38- Better entity checking, nametag setting and on_spawn function added to mob registry, tweaked light damage +- 1.37- Added support for Raymoo's CMI (common mob interface) mod: https://forum.minetest.net/viewtopic.php?f=9&t=15448 +- 1.36- Death check added, if mob dies in fire/lava/with lava pick then drops are cooked +- 1.35- Added owner_loyal flag for owned mobs to attack player enemies, also fixed group_attack +- 1.34- Added function to fly mob using directional movement (thanks D00Med for flying code) +- 1.33- Added functions to mount ride mobs (mobs.attach, mobs.detach, mobs.drive) many thanks to Blert2112 +- 1.32- Added new spawn check to count specific mobs AND new minetest.conf setting to chance spawn chance and numbers, added ability to protect tamed mobs +- 1.31- Added 'attack_animals' and 'specific_attack' flags for custom monster attacks, also 'mob_difficulty' .conf setting to make mobs harder. +- 1.30- Added support for invisibility mod (mobs cant attack what they cant see), tweaked and tidied code +- 1.29- Split original Mobs Redo into a modpack to make it easier to disable mob sets (animal, monster, npc) or simply use the Api itself for your own mod +- 1.28- New damage system added with ability for mob to be immune to weapons or healed by them :) +- 1.27- Added new sheep, lava flan and spawn egg textures. New Lava Pick tool smelts what you dig. New atan checking function. +- 1.26- Pathfinding feature added thanks to rnd, when monsters attack they become scary smart in finding you :) also, beehive produces honey now :) +- 1.25- Mobs no longer spawn within 12 blocks of player or despawn within same range, spawners now have player detection, Code tidy and tweak. +- 1.24- Added feature where certain animals run away when punched (runaway = true in mob definition) +- 1.23- Added mob spawner block for admin to setup spawners in-game (place and right click to enter settings) +- 1.22- Added ability to name tamed animals and npc using nametags, also npc will attack anyone who punches them apart from owner +- 1.21- Added some more error checking to reduce serialize.h error and added height checks for falling off cliffs (thanks cmdskp) +- 1.20- Error checking added to remove bad mobs, out of map limit mobs and stop serialize.h error +- 1.19- Chickens now drop egg items instead of placing the egg, also throwing eggs result in 1/8 chance of spawning chick +- 1.18- Added docile_by_day flag so that monsters will not attack automatically during daylight hours unless hit first +- 1.17- Added 'dogshoot' attack type, shoots when out of reach, melee attack when in reach, also api tweaks and self.reach added +- 1.16- Mobs follow multiple items now, Npc's can breed +- 1.15- Added Feeding/Taming/Breeding function, right-click to pick up any sheep with X mark on them and replace with new one to fix compatibility. +- 1.14- All .self variables saved in staticdata, Fixed self.health bug +- 1.13- Added capture function (thanks blert2112) chance of picking up mob with hand; net; magic lasso, replaced some .x models with newer .b3d one's +- 1.12- Added animal ownership so that players cannot steal your tamed animals +- 1.11- Added flying mobs (and swimming), fly=true and fly_in="air" or "deafult:water_source" for fishy +- 1,10- Footstep removed (use replace), explosion routine added for exploding mobs. +- 1.09- reworked breeding routine, added mob rotation value, added footstep feature, added jumping mobs with sounds feature, added magic lasso for picking up animals +- 1.08- Mob throwing attack has been rehauled so that they can damage one another, also drops and on_die function added +- 1.07- Npc's can now be set to follow player or stand by using self.order and self.owner variables +- beta- Npc mob added, kills monsters, attacks player when punched, right click with food to heal or gold lump for drop +- 1.06- Changed recovery times after breeding, and time taken to grow up (can be sped up by feeding baby animal) +- 1.05- Added ExeterDad's bunny's which can be picked up and tamed with 4 carrots from farming redo or farming_plus, also shears added to get wool from sheep and lastly Jordach/BSD's kitten +- 1.04- Added mating for sheep, cows and hogs... feed animals to make horny and hope for a baby which is half size, will grow up quick though :) +- 1.03- Added mob drop/replace feature so that chickens can drop eggs, cow/sheep can eat grass/wheat etc. +- 1.02- Sheared sheep are remembered and spawn shaven, Warthogs will attack when threatened, Api additions +- 1.01- Mobs that suffer fall damage or die in water/lava/sunlight will now drop items +- 1.0 - more work on Api so that certain mobs can float in water while some sink like a brick :) +- 0.9 - Spawn eggs added for all mobs (admin only, cannot be placed in protected areas)... Api tweaked +- 0.8 - Added sounds to monster mobs (thanks Cyberpangolin for the sfx) and also chicken sound +- 0.7 - mobs.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes +- 0.6 - Api now supports multi-textured mobs, e.g oerkki, dungeon master, rats and chickens have random skins when spawning (sheep fix TODO), also new Honey block +- 0.5 - Mobs now float in water, die from falling, and some code improvements +- 0.4 - Dungeon Masters and Mese Monsters have much better aim due to shoot_offset, also they can both shoot through nodes that aren't walkable (flowers, grass etc) plus new sheep sound :) +- 0.3 - Added LOTT's Spider mob, made Cobwebs, added KPavel's Bee with Honey and Beehives (made texture), Warthogs now have sound and can be tamed, taming of shaved sheep or milked cow with 8 wheat so it will not despawn, many bug fixes :) +- 0.2 - Cooking bucket of milk into cheese now returns empty bucket +- 0.1 - Initial Release diff --git a/mods/mobs_redo/settingtypes.txt b/mods/mobs_redo/settingtypes.txt new file mode 100644 index 00000000..08214374 --- /dev/null +++ b/mods/mobs_redo/settingtypes.txt @@ -0,0 +1,29 @@ +# If false then mobs no longer spawn in world without spawner or spawn egg +mobs_spawn (Spawn Mobs) bool true + +# If enabled then monsters no longer spawn in world +only_peaceful_mobs (Only spawn peaceful Mobs) bool false + +# If enabled then punching mobs no longer shows blood effects +mobs_disable_blood (Disable Mob blood) bool false + +# If disabled then Mobs no longer destroy world blocks +mobs_griefing (Griefing Mobs) bool true + +# If false then Mobs no longer spawn inside player protected areas +mobs_spawn_protected (Spawn Mobs in protected areas) bool true + +# If true Mobs will be removed once a map chunk is out of view +remove_far_mobs (Remove far Mobs) bool true + +# Sets Mob difficulty level by multiplying punch damage +mob_difficulty (Mob difficulty) float 1.0 + +# If disabled health status no longer appears above Mob when punched +mob_show_health (Show Mob health) bool true + +# Contains a value used to multiply Mob spawn values +mob_chance_multiplier (Mob chance multiplier) float 1.0 + +# When false Mob no longer drop items when killed +mobs_drop_items (Mob drops) bool true diff --git a/mods/mobs_redo/spawner.lua b/mods/mobs_redo/spawner.lua new file mode 100644 index 00000000..dfe20f21 --- /dev/null +++ b/mods/mobs_redo/spawner.lua @@ -0,0 +1,178 @@ + +local S = mobs.intllib + +-- mob spawner + +local spawner_default = "mobs_animal:pumba 10 15 0 0" + +minetest.register_node("mobs:spawner", { + tiles = {"mob_spawner.png"}, + drawtype = "glasslike", + paramtype = "light", + walkable = true, + description = S("Mob Spawner"), + groups = {cracky = 1}, + + on_construct = function(pos) + + local meta = minetest.get_meta(pos) + + -- text entry formspec + meta:set_string("formspec", + "field[text;" .. S("Mob MinLight MaxLight Amount PlayerDist") .. ";${command}]") + meta:set_string("infotext", S("Spawner Not Active (enter settings)")) + meta:set_string("command", spawner_default) + end, + + on_right_click = function(pos, placer) + + if minetest.is_protected(pos, placer:get_player_name()) then + return + end + end, + + on_receive_fields = function(pos, formname, fields, sender) + + if not fields.text or fields.text == "" then + return + end + + local meta = minetest.get_meta(pos) + local comm = fields.text:split(" ") + local name = sender:get_player_name() + + if minetest.is_protected(pos, name) then + minetest.record_protection_violation(pos, name) + return + end + + local mob = comm[1] -- mob to spawn + local mlig = tonumber(comm[2]) -- min light + local xlig = tonumber(comm[3]) -- max light + local num = tonumber(comm[4]) -- total mobs in area + local pla = tonumber(comm[5]) -- player distance (0 to disable) + local yof = tonumber(comm[6]) or 0 -- Y offset to spawn mob + + if mob and mob ~= "" and mobs.spawning_mobs[mob] == true + and num and num >= 0 and num <= 10 + and mlig and mlig >= 0 and mlig <= 15 + and xlig and xlig >= 0 and xlig <= 15 + and pla and pla >=0 and pla <= 20 + and yof and yof > -10 and yof < 10 then + + meta:set_string("command", fields.text) + meta:set_string("infotext", S("Spawner Active (@1)", mob)) + + else + minetest.chat_send_player(name, S("Mob Spawner settings failed!")) + minetest.chat_send_player(name, + S("Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] distance[1-20] y_offset[-10 to 10]”")) + end + end +}) + + +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) + +-- spawner abm +minetest.register_abm({ + label = "Mob spawner node", + nodenames = {"mobs:spawner"}, + interval = 10, + chance = 4, + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- return if too many entities already + if active_object_count_wider >= max_per_block then + return + end + + -- get meta and command + local meta = minetest.get_meta(pos) + local comm = meta:get_string("command"):split(" ") + + -- get settings from command + local mob = comm[1] + local mlig = tonumber(comm[2]) + local xlig = tonumber(comm[3]) + local num = tonumber(comm[4]) + local pla = tonumber(comm[5]) or 0 + local yof = tonumber(comm[6]) or 0 + + -- if amount is 0 then do nothing + if num == 0 then + return + end + + -- are we spawning a registered mob? + if not mobs.spawning_mobs[mob] then + --print ("--- mob doesn't exist", mob) + return + end + + -- check objects inside 9x9 area around spawner + local objs = minetest.get_objects_inside_radius(pos, 9) + local count = 0 + local ent = nil + + -- count mob objects of same type in area + for k, obj in ipairs(objs) do + + ent = obj:get_luaentity() + + if ent and ent.name and ent.name == mob then + count = count + 1 + end + end + + -- is there too many of same type? + if count >= num then + return + end + + -- spawn mob if player detected and in range + if pla > 0 then + + local in_range = 0 + local objs = minetest.get_objects_inside_radius(pos, pla) + + for _,oir in pairs(objs) do + + if oir:is_player() then + + in_range = 1 + + break + end + end + + -- player not found + if in_range == 0 then + return + end + end + + -- find air blocks within 5 nodes of spawner + local air = minetest.find_nodes_in_area( + {x = pos.x - 5, y = pos.y + yof, z = pos.z - 5}, + {x = pos.x + 5, y = pos.y + yof, z = pos.z + 5}, + {"air"}) + + -- spawn in random air block + if air and #air > 0 then + + local pos2 = air[math.random(#air)] + local lig = minetest.get_node_light(pos2) or 0 + + pos2.y = pos2.y + 0.5 + + -- only if light levels are within range + if lig >= mlig and lig <= xlig + and minetest.registered_entities[mob] then + minetest.add_entity(pos2, mob) + end + end + end +}) -- 2.40.1 From 1216708e648319a90a695d7bebcf8d4d330e9550 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:45:03 -0500 Subject: [PATCH 210/321] Add files via upload --- mods/mobs_redo/license.txt | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/mods/mobs_redo/license.txt b/mods/mobs_redo/license.txt index fec6f6aa..3b160fe2 100644 --- a/mods/mobs_redo/license.txt +++ b/mods/mobs_redo/license.txt @@ -1,21 +1,7 @@ -The MIT License (MIT) +Creative Commons sounds from Freesound.org -Copyright (c) 2016 TenPlus1 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +mobs_swing.ogg by qubodup + - http://freesound.org/people/qubodup/sounds/60012/ + +mobs_spell.ogg by littlerobotsoundfactory + - http://freesound.org/people/LittleRobotSoundFactory/sounds/270396/ -- 2.40.1 From 5068a97536dba6f848e3f3348aeebf1733d847e5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:45:41 -0500 Subject: [PATCH 211/321] Rename mods/mobs_redo/license.txt to mods/mobs_redo/sounds/license.txt --- mods/mobs_redo/{ => sounds}/license.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/mobs_redo/{ => sounds}/license.txt (100%) diff --git a/mods/mobs_redo/license.txt b/mods/mobs_redo/sounds/license.txt similarity index 100% rename from mods/mobs_redo/license.txt rename to mods/mobs_redo/sounds/license.txt -- 2.40.1 From 223cbab4a0598f7591f51f2d21a500360e8d67de Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:46:03 -0500 Subject: [PATCH 212/321] Add files via upload --- mods/mobs_redo/sounds/default_punch.ogg | Bin 0 -> 5946 bytes mods/mobs_redo/sounds/mobs_spell.ogg | Bin 0 -> 15205 bytes mods/mobs_redo/sounds/mobs_swing.ogg | Bin 0 -> 6895 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_redo/sounds/default_punch.ogg create mode 100644 mods/mobs_redo/sounds/mobs_spell.ogg create mode 100644 mods/mobs_redo/sounds/mobs_swing.ogg diff --git a/mods/mobs_redo/sounds/default_punch.ogg b/mods/mobs_redo/sounds/default_punch.ogg new file mode 100644 index 0000000000000000000000000000000000000000..28a500bf5759c8bb16ea780d100c8bbf1a7a2609 GIT binary patch literal 5946 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 q_rlfhT4(FDGv+6T(tLS3{&=iPU+J3hm^ Date: Wed, 18 Dec 2019 09:47:42 -0500 Subject: [PATCH 213/321] Create main --- mods/mobs_redo/textures/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/mobs_redo/textures/main diff --git a/mods/mobs_redo/textures/main b/mods/mobs_redo/textures/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/mobs_redo/textures/main @@ -0,0 +1 @@ + -- 2.40.1 From 490c2c6167d38c5c369852c53867a3ede7869352 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:48:06 -0500 Subject: [PATCH 214/321] Add files via upload --- mods/mobs_redo/textures/mob_spawner.png | Bin 0 -> 108 bytes mods/mobs_redo/textures/mobs_blood.png | Bin 0 -> 267 bytes mods/mobs_redo/textures/mobs_chicken_egg.png | Bin 0 -> 235 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_redo/textures/mob_spawner.png create mode 100644 mods/mobs_redo/textures/mobs_blood.png create mode 100644 mods/mobs_redo/textures/mobs_chicken_egg.png diff --git a/mods/mobs_redo/textures/mob_spawner.png b/mods/mobs_redo/textures/mob_spawner.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0ac39b711f0b8919b945696cc73b4015f8329f GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E09+5%h?i;vJ=Q+ED7=p zW^j0RBMrzA@pN$v;kcgszopr0BYSC AegFUf literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_blood.png b/mods/mobs_redo/textures/mobs_blood.png new file mode 100644 index 0000000000000000000000000000000000000000..77cfbdaa665922472018ffd016e7a47c974e6bf5 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4&HECyrsn$JLrv%n*= zn1O*?7=#%aX3dcR3bL1Y`ns~;V-*l#XF68-IUFb?S>hT|;+&tGo0?a`;9QiNSdyBe zP@Y+mq2TW68xY>eCk|9p?CIhdVsU!wWN*F(0}fVpzOeIp;)i?nt~kXd=NwvPBT@I^ z`)$SD_5YRF3_|ya?$bSJv37BxYPI+g?T<4qoM6#^erD3SrIE87pG`RweterrYcywC zi% literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_chicken_egg.png b/mods/mobs_redo/textures/mobs_chicken_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..be8a4e1cf58a4b72abec094ddfb36cef4f2e914a GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5o?Y8+9EttD(#nNp%w(dW;@5HI&7cQN@a_#c1J2&s%zw_wH!{;xbwJ=ZW1Zrn23GxeO zaCmkj4aiCJba4!kxIDMdQ>ev&gMqV0O^5N{|0qk9#c@xs`HHh1c&=EZ?5kF_VQ2dX z*}pc%Z^crMCjK!u>0bUy?8(HJs}9MAKM+(ia?5|+5~^^jmQ%rW?cd66wIv4P^41Iv iGVWjBeze}!E53Xi^Py?0mhA@G$l&Sf=d#Wzp$PyGxL^_h literal 0 HcmV?d00001 -- 2.40.1 From 62230f1de3b62d7e0f61816e36903fd3bff4ef0c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:48:32 -0500 Subject: [PATCH 215/321] Delete main --- mods/mobs_redo/textures/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs_redo/textures/main diff --git a/mods/mobs_redo/textures/main b/mods/mobs_redo/textures/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/mobs_redo/textures/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 6d42d8c6994bc4058bea7e6c6c997d1795b0e647 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:49:03 -0500 Subject: [PATCH 216/321] Add files via upload --- .../textures/mobs_chicken_egg_overlay.png | Bin 0 -> 191 bytes mods/mobs_redo/textures/mobs_leather.png | Bin 0 -> 196 bytes mods/mobs_redo/textures/mobs_magic_lasso.png | Bin 0 -> 176 bytes mods/mobs_redo/textures/mobs_meat.png | Bin 0 -> 411 bytes mods/mobs_redo/textures/mobs_meat_raw.png | Bin 0 -> 426 bytes mods/mobs_redo/textures/mobs_nametag.png | Bin 0 -> 247 bytes mods/mobs_redo/textures/mobs_net.png | Bin 0 -> 195 bytes mods/mobs_redo/textures/mobs_noentry_particle.png | Bin 0 -> 165 bytes mods/mobs_redo/textures/mobs_protect_particle.png | Bin 0 -> 117 bytes mods/mobs_redo/textures/mobs_protector.png | Bin 0 -> 164 bytes mods/mobs_redo/textures/mobs_saddle.png | Bin 0 -> 166 bytes mods/mobs_redo/textures/mobs_shears.png | Bin 0 -> 224 bytes mods/mobs_redo/textures/tnt_smoke.png | Bin 0 -> 202 bytes 13 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_redo/textures/mobs_chicken_egg_overlay.png create mode 100644 mods/mobs_redo/textures/mobs_leather.png create mode 100644 mods/mobs_redo/textures/mobs_magic_lasso.png create mode 100644 mods/mobs_redo/textures/mobs_meat.png create mode 100644 mods/mobs_redo/textures/mobs_meat_raw.png create mode 100644 mods/mobs_redo/textures/mobs_nametag.png create mode 100644 mods/mobs_redo/textures/mobs_net.png create mode 100644 mods/mobs_redo/textures/mobs_noentry_particle.png create mode 100644 mods/mobs_redo/textures/mobs_protect_particle.png create mode 100644 mods/mobs_redo/textures/mobs_protector.png create mode 100644 mods/mobs_redo/textures/mobs_saddle.png create mode 100644 mods/mobs_redo/textures/mobs_shears.png create mode 100644 mods/mobs_redo/textures/tnt_smoke.png diff --git a/mods/mobs_redo/textures/mobs_chicken_egg_overlay.png b/mods/mobs_redo/textures/mobs_chicken_egg_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..e81716a5964b14a0e5c309df5842a36679ecff97 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E0F&G|NqjP^X~##j3q&S z!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|U1(2s1Lwnj--eWH0gbb!C6R%q*rWdxfd@ z1yIPy)5S4_<9c#J1LH9^wr?zKbF;n~&J`1RTu_VYZn8D%MjWi%9*3-o?gyVX0f&)Xc#9Px3blo()qRMfG!R$5q6 oNomWAq=2A+(1u&5j~rlNxTec@{eZvcT%bh^p00i_>zopr04TRP?f?J) literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_magic_lasso.png b/mods/mobs_redo/textures/mobs_magic_lasso.png new file mode 100644 index 0000000000000000000000000000000000000000..befdc1120684c7281b1edb8129b302e9beb402b5 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b6=Yxt^*32FFY4T(w)@vs zl%$(^0;L#Bg8YIR9G=}s19JR5T^vI=u7~zsQL70(Y)*K0-AbW|YuPgfaiF4ao-U3d7N?g^vdubdAacB(E6(QR4TXEx zF3u`ia7TIh3qvMb2mT4lB^n}c3}^mM5hQPNZ2d{j?b$^|R^^`s``T-BW~*s_Ph^k?jTf@q@XleX_U!(d zpRd@|Zl2A&s!G1?iq6}AB6~a*yo!|BkbKYbgOcN0+vUaXZ*7(MqNi+ru+{L@!kfR; xcc<9y}xJr}&S1jg>4r#17hce+c-?XfU(#Xu8o%U0?_>c)I$ztaD0e0svFmpH=_> literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_meat_raw.png b/mods/mobs_redo/textures/mobs_meat_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..0dea4ec5404cccc8820d90a5d3e1513b150d6056 GIT binary patch literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBkF8NoF4Dim2{~Kq1Kz*N775{M_8s zyb=cIqSVBa)D(sC%#sWRcTeAd@J2pypjE7%E{-7kqh6PFiLxlUdNbJa48$*Oi5{r(a(v5$LiYP)9NG@bmxw?^k=dL`2Um z7D`(3L9XHYs-Ty*(|Bvn7jqg0W$_-^y6)wi$>%H?Ph7j=z4qj}=kXQ0mwuQRa9!ly zV+NO$Z<%YS9+UWKBa`yyo`mvtfhC4+QQ4}|!Ou&Sj&L~ayU+aLqIF^D(kn57*3X|* zZ-2bB{l4CGMxU(=1+mM;WL2Inv0!UI8}o0kIGf3TAIE5{BIN89Ry&ac@UkDfQywAE(< Ph8lyXtDnm{r-UW|E48P= literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_nametag.png b/mods/mobs_redo/textures/mobs_nametag.png new file mode 100644 index 0000000000000000000000000000000000000000..74005b3a25a37186a5e2f69cd6cc11f38f206a7f GIT binary patch literal 247 zcmVkf0oG*>Bzpoo zX%)nulCl`QF0%k^u}u-YR(8+d1{$=K$KXk;psEi8h_^^@uz$K?1dwkn`~@fN!5$nH x#9$|ww303PCpZ}5q!ryT`V*Iw9halu`2mf%NGNDlp0@x1002ovPDHLkV1h%cUM>It literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_net.png b/mods/mobs_redo/textures/mobs_net.png new file mode 100644 index 0000000000000000000000000000000000000000..df7c3a61f531d9fb3b5a2a8bfd72c2f7a3e3c69f GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZWnj=u6yxxy(FqQ=Q1v5B2yO9Ru#CW{FIq2sZu;qT;#_8q@+w>6|b p{>-jn*&9=KMziu6f5Dzg<{~zJ50m?<|AF=}c)I$ztaD0e0sw}5K|cTh literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_noentry_particle.png b/mods/mobs_redo/textures/mobs_noentry_particle.png new file mode 100644 index 0000000000000000000000000000000000000000..87938ff444bea88add05585ec1a9581c6cb37134 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_%$6*}}^6_yrY|70Q8v zj3q&S!3+-1ZlnP@UY;(FAsp9L&n#qYFyLW0xL!e8VOFLU6BF~SuC!S^f-c*ZG+2J; zf6aGvlj8T6EA$&#o9Bh-Web1pJhCKZX)^ob%tf=0%&%=O|H|;KROr@hv-{tGrZRZC L`njxgN@xNAOJ+1n literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_protect_particle.png b/mods/mobs_redo/textures/mobs_protect_particle.png new file mode 100644 index 0000000000000000000000000000000000000000..debe20cb1a8aef3a014bed8f12168abbaa72c48f GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CN$P6S4_x+OrQfvV}A+A9B|Ns9>Z_d99WHFWm z`2{mLJiCzwP>Qi6$S;_|;n|HeAjjF$#W95AdUApTLs~K;NA8j(9BGEymYSM}B)k+9l~u(h z4xi*ak`NYD6x3)qWsXRqQkQ{gSH>;{o|cnMO-)Q5c?=9cFLJ$DmQ+{;G>*a3)z4*} HQ$iB}$7V2G literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/mobs_saddle.png b/mods/mobs_redo/textures/mobs_saddle.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d42f82e3fa7d2e840f74430bf6d6fa6d8e022e GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=41Qdfxi-b^b;>c+39^ToS5nGi|=UbV0dp*0INP zuFe+i_*k%)OOWlB*S15}RWmJAqcd7L4kf(5nzopr0AoZ@-v9sr literal 0 HcmV?d00001 diff --git a/mods/mobs_redo/textures/tnt_smoke.png b/mods/mobs_redo/textures/tnt_smoke.png new file mode 100644 index 0000000000000000000000000000000000000000..488b50fe958d33fa4cd50fa383a4685db045def5 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fw4`$F~s6@a>4>ti^@+=>QiQE7$hEQ`G3RY@DXvHh=$u6+S=Ge zd|6pp|9|XU+`ubsmaui^1PiVPOaAGbFCN{bP0l+XkK@H9k* literal 0 HcmV?d00001 -- 2.40.1 From 0e41556072b9dbb95e68bbdd3f5bf8a318a97f5e Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 09:58:27 -0500 Subject: [PATCH 217/321] Update crafts.lua --- mods/mobs_redo/crafts.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mods/mobs_redo/crafts.lua b/mods/mobs_redo/crafts.lua index 7806ca86..09e00ff3 100644 --- a/mods/mobs_redo/crafts.lua +++ b/mods/mobs_redo/crafts.lua @@ -58,7 +58,7 @@ if minetest.get_modpath("farming") then output = "mobs:lasso", recipe = { {"farming:string", "", "farming:string"}, - {"", "default:diamond", ""}, + {"", "default:beskar", ""}, {"farming:string", "", "farming:string"} } }) @@ -94,8 +94,8 @@ minetest.register_tool("mobs:shears", { minetest.register_craft({ output = "mobs:shears", recipe = { - {"", "default:steel_ingot", ""}, - {"", "group:stick", "default:steel_ingot"} + {"", "default:durasteel_ingot", ""}, + {"", "group:stick", "default:durasteel_ingot"} } }) @@ -126,8 +126,8 @@ minetest.register_craft({ output = "mobs:saddle", recipe = { {"mobs:leather", "mobs:leather", "mobs:leather"}, - {"mobs:leather", "default:steel_ingot", "mobs:leather"}, - {"mobs:leather", "default:steel_ingot", "mobs:leather"} + {"mobs:leather", "default:durasteel_ingot", "mobs:leather"}, + {"mobs:leather", "default:durasteel_ingot", "mobs:leather"} } }) -- 2.40.1 From e987b71a7c3679176948fac42c317b3d70270913 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:23:01 -0500 Subject: [PATCH 218/321] Add files via upload --- mods/depends.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mods/depends.txt diff --git a/mods/depends.txt b/mods/depends.txt new file mode 100644 index 00000000..cbfbcdbe --- /dev/null +++ b/mods/depends.txt @@ -0,0 +1,2 @@ +default +mobs \ No newline at end of file -- 2.40.1 From d7a39356a8b78ca50ddbfcdefbd22521708e9a9d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:24:14 -0500 Subject: [PATCH 219/321] Rename mods/depends.txt to mods/monsters/depends.txt --- mods/{ => monsters}/depends.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename mods/{ => monsters}/depends.txt (61%) diff --git a/mods/depends.txt b/mods/monsters/depends.txt similarity index 61% rename from mods/depends.txt rename to mods/monsters/depends.txt index cbfbcdbe..cc033980 100644 --- a/mods/depends.txt +++ b/mods/monsters/depends.txt @@ -1,2 +1,2 @@ default -mobs \ No newline at end of file +mobs -- 2.40.1 From 87b322033913e80ccbf2d1a8445e82b35f3c2da8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:25:37 -0500 Subject: [PATCH 220/321] Rename mods/mobs_redo/api.lua to mods/mobs/api.lua --- mods/{mobs_redo => mobs}/api.lua | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{mobs_redo => mobs}/api.lua (100%) diff --git a/mods/mobs_redo/api.lua b/mods/mobs/api.lua similarity index 100% rename from mods/mobs_redo/api.lua rename to mods/mobs/api.lua -- 2.40.1 From 95841693ef7be9ea98ca64d973aff8840362e84f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:25:59 -0500 Subject: [PATCH 221/321] Rename mods/mobs_redo/api.txt to mods/mobs/api.txt --- mods/{mobs_redo => mobs}/api.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{mobs_redo => mobs}/api.txt (100%) diff --git a/mods/mobs_redo/api.txt b/mods/mobs/api.txt similarity index 100% rename from mods/mobs_redo/api.txt rename to mods/mobs/api.txt -- 2.40.1 From 4f100ae45d5eb83a36ce5bf87baa90f756b3bdd1 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:26:27 -0500 Subject: [PATCH 222/321] Rename mods/mobs_redo/crafts.lua to mods/mobs/crafts.lua --- mods/{mobs_redo => mobs}/crafts.lua | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{mobs_redo => mobs}/crafts.lua (100%) diff --git a/mods/mobs_redo/crafts.lua b/mods/mobs/crafts.lua similarity index 100% rename from mods/mobs_redo/crafts.lua rename to mods/mobs/crafts.lua -- 2.40.1 From 9f4232a96017dc1fba2b60da4654e78ebfa71b6a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:27:25 -0500 Subject: [PATCH 223/321] Add files via upload --- mods/mobs/depends.txt | 9 + mods/mobs/description.txt | 1 + mods/mobs/init.lua | 19 ++ mods/mobs/intllib.lua | 45 ++++ mods/mobs/license.txt | 21 ++ mods/mobs/lucky_block.lua | 18 ++ mods/mobs/mod.conf | 1 + mods/mobs/mount.lua | 448 +++++++++++++++++++++++++++++++++++++ mods/mobs/readme.MD | 86 +++++++ mods/mobs/settingtypes.txt | 29 +++ mods/mobs/spawner.lua | 178 +++++++++++++++ 11 files changed, 855 insertions(+) create mode 100644 mods/mobs/depends.txt create mode 100644 mods/mobs/description.txt create mode 100644 mods/mobs/init.lua create mode 100644 mods/mobs/intllib.lua create mode 100644 mods/mobs/license.txt create mode 100644 mods/mobs/lucky_block.lua create mode 100644 mods/mobs/mod.conf create mode 100644 mods/mobs/mount.lua create mode 100644 mods/mobs/readme.MD create mode 100644 mods/mobs/settingtypes.txt create mode 100644 mods/mobs/spawner.lua diff --git a/mods/mobs/depends.txt b/mods/mobs/depends.txt new file mode 100644 index 00000000..2f208027 --- /dev/null +++ b/mods/mobs/depends.txt @@ -0,0 +1,9 @@ +default +tnt? +dye? +farming? +invisibility? +intllib? +lucky_block? +cmi? +toolranks? diff --git a/mods/mobs/description.txt b/mods/mobs/description.txt new file mode 100644 index 00000000..919852a1 --- /dev/null +++ b/mods/mobs/description.txt @@ -0,0 +1 @@ +Adds a mob api for mods to add animals or monsters etc. \ No newline at end of file diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua new file mode 100644 index 00000000..f63fb164 --- /dev/null +++ b/mods/mobs/init.lua @@ -0,0 +1,19 @@ + +local path = minetest.get_modpath("mobs") + +-- Mob API +dofile(path .. "/api.lua") + +-- Rideable Mobs +dofile(path .. "/mount.lua") + +-- Mob Items +dofile(path .. "/crafts.lua") + +-- Mob Spawner +dofile(path .. "/spawner.lua") + +-- Lucky Blocks +dofile(path .. "/lucky_block.lua") + +minetest.log("action", "[MOD] Mobs Redo loaded") diff --git a/mods/mobs/intllib.lua b/mods/mobs/intllib.lua new file mode 100644 index 00000000..6669d720 --- /dev/null +++ b/mods/mobs/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/mods/mobs/license.txt b/mods/mobs/license.txt new file mode 100644 index 00000000..fec6f6aa --- /dev/null +++ b/mods/mobs/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/mods/mobs/lucky_block.lua b/mods/mobs/lucky_block.lua new file mode 100644 index 00000000..b823e832 --- /dev/null +++ b/mods/mobs/lucky_block.lua @@ -0,0 +1,18 @@ + +if minetest.get_modpath("lucky_block") then + + lucky_block:add_blocks({ + {"dro", {"mobs:meat_raw"}, 5}, + {"dro", {"mobs:meat"}, 5}, + {"dro", {"mobs:nametag"}, 1}, + {"dro", {"mobs:leather"}, 5}, + {"dro", {"default:stick"}, 10}, + {"dro", {"mobs:net"}, 1}, + {"dro", {"mobs:lasso"}, 1}, + {"dro", {"mobs:shears"}, 1}, + {"dro", {"mobs:protector"}, 1}, + {"dro", {"mobs:fence_wood"}, 10}, + {"dro", {"mobs:fence_top"}, 12}, + {"lig"} + }) +end diff --git a/mods/mobs/mod.conf b/mods/mobs/mod.conf new file mode 100644 index 00000000..f3a3ad74 --- /dev/null +++ b/mods/mobs/mod.conf @@ -0,0 +1 @@ +name = mobs diff --git a/mods/mobs/mount.lua b/mods/mobs/mount.lua new file mode 100644 index 00000000..29b80ed2 --- /dev/null +++ b/mods/mobs/mount.lua @@ -0,0 +1,448 @@ + +-- lib_mount by Blert2112 (edited by TenPlus1) + +local enable_crash = false +local crash_threshold = 6.5 -- ignored if enable_crash=false + +------------------------------------------------------------------------------ + +-- +-- Helper functions +-- + +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return {name = fallback} +end + + +local function node_is(pos) + + local node = node_ok(pos) + + if node.name == "air" then + return "air" + end + + if minetest.get_item_group(node.name, "lava") ~= 0 then + return "lava" + end + + if minetest.get_item_group(node.name, "liquid") ~= 0 then + return "liquid" + end + + if minetest.registered_nodes[node.name].walkable == true then + return "walkable" + end + + return "other" +end + + +local function get_sign(i) + + i = i or 0 + + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + + +local function get_velocity(v, yaw, y) + + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x * v.x + v.z * v.z) +end + + +local function force_detach(player) + + local attached_to = player:get_attach() + + if not attached_to then + return + end + + local entity = attached_to:get_luaentity() + + if entity.driver + and entity.driver == player then + + entity.driver = nil + end + + player:set_detach() + default.player_attached[player:get_player_name()] = false + player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + default.player_set_animation(player, "stand" , 30) + player:set_properties({visual_size = {x = 1, y = 1} }) + +end + +------------------------------------------------------------------------------- + + +minetest.register_on_leaveplayer(function(player) + force_detach(player) +end) + +minetest.register_on_shutdown(function() + local players = minetest.get_connected_players() + for i = 1, #players do + force_detach(players[i]) + end +end) + +minetest.register_on_dieplayer(function(player) + force_detach(player) + return true +end) + +------------------------------------------------------------------------------- + +function mobs.attach(entity, player) + + local attach_at, eye_offset = {}, {} + + entity.player_rotation = entity.player_rotation or {x = 0, y = 0, z = 0} + entity.driver_attach_at = entity.driver_attach_at or {x = 0, y = 0, z = 0} + entity.driver_eye_offset = entity.driver_eye_offset or {x = 0, y = 0, z = 0} + entity.driver_scale = entity.driver_scale or {x = 1, y = 1} + + local rot_view = 0 + + if entity.player_rotation.y == 90 then + rot_view = math.pi/2 + end + + attach_at = entity.driver_attach_at + eye_offset = entity.driver_eye_offset + entity.driver = player + + force_detach(player) + + player:set_attach(entity.object, "", attach_at, entity.player_rotation) + default.player_attached[player:get_player_name()] = true + player:set_eye_offset(eye_offset, {x = 0, y = 0, z = 0}) + + player:set_properties({ + visual_size = { + x = entity.driver_scale.x, + y = entity.driver_scale.y + } + }) + + minetest.after(0.2, function() + default.player_set_animation(player, "sit" , 30) + end) + + --player:set_look_yaw(entity.object:get_yaw() - rot_view) + player:set_look_horizontal(entity.object:get_yaw() - rot_view) +end + + +function mobs.detach(player, offset) + + force_detach(player) + + default.player_set_animation(player, "stand" , 30) + + local pos = player:get_pos() + + pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z} + + minetest.after(0.1, function() + player:set_pos(pos) + end) +end + + +function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) + + local rot_steer, rot_view = math.pi/2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi/2 + end + + local acce_y = 0 + local velo = entity.object:get_velocity() + + entity.v = get_v(velo) * get_sign(entity.v) + + -- process controls + if entity.driver then + +--print ("---velo", get_v(velo)) + + local ctrl = entity.driver:get_player_control() + + -- move forwards + if ctrl.up then + + entity.v = entity.v + entity.accel / 10 + + -- move backwards + elseif ctrl.down then + + if entity.max_speed_reverse == 0 and entity.v == 0 then + return + end + + entity.v = entity.v - entity.accel / 10 + end + + -- fix mob rotation + local horz = entity.driver:get_look_horizontal() or 0 + entity.object:set_yaw(horz - entity.rotate) + + if can_fly then + + -- fly up + if ctrl.jump then + velo.y = velo.y + 1 + if velo.y > entity.accel then velo.y = entity.accel end + + elseif velo.y > 0 then + velo.y = velo.y - 0.1 + if velo.y < 0 then velo.y = 0 end + end + + -- fly down + if ctrl.sneak then + velo.y = velo.y - 1 + if velo.y < -entity.accel then velo.y = -entity.accel end + + elseif velo.y < 0 then + velo.y = velo.y + 0.1 + if velo.y > 0 then velo.y = 0 end + end + + else + + -- jump + if ctrl.jump then + + if velo.y == 0 then + velo.y = velo.y + entity.jump_height + acce_y = acce_y + (acce_y * 3) + 1 + end + end + end + end + + -- if not moving then set animation and return + if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + + if stand_anim then + mobs:set_animation(entity, stand_anim) + end + + return + end + + -- set moving animation + if moving_anim then + mobs:set_animation(entity, moving_anim) + end + + -- Stop! + local s = get_sign(entity.v) + + entity.v = entity.v - 0.02 * s + + if s ~= get_sign(entity.v) then + + entity.object:set_velocity({x = 0, y = 0, z = 0}) + entity.v = 0 + return + end + + -- enforce speed limit forward and reverse + local max_spd = entity.max_speed_reverse + + if get_sign(entity.v) >= 0 then + max_spd = entity.max_speed_forward + end + + if math.abs(entity.v) > max_spd then + entity.v = entity.v - get_sign(entity.v) + end + + -- Set position, velocity and acceleration + local p = entity.object:get_pos() + local new_velo = {x = 0, y = 0, z = 0} + local new_acce = {x = 0, y = -9.8, z = 0} + + p.y = p.y - 0.5 + + local ni = node_is(p) + local v = entity.v + + if ni == "air" then + + if can_fly == true then + new_acce.y = 0 + end + + elseif ni == "liquid" or ni == "lava" then + + if ni == "lava" and entity.lava_damage ~= 0 then + + entity.lava_counter = (entity.lava_counter or 0) + dtime + + if entity.lava_counter > 1 then + + minetest.sound_play("default_punch", { + object = entity.object, + max_hear_distance = 5 + }) + + entity.object:punch(entity.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = entity.lava_damage} + }, nil) + + entity.lava_counter = 0 + end + end + + if entity.terrain_type == 2 + or entity.terrain_type == 3 then + + new_acce.y = 0 + p.y = p.y + 1 + + if node_is(p) == "liquid" then + + if velo.y >= 5 then + velo.y = 5 + elseif velo.y < 0 then + new_acce.y = 20 + else + new_acce.y = 5 + end + else + if math.abs(velo.y) < 1 then + local pos = entity.object:get_pos() + pos.y = math.floor(pos.y) + 0.5 + entity.object:set_pos(pos) + velo.y = 0 + end + end + else + v = v * 0.25 + end + end + + new_velo = get_velocity(v, entity.object:get_yaw() - rot_view, velo.y) + new_acce.y = new_acce.y + acce_y + + entity.object:set_velocity(new_velo) + entity.object:set_acceleration(new_acce) + + -- CRASH! + if enable_crash then + + local intensity = entity.v2 - v + + if intensity >= crash_threshold then + +--print("----------- crash", intensity) + + entity.object:punch(entity.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = intensity} + }, nil) + + end + end + + entity.v2 = v +end + + +-- directional flying routine by D00Med (edited by TenPlus1) + +function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) + + local ctrl = entity.driver:get_player_control() + local velo = entity.object:get_velocity() + local dir = entity.driver:get_look_dir() + local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands + local rot_steer, rot_view = math.pi / 2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi / 2 + end + + if ctrl.up then + entity.object:set_velocity({ + x = dir.x * speed, + y = dir.y * speed + 2, + z = dir.z * speed + }) + + elseif ctrl.down then + entity.object:set_velocity({ + x = -dir.x * speed, + y = dir.y * speed + 2, + z = -dir.z * speed + }) + + elseif not ctrl.down or ctrl.up or ctrl.jump then + entity.object:set_velocity({x = 0, y = -2, z = 0}) + end + + entity.object:set_yaw(yaw + math.pi + math.pi / 2 - entity.rotate) + + -- firing arrows + if ctrl.LMB and ctrl.sneak and shoots then + + local pos = entity.object:get_pos() + local obj = minetest.add_entity({ + x = pos.x + 0 + dir.x * 2.5, + y = pos.y + 1.5 + dir.y, + z = pos.z + 0 + dir.z * 2.5}, arrow) + + local ent = obj:get_luaentity() + if ent then + ent.switch = 1 -- for mob specific arrows + ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding + local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6} + local yaw = entity.driver:get_look_horizontal() + obj:set_yaw(yaw + math.pi / 2) + obj:set_velocity(vec) + else + obj:remove() + end + end + + -- change animation if stopped + if velo.x == 0 and velo.y == 0 and velo.z == 0 then + + mobs:set_animation(entity, stand_anim) + else + -- moving animation + mobs:set_animation(entity, moving_anim) + end +end diff --git a/mods/mobs/readme.MD b/mods/mobs/readme.MD new file mode 100644 index 00000000..27d552f3 --- /dev/null +++ b/mods/mobs/readme.MD @@ -0,0 +1,86 @@ + +MOBS REDO for MINETEST + +Built from PilzAdam's original Simple Mobs with additional mobs by KrupnoPavel, Zeg9, ExeterDad and AspireMint. + + +This mod contains the API only for adding your own mobs into the world, so please use the additional modpacks to add animals, monsters etc. + + +https://forum.minetest.net/viewtopic.php?f=11&t=9917 + + +Crafts: + + - Nametag (paper, black dye, string) can be used right-click on a tamed mob to give them a name. + - Nets can be used to right-click tamed mobs to pick them up and place inside inventory as a spawn egg. + - Magic Lasso is similar to nets but with a better chance of picking up larger mobs. + - Shears are used to right-click sheep and return 1-3 wool. + - Protection Rune lets you protect tamed mobs from harm by other players + - Mob Fence and Fence Top (to stop mobs escaping/glitching through fences) + +Lucky Blocks: 9 + + +Changelog: +- 1.50 - Added new line_of_sight function that uses raycasting if mt5.0 is found (thanks Astrobe), dont spawn mobs if world anchor nearby (technic or simple_anchor mods) +- 1.49- Added mobs:force_capture(self, player) function, api functions now use metatables thanks to bell07 +- 1.48- Add mobs:set_velocity(self, velocity) global function +- 1.47- Mob damage changes, min and max light level for damage added, ignition sources checked for lava damage +- 1.46- Mobs only drop rare items when killed by player (drops.min = 0 makes them rare), code tweak, pathfinding no longer sees through walkable nodes +- 1.45- Added Fence Top to add on top of any fence to stop mobs escaping, new line_of_sight tweaked by Astrobe +- 1.44- Added ToolRanks support for swords when attacking mobs +- 1.43- Better 0.4.16 compatibility, added general attack function and settings +- 1.42- Added "all" option to immune_to table, tidied floating mobs to be less intensive +- 1.41- Mob pathfinding has been updated thanks to Elkien3 +- 1.40- Updated to use newer functions, requires Minetest 0.4.16+ to work. +- 1.39- Added 'on_breed', 'on_grown' and 'do_punch' custom functions per mob +- 1.38- Better entity checking, nametag setting and on_spawn function added to mob registry, tweaked light damage +- 1.37- Added support for Raymoo's CMI (common mob interface) mod: https://forum.minetest.net/viewtopic.php?f=9&t=15448 +- 1.36- Death check added, if mob dies in fire/lava/with lava pick then drops are cooked +- 1.35- Added owner_loyal flag for owned mobs to attack player enemies, also fixed group_attack +- 1.34- Added function to fly mob using directional movement (thanks D00Med for flying code) +- 1.33- Added functions to mount ride mobs (mobs.attach, mobs.detach, mobs.drive) many thanks to Blert2112 +- 1.32- Added new spawn check to count specific mobs AND new minetest.conf setting to chance spawn chance and numbers, added ability to protect tamed mobs +- 1.31- Added 'attack_animals' and 'specific_attack' flags for custom monster attacks, also 'mob_difficulty' .conf setting to make mobs harder. +- 1.30- Added support for invisibility mod (mobs cant attack what they cant see), tweaked and tidied code +- 1.29- Split original Mobs Redo into a modpack to make it easier to disable mob sets (animal, monster, npc) or simply use the Api itself for your own mod +- 1.28- New damage system added with ability for mob to be immune to weapons or healed by them :) +- 1.27- Added new sheep, lava flan and spawn egg textures. New Lava Pick tool smelts what you dig. New atan checking function. +- 1.26- Pathfinding feature added thanks to rnd, when monsters attack they become scary smart in finding you :) also, beehive produces honey now :) +- 1.25- Mobs no longer spawn within 12 blocks of player or despawn within same range, spawners now have player detection, Code tidy and tweak. +- 1.24- Added feature where certain animals run away when punched (runaway = true in mob definition) +- 1.23- Added mob spawner block for admin to setup spawners in-game (place and right click to enter settings) +- 1.22- Added ability to name tamed animals and npc using nametags, also npc will attack anyone who punches them apart from owner +- 1.21- Added some more error checking to reduce serialize.h error and added height checks for falling off cliffs (thanks cmdskp) +- 1.20- Error checking added to remove bad mobs, out of map limit mobs and stop serialize.h error +- 1.19- Chickens now drop egg items instead of placing the egg, also throwing eggs result in 1/8 chance of spawning chick +- 1.18- Added docile_by_day flag so that monsters will not attack automatically during daylight hours unless hit first +- 1.17- Added 'dogshoot' attack type, shoots when out of reach, melee attack when in reach, also api tweaks and self.reach added +- 1.16- Mobs follow multiple items now, Npc's can breed +- 1.15- Added Feeding/Taming/Breeding function, right-click to pick up any sheep with X mark on them and replace with new one to fix compatibility. +- 1.14- All .self variables saved in staticdata, Fixed self.health bug +- 1.13- Added capture function (thanks blert2112) chance of picking up mob with hand; net; magic lasso, replaced some .x models with newer .b3d one's +- 1.12- Added animal ownership so that players cannot steal your tamed animals +- 1.11- Added flying mobs (and swimming), fly=true and fly_in="air" or "deafult:water_source" for fishy +- 1,10- Footstep removed (use replace), explosion routine added for exploding mobs. +- 1.09- reworked breeding routine, added mob rotation value, added footstep feature, added jumping mobs with sounds feature, added magic lasso for picking up animals +- 1.08- Mob throwing attack has been rehauled so that they can damage one another, also drops and on_die function added +- 1.07- Npc's can now be set to follow player or stand by using self.order and self.owner variables +- beta- Npc mob added, kills monsters, attacks player when punched, right click with food to heal or gold lump for drop +- 1.06- Changed recovery times after breeding, and time taken to grow up (can be sped up by feeding baby animal) +- 1.05- Added ExeterDad's bunny's which can be picked up and tamed with 4 carrots from farming redo or farming_plus, also shears added to get wool from sheep and lastly Jordach/BSD's kitten +- 1.04- Added mating for sheep, cows and hogs... feed animals to make horny and hope for a baby which is half size, will grow up quick though :) +- 1.03- Added mob drop/replace feature so that chickens can drop eggs, cow/sheep can eat grass/wheat etc. +- 1.02- Sheared sheep are remembered and spawn shaven, Warthogs will attack when threatened, Api additions +- 1.01- Mobs that suffer fall damage or die in water/lava/sunlight will now drop items +- 1.0 - more work on Api so that certain mobs can float in water while some sink like a brick :) +- 0.9 - Spawn eggs added for all mobs (admin only, cannot be placed in protected areas)... Api tweaked +- 0.8 - Added sounds to monster mobs (thanks Cyberpangolin for the sfx) and also chicken sound +- 0.7 - mobs.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes +- 0.6 - Api now supports multi-textured mobs, e.g oerkki, dungeon master, rats and chickens have random skins when spawning (sheep fix TODO), also new Honey block +- 0.5 - Mobs now float in water, die from falling, and some code improvements +- 0.4 - Dungeon Masters and Mese Monsters have much better aim due to shoot_offset, also they can both shoot through nodes that aren't walkable (flowers, grass etc) plus new sheep sound :) +- 0.3 - Added LOTT's Spider mob, made Cobwebs, added KPavel's Bee with Honey and Beehives (made texture), Warthogs now have sound and can be tamed, taming of shaved sheep or milked cow with 8 wheat so it will not despawn, many bug fixes :) +- 0.2 - Cooking bucket of milk into cheese now returns empty bucket +- 0.1 - Initial Release diff --git a/mods/mobs/settingtypes.txt b/mods/mobs/settingtypes.txt new file mode 100644 index 00000000..08214374 --- /dev/null +++ b/mods/mobs/settingtypes.txt @@ -0,0 +1,29 @@ +# If false then mobs no longer spawn in world without spawner or spawn egg +mobs_spawn (Spawn Mobs) bool true + +# If enabled then monsters no longer spawn in world +only_peaceful_mobs (Only spawn peaceful Mobs) bool false + +# If enabled then punching mobs no longer shows blood effects +mobs_disable_blood (Disable Mob blood) bool false + +# If disabled then Mobs no longer destroy world blocks +mobs_griefing (Griefing Mobs) bool true + +# If false then Mobs no longer spawn inside player protected areas +mobs_spawn_protected (Spawn Mobs in protected areas) bool true + +# If true Mobs will be removed once a map chunk is out of view +remove_far_mobs (Remove far Mobs) bool true + +# Sets Mob difficulty level by multiplying punch damage +mob_difficulty (Mob difficulty) float 1.0 + +# If disabled health status no longer appears above Mob when punched +mob_show_health (Show Mob health) bool true + +# Contains a value used to multiply Mob spawn values +mob_chance_multiplier (Mob chance multiplier) float 1.0 + +# When false Mob no longer drop items when killed +mobs_drop_items (Mob drops) bool true diff --git a/mods/mobs/spawner.lua b/mods/mobs/spawner.lua new file mode 100644 index 00000000..dfe20f21 --- /dev/null +++ b/mods/mobs/spawner.lua @@ -0,0 +1,178 @@ + +local S = mobs.intllib + +-- mob spawner + +local spawner_default = "mobs_animal:pumba 10 15 0 0" + +minetest.register_node("mobs:spawner", { + tiles = {"mob_spawner.png"}, + drawtype = "glasslike", + paramtype = "light", + walkable = true, + description = S("Mob Spawner"), + groups = {cracky = 1}, + + on_construct = function(pos) + + local meta = minetest.get_meta(pos) + + -- text entry formspec + meta:set_string("formspec", + "field[text;" .. S("Mob MinLight MaxLight Amount PlayerDist") .. ";${command}]") + meta:set_string("infotext", S("Spawner Not Active (enter settings)")) + meta:set_string("command", spawner_default) + end, + + on_right_click = function(pos, placer) + + if minetest.is_protected(pos, placer:get_player_name()) then + return + end + end, + + on_receive_fields = function(pos, formname, fields, sender) + + if not fields.text or fields.text == "" then + return + end + + local meta = minetest.get_meta(pos) + local comm = fields.text:split(" ") + local name = sender:get_player_name() + + if minetest.is_protected(pos, name) then + minetest.record_protection_violation(pos, name) + return + end + + local mob = comm[1] -- mob to spawn + local mlig = tonumber(comm[2]) -- min light + local xlig = tonumber(comm[3]) -- max light + local num = tonumber(comm[4]) -- total mobs in area + local pla = tonumber(comm[5]) -- player distance (0 to disable) + local yof = tonumber(comm[6]) or 0 -- Y offset to spawn mob + + if mob and mob ~= "" and mobs.spawning_mobs[mob] == true + and num and num >= 0 and num <= 10 + and mlig and mlig >= 0 and mlig <= 15 + and xlig and xlig >= 0 and xlig <= 15 + and pla and pla >=0 and pla <= 20 + and yof and yof > -10 and yof < 10 then + + meta:set_string("command", fields.text) + meta:set_string("infotext", S("Spawner Active (@1)", mob)) + + else + minetest.chat_send_player(name, S("Mob Spawner settings failed!")) + minetest.chat_send_player(name, + S("Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] distance[1-20] y_offset[-10 to 10]”")) + end + end +}) + + +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) + +-- spawner abm +minetest.register_abm({ + label = "Mob spawner node", + nodenames = {"mobs:spawner"}, + interval = 10, + chance = 4, + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- return if too many entities already + if active_object_count_wider >= max_per_block then + return + end + + -- get meta and command + local meta = minetest.get_meta(pos) + local comm = meta:get_string("command"):split(" ") + + -- get settings from command + local mob = comm[1] + local mlig = tonumber(comm[2]) + local xlig = tonumber(comm[3]) + local num = tonumber(comm[4]) + local pla = tonumber(comm[5]) or 0 + local yof = tonumber(comm[6]) or 0 + + -- if amount is 0 then do nothing + if num == 0 then + return + end + + -- are we spawning a registered mob? + if not mobs.spawning_mobs[mob] then + --print ("--- mob doesn't exist", mob) + return + end + + -- check objects inside 9x9 area around spawner + local objs = minetest.get_objects_inside_radius(pos, 9) + local count = 0 + local ent = nil + + -- count mob objects of same type in area + for k, obj in ipairs(objs) do + + ent = obj:get_luaentity() + + if ent and ent.name and ent.name == mob then + count = count + 1 + end + end + + -- is there too many of same type? + if count >= num then + return + end + + -- spawn mob if player detected and in range + if pla > 0 then + + local in_range = 0 + local objs = minetest.get_objects_inside_radius(pos, pla) + + for _,oir in pairs(objs) do + + if oir:is_player() then + + in_range = 1 + + break + end + end + + -- player not found + if in_range == 0 then + return + end + end + + -- find air blocks within 5 nodes of spawner + local air = minetest.find_nodes_in_area( + {x = pos.x - 5, y = pos.y + yof, z = pos.z - 5}, + {x = pos.x + 5, y = pos.y + yof, z = pos.z + 5}, + {"air"}) + + -- spawn in random air block + if air and #air > 0 then + + local pos2 = air[math.random(#air)] + local lig = minetest.get_node_light(pos2) or 0 + + pos2.y = pos2.y + 0.5 + + -- only if light levels are within range + if lig >= mlig and lig <= xlig + and minetest.registered_entities[mob] then + minetest.add_entity(pos2, mob) + end + end + end +}) -- 2.40.1 From d9f3e53e4481645578e3662dc1eaf8a6cd817122 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:28:25 -0500 Subject: [PATCH 224/321] Add files via upload --- mods/mobs/license.txt | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/mods/mobs/license.txt b/mods/mobs/license.txt index fec6f6aa..3b160fe2 100644 --- a/mods/mobs/license.txt +++ b/mods/mobs/license.txt @@ -1,21 +1,7 @@ -The MIT License (MIT) +Creative Commons sounds from Freesound.org -Copyright (c) 2016 TenPlus1 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +mobs_swing.ogg by qubodup + - http://freesound.org/people/qubodup/sounds/60012/ + +mobs_spell.ogg by littlerobotsoundfactory + - http://freesound.org/people/LittleRobotSoundFactory/sounds/270396/ -- 2.40.1 From 686dc6af6e83fa0b70c13fca6bc24b8efb17890a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:28:49 -0500 Subject: [PATCH 225/321] Rename mods/mobs/license.txt to mods/mobs/sounds/license.txt --- mods/mobs/{ => sounds}/license.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/mobs/{ => sounds}/license.txt (100%) diff --git a/mods/mobs/license.txt b/mods/mobs/sounds/license.txt similarity index 100% rename from mods/mobs/license.txt rename to mods/mobs/sounds/license.txt -- 2.40.1 From fe999ceedbb314ed0fdaae9f2aed6429c79ba487 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:29:09 -0500 Subject: [PATCH 226/321] Add files via upload --- mods/mobs/sounds/default_punch.ogg | Bin 0 -> 5946 bytes mods/mobs/sounds/mobs_spell.ogg | Bin 0 -> 15205 bytes mods/mobs/sounds/mobs_swing.ogg | Bin 0 -> 6895 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs/sounds/default_punch.ogg create mode 100644 mods/mobs/sounds/mobs_spell.ogg create mode 100644 mods/mobs/sounds/mobs_swing.ogg diff --git a/mods/mobs/sounds/default_punch.ogg b/mods/mobs/sounds/default_punch.ogg new file mode 100644 index 0000000000000000000000000000000000000000..28a500bf5759c8bb16ea780d100c8bbf1a7a2609 GIT binary patch literal 5946 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 q_rlfhT4(FDGv+6T(tLS3{&=iPU+J3hm^ Date: Wed, 18 Dec 2019 10:29:44 -0500 Subject: [PATCH 227/321] Create main --- mods/mobs/textures/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/mobs/textures/main diff --git a/mods/mobs/textures/main b/mods/mobs/textures/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/mobs/textures/main @@ -0,0 +1 @@ + -- 2.40.1 From b4e125d2e79ffb17d51d94fa6954e7c1f5e37712 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:31:42 -0500 Subject: [PATCH 228/321] Add files via upload --- mods/mobs/textures/mob_spawner.png | Bin 0 -> 108 bytes mods/mobs/textures/mobs_blood.png | Bin 0 -> 267 bytes mods/mobs/textures/mobs_chicken_egg.png | Bin 0 -> 235 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs/textures/mob_spawner.png create mode 100644 mods/mobs/textures/mobs_blood.png create mode 100644 mods/mobs/textures/mobs_chicken_egg.png diff --git a/mods/mobs/textures/mob_spawner.png b/mods/mobs/textures/mob_spawner.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0ac39b711f0b8919b945696cc73b4015f8329f GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E09+5%h?i;vJ=Q+ED7=p zW^j0RBMrzA@pN$v;kcgszopr0BYSC AegFUf literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_blood.png b/mods/mobs/textures/mobs_blood.png new file mode 100644 index 0000000000000000000000000000000000000000..77cfbdaa665922472018ffd016e7a47c974e6bf5 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4&HECyrsn$JLrv%n*= zn1O*?7=#%aX3dcR3bL1Y`ns~;V-*l#XF68-IUFb?S>hT|;+&tGo0?a`;9QiNSdyBe zP@Y+mq2TW68xY>eCk|9p?CIhdVsU!wWN*F(0}fVpzOeIp;)i?nt~kXd=NwvPBT@I^ z`)$SD_5YRF3_|ya?$bSJv37BxYPI+g?T<4qoM6#^erD3SrIE87pG`RweterrYcywC zi% literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_chicken_egg.png b/mods/mobs/textures/mobs_chicken_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..be8a4e1cf58a4b72abec094ddfb36cef4f2e914a GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5o?Y8+9EttD(#nNp%w(dW;@5HI&7cQN@a_#c1J2&s%zw_wH!{;xbwJ=ZW1Zrn23GxeO zaCmkj4aiCJba4!kxIDMdQ>ev&gMqV0O^5N{|0qk9#c@xs`HHh1c&=EZ?5kF_VQ2dX z*}pc%Z^crMCjK!u>0bUy?8(HJs}9MAKM+(ia?5|+5~^^jmQ%rW?cd66wIv4P^41Iv iGVWjBeze}!E53Xi^Py?0mhA@G$l&Sf=d#Wzp$PyGxL^_h literal 0 HcmV?d00001 -- 2.40.1 From 8c7c93bce6bd2209842872cdbcae8aef3fca8a3d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:32:04 -0500 Subject: [PATCH 229/321] Delete main --- mods/mobs/textures/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs/textures/main diff --git a/mods/mobs/textures/main b/mods/mobs/textures/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/mobs/textures/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 202c415bc2ec961b4a20639ebe4002893ccadaff Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:32:42 -0500 Subject: [PATCH 230/321] Add files via upload --- mods/mobs/textures/mobs_chicken_egg_overlay.png | Bin 0 -> 191 bytes mods/mobs/textures/mobs_leather.png | Bin 0 -> 196 bytes mods/mobs/textures/mobs_magic_lasso.png | Bin 0 -> 176 bytes mods/mobs/textures/mobs_meat.png | Bin 0 -> 411 bytes mods/mobs/textures/mobs_meat_raw.png | Bin 0 -> 426 bytes mods/mobs/textures/mobs_nametag.png | Bin 0 -> 247 bytes mods/mobs/textures/mobs_net.png | Bin 0 -> 195 bytes mods/mobs/textures/mobs_noentry_particle.png | Bin 0 -> 165 bytes mods/mobs/textures/mobs_protect_particle.png | Bin 0 -> 117 bytes mods/mobs/textures/mobs_protector.png | Bin 0 -> 164 bytes mods/mobs/textures/mobs_saddle.png | Bin 0 -> 166 bytes mods/mobs/textures/mobs_shears.png | Bin 0 -> 224 bytes mods/mobs/textures/tnt_smoke.png | Bin 0 -> 202 bytes 13 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs/textures/mobs_chicken_egg_overlay.png create mode 100644 mods/mobs/textures/mobs_leather.png create mode 100644 mods/mobs/textures/mobs_magic_lasso.png create mode 100644 mods/mobs/textures/mobs_meat.png create mode 100644 mods/mobs/textures/mobs_meat_raw.png create mode 100644 mods/mobs/textures/mobs_nametag.png create mode 100644 mods/mobs/textures/mobs_net.png create mode 100644 mods/mobs/textures/mobs_noentry_particle.png create mode 100644 mods/mobs/textures/mobs_protect_particle.png create mode 100644 mods/mobs/textures/mobs_protector.png create mode 100644 mods/mobs/textures/mobs_saddle.png create mode 100644 mods/mobs/textures/mobs_shears.png create mode 100644 mods/mobs/textures/tnt_smoke.png diff --git a/mods/mobs/textures/mobs_chicken_egg_overlay.png b/mods/mobs/textures/mobs_chicken_egg_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..e81716a5964b14a0e5c309df5842a36679ecff97 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E0F&G|NqjP^X~##j3q&S z!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|U1(2s1Lwnj--eWH0gbb!C6R%q*rWdxfd@ z1yIPy)5S4_<9c#J1LH9^wr?zKbF;n~&J`1RTu_VYZn8D%MjWi%9*3-o?gyVX0f&)Xc#9Px3blo()qRMfG!R$5q6 oNomWAq=2A+(1u&5j~rlNxTec@{eZvcT%bh^p00i_>zopr04TRP?f?J) literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_magic_lasso.png b/mods/mobs/textures/mobs_magic_lasso.png new file mode 100644 index 0000000000000000000000000000000000000000..befdc1120684c7281b1edb8129b302e9beb402b5 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b6=Yxt^*32FFY4T(w)@vs zl%$(^0;L#Bg8YIR9G=}s19JR5T^vI=u7~zsQL70(Y)*K0-AbW|YuPgfaiF4ao-U3d7N?g^vdubdAacB(E6(QR4TXEx zF3u`ia7TIh3qvMb2mT4lB^n}c3}^mM5hQPNZ2d{j?b$^|R^^`s``T-BW~*s_Ph^k?jTf@q@XleX_U!(d zpRd@|Zl2A&s!G1?iq6}AB6~a*yo!|BkbKYbgOcN0+vUaXZ*7(MqNi+ru+{L@!kfR; xcc<9y}xJr}&S1jg>4r#17hce+c-?XfU(#Xu8o%U0?_>c)I$ztaD0e0svFmpH=_> literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_meat_raw.png b/mods/mobs/textures/mobs_meat_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..0dea4ec5404cccc8820d90a5d3e1513b150d6056 GIT binary patch literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBkF8NoF4Dim2{~Kq1Kz*N775{M_8s zyb=cIqSVBa)D(sC%#sWRcTeAd@J2pypjE7%E{-7kqh6PFiLxlUdNbJa48$*Oi5{r(a(v5$LiYP)9NG@bmxw?^k=dL`2Um z7D`(3L9XHYs-Ty*(|Bvn7jqg0W$_-^y6)wi$>%H?Ph7j=z4qj}=kXQ0mwuQRa9!ly zV+NO$Z<%YS9+UWKBa`yyo`mvtfhC4+QQ4}|!Ou&Sj&L~ayU+aLqIF^D(kn57*3X|* zZ-2bB{l4CGMxU(=1+mM;WL2Inv0!UI8}o0kIGf3TAIE5{BIN89Ry&ac@UkDfQywAE(< Ph8lyXtDnm{r-UW|E48P= literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_nametag.png b/mods/mobs/textures/mobs_nametag.png new file mode 100644 index 0000000000000000000000000000000000000000..74005b3a25a37186a5e2f69cd6cc11f38f206a7f GIT binary patch literal 247 zcmVkf0oG*>Bzpoo zX%)nulCl`QF0%k^u}u-YR(8+d1{$=K$KXk;psEi8h_^^@uz$K?1dwkn`~@fN!5$nH x#9$|ww303PCpZ}5q!ryT`V*Iw9halu`2mf%NGNDlp0@x1002ovPDHLkV1h%cUM>It literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_net.png b/mods/mobs/textures/mobs_net.png new file mode 100644 index 0000000000000000000000000000000000000000..df7c3a61f531d9fb3b5a2a8bfd72c2f7a3e3c69f GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZWnj=u6yxxy(FqQ=Q1v5B2yO9Ru#CW{FIq2sZu;qT;#_8q@+w>6|b p{>-jn*&9=KMziu6f5Dzg<{~zJ50m?<|AF=}c)I$ztaD0e0sw}5K|cTh literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_noentry_particle.png b/mods/mobs/textures/mobs_noentry_particle.png new file mode 100644 index 0000000000000000000000000000000000000000..87938ff444bea88add05585ec1a9581c6cb37134 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_%$6*}}^6_yrY|70Q8v zj3q&S!3+-1ZlnP@UY;(FAsp9L&n#qYFyLW0xL!e8VOFLU6BF~SuC!S^f-c*ZG+2J; zf6aGvlj8T6EA$&#o9Bh-Web1pJhCKZX)^ob%tf=0%&%=O|H|;KROr@hv-{tGrZRZC L`njxgN@xNAOJ+1n literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_protect_particle.png b/mods/mobs/textures/mobs_protect_particle.png new file mode 100644 index 0000000000000000000000000000000000000000..debe20cb1a8aef3a014bed8f12168abbaa72c48f GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CN$P6S4_x+OrQfvV}A+A9B|Ns9>Z_d99WHFWm z`2{mLJiCzwP>Qi6$S;_|;n|HeAjjF$#W95AdUApTLs~K;NA8j(9BGEymYSM}B)k+9l~u(h z4xi*ak`NYD6x3)qWsXRqQkQ{gSH>;{o|cnMO-)Q5c?=9cFLJ$DmQ+{;G>*a3)z4*} HQ$iB}$7V2G literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_saddle.png b/mods/mobs/textures/mobs_saddle.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d42f82e3fa7d2e840f74430bf6d6fa6d8e022e GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=41Qdfxi-b^b;>c+39^ToS5nGi|=UbV0dp*0INP zuFe+i_*k%)OOWlB*S15}RWmJAqcd7L4kf(5nzopr0AoZ@-v9sr literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/tnt_smoke.png b/mods/mobs/textures/tnt_smoke.png new file mode 100644 index 0000000000000000000000000000000000000000..488b50fe958d33fa4cd50fa383a4685db045def5 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fw4`$F~s6@a>4>ti^@+=>QiQE7$hEQ`G3RY@DXvHh=$u6+S=Ge zd|6pp|9|XU+`ubsmaui^1PiVPOaAGbFCN{bP0l+XkK@H9k* literal 0 HcmV?d00001 -- 2.40.1 From 0ed63099506da803637a710a22a3af5d0eaf71f6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:01 -0500 Subject: [PATCH 231/321] Delete depends.txt --- mods/mobs_redo/depends.txt | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 mods/mobs_redo/depends.txt diff --git a/mods/mobs_redo/depends.txt b/mods/mobs_redo/depends.txt deleted file mode 100644 index 2f208027..00000000 --- a/mods/mobs_redo/depends.txt +++ /dev/null @@ -1,9 +0,0 @@ -default -tnt? -dye? -farming? -invisibility? -intllib? -lucky_block? -cmi? -toolranks? -- 2.40.1 From 63afb57e2f01eef082f05de6f85aea62e24575c5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:09 -0500 Subject: [PATCH 232/321] Delete description.txt --- mods/mobs_redo/description.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs_redo/description.txt diff --git a/mods/mobs_redo/description.txt b/mods/mobs_redo/description.txt deleted file mode 100644 index 919852a1..00000000 --- a/mods/mobs_redo/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds a mob api for mods to add animals or monsters etc. \ No newline at end of file -- 2.40.1 From bf16a4f394aff0426371d72f39cfd2f551f706ff Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:16 -0500 Subject: [PATCH 233/321] Delete init.lua --- mods/mobs_redo/init.lua | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 mods/mobs_redo/init.lua diff --git a/mods/mobs_redo/init.lua b/mods/mobs_redo/init.lua deleted file mode 100644 index f63fb164..00000000 --- a/mods/mobs_redo/init.lua +++ /dev/null @@ -1,19 +0,0 @@ - -local path = minetest.get_modpath("mobs") - --- Mob API -dofile(path .. "/api.lua") - --- Rideable Mobs -dofile(path .. "/mount.lua") - --- Mob Items -dofile(path .. "/crafts.lua") - --- Mob Spawner -dofile(path .. "/spawner.lua") - --- Lucky Blocks -dofile(path .. "/lucky_block.lua") - -minetest.log("action", "[MOD] Mobs Redo loaded") -- 2.40.1 From 058f5d03c2c6fa50c8e80fa9a6b940606d95043c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:24 -0500 Subject: [PATCH 234/321] Delete intllib.lua --- mods/mobs_redo/intllib.lua | 45 -------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 mods/mobs_redo/intllib.lua diff --git a/mods/mobs_redo/intllib.lua b/mods/mobs_redo/intllib.lua deleted file mode 100644 index 6669d720..00000000 --- a/mods/mobs_redo/intllib.lua +++ /dev/null @@ -1,45 +0,0 @@ - --- Fallback functions for when `intllib` is not installed. --- Code released under Unlicense . - --- Get the latest version of this file at: --- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua - -local function format(str, ...) - local args = { ... } - local function repl(escape, open, num, close) - if escape == "" then - local replacement = tostring(args[tonumber(num)]) - if open == "" then - replacement = replacement..close - end - return replacement - else - return "@"..open..num..close - end - end - return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) -end - -local gettext, ngettext -if minetest.get_modpath("intllib") then - if intllib.make_gettext_pair then - -- New method using gettext. - gettext, ngettext = intllib.make_gettext_pair() - else - -- Old method using text files. - gettext = intllib.Getter() - end -end - --- Fill in missing functions. - -gettext = gettext or function(msgid, ...) - return format(msgid, ...) -end - -ngettext = ngettext or function(msgid, msgid_plural, n, ...) - return format(n==1 and msgid or msgid_plural, ...) -end - -return gettext, ngettext -- 2.40.1 From cbb03d7c524bc88fd4e10e63822e41fc45fa41b1 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:31 -0500 Subject: [PATCH 235/321] Delete lucky_block.lua --- mods/mobs_redo/lucky_block.lua | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 mods/mobs_redo/lucky_block.lua diff --git a/mods/mobs_redo/lucky_block.lua b/mods/mobs_redo/lucky_block.lua deleted file mode 100644 index b823e832..00000000 --- a/mods/mobs_redo/lucky_block.lua +++ /dev/null @@ -1,18 +0,0 @@ - -if minetest.get_modpath("lucky_block") then - - lucky_block:add_blocks({ - {"dro", {"mobs:meat_raw"}, 5}, - {"dro", {"mobs:meat"}, 5}, - {"dro", {"mobs:nametag"}, 1}, - {"dro", {"mobs:leather"}, 5}, - {"dro", {"default:stick"}, 10}, - {"dro", {"mobs:net"}, 1}, - {"dro", {"mobs:lasso"}, 1}, - {"dro", {"mobs:shears"}, 1}, - {"dro", {"mobs:protector"}, 1}, - {"dro", {"mobs:fence_wood"}, 10}, - {"dro", {"mobs:fence_top"}, 12}, - {"lig"} - }) -end -- 2.40.1 From 9dbaf35e92514b69a26ebff812aace3da71e57d2 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:39 -0500 Subject: [PATCH 236/321] Delete mod.conf --- mods/mobs_redo/mod.conf | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs_redo/mod.conf diff --git a/mods/mobs_redo/mod.conf b/mods/mobs_redo/mod.conf deleted file mode 100644 index f3a3ad74..00000000 --- a/mods/mobs_redo/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = mobs -- 2.40.1 From 670f39a6842b966eef246717a404ce3521ee6d17 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:46 -0500 Subject: [PATCH 237/321] Delete mount.lua --- mods/mobs_redo/mount.lua | 448 --------------------------------------- 1 file changed, 448 deletions(-) delete mode 100644 mods/mobs_redo/mount.lua diff --git a/mods/mobs_redo/mount.lua b/mods/mobs_redo/mount.lua deleted file mode 100644 index 29b80ed2..00000000 --- a/mods/mobs_redo/mount.lua +++ /dev/null @@ -1,448 +0,0 @@ - --- lib_mount by Blert2112 (edited by TenPlus1) - -local enable_crash = false -local crash_threshold = 6.5 -- ignored if enable_crash=false - ------------------------------------------------------------------------------- - --- --- Helper functions --- - -local node_ok = function(pos, fallback) - - fallback = fallback or mobs.fallback_node - - local node = minetest.get_node_or_nil(pos) - - if node and minetest.registered_nodes[node.name] then - return node - end - - return {name = fallback} -end - - -local function node_is(pos) - - local node = node_ok(pos) - - if node.name == "air" then - return "air" - end - - if minetest.get_item_group(node.name, "lava") ~= 0 then - return "lava" - end - - if minetest.get_item_group(node.name, "liquid") ~= 0 then - return "liquid" - end - - if minetest.registered_nodes[node.name].walkable == true then - return "walkable" - end - - return "other" -end - - -local function get_sign(i) - - i = i or 0 - - if i == 0 then - return 0 - else - return i / math.abs(i) - end -end - - -local function get_velocity(v, yaw, y) - - local x = -math.sin(yaw) * v - local z = math.cos(yaw) * v - - return {x = x, y = y, z = z} -end - - -local function get_v(v) - return math.sqrt(v.x * v.x + v.z * v.z) -end - - -local function force_detach(player) - - local attached_to = player:get_attach() - - if not attached_to then - return - end - - local entity = attached_to:get_luaentity() - - if entity.driver - and entity.driver == player then - - entity.driver = nil - end - - player:set_detach() - default.player_attached[player:get_player_name()] = false - player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) - default.player_set_animation(player, "stand" , 30) - player:set_properties({visual_size = {x = 1, y = 1} }) - -end - -------------------------------------------------------------------------------- - - -minetest.register_on_leaveplayer(function(player) - force_detach(player) -end) - -minetest.register_on_shutdown(function() - local players = minetest.get_connected_players() - for i = 1, #players do - force_detach(players[i]) - end -end) - -minetest.register_on_dieplayer(function(player) - force_detach(player) - return true -end) - -------------------------------------------------------------------------------- - -function mobs.attach(entity, player) - - local attach_at, eye_offset = {}, {} - - entity.player_rotation = entity.player_rotation or {x = 0, y = 0, z = 0} - entity.driver_attach_at = entity.driver_attach_at or {x = 0, y = 0, z = 0} - entity.driver_eye_offset = entity.driver_eye_offset or {x = 0, y = 0, z = 0} - entity.driver_scale = entity.driver_scale or {x = 1, y = 1} - - local rot_view = 0 - - if entity.player_rotation.y == 90 then - rot_view = math.pi/2 - end - - attach_at = entity.driver_attach_at - eye_offset = entity.driver_eye_offset - entity.driver = player - - force_detach(player) - - player:set_attach(entity.object, "", attach_at, entity.player_rotation) - default.player_attached[player:get_player_name()] = true - player:set_eye_offset(eye_offset, {x = 0, y = 0, z = 0}) - - player:set_properties({ - visual_size = { - x = entity.driver_scale.x, - y = entity.driver_scale.y - } - }) - - minetest.after(0.2, function() - default.player_set_animation(player, "sit" , 30) - end) - - --player:set_look_yaw(entity.object:get_yaw() - rot_view) - player:set_look_horizontal(entity.object:get_yaw() - rot_view) -end - - -function mobs.detach(player, offset) - - force_detach(player) - - default.player_set_animation(player, "stand" , 30) - - local pos = player:get_pos() - - pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z} - - minetest.after(0.1, function() - player:set_pos(pos) - end) -end - - -function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) - - local rot_steer, rot_view = math.pi/2, 0 - - if entity.player_rotation.y == 90 then - rot_steer, rot_view = 0, math.pi/2 - end - - local acce_y = 0 - local velo = entity.object:get_velocity() - - entity.v = get_v(velo) * get_sign(entity.v) - - -- process controls - if entity.driver then - ---print ("---velo", get_v(velo)) - - local ctrl = entity.driver:get_player_control() - - -- move forwards - if ctrl.up then - - entity.v = entity.v + entity.accel / 10 - - -- move backwards - elseif ctrl.down then - - if entity.max_speed_reverse == 0 and entity.v == 0 then - return - end - - entity.v = entity.v - entity.accel / 10 - end - - -- fix mob rotation - local horz = entity.driver:get_look_horizontal() or 0 - entity.object:set_yaw(horz - entity.rotate) - - if can_fly then - - -- fly up - if ctrl.jump then - velo.y = velo.y + 1 - if velo.y > entity.accel then velo.y = entity.accel end - - elseif velo.y > 0 then - velo.y = velo.y - 0.1 - if velo.y < 0 then velo.y = 0 end - end - - -- fly down - if ctrl.sneak then - velo.y = velo.y - 1 - if velo.y < -entity.accel then velo.y = -entity.accel end - - elseif velo.y < 0 then - velo.y = velo.y + 0.1 - if velo.y > 0 then velo.y = 0 end - end - - else - - -- jump - if ctrl.jump then - - if velo.y == 0 then - velo.y = velo.y + entity.jump_height - acce_y = acce_y + (acce_y * 3) + 1 - end - end - end - end - - -- if not moving then set animation and return - if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then - - if stand_anim then - mobs:set_animation(entity, stand_anim) - end - - return - end - - -- set moving animation - if moving_anim then - mobs:set_animation(entity, moving_anim) - end - - -- Stop! - local s = get_sign(entity.v) - - entity.v = entity.v - 0.02 * s - - if s ~= get_sign(entity.v) then - - entity.object:set_velocity({x = 0, y = 0, z = 0}) - entity.v = 0 - return - end - - -- enforce speed limit forward and reverse - local max_spd = entity.max_speed_reverse - - if get_sign(entity.v) >= 0 then - max_spd = entity.max_speed_forward - end - - if math.abs(entity.v) > max_spd then - entity.v = entity.v - get_sign(entity.v) - end - - -- Set position, velocity and acceleration - local p = entity.object:get_pos() - local new_velo = {x = 0, y = 0, z = 0} - local new_acce = {x = 0, y = -9.8, z = 0} - - p.y = p.y - 0.5 - - local ni = node_is(p) - local v = entity.v - - if ni == "air" then - - if can_fly == true then - new_acce.y = 0 - end - - elseif ni == "liquid" or ni == "lava" then - - if ni == "lava" and entity.lava_damage ~= 0 then - - entity.lava_counter = (entity.lava_counter or 0) + dtime - - if entity.lava_counter > 1 then - - minetest.sound_play("default_punch", { - object = entity.object, - max_hear_distance = 5 - }) - - entity.object:punch(entity.object, 1.0, { - full_punch_interval = 1.0, - damage_groups = {fleshy = entity.lava_damage} - }, nil) - - entity.lava_counter = 0 - end - end - - if entity.terrain_type == 2 - or entity.terrain_type == 3 then - - new_acce.y = 0 - p.y = p.y + 1 - - if node_is(p) == "liquid" then - - if velo.y >= 5 then - velo.y = 5 - elseif velo.y < 0 then - new_acce.y = 20 - else - new_acce.y = 5 - end - else - if math.abs(velo.y) < 1 then - local pos = entity.object:get_pos() - pos.y = math.floor(pos.y) + 0.5 - entity.object:set_pos(pos) - velo.y = 0 - end - end - else - v = v * 0.25 - end - end - - new_velo = get_velocity(v, entity.object:get_yaw() - rot_view, velo.y) - new_acce.y = new_acce.y + acce_y - - entity.object:set_velocity(new_velo) - entity.object:set_acceleration(new_acce) - - -- CRASH! - if enable_crash then - - local intensity = entity.v2 - v - - if intensity >= crash_threshold then - ---print("----------- crash", intensity) - - entity.object:punch(entity.object, 1.0, { - full_punch_interval = 1.0, - damage_groups = {fleshy = intensity} - }, nil) - - end - end - - entity.v2 = v -end - - --- directional flying routine by D00Med (edited by TenPlus1) - -function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) - - local ctrl = entity.driver:get_player_control() - local velo = entity.object:get_velocity() - local dir = entity.driver:get_look_dir() - local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands - local rot_steer, rot_view = math.pi / 2, 0 - - if entity.player_rotation.y == 90 then - rot_steer, rot_view = 0, math.pi / 2 - end - - if ctrl.up then - entity.object:set_velocity({ - x = dir.x * speed, - y = dir.y * speed + 2, - z = dir.z * speed - }) - - elseif ctrl.down then - entity.object:set_velocity({ - x = -dir.x * speed, - y = dir.y * speed + 2, - z = -dir.z * speed - }) - - elseif not ctrl.down or ctrl.up or ctrl.jump then - entity.object:set_velocity({x = 0, y = -2, z = 0}) - end - - entity.object:set_yaw(yaw + math.pi + math.pi / 2 - entity.rotate) - - -- firing arrows - if ctrl.LMB and ctrl.sneak and shoots then - - local pos = entity.object:get_pos() - local obj = minetest.add_entity({ - x = pos.x + 0 + dir.x * 2.5, - y = pos.y + 1.5 + dir.y, - z = pos.z + 0 + dir.z * 2.5}, arrow) - - local ent = obj:get_luaentity() - if ent then - ent.switch = 1 -- for mob specific arrows - ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding - local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6} - local yaw = entity.driver:get_look_horizontal() - obj:set_yaw(yaw + math.pi / 2) - obj:set_velocity(vec) - else - obj:remove() - end - end - - -- change animation if stopped - if velo.x == 0 and velo.y == 0 and velo.z == 0 then - - mobs:set_animation(entity, stand_anim) - else - -- moving animation - mobs:set_animation(entity, moving_anim) - end -end -- 2.40.1 From 536254e18db819c63b0f22983de73a1cc0e65459 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:33:55 -0500 Subject: [PATCH 238/321] Delete readme.MD --- mods/mobs_redo/readme.MD | 86 ---------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 mods/mobs_redo/readme.MD diff --git a/mods/mobs_redo/readme.MD b/mods/mobs_redo/readme.MD deleted file mode 100644 index 27d552f3..00000000 --- a/mods/mobs_redo/readme.MD +++ /dev/null @@ -1,86 +0,0 @@ - -MOBS REDO for MINETEST - -Built from PilzAdam's original Simple Mobs with additional mobs by KrupnoPavel, Zeg9, ExeterDad and AspireMint. - - -This mod contains the API only for adding your own mobs into the world, so please use the additional modpacks to add animals, monsters etc. - - -https://forum.minetest.net/viewtopic.php?f=11&t=9917 - - -Crafts: - - - Nametag (paper, black dye, string) can be used right-click on a tamed mob to give them a name. - - Nets can be used to right-click tamed mobs to pick them up and place inside inventory as a spawn egg. - - Magic Lasso is similar to nets but with a better chance of picking up larger mobs. - - Shears are used to right-click sheep and return 1-3 wool. - - Protection Rune lets you protect tamed mobs from harm by other players - - Mob Fence and Fence Top (to stop mobs escaping/glitching through fences) - -Lucky Blocks: 9 - - -Changelog: -- 1.50 - Added new line_of_sight function that uses raycasting if mt5.0 is found (thanks Astrobe), dont spawn mobs if world anchor nearby (technic or simple_anchor mods) -- 1.49- Added mobs:force_capture(self, player) function, api functions now use metatables thanks to bell07 -- 1.48- Add mobs:set_velocity(self, velocity) global function -- 1.47- Mob damage changes, min and max light level for damage added, ignition sources checked for lava damage -- 1.46- Mobs only drop rare items when killed by player (drops.min = 0 makes them rare), code tweak, pathfinding no longer sees through walkable nodes -- 1.45- Added Fence Top to add on top of any fence to stop mobs escaping, new line_of_sight tweaked by Astrobe -- 1.44- Added ToolRanks support for swords when attacking mobs -- 1.43- Better 0.4.16 compatibility, added general attack function and settings -- 1.42- Added "all" option to immune_to table, tidied floating mobs to be less intensive -- 1.41- Mob pathfinding has been updated thanks to Elkien3 -- 1.40- Updated to use newer functions, requires Minetest 0.4.16+ to work. -- 1.39- Added 'on_breed', 'on_grown' and 'do_punch' custom functions per mob -- 1.38- Better entity checking, nametag setting and on_spawn function added to mob registry, tweaked light damage -- 1.37- Added support for Raymoo's CMI (common mob interface) mod: https://forum.minetest.net/viewtopic.php?f=9&t=15448 -- 1.36- Death check added, if mob dies in fire/lava/with lava pick then drops are cooked -- 1.35- Added owner_loyal flag for owned mobs to attack player enemies, also fixed group_attack -- 1.34- Added function to fly mob using directional movement (thanks D00Med for flying code) -- 1.33- Added functions to mount ride mobs (mobs.attach, mobs.detach, mobs.drive) many thanks to Blert2112 -- 1.32- Added new spawn check to count specific mobs AND new minetest.conf setting to chance spawn chance and numbers, added ability to protect tamed mobs -- 1.31- Added 'attack_animals' and 'specific_attack' flags for custom monster attacks, also 'mob_difficulty' .conf setting to make mobs harder. -- 1.30- Added support for invisibility mod (mobs cant attack what they cant see), tweaked and tidied code -- 1.29- Split original Mobs Redo into a modpack to make it easier to disable mob sets (animal, monster, npc) or simply use the Api itself for your own mod -- 1.28- New damage system added with ability for mob to be immune to weapons or healed by them :) -- 1.27- Added new sheep, lava flan and spawn egg textures. New Lava Pick tool smelts what you dig. New atan checking function. -- 1.26- Pathfinding feature added thanks to rnd, when monsters attack they become scary smart in finding you :) also, beehive produces honey now :) -- 1.25- Mobs no longer spawn within 12 blocks of player or despawn within same range, spawners now have player detection, Code tidy and tweak. -- 1.24- Added feature where certain animals run away when punched (runaway = true in mob definition) -- 1.23- Added mob spawner block for admin to setup spawners in-game (place and right click to enter settings) -- 1.22- Added ability to name tamed animals and npc using nametags, also npc will attack anyone who punches them apart from owner -- 1.21- Added some more error checking to reduce serialize.h error and added height checks for falling off cliffs (thanks cmdskp) -- 1.20- Error checking added to remove bad mobs, out of map limit mobs and stop serialize.h error -- 1.19- Chickens now drop egg items instead of placing the egg, also throwing eggs result in 1/8 chance of spawning chick -- 1.18- Added docile_by_day flag so that monsters will not attack automatically during daylight hours unless hit first -- 1.17- Added 'dogshoot' attack type, shoots when out of reach, melee attack when in reach, also api tweaks and self.reach added -- 1.16- Mobs follow multiple items now, Npc's can breed -- 1.15- Added Feeding/Taming/Breeding function, right-click to pick up any sheep with X mark on them and replace with new one to fix compatibility. -- 1.14- All .self variables saved in staticdata, Fixed self.health bug -- 1.13- Added capture function (thanks blert2112) chance of picking up mob with hand; net; magic lasso, replaced some .x models with newer .b3d one's -- 1.12- Added animal ownership so that players cannot steal your tamed animals -- 1.11- Added flying mobs (and swimming), fly=true and fly_in="air" or "deafult:water_source" for fishy -- 1,10- Footstep removed (use replace), explosion routine added for exploding mobs. -- 1.09- reworked breeding routine, added mob rotation value, added footstep feature, added jumping mobs with sounds feature, added magic lasso for picking up animals -- 1.08- Mob throwing attack has been rehauled so that they can damage one another, also drops and on_die function added -- 1.07- Npc's can now be set to follow player or stand by using self.order and self.owner variables -- beta- Npc mob added, kills monsters, attacks player when punched, right click with food to heal or gold lump for drop -- 1.06- Changed recovery times after breeding, and time taken to grow up (can be sped up by feeding baby animal) -- 1.05- Added ExeterDad's bunny's which can be picked up and tamed with 4 carrots from farming redo or farming_plus, also shears added to get wool from sheep and lastly Jordach/BSD's kitten -- 1.04- Added mating for sheep, cows and hogs... feed animals to make horny and hope for a baby which is half size, will grow up quick though :) -- 1.03- Added mob drop/replace feature so that chickens can drop eggs, cow/sheep can eat grass/wheat etc. -- 1.02- Sheared sheep are remembered and spawn shaven, Warthogs will attack when threatened, Api additions -- 1.01- Mobs that suffer fall damage or die in water/lava/sunlight will now drop items -- 1.0 - more work on Api so that certain mobs can float in water while some sink like a brick :) -- 0.9 - Spawn eggs added for all mobs (admin only, cannot be placed in protected areas)... Api tweaked -- 0.8 - Added sounds to monster mobs (thanks Cyberpangolin for the sfx) and also chicken sound -- 0.7 - mobs.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes -- 0.6 - Api now supports multi-textured mobs, e.g oerkki, dungeon master, rats and chickens have random skins when spawning (sheep fix TODO), also new Honey block -- 0.5 - Mobs now float in water, die from falling, and some code improvements -- 0.4 - Dungeon Masters and Mese Monsters have much better aim due to shoot_offset, also they can both shoot through nodes that aren't walkable (flowers, grass etc) plus new sheep sound :) -- 0.3 - Added LOTT's Spider mob, made Cobwebs, added KPavel's Bee with Honey and Beehives (made texture), Warthogs now have sound and can be tamed, taming of shaved sheep or milked cow with 8 wheat so it will not despawn, many bug fixes :) -- 0.2 - Cooking bucket of milk into cheese now returns empty bucket -- 0.1 - Initial Release -- 2.40.1 From 260775baae9c2ae9954e93be2e7ebb4471211d8a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:34:03 -0500 Subject: [PATCH 239/321] Delete settingtypes.txt --- mods/mobs_redo/settingtypes.txt | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 mods/mobs_redo/settingtypes.txt diff --git a/mods/mobs_redo/settingtypes.txt b/mods/mobs_redo/settingtypes.txt deleted file mode 100644 index 08214374..00000000 --- a/mods/mobs_redo/settingtypes.txt +++ /dev/null @@ -1,29 +0,0 @@ -# If false then mobs no longer spawn in world without spawner or spawn egg -mobs_spawn (Spawn Mobs) bool true - -# If enabled then monsters no longer spawn in world -only_peaceful_mobs (Only spawn peaceful Mobs) bool false - -# If enabled then punching mobs no longer shows blood effects -mobs_disable_blood (Disable Mob blood) bool false - -# If disabled then Mobs no longer destroy world blocks -mobs_griefing (Griefing Mobs) bool true - -# If false then Mobs no longer spawn inside player protected areas -mobs_spawn_protected (Spawn Mobs in protected areas) bool true - -# If true Mobs will be removed once a map chunk is out of view -remove_far_mobs (Remove far Mobs) bool true - -# Sets Mob difficulty level by multiplying punch damage -mob_difficulty (Mob difficulty) float 1.0 - -# If disabled health status no longer appears above Mob when punched -mob_show_health (Show Mob health) bool true - -# Contains a value used to multiply Mob spawn values -mob_chance_multiplier (Mob chance multiplier) float 1.0 - -# When false Mob no longer drop items when killed -mobs_drop_items (Mob drops) bool true -- 2.40.1 From 7415ab18c97ce06ee4d03a478c127b6a38f4e6cc Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:34:10 -0500 Subject: [PATCH 240/321] Delete spawner.lua --- mods/mobs_redo/spawner.lua | 178 ------------------------------------- 1 file changed, 178 deletions(-) delete mode 100644 mods/mobs_redo/spawner.lua diff --git a/mods/mobs_redo/spawner.lua b/mods/mobs_redo/spawner.lua deleted file mode 100644 index dfe20f21..00000000 --- a/mods/mobs_redo/spawner.lua +++ /dev/null @@ -1,178 +0,0 @@ - -local S = mobs.intllib - --- mob spawner - -local spawner_default = "mobs_animal:pumba 10 15 0 0" - -minetest.register_node("mobs:spawner", { - tiles = {"mob_spawner.png"}, - drawtype = "glasslike", - paramtype = "light", - walkable = true, - description = S("Mob Spawner"), - groups = {cracky = 1}, - - on_construct = function(pos) - - local meta = minetest.get_meta(pos) - - -- text entry formspec - meta:set_string("formspec", - "field[text;" .. S("Mob MinLight MaxLight Amount PlayerDist") .. ";${command}]") - meta:set_string("infotext", S("Spawner Not Active (enter settings)")) - meta:set_string("command", spawner_default) - end, - - on_right_click = function(pos, placer) - - if minetest.is_protected(pos, placer:get_player_name()) then - return - end - end, - - on_receive_fields = function(pos, formname, fields, sender) - - if not fields.text or fields.text == "" then - return - end - - local meta = minetest.get_meta(pos) - local comm = fields.text:split(" ") - local name = sender:get_player_name() - - if minetest.is_protected(pos, name) then - minetest.record_protection_violation(pos, name) - return - end - - local mob = comm[1] -- mob to spawn - local mlig = tonumber(comm[2]) -- min light - local xlig = tonumber(comm[3]) -- max light - local num = tonumber(comm[4]) -- total mobs in area - local pla = tonumber(comm[5]) -- player distance (0 to disable) - local yof = tonumber(comm[6]) or 0 -- Y offset to spawn mob - - if mob and mob ~= "" and mobs.spawning_mobs[mob] == true - and num and num >= 0 and num <= 10 - and mlig and mlig >= 0 and mlig <= 15 - and xlig and xlig >= 0 and xlig <= 15 - and pla and pla >=0 and pla <= 20 - and yof and yof > -10 and yof < 10 then - - meta:set_string("command", fields.text) - meta:set_string("infotext", S("Spawner Active (@1)", mob)) - - else - minetest.chat_send_player(name, S("Mob Spawner settings failed!")) - minetest.chat_send_player(name, - S("Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] distance[1-20] y_offset[-10 to 10]”")) - end - end -}) - - -local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) - --- spawner abm -minetest.register_abm({ - label = "Mob spawner node", - nodenames = {"mobs:spawner"}, - interval = 10, - chance = 4, - catch_up = false, - - action = function(pos, node, active_object_count, active_object_count_wider) - - -- return if too many entities already - if active_object_count_wider >= max_per_block then - return - end - - -- get meta and command - local meta = minetest.get_meta(pos) - local comm = meta:get_string("command"):split(" ") - - -- get settings from command - local mob = comm[1] - local mlig = tonumber(comm[2]) - local xlig = tonumber(comm[3]) - local num = tonumber(comm[4]) - local pla = tonumber(comm[5]) or 0 - local yof = tonumber(comm[6]) or 0 - - -- if amount is 0 then do nothing - if num == 0 then - return - end - - -- are we spawning a registered mob? - if not mobs.spawning_mobs[mob] then - --print ("--- mob doesn't exist", mob) - return - end - - -- check objects inside 9x9 area around spawner - local objs = minetest.get_objects_inside_radius(pos, 9) - local count = 0 - local ent = nil - - -- count mob objects of same type in area - for k, obj in ipairs(objs) do - - ent = obj:get_luaentity() - - if ent and ent.name and ent.name == mob then - count = count + 1 - end - end - - -- is there too many of same type? - if count >= num then - return - end - - -- spawn mob if player detected and in range - if pla > 0 then - - local in_range = 0 - local objs = minetest.get_objects_inside_radius(pos, pla) - - for _,oir in pairs(objs) do - - if oir:is_player() then - - in_range = 1 - - break - end - end - - -- player not found - if in_range == 0 then - return - end - end - - -- find air blocks within 5 nodes of spawner - local air = minetest.find_nodes_in_area( - {x = pos.x - 5, y = pos.y + yof, z = pos.z - 5}, - {x = pos.x + 5, y = pos.y + yof, z = pos.z + 5}, - {"air"}) - - -- spawn in random air block - if air and #air > 0 then - - local pos2 = air[math.random(#air)] - local lig = minetest.get_node_light(pos2) or 0 - - pos2.y = pos2.y + 0.5 - - -- only if light levels are within range - if lig >= mlig and lig <= xlig - and minetest.registered_entities[mob] then - minetest.add_entity(pos2, mob) - end - end - end -}) -- 2.40.1 From 1a8dff0b12765f44d81db94564f9781856b9043e Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:34:20 -0500 Subject: [PATCH 241/321] Delete default_punch.ogg --- mods/mobs_redo/sounds/default_punch.ogg | Bin 5946 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/sounds/default_punch.ogg diff --git a/mods/mobs_redo/sounds/default_punch.ogg b/mods/mobs_redo/sounds/default_punch.ogg deleted file mode 100644 index 28a500bf5759c8bb16ea780d100c8bbf1a7a2609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5946 zcmahMc|6nq`$O);oS{{e#Y7ofSyHHlA&fa&x#q|bX6aI5Bv;Z*))KO!9IYIwNaenA zWFsNT72Rd^)$x089lziAuix`}@3ZIgobUJZexCRH`8WgyIzyt+Z`c;6qAftfo{Dve ztP(kRAj&tGA|QzDEEW7gP@IW~@c*`mgFy2y2s8zpTPgDE<;;Hm51d@`%Zvfwx(7!D zZE%PR)C>*wbrl-dw9zy&L>Z#M(A0JI3-X}`ki)5gf#hhUz_y6^FXc6sJ6uH|a|qI= zsOjxuQ&ed%4NFJ$3Akl<$h^9xokBd^$j+++LCMrA%C}7R(mmOeNrVInrz{RB(^4#? zv}g!3_pAgRGk_&y0WDZSgIWH0;IKh}Yaz9gHeqNYn=one1x~|Z-C=+>qe+vuyv}_RQhefdlO%E%znx={NSAjAiD8EoQrBGJ}rg2jSYK0(}xs!5B zB)sh`yp022Dz(f*90UWB0&>Cb^4lq$4%id5~^E6kfW0c-i zsOJwsQu!t+Z1)s)P|9?2h7>KSR1}JXATi(uy~BB{6@BMp7b34ZZ1{hM7lW)WR0lDH z^#uo%NF*CBQI`Y|hb~uxnUIj4mvfvD+ zEeBxMwTB58Yy~umz?AUus%aL^QWCrt*VQsE^fUp?p?P+c1^X)^loJLStk)ctlR7Bq*g~*O1;B|flTof{w(n?e&SpRwWCTk_B zMYSWZ=EvjpN{S29j5_phbqXI_=1XtMnaZLXVLR5BH4>b|FkJVLH`r-rLZz!`NLdvD zk7UycGQ#+2g4kP1sQYI+2`u|2Bd@ZeWb}%Eg;P_oH4xy^1tIf{ILSUNf8W# zej`l3Gmc0l^B7c*npm&FL=r!C1dK0KA9n`X<6q;~(m{o5f@J@-5M;9&r4u`&O^5wi zCfHCYLfJ}~Z#FlzZTqyl`t%(>q8*gXoRo3>XkxDl$!T+#(vV}yBC zQ-^cN!~EE>{~07n;Sv=gXiL^wWY!vF)`UrhwvBmEs~%)7A*jfd7rGe}CRy4xS%~1Q zz{8BI)rENvf#t{G_jBcE)AiD5JC~aJnen%hr*BX13%s@chqJJG4zc&DaWZP~icl5&T z6%hjj1ERCR00B4PO#FXf-;cIe0)dql6l{+trL!z2!(yg1r&YHopSK%3RmAJmjb}~6 zP=4oI2&f&h%?t|~T^s~W3~~Z>g=$4L!lSxvUTNdHv3e`n%~-3F%TJu}oGYHDcy_f* z$OH?#w(GJzZLhCnyM$ch03}Eg{FWB`0J{w(-9}OblXQ_+!$3ZY1=y?R({v6s~8DX!4 zb5JJnlyC#t=q@zI$%SaIY(L;a^iZ`YG7$F0_V&s|XC)j_h3L$%CsvUkqr-+=h$E`R zfoihXLaZBuI$~@;BzOf}DtIMThmGX?HAUpP5QjGbF2*UEp8kj zznx%013R6F_HI>S&eSk3B^*zMIKaR;Q-PJ(eN^%gZ)YzRN6aP*TxOF=F=V$Ipb|zr z7&{hCBIQs??g3u>#C|H3luaIUBYW`4q!uo9jBnRpZOz<#MCu5gv=68)58t=>X?^(CiZH+7Z8s~{%39Um&?gOVx>Ij|o;otK zV#oOABy@je7_c`IP1=`39SNGdIHN;o%Q8g??y%^Z38tg0f!(_JKZITNu^TI3o%HI z#@b%=0}DFjPoNg{!es+N$6U5B9T#_JZa9r3mWG_EC*lSuFk zEgN8ZrebJ)p1SNRM|^4tTf-{^vn$P_m31x)tHY)X8J$?YiwWQe1qYp{KC;OjtAj|$ zz)Nbev+#BZw%QIoPBz^aFa|wCYn#qfblFW=_)rAf-OCPJtwzZZIM)$6XIBvjA=wlH zFh!Qb>j6`EJPOPTn3A)^15?g;Fe~5n$N_i!ehx5Yi{d&GQUSvjj{>H`Ig?zAAcG=B zKV3w#s$Y3omBtR_FXscQer0t6=ZNMke7eASdM!8(cXKA0o~5--gCSwHpP7`Nk}6MU zyIR4lYQ;S$Z|V|yz{;B(@o8mMo?dC#Q@@?3Q~^^VoCUxDrfl(;YPFCI%mUN%I$(tC z=S(pvZ&6c&&LNl@wGiOL6PTLf`hiAii5xf{*3nObx)&AHy_gmrB~f6JjG8V&OQEJ% z^c2*zW)T531*Z{=rZwqV1OY~nVHaf)LJH^v!u~Q)_o9NjUx7xbN`kUQK$$X-cLcoS z!&WCWap<6a+sB=~Xi!-zg%nVIVI99HRO*OOhDarm_&c32Ab~-Gn*l9A@mPrMcM(#m z6ZfHsZh*odkGYcsGSyTsHP-4JMw zfU)U{e|xk4c4_~@#Gx+^CeWAdgZW5~iFtw6dXYF_v_Xx1K1z0rG!m1Bl_;RoL8N@r zP*UuoC!V(16d2y7q-xN&l$GE}z?U^?_<@|_dX{pyOjD4zsv)J=K{!6xpxK?$UB}NP zgrK;dl(%&`T;Ed6^s@xm!%Ahp^4f*xN8ci=Jwv+8zG%`MIRl=QcY|YvE(Af&PNW@=^O@rZe1#%#^ zFiY_G9pyi?tiLn@;SUXL)o(dE!3MOTa1)TKY8E=`L{*>5(#u!H3G>$+f|MIwoljr1 z=tKpUXi1@pODyroB-D;}%_~S}8LdPuN{W_fL6fU(6S&x6VvrOFfuXsh;Sxwz4z^9w zLdQI!5_Gqg{z=woeX&!L*^mNC1=3!p`%=_Au?hFINjzHpdHjYqTVR&3cv#~LNXEM1 zf%N9B?~`<%Jr}!JNRSkMm4MxshoBa5m_jdnS5mWt)u|RqYtRh?XoVUip$09{ojcK| z&K7VU^p3w5Q3OrOZx9m`6Jj6_Au%!Gr;XUAuwP8Ur;ULAmR4(_t?6~!0Kmp|2J4@+ z*3{grENQq_v{K|>K(p@m+w=2zrG&C5G*{Woj)^ogzO`S)_2ShBW-sp7i~N)QEp}nE zy~ql8!)7%}>5&-i_P!6PyEbpUetmhXspu;2-0zXD;&%BWP_;?yW5md&HM;RC5JZJNhvlwo zZnfNbV{?)CsYhA`ZG~Qp9eZBwnTW*BJ*u&;5@0ml#>iBlyZ%&Zpa-aP;ak=*Km7bqQYu|~d zk&|0qEh&NqktbK1P2Tw6XmDV%V{T%;OtbCLoZqFxs-BH`u6A_Ol2x_xP#RfY^6O$w zyfwNKZGCj*aFYL8wns%y&vv&@ZY%|)f4PcqLh%ocSH zre&|M&vTyORjV{tuf7^yyJkIk8!ZHLp1;jp1De6cy+F)GVIS>$b0os_6U+bD(XFpA zUa9f)JEX-QF&%fG#7iCvdEfO_{<$c0M9%wQ+y0Q_6@w?v=XlmsCZYx|>|MMNXdHRY z70t655>e3z%^NLG6pb5?S)8kQkOy}L4fg}Tq% z?HP-oZk&ImybBs-hUX~uiNI6iR3L9j0}=YF)V^~x^T!YjUi1Bg`)ur4W7Sjt)Fo+B zFqbld#_DfKrPPEkY%(ReRx7-GS)8}}z&SI<9y>kpY>EuxO3~zTZxthlyU>^GX7^q` zVL587R>{5)yKRF;-8RY2cBC${KzH0twjjE7l4TrKzHSc@CzrC*^m}y1`M2JK;aRq? zs<)=0P;Lf35rf%Dnvo5oqi)^T3UZH2SETl2BTXKT2Egof`nL|Bl| zX-m?YI~yJy#mKvfl2g{^YSe z@}q=|HTS|K$4j2*-qskgOJ&BXu0Q<&e*eMu?nUeSOCP-;#C&cw;WRXzcE7avbI8;s zYfx)8r&CkI@)t(shHVzZGwQp`cp^8hFjSkwpuMNN%lcRYr_XczpT&)gel$0Ag&O`*@Zqt1Tl3n}L&So~K z*L;n;R^wggu{F=cA$J*KW#RRb`ezKa$h=*oc+rPIEn|!P-q(Tx(5)EcCo@>a0uGY`W(G`Tlgv zHs?$CP2o9LEcLYQuDAw-$j!~|QAFd7&F8#CBWWz}7rmUm6N==oa$}vhm2=Shx(@o^ z_59&c_2SUx{NhxXjj^IfUX1dkrPq>TscWW3TYcBhjVnI#o`b#6X)q<-GBA+rx_j;O zJn?avavpd58!dx=5TEUHZrfzim?^#Og1(~SLyl;D&Zna?3w^EU$H!7-x!o71x>sEs z-XdaVoNizv+EMbgVjdOGL^*uj*0`Rp^Fg~gHULr9{n=nQo0~$$)z=`x4+qe+o<0cd zf-h}yNR0iQyFOFTZ_VP6oTSIcX-nw@&DHNM%DJ*;#GEtoPjfnz^zVO^>XARp%f-~I zR2(yGd5wLu(xzAEd+S4`jk6oN_^w79y_oc`#Jhgvn3n$VY zc51*tHKi$NB>YU!nEnoWW%jkx_Mv7J#^gM+Hde!l!@Kwf*Qk-B*nWobY*oeaWXzV_ zQfzy`ltSoY#6^dd)y^L>{HI-u%^g=-70aQ~?9d$Sd9kJ&&qvlyV+|i` zO|Md)i$05xSi(36FKJ};^SBfB6Q5h|rZ Date: Wed, 18 Dec 2019 10:34:27 -0500 Subject: [PATCH 242/321] Delete license.txt --- mods/mobs_redo/sounds/license.txt | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 mods/mobs_redo/sounds/license.txt diff --git a/mods/mobs_redo/sounds/license.txt b/mods/mobs_redo/sounds/license.txt deleted file mode 100644 index 3b160fe2..00000000 --- a/mods/mobs_redo/sounds/license.txt +++ /dev/null @@ -1,7 +0,0 @@ -Creative Commons sounds from Freesound.org - -mobs_swing.ogg by qubodup - - http://freesound.org/people/qubodup/sounds/60012/ - -mobs_spell.ogg by littlerobotsoundfactory - - http://freesound.org/people/LittleRobotSoundFactory/sounds/270396/ -- 2.40.1 From 37d950a88efe4b344c709ed689265924d89ff28b Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:34:38 -0500 Subject: [PATCH 243/321] Delete mobs_spell.ogg --- mods/mobs_redo/sounds/mobs_spell.ogg | Bin 15205 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/sounds/mobs_spell.ogg diff --git a/mods/mobs_redo/sounds/mobs_spell.ogg b/mods/mobs_redo/sounds/mobs_spell.ogg deleted file mode 100644 index 455b54f58a8478d90484bb566918040c178f2e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15205 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 Date: Wed, 18 Dec 2019 10:34:44 -0500 Subject: [PATCH 244/321] Delete mobs_swing.ogg --- mods/mobs_redo/sounds/mobs_swing.ogg | Bin 6895 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/sounds/mobs_swing.ogg diff --git a/mods/mobs_redo/sounds/mobs_swing.ogg b/mods/mobs_redo/sounds/mobs_swing.ogg deleted file mode 100644 index ffe6a9ce1407fcb1a9bc34a194be7a230183ad35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6895 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 q_rlfhT4(FDGv+6T(tLS3{&=iPU+J3hm^ Date: Wed, 18 Dec 2019 10:34:53 -0500 Subject: [PATCH 245/321] Delete mob_spawner.png --- mods/mobs_redo/textures/mob_spawner.png | Bin 108 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mob_spawner.png diff --git a/mods/mobs_redo/textures/mob_spawner.png b/mods/mobs_redo/textures/mob_spawner.png deleted file mode 100644 index 8f0ac39b711f0b8919b945696cc73b4015f8329f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E09+5%h?i;vJ=Q+ED7=p zW^j0RBMrzA@pN$v;kcgszopr0BYSC AegFUf -- 2.40.1 From dbd32d490477fd08dd3dcc2758047716d374950a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:35:00 -0500 Subject: [PATCH 246/321] Delete mobs_blood.png --- mods/mobs_redo/textures/mobs_blood.png | Bin 267 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_blood.png diff --git a/mods/mobs_redo/textures/mobs_blood.png b/mods/mobs_redo/textures/mobs_blood.png deleted file mode 100644 index 77cfbdaa665922472018ffd016e7a47c974e6bf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4&HECyrsn$JLrv%n*= zn1O*?7=#%aX3dcR3bL1Y`ns~;V-*l#XF68-IUFb?S>hT|;+&tGo0?a`;9QiNSdyBe zP@Y+mq2TW68xY>eCk|9p?CIhdVsU!wWN*F(0}fVpzOeIp;)i?nt~kXd=NwvPBT@I^ z`)$SD_5YRF3_|ya?$bSJv37BxYPI+g?T<4qoM6#^erD3SrIE87pG`RweterrYcywC zi% -- 2.40.1 From 000e1b8bf50f927e0dea7bd76d559207b22138ec Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:35:08 -0500 Subject: [PATCH 247/321] Delete mobs_chicken_egg.png --- mods/mobs_redo/textures/mobs_chicken_egg.png | Bin 235 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_chicken_egg.png diff --git a/mods/mobs_redo/textures/mobs_chicken_egg.png b/mods/mobs_redo/textures/mobs_chicken_egg.png deleted file mode 100644 index be8a4e1cf58a4b72abec094ddfb36cef4f2e914a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5o?Y8+9EttD(#nNp%w(dW;@5HI&7cQN@a_#c1J2&s%zw_wH!{;xbwJ=ZW1Zrn23GxeO zaCmkj4aiCJba4!kxIDMdQ>ev&gMqV0O^5N{|0qk9#c@xs`HHh1c&=EZ?5kF_VQ2dX z*}pc%Z^crMCjK!u>0bUy?8(HJs}9MAKM+(ia?5|+5~^^jmQ%rW?cd66wIv4P^41Iv iGVWjBeze}!E53Xi^Py?0mhA@G$l&Sf=d#Wzp$PyGxL^_h -- 2.40.1 From 4cea5c493f5c1977b0f89866590deac56909092a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:35:15 -0500 Subject: [PATCH 248/321] Delete mobs_chicken_egg_overlay.png --- .../textures/mobs_chicken_egg_overlay.png | Bin 191 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_chicken_egg_overlay.png diff --git a/mods/mobs_redo/textures/mobs_chicken_egg_overlay.png b/mods/mobs_redo/textures/mobs_chicken_egg_overlay.png deleted file mode 100644 index e81716a5964b14a0e5c309df5842a36679ecff97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E0F&G|NqjP^X~##j3q&S z!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|U1(2s1Lwnj--eWH0gbb!C6R%q*rWdxfd@ z1yIPy)5S4_<9c#J1LH9^wr?zKb Date: Wed, 18 Dec 2019 10:35:23 -0500 Subject: [PATCH 249/321] Delete mobs_leather.png --- mods/mobs_redo/textures/mobs_leather.png | Bin 196 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_leather.png diff --git a/mods/mobs_redo/textures/mobs_leather.png b/mods/mobs_redo/textures/mobs_leather.png deleted file mode 100644 index 3205e5d63019297d727a5758ae0a07c36e5296c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZWnd6gQ&KQ9)brMt&vDVI z^EYY>F;n~&J`1RTu_VYZn8D%MjWi%9*3-o?gyVX0f&)Xc#9Px3blo()qRMfG!R$5q6 oNomWAq=2A+(1u&5j~rlNxTec@{eZvcT%bh^p00i_>zopr04TRP?f?J) -- 2.40.1 From 73f3e0c161352c8ecc41d03e9ef2c903cb673b3e Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:35:30 -0500 Subject: [PATCH 250/321] Delete mobs_magic_lasso.png --- mods/mobs_redo/textures/mobs_magic_lasso.png | Bin 176 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_magic_lasso.png diff --git a/mods/mobs_redo/textures/mobs_magic_lasso.png b/mods/mobs_redo/textures/mobs_magic_lasso.png deleted file mode 100644 index befdc1120684c7281b1edb8129b302e9beb402b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b6=Yxt^*32FFY4T(w)@vs zl%$(^0;L#Bg8YIR9G=}s19JR5T^vI=u7~zs Date: Wed, 18 Dec 2019 10:35:38 -0500 Subject: [PATCH 251/321] Delete mobs_meat.png --- mods/mobs_redo/textures/mobs_meat.png | Bin 411 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_meat.png diff --git a/mods/mobs_redo/textures/mobs_meat.png b/mods/mobs_redo/textures/mobs_meat.png deleted file mode 100644 index 4c63fdd1647ef5e9df866795f972824003841a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfaiF4ao-U3d7N?g^vdubdAacB(E6(QR4TXEx zF3u`ia7TIh3qvMb2mT4lB^n}c3}^mM5hQPNZ2d{j?b$^|R^^`s``T-BW~*s_Ph^k?jTf@q@XleX_U!(d zpRd@|Zl2A&s!G1?iq6}AB6~a*yo!|BkbKYbgOcN0+vUaXZ*7(MqNi+ru+{L@!kfR; xcc<9y}xJr}&S1jg>4r#17hce+c-?XfU(#Xu8o%U0?_>c)I$ztaD0e0svFmpH=_> -- 2.40.1 From 5c70bb01ad787b52b2b4fb2086ea5f72ac98b895 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:35:44 -0500 Subject: [PATCH 252/321] Delete mobs_meat_raw.png --- mods/mobs_redo/textures/mobs_meat_raw.png | Bin 426 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_meat_raw.png diff --git a/mods/mobs_redo/textures/mobs_meat_raw.png b/mods/mobs_redo/textures/mobs_meat_raw.png deleted file mode 100644 index 0dea4ec5404cccc8820d90a5d3e1513b150d6056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBkF8NoF4Dim2{~Kq1Kz*N775{M_8s zyb=cIqSVBa)D(sC%#sWRcTeAd@J2pypjE7%E{-7kqh6PFiLxlUdNbJa48$*Oi5{r(a(v5$LiYP)9NG@bmxw?^k=dL`2Um z7D`(3L9XHYs-Ty*(|Bvn7jqg0W$_-^y6)wi$>%H?Ph7j=z4qj}=kXQ0mwuQRa9!ly zV+NO$Z<%YS9+UWKBa`yyo`mvtfhC4+QQ4}|!Ou&Sj&L~ayU+aLqIF^D(kn57*3X|* zZ-2bB{l4CGMxU(=1+mM;WL2Inv0!UI8}o0kIGf3TAIE5{BIN89Ry&ac@UkDfQywAE(< Ph8lyXtDnm{r-UW|E48P= -- 2.40.1 From 1a25588538d8db7c9b2b9acbe3730a155710b6c9 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:35:54 -0500 Subject: [PATCH 253/321] Delete mobs_nametag.png --- mods/mobs_redo/textures/mobs_nametag.png | Bin 247 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_nametag.png diff --git a/mods/mobs_redo/textures/mobs_nametag.png b/mods/mobs_redo/textures/mobs_nametag.png deleted file mode 100644 index 74005b3a25a37186a5e2f69cd6cc11f38f206a7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmVkf0oG*>Bzpoo zX%)nulCl`QF0%k^u}u-YR(8+d1{$=K$KXk;psEi8h_^^@uz$K?1dwkn`~@fN!5$nH x#9$|ww303PCpZ}5q!ryT`V*Iw9halu`2mf%NGNDlp0@x1002ovPDHLkV1h%cUM>It -- 2.40.1 From 779aab15ec2f4d86f27b29663c0a874435cd536d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:36:42 -0500 Subject: [PATCH 254/321] Delete mobs_net.png --- mods/mobs_redo/textures/mobs_net.png | Bin 195 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_net.png diff --git a/mods/mobs_redo/textures/mobs_net.png b/mods/mobs_redo/textures/mobs_net.png deleted file mode 100644 index df7c3a61f531d9fb3b5a2a8bfd72c2f7a3e3c69f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZWnj=u6yxxy(FqQ=Q1v5B2yO9Ru#CW{FIq2sZu;qT;#_8q@+w>6|b p{>-jn*&9=KMziu6f5Dzg<{~zJ50m?<|AF=}c)I$ztaD0e0sw}5K|cTh -- 2.40.1 From 2baad933e777800579f4cb39100ee22398791f21 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:36:49 -0500 Subject: [PATCH 255/321] Delete mobs_noentry_particle.png --- mods/mobs_redo/textures/mobs_noentry_particle.png | Bin 165 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_noentry_particle.png diff --git a/mods/mobs_redo/textures/mobs_noentry_particle.png b/mods/mobs_redo/textures/mobs_noentry_particle.png deleted file mode 100644 index 87938ff444bea88add05585ec1a9581c6cb37134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_%$6*}}^6_yrY|70Q8v zj3q&S!3+-1ZlnP@UY;(FAsp9L&n#qYFyLW0xL!e8VOFLU6BF~SuC!S^f-c*ZG+2J; zf6aGvlj8T6EA$&#o9Bh-Web1pJhCKZX)^ob%tf=0%&%=O|H|;KROr@hv-{tGrZRZC L`njxgN@xNAOJ+1n -- 2.40.1 From 8e6aaf7bc3c412d62fb8315fd13b898f5da9fcbe Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:36:58 -0500 Subject: [PATCH 256/321] Delete mobs_protect_particle.png --- mods/mobs_redo/textures/mobs_protect_particle.png | Bin 117 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_protect_particle.png diff --git a/mods/mobs_redo/textures/mobs_protect_particle.png b/mods/mobs_redo/textures/mobs_protect_particle.png deleted file mode 100644 index debe20cb1a8aef3a014bed8f12168abbaa72c48f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CN$P6S4_x+OrQfvV}A+A9B|Ns9>Z_d99WHFWm z`2{mLJiCzw Date: Wed, 18 Dec 2019 10:37:05 -0500 Subject: [PATCH 257/321] Delete mobs_protector.png --- mods/mobs_redo/textures/mobs_protector.png | Bin 164 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_protector.png diff --git a/mods/mobs_redo/textures/mobs_protector.png b/mods/mobs_redo/textures/mobs_protector.png deleted file mode 100644 index f3937b70e14dee1c2f768ae287713f4a8802d185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bO)b$iFwzf;2yJg_e0bff zLjIZ>P>Qi6$S;_|;n|HeAjjF$#W95AdUApTLs~K;NA8j(9BGEymYSM}B)k+9l~u(h z4xi*ak`NYD6x3)qWsXRqQkQ{gSH>;{o|cnMO-)Q5c?=9cFLJ$DmQ+{;G>*a3)z4*} HQ$iB}$7V2G -- 2.40.1 From 43a1f59bb11feb249fad67722d6cfb74fdbb71e3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:37:11 -0500 Subject: [PATCH 258/321] Delete mobs_saddle.png --- mods/mobs_redo/textures/mobs_saddle.png | Bin 166 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_saddle.png diff --git a/mods/mobs_redo/textures/mobs_saddle.png b/mods/mobs_redo/textures/mobs_saddle.png deleted file mode 100644 index e9d42f82e3fa7d2e840f74430bf6d6fa6d8e022e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=41Qdfxi-b^b;>c+ Date: Wed, 18 Dec 2019 10:37:18 -0500 Subject: [PATCH 259/321] Delete mobs_shears.png --- mods/mobs_redo/textures/mobs_shears.png | Bin 224 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/mobs_shears.png diff --git a/mods/mobs_redo/textures/mobs_shears.png b/mods/mobs_redo/textures/mobs_shears.png deleted file mode 100644 index aa16f2ecb7669819952028204beead64104f8102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5ptnzXorqMW6QfQgMo zkcDKfr%+IISWam{X39^ToS5nGi|=UbV0dp*0INP zuFe+i_*k%)OOWlB*S15}RWmJAqcd7L4kf(5nzopr0AoZ@-v9sr -- 2.40.1 From 06f34acd2a9b6f87e0f287b9786109f5b893c1dc Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:37:24 -0500 Subject: [PATCH 260/321] Delete tnt_smoke.png --- mods/mobs_redo/textures/tnt_smoke.png | Bin 202 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_redo/textures/tnt_smoke.png diff --git a/mods/mobs_redo/textures/tnt_smoke.png b/mods/mobs_redo/textures/tnt_smoke.png deleted file mode 100644 index 488b50fe958d33fa4cd50fa383a4685db045def5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^Fw4`$F~s6@a>4>ti^@+=>QiQE7$hEQ`G3RY@DXvHh=$u6+S=Ge zd|6pp|9|XU+`ubsmaui^1PiVPOaAGbFCN{bP0l+XkK@H9k* -- 2.40.1 From c0961ceb5f549b41602453860639bb9ad18675ae Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:38:11 -0500 Subject: [PATCH 261/321] Delete depends.txt --- mods/monsters/depends.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 mods/monsters/depends.txt diff --git a/mods/monsters/depends.txt b/mods/monsters/depends.txt deleted file mode 100644 index cc033980..00000000 --- a/mods/monsters/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -mobs -- 2.40.1 From 2d22d5eb0dad94a4c7f5d00637c4add7e2f15108 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:44:05 -0500 Subject: [PATCH 262/321] Add files via upload --- mods/depends.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 mods/depends.txt diff --git a/mods/depends.txt b/mods/depends.txt new file mode 100644 index 00000000..d0aea36f --- /dev/null +++ b/mods/depends.txt @@ -0,0 +1,5 @@ +default +mobs +intllib? +lucky_block? +toolranks? -- 2.40.1 From 5fb239732235c21658cd809be58519637dd9ae30 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:45:11 -0500 Subject: [PATCH 263/321] Rename mods/depends.txt to mods/mobs_monster/depends.txt --- mods/{ => mobs_monster}/depends.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mods/{ => mobs_monster}/depends.txt (100%) diff --git a/mods/depends.txt b/mods/mobs_monster/depends.txt similarity index 100% rename from mods/depends.txt rename to mods/mobs_monster/depends.txt -- 2.40.1 From f8823aae43eb3927d310e319b962804d6cdd86fb Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:46:58 -0500 Subject: [PATCH 264/321] Add files via upload --- mods/mobs_monster/description.txt | 1 + mods/mobs_monster/init.lua | 33 ++++++++ mods/mobs_monster/license.txt | 32 +++++++ mods/mobs_monster/lucky_block.lua | 42 +++++++++ mods/mobs_monster/mod.conf | 1 + mods/mobs_monster/readme.md | 40 +++++++++ mods/mobs_monster/sand_monster.lua | 131 +++++++++++++++++++++++++++++ 7 files changed, 280 insertions(+) create mode 100644 mods/mobs_monster/description.txt create mode 100644 mods/mobs_monster/init.lua create mode 100644 mods/mobs_monster/license.txt create mode 100644 mods/mobs_monster/lucky_block.lua create mode 100644 mods/mobs_monster/mod.conf create mode 100644 mods/mobs_monster/readme.md create mode 100644 mods/mobs_monster/sand_monster.lua diff --git a/mods/mobs_monster/description.txt b/mods/mobs_monster/description.txt new file mode 100644 index 00000000..ac3d8870 --- /dev/null +++ b/mods/mobs_monster/description.txt @@ -0,0 +1 @@ +Adds many types of monster. diff --git a/mods/mobs_monster/init.lua b/mods/mobs_monster/init.lua new file mode 100644 index 00000000..6def31f0 --- /dev/null +++ b/mods/mobs_monster/init.lua @@ -0,0 +1,33 @@ + +local path = minetest.get_modpath("mobs_monster") + +-- Intllib +local S +if minetest.global_exists("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + S = intllib.make_gettext_pair() + else + -- Old method using text files. + S = intllib.Getter() + end +else + S = function(s) return s end +end +mobs.intllib = S + +-- Monsters + +dofile(path .. "/dirt_monster.lua") -- PilzAdam +dofile(path .. "/dungeon_master.lua") +dofile(path .. "/oerkki.lua") +dofile(path .. "/sand_monster.lua") +dofile(path .. "/stone_monster.lua") +dofile(path .. "/tree_monster.lua") +dofile(path .. "/lava_flan.lua") -- Zeg9 +dofile(path .. "/mese_monster.lua") +dofile(path .. "/spider.lua") -- AspireMint + +dofile(path .. "/lucky_block.lua") + +print ("[MOD] Mobs Redo Monsters loaded") diff --git a/mods/mobs_monster/license.txt b/mods/mobs_monster/license.txt new file mode 100644 index 00000000..cb50163b --- /dev/null +++ b/mods/mobs_monster/license.txt @@ -0,0 +1,32 @@ +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +mobs.fireball.png was originally made by Sapier and edited by Benrob: + +-- Animals Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +-- (c) Sapier +-- Contact sapier a t gmx net diff --git a/mods/mobs_monster/lucky_block.lua b/mods/mobs_monster/lucky_block.lua new file mode 100644 index 00000000..c9aeceac --- /dev/null +++ b/mods/mobs_monster/lucky_block.lua @@ -0,0 +1,42 @@ + +if minetest.get_modpath("lucky_block") then + + local web = {name = "mobs:cobweb"} + local web_trap = { + size = {x = 3, y = 3, z = 3}, + data = { + web, web, web, + web, web, web, + web, web, web, + + web, web, web, + web, web, web, + web, web, web, + + web, web, web, + web, web, web, + web, web, web, + }, + } + + lucky_block:add_schematics({ + {"webtrap", web_trap, {x = 1, y = 0, z = 1}}, + }) + + lucky_block:add_blocks({ + {"sch", "webtrap", 1, true}, + {"spw", "mobs:dungeon_master", 1, nil, nil, 3, "Billy"}, + {"spw", "mobs:sand_monster", 3}, + {"spw", "mobs:stone_monster", 3, nil, nil, 3, "Bob"}, + {"spw", "mobs:dirt_monster", 3}, + {"spw", "mobs:tree_monster", 3}, + {"spw", "mobs:oerkki", 3}, + {"exp"}, + {"spw", "mobs:spider", 5}, + {"spw", "mobs:mese_monster", 2}, + {"spw", "mobs:lava_flan", 3}, + {"nod", "default:chest", 0, { + {name = "mobs:lava_orb", max = 1}}}, + }) + +end diff --git a/mods/mobs_monster/mod.conf b/mods/mobs_monster/mod.conf new file mode 100644 index 00000000..3c4fe390 --- /dev/null +++ b/mods/mobs_monster/mod.conf @@ -0,0 +1 @@ +name = mobs_monster diff --git a/mods/mobs_monster/readme.md b/mods/mobs_monster/readme.md new file mode 100644 index 00000000..8a02c17a --- /dev/null +++ b/mods/mobs_monster/readme.md @@ -0,0 +1,40 @@ + +MONSTER MOBS + +Dirt Monster + +- Spawning at night on green grass (or grey in ethereal) these mobs wander around looking for a player to eat. Drops 1-5 dirt when killed. + +Dungeon Master + +- Spawning below -70 underground DM's have a tendency to hurl fire balls at unsuspecting players and can cause major damage, but get too close and he will switch to dogfight attack. Can drop mese or diamond when killed. + +Lava Flan + +- Cute as they may look lava flan wallow in their namesake (no, not flans) and get curious about players who wander by, forgetting that they can burn you and cause damage. They have a 1 in 5 chance of dropping lava orb when killed. + +Mese Monster + +- These mobs are territorial and spawn below -20 and will fire mese shards at passers by, so best avoided. Will drop mese when killed. + +Oerkki + +- Found in dark areas like most monsters Oerkki wander the caverns stealing away torches on the ground and attacking anyone found in that area. 1 in 3 chance of dropping obsidian. + +Sand Monster + +- The hot deserts are home to these guys who spawn at any time of the day to attack players. They drop 3-5 desert sand when killed. + +Spiders + +- Snowy spiders are found on higher cold areas, Tarantula's in higher jungle, Cave spider below -20 and Mese spider near areas containing the ore and Crystal spiders only in Ethereal's crystal biomes. Some are docile during the daytime and will drop string when killed. + +Stone Monster + +- Found underground in dark caves these mobs seem to be zombie-like in fashion with a tendency to rush a player in the area. can drop torch, iron or coal when killed. + +Tree Monster + +- Found atop tree's at night time they drop down and look for food in the form of players and animals. Can drop saplings and sometimes an apple or three. + +Lucky Blocks: 11 diff --git a/mods/mobs_monster/sand_monster.lua b/mods/mobs_monster/sand_monster.lua new file mode 100644 index 00000000..e3ae0f21 --- /dev/null +++ b/mods/mobs_monster/sand_monster.lua @@ -0,0 +1,131 @@ + +local S = mobs.intllib + + +-- custom particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = -20, y = gravity, z = 15}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow, + }) +end + + +-- Sand Monster by PilzAdam + +mobs:register_mob("mobs_monster:sand_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + pathfinding = true, + --specific_attack = {"player", "mobs_npc:npc"}, + reach = 2, + damage = 1, + hp_min = 4, + hp_max = 20, + armor = 100, + collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4}, + visual = "mesh", + mesh = "mobs_sand_monster.b3d", + textures = { + {"mobs_sand_monster.png"}, + }, + blood_texture = "default_desert_sand.png", + makes_footstep_sound = true, + sounds = { + random = "mobs_sandmonster", + }, + walk_velocity = 1.5, + run_velocity = 4, + view_range = 8, --15 + jump = true, + floats = 0, + drops = { + {name = "default:desert_sand", chance = 1, min = 3, max = 5}, + }, + water_damage = 3, + lava_damage = 4, + light_damage = 0, + fear_height = 4, + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 39, + walk_start = 41, + walk_end = 72, + run_start = 74, + run_end = 105, + punch_start = 74, + punch_end = 105, + }, + immune_to = { + {"default:shovel_wood", 3}, -- shovels deal more damage to sand monster + {"default:shovel_stone", 3}, + {"default:shovel_bronze", 4}, + {"default:shovel_steel", 4}, + {"default:shovel_mese", 5}, + {"default:shovel_diamond", 7}, + }, +--[[ + custom_attack = function(self, p) + local pos = self.object:get_pos() + minetest.add_item(pos, "default:sand") + end, +]] + on_die = function(self, pos) + pos.y = pos.y + 0.5 + effect(pos, 30, "mobs_sand_particles.png", 0.1, 2, 3, 5) + pos.y = pos.y + 0.25 + effect(pos, 30, "mobs_sand_particles.png", 0.1, 2, 3, 5) + end, +--[[ + on_rightclick = function(self, clicker) + + local tool = clicker:get_wielded_item() + local name = clicker:get_player_name() + + if tool:get_name() == "default:sand" then + + self.owner = name + self.type = "npc" + + mobs:force_capture(self, clicker) + end + end, +]] +}) + + +mobs:spawn({ + name = "mobs_monster:sand_monster", + nodes = {"default:desert_sand"}, + chance = 7000, + active_object_count = 2, + min_height = 0, +}) + + +mobs:register_egg("mobs_monster:sand_monster", S("Sand Monster"), "default_desert_sand.png", 1) + + +mobs:alias_mob("mobs:sand_monster", "mobs_monster:sand_monster") -- compatibility -- 2.40.1 From 4cb8ae329838630cd8bd3f98ab5a3b376207012f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:50:55 -0500 Subject: [PATCH 265/321] Create main --- mods/mobs_monster/models/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/mobs_monster/models/main diff --git a/mods/mobs_monster/models/main b/mods/mobs_monster/models/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/mobs_monster/models/main @@ -0,0 +1 @@ + -- 2.40.1 From 3b6811b933ce09c6a77b3ffa2684e5e2b83448b0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:51:24 -0500 Subject: [PATCH 266/321] Add files via upload --- mods/mobs_monster/models/mobs_sand_monster.b3d | Bin 0 -> 115989 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/models/mobs_sand_monster.b3d diff --git a/mods/mobs_monster/models/mobs_sand_monster.b3d b/mods/mobs_monster/models/mobs_sand_monster.b3d new file mode 100644 index 0000000000000000000000000000000000000000..97825044427502ca24fe1097a219a34ebbb1f988 GIT binary patch literal 115989 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

QR`i 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 Y1%Gf}lYN=Z+0gksiKZ3&x-$R%4=}7%^Z)<= literal 0 HcmV?d00001 -- 2.40.1 From 43fb06a146cc70a2c5b4b9cc2077adb95658da1f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:53:26 -0500 Subject: [PATCH 267/321] Delete main --- mods/mobs_monster/models/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs_monster/models/main diff --git a/mods/mobs_monster/models/main b/mods/mobs_monster/models/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/mobs_monster/models/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From dcb2349aaed827dcfb015131b39ccb066236e4b5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:04:39 -0500 Subject: [PATCH 268/321] Create main --- mods/mobs_monster/sounds/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/mobs_monster/sounds/main diff --git a/mods/mobs_monster/sounds/main b/mods/mobs_monster/sounds/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/mobs_monster/sounds/main @@ -0,0 +1 @@ + -- 2.40.1 From 7181771415b26760c5b98175bf4b1d4676621749 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:04:54 -0500 Subject: [PATCH 269/321] Add files via upload --- mods/mobs_monster/sounds/mobs_sand_monster.b3d | Bin 0 -> 115989 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/sounds/mobs_sand_monster.b3d diff --git a/mods/mobs_monster/sounds/mobs_sand_monster.b3d b/mods/mobs_monster/sounds/mobs_sand_monster.b3d new file mode 100644 index 0000000000000000000000000000000000000000..97825044427502ca24fe1097a219a34ebbb1f988 GIT binary patch literal 115989 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

QR`i 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 Y1%Gf}lYN=Z+0gksiKZ3&x-$R%4=}7%^Z)<= literal 0 HcmV?d00001 -- 2.40.1 From 3234f5742f33d467b0d7813a36f652571ad6bd02 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:05:07 -0500 Subject: [PATCH 270/321] Delete main --- mods/mobs_monster/sounds/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs_monster/sounds/main diff --git a/mods/mobs_monster/sounds/main b/mods/mobs_monster/sounds/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/mobs_monster/sounds/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 2015c1d53dae960f2517c23cf9588d5ed02554c1 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:05:41 -0500 Subject: [PATCH 271/321] Create main --- mods/mobs_monster/textures/main | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/mobs_monster/textures/main diff --git a/mods/mobs_monster/textures/main b/mods/mobs_monster/textures/main new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/mobs_monster/textures/main @@ -0,0 +1 @@ + -- 2.40.1 From c8c535e377b5a31dd57620757b8778612d2192ec Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:06:11 -0500 Subject: [PATCH 272/321] Add files via upload --- mods/mobs_monster/textures/mobs_sand_monster.png | Bin 0 -> 1655 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/textures/mobs_sand_monster.png diff --git a/mods/mobs_monster/textures/mobs_sand_monster.png b/mods/mobs_monster/textures/mobs_sand_monster.png new file mode 100644 index 0000000000000000000000000000000000000000..75fcc4ba3eb5b844d5a0ea4958524cadb8384f34 GIT binary patch literal 1655 zcmV--28j8IP)N2bPDNB8 zb~7$DE-^4L^m3s900MbXOjJbx002KW96>r9NI4@-J|zHDy#dWmiFGS3hT1L1cWF^~X;OGvH+Wze)xr|o2jaRykSGtr}x|CSEj#s;mS-X%~yOvtJnrFO@ zSG+PmRY`-R=$~7zno>jlUcx(T)>=U!I)janOee@Tf&xH!kJ#enp?w{UBjDQ z!<<^gmt4e}Tf~}P#g|*fmt4i0U&WkU#+hEmnqbD8UdNtY$Dd%xonXnFVac9h$)I1! zr(VjQU&@|f%Aa1!pI^$LV9KCm%bQ)xo?XnIV$7dl%%EV*qF~IUV$Ggi&7fk)vjaJu4L7&Yt^r1)vspNv1`_>WY(`_*05&QuxHk> zXxFZ1*RN^Uuw~bo;_dJ8%RRlxLtpNVYrOIwfHetx zNm{d75-*t==xFQo9*xF>y|?9^(ZnFHwX6Zwr0^waxg?2~Onsl17memU;)zD(+JK&l z^BQ3duqI9tBod<&_#PeicXZsCe=c;^NAx?2!mG|2U`>J~zy_ld{2bA)U;kCpYClWs zzJ_KGuT880)}(Ma37XG(kSwP`D!c~d(Tl$-YVs%c(BtO3?2IGiNCE{Wkx1+_Pp zE_teYUA0+)nyM%`xI5yf1{y2)`LVKCAYIcYL8HWuUC`F>VpUiE_B{?W)_sFm~g_ z*SkN`$wTN=e>BI4zeF)ywgCxh8T{1n&em_P{1?M5`*Z3zl=Si{Neq{5K!REZ+de-2 z%jrv3yC7#d+;Y1oY#ChWyLtXx-&br>Fj@1v#JlZm8nk0s28t3=F8}dYj1nRnQ08Vk zKfoY-^2ol!*NB13ukj7$W9$JPN&0NgH<$^62@Jh9Qd$kETGDch=C?YIx3Mt z7CQqxRxy5j#e|B2O)G0^UV5v5l9MAKm#5W0kGFbU$RLZI0V=2_6%rLpv~d0A&1(xL z0-D!v80bl(e;zW(VrPKgd?SChoVh12daXhf_PgxeDGv9;u>4Bh+cR%Ns^H} Date: Wed, 18 Dec 2019 11:06:39 -0500 Subject: [PATCH 273/321] Add files via upload --- mods/mobs_monster/sounds/mobs_sandmonster.ogg | Bin 0 -> 51456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/sounds/mobs_sandmonster.ogg diff --git a/mods/mobs_monster/sounds/mobs_sandmonster.ogg b/mods/mobs_monster/sounds/mobs_sandmonster.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2feae6ae0bf3795333c4df5d1d1493b8b2b6fa80 GIT binary patch literal 51456 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⩔q?J)m8Yc%M8`~u25 zzd#SZ^T!z;8kzh(HrhYgH#XGY+uzX!?dho9Xii27)$Q7y6i1n82@`s-tf0zLYPR6` zkuM=j_KqDy71Cm>8^U4V!K=We{z2k1*Kok9jmUD%aV%`3r-63m^ighFHOOC4P)nPScbm7ssuWj1EH-0k^_#;&fP2smaw3 z>eyZTQ8PKCHH09X83m{yWS7xmDwL#;9k{(+P-Tg{VmHHzed$?(i~ZW0*A812oj6OA z+yY@exUs<8tv?_$_bs-OOc-wf33RSp82^%<=$1HvBboD(kYZyY6pw zOp*6{&YI^6eD?U*2n4iyKC`!Hj9WEFRPeTMa0obq$cAixo<-~$+@sv-)f4`~=&ZzL zp$FWW+}T{Vc{zgLpGP;~N=o#_Hv#V1rV9q$fBV&~Cg=I@s7LUOTuBy&ms~q+j}!dNg){vhaAz@ zj~{fN+IRQ+-okG0)u1irFsjc#bLf%ViR_Z^)xYaGvs>e_Vv^F4l69#fjzD%U4{4U0 zLi7^%?dy`LS}>!>#h+trzRliPXEK->7y!$T4*mM7oBr9XhK+XkAmbnb2P}%UnbSmO zvxPFk{hSd3z!GV2$?4Fr+r|>GGs5WhuAh?pQ>UM!A686yO@X_Fcaz~qJ*hV9=)&L~ zYkUXyj)ZRb!>S%G{*e}DW<7%%)3RY|NsEh4pZYfx1D-1NYj@PT$9N zX>$8AIqQa#=X;T2Lso-uyj*E7tSTCaLl6O8l^!~3KC}AJ3V{t$%PS*&$YKZp72roW-3lRMDF>xsECy*@eO*0CshuW`8!#q`$iL= zx4GIeZEX|77<~iK)W`L^v)`&)P1|f9VvF4;D6$8jo_X&1Lp#j{K4Z9uKQ=DeXrN6@i_6{m%eSS=f z5}NMozKsZP3+~M>aXz3cNGusmSUjJ6*HwUs@}Lz+v*I{exJ}L%;vz6 zWUUrRmIknM?8tO?QWG`Ca+1#PN2skHtY4jn2>>v;WH9X0+R9JXHexbk(%li|ncpr>uLW`f5#(Usm*UEQ_7T12t>Is7#m$K1 zCNC+NhU<~c4x~ih<{FpL2G!n_c@KZwI?z0tXhh`5bggl`?Q6_?#EF9RDRTSdk(`tVDnjH$bgws2n{+X63;tW}!QO4Mm_lF<-2DE?-m3TInyx=?H(N*1{7Bdi-B}YA^)<&j{9$?*6>(J;31J*He=ww zh_W~i)-y<-L91xsiqQvLANgs3n2QqKi)z9uTxj3CIz9u0i*lpV0*~xLu%_zrTG#Ri z@O?XMk?7ze|2@l0w8Zs!2tK1tJDc1-h#aQC2!8;++qdcsxyg62k--xX`R*)z{-ULr~soDCMZ|dmOx~0R82S#ud>o^5S4*+6~F%nX?2(H5VHd zR1QNJH>f-SHGf0D+|z_BVK98VuhnX52rl{0$H6wtgbZ^*xr9=kcjj-D+1HqB|*z4+Qo0E{!1Cm^N@#!#VJMP}JZ=d*` z?mwz0ALCd2B8`c1--~7$X;KVHvsY24P@=d%mey~f&uiaiS&-mrc|qo~ zWMp;>F2)oHPmGT_eb@{&zRhrY7k(mw7?oThA}{pnSjY zCX81X3d2F+U<9NResUS;n(0~%EW;n9qn)tbH!M9xw(%GR(gNi})#RGj$5hV< z<^anPXjj5VHwe+*Q*j7NdB{-Yao~6Z2@RMB`H=tbE`mG%$d+F8;K!aL88sdh0IuFz z4v~VafKB^R7{QqT9IvKusXdC%_bAp*-{GiKAZ|_i4`->{Wfov{zAnrMVgBovQiYIn z{d{CiTgwmb9%q>Wd+!1PSpWT))N>wj?}yjPS$}!|2LtmVn*B)c56l21tXfPm%$S7u zBIKBjQ#2qJ%%EH6Nda!tLF+wLbxQVRQI`x0t%SM*ruHdl*LLS&%zE`AA(cuY=qxz> za7Pns6|0~aibjoi3Q}3mEG>_>K1B7~p8Cii`C$TcET5f!66$9h;MLcuu%&dP0K<)p zUNV`OZs^zVa-sI}Hf{?dP$494t7L5g{P8T4V((#Es^J|FYfO^Dvnyg@>gmeuakpMc zCi_SY6x^Q+sn&{D7J7c6CXM4AF!1-m8k|6LH#ryW6^1eHt<_`}2qhXtB12aqpH|?p zShLnxd10%AZkgwjie$Bw3GDNkDhyAnbGN=}bp=(pLPvITa`DMV-A8nl*lb`+F$`A44*G}yzXciL%!Pv$_kA(QhNrGma5T4sMj$Ac=!SN zNobGXj<7#V=BI(vt4x0R-aOUGCBs|C0nxAaZVDa-ORfNLnQ#>3FjQB-l)-z$@uoJtR5ZS+id;@rp_l|Y!&$3i>vkr9 z&Y{bGWvGJf$gjZ@JhvKCZjoCPLh<6l5D7!QDz?vrKt>+;@K|~k;}QtWClg0t{V1KN zFHkq)801_aMb9V0vAfMgIg<_sl*K{iP7^{5^l=N6%M?H1i(faEFd* zPTCTfCQ&rr>{F8$$7JP!v9t8|`79dhFZVH!jlQKHd&$@3l{eI>{5u0D4&D$RD9k8x zu#x0uqo@k6`IF))F)L+W%$A6P80@|WswG53cbdQ9SbaX2?Apx}Wn?doUKnj6_PgOu zf+G1nG9hFu8r{4$3JCb?Kq48jsoCmLzXv!8=>&b3#1+=Z;`Ey^-&4Tqf1?A+5Q~L=>9B zp%5oG7~NjA^!QnhZ|?Rma_pzWd9Jf3%eZ&Bsoqt6tn==2fgvZQF9s@>Tl+-pA1Tuq z>__y7>*{x@ud4QcIc02d=NN()@2*xwprtQF=xSXRX)d*@cbA%mZ$VU4eloSm!D?qd{Y3; zl|LY1I%yxZgQ7x-OkIMcXhK@gya;8`3eFh7?xM$_#F944UH;0QpLAT9Kh zRp*@mPPKex(Tl^|AOaQzDFo2pAb*SieU1sP#STB3S25>0cHc8+mw}mBjK<>I^RIt@u0zf78e3a)f z5`})mYiy&ooL&UJwcKibzm$yC_okI<`l&s>^-6TM$V{?30klGa03Z@fk%X8AAUhWj zFynUX$*PY(y&4iD^Z88^*r6OsX|3klck9NTHft{G$>~YfSiTWJ2hH(hNKN4Jdy!>y z>_#&Cn}h*MKSTIMR?kS809OD2fXbDj^+3H3^l3dFO~M1yS$14*el6*e0^XkBUIE?! z^DfB9X4fCeEwVEg0RFZ7Qzf6_uVl^+s%z-5&*1@j>XKbI?qi1@3R10 z7;*s}Ugz{XRTQGt#V2HB_k3trZ^Ac*8TneOG9^tF$gvJ}rr)U^8_a&n0DuC@-{O1= hS&bMg Date: Wed, 18 Dec 2019 11:06:55 -0500 Subject: [PATCH 274/321] Delete mobs_sand_monster.b3d --- mods/mobs_monster/sounds/mobs_sand_monster.b3d | Bin 115989 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_monster/sounds/mobs_sand_monster.b3d diff --git a/mods/mobs_monster/sounds/mobs_sand_monster.b3d b/mods/mobs_monster/sounds/mobs_sand_monster.b3d deleted file mode 100644 index 97825044427502ca24fe1097a219a34ebbb1f988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115989 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

QR`i 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 Y1%Gf}lYN=Z+0gksiKZ3&x-$R%4=}7%^Z)<= -- 2.40.1 From a266c7147f171a14a142a916517c7e474c31eb04 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:07:10 -0500 Subject: [PATCH 275/321] Delete main --- mods/mobs_monster/textures/main | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/mobs_monster/textures/main diff --git a/mods/mobs_monster/textures/main b/mods/mobs_monster/textures/main deleted file mode 100644 index 8b137891..00000000 --- a/mods/mobs_monster/textures/main +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 41b243a6a176239b6e090427e3bced43318a9c9c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:08:29 -0500 Subject: [PATCH 276/321] Update init.lua --- mods/mobs_monster/init.lua | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/mods/mobs_monster/init.lua b/mods/mobs_monster/init.lua index 6def31f0..d7d28003 100644 --- a/mods/mobs_monster/init.lua +++ b/mods/mobs_monster/init.lua @@ -18,15 +18,7 @@ mobs.intllib = S -- Monsters -dofile(path .. "/dirt_monster.lua") -- PilzAdam -dofile(path .. "/dungeon_master.lua") -dofile(path .. "/oerkki.lua") -dofile(path .. "/sand_monster.lua") -dofile(path .. "/stone_monster.lua") -dofile(path .. "/tree_monster.lua") -dofile(path .. "/lava_flan.lua") -- Zeg9 -dofile(path .. "/mese_monster.lua") -dofile(path .. "/spider.lua") -- AspireMint +dofile(path .. "/tusken_raider.lua") dofile(path .. "/lucky_block.lua") -- 2.40.1 From 43312325068aea7a0459026e97a56a36a097712f Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:11:56 -0500 Subject: [PATCH 277/321] Update and rename sand_monster.lua to tusken_raider.lua --- .../{sand_monster.lua => tusken_raider.lua} | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) rename mods/mobs_monster/{sand_monster.lua => tusken_raider.lua} (81%) diff --git a/mods/mobs_monster/sand_monster.lua b/mods/mobs_monster/tusken_raider.lua similarity index 81% rename from mods/mobs_monster/sand_monster.lua rename to mods/mobs_monster/tusken_raider.lua index e3ae0f21..5ee8b594 100644 --- a/mods/mobs_monster/sand_monster.lua +++ b/mods/mobs_monster/tusken_raider.lua @@ -32,7 +32,7 @@ end -- Sand Monster by PilzAdam -mobs:register_mob("mobs_monster:sand_monster", { +mobs:register_mob("mobs_monster:tusken_raider", { type = "monster", passive = false, attack_type = "dogfight", @@ -78,14 +78,6 @@ mobs:register_mob("mobs_monster:sand_monster", { punch_start = 74, punch_end = 105, }, - immune_to = { - {"default:shovel_wood", 3}, -- shovels deal more damage to sand monster - {"default:shovel_stone", 3}, - {"default:shovel_bronze", 4}, - {"default:shovel_steel", 4}, - {"default:shovel_mese", 5}, - {"default:shovel_diamond", 7}, - }, --[[ custom_attack = function(self, p) local pos = self.object:get_pos() @@ -117,7 +109,7 @@ mobs:register_mob("mobs_monster:sand_monster", { mobs:spawn({ - name = "mobs_monster:sand_monster", + name = "mobs_monster:tusken_raider", nodes = {"default:desert_sand"}, chance = 7000, active_object_count = 2, @@ -125,7 +117,7 @@ mobs:spawn({ }) -mobs:register_egg("mobs_monster:sand_monster", S("Sand Monster"), "default_desert_sand.png", 1) +mobs:register_egg("mobs_monster:tusken_raider", S("Tusken Raider"), "default_desert_sand.png", 1) -mobs:alias_mob("mobs:sand_monster", "mobs_monster:sand_monster") -- compatibility +mobs:alias_mob("mobs:tusken_raider", "mobs_monster:tusken_raider") -- compatibility -- 2.40.1 From 98f51d10427eca367f356897082e621c0aceccef Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:12:38 -0500 Subject: [PATCH 278/321] Add files via upload --- .../mobs_monster/textures/mobs_sand_particles.png | Bin 0 -> 148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/textures/mobs_sand_particles.png diff --git a/mods/mobs_monster/textures/mobs_sand_particles.png b/mods/mobs_monster/textures/mobs_sand_particles.png new file mode 100644 index 0000000000000000000000000000000000000000..d8822313c4190150d149056f816217c68b1b2964 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(Vi}jAr`&K2@)j_PQAMF|HPl% zw~GG@SGqE`FLMm{+;uG1+<32)78&qol`;+044c0`v3p{ literal 0 HcmV?d00001 -- 2.40.1 From ad027a066124efff5d408b605d9f27fbf333e8fa Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:16:19 -0500 Subject: [PATCH 279/321] Add files via upload --- mods/mobs_monster/models/mobs_character.b3d | Bin 0 -> 84526 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/models/mobs_character.b3d diff --git a/mods/mobs_monster/models/mobs_character.b3d b/mods/mobs_monster/models/mobs_character.b3d new file mode 100644 index 0000000000000000000000000000000000000000..9ab454366bee8fb6c9e45e64ac0d77808d5ea66f GIT binary patch literal 84526 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 literal 0 HcmV?d00001 -- 2.40.1 From 6c823e6f3ac1abd2ee3562877b95d547b0d744bd Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:17:10 -0500 Subject: [PATCH 280/321] Delete mobs_sand_monster.b3d --- mods/mobs_monster/models/mobs_sand_monster.b3d | Bin 115989 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_monster/models/mobs_sand_monster.b3d diff --git a/mods/mobs_monster/models/mobs_sand_monster.b3d b/mods/mobs_monster/models/mobs_sand_monster.b3d deleted file mode 100644 index 97825044427502ca24fe1097a219a34ebbb1f988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115989 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

QR`i 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 Y1%Gf}lYN=Z+0gksiKZ3&x-$R%4=}7%^Z)<= -- 2.40.1 From 02c65805e99d7dbcda0772a5ed2e28659f6530af Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:30:35 -0500 Subject: [PATCH 281/321] Add files via upload --- .../mobs_monster/textures/mobs_tusken_raider.png | Bin 0 -> 1626 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/mobs_monster/textures/mobs_tusken_raider.png diff --git a/mods/mobs_monster/textures/mobs_tusken_raider.png b/mods/mobs_monster/textures/mobs_tusken_raider.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3641858a4bff8794c5ada054349a13d7432824 GIT binary patch literal 1626 zcmchX`B%~j6ve-|AW|-+C8;5rMro*-6{dzF?i&(iW@)8T7NcbDjGBs>8dA_UPKzs( zQ>jHTrA6UVxg<#;2%(Y|rj|wHoCm$9v?#V)r2C^+1lED zot?QXR=8Bk5eSOK;WXk2G1k5IH)LN{I6$)YO?`jnq8cHIO6p9N(BGJLY z0gJ^pG~^wOigb5(r%))-7({b(QuaQ_oSYoyzSU0ap>-s9G|s*{!FneGY-s{1+G{13 zmx)A0VsY`_tza?+8s-Qoz{3;@hEP~II7lBIy+|P#6SkX5r6m%{d8Lxk)03a+XUOHA zY-~Js)E}7xZI>QYXB4qu(tiD*1p6fKpzfB_iwh_+~l;poZRAK{ZRjl8!P;1bpQMqfBxpmI5ec{oh|K} z>D9yoFP7KSK8Wt?SeA(xjjr_idUy7h#21kJFx|6JlO|9$^i_MMogX_6M~UB_eLJ1}?2|u1g+)2GIs;a}UH+_C~U6w&Qgs3Sg2Oaj?s?C(`%?kF{PVI}bTb zR&&yVdOx(y`tCbw_*O?jZ^tH|?2s%u<>n+uT+JUu&~3~}g_WKQ?76Xs>F88e+(|9+ zk+r==F__3LxrbrF9c`g#)Iw7qwY+3V-8J&kVQ6dgRFbGQs+8Bv!>i7ZjW z|L9=&O)cu_>go}>n662yZRR!CW-oG;;<_p_^~oi;s&!f+drcjlh=?^P9wF_9`o2HD z!@}gAGO#m8@)M&oGsMtl20W~I%?i@Ij4*T4!<}eE2<>>1YyU*2aN z{=}gD%x6{XuNfyThdZ5<%KvCW;T~;BS&a;=c9wa+Nmn$->LI2^qsH~pBx#HL)noN$ zDVsfo@+Y~xsG8@LrKFFEp z&Lit0N|D%(AX|^!lor8{MX}F75LVzT%H>IzTGVd*af7WYB?@Rs&&<}D){n&M_noLm z8S~OVc5hng3D<2rxXPyg$Ia@P7*pQ2>=kdSo?gFj(*~CiloHOLTo`Zm9t*U7MCL9g zwN}OAoIF5Ugfm8e0oCQ_WY(V5Al&!04A1ZK6B2{cP4LOb1Rg^7{!D=-I(#=^Io;&u zSZB0@0J%Rp^V28ZI{sB*x*6>AqTsP9+)NrHU&R0*MOqJPK+vp7QdBmx-b0A*ZkT$O z!eK4g&TsSa9!OxHJJEJ5~-)s%c}U8n9GkGYAeCp3)Qc~vhSud_R9Khy<_jP z1UZJ!7kW>rA7Id53>@cjGCSUm?k}zR;abAP3o`B29LTJhjpPi@vkV@?1S&I}LHNpbi308(5kd`bJ$p~qR4wOIw+- L4Z}5H4;TCknzl2R literal 0 HcmV?d00001 -- 2.40.1 From fb9d0ab19c8d8566a59f298e673e9d4fbf095de5 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 11:30:52 -0500 Subject: [PATCH 282/321] Delete mobs_sand_monster.png --- mods/mobs_monster/textures/mobs_sand_monster.png | Bin 1655 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/mobs_monster/textures/mobs_sand_monster.png diff --git a/mods/mobs_monster/textures/mobs_sand_monster.png b/mods/mobs_monster/textures/mobs_sand_monster.png deleted file mode 100644 index 75fcc4ba3eb5b844d5a0ea4958524cadb8384f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1655 zcmV--28j8IP)N2bPDNB8 zb~7$DE-^4L^m3s900MbXOjJbx002KW96>r9NI4@-J|zHDy#dWmiFGS3hT1L1cWF^~X;OGvH+Wze)xr|o2jaRykSGtr}x|CSEj#s;mS-X%~yOvtJnrFO@ zSG+PmRY`-R=$~7zno>jlUcx(T)>=U!I)janOee@Tf&xH!kJ#enp?w{UBjDQ z!<<^gmt4e}Tf~}P#g|*fmt4i0U&WkU#+hEmnqbD8UdNtY$Dd%xonXnFVac9h$)I1! zr(VjQU&@|f%Aa1!pI^$LV9KCm%bQ)xo?XnIV$7dl%%EV*qF~IUV$Ggi&7fk)vjaJu4L7&Yt^r1)vspNv1`_>WY(`_*05&QuxHk> zXxFZ1*RN^Uuw~bo;_dJ8%RRlxLtpNVYrOIwfHetx zNm{d75-*t==xFQo9*xF>y|?9^(ZnFHwX6Zwr0^waxg?2~Onsl17memU;)zD(+JK&l z^BQ3duqI9tBod<&_#PeicXZsCe=c;^NAx?2!mG|2U`>J~zy_ld{2bA)U;kCpYClWs zzJ_KGuT880)}(Ma37XG(kSwP`D!c~d(Tl$-YVs%c(BtO3?2IGiNCE{Wkx1+_Pp zE_teYUA0+)nyM%`xI5yf1{y2)`LVKCAYIcYL8HWuUC`F>VpUiE_B{?W)_sFm~g_ z*SkN`$wTN=e>BI4zeF)ywgCxh8T{1n&em_P{1?M5`*Z3zl=Si{Neq{5K!REZ+de-2 z%jrv3yC7#d+;Y1oY#ChWyLtXx-&br>Fj@1v#JlZm8nk0s28t3=F8}dYj1nRnQ08Vk zKfoY-^2ol!*NB13ukj7$W9$JPN&0NgH<$^62@Jh9Qd$kETGDch=C?YIx3Mt z7CQqxRxy5j#e|B2O)G0^UV5v5l9MAKm#5W0kGFbU$RLZI0V=2_6%rLpv~d0A&1(xL z0-D!v80bl(e;zW(VrPKgd?SChoVh12daXhf_PgxeDGv9;u>4Bh+cR%Ns^H} Date: Wed, 18 Dec 2019 11:33:17 -0500 Subject: [PATCH 283/321] Update tusken_raider.lua --- mods/mobs_monster/tusken_raider.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/mobs_monster/tusken_raider.lua b/mods/mobs_monster/tusken_raider.lua index 5ee8b594..a92644e6 100644 --- a/mods/mobs_monster/tusken_raider.lua +++ b/mods/mobs_monster/tusken_raider.lua @@ -45,9 +45,9 @@ mobs:register_mob("mobs_monster:tusken_raider", { armor = 100, collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4}, visual = "mesh", - mesh = "mobs_sand_monster.b3d", + mesh = "mobs_character.b3d", textures = { - {"mobs_sand_monster.png"}, + {"mobs_tusken_raider.png"}, }, blood_texture = "default_desert_sand.png", makes_footstep_sound = true, -- 2.40.1 From 702ecab6b8b702db4bc9105117d4a3b1d3ef432c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:10:36 -0500 Subject: [PATCH 284/321] Delete API.md --- mods/player_monoids/API.md | 76 -------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 mods/player_monoids/API.md diff --git a/mods/player_monoids/API.md b/mods/player_monoids/API.md deleted file mode 100644 index a032112b..00000000 --- a/mods/player_monoids/API.md +++ /dev/null @@ -1,76 +0,0 @@ -#Player Monoids - -The idea behind this library is that global player state (physics overrides, -armor values, etc.) changes from multiple mods should mesh nicely with each -other. This means they must be combinable in a sane way. - -Monoids -======= -A player monoid covers a single kind of player state a mod might want to change. -These can be built-in player state, like speed multipliers or fly permissions, -or could be custom state introduced by mods, such as corruption or reputation -level. When you make a player monoid, you must choose some type of value to -represent state changes - for example, numbers for speed multipliers, or vectors -for "lucky direction". Each mod can contribute different changes, represented -by this type of value, and they are all combined together. This combined value -is interpreted and converted into actual effects on the player's state. -Privileges could be set, physics overrides would be used to effect speed -changes, and a mod might change some value to match the monoid. - -Definition ----------- -A player monoid definition is a table with the following: - - * ```combine(elem1, elem2)``` - An associative binary operation - * ```fold({elems})``` - Equivalent to combining a whole list with ```combine``` - * ```identity``` - An identity element for ```combine``` - * ```apply(value, player)``` - Apply the effect represented by ```value``` - to ```player``` - * ```on_change(val1, val2, player)``` - Do something when the value on a - player changes. (optional) - -Additionally, you should document what values are valid representatives of -your monoid's effects. When something says that a value is "in a monoid", it -means that value is a valid representative of your monoid's effects. - -combine and fold ----------------- -```combine``` should take two values in your monoid and produce a third value in -your monoid. It should also be an associative operation. ```fold`` should take a -table containing elements of your monoid as input and combine them together in -key order. It should be equivalent to using ```combine``` to combine all the -values together. For example, ```combine``` could multiply two speed multipliers -together, and ```fold``` could multiply every value together. - -identity --------- -```identity```, when combined with any other value, should result in the other -value. It also represents the "default" or "neutral" state of the player, and -will be used when there are no status effects active for a particular monoid. -For example, the identity of a speed monoid could be the multiplier ```1```. - -apply ------ -```apply``` is the function that interprets a value in your monoid to do -something to the player's state. For example, you could set a speed multiplier -as the speed physics override for the player. - -Functions -========= -```player_monoids.make_monoid(monoid_def)``` - Creates a new monoid that can be -used to make changes to the player state. Returns a monoid. - -Monoid Methods --------------- -```monoid:add_change(player, value[, "id"])``` - Applies the change represented -by ```value``` to ```player```. Returns an ID for the change. If the optional -string argument ```"id"``` is supplied, that is used as the ID instead, and any -existing change with that ID is removed. IDs are only guaranteed to be unique -per-player. Conversely, you are allowed to make multiple changes with the same -ID as long as they are all on different players. - -```monoid:del_change(player, id)``` - Removes the change with the given ID, from -the given player, if it exists. - -```monoid:value(player)``` - The current combined value of the monoid for the -given player. -- 2.40.1 From 23a84e5415a7897721b7ee89a1f5030fd056a365 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:10:48 -0500 Subject: [PATCH 285/321] Delete COPYING --- mods/player_monoids/COPYING | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 mods/player_monoids/COPYING diff --git a/mods/player_monoids/COPYING b/mods/player_monoids/COPYING deleted file mode 100644 index 8034ed73..00000000 --- a/mods/player_monoids/COPYING +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2015-2016 raymoo - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file -- 2.40.1 From d44a5244f83098b8ad132cd41e89fbc53a19beb0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:10:58 -0500 Subject: [PATCH 286/321] Delete README.md --- mods/player_monoids/README.md | 205 ---------------------------------- 1 file changed, 205 deletions(-) delete mode 100644 mods/player_monoids/README.md diff --git a/mods/player_monoids/README.md b/mods/player_monoids/README.md deleted file mode 100644 index 245174ab..00000000 --- a/mods/player_monoids/README.md +++ /dev/null @@ -1,205 +0,0 @@ -# Player Monoids - -This is a small library for managing global player state, so that changes made -from different mods do not result in unexpected behavior. The README gives an -introduction to the mod, but you might want to reference API.md along the way. -This mod, combined with playereffects, deprecates monoidal_effects. - -Global Player State -=================== -Players have behavior-affecting state that can be modified through mods. A couple -examples are physics overrides and armor groups. If more than one mod tries to -change them, it can result in unexpected results. - -For example, a player could be -under a speed boost effect from a playereffects effect, and then sleep in a bed. -The bed sets the player's speed to 0, and sets it back to 1 when they get out. -Because the beds mod had no way of knowing that the player was supposed to have -a speed boost, it effectively removed it. One hack to "fix" it would be to save -the player's speed and restore it on wakeup, but this would have its own problems -if the effect wears off in bed. The beds mod would restore the boosted speed, -which wouldn't be removed, since the effect already went away. Thus an exploit -allowing a permanent (until log out) speed boost is introduced. - -Player Monoids manages this by creating layers (monoids) on top of player state, -which can keep track of different changes and combine them usefully. - -Monoids -======= - -Creation --------- -A monoid in Player Monoids is an interface to one piece of player state. For -example, you could have one monoid covering physics overrides, and another -covering fly privilege. You could define a speed monoids like this: -``` --- The values in my speed monoid must be speed multipliers (numbers). -mymod.speed_monoid = player_monoids.make_monoid({ - combine = function(speed1, speed2) - return speed1 * speed2 - end, - fold = function(tab) - local res = 1 - for _, speed in pairs(tab) do - res = res * speed - end - end, - identity = 1, - apply = function(speed, player) - local override = player:get_physics_override() - override.speed = speed - player:set_physics_override(override) - end, - on_change = function() return end, -}) -``` - -This says that two speed multipliers can be combined by multiplication, that -1 can be used as a neutral element, and that the "interpretation" of the speed -multiplier is to set the player's speed physics override to that value. It also -says that nothing in particular needs to happen when the speed changes, other -than applying the new speed multiplier. - -Use ---- -To add or remove change through a monoid, you must use the ```add_change``` -and ```del_change``` methods. For example, you could speed the player up -temporarily like this: -``` --- Zoom! -local zoom_id = mymod.speed_monoid:add_change(some_player, 10) - -minetest.after(5,function() mymod.speed_monoid:del_change(some_player, zoom_id) end) -``` -You could also specify a string ID to use, instead of the numerical one that -is automatically provided: -``` --- Zoom Mk. II -mymod.speed_monoid:add_change(some_player, 10, "mymod:zoom") - -minetest.after(5,function() mymod.speed_monoid:del_change(some_player, "mymod:zoom") end) -``` - -Reading Values --------------- -You can use ```monoid:value(player)``` to read the current value of the monoid, -for that player. This could be useful if it doesn't just represent built-in -player state. For example, it could represent gardening skill, and you might use -it to calculate the chance of success when harvesting spices. - -Nesting Monoids ---------------- -You may have already noticed one limitation of this design. That is, for each -kind of player state, you can only combine state changes in one way. If the -standard speed monoid combines speed multipliers by multiplication, you cannot -change it to instead choose the highest speed multiplier. Unfortunately, there -is currently no way change this - you will have to hope that the given monoid -combines in a useful way. However, it is possible to manage a subset of the -values in a custom way. - -Suppose that a speed monoid (```mymod.speed_monoid```) already exists, using -multiplication, but you want to write a mod with speed boosts, and only apply -the strongest boost. Most of it could be done the same way: -``` --- My speed boosts monoid takes speed multipliers (numbers) that are at least 1. -newmod.speed_boosts = player_monoids.make_monoid({ - combine = function(speed1, speed2) - return speed1 * speed2 - end, - fold = function(tab) - local res = 1 - for _, speed in pairs(tab) do - res = res * speed - end - end, - identity = 1, - apply = ??? - on_change = function() return end, -}) -``` -But we cannot just change the player speed in ```apply```, otherwise we will -break compatibility with the original speed monoid! The trick here is to use -the original monoid as a proxy for our effects. -``` -apply = function(speed, player) - mymod.speed_monoid:add_change(player, speed, "newmod:speed_boosts") -end -``` -This means the speed boosts we control can be limited to the strongest boost, but -the resulting boost will still play nice with speed effects from other mods. -You could even add another "nested monoid" just for speed maluses, that takes -the worst speed drain and applies it as a multiplier. - -Standard Monoids -================ -In the spirit of compatibility, this mod provides some canonical monoids for -commonly used player state. They combine values in a way that should allow -different mods to affect player state fairly. If you make another monoid handling -the same state as one of these, you will break compatibility with any mods using -the standard monoid. - -Physics Overrides ------------------ -These monoids set the multiplier of the override they are named after. All three -take non-negative numbers as values and combine them with multiplication. They -are: - * ```player_monoids.speed``` - * ```player_monoids.jump``` - * ```player_monoids.gravity``` - -Privileges ----------- -These monoids set privileges that affect the player's ordinary gameplay. They -take booleans as input and combine them with logical or. They are: - * ```player_monoids.fly``` - * ```player_monoids.noclip``` - -Other ------ - * ```player_monoids.collisionbox``` - Sets the player's collisionbox. Values are - 3D multiplier vectors, which are combined with component-wise multiplication. - * ```player_monoids.visual_size``` - Sets the player's collisionbox. Values are - 2D multiplier vectors (x and y), which are combined with component-wise - multiplication. - -Use with playereffects -====================== -Player Monoids does not provide anything special for persistent effects with -limited lifetime. By using monoids with Wuzzy's playereffects, you can easily -create temporary effects that stack with each other. As an example, an effect -that gives the player 2x speed: -``` -local speed = player_monoids.speed - -local function apply(player) - speed:add_change(player, 2, "mymod:2x_speed") -end - -local function cancel(player) - speed:del_change(player, "mymod:2x_speed") -end - -local groups = { "mymod:2x_speed" } - -playereffects.register_effect_type("mymod:2x_speed", "2x Speed", groups, apply, cancel) -``` - -Note that this effect does NOT use the "speed" effect group. As long as other -speed effects use the speed monoid, we do not want them to be cancelled, since -the goal is to combine the effects together. It does use a singleton group to -prevent multiple instances of the same effect. I think that playereffects require -effects to belong to at least one group, but I am not sure. - -Caveats -======= -* If the global state managed by a monoid is modified by something other than -the monoid, you will have the same problem as when two mods both independently -try to modify global state without going through a monoid. - * This includes playereffects effects that affect global player state without -going through a monoid. -* You will also get problems if you use multiple monoids to manage the same -global state. -* The order that different effects get combined together is based on key order, -which may not be predictable. So you should try to make your monoids commutative -in addition to associative, or at least not care if the order of two changes -is swapped. \ No newline at end of file -- 2.40.1 From 1ef192850e762abe72707749db7c1eae878c2b14 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:11:06 -0500 Subject: [PATCH 287/321] Delete bower.json --- mods/player_monoids/bower.json | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 mods/player_monoids/bower.json diff --git a/mods/player_monoids/bower.json b/mods/player_monoids/bower.json deleted file mode 100644 index 830c0d49..00000000 --- a/mods/player_monoids/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "player_monoids", - "description": "Library for making player state changes combinable\n", - "keywords": [ - "player_monoids", - "monoid", - "monoids", - "effect", - "playereffects" - ], - "homepage": "https://github.com/raymoo/player_monoids", - "forum": "https://forum.minetest.net/viewtopic.php?f=9&t=14895", - "screenshots": [ - "https://example.com/screenshot1.png" - ], - "authors": [ - "raymoo" - ] -} -- 2.40.1 From 1bfb3024cf034a4b2b0706f68738f0ef0a949bdd Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:11:13 -0500 Subject: [PATCH 288/321] Delete description.txt --- mods/player_monoids/description.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 mods/player_monoids/description.txt diff --git a/mods/player_monoids/description.txt b/mods/player_monoids/description.txt deleted file mode 100644 index 87dacddc..00000000 --- a/mods/player_monoids/description.txt +++ /dev/null @@ -1,2 +0,0 @@ -player_monoids is a library for managing global player state, such as physics -overrides or player visual size. -- 2.40.1 From 747878e516e689d60487e49b79f6d9caedb38b28 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:11:20 -0500 Subject: [PATCH 289/321] Delete init.lua --- mods/player_monoids/init.lua | 118 ----------------------------------- 1 file changed, 118 deletions(-) delete mode 100644 mods/player_monoids/init.lua diff --git a/mods/player_monoids/init.lua b/mods/player_monoids/init.lua deleted file mode 100644 index ed34bdf5..00000000 --- a/mods/player_monoids/init.lua +++ /dev/null @@ -1,118 +0,0 @@ --- Copyright (c) raymoo 2016 --- Licensed under Apache 2.0 license. See COPYING for details. - --- Any documentation here are internal details, please avoid using them in your --- mod. - -local modpath = minetest.get_modpath(minetest.get_current_modname()) .. "/" - -player_monoids = {} - -local mon_meta = {} - -mon_meta.__index = mon_meta - -local nop = function() end - --- A monoid object is a table with the following fields: --- def: The monoid definition --- player_map: A map from player names to their effect tables. Effect tables --- are maps from effect IDs to values. --- value_cache: A map from player names to the cached value for the monoid. --- next_id: The next unique ID to assign an effect. - -local function monoid(def) - local mon = {} - - local actual_def = {} - - for k, v in pairs(def) do - actual_def[k] = v - end - - if not actual_def.apply then - actual_def.apply = nop - end - - if not actual_def.on_change then - actual_def.on_change = nop - end - - mon.def = actual_def - - local p_map = {} - mon.player_map = p_map - - mon.next_id = 1 - - local v_cache = {} - mon.value_cache = v_cache - - setmetatable(mon, mon_meta) - - minetest.register_on_leaveplayer(function(player) - local p_name = player:get_player_name() - p_map[p_name] = nil - v_cache[p_name] = nil - end) - - return mon -end - -player_monoids.monoid = monoid - -function mon_meta:add_change(player, value) - local p_name = player:get_player_name() - - local def = self.def - - local p_effects = self.player_map[p_name] - if p_effects == nil then - p_effects = {} - self.player_map[p_name] = p_effects - end - - local actual_id - - if id then - actual_id = id - else - actual_id = self.next_id - self.next_id = actual_id + 1 - end - - local old_total = self.value_cache[p_name] - p_effects[actual_id] = value - local new_total = def.fold(p_effects) - self.value_cache[p_name] = new_total - - def.apply(new_total, player) - def.on_change(old_total, new_total, player) - - return actual_id -end - -function mon_meta:del_change(player, id) - local p_name = player:get_player_name() - - local def = self.def - - local p_effects = self.player_map[p_name] - if p_effects == nil then return end - - local old_total = self.value_cache[p_name] - p_effects[id] = nil - local new_total = def.fold(p_effects) - self.value_cache[p_name] = new_total - - def.apply(new_total, player) - def.on_change(old_total, new_total, player) -end - -function mon_meta:value(player) - local p_name = player:get_player_name() - return self.value_cache[p_name] or self.def.identity -end - -dofile(modpath .. "standard_monoids.lua") -dofile(modpath .. "test.lua") -- 2.40.1 From 32cbdb24f1430d3f71a31fe80d54bb3953d21054 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:11:27 -0500 Subject: [PATCH 290/321] Delete mod.conf --- mods/player_monoids/mod.conf | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/player_monoids/mod.conf diff --git a/mods/player_monoids/mod.conf b/mods/player_monoids/mod.conf deleted file mode 100644 index 2ff945ae..00000000 --- a/mods/player_monoids/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name=player_monoids \ No newline at end of file -- 2.40.1 From e23a9dfd321217ebf3889289aca438e27a95c040 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:11:36 -0500 Subject: [PATCH 291/321] Delete standard_monoids.lua --- mods/player_monoids/standard_monoids.lua | 180 ----------------------- 1 file changed, 180 deletions(-) delete mode 100644 mods/player_monoids/standard_monoids.lua diff --git a/mods/player_monoids/standard_monoids.lua b/mods/player_monoids/standard_monoids.lua deleted file mode 100644 index 34d76589..00000000 --- a/mods/player_monoids/standard_monoids.lua +++ /dev/null @@ -1,180 +0,0 @@ --- Standard effect monoids, to provide canonicity. - -local function mult(x, y) return x * y end - -local function mult_fold(elems) - local tot = 1 - - for k,v in pairs(elems) do - tot = tot * v - end - - return tot -end - -local function v_mult(v1, v2) - local res = {} - - for k, v in pairs(v1) do - res[k] = v * v2[k] - end - - return res -end - -local function v_mult_fold(identity) - return function(elems) - local tot = identity - - for k, v in pairs(elems) do - tot = v_mult(tot, v) - end - - return tot - end -end - -local monoid = player_monoids.monoid - --- Speed monoid. Effect values are speed multipliers. Must be nonnegative --- numbers. -player_monoids.speed = monoid({ - combine = function(x, y) return x * y end, - fold = function(elems) - local res = 1 - for k, v in pairs(elems) do - res = res * v - end - - return res - end, - identity = 1, - apply = function(mult, player) - local ov = player:get_physics_override() - ov.speed = mult - player:set_physics_override(ov) - end, -}) - - --- Jump monoid. Effect values are jump multipliers. Must be nonnegative --- numbers. -player_monoids.jump = monoid({ - combine = function(x, y) return x * y end, - fold = function(elems) - local res = 1 - for k, v in pairs(elems) do - res = res * v - end - - return res - end, - identity = 1, - apply = function(mult, player) - local ov = player:get_physics_override() - ov.jump = mult - player:set_physics_override(ov) - end, -}) - - --- Gravity monoid. Effect values are gravity multipliers. -player_monoids.gravity = monoid({ - combine = function(x, y) return x * y end, - fold = function(elems) - local res = 1 - for k, v in pairs(elems) do - res = res * v - end - - return res - end, - identity = 1, - apply = function(mult, player) - local ov = player:get_physics_override() - ov.gravity = mult - player:set_physics_override(ov) - end, -}) - - --- Fly ability monoid. The values are booleans, which are combined by or. A true --- value indicates having the ability to fly. -player_monoids.fly = monoid({ - combine = function(p, q) return p or q end, - fold = function(elems) - for k, v in pairs(elems) do - if v then return true end - end - - return false - end, - identity = false, - apply = function(can_fly, player) - local p_name = player:get_player_name() - local privs = minetest.get_player_privs(p_name) - - if can_fly then - privs.fly = true - else - privs.fly = nil - end - - minetest.set_player_privs(p_name, privs) - - end, -}) - - --- Noclip ability monoid. Works the same as fly monoid. -player_monoids.noclip = monoid({ - combine = function(p, q) return p or q end, - fold = function(elems) - for k, v in pairs(elems) do - if v then return true end - end - - return false - end, - identity = false, - apply = function(can_noclip, player) - local p_name = player:get_player_name() - local privs = minetest.get_player_privs(p_name) - - if can_noclip then - privs.noclip = true - else - privs.noclip = nil - end - - minetest.set_player_privs(p_name, privs) - - end, -}) - -local def_col_scale = { x=0.3, y=1, z=0.3 } - --- Collisionbox scaling factor. Values are a vector of x, y, z multipliers. -player_monoids.collisionbox = monoid({ - combine = v_mult, - fold = v_mult_fold({x=1, y=1, z=1}), - identity = {x=1, y=1, z=1}, - apply = function(multiplier, player) - local v = vector.multiply(def_col_scale, multiplier) - - player:set_properties({ - collisionbox = { -v.x, -v.y, -v.z, v.z, v.y, v.z } - }) - end, -}) - -player_monoids.visual_size = monoid({ - combine = v_mult, - fold = v_mult_fold({x=1, y=1}), - identity = {x=1, y=1}, - apply = function(multiplier, player) - player:set_properties({ - visual_size = multiplier - }) - end, -}) -- 2.40.1 From 79ea93db2e2cbd097ac10fdf29c50172394267e4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:11:44 -0500 Subject: [PATCH 292/321] Delete test.lua --- mods/player_monoids/test.lua | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 mods/player_monoids/test.lua diff --git a/mods/player_monoids/test.lua b/mods/player_monoids/test.lua deleted file mode 100644 index eff14911..00000000 --- a/mods/player_monoids/test.lua +++ /dev/null @@ -1,27 +0,0 @@ - -local speed = player_monoids.speed - -minetest.register_privilege("monoid_master", { - description = "Allows testing of player monoids.", - give_to_singleplayer = false, -}) - -local function test(player) - local ch_id = speed:add_change(player, 10) - local p_name = player:get_player_name() - - minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) - - minetest.after(3, function() - speed:del_change(player, ch_id) - minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) - end) -end - -minetest.register_chatcommand("test_monoids", { - description = "Runs a test on monoids", - privs = { monoid_master = true }, - func = function(p_name) - test(minetest.get_player_by_name(p_name)) - end, -}) -- 2.40.1 From 9aebfa9e078a09132982490e8bff00f76d70dc8d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:12:03 -0500 Subject: [PATCH 293/321] Delete README.md --- mods/pova/README.md | 55 --------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 mods/pova/README.md diff --git a/mods/pova/README.md b/mods/pova/README.md deleted file mode 100644 index 4c5595f7..00000000 --- a/mods/pova/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# POVA - -Pova gives mod makers a set of easy to use functions that safely apply overrides for player speed, jump height and gravity effects. - -## Settings - -'pova_loop' setting is 1.0 by default and will calculate and set overrides once a second for each player, set to 0.5 for every half a second or 0 to disable. - -## Functions - -pova.add_override = function(name, item, def) - -- Adds a named override which can be used to add or subtract from speed, jump and gravity effects. Custom overrides are also used for specific tasks: - -- "default" sets default values for each of the settings to which overrides are added. -- "min" provides a minimum level for each of the settings. -- "max" provides a maximum level for each of the settings. -- "force" overrides all and forces a value for each setting (e.g setting speed to 0 when sleeping in beds) - - - 'def.priority' can be used to set priorities for custom effects, higher numbers get applied (defaults to 50) - -pova.get_override = function(name, item) - -- Returns the table containing {speed, jump, gravity} for an added item. - -pova.del_override = function(name, item) - -- Removes the override settings for the item named. - -pova.do_override(player) - -- Calculates and sets new overrides instantly, this can be used when the 'pova_loop' setting is false. - - -## Changelog - -### 0.1 - - - Initial Upload - -### 0.2 - - - Added pova.do_override(player) to instantly set overrides on list. - - Added 'pova_loop' setting in minetest.conf to disable override calc loop - -### 0.3 - - - Added custom override names for special functions "default", "min", "max", "force" - - Tweaked test axe to use new settings. - -### 0.4 - - - 'pova_loop' now contains loop timer in seconds, 0 to disable - - Added def.priority setting to add_override to stop unimportant changes - - tweak and optimize code -- 2.40.1 From 3e9eeb38f3ed8d45cf01ed56577a2924e2cef729 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:12:11 -0500 Subject: [PATCH 294/321] Delete description.txt --- mods/pova/description.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/pova/description.txt diff --git a/mods/pova/description.txt b/mods/pova/description.txt deleted file mode 100644 index 16ab4585..00000000 --- a/mods/pova/description.txt +++ /dev/null @@ -1 +0,0 @@ -Pova gives mod makers a set of functions to safely apply overrides for player speed, jump height and gravity. -- 2.40.1 From 28dc68144d593c22197ae09834bb923cfd803be8 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:12:17 -0500 Subject: [PATCH 295/321] Delete init.lua --- mods/pova/init.lua | 196 --------------------------------------------- 1 file changed, 196 deletions(-) delete mode 100644 mods/pova/init.lua diff --git a/mods/pova/init.lua b/mods/pova/init.lua deleted file mode 100644 index b03fee3a..00000000 --- a/mods/pova/init.lua +++ /dev/null @@ -1,196 +0,0 @@ - --- global -pova = {} - --- local -local pova_list = {} -local min, max = math.min, math.max - --- time each override loop runs, 0 to disable -local pova_loop = minetest.settings:get_bool("pova_loop") or 1.0 - --- if enabled activate main loop that totals override list on timer -if pova_loop > 0 then - - local timer = 0 - - minetest.register_globalstep(function(dtime) - - timer = timer + dtime - - if timer < pova_loop then - return - end - - timer = 0 - - -- loop through players and apply overrides - for _,player in ipairs(minetest.get_connected_players()) do - pova.do_override(player) - end - end) -end - - --- global functions -pova.add_override = function(name, item, def) - - -- nil check - if not name or not item then return end - - -- priority defaults to 50 when not included - def.priority = tonumber(def.priority) or 50 - - -- if same item is assigned with lower priority then change ignored - if pova_list[name][item] - and pova_list[name][item].priority - and pova_list[name][item].priority > def.priority then - return - end - - pova_list[name][item] = def -end - -pova.get_override = function(name, item) - return pova_list[name][item] -end - -pova.del_override = function(name, item) - pova_list[name][item] = nil -end - -pova.do_override = function(player) - - local name = player:get_player_name() - - -- somehow player list is missing - if not pova_list[name] then - return - end - - -- set base defaults - local speed, jump, gravity = 1, 1, 1 - - -- check for new defaults - if pova_list[name]["default"] then - speed = pova_list[name]["default"].speed or 1 - jump = pova_list[name]["default"].jump or 1 - gravity = pova_list[name]["default"].gravity or 1 - end - - -- loop through list of named overrides - for id, var in pairs(pova_list[name]) do - - -- skip any custom names - if var - and id ~= "default" - and id ~= "min" - and id ~= "max" - and id ~= "force" then - - -- add any additional changes - speed = speed + (pova_list[name][id].speed or 0) - jump = jump + (pova_list[name][id].jump or 0) - gravity = gravity + (pova_list[name][id].gravity or 0) - end - end - - -- make sure total doesn't go below minimum values - if pova_list[name]["min"] then - speed = max(pova_list[name]["min"].speed or 0, speed) - jump = max(pova_list[name]["min"].jump or 0, jump) - gravity = max(pova_list[name]["min"].gravity or 0, gravity) - end - - -- make sure total doesn't go above maximum values - if pova_list[name]["max"] then - speed = min(pova_list[name]["max"].speed or speed, speed) - jump = min(pova_list[name]["max"].jump or jump, jump) - gravity = min(pova_list[name]["max"].gravity or gravity, gravity) - end - - -- force values (for things like sleeping in bed when speed is 0) - if pova_list[name]["force"] then - speed = pova_list[name]["force"].speed or speed - jump = pova_list[name]["force"].jump or jump - gravity = pova_list[name]["force"].gravity or gravity - end - - -- for testing only - if name == "singleplayer" then - print ("speed: " .. speed .. " / jump: " .. jump .. " / gravity: " .. gravity) - end - - -- set new overrides - player:set_physics_override(speed, jump, gravity) -end - - --- set player table on join -minetest.register_on_joinplayer(function(player) - pova_list[ player:get_player_name() ] = {} - pova.do_override(player) -end) - --- reset player table on respawn -minetest.register_on_respawnplayer(function(player) - pova_list[ player:get_player_name() ] = {} - pova.do_override(player) -end) - --- blank player table on leave -minetest.register_on_leaveplayer(function(player) - pova_list[ player:get_player_name() ] = nil -end) - - --- axe tool to showcase features -minetest.register_craftitem("pova:axe", { - description = "Test Axe (left to apply, right to remove effects)", - inventory_image = "default_tool_steelaxe.png", - - on_use = function(itemstack, user, pointed_thing) - - local name = user:get_player_name() - - -- set new defaults - pova.add_override(name, "default", {speed = 2, jump = 3, gravity = 1}) - - -- define changes that are added onto defaults - pova.add_override(name, "test", {speed = 1, jump = -1, gravity = 0.5}) - ---= speed is now 3, jump is 2 and gravity is 1.5 - - -- set new minimum for jump - pova.add_override(name, "min", {jump = 3}) - - -- add new maximum for speed - pova.add_override(name, "max", {speed = 2}) - - -- add force value for gravity - pova.add_override(name, "force", {gravity = 1.2}) - ---= speed is now max 2, jump is min 3 and gravity forced to 1.2 - - -- this wont get applied because priority is lower than 50 - pova.add_override(name, "force", {speed = 8, priority = 10}) - - -- apply override - pova.do_override(user) - end, - - on_place = function(itemstack, user, pointed_thing) - - local name = user:get_player_name() - - -- remove changes - pova.del_override(name, "min") - pova.del_override(name, "max") - pova.del_override(name, "force") - pova.del_override(name, "test") - pova.del_override(name, "default") - - -- apply override - pova.do_override(user) - end, -}) -- 2.40.1 From 37078ac22e8463497201347764a021b6cb9b12d0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:12:26 -0500 Subject: [PATCH 296/321] Delete license.txt --- mods/pova/license.txt | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 mods/pova/license.txt diff --git a/mods/pova/license.txt b/mods/pova/license.txt deleted file mode 100644 index fec6f6aa..00000000 --- a/mods/pova/license.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 TenPlus1 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -- 2.40.1 From 21976cb7800fb0604ce7483cb8185958a5f22278 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:12:33 -0500 Subject: [PATCH 297/321] Delete mod.conf --- mods/pova/mod.conf | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/pova/mod.conf diff --git a/mods/pova/mod.conf b/mods/pova/mod.conf deleted file mode 100644 index 97a28b20..00000000 --- a/mods/pova/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = pova \ No newline at end of file -- 2.40.1 From a81237b52955f4cdd8f9ed19c4e9a04f261d650d Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:12:40 -0500 Subject: [PATCH 298/321] Delete settingtypes.txt --- mods/pova/settingtypes.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 mods/pova/settingtypes.txt diff --git a/mods/pova/settingtypes.txt b/mods/pova/settingtypes.txt deleted file mode 100644 index 1db93952..00000000 --- a/mods/pova/settingtypes.txt +++ /dev/null @@ -1,2 +0,0 @@ -# POVA recalc loop in seconds (0 to disable) -pova_loop (POVA loop number in seconds) float 1.0 -- 2.40.1 From 6825ea6dffd16b80347dbb98eedca14aa14cb4f0 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:00 -0500 Subject: [PATCH 299/321] Delete README.txt --- mods/stamina/README.txt | 70 ----------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 mods/stamina/README.txt diff --git a/mods/stamina/README.txt b/mods/stamina/README.txt deleted file mode 100644 index b959c4f8..00000000 --- a/mods/stamina/README.txt +++ /dev/null @@ -1,70 +0,0 @@ -Minetest mod "Stamina" -===================== - -(C) 2015 - BlockMen -(C) 2016 - Auke Kok - - -About this mod: ---------------- -This mod adds a stamina, or "hunger" mechanic to Minetest. Actions like -crafting, walking, digging or fighting make the player exhausted. When -enough exhaustion has been accumulated, the player gets more hungry, -and loses stamina. - -If a player is low on stamina, they start taking periodical damage, -and ultimately will die if they do not eat food. - -Eating food no longer heals the player. Instead, it increases the -stamina of the player. The stamina bar shows how well fed the player -is. More bread pieces means more stamina. - -Walking while holding down Aux1 (usually E key) will make player sprint so -long as their stamina bar is 3 or more bread. This will make the player run -that bit faster and jump a tiny bit higher. - -Q&A time: Why won't I move the stamina bar to the right? - -Answer: this conflicts with the builtin breath bar. To move the -builtin breath bar, I basically have to entirely re-implement it -in lua including timers to catch breath changes for each online -player, which is all a waste of time, just to move a few pixels -around. - - -For Modders: ------------- -This mod intercepts minetest.item_eat(), and applies the hp_change -as stamina change. The value can be positive (increase stamina) or -negative (periodically damage the player by 1 hp). - -Callbacks that are registered via minetest.register_on_item_eat() -are called after this mod, so the itemstack will have changed already -when callbacks are called. You can get the original itemstack as 6th -parameter of your function then. - -A global function is available for mods to change player stamina levels: - - stamina.change(player, change) - - -TenPlus1 Additions: -------------------- - - - Added support for POVA and player_monoids - - Added Pipeworks checks for fake players - - Added 60 second drunk effect when foods have {alcohol=1} group (eat 4 or more) - - Moved exhaustion and hud_id to player table instead of player attributes - - -License: --------- -Code: -- all code LGPL-2.1+ -Textures: -- stamina_hud_poison.png - BlockMen (CC-BY 3.0) -- stamina_hud_fg.png - PilzAdam (WTFPL), modified by BlockMen -- stamina_hud_bg.png - PilzAdam (WTFPL), modified by BlockMen -Sounds: -- stamina_eat.*.ogg - http://www.freesound.org/people/sonictechtonic/sounds/242215/ CC-BY-3.0 - -- 2.40.1 From 67179364a87f8591acb53f2ab5a02d7bfeee9a6e Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:06 -0500 Subject: [PATCH 300/321] Delete depends.txt --- mods/stamina/depends.txt | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 mods/stamina/depends.txt diff --git a/mods/stamina/depends.txt b/mods/stamina/depends.txt deleted file mode 100644 index 7c7fa76b..00000000 --- a/mods/stamina/depends.txt +++ /dev/null @@ -1,4 +0,0 @@ -default -3d_armor? -player_monoids? -pova? -- 2.40.1 From 68b44311d292c51e713860233add47cd96e18a12 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:13 -0500 Subject: [PATCH 301/321] Delete description.txt --- mods/stamina/description.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/description.txt diff --git a/mods/stamina/description.txt b/mods/stamina/description.txt deleted file mode 100644 index 1074b3d4..00000000 --- a/mods/stamina/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds stamina and hunger effects. -- 2.40.1 From 1bf5995cd2383136041e9c30f626f3b5632ec718 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:23 -0500 Subject: [PATCH 302/321] Delete init.lua --- mods/stamina/init.lua | 621 ------------------------------------------ 1 file changed, 621 deletions(-) delete mode 100644 mods/stamina/init.lua diff --git a/mods/stamina/init.lua b/mods/stamina/init.lua deleted file mode 100644 index 8e8f8c3d..00000000 --- a/mods/stamina/init.lua +++ /dev/null @@ -1,621 +0,0 @@ - -stamina = {players = {}} - -STAMINA_TICK = 800 -- time in seconds after that 1 stamina point is taken -STAMINA_TICK_MIN = 4 -- stamina ticks won't reduce stamina below this level -STAMINA_HEALTH_TICK = 4 -- time in seconds after player gets healed/damaged -STAMINA_MOVE_TICK = 0.5 -- time in seconds after the movement is checked -STAMINA_POISON_TICK = 1.25 -- time in seconds after player is poisoned - -STAMINA_EXHAUST_DIG = 3 -- exhaustion increased this value after digged node -STAMINA_EXHAUST_PLACE = 1 -- .. after digging node -STAMINA_EXHAUST_MOVE = 1.5 -- .. if player movement detected -STAMINA_EXHAUST_JUMP = 5 -- .. if jumping -STAMINA_EXHAUST_CRAFT = 20 -- .. if player crafts -STAMINA_EXHAUST_PUNCH = 40 -- .. if player punches another player -STAMINA_EXHAUST_LVL = 160 -- at what exhaustion player saturation gets lowered - -STAMINA_HEAL = 1 -- number of HP player gets healed after STAMINA_HEALTH_TICK -STAMINA_HEAL_LVL = 5 -- lower level of saturation needed to get healed -STAMINA_STARVE = 1 -- number of HP player gets damaged by stamina after STAMINA_HEALTH_TICK -STAMINA_STARVE_LVL = 3 -- level of staturation that causes starving - -STAMINA_VISUAL_MAX = 20 -- hud bar extends only to 20 - -SPRINT_SPEED = 0.3 -- how much faster player can run if satiated -SPRINT_JUMP = 0.1 -- how much higher player can jump if satiated -SPRINT_DRAIN = 0.35 -- how fast to drain satation while sprinting (0-1) - - -local function get_int_attribute(player, key) - - -- pipeworks fake player check - if not player.get_attribute then - return nil - end - - local level = player:get_attribute(key) - - if level then - return tonumber(level) - end - - return nil -end - - -local function stamina_update_level(player, level) - - -- pipeworks fake player check - if not player.get_attribute then - return nil - end - - local old = get_int_attribute(player, "stamina:level") - - if level == old then -- To suppress HUD update - return - end - - -- players without interact priv cannot eat - if not minetest.check_player_privs(player, {interact = true}) then - return - end - - player:set_attribute("stamina:level", level) - - player:hud_change(stamina.players[player:get_player_name()].hud_id, - "number", math.min(STAMINA_VISUAL_MAX, level)) -end - - --- global function for mods to amend stamina level -stamina.change = function(player, change) - - local name = player:get_player_name() - - if not name or not change or change == 0 then - return false - end - - local level = get_int_attribute(player, "stamina:level") + change - - if level < 0 then level = 0 end - - if level > STAMINA_VISUAL_MAX then level = STAMINA_VISUAL_MAX end - - stamina_update_level(player, level) - - return true -end - - -local function exhaust_player(player, v) - - if not player - or not player.is_player - or not player:is_player() - or not player.set_attribute then - return - end - - local name = player:get_player_name() - - if not name then - return - end - - local exhaustion = stamina.players[name].exhaustion + v - - if exhaustion > STAMINA_EXHAUST_LVL then - - exhaustion = 0 - - local h = get_int_attribute(player, "stamina:level") - - if h > 0 then - stamina_update_level(player, h - 1) - end - end - - stamina.players[name].exhaustion = exhaustion -end - - --- Sprint settings and function -local enable_sprint = minetest.setting_getbool("sprint") ~= false -local enable_sprint_particles = minetest.setting_getbool("sprint_particles") ~= false -local monoids = minetest.get_modpath("player_monoids") -local pova_mod = minetest.get_modpath("pova") - - -local function set_sprinting(name, sprinting) - - local player = minetest.get_player_by_name(name) - - -- get player physics - local def = player:get_physics_override() - ---print ("---", def.speed, def.jump) - - if sprinting == true and not stamina.players[name].sprint then - - if monoids then - - stamina.players[name].sprint = player_monoids.speed:add_change( - player, def.speed + SPRINT_SPEED) - - stamina.players[name].jump = player_monoids.jump:add_change( - player, def.jump + SPRINT_JUMP) - - elseif pova_mod then - - pova.add_override(name, "sprint", - {speed = SPRINT_SPEED, jump = SPRINT_JUMP}) - - pova.do_override(player) - - stamina.players[name].sprint = true - else - player:set_physics_override({ - speed = def.speed + SPRINT_SPEED, - jump = def.jump + SPRINT_JUMP, - }) - - stamina.players[name].sprint = true - end - - elseif sprinting == false and stamina.players[name].sprint then - - if monoids then - - player_monoids.speed:del_change(player, stamina.players[name].speed) - player_monoids.jump:del_change(player, stamina.players[name].jump) - - stamina.players[name].sprint = nil - stamina.players[name].jump = nil - - elseif pova_mod then - - pova.del_override(name, "sprint") - pova.do_override(player) - - stamina.players[name].sprint = nil - else - player:set_physics_override({ - speed = def.speed - SPRINT_SPEED, - jump = def.jump - SPRINT_JUMP, - }) - - stamina.players[name].sprint = nil - end - end -end - - --- Time based stamina functions -local stamina_timer = 0 -local health_timer = 0 -local action_timer = 0 -local poison_timer = 0 -local drunk_timer = 0 - -local function stamina_globaltimer(dtime) - - stamina_timer = stamina_timer + dtime - health_timer = health_timer + dtime - action_timer = action_timer + dtime - poison_timer = poison_timer + dtime - drunk_timer = drunk_timer + dtime - - local players = minetest.get_connected_players() - - -- simulate drunk walking (thanks LumberJ) - if drunk_timer > 1.0 then - - for _,player in pairs(players) do - - local name = player:get_player_name() - - if stamina.players[name] - and stamina.players[name].drunk then - - stamina.players[name].drunk = stamina.players[name].drunk - 1 - - if stamina.players[name].drunk < 1 then - - stamina.players[name].drunk = nil - stamina.players[name].units = 0 - - player:hud_change(stamina.players[name].hud_id, - "text", "stamina_hud_fg.png") - end - - -- effect only works when not riding boat/cart/horse etc. - if not player:get_attach() then - - local yaw = player:get_look_horizontal() - - yaw = yaw + math.random(-0.5, 0.5) - - player:set_look_horizontal(yaw) - end - end - - drunk_timer = 0 - end - end - - - -- hurt player when poisoned - if poison_timer > STAMINA_POISON_TICK then - - for _,player in pairs(players) do - - local name = player:get_player_name() - - if stamina.players[name].poisoned - and stamina.players[name].poisoned > 0 then - - stamina.players[name].poisoned = - stamina.players[name].poisoned - 1 - - local hp = player:get_hp() - 1 - - if hp > 0 then - player:set_hp(hp) - end - - elseif stamina.players[name].poisoned then - - player:hud_change(stamina.players[name].hud_id, - "text", "stamina_hud_fg.png") - - stamina.players[name].poisoned = nil - end - - poison_timer = 0 - end - end - - - -- sprint control and particle animation - if action_timer > STAMINA_MOVE_TICK then - - for _,player in pairs(players) do - - local controls = player:get_player_control() - - -- Determine if the player is walking - if controls.jump then - exhaust_player(player, STAMINA_EXHAUST_JUMP) - - elseif controls.up - or controls.down - or controls.left - or controls.right then - exhaust_player(player, STAMINA_EXHAUST_MOVE) - end - - --- START sprint - if enable_sprint then - - local name = player:get_player_name() - - -- check if player can sprint (stamina must be over 6 points) - if not stamina.players[name].poisoned - and not stamina.players[name].drunk - and controls.aux1 and controls.up - and not minetest.check_player_privs(player, {fast = true}) - and get_int_attribute(player, "stamina:level") > 6 then - - set_sprinting(name, true) - - -- create particles behind player when sprinting - if enable_sprint_particles then - - local pos = player:get_pos() - local node = minetest.get_node({ - x = pos.x, y = pos.y - 1, z = pos.z}) - - if node.name ~= "air" then - - minetest.add_particlespawner({ - amount = 5, - time = 0.01, - minpos = {x = pos.x - 0.25, y = pos.y + 0.1, z = pos.z - 0.25}, - maxpos = {x = pos.x + 0.25, y = pos.y + 0.1, z = pos.z + 0.25}, - minvel = {x = -0.5, y = 1, z = -0.5}, - maxvel = {x = 0.5, y = 2, z = 0.5}, - minacc = {x = 0, y = -5, z = 0}, - maxacc = {x = 0, y = -12, z = 0}, - minexptime = 0.25, - maxexptime = 0.5, - minsize = 0.5, - maxsize = 1.0, - vertical = false, - collisiondetection = false, - texture = "default_dirt.png", - }) - - end - end - - -- Lower the player's stamina when sprinting - local level = get_int_attribute(player, "stamina:level") - - stamina_update_level(player, - level - (SPRINT_DRAIN * STAMINA_MOVE_TICK)) - else - set_sprinting(name, false) - end - end - -- END sprint - - action_timer = 0 - end - end - - - - -- lower saturation by 1 point after STAMINA_TICK - if stamina_timer > STAMINA_TICK then - - for _,player in pairs(players) do - - local h = get_int_attribute(player, "stamina:level") - - if h > STAMINA_TICK_MIN then - stamina_update_level(player, h - 1) - end - - stamina_timer = 0 - end - end - - - -- heal or damage player, depending on saturation - if health_timer > STAMINA_HEALTH_TICK then - - for _,player in pairs(players) do - - local air = player:get_breath() or 0 - local hp = player:get_hp() - local h = get_int_attribute(player, "stamina:level") - local name = player:get_player_name() - - -- damage player by 1 hp if saturation is < 2 (of 30) - if h < STAMINA_STARVE_LVL - and hp > 0 then - player:set_hp(hp - STAMINA_STARVE) - end - - -- don't heal if drowning or dead or poisoned - if h >= STAMINA_HEAL_LVL - and h >= hp - and hp > 0 - and air > 0 - and not stamina.players[name].poisoned then - - player:set_hp(hp + STAMINA_HEAL) - - stamina_update_level(player, h - 1) - end - - health_timer = 0 - end - end - -end - - --- override core.do_item_eat() so we can redirect hp_change to stamina -core.do_item_eat = function(hp_change, replace_with_item, itemstack, user, pointed_thing) - - if user.is_fake_player then - return -- abort if called by fake player (eg. pipeworks-wielder) - end - - local old_itemstack = itemstack - - itemstack = stamina.eat(hp_change, replace_with_item, itemstack, user, pointed_thing) - - for _, callback in pairs(core.registered_on_item_eats) do - - local result = callback(hp_change, replace_with_item, itemstack, user, - pointed_thing, old_itemstack) - - if result then - return result - end - end - - return itemstack -end - - --- not local since it's called from within core context -function stamina.eat(hp_change, replace_with_item, itemstack, user, pointed_thing) - - if not itemstack or not user then - return itemstack - end - - local level = get_int_attribute(user, "stamina:level") or 0 - - if level >= STAMINA_VISUAL_MAX then - return itemstack - end - - local name = user:get_player_name() - - if hp_change > 0 then - - stamina_update_level(user, level + hp_change) - - elseif hp_change < 0 then - - -- assume hp_change < 0 - user:hud_change(stamina.players[name].hud_id, "text", - "stamina_hud_poison.png") - - stamina.players[name].poisoned = -hp_change - end - - minetest.sound_play("stamina_eat", {to_player = name, gain = 0.7}) - - -- particle effect when eating - local pos = user:get_pos() ; pos.y = pos.y + 1.5 -- mouth level - local itemname = itemstack:get_name() - local texture = minetest.registered_items[itemname].inventory_image - local dir = user:get_look_dir() - - minetest.add_particlespawner({ - amount = 5, - time = 0.1, - minpos = pos, - maxpos = pos, - minvel = {x = dir.x - 1, y = dir.y, z = dir.z - 1}, - maxvel = {x = dir.x + 1, y = dir.y, z = dir.z + 1}, - minacc = {x = 0, y = -5, z = 0}, - maxacc = {x = 0, y = -9, z = 0}, - minexptime = 1, - maxexptime = 1, - minsize = 1, - maxsize = 2, - texture = texture, - }) - - itemstack:take_item() - - if replace_with_item then - - if itemstack:is_empty() then - itemstack:add_item(replace_with_item) - else - local inv = user:get_inventory() - - if inv:room_for_item("main", {name = replace_with_item}) then - inv:add_item("main", replace_with_item) - else - pos.y = math.floor(pos.y - 1.0) - core.add_item(pos, replace_with_item) - end - end - end - - -- check for alcohol - local units = minetest.registered_items[itemname].groups - and minetest.registered_items[itemname].groups.alcohol or 0 - - if units > 0 then - - stamina.players[name].units = (stamina.players[name].units or 0) + 1 - - if stamina.players[name].units > 3 then - - stamina.players[name].drunk = 60 - stamina.players[name].units = 0 - - user:hud_change(stamina.players[name].hud_id, "text", - "stamina_hud_poison.png") - - minetest.chat_send_player(name, - minetest.get_color_escape_sequence("#1eff00") - .. "You suddenly feel tipsy!") - end - end - - return itemstack -end - - --- stamina is disabled if damage is disabled -if minetest.setting_getbool("enable_damage") -and minetest.setting_get("enable_stamina") ~= false then - - minetest.register_on_joinplayer(function(player) - - local level = STAMINA_VISUAL_MAX -- TODO - - if get_int_attribute(player, "stamina:level") then - - level = math.min(get_int_attribute(player, "stamina:level"), - STAMINA_VISUAL_MAX) - else - player:set_attribute("stamina:level", level) - end - - local name = player:get_player_name() - - local id = player:hud_add({ - name = "stamina", - hud_elem_type = "statbar", - position = {x = 0.5, y = 1}, - size = {x = 24, y = 24}, - text = "stamina_hud_fg.png", - number = level, - alignment = {x = -1, y = -1}, - offset = {x = -266, y = -110}, - max = 0, - }) - - stamina.players[name] = { - hud_id = id, - exhaustion = 0, - poisoned = nil, - drunk = nil, - sprint = nil, - } - end) - - minetest.register_on_respawnplayer(function(player) - - local name = player:get_player_name() - - if stamina.players[name].poisoned - or stamina.players[name].drunk then - player:hud_change(stamina.players[name].hud_id, - "text", "stamina_hud_fg.png") - end - - stamina.players[name].exhaustion = 0 - stamina.players[name].poisoned = nil - stamina.players[name].drunk = nil - stamina.players[name].sprint = nil - - stamina_update_level(player, STAMINA_VISUAL_MAX) - end) - - minetest.register_globalstep(stamina_globaltimer) - - minetest.register_on_placenode(function(pos, oldnode, player, ext) - exhaust_player(player, STAMINA_EXHAUST_PLACE) - end) - - minetest.register_on_dignode(function(pos, oldnode, player, ext) - exhaust_player(player, STAMINA_EXHAUST_DIG) - end) - - minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) - exhaust_player(player, STAMINA_EXHAUST_CRAFT) - end) - - minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage) - exhaust_player(hitter, STAMINA_EXHAUST_PUNCH) - end) - -else - - -- create player table on join - minetest.register_on_joinplayer(function(player) - stamina.players[player:get_player_name()] = { - poisoned = nil, sprint = nil, drunk = nil, exhaustion = 0} - end) - -end - --- clear when player leaves -minetest.register_on_leaveplayer(function(player) - stamina.players[player:get_player_name()] = nil -end) -- 2.40.1 From 87300482b984d743effbcdb51d2cc50f8b3fc713 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:30 -0500 Subject: [PATCH 303/321] Delete mod.conf --- mods/stamina/mod.conf | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/mod.conf diff --git a/mods/stamina/mod.conf b/mods/stamina/mod.conf deleted file mode 100644 index b049a5a0..00000000 --- a/mods/stamina/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = stamina -- 2.40.1 From c10f49b901eb6526928c9e370817e5ec8580c017 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:37 -0500 Subject: [PATCH 304/321] Delete screenshot.png --- mods/stamina/screenshot.png | Bin 1165 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/screenshot.png diff --git a/mods/stamina/screenshot.png b/mods/stamina/screenshot.png deleted file mode 100644 index f3776ef5ca677fbbf53537f96271510236314568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1165 zcmV;81akX{P)96>0BmoV<%mKC(!^+YQ6e_x-N#TT&U9yojV08HToP zp)!cRZI3OIOFp{DVAif{a`ty^%P21*-y?!`=tkN1U5D+FOFn_fZrA!f)9k1negh_X z5%~rYb3oHgvFr51FzmXHQ9g|bti3mVR@dPoqr8Zu7qL~*;FV8urst~AzXzWg=0zmE zh=hoUh=_xzVAkF;86c(L^e}{(BP}x@vZL5lJa>fBy@@ z)l@OfM-wSay~d}f)0)`jMI^BZ#AY+vKiTCYid3d&vh~2BooQY~l8Hds9KdWvMZq;6 z^H+RPR1ThTUPMxgxQ0iYBENj(@eyD?foGQ&k;Ec;o%7>rZ1OUyDC4XmA|f>E@W@l7 zR!wl!If~S3>tl~GUh-ix+hcJbN>Z$Pmw_f?0QA#Hgb0n4$V-Q9mLjUr9E~ys8@N;W zC6{rpIiGJ7`MWp*KZhckLx<2`=2*k_F3o2k(k>E2u5n10D+A7<~wZ~bfCwON> zaO0`SFbrM<-X29niO6k;sGHeqFnkY^qK)J%auAW*74c>1M?Nj`wO?o=!dZm6;LTO& zZ&ptuA`wNDh^$Hk&++gd-;c&eXx~A@i+GN&{qLKrh>|vvgNP@X7Ct)qo^&X_ABk{n zK)xc4h~y-4Awxv`rTx@}T<^b)b4ATHN1l_4)Job&G!b?Eqwj^`cyeXl{OlMvAtc_l zifi~il0rm@$V7zmnckAQ6WdA5&z%sFh$2cvc#C{8ZfLJrB*Nj}iLj}Q%RgmB4)$QQ zCwp0A4_VWxuJB-H>p>yxd#-veCyE@W@s7G4de}Y@X#z#oKi?PokrRnA$)v&P#|HPB z3}-;AM!8wNIH8ry^i^c0FPZ=AX90stmiG-%21V(6MX1X`wCr+*_YFW22)uoUFVr?i fUYqd>y|=`FLTt|gyS!6600000NkvXXu0mjfoKYmz -- 2.40.1 From b43a0b12e55a20546f66ba64354ce89ccf327986 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:45 -0500 Subject: [PATCH 305/321] Delete stamina_eat.1.ogg --- mods/stamina/sounds/stamina_eat.1.ogg | Bin 9333 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/sounds/stamina_eat.1.ogg diff --git a/mods/stamina/sounds/stamina_eat.1.ogg b/mods/stamina/sounds/stamina_eat.1.ogg deleted file mode 100644 index da2b68b201772eb175924885b85fc5030e5d806a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9333 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 -- 2.40.1 From 806f783eafa0e1c7190985156cf464a347306a83 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:13:53 -0500 Subject: [PATCH 306/321] Delete stamina_eat.2.ogg --- mods/stamina/sounds/stamina_eat.2.ogg | Bin 11736 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/sounds/stamina_eat.2.ogg diff --git a/mods/stamina/sounds/stamina_eat.2.ogg b/mods/stamina/sounds/stamina_eat.2.ogg deleted file mode 100644 index edca4239dc6c9b95df5588afa9f227e379886d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11736 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 Date: Wed, 18 Dec 2019 15:14:01 -0500 Subject: [PATCH 307/321] Delete stamina_eat.3.ogg --- mods/stamina/sounds/stamina_eat.3.ogg | Bin 11656 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/sounds/stamina_eat.3.ogg diff --git a/mods/stamina/sounds/stamina_eat.3.ogg b/mods/stamina/sounds/stamina_eat.3.ogg deleted file mode 100644 index 1f06ea581334811c8760881a83d3a172138ad78b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11656 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 VXr4zSvBvFFyCks}pO667{{aK%bkqO< -- 2.40.1 From 56ba2ecbb7dfa2b638bb09a6dd81df57851a2b21 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:14:12 -0500 Subject: [PATCH 308/321] Delete stamina_hud_bg.png --- mods/stamina/textures/stamina_hud_bg.png | Bin 417 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/textures/stamina_hud_bg.png diff --git a/mods/stamina/textures/stamina_hud_bg.png b/mods/stamina/textures/stamina_hud_bg.png deleted file mode 100644 index 07e21e7be47ebfe19f972382f6ea5a086a33cbfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)pGQ%OWYRCt`Nlf7=jFcd~Z)s4q-V#j}S9N(Bo9uNaUNQ_8GOc{AB z-maBG`8vgdma0hS*v&hyhZwANsZfiVWoIXLI2s_N})-8TUd zjUfaO5kd%1O2HU|rfFcUg;ENPvG<1pBD&Od4Jjq8wTLldwOXO?dsu5Bgg{xAQ?fA& z_WS*8yWNh)7?foR&N5y3eJB7(IRbzSGHX|2bcfQT;6IdIP5z0X~xln_Ed zN(t{hy!V*u7-N@P!PPkj=Nw{;xm#6LIh9fhA%u(&0=I$>BFd4Sb1=q0YmKI9Af<#c z2Gf8i02IYA470=GaOt`(Prq&3%x%}(!$fqwdxhO@hZrMbjOe-!lkg`V?!kF}D%R^Y zQc6fEVX;^s#)y;>Hk%FlzQ@Bw8iwKJ(MJBpU4rBB`1&Wov!Ce`d<6U`HGiA|00000 LNkvXXu0mjf5NEV} -- 2.40.1 From 0636a4c6d030b302823bd24027f7fe1a0c690ee4 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:14:21 -0500 Subject: [PATCH 309/321] Delete stamina_hud_fg.png --- mods/stamina/textures/stamina_hud_fg.png | Bin 522 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/textures/stamina_hud_fg.png diff --git a/mods/stamina/textures/stamina_hud_fg.png b/mods/stamina/textures/stamina_hud_fg.png deleted file mode 100644 index a5cc2a12339c1fcba9e605fb5cae51aabcefb60c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)pGyh%hsRCt`NlfP?IVHAd+ivNL21xFVL|C0n#xP+i^QAlWqIyfi| zNJ(|Dv}V%5Hsp#oVkM*!2m~Z0v~q__BmSVxu^J9O+YXXFK0RD zIWOP$9wae|CK~=f0DpR6MD-+cW1&hnQ0XQr+Wh>pZvIwADLRAaxBv4?74{TPENeux5e{O2973m*1$T%o?iuPB~-Xhx1 zqUJJcrcv`2GHc-ylSjtk_{=X1%2(7bphE|J$)kh(urY^PIn>IBGQ&kc_nDm%_0}w4oO^A8-asU7T M07*qoM6N<$g3~bI Date: Wed, 18 Dec 2019 15:14:28 -0500 Subject: [PATCH 310/321] Delete stamina_hud_poison.png --- mods/stamina/textures/stamina_hud_poison.png | Bin 3196 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/stamina/textures/stamina_hud_poison.png diff --git a/mods/stamina/textures/stamina_hud_poison.png b/mods/stamina/textures/stamina_hud_poison.png deleted file mode 100644 index 0f80ad26b38f194e52b3ad8da96f8152fe12277b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3196 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 Date: Wed, 18 Dec 2019 15:16:34 -0500 Subject: [PATCH 311/321] Create a --- mods/stamina/a | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/stamina/a diff --git a/mods/stamina/a b/mods/stamina/a new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/stamina/a @@ -0,0 +1 @@ + -- 2.40.1 From e1a36915827d08842f56f621a646546a919c266c Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:17:22 -0500 Subject: [PATCH 312/321] Add files via upload --- mods/stamina/.luacheckrc | 20 ++ mods/stamina/API.txt | 64 +++++ mods/stamina/README.txt | 50 ++++ mods/stamina/bower.json | 14 + mods/stamina/depends.txt | 3 + mods/stamina/description.txt | 1 + mods/stamina/init.lua | 522 ++++++++++++++++++++++++++++++++++ mods/stamina/mod.conf | 1 + mods/stamina/screenshot.png | Bin 0 -> 32843 bytes mods/stamina/settingtypes.txt | 23 ++ 10 files changed, 698 insertions(+) create mode 100644 mods/stamina/.luacheckrc create mode 100644 mods/stamina/API.txt create mode 100644 mods/stamina/README.txt create mode 100644 mods/stamina/bower.json create mode 100644 mods/stamina/depends.txt create mode 100644 mods/stamina/description.txt create mode 100644 mods/stamina/init.lua create mode 100644 mods/stamina/mod.conf create mode 100644 mods/stamina/screenshot.png create mode 100644 mods/stamina/settingtypes.txt diff --git a/mods/stamina/.luacheckrc b/mods/stamina/.luacheckrc new file mode 100644 index 00000000..a6b40039 --- /dev/null +++ b/mods/stamina/.luacheckrc @@ -0,0 +1,20 @@ +unused_args = false +allow_defined_top = true + +read_globals = { + "DIR_DELIM", + "minetest", + "dump", + "vector", "nodeupdate", + "VoxelManip", "VoxelArea", + "PseudoRandom", "ItemStack", + "intllib", + "default", + "armor", + "player_monoids", +} + +globals = { + minetest = { fields = { "do_item_eat" }}, +} + diff --git a/mods/stamina/API.txt b/mods/stamina/API.txt new file mode 100644 index 00000000..334a2d0f --- /dev/null +++ b/mods/stamina/API.txt @@ -0,0 +1,64 @@ +stamina.get_saturation(player) + Gets a player's saturation + +stamina.set_saturation(player, level) + Set a player's saturation. + Updates the HUD to reflect saturation level. + +stamina.update_saturation(player, level) + Update's a player's saturation. + Callbacks are processed first. + +stamina.change_saturation(player, change) + Update a player's saturation by a delta, instead of an absolute value. + +stamina.register_on_update_saturation(function(player, level)) + Register a callback for when saturation is updated. + If the callback returns True, no further callbacks are called, + and the default behavior is bypassed. +----------------------- +stamina.is_poisoned(player) + Check if a player is poisoned + +stamina.set_poisoned(player, poisoned) + Set a player's "poisoned" status (boolean) + Updates the HUD to reflect poison status. + +stamina.poison(player, ticks, interval) + Poison a player for a certain amount of time. + Ticks is how many times to poison the player. + Interval is the time between poison ticks. + Processes callbacks before changing status. + +stamina.register_on_poison(function(player, ticks, interval)) + Register a callback for when a player is poisoned. + If the callback returns True, no further callbacks are called, + and the default behavior is bypassed. +------------------------- +stamina.get_exhaustion(player) + Gets a player's exhaustion level. + Value is between 0 and `stamina.exhaust_lvl` (default: 160) + +stamina.set_exhaustion(player, level) + Sets a player's exhaustion level. + +stamina.exhaust_player(player, change, cause) + Update a player's exhaustion by "change". + If the player's exhaustion exceeds `stamina.exhaust_lvl`, stamina + is taken and exhaustion is reset. + Cause is an optional argument indicating the origin of the exhaustion. + Callbacks are processed before exhausting the player. + +stamina.register_on_exhaust_player(function(player, change, cause)) + Register a callback for when exhaustion is updated. + If the callback returns True, no further callbacks are called, + and the default behavior is bypassed. +------------------------ +stamina.set_sprinting(name, sprinting) + Sets whether a player is sprinting or not. + Callbacks are processed before setting sprint status. + +stamina.register_on_sprinting(function(player, sprinting)) + Register a callback for when a player's sprinting status is updated. + If the callback returns True, no further callbacks are called, + and the default behavior is bypassed. diff --git a/mods/stamina/README.txt b/mods/stamina/README.txt new file mode 100644 index 00000000..388c32bf --- /dev/null +++ b/mods/stamina/README.txt @@ -0,0 +1,50 @@ +Minetest mod "Stamina" +===================== + +(C) 2015 - BlockMen +(C) 2016 - Auke Kok + + +About this mod: +--------------- +This mod adds a stamina, or "hunger" mechanic to Minetest. Actions like +crafting, walking, digging or fighting make the player exhausted. When +enough exhaustion has been accumulated, the player gets more hungry, +and loses stamina. + +If a player is low on stamina, they start taking periodical damage, +and ultimately will die if they do not eat food. + +Eating food no longer heals the player. Instead, it increases the +stamina of the player. The stamina bar shows how well fed the player +is. More bread pieces means more stamina. + + +Q&A time: Why won't I move the stamina bar to the right? + +Answer: this conflicts with the builtin breath bar. To move the +builtin breath bar, I basically have to entirely re-implement it +in lua including timers to catch breath changes for each online +player, which is all a waste of time, just to move a few pixels +around. + + +For Modders: +------------ +This mod intercepts minetest.item_eat(), and applies the hp_change +as stamina change. The value can be positive (increase stamina) or +negative (periodically damage the player by 1 hp). + +See API.txt for information on the API. + +License: +-------- +Code: +- all code LGPL-2.1+ +Textures: +- stamina_hud_poison.png - BlockMen (CC-BY 3.0) +- stamina_hud_fg.png - PilzAdam (WTFPL), modified by BlockMen +- stamina_hud_bg.png - PilzAdam (WTFPL), modified by BlockMen +Sounds: +- stamina_eat.*.ogg - http://www.freesound.org/people/sonictechtonic/sounds/242215/ CC-BY-3.0 + diff --git a/mods/stamina/bower.json b/mods/stamina/bower.json new file mode 100644 index 00000000..34362013 --- /dev/null +++ b/mods/stamina/bower.json @@ -0,0 +1,14 @@ +{ + "name": "stamina", + "description": "This mod adds a stamina, or hunger mechanic to Minetest. Actions like crafting, walking, digging or fighting make the player exhausted.", + "homepage": "https://github.com/minetest-mods/stamina", + "authors": [ + "BlockMen - 2015", + "Auke Kok - 2016" + ], + "license": "LGPL-2.1+", + "keywords": [ + "hunger", + "stamina" + ] +} \ No newline at end of file diff --git a/mods/stamina/depends.txt b/mods/stamina/depends.txt new file mode 100644 index 00000000..bdb6c204 --- /dev/null +++ b/mods/stamina/depends.txt @@ -0,0 +1,3 @@ +default +3d_armor? +player_monoids? diff --git a/mods/stamina/description.txt b/mods/stamina/description.txt new file mode 100644 index 00000000..1074b3d4 --- /dev/null +++ b/mods/stamina/description.txt @@ -0,0 +1 @@ +Adds stamina and hunger effects. diff --git a/mods/stamina/init.lua b/mods/stamina/init.lua new file mode 100644 index 00000000..2fb6efde --- /dev/null +++ b/mods/stamina/init.lua @@ -0,0 +1,522 @@ +if not minetest.settings:get_bool("enable_damage") then + minetest.log("warning", "[stamina] Stamina will not load if damage is disabled (enable_damage=false)") + return +end + +stamina = {} +local modname = minetest.get_current_modname() +local armor_mod = minetest.get_modpath("3d_armor") and minetest.global_exists("armor") and armor.def +local player_monoids_mod = minetest.get_modpath("player_monoids") and minetest.global_exists("player_monoids") + +function stamina.log(level, message, ...) + return minetest.log(level, ("[%s] %s"):format(modname, message:format(...))) +end + +local function get_setting(key, default) + local setting = minetest.settings:get("stamina." .. key) + if setting and not tonumber(setting) then + stamina.log("warning", "Invalid value for setting %s: %q. Using default %q.", key, setting, default) + end + return tonumber(setting) or default +end + +stamina.settings = { + -- see settingtypes.txt for descriptions + eat_particles = minetest.settings:get_bool("stamina.eat_particles", true), + sprint = minetest.settings:get_bool("stamina.sprint", true), + sprint_particles = minetest.settings:get_bool("stamina.sprint_particles", true), + sprint_lvl = get_setting("sprint_lvl", 6), + sprint_speed = get_setting("sprint_speed", 0.8), + sprint_jump = get_setting("sprint_jump", 0.1), + tick = get_setting("tick", 800), + tick_min = get_setting("tick_min", 4), + health_tick = get_setting("health_tick", 4), + move_tick = get_setting("move_tick", 0.5), + poison_tick = get_setting("poison_tick", 2.0), + exhaust_dig = get_setting("exhaust_dig", 3), + exhaust_place = get_setting("exhaust_place", 1), + exhaust_move = get_setting("exhaust_move", 1.5), + exhaust_jump = get_setting("exhaust_jump", 5), + exhaust_craft = get_setting("exhaust_craft", 20), + exhaust_punch = get_setting("exhaust_punch", 40), + exhaust_sprint = get_setting("exhaust_sprint", 28), + exhaust_lvl = get_setting("exhaust_lvl", 160), + heal = get_setting("heal", 1), + heal_lvl = get_setting("heal_lvl", 5), + starve = get_setting("starve", 1), + starve_lvl = get_setting("starve_lvl", 3), + visual_max = get_setting("visual_max", 20), +} +local settings = stamina.settings + +local attribute = { + saturation = "stamina:level", + hud_id = "stamina:hud_id", + poisoned = "stamina:poisoned", + exhaustion = "stamina:exhaustion", +} + +local function is_player(player) + return ( + player and + not player.is_fake_player and + player.get_attribute and -- check for pipeworks fake player + player.is_player and + player:is_player() + ) +end + +local function get_int_attribute(player, key) + local level = player:get_attribute(key) + if level then + return tonumber(level) + else + return nil + end +end +--- SATURATION API --- +function stamina.get_saturation(player) + return get_int_attribute(player, attribute.saturation) +end + +function stamina.set_saturation(player, level) + player:set_attribute(attribute.saturation, level) + player:hud_change( + player:get_attribute(attribute.hud_id), + "number", + math.min(settings.visual_max, level) + ) +end + +stamina.registered_on_update_saturations = {} +function stamina.register_on_update_saturation(fun) + table.insert(stamina.registered_on_update_saturations, fun) +end + +function stamina.update_saturation(player, level) + for _, callback in ipairs(stamina.registered_on_update_saturations) do + local result = callback(player, level) + if result then + return result + end + end + + local old = stamina.get_saturation(player) + + if level == old then -- To suppress HUD update + return + end + + -- players without interact priv cannot eat + if old < settings.heal_lvl and not minetest.check_player_privs(player, {interact=true}) then + return + end + + stamina.set_saturation(player, level) +end + +function stamina.change_saturation(player, change) + if not is_player(player) or not change or change == 0 then + return false + end + local level = stamina.get_saturation(player) + change + level = math.max(level, 0) + level = math.min(level, settings.visual_max) + stamina.update_saturation(player, level) + return true +end + +stamina.change = stamina.change_saturation -- for backwards compatablity +--- END SATURATION API --- +--- POISON API --- +function stamina.is_poisoned(player) + return player:get_attribute(attribute.poisoned) == "yes" +end + +function stamina.set_poisoned(player, poisoned) + if poisoned then + player:hud_change(player:get_attribute(attribute.hud_id), "text", "stamina_hud_poison.png") + player:set_attribute(attribute.poisoned, "yes") + else + player:hud_change(player:get_attribute(attribute.hud_id), "text", "stamina_hud_fg.png") + player:set_attribute(attribute.poisoned, "no") + end +end + +local function poison_tick(player, ticks, interval, elapsed) + if not stamina.is_poisoned(player) then + return + elseif elapsed > ticks then + stamina.set_poisoned(player, false) + else + local hp = player:get_hp() - 1 + if hp > 0 then + player:set_hp(hp) + end + minetest.after(interval, poison_tick, player, ticks, interval, elapsed + 1) + end +end + +stamina.registered_on_poisons = {} +function stamina.register_on_poison(fun) + table.insert(stamina.registered_on_poisons, fun) +end + +function stamina.poison(player, ticks, interval) + for _, fun in ipairs(stamina.registered_on_poisons) do + local rv = fun(player, ticks, interval) + if rv == true then + return + end + end + if not is_player(player) then + return + end + stamina.set_poisoned(player, true) + poison_tick(player, ticks, interval, 0) +end +--- END POISON API --- +--- EXHAUSTION API --- +stamina.exhaustion_reasons = { + craft = "craft", + dig = "dig", + heal = "heal", + jump = "jump", + move = "move", + place = "place", + punch = "punch", + sprint = "sprint", +} + +function stamina.get_exhaustion(player) + return get_int_attribute(player, attribute.exhaustion) +end + +function stamina.set_exhaustion(player, exhaustion) + player:set_attribute(attribute.exhaustion, exhaustion) +end + +stamina.registered_on_exhaust_players = {} +function stamina.register_on_exhaust_player(fun) + table.insert(stamina.registered_on_exhaust_players, fun) +end + +function stamina.exhaust_player(player, change, cause) + for _, callback in ipairs(stamina.registered_on_exhaust_players) do + local result = callback(player, change, cause) + if result then + return result + end + end + + if not is_player(player) then + return + end + + local exhaustion = stamina.get_exhaustion(player) or 0 + + exhaustion = exhaustion + change + + if exhaustion >= settings.exhaust_lvl then + exhaustion = exhaustion - settings.exhaust_lvl + stamina.change(player, -1) + end + + stamina.set_exhaustion(player, exhaustion) +end +--- END EXHAUSTION API --- +--- SPRINTING API --- +stamina.registered_on_sprintings = {} +function stamina.register_on_sprinting(fun) + table.insert(stamina.registered_on_sprintings, fun) +end + +function stamina.set_sprinting(player, sprinting) + for _, fun in ipairs(stamina.registered_on_sprintings) do + local rv = fun(player, sprinting) + if rv == true then + return + end + end + + if player_monoids_mod then + if sprinting then + player_monoids.speed:add_change(player, 1 + settings.sprint_speed, "stamina:physics") + player_monoids.jump:add_change(player, 1 + settings.sprint_jump, "stamina:physics") + else + player_monoids.speed:del_change(player, "stamina:physics") + player_monoids.jump:del_change(player, "stamina:physics") + end + else + local def + if armor_mod then + -- Get player physics from 3d_armor mod + local name = player:get_player_name() + def = { + speed=armor.def[name].speed, + jump=armor.def[name].jump, + gravity=armor.def[name].gravity + } + else + def = { + speed=1, + jump=1, + gravity=1 + } + end + + if sprinting then + def.speed = def.speed + settings.sprint_speed + def.jump = def.jump + settings.sprint_jump + end + + player:set_physics_override(def) + end + + if settings.sprint_particles and sprinting then + local pos = player:getpos() + local node = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + local def = minetest.registered_nodes[node.name] or {} + local drawtype = def.drawtype + if drawtype ~= "airlike" and drawtype ~= "liquid" and drawtype ~= "flowingliquid" then + minetest.add_particlespawner({ + amount = 5, + time = 0.01, + minpos = {x = pos.x - 0.25, y = pos.y + 0.1, z = pos.z - 0.25}, + maxpos = {x = pos.x + 0.25, y = pos.y + 0.1, z = pos.z + 0.25}, + minvel = {x = -0.5, y = 1, z = -0.5}, + maxvel = {x = 0.5, y = 2, z = 0.5}, + minacc = {x = 0, y = -5, z = 0}, + maxacc = {x = 0, y = -12, z = 0}, + minexptime = 0.25, + maxexptime = 0.5, + minsize = 0.5, + maxsize = 1.0, + vertical = false, + collisiondetection = false, + texture = "default_dirt.png", + }) + end + end +end +--- END SPRINTING API --- + +-- Time based stamina functions +local function move_tick() + for _,player in ipairs(minetest.get_connected_players()) do + local controls = player:get_player_control() + local is_moving = controls.up or controls.down or controls.left or controls.right + local velocity = player:get_player_velocity() + velocity.y = 0 + local horizontal_speed = vector.length(velocity) + local has_velocity = horizontal_speed > 0.05 + + if controls.jump then + stamina.exhaust_player(player, settings.exhaust_jump, stamina.exhaustion_reasons.jump) + elseif is_moving and has_velocity then + stamina.exhaust_player(player, settings.exhaust_move, stamina.exhaustion_reasons.move) + end + + if settings.sprint then + local can_sprint = ( + controls.aux1 and + not player:get_attach() and + not minetest.check_player_privs(player, {fast = true}) and + stamina.get_saturation(player) > settings.sprint_lvl + ) + + if can_sprint then + stamina.set_sprinting(player, true) + if is_moving and has_velocity then + stamina.exhaust_player(player, settings.exhaust_sprint, stamina.exhaustion_reasons.sprint) + end + else + stamina.set_sprinting(player, false) + end + end + end +end + +local function stamina_tick() + -- lower saturation by 1 point after settings.tick second(s) + for _,player in ipairs(minetest.get_connected_players()) do + local saturation = stamina.get_saturation(player) + if saturation > settings.tick_min then + stamina.update_saturation(player, saturation - 1) + end + end +end + +local function health_tick() + -- heal or damage player, depending on saturation + for _,player in ipairs(minetest.get_connected_players()) do + local air = player:get_breath() or 0 + local hp = player:get_hp() + local saturation = stamina.get_saturation(player) + + -- don't heal if dead, drowning, or poisoned + local should_heal = ( + saturation >= settings.heal_lvl and + saturation >= hp and + hp > 0 and + air > 0 + and not stamina.is_poisoned(player) + ) + -- or damage player by 1 hp if saturation is < 2 (of 30) + local is_starving = ( + saturation < settings.starve_lvl and + hp > 0 + ) + + if should_heal then + player:set_hp(hp + settings.heal) + stamina.exhaust_player(player, settings.exhaust_lvl, stamina.exhaustion_reasons.heal) + elseif is_starving then + player:set_hp(hp - settings.starve) + end + end +end + +local stamina_timer = 0 +local health_timer = 0 +local action_timer = 0 + +local function stamina_globaltimer(dtime) + stamina_timer = stamina_timer + dtime + health_timer = health_timer + dtime + action_timer = action_timer + dtime + + if action_timer > settings.move_tick then + action_timer = 0 + move_tick() + end + + if stamina_timer > settings.tick then + stamina_timer = 0 + stamina_tick() + end + + if health_timer > settings.health_tick then + health_timer = 0 + health_tick() + end +end + +-- override minetest.do_item_eat() so we can redirect hp_change to stamina +stamina.core_item_eat = minetest.do_item_eat +function minetest.do_item_eat(hp_change, replace_with_item, itemstack, player, pointed_thing) + for _, callback in ipairs(minetest.registered_on_item_eats) do + local result = callback(hp_change, replace_with_item, itemstack, player, pointed_thing) + if result then + return result + end + end + + if not is_player(player) or not itemstack then + return itemstack + end + + local level = stamina.get_saturation(player) or 0 + if level >= settings.visual_max then + -- don't eat if player is full + return itemstack + end + + local itemname = itemstack:get_name() + if replace_with_item then + stamina.log("action", "%s eats %s for %s stamina, replace with %s", + player:get_player_name(), itemname, hp_change, replace_with_item) + else + stamina.log("action", "%s eats %s for %s stamina", + player:get_player_name(), itemname, hp_change) + end + minetest.sound_play("stamina_eat", {to_player = player:get_player_name(), gain = 0.7}) + + if hp_change > 0 then + stamina.change_saturation(player, hp_change) + stamina.set_exhaustion(player, 0) + else + -- assume hp_change < 0. + stamina.poison(player, -hp_change, settings.poison_tick) + end + + if settings.eat_particles then + -- particle effect when eating + local pos = player:getpos() + pos.y = pos.y + 1.5 -- mouth level + local texture = minetest.registered_items[itemname].inventory_image + local dir = player:get_look_dir() + + minetest.add_particlespawner({ + amount = 5, + time = 0.1, + minpos = pos, + maxpos = pos, + minvel = {x = dir.x - 1, y = dir.y, z = dir.z - 1}, + maxvel = {x = dir.x + 1, y = dir.y, z = dir.z + 1}, + minacc = {x = 0, y = -5, z = 0}, + maxacc = {x = 0, y = -9, z = 0}, + minexptime = 1, + maxexptime = 1, + minsize = 1, + maxsize = 2, + texture = texture, + }) + end + + itemstack:take_item() + + if replace_with_item then + if itemstack:is_empty() then + itemstack:add_item(replace_with_item) + else + local inv = player:get_inventory() + if inv:room_for_item("main", {name=replace_with_item}) then + inv:add_item("main", replace_with_item) + else + local pos = player:getpos() + pos.y = math.floor(pos.y - 1.0) + minetest.add_item(pos, replace_with_item) + end + end + end + + return itemstack +end + +minetest.register_on_joinplayer(function(player) + local level = stamina.get_saturation(player) or settings.visual_max + local id = player:hud_add({ + name = "stamina", + hud_elem_type = "statbar", + position = {x = 0.5, y = 1}, + size = {x = 24, y = 24}, + text = "stamina_hud_fg.png", + number = level, + alignment = {x = -1, y = -1}, + offset = {x = -266, y = -110}, + max = 0, + }) + stamina.set_saturation(player, level) + player:set_attribute(attribute.hud_id, id) + -- reset poisoned + stamina.set_poisoned(player, false) +end) + +minetest.register_globalstep(stamina_globaltimer) + +minetest.register_on_placenode(function(pos, oldnode, player, ext) + stamina.exhaust_player(player, settings.exhaust_place, stamina.exhaustion_reasons.place) +end) +minetest.register_on_dignode(function(pos, oldnode, player, ext) + stamina.exhaust_player(player, settings.exhaust_dig, stamina.exhaustion_reasons.dig) +end) +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + stamina.exhaust_player(player, settings.exhaust_craft, stamina.exhaustion_reasons.craft) +end) +minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage) + stamina.exhaust_player(hitter, settings.exhaust_punch, stamina.exhaustion_reasons.punch) +end) +minetest.register_on_respawnplayer(function(player) + stamina.update_saturation(player, settings.visual_max) +end) diff --git a/mods/stamina/mod.conf b/mods/stamina/mod.conf new file mode 100644 index 00000000..b049a5a0 --- /dev/null +++ b/mods/stamina/mod.conf @@ -0,0 +1 @@ +name = stamina diff --git a/mods/stamina/screenshot.png b/mods/stamina/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4ea1cb01a84f69f80ac713e650185dfdb6bf31e9 GIT binary patch literal 32843 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 Date: Wed, 18 Dec 2019 15:26:13 -0500 Subject: [PATCH 313/321] Create a --- mods/stamina/sounds/a | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/stamina/sounds/a diff --git a/mods/stamina/sounds/a b/mods/stamina/sounds/a new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/stamina/sounds/a @@ -0,0 +1 @@ + -- 2.40.1 From 098acdb9c37fc82e9146ed89f4644c392ae98809 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:27:03 -0500 Subject: [PATCH 314/321] Add files via upload --- mods/stamina/sounds/stamina_eat.1.ogg | Bin 0 -> 9333 bytes mods/stamina/sounds/stamina_eat.2.ogg | Bin 0 -> 11736 bytes mods/stamina/sounds/stamina_eat.3.ogg | Bin 0 -> 11656 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/stamina/sounds/stamina_eat.1.ogg create mode 100644 mods/stamina/sounds/stamina_eat.2.ogg create mode 100644 mods/stamina/sounds/stamina_eat.3.ogg diff --git a/mods/stamina/sounds/stamina_eat.1.ogg b/mods/stamina/sounds/stamina_eat.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..da2b68b201772eb175924885b85fc5030e5d806a GIT binary patch literal 9333 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 literal 0 HcmV?d00001 diff --git a/mods/stamina/sounds/stamina_eat.2.ogg b/mods/stamina/sounds/stamina_eat.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..edca4239dc6c9b95df5588afa9f227e379886d6e GIT binary patch literal 11736 zcmaiacQ{-|l1PNlT7F`e|L@!ZR z4WjoN(aU$q`+MK_`{R4Q^PD~Rl$kl_%$YMYclK)7*k}WIz<(ugdIGY2j3EeHd| z)5+Ds&h4TDB3E$n003u7$mO#dqH%%w-{}JLVx-`K-2-yT^Z%77@&A$G1xNMmoNf6u zTy2=1*;(jb5@%9kx+@?kEFdT#%)~X58vNfGenA>S_z#yw_Mt8WkO2TTHz@a`9Jian z6m+thw6ieT9{V*~SyjrHu)C^8o$PLJn6oow!;H9I{CtA~E)YT=cvA;QJRo5XW|z{B z3*wXlYhehm&+ej+LiRs}Ji-27|83hNT242_Mh}+dS~T`EL%k2a0ck zh#s^-gC9KrS3rcQrVj3WfT0WKMvyQDGYMJI0B-;w^CMTpN3JUrbfs5-HUOZI(V}j3 zfwjlN+Dl+pNv;_Xg3JI&Ksd#SY{lp~#W*&DIQGlD5RT>TEWONkFVPhNKvRoM-i4a@ z63+?%NHWDDa`Yo|Y$F!KqDg{Z72pAA03ZOT5qhXCsgNMotAiS@bQu3%*(lMP_7WZB zAw|F4lRTm@0eo7b%X0vifu@WQXh#2s$!MrD`A5=1#8ldBrU7}1atVSyO|il!E;Zr{ zVlmCFr+pz!um`MtOfw)$0pS+YnllZq{Ht-6`20-azUXu5S$>>G*#g!$3Vq(BL{)$_ z!a}>~6qORNrufANnW}Qp=XOErvRL`C3`?WBXkxy8Nlg9u1FUJZEKjCU{5QxY+$EF2 z{mM|hiZcHNC+T0bWqL$uL3elg!Tyo}DP2&S>`LE~ZFYh<3Hw_Yq%!9}hT{P;B+Mby zNX7pY7Gcb#{6R^)5XyMfW{82kCOg> z@;0oOl3nWtnC}eS6&}!*M|oHeCwdrE`5TRdnC$ycfce0~TtCs;;Qz}1whmr!CQ#V_ zZ3Nx|b?ZVbu_aLaXPe-G0?yP5m-41m%BIrK*4@vm@kdC5N=l1ben1G-M`NNT>YycJ zJs@nNEn$24sjX zZe+v^SM;n{9Gg-cyIq`(Pa@`B%JRE(ZtNupKyd+bks>~MN91`&V7#N3!s2Y-C1UbY zcsf3<)fBD%|MJyK0cQgMcQyrAHU%V`JQA#2au-c@!ChFBAe+1^Z)d;IzdiO*Nr4R2 zbN{C_{_6k$fUNy9b!Q(;?FKszc?YF^2Zxl$X`}vsNo_z#jS6He>BWU@ga!B9!Msr- zy^|cl)y%epd_W9e>JfOExqkx@l-5d(kbTpVs1%%hajysfE%06mwh1=FTzj-u*yMW< z-1Ipu2!*_?K`rHyPtbeH?3Ft9vuR*+g)4_nC6Yde+A^X9L;{Gx-_;L4-_Ss0r~%*w z1@a0!B*CHwzW4^&A-DiTMj&$2w0jU-?-M!@9Pi_Az;n_p!O^sY9;NxT_z)Tr6jsN^-MO>k85xVJ*xLc&@)C^c#|oDRz1rW)=oyV^Z9 zHENVLl{|_DrJbmTdTZS)dCJHyChN|!Yn-gyxCX)V} z6lz!pWh8>aRSIjln`oh|4M57C*29%3y&(@ZYLj7YwNV-rDiJk`vqmL)n7N}&^h}0_ zQF?p+qeK2CLmuYP3(CVd50s~e*^t9jl81>t$K|R_P~fVBLCWB&96(Zf|Fve+=wA<< zhl2@~{O|>3dDL4I5O?aW_2rr`MzuXWOe!5LlO2q1se@|D0 z#@$U!L{0RD9ZW=D84UZI>7dN?tVcz44feo$SmH4SeT2e!XnTg3d03lOdzcwGnk?2; zMm;<35L~Ulck;;HOe_&s2`_fM+ElQ5@O^`~c8f=9pxk2s$kp=)kZ`{J*B(WBt@q>p@AS0kbZxEd9mg>rI z_6kkqr<9fy+^yMGJxZiG< zFhSCHZpgcf*$GHPo}BVTghGzn8zeDvP8>3lJqOCOm~Hh_Yndrq2N|B1O>N1=-V%p= z&7MPN6mh2t>P8NdLWY-s1Cj97o0dJ4mYN_baB_G~xvuilLRWQVkW|+LC6JVg68uSz z(h5`d-~)vVQc7@eRnI_DDoTQtP&Y?-C7rSzNXlLb-U5=kQ~67rq%cIsf-I+b#G>m< zg|7YO&w{2QDVhYk^w!l(d*?+gDUV z{nYOa8M|$KZGiXLunS&GVE;0qbK`z3A;|y2Rf;5%wa}p8^BTEwEkoJN%L0kVDw9t=(J~ht( zA+HJu03-w;i?%dKw@JZ1?TlvkN$0|T%3rBuHAv@-z+$nL4nFB{@L5w-WOUh6Q>^H~Zih72tW!6NdaW?u-J%uBoZ|12N?l8PKaUKg=d<|Y5fN16*h z!au=+$i$lx+bElAn0_Xvd{l1Tz zR!BJIEnocS07!xpEV{r+A1VtjT(~Ns|C(;d9(V%4OAwtI0uYg0c>lJ1tXNXN3u*3tCX%Hw5@y4Y07JG`0O4`MtDt0FZ))5lm3v006|~ z&|zT<0(XT(#Ka|~Wn@8__?OUV^kqc`EYawHZyM-_mtDZco5lrT{_3%+9s@f!CmS;} z2NzEnD>EZA7f&vRk%fhY2ae5V=i=mr!xugGeDmv!Ccc;Rn%?i7S=Sa)AOnF06;!P6PSn=>7btY0^(dS`ej(^upa&f8FI zF$?gb1n0?;Ll@^aZSe596vS_;h^v-gv2 zu)FX58o|OcD{bz_{7P;JOnc9rlHt6HB^f{LF@9!>em6(#r&#am&8HeyhNn0wJ-;Te zTmuO7FjlvwS0J_}dH6slz^(3fJo61>*wLjjvn=nq8)a|I zk7xYAu1?)y_p3$vM&KD6QxeoYVr0iZZZzp#P3}v@F;}`7OJiV7SKl;%OLBsB9uH4v z)s8hAiK<)UUnq_@lRi0|E+qu&H2b6KsM0rGZC*f<_a5I;!x%T$bV+~M`I*<{(r{x= zeROKJCwQ^A`ZWQ*W(?cA()RCB{WE0q#^#u_q8s-KgvK}4LtnMtH|}!3gNL1{JUM!A z4_mOaQ*D}E-2T(Euym5UTkcH`uvzMD*qGlaI;Uo3#>4*5Z0|X&J>D5=@4CTn-@tg! z$&}G(A~|Mus^$t%gPqsV-9GP;Oa76-l1kBVzS(djNuSP;Q5Lf*=o%H<@|yrF8{dq) z1w1ygR_mJTY9M z2As7E<*Y~!CR~>1gcEzKOPvP4Od?UZr#9`G-CPqA0UGxtxJiwiJqGKfW1nOhQrs$C zsN&@%&gsuj?NjQFObJ-)jvvrds8t}I-?G6p5^7|ye=~q&ZzCfw;U0u><|I~Cz|2gVbe#gj(kvbV1U-( zDz{F>@&Rj^`|InaNsL4UN~%uD=b{k~<$zkRUb9m@PcI^Cz3Z@qZEGs}>6phH{+fDT z-#zndjg1Uwgic;{0hw&1s)fq{`OH&+b9d)zNm=4GO<2t}Jz^4c$Ca%`Pf6~uo5%jI zdp^{8+L%{KZZ$zIffMz%joB#k^9JhFU=mDSE6h{srBwIcfsb@YzD;jWYiEq~#;l`` zMJxbNqx5C#ge6Z|KP7SCVf`!4CXbWvIWqh?TeB4P>Zw0-_N%`C&h7bo;E0P*f<9@c zq3IE+CVFRzk>Rxa{@I?CyjJt<`xjwuc(zY|{74iBMI7;@fz&f}xHU(3VD7vun}SKT z#F>bOyOjAg?+}f~pRX}l3oB1!>a_|xVvA$#2820-Z z7OqokRNX4cH`&9e6%u9)DuU6-)U74pN-#&GR7?i5u;SgA;dljyDg|succ+#~D`t@& z=+e}eO}A~zA#Q84g=!i=hRk~dy_c4AQ%4nXD}PS5(qA0#1Zd(zercA>sM>u$yEb~0 zQghUE{uJuO_*D9=$^C2VYixPzB#hB<=L;10r8yc-wGQ-Ens2X;e`*wliYWtA1~Gy@l5*W(AHt^M6bXlxy}| z)Zb1&ho{?80G;mBQqlF&0kkyf31)c;U5|l50vjk*RVv5g!?Avyq1t~&afs_(w^6S-`=KMj)uS!N3L zH8J_pU-_u+Ao=sMJWtz74<2}|g2YC4>h4Nz0+eXNtEDv!x>>R%lf!>~RwWteG#MPBXQsD+^@Gbs82x(H2Y=g zgF~hb^+W_R?^dM^eyCYFC8jLi88fGPR|>uZ6d-{ChM;S`5&(H-DS2{ufQWX~n^msB z?gwX2ZX+7#1<8SCB*xwA`<^^~t)k2XpyE}rN(0D@FuV-#PMZuHDDn>&6%C-lZ`K@H zsC)11-@zJUB~#%&DE6kf=5*HsWyw%wHXe4SZA#b02n=c}?iw3#7&kmGVY{N4$C)zf zno?DCWS5U)r`vUBm`IB6Z(;umTHAx=e73+3wzs;T zbm+Ie+kt}$w=Oz~MgL4Xjvr_}PbUG$v`SX*N>1>@WPl;6C&N4=l8}A*N^I?cgfBu2 zAkZ>)rD8Z{C1L{9>ZNmbeSZt(p$?IK6tbZ*t*L(!b*h-yP46)FYuRws$t zTVgj*U18Ba1iv&5e&45Npa;krsTy10W=8fMTztdxRc_ry^)XL&F|}7gCSt6-nmk9B zKbXtRFFfxp<{wk@R%M!4!CTy6A-=d(w5GI`aMZ924+PzTYk8}Ec0;IKj4wyOVm}}~ zX>++m15OO^4sZN0_b%vMQ#4iag{~M-exvEQQP}H295OAF^Npg!BYA-)+@FegmKBe_KfFz9*nm z2>1D$h`%=>{7g!U5Re-uohCyB+XvQ;W&&KHb)Q-I?@P*`%LzZ!{<~XNwE_s4)om4j zkC$eG=-<}V*YB?8)sLkN@%*cyWc=tRo8XU_^B{46*SzajFsC>`*jP*SYhV+X@?QTm zvO*z|`e6I2A=iv|huRn&(ou0icR-B9`xi9iHkyr?vc{~ZS* z!$?xeysgPJy}cN6Dt#r_$h2U+7%lJHF)$Ul1*n=y?@CX%pWAN$gcy8hKGCT4DQ!q* z_JNBZT=JU#+!$i&fFUNuwOGemd09oZS{#ixcooAbKn*-1?@1lt>+Xq8&tOfbD|D3V ze!75@G{sA)xpQ6L;_OAGkZ#lV{lKl?q1PFupC4>ZH-$!p373YdY9cxlbJQWg4m;&m z!G7oAzT`u;5|g-Z@!0L=<(1?2Ib%AtWQ%Fy1)hpOr*+aAx;m`d*T_x_g4&?_KQ12H5RxYOUQ6?~7HMpLW}0Vq=K# z6MS&pvNs%lEw6?m+#3v?4lu@8sE2=)Qui`I`26DYE&VE%re9D`yYj>$1R4m*9UEEY zlw>z34)w}eY^iqKe1g@nGw!Z=d{YJTH~ICz@{|Z}a92|e()Ba3HT*`pD4O80KajO) zl4Z!FqcE)2`q#34NHyt(AU~3L4%8&}-?gJ4LJ-^v`tNCunlpQ*pQD^mNB0lPm- z_u95jl6;6rFu%Sq+QHfXXqoVBhhc>8n>rrJL4N&gSy%TiiIEl-0Isi^yv3$RZ|X3w zM#|G1tYiWwNDSHj^mdFDngnxOGxwKH(^E3w`L31^4u$%9lHaiHQq{qV62%(n@n41M zDMV+H>b(~d{El~Feuqw@dLPP~DcjFY9Ml}298MgfswHMe7O4O-T+vFD!Fhe2DwBL8 zTHJ;yFX)W9&oadnCrX2E&Vi2^f3iJRAV6W~CY3)jK z6yVEIbPz01WvN(;@Jj>~?;kBtCS9*uuQtv)vqx+S#R6<*qYV<%0dH|Ps54y|r>O3Wn&-m$JnLwqxHVE0%Uy~o#WLp88#FUT%vWx>B+g@*tN;SzNp*tF1t~; zMLYD&zSg10fy>wf0rR{6i9O(hRi7zz=6x;>76y8DcupQ0XWmB^Ru&dkUXH?)?9>mb z7)Ca>-1nI<7>t3DfsLJ&o&k(OurV;wv%y(eVDyZv9BiLbcnz*@M>?P0%_X4J>_rEr z)F0g<1fV%(_OQ*VTLb$U3Lna??2laW2n;I5i>B?qrsXvfWCFO8`;G@VT=QV`?~KW* zkWk)M%Gkh327p>y`;^Yq6AfT^iMN)G*A#IsrDJK+we?&}6Jbt;!*UR^ffNtQ^z&Gg zmjnPN_*|xTPFmL^SV6r0NT7q7V6H!LC3f29u!Hs{5!1H3*SD*+Mlp&b6hEV=t^m78 z|AyN|N}=FgBA#<%!$nxi#M&K{sN>*5R4-D}A= z<%wsX8V=kX_wiAdIG;KDE4Cc{wT=Wh;+)5trk>mv3HyDp+4;<+=3~u~6ur?RZ7&mm zdSEDAs7MP25uLpi<24ZXr_{Oy8zKgjJ6(M1X*#Hc_2T7J06tNMsEHld2sbY+!MF8f zS@B$^siV34xx#;hR5Xk>Vuy@eQ=fZ{w@-Z9D`c0Kdt0fr<7L}wup7vGuIyj<$k+OM z$vyKQbXt7f3E^(@YA6Oz4w~(!6zH&F*8LBlqFkzHO-R^R z2_M21v+hszxIMELZ4u#bd(ProvZ13TNc6>(9lxfrS;B2?Jg`M0{#FtJ=)vE>4_kS~v|bbou2ISMkY6&MWFG~_rC z)+3|@{_y&9JhDlI>AC&7W${OA#*~hAsuT)Ta&|-OjE<+WbCl%qpuf+b@6K8(2C8p9 z67`oelF=n(PXR3%FTy8scjL)|#~phqd7%}uDiU5cHmq!wQ=NLz`bm-EaG<{M7I1upUO)GVqY|mYk^kF~i&WS+KhzBMO8-U29F49^>D9gb(2!$Qr$!f6eTf zQbL0rC4Jztwc7x&rs=yHN~(7ojgQgod?|d~F;PxWT>51fKGoNhIQ{LFNk4F+t8WN% zsFt306G2}6iLN1Miajh;@_%n_=PgTww(CDtay+m8f&#$B z!S4m0i&nO7wDX_yw=B8%YiA5`9*y4ve7V@!ORPr&uNw^iXk;u<{3iEjYCaG*mA>fx z`vs=BXr-G{Dzz{3RiR8`4FK5FJN0?ATOyi#55}OYre{07Uw+R%5Y1Y){Z&m$6#odm zmM$J)F2AohFyAERVN@`g@$3*)Ta#>5sW9dpp?H{G$N=dRBk}ZkL3!`--{Mb5aiI>XcX&` z^?L93Z(l|4NAjz99O&v;e^C2#qr54RvKkhX1<0BXj-K|<-@pvK{P;k~4m7f&&cif0^f2SoXAN==rF6iTayp|@uMX9Ssj1Vm1ltSlujDrJpiB4hZ5KGbToJmXXdox!W#tie@T z=k}AmxX<}Lw)DvBI665#qdINtfez9g75?qp5}SsC*GsiWoOA2e+*;j6Nrkd{KmZ(t z$xA*@f8k~CN%R!GI>|IrR#aS8I%A~*s>ilz#yi3p?W;%DUm2^;caAsTItS{Cy>nw3 z9DOE=OFXPa5u97$N;mq9o%%&vu`r*sYb^D#%Jkch!=;_}k)C+hjTYOg@wVXW&2_psXvEd>OShO@I5 zHZ3%47A`AmDJa&Y(}^JWo_|U$C@&o(1jJMhcU(@|OIvU)JExX)=f@`*GlDv_!+hOB zO0#)k#>A`)U)XZpN$C6asqTiaZTash z@d0VB`N*EX-GN&)7FySHj@|L*pe7NRPaTFAtgES*{riK%yprNC=5S#%@H}b}XEvPr zo?eu(KYd_Lso40Hfzd21;~PrkVScJ(v?IQ!ms`L@?`LBKY?~Yw^Un5b=93SjSDH#n zmbr^ZJ_oz^@J0ru3|lGKofnx9ZnA`YS0Rct%+k0P`DSUMEIVItuJP+zAKrb_`e~>* zkOWDji(p31KLwHazS&z$jHb*)BdhSmPZ>J<_@NZ>G}EcPbLaKcn3?1 z4{XnvN_!qJbi0@g0BcBCEm=(9ZWMsWJ#4*K5mImDc3$bezTK5wn?M3OE`d$=jlEBH z{-iyY$@%2g<&jXevWS_`dA=z4r!HUO2lfg;Fg)tx1TC`BQb{GnR7T%VeN*6jzPIO} zU8ZUIj+nU#+U z_mk-2(I<&op`PR5HyRZ~lT^=$yUwlLrtD-@(<=4PUu^2?$&)Z!syf{KMmn`AWdCR* zo#yFrjl_p)J`Zz}?YuC~KEEG#0#^%5Mz$ge7k`xdeZsg{Z{)Ll`%r)^(SKh> zg`;Nmo#PD~<9_%w1tK21&e8o034X&7z&UTc;(F4>M?0OrCK7uth-Y5r_b^)3)m8?j z%YPwNEiZpRuNdNiK;`Ko+GNX{X~gb2Ihs zukx5fbr}|`D_-8dZbTLEbT4IrMU)M=$;n=KTyh9mMw4zx(G0}KWE>;c@a>c9-5^m| zyBsuVvJ-ZjMyFkN1O3{j7Y}$UT0fddzMsrJoNeTHCf|RyJ(wk0Ypw1WM#_nsCwuKP zpD%d*V}NUh-nf=z{k@tSwDFVBSi-vMW?lPC2`aA|Xz2R!a9qQvv@^boGp>HKXl&CD zDuWnJD_4KU+dB^Le6fDcVEw>(6g#O1TFPc*oja9jU=36TuvOf(VW!DH(hk<~s)3y* zfnmAPG|r~ZA0BvknsFv&bon;vKctJ{f$t@(@Ur_ihJ@>W-EsjS7?E{{_U~2=*!Gt* zdcu|Jcm+s!Z_W#N(#m)_R6pCc8QJZK~f5d2DH0q`EL!UB6>`)93qK zp@YWY5F&(Xzrlr4zl>tDjT`zlz}lgZ<$@ zwVEuwOz`kOSK-cmQUp&bUVIdvmD{a9C2j79FDP7#LHUz`k=nB|;wh%%(=%fcS%P70 z8)u-rpRX%udaO5|gB^G%Wb-8!dE~r=*MjkN1`5E*W2c`2c$fmt$NmjUWvGwd zGYo{t@yg(RceYue9I3FeKW%;bsvw7{l-~Fu1dhRo6c|YmQ zUCF|v+iGOVKe>P&2mepK>L;^m9o=Qmw)sVi7525k18iNpHLVq3XTeT_Q8jI?-d6WA z-`MD}bU~SSKnnT|x>B9}S7_1b4&RB5{)1WMz2bXwquI~pP3(z)?0(0udQFyy2_d}3 zIbB0hYwb3>``5uxe%;L#{DS_QQ-Y#vd^jeEcfI?%6vFHmSK3BKY;10zuEL#tmfY%S zsxBl-)}~QNvRGP3*i$_Wc&6aDZ8ra;>pAz~u8!UrZ^jOGYX*6i4N3$d=~qEXGnZa> z6@bI%4^Ehs2l2oopC6fN4BtVc1=_&I-M%3@gFY>tj>Rnxrs{O;3p&V(XH%0@{aSE3mDijY8Eq%-ue9Dz|aODoUoY?}Vou@}mMdhusg9)BqBey2bG`Js!{=qW<>>a^cC8&ma! z^^T-7a=nb|gINU+zreI#3=&O(W`+6e`}1|!P5CSv1&x#E_1ym7l*4lfZF4w=e0>ot zbyDf1Q#Xv3J}yTMpLW~Zm?bu6TPzDrwP;SNBTAyY9{Qlpmd)+s99g`dkq;gr+pti4 z2F}9x^ZuBJ!mU{ccwYsfx4&RZ-@L+r5dy{8dp4z;rB}U9=6A%7RhIdaW+tFUPzi+| z4pH}RJ=BQ{s_wR>W%Bz|n#e)3l5HE&h?61=1CX2HKELOE-ap>Yv!7+ZTQfU5JF_!8hnkg@CV&O}S1Ny!taVjAW0Dkw&_G;YIhtBK zU3Ea7mRx-R;57;4`dbH4yMp}hbOm`elFZzHen|7_ zn`&Ppr&FNg|Rg&K16A1s6P6Kx0}2>?t^6l}72PUL~aRMP5{ zb5QAi+jUB5Ws#_};ZX<9@dy(HEC?S#17$>XiNU^Qxs}Ju#JN?{B1i=9eLmlLDtB(^E}^10&Yu(rUobo9#I8aNx75%TZ2hTJ~jYH>KjF% ztQ1HAjz}F@V2@NGRUn%P9&I30I{S7S(gL!dmQw8 z1@tx^q25i982}zQPd+?XK6+k0o=GpB`8qF#p*VUfuQT5@xI6%;YY@mdkl|j#nF9b` zmT-8UZg}2{@TJgbyujcREWjTCZh*@OJkb=FOL#hJgh7g$8RkORb|* zl`6oRe7y%EP3fx7=?c|#vD&c$O((r-7B<%>rTyptYigY`1dHIu>pN)iW0 znM}d)hL&E?$-@vTT5F7x111*A)_4lcjQO%TOnPIN#h!u~NF3y{R44*1*Cy)H!8ORDaO5%9JXKVdIzM`+p!j_KNNh%BWBRBP+o zmZA}g@Vo@Xt!w_#fxMT-p)`-xxWa523NJ`^yv0`dkDYW^M*{$AJJ3NA>i?U!p#vn$ z8h63WIm{lQ$i+lA$wKe{$^W(vDmWb|?Ef|b@1$_* z6Ch~tvD#HRQq#$GQuN3w(G_aquFjfJd^L;pL zJJT{k3KzcI&+|6x@UBQedKa09bZlpmLg4!=y}AKtfO^IIjkg`@*srn5B-1a#MxECw zB3G0%qM=xkPrmku^pS@WorBB=Ao%)%=`AOIKqyZ!M;>^+Di834Q?M%;o2 zC7AZZmtqm!yo*poxJW^|X1@q)Mnbm;OUApq@Vs<0a5O!kUtuBr-H-w+C?B68;GZhW5P^P$6ShA(c@hGaMzA8BG-E6A;wULaLCdjA|kE$W=xYnN|2zRLGE; zq%z2RNX;Y_WTM4@fZc=^a+(~8thF#W0OiDGmS1Ip9636sf<(K3&FMtD>E!=Lg~Vtf z4TO-RHG&$>h8joB;9lkE&B?G5Fwk?I|(=o|zY zV4~*6e5@!9lgqj*xl1Zb2x>PUeBC&0tNdBx&|4F2yVhNCs%UYTXyI-*sbgsf>us=u zHkR}Int-<8vp+T<>5p%bbuAw001y!C6bi?SGX;$wJct+(P7x3*0%JB)RfIF6)fH_> z%!t{#a?Se{@bjw46s_S2L;7&$8g<2pQnbFNZACCb|8`!ruA((BTHDOFv@?_!Kg9{b zx0IWJ&}Yx9P7;yJbBaaa(&xn^BAD|i*q3t6e`u`GWwKvamZ3UD9--bHTKPhzGHq5>C(=T&Pf+LSt~DuSqbr4&F^N(ykxeuY)K+z~0c zD^v<_kgAs;DkTNp8VV-Q@RMEg4d+mmNjFh-h%GX^J|q0^#1b?xUVkk;KwZ%`FCjrcq9P$4VarPn+WKFhg?=88-~I;(3NE<;ARqui zw3%L}RVvD+Cz{zKlNFU;yjsJkmkA3;p-?q;9+`0P+fY_!aNW~TR=k#Jeci*c)&fGI zP-W~rEw4~0@TLXbimf!%Y6I9)`S*75T6ZPKWR3lUud5B9$5CUq*6jdJI&GSSOlg^wN@r^DJw5RaE1O#Z3aG(HyrOb+b zO?EbT=QEU`$Mnrg!6M?SW?KrH%xk;(|1BT@g7gl6AQF0^$Z_W%AMai95uOhXAQ1hU z;PgX*l{pV&YkELDLNU<^p{P)V9=np(EACkmBdj?)scie`K#oT89)R-0*{Sa|@CcOo z2=v&L6WD}$4M^d=LlmPIp@DZ$Xnos$ks~@~+lnzNXJTmzz<(HIzvuI>t9UROvp4@a z0KC8i(_V1VCyKm_SFTFPzowHaZztH4!uxnNdS#KXMz0*vUhvEVK!wb3x^wN4ie8W6 z(L4WZN`pS=wXgc)zr5CuSCg;&R|w#L^A2cggi4}cBLv8GuSDs}Pkj5+k%O0CUSyF& z=m!1GdZawOquNrIa-j}+i#}JtT$R^6w_V?<2s{DcEeK8z0dVkcSpxoFAZ<%@%Qx_% zg#bV*w3j$6IOx|_)?GS=d@TR=8$r*2!cTSbjdlK9*w21+fW{tAn)t0QR1$(OEc`nd zHnSD@AU#V{Yn2Yf3tCX%7XA9MWn}>qGYvfq1}kD@WME=rDap&BrKM$H zfiV?*m{&*R5}`0yKr=;>j?Ox#<_@rfacv*(K|ar|~&ISmzdRxw;9{jCH9 z02HZf+G6LvZl!8S3Q0VUx$qq(?e7yU$|jdwR4)2%M=e?-INxTmx{l$RRqBJ{u{j6%-xA24?ft4Pqy^FJ~=rNe81@} zcT!Fes;yZR$Z~}`fqRZvG7siD&TzP;XWr-q>zonvGo!)=_*fTixf!WlQd=N7h!t8c zJyw^SxzF-wC?hvEl>Jeb?n8POa%EY0?zim` z2gEm>eo?52*_V&j35pu&yzUGMA{#~;sA|J>3cUK@_aeBsk3wX^@Co*Ob}t^rKy$h%_S;$CMP?BB zyK6tQF1ig6Pdlqjb$aJ`SLTXdFjX*mXxYx_>sM7KbGM|B;09;dpx-wU!530;ri2s2 zU(GA4@XeCCPzsSwuj_oah&(M<5U@bCyRc+bsZ3IdaktX=%pw#bxk*XieM>eIA^&cc zEnZPhtszNt2X~oCv_;nX=Jd>ZiTN}TV>Obly=^os4^$)2$c#7&nzWOq+c;Xm)0Iix zu$+Spg#sE8mV{dmZvgX%&|?CMz@-nBI~+`a+&2xo@2EfG&DxADLEV+_=6nG%P4nr% zB|=HS{qZlk$yUu&61Q7qU4N(UhYioXQoId7HDg6KSj1leH-71S?s_|NbU#o&Gk3rD z(L(P4%b_s9q*LAWQWsZVlG>lgfQyaZvu;1Wu!<4Kt ztUB?knM!PG2Qa+yVNyMtoVj$tB0~x}<$DthJn)AkwnAp!JMY&HMfNw$l+KpNjdgsq zJ|_Y7TOfTrP>G0+|1C6sNT075z1R? zV*VgqkYy$>xx}Z>j_QurRz{;9EL=vlnar}DakMm{xdE~Xz4qdW=#J69_J!cG^O!Tf09ZLv?GvaFw3@K9DhI;!X=cWZz(md#I-N| zn?;b!By;f>Ffvqj8YTl?pt4vuKCkuIEF*djAM}ePY9y;n-0VeEY(_TW4;-G8;t~VQ z3Z)){wFGHjKc^cZU3>76z|>IEpZEMtQ(gH40A#rfP4$dLf3G%&VUGA97U)$+*f$WW zUB-E+>fg{(D)GKNYnz*>D*3Z?dAVP$VTkmC>NTG&YXbzM_8ks~zqgf;!T`>%owQly z(RizYS+x&6(HKjVT>ojKL?+QKQP=`wkM>2#L4>n8CX?~I>7+bd<#>{>gVw;4kaywza)t=aeiiYH7-o-GViI4>2nwnjla_V-K9cf`Xu`Y zCdfs#xrft$-0j$Znt0*T1d>)&7bs(xSa0BXca+=!(1vv&m7ra;+J8C&R>s%Ps#bMA zAjuQ0S50^ED1T^?j>qSzLV*3KJU4|TIikr+p{QiRe7S+1{hGA-2lf7c**IZrHm;&= zhZ%tLS$dz*?p@>7$CG8Z#>DyR@IPP$1jd+dcE)eGosgkhJRe0t?q2 zVj$S!ATR7F<%d`<%`Empe5Db7?@*=Z^YP79@?3Ia!osl`Vb1-Vl7-b*B7UH2_M~(F9gLI(h zTYOaxHAiJnatFWgAmq$2j$g$%S2pP*ZU{66-bolVkGqIuIKSOB&`F73@AUB zB??5AM1BcT)rgQ)*_JyV#Nf9hK05tCxSzz3-(>*K^Oed(m3r3vw8!TJ7FPzSf~JON zni7Msa)-+1OxlJ|`lcZ+h8Pz!$%T^zO|uUL>4&u0KO|HLCpJ$|Y~YF(`BhY0;;Rq$ z@q07dvVl6594mQFzDEKHFhe0)l+ZC{u5nZz3+RiFlKF7ZB zJztGE6Bm`;*zKKWlw2CC2}(uG(-6 zeUx3;9sE5mIrj)d-t~}Qw4}I}YgrR<68cz1!MhXRw!Zxw-?Msd*Zz=#k(sKycmc;5 zj&FG2;-$*7RVfjv%OSMZJ_MggT)4MBjdG*|^V2pWQ^u zY%tYh_4Q6nt@E}RXuzvpE0c0j0~G3|BL2oh+tCcx#&tFld_Rca)XMdh-T*J#vR~~g z?#|#kCHFqJq&~*R8R9!xd;QFwvYfn9s)0;{ONW|c(q`wv=s;UYe!_zC%* z4)&}HTP$uoS|rh;jvdN+8sz>y}VJYKu zez%pQ-mACmyLT=OdV&#QK36|h_M{Yjnm z;Yo`v8sCElRbx-uXVn~)a^yOemi3J+4l>7u>k30&+jhe^2`6SAS?^o0uF8Fp z@<^z@o+gZ7qio?7BR9JryDb3t!unM0&5!+_Y;r5-#4}ND9ga+Vn<369aQe#YUuvCL zIRXcsS7Ia#vlRlod5t|HDpsV{A|9KBu{U%2w#tV{C0cp^aeXSt6f?6*^0+wF`Xy1{ zt*xDd4sU_`brDUi#qrN79Yg$TW)V7zBz!3e>UpHD#Z7m(l&cmj$7PCjQa1YgF$m&v zV_LmvcNWI?PedVl!FtbfrRY|{^1ikY`2+T`7fT~JYk1omcV)}T zh9Wu4UbM-}H0f6FGgu`c$7L3Zu#F#u|I%3TVLvQ;G_Gz!kc+teMa6vv-~no|dlL^e zHv-Xp&*H~e$C|Al#`$2+BR)Et!o+8}2Y@?(T8cHoCKJ7B`Jy+8gw`NP2v|qFl;|WZ zKL`n-BnCD)B?e_$2QMWMHPVCUB(=EUT?15ofb)ZwjU-Tljp7O>AToV7w~p!*Dze<( zGQZ6YiaGo<_@cWg&$w|*9UhiqEO0(xsN;DoTsyE1NAC z95+WTM2$Kwbv)Y~XU}kF`0aWyp(!T&+q!)aiHP~LFOd-GHe+%Bu&na^5dFklX>6#R zN|%Cl-Fi6sjhyU`3+#53gq* ze|t`=j9H={ztXlCu+G){RK~seRo-cI_w7C4I?Qkb$h!(M{0lQ+gWvTQa%HZMIoWx+ zx%4pRB6gO%%&Za?7>phc|5(ffhv(6NF$a1WYi=Pe9St+f$J8Wi8rZb1fX3zK?;Y+N zJinI0N}tHusm4+AH9+Qj-zMbU0Y2NzZPfQ}+mHY5KXe!tYIi%kOxd#f^>WuLbBVTC zmSctZuZ^Dxn(?+;8~07K4Jo39uBFPr%bOS0YI3c2n5uY<#P1Gxy-hFY<#>8FkN%kY zP0JbC|MjzjL)0XS>(S0P0)_ZookYV{2Z#L`yV7<$T%19Zd^G986!iTKqI&=hjM|yc za(7m~*o%qhS6T|1e_;Nl&>#a4<2AJ*<-xjiEBFV`ys%rKp9<4{3cijIT)&D0Z7 zV?!ap#8S8(&QEp9T*X;p;(phaK>gG=SR^h|j7>x9v?yr+W~BKVP-XGhfyr z|FXpX?2A1{as7Z+IHgCM-CiiqXU=6^>8F_U55S%1?J1CA)%u~g5Gk)0r1kYDE`Pg3 z(@Wo_Iu|=#r*@6SnKY)AN=lt zU`NAnll>tn08-d6RdETC!djTMcX=MIvK+^lHrm%8&R!$natnB`@lHTTqR;S^l?vi7 zBX5YalR=qbi)znh=X95khd8w%VSJQ?1%H5EmnBiFw`UcnT=>GcY55;NI-X)u$9rEi zntuq@w+5MS9jV>S|Du*7zEe^&=P&*Ep2loJ#P=MupFDW2d?y z?@0w)qaGQOX3eWC=he3^2=ExzSH4lb)B4*n0zsY4U!zTJHi@mS^28jUtPHhAIL!;5Tf+QeC2ty9-`@NAA=xbdoL%g5C_21``Y_1U zR-4{t!H(7P8IK*4{ETINt5{b^nwMKA1>g!JtUZw!zYM;g+AEjqMT1W08~LbJ;<1K< zWz%qN_2|;2W>QBUA1{h6y=z@Lo3pXpXx{tsX!9uMXy?W=i>{cGcLta#wu2SDZG>a- zhv>N?F-QSs-iYR|?qePg*bNrkt``O~lnrY>!A7?>rn!}5oWCibe`hQhOUHL;lqO9P z7-p`{aYGS3)${!M!Z$sEUdQUFLi|+qG?JUafnJvw^ksFiGK7PZKOn|3=(70o&smiJ zN?)8(AuS^MgE!NoAoB?H%Oxfu@$>r~cl{xwLn(h9r+iO##?Cz8vs~-E(d(xtOL;=T z4HI;Cf8s)r)&85+#5eu&bbz*QTaqm`6A>LFrOjz0|JK*p{_NBYyc;E-Gw$;a9qo zDi4mo2tRWwsQZ@`zGY^wqsMo}#WU@g4uwr4c|F%#oDHqemM(3msm#cuoxk5vm2Se_ zt+L;9&TN+y%UX=6Wtg_U)D}xOT29BIGnbYuT&j>{MvEQ0w1L9bnIT0*G7uj&3(N!2 zJ;ZC9xcW)wwvZ3Nt8aO9;|_}Q#Av}#7+tfBg6>SC#_$5?Dy5QFrMf0rhl1* zEA>m)W`5oGDt89x!GlpA$Ud1qP0>m^+{EOKjlN+d#5bfV@-{XXba5F?k&qly)BCj* z(_tVc*cRutFm_(Gcvs17)F+pw)ydT%E$K&b!c%AS7IjsaG6ywV`)kUdE*!7k$!fmn zOqdFmaz!3!O5~jiXsDN*+RGVJcNpjlbUx5Y>zZ2;+^t4JKqE`%PyOv^7FRZoiZpan zB&PpSK?q@Fx;;<{PkWmS`T^5{KN~QN?Je(U40vY!a{K1qJu!A-YUnfYDObgD-YGM3 zk7!hw>YWgLCoj#nIZ(EipTQ*LFc8;~9SwbXKS;)yinV0yOt)Dn-a20O=&p;G06i{K z+aK%bunj5^58a^Jjw*M<_3vLBh!@D8MKTW-=5rCS527xFa#krJNid|~0nv-g0LkPw z>6OMN3FW8ay{}vsMHmmAX@FD_J31vpz#n6p61Q7qS+UML*-IiWLCPOxsp@kUnV<95 zzFoK*u;_3%x!05p{&VDV)ah=} z3Zy-q7~+nlJKP|JD!={k8NGE{lY=b{()oDFLnpJpi>Mu3(6JZR625I^iuQlxZ)4rS z;R&@pq_1|#47|Lzv-@&}lTzgj2k?ZU$yXlmoW5GdliIhz@-a>kH?jAS@b*L*FQp5E zPpxW%G@<|i9G}PWcjb=Fz3)@?RSdql7`Htps=8Sz@x!41sY{cg&$EX0^O&mDRI`G$ zHIpjSO1Er41NViJR!y@5r}d6tQ#9uBx^r>af~&-rVuiWZn1es4)nDd6>e@cAhyB5=ePJsr*AZC>I=h+YU zVm@@VHjF-AE#{=v!Md_K`ZQgt?s`3ZH7g>og(=Mh0r%mh&5>o-B@Tgyep8EQ<(ZR{ z2F#VP1<@1Z{7V|$K6MgAYi;YnLYMdcz^25`u|vOxTYDCNylkT4)dTVubyvl!9fBISMM@3Ok@bkvQi9chO>WNO-N9`^>4|I z62wGt&+GH!cBrJkjjhXN^P)&x%v@7`8ah|JPYer;B+Cz`5vo13FnXFrk~NgwMY1M) zsfw-$dNHT)m;*Veg;SaI>d%7OGiqXP81_+Fp_zca!y=v!GC`>k>l=kx4DwcfBEwJu11o9 zQ_jrJh(RFNb}WY2eR$mG-o3Hp_m~T*$q4mcB&z;~S9^5nj;|HpN!tE7{-q~C4$CXP zFeH?CN^nzm$gOjKcqF={oW=-aVkQ%tl2ue`4=5M{z>bbd8U^|BC3Xr;0D5ibro6HU z{oK0&PBH$x)4MVCYUi86?4?|56MLOKZ}kz{OVZt8$?=J$++<21z+Pv4<&YKl>eO(+`t*Kx!sVgY|KnPt<6sdto~^=xB-({GaWywFQd_4_O`B6ZivsoJrATNfY361Iv83ce zL)}uA_HklbvtzBSPflacEC?=p{+{t!+Ix=Az}e&S!D+(>%BsaOMR19l@2=ROTxMrb zd__0**T5l(CV~$q%ot?0{nSo#+Gx7A)5oHp#{od~kB;ZUnlx=_1yUvOM_=tfLw{@B zj%v@ye2{bX6jP#dgQFf0fC?s4`v;fj!5g73H$3;-LtHZsJA5#VGe`?2jr)NA)_J4S ziwL`8GfY!*OwVjd<4mfw(JYiP+IPUAG`}FjNtGn6q65R#Vw7pbmh$&H6 z984#@SO=BJZ+xbsofRNH7ymR`9*(yl?44_gF)`+}GLN#%=XmF+O=lYM7I}WQK5uWp zK#)_|W%NA9rr{1}t>AWF12Z3R!NM7H@G=<3>9cB)jbQ#B)pWYR7Fw4^bGyt2@;OO0peRP>cB zj-;^myjRhtrc_hrH`%RW@O49t@tw7Q)DyR=dg6~XaxbkSSc?kN&mA1pa&xHk9KLP- zVh*UXiCgd#{Jf9r`JDx%>U`$3Sr&3&2c?s)dcp8k9SjLHy+4DAhSA2nTNALSf%%fz z+XErLymT1nMYP49hL^r+LA|MOrBKsU&)6}UJF%R(bR05^jPrc`>-)-HN-z(M3HOJH VXr4zSvBvFFyCks}pO667{{aK%bkqO< literal 0 HcmV?d00001 -- 2.40.1 From 115f18241beb1becd94b8580a39787f4f1a6a4b6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:27:22 -0500 Subject: [PATCH 315/321] Delete a --- mods/stamina/sounds/a | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/sounds/a diff --git a/mods/stamina/sounds/a b/mods/stamina/sounds/a deleted file mode 100644 index 8b137891..00000000 --- a/mods/stamina/sounds/a +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 483a837981d73fbf3a709017c57def3d2a67c22a Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:27:32 -0500 Subject: [PATCH 316/321] Delete a --- mods/stamina/a | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/a diff --git a/mods/stamina/a b/mods/stamina/a deleted file mode 100644 index 8b137891..00000000 --- a/mods/stamina/a +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From af1af5c0318585df4c7f1dd74da5d13e89952d25 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:27:50 -0500 Subject: [PATCH 317/321] Create a --- mods/stamina/textures/a | 1 + 1 file changed, 1 insertion(+) create mode 100644 mods/stamina/textures/a diff --git a/mods/stamina/textures/a b/mods/stamina/textures/a new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/mods/stamina/textures/a @@ -0,0 +1 @@ + -- 2.40.1 From d385aa47927a2295ad498638a2fbff47daa54f66 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:28:10 -0500 Subject: [PATCH 318/321] Add files via upload --- mods/stamina/textures/stamina_hud_bg.png | Bin 0 -> 417 bytes mods/stamina/textures/stamina_hud_fg.png | Bin 0 -> 522 bytes mods/stamina/textures/stamina_hud_poison.png | Bin 0 -> 3196 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/stamina/textures/stamina_hud_bg.png create mode 100644 mods/stamina/textures/stamina_hud_fg.png create mode 100644 mods/stamina/textures/stamina_hud_poison.png diff --git a/mods/stamina/textures/stamina_hud_bg.png b/mods/stamina/textures/stamina_hud_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..07e21e7be47ebfe19f972382f6ea5a086a33cbfc GIT binary patch literal 417 zcmV;S0bc%zP)pGQ%OWYRCt`Nlf7=jFcd~Z)s4q-V#j}S9N(Bo9uNaUNQ_8GOc{AB z-maBG`8vgdma0hS*v&hyhZwANsZfiVWoIXLI2s_N})-8TUd zjUfaO5kd%1O2HU|rfFcUg;ENPvG<1pBD&Od4Jjq8wTLldwOXO?dsu5Bgg{xAQ?fA& z_WS*8yWNh)7?foR&N5y3eJB7(IRbzSGHX|2bcfQT;6IdIP5z0X~xln_Ed zN(t{hy!V*u7-N@P!PPkj=Nw{;xm#6LIh9fhA%u(&0=I$>BFd4Sb1=q0YmKI9Af<#c z2Gf8i02IYA470=GaOt`(Prq&3%x%}(!$fqwdxhO@hZrMbjOe-!lkg`V?!kF}D%R^Y zQc6fEVX;^s#)y;>Hk%FlzQ@Bw8iwKJ(MJBpU4rBB`1&Wov!Ce`d<6U`HGiA|00000 LNkvXXu0mjf5NEV} literal 0 HcmV?d00001 diff --git a/mods/stamina/textures/stamina_hud_fg.png b/mods/stamina/textures/stamina_hud_fg.png new file mode 100644 index 0000000000000000000000000000000000000000..a5cc2a12339c1fcba9e605fb5cae51aabcefb60c GIT binary patch literal 522 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 Date: Wed, 18 Dec 2019 15:28:32 -0500 Subject: [PATCH 319/321] Delete a --- mods/stamina/textures/a | 1 - 1 file changed, 1 deletion(-) delete mode 100644 mods/stamina/textures/a diff --git a/mods/stamina/textures/a b/mods/stamina/textures/a deleted file mode 100644 index 8b137891..00000000 --- a/mods/stamina/textures/a +++ /dev/null @@ -1 +0,0 @@ - -- 2.40.1 From 5c57c5d8a8259023e443f5e3f042595386c786c3 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Wed, 18 Dec 2019 15:31:24 -0500 Subject: [PATCH 320/321] Update tusken_raider.lua --- mods/mobs_monster/tusken_raider.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mods/mobs_monster/tusken_raider.lua b/mods/mobs_monster/tusken_raider.lua index a92644e6..87cc8e5a 100644 --- a/mods/mobs_monster/tusken_raider.lua +++ b/mods/mobs_monster/tusken_raider.lua @@ -67,16 +67,16 @@ mobs:register_mob("mobs_monster:tusken_raider", { light_damage = 0, fear_height = 4, animation = { - speed_normal = 15, - speed_run = 15, + speed_normal = 30, + speed_run = 30, stand_start = 0, - stand_end = 39, - walk_start = 41, - walk_end = 72, - run_start = 74, - run_end = 105, - punch_start = 74, - punch_end = 105, + stand_end = 79, + walk_start = 168, + walk_end = 187, + run_start = 168, + run_end = 187, + punch_start = 200, + punch_end = 219, }, --[[ custom_attack = function(self, p) -- 2.40.1 From aaafc54e9d51c4863d209b92def4f450a87bf433 Mon Sep 17 00:00:00 2001 From: thunderdog1138 <58536412+thunderdog1138@users.noreply.github.com> Date: Tue, 24 Dec 2019 20:17:32 -0500 Subject: [PATCH 321/321] bug fix --- mods/minetest-3d_armor/3d_armor/api.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mods/minetest-3d_armor/3d_armor/api.lua b/mods/minetest-3d_armor/3d_armor/api.lua index eb017a74..8b234184 100644 --- a/mods/minetest-3d_armor/3d_armor/api.lua +++ b/mods/minetest-3d_armor/3d_armor/api.lua @@ -273,6 +273,11 @@ armor.set_player_armor = function(self, player) if use_armor_monoid then armor_monoid.monoid:add_change(player, change, "3d_armor:armor") else + -- Preserve immortal group (damage disabled for player) + local immortal = player:get_armor_groups().immortal + if immortal and immortal ~= 0 then + groups.immortal = 1 + end player:set_armor_groups(groups) end if use_player_monoids then -- 2.40.1