From f846a29c2cb20e2b03eb085b19192319ba0180aa Mon Sep 17 00:00:00 2001 From: crabman77 Date: Fri, 28 Aug 2015 12:57:42 +0200 Subject: [PATCH] added fishing as submodule --- .gitmodules | 3 + mods/fishing | 1 + mods/fishing/README.md | 36 - mods/fishing/baitball.lua | 58 -- mods/fishing/baits.lua | 27 - mods/fishing/bobber.lua | 187 ----- mods/fishing/bobber_shark.lua | 191 ----- mods/fishing/crafting.lua | 258 ------- mods/fishing/depends.txt | 9 - mods/fishing/fishes.lua | 91 --- mods/fishing/functions.lua | 650 ------------------ mods/fishing/init.lua | 95 --- mods/fishing/locale/de.txt | 87 --- mods/fishing/locale/fr.txt | 101 --- mods/fishing/locale/template.txt | 127 ---- mods/fishing/material.lua | 35 - mods/fishing/poles.lua | 164 ----- mods/fishing/prizes.lua | 46 -- mods/fishing/settings.txt | 12 - mods/fishing/sounds/SoundLicense.txt | 11 - mods/fishing/sounds/fishing_baitball.ogg | Bin 18303 -> 0 bytes mods/fishing/sounds/fishing_bobber1.ogg | Bin 15470 -> 0 bytes mods/fishing/sounds/fishing_bobber2.ogg | Bin 12227 -> 0 bytes mods/fishing/sounds/fishing_contest_end.ogg | Bin 37642 -> 0 bytes mods/fishing/sounds/fishing_contest_start.ogg | Bin 40274 -> 0 bytes mods/fishing/textures/fishing_bait_bread.png | Bin 723 -> 0 bytes mods/fishing/textures/fishing_bait_corn.png | Bin 650 -> 0 bytes mods/fishing/textures/fishing_bait_worm.png | Bin 406 -> 0 bytes mods/fishing/textures/fishing_baitball.png | Bin 591 -> 0 bytes .../textures/fishing_baitball_shark.png | Bin 693 -> 0 bytes .../textures/fishing_bluewhite_raw.png | Bin 431 -> 0 bytes mods/fishing/textures/fishing_bobber.png | Bin 723 -> 0 bytes .../textures/fishing_bobber_bottom.png | Bin 231 -> 0 bytes .../textures/fishing_bobber_feather_1.png | Bin 421 -> 0 bytes .../fishing/textures/fishing_bobber_shark.png | Bin 671 -> 0 bytes mods/fishing/textures/fishing_bobber_top.png | Bin 231 -> 0 bytes .../textures/fishing_clownfish_raw.png | Bin 521 -> 0 bytes mods/fishing/textures/fishing_deco_pike.png | Bin 495 -> 0 bytes mods/fishing/textures/fishing_fish_cooked.png | Bin 1124 -> 0 bytes mods/fishing/textures/fishing_fish_raw.png | Bin 629 -> 0 bytes .../textures/fishing_particle_baitball.png | Bin 180 -> 0 bytes .../fishing_particle_baitball_shark.png | Bin 223 -> 0 bytes mods/fishing/textures/fishing_pike_cooked.png | Bin 1000 -> 0 bytes mods/fishing/textures/fishing_pike_raw.png | Bin 465 -> 0 bytes .../fishing/textures/fishing_pole_perfect.png | Bin 344 -> 0 bytes .../textures/fishing_pole_perfect_back.png | Bin 200 -> 0 bytes .../textures/fishing_pole_perfect_bottom.png | Bin 208 -> 0 bytes .../textures/fishing_pole_perfect_front.png | Bin 205 -> 0 bytes .../textures/fishing_pole_perfect_simple.png | Bin 323 -> 0 bytes .../textures/fishing_pole_perfect_top.png | Bin 211 -> 0 bytes mods/fishing/textures/fishing_pole_wood.png | Bin 312 -> 0 bytes .../textures/fishing_pole_wood_back.png | Bin 213 -> 0 bytes .../textures/fishing_pole_wood_bottom.png | Bin 223 -> 0 bytes .../textures/fishing_pole_wood_deco.png | Bin 440 -> 0 bytes .../textures/fishing_pole_wood_front.png | Bin 209 -> 0 bytes .../textures/fishing_pole_wood_simple.png | Bin 345 -> 0 bytes .../textures/fishing_pole_wood_top.png | Bin 209 -> 0 bytes .../fishing/textures/fishing_shark_cooked.png | Bin 1038 -> 0 bytes mods/fishing/textures/fishing_shark_raw.png | Bin 563 -> 0 bytes mods/fishing/textures/fishing_sushi.png | Bin 654 -> 0 bytes .../fishing/textures/fishing_trophy_label.png | Bin 215 -> 0 bytes .../fishing/textures/fishing_trophy_plank.png | Bin 727 -> 0 bytes mods/fishing/trophies.lua | 84 --- mods/fishing/worms.lua | 254 ------- 64 files changed, 4 insertions(+), 2523 deletions(-) create mode 160000 mods/fishing delete mode 100755 mods/fishing/README.md delete mode 100755 mods/fishing/baitball.lua delete mode 100755 mods/fishing/baits.lua delete mode 100755 mods/fishing/bobber.lua delete mode 100755 mods/fishing/bobber_shark.lua delete mode 100755 mods/fishing/crafting.lua delete mode 100755 mods/fishing/depends.txt delete mode 100755 mods/fishing/fishes.lua delete mode 100755 mods/fishing/functions.lua delete mode 100755 mods/fishing/init.lua delete mode 100755 mods/fishing/locale/de.txt delete mode 100755 mods/fishing/locale/fr.txt delete mode 100755 mods/fishing/locale/template.txt delete mode 100755 mods/fishing/material.lua delete mode 100755 mods/fishing/poles.lua delete mode 100755 mods/fishing/prizes.lua delete mode 100755 mods/fishing/settings.txt delete mode 100755 mods/fishing/sounds/SoundLicense.txt delete mode 100755 mods/fishing/sounds/fishing_baitball.ogg delete mode 100755 mods/fishing/sounds/fishing_bobber1.ogg delete mode 100755 mods/fishing/sounds/fishing_bobber2.ogg delete mode 100755 mods/fishing/sounds/fishing_contest_end.ogg delete mode 100755 mods/fishing/sounds/fishing_contest_start.ogg delete mode 100755 mods/fishing/textures/fishing_bait_bread.png delete mode 100755 mods/fishing/textures/fishing_bait_corn.png delete mode 100755 mods/fishing/textures/fishing_bait_worm.png delete mode 100755 mods/fishing/textures/fishing_baitball.png delete mode 100755 mods/fishing/textures/fishing_baitball_shark.png delete mode 100755 mods/fishing/textures/fishing_bluewhite_raw.png delete mode 100755 mods/fishing/textures/fishing_bobber.png delete mode 100755 mods/fishing/textures/fishing_bobber_bottom.png delete mode 100755 mods/fishing/textures/fishing_bobber_feather_1.png delete mode 100755 mods/fishing/textures/fishing_bobber_shark.png delete mode 100755 mods/fishing/textures/fishing_bobber_top.png delete mode 100755 mods/fishing/textures/fishing_clownfish_raw.png delete mode 100755 mods/fishing/textures/fishing_deco_pike.png delete mode 100755 mods/fishing/textures/fishing_fish_cooked.png delete mode 100755 mods/fishing/textures/fishing_fish_raw.png delete mode 100755 mods/fishing/textures/fishing_particle_baitball.png delete mode 100755 mods/fishing/textures/fishing_particle_baitball_shark.png delete mode 100755 mods/fishing/textures/fishing_pike_cooked.png delete mode 100755 mods/fishing/textures/fishing_pike_raw.png delete mode 100755 mods/fishing/textures/fishing_pole_perfect.png delete mode 100755 mods/fishing/textures/fishing_pole_perfect_back.png delete mode 100755 mods/fishing/textures/fishing_pole_perfect_bottom.png delete mode 100755 mods/fishing/textures/fishing_pole_perfect_front.png delete mode 100755 mods/fishing/textures/fishing_pole_perfect_simple.png delete mode 100755 mods/fishing/textures/fishing_pole_perfect_top.png delete mode 100755 mods/fishing/textures/fishing_pole_wood.png delete mode 100755 mods/fishing/textures/fishing_pole_wood_back.png delete mode 100755 mods/fishing/textures/fishing_pole_wood_bottom.png delete mode 100755 mods/fishing/textures/fishing_pole_wood_deco.png delete mode 100755 mods/fishing/textures/fishing_pole_wood_front.png delete mode 100755 mods/fishing/textures/fishing_pole_wood_simple.png delete mode 100755 mods/fishing/textures/fishing_pole_wood_top.png delete mode 100755 mods/fishing/textures/fishing_shark_cooked.png delete mode 100755 mods/fishing/textures/fishing_shark_raw.png delete mode 100755 mods/fishing/textures/fishing_sushi.png delete mode 100755 mods/fishing/textures/fishing_trophy_label.png delete mode 100755 mods/fishing/textures/fishing_trophy_plank.png delete mode 100755 mods/fishing/trophies.lua delete mode 100755 mods/fishing/worms.lua diff --git a/.gitmodules b/.gitmodules index 6d815d14..106f579f 100755 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "mods/quests"] path = mods/quests url = https://github.com/MinetestForFun/quests.git +[submodule "mods/fishing"] + path = mods/fishing + url = https://github.com/MinetestForFun/fishing.git diff --git a/mods/fishing b/mods/fishing new file mode 160000 index 00000000..7f9809d9 --- /dev/null +++ b/mods/fishing @@ -0,0 +1 @@ +Subproject commit 7f9809d9bec8b18f6187e10995f8ba5a39d3e080 diff --git a/mods/fishing/README.md b/mods/fishing/README.md deleted file mode 100755 index bd77a7f1..00000000 --- a/mods/fishing/README.md +++ /dev/null @@ -1,36 +0,0 @@ - -## Minetest Fishing Mod - -### Original by Mossmanikin https://github.com/Mossmanikin/fishing -### Rewrited by Crabman77 - -5 fish type -3 small fish (fish, clownfish,bluewhite fish) -2 predator fish (small shark, Northern Pike) - - -3 kind of bait for small fish (corn, bread, worm) -3 kind of bait for predator fish (small fish) -2 poles, wood 30 uses and mithril 1500 uses -The baits have a variable luck(15% to 80%) changed between 30 minutes to 6 hours for a better gameplay -Baitball improves lucky bait of 20% - -##Contest Game - -Contest game can be launched by admin, duration variable 2min to 4heures -Start/End is announced in chat and sound -A ranking appears(formspec) after contest - -Adjustable settings in formspec -if the unified_inventory mod is active there is a button for classification or settings for the admin only - - -[demo video youtube](https://youtu.be/8rt8g3F2Gmk) - - -![fishing]( http://nsm08.casimages.com/img/2015/07/01/1507010157379539613411965.png) -![fishing]( http://nsm08.casimages.com/img/2015/07/01//1507010157329539613411964.png) -![fishing]( http://nsm08.casimages.com/img/2015/07/01//1507010157319539613411963.png) -![fishing]( http://nsm08.casimages.com/img/2015/07/01//1507010157389539613411968.png) -![fishing]( http://nsm08.casimages.com/img/2015/07/01//1507010157379539613411966.png) -![fishing]( http://nsm08.casimages.com/img/2015/07/01//1507010157389539613411967.png) diff --git a/mods/fishing/baitball.lua b/mods/fishing/baitball.lua deleted file mode 100755 index 72aaa91e..00000000 --- a/mods/fishing/baitball.lua +++ /dev/null @@ -1,58 +0,0 @@ - --- baitball -minetest.register_craftitem("fishing:baitball", { - description = fishing_setting.func.S("Bait Ball"), - inventory_image = "fishing_baitball.png", - stack_max = 99, -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball 20", - recipe = {"farming:flour", "farming:corn", "bucket:bucket_water"}, - replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}} -}) - - --- baitball_shark -minetest.register_craftitem("fishing:baitball_shark", { - description = fishing_setting.func.S("Shark Bait Ball"), - inventory_image = "fishing_baitball_shark.png", - stack_max = 99, -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:fish_raw", "fishing:fish_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:shark_raw", "fishing:shark_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:pike_raw", "fishing:pike_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:fish_raw", "fishing:shark_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:fish_raw", "fishing:pike_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:shark_raw", "fishing:pike_raw"} -}) diff --git a/mods/fishing/baits.lua b/mods/fishing/baits.lua deleted file mode 100755 index 508a2450..00000000 --- a/mods/fishing/baits.lua +++ /dev/null @@ -1,27 +0,0 @@ - ---fish bait ---bait_corn -minetest.register_craftitem("fishing:bait_corn", { - description = fishing_setting.func.S("Bait Corn"), - inventory_image = "fishing_bait_corn.png", -}) - -fishing_setting.baits["fishing:bait_corn"] = { ["bait"] = "fishing:bait_corn", ["bobber"] = "fishing:bobber_fish_entity",["texture"] = "fishing_bait_corn.png", ["hungry"] = 50 } - ---bait_bread -minetest.register_craftitem("fishing:bait_bread", { - description = fishing_setting.func.S("Bait Bread"), - inventory_image = "fishing_bait_bread.png", -}) - -fishing_setting.baits["fishing:bait_bread"] = { ["bait"] = "fishing:bait_bread", ["bobber"] = "fishing:bobber_fish_entity",["texture"] = "fishing_bait_bread.png", ["hungry"] = 50 } - ---bait_worm -fishing_setting.baits["fishing:bait_worm"] = { ["bait"] = "fishing:bait_worm", ["bobber"] = "fishing:bobber_fish_entity",["texture"] = "fishing_bait_worm.png", ["hungry"] = 50 } - ---shark bait ---bait_fish -fishing_setting.baits["fishing:fish_raw"] = { ["bait"] = "fishing:fish_raw", ["bobber"] = "fishing:bobber_shark_entity",["texture"] = "fishing_fish_raw.png", ["hungry"] = 50 } - -fishing_setting.baits["fishing:clownfish_raw"] = { ["bait"] = "fishing:clownfish_raw", ["bobber"] = "fishing:bobber_shark_entity",["texture"] = "fishing_clownfish_raw.png", ["hungry"] = 50 } -fishing_setting.baits["fishing:bluewhite_raw"] = { ["bait"] = "fishing:bluewhite_raw", ["bobber"] = "fishing:bobber_shark_entity",["texture"] = "fishing_bluewhite_raw.png", ["hungry"] = 50 } diff --git a/mods/fishing/bobber.lua b/mods/fishing/bobber.lua deleted file mode 100755 index a4d4a397..00000000 --- a/mods/fishing/bobber.lua +++ /dev/null @@ -1,187 +0,0 @@ ------------------------------------------------------------------------------------------------ --- Fishing - crabman77's version - Bobber --- Rewrited from original Fishing - Mossmanikin's version - Bobber 0.1.7 --- License (code & textures): WTFPL --- Contains code from: fishing (original), mobs, throwing, volcano --- Supports: 3d_armor, animal_clownfish, animal_fish_blue_white, animal_rat, flowers_plus, mobs, seaplants ------------------------------------------------------------------------------------------------ - --- bobber -minetest.register_node("fishing:bobber_box", { - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { --- { left, bottom, front, right, top , back} - {-8/16, -8/16, 0, 8/16, 8/16, 0}, -- feathers - {-2/16, -8/16, -2/16, 2/16, -4/16, 2/16}, -- bobber - }, - }, - tiles = { - "fishing_bobber_top.png", - "fishing_bobber_bottom.png", - "fishing_bobber.png", - "fishing_bobber.png", - "fishing_bobber.png", - "fishing_bobber.png^[transformFX" - }, - groups = {not_in_creative_inventory=1}, -}) - - -local FISHING_BOBBER_ENTITY={ - hp_max = 605, - water_damage = 1, - physical = true, - timer = 0, - env_damage_timer = 0, - visual = "wielditem", - visual_size = {x=1/3, y=1/3, z=1/3}, - textures = {"fishing:bobber_box"}, - -- {left ,bottom, front, right, top , back} - collisionbox = {-2/16, -4/16, -2/16, 2/16, 1/16, 2/16}, - randomtime = 50, - baitball = 0, - prize = "", - bait = "", - --- DESTROY BOBBER WHEN PUNCHING IT - on_punch = function (self, puncher, time_from_last_punch, tool_capabilities, dir) - if not puncher:is_player() then return end - local player = puncher:get_player_name() - if playername ~= self.owner then return end - if fishing_setting.settings["message"] == true then minetest.chat_send_player(playername, fishing_setting.func.S("You didn't catch anything."), false) end - if not fishing_setting.is_creative_mode then - local inv = puncher:get_inventory() - if inv:room_for_item("main", {name=self.bait, count=1, wear=0, metadata=""}) then - inv:add_item("main", {name=self.bait, count=1, wear=0, metadata=""}) - if fishing_setting.settings["message"] == true then minetest.chat_send_player(playername, fishing_setting.func.S("The bait is still there."), false) end - end - end - -- make sound and remove bobber - minetest.sound_play("fishing_bobber1", { pos = self.object:getpos(), gain = 0.5, }) - self.object:remove() - end, - - --- WHEN RIGHTCLICKING THE BOBBER THE FOLLOWING HAPPENS (CLICK AT THE RIGHT TIME WHILE HOLDING A FISHING POLE) - on_rightclick = function (self, clicker) - local item = clicker:get_wielded_item() - local playername = clicker:get_player_name() - local inv = clicker:get_inventory() - local pos = self.object:getpos() - local item_name = item:get_name() - if string.find(item_name, "fishing:pole_") ~= nil then - if playername ~= self.owner then return end - if self.prize ~= "" then - if math.random(1, 100) <= fishing_setting.settings["escape_chance"] then - if fishing_setting.settings["message"] == true then minetest.chat_send_player(playername, fishing_setting.func.S("Your fish escaped."), false) end -- fish escaped - else - local name = self.prize[1]..":"..self.prize[2] - local desc = self.prize[4] - if fishing_setting.settings["message"] == true then minetest.chat_send_player(playername, fishing_setting.func.S("You caught "..desc), false) end - fishing_setting.func.add_to_trophies(clicker, self.prize[2], desc) - local wear_value = fishing_setting.func.wear_value(self.prize[3]) - if inv:room_for_item("main", {name=name, count=1, wear=wear_value, metadata=""}) then - inv:add_item("main", {name=name, count=1, wear=wear_value, metadata=""}) - else - minetest.spawn_item(clicker:getpos(), {name=name, count=1, wear=wear_value, metadata=""}) - end - end - end - -- weither player has fishing pole or not - minetest.sound_play("fishing_bobber1", { pos = self.object:getpos(), gain = 0.5, }) - self.object:remove() - - elseif item_name == "fishing:baitball" then - if not fishing_setting.is_creative_mode then - inv:remove_item("main", "fishing:baitball") - end - self.baitball = 20 - --addparticle - minetest.add_particlespawner(30, 0.5, -- for how long (?) -- Particles on splash - {x=pos.x,y=pos.y-0.0625,z=pos.z}, {x=pos.x,y=pos.y,z=pos.z}, -- position min, pos max - {x=-2,y=-0.0625,z=-2}, {x=2,y=3,z=2}, -- velocity min, vel max - {x=0,y=-9.8,z=0}, {x=0,y=-9.8,z=0}, - 0.3, 1.2, - 0.25, 0.5, -- min size, max size - false, "fishing_particle_baitball.png") - -- add sound - minetest.sound_play("fishing_baitball", {pos = self.object:getpos(), gain = 0.2, }) - end - end, - - --- AS SOON AS THE BOBBER IS PLACED IT WILL ACT LIKE - on_step = function(self, dtime) - local pos = self.object:getpos() - --remove if no owner, no player, owner no in bobber_view_range - if self.owner == nil then self.object:remove(); return end - --remove if not node water - local node = minetest.get_node_or_nil({x=pos.x, y=pos.y-0.5, z=pos.z}) - if not node or string.find(node.name, "water_source") == nil then - if fishing_setting.settings["message"] == true then minetest.chat_send_player(self.owner, "Haha, Fishing is prohibited outside water!") end - self.object:remove() - return - end - local player = minetest.get_player_by_name(self.owner) - if not player then self.object:remove(); return end - local p = player:getpos() - local dist = ((p.x-pos.x)^2 + (p.y-pos.y)^2 + (p.z-pos.z)^2)^0.5 - if dist > fishing_setting.settings["bobber_view_range"] then - minetest.sound_play("fishing_bobber1", {pos = self.object:getpos(),gain = 0.5,}) - self.object:remove() - return - end - - --rotate bobber - if math.random(1, 4) == 1 then - self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/2880*math.pi)) - end - - self.timer = self.timer + 1 - if self.timer < self.randomtime then - -- if fish or others items, move bobber to simulate fish on the line - if self.prize ~= "" and math.random(1,3) == 1 then - if self.old_pos2 == true then - pos.y = pos.y-0.0280 - self.object:moveto(pos, false) - self.old_pos2 = false - else - pos.y = pos.y+0.0280 - self.object:moveto(pos, false) - self.old_pos2 = true - end - end - return - end - - --change item on line - self.timer = 0 - self.prize = "" - self.object:moveto(self.old_pos, false) - --Once the fish are not hungry :), baitball increase hungry + 20% - if math.random(1, 100) > fishing_setting.baits[self.bait]["hungry"] + self.baitball then - --Fish not hungry !( - self.randomtime = math.random(20,60)*10 - return - end - - self.randomtime = math.random(1,5)*10 - if math.random(1, 100) <= fishing_setting.settings["fish_chance"] then - self.prize = fishing_setting.prizes["fish"][math.random(1,#fishing_setting.prizes["fish"])] - else - if math.random(1, 100) <= 10 then - self.prize = fishing_setting.func.get_loot() - end - end - - if self.prize ~= "" then - pos.y = self.old_pos.y-0.1 - self.object:moveto(pos, false) - minetest.sound_play("fishing_bobber1", {pos=pos,gain = 0.5,}) - end - end, -} - -minetest.register_entity("fishing:bobber_fish_entity", FISHING_BOBBER_ENTITY) diff --git a/mods/fishing/bobber_shark.lua b/mods/fishing/bobber_shark.lua deleted file mode 100755 index 4bc63570..00000000 --- a/mods/fishing/bobber_shark.lua +++ /dev/null @@ -1,191 +0,0 @@ ------------------------------------------------------------------------------------------------ --- Fishing - crabman77 version - Bobber Shark --- Rewrited from original Fishing - Mossmanikin's version - Bobber Shark 0.0.6 --- License (code & textures): WTFPL ------------------------------------------------------------------------------------------------ - --- bobber shark -minetest.register_node("fishing:bobber_shark_box", { - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { --- { left, bottom, front, right, top , back} - {-8/16, -8/16, 0, 8/16, 8/16, 0}, -- feathers - {-2/16, -8/16, -2/16, 2/16, -4/16, 2/16}, -- bobber - } - }, - tiles = { - "fishing_bobber_top.png", - "fishing_bobber_bottom.png", - "fishing_bobber_shark.png", - "fishing_bobber_shark.png", - "fishing_bobber_shark.png", - "fishing_bobber_shark.png^[transformFX" - }, - groups = {not_in_creative_inventory=1}, -}) - - -local FISHING_BOBBER_SHARK_ENTITY={ - hp_max = 605, - water_damage = 1, - physical = true, - timer = 0, - env_damage_timer = 0, - visual = "wielditem", - visual_size = {x=1/3, y=1/3, z=1/3}, - textures = {"fishing:bobber_shark_box"}, - -- {left ,bottom, front, right, top , back} - collisionbox = {-3/16, -4/16, -3/16, 3/16, 4/16, 3/16}, - randomtime = 50, - baitball = 0, - prize = "", - bait = "", - --- DESTROY BOBBER WHEN PUNCHING IT - on_punch = function (self, puncher, time_from_last_punch, tool_capabilities, dir) - if not puncher:is_player() then return end - local player_name = puncher:get_player_name() - if player_name ~= self.owner then return end - if fishing_setting.settings["message"] == true then minetest.chat_send_player(player_name, fishing_setting.func.S("You didn't catch anything."), false) end - if not fishing_setting.is_creative_mode then - local inv = puncher:get_inventory() - if inv:room_for_item("main", {name=self.bait, count=1, wear=0, metadata=""}) then - inv:add_item("main", {name=self.bait, count=1, wear=0, metadata=""}) - if fishing_setting.settings["message"] == true then minetest.chat_send_player(player_name, fishing_setting.func.S("The bait is still there."), false) end - end - end - -- make sound and remove bobber - minetest.sound_play("fishing_bobber1", { pos = self.object:getpos(), gain = 0.5, }) - self.object:remove() - end, - - --- WHEN RIGHTCLICKING THE BOBBER THE FOLLOWING HAPPENS (CLICK AT THE RIGHT TIME WHILE HOLDING A FISHING POLE) - on_rightclick = function (self, clicker) - local item = clicker:get_wielded_item() - local player_name = clicker:get_player_name() - local inv = clicker:get_inventory() - local pos = self.object:getpos() - local item_name = item:get_name() - if string.find(item_name, "fishing:pole_") ~= nil then - if player_name ~= self.owner then return end - if self.prize ~= "" then - if math.random(1, 100) <= fishing_setting.settings["escape_chance"] then - if fishing_setting.settings["message"] == true then minetest.chat_send_player(player_name, fishing_setting.func.S("Your fish escaped."), false) end -- fish escaped - else - local name = self.prize[1]..":"..self.prize[2] - local desc = self.prize[4] - if fishing_setting.settings["message"] == true then minetest.chat_send_player(player_name, fishing_setting.func.S("You caught "..desc), false) end - fishing_setting.func.add_to_trophies(clicker, self.prize[2], desc) - local wear_value = fishing_setting.func.wear_value(self.prize[3]) - if inv:room_for_item("main", {name=name, count=1, wear=wear_value, metadata=""}) then - inv:add_item("main", {name=name, count=1, wear=wear_value, metadata=""}) - else - minetest.spawn_item(clicker:getpos(), {name=name, count=1, wear=wear_value, metadata=""}) - end - end - end - -- weither player has fishing pole or not - minetest.sound_play("fishing_bobber1", { pos = self.object:getpos(), gain = 0.5, }) - self.object:remove() - - elseif item_name == "fishing:baitball_shark" then - if not fishing_setting.is_creative_mode then - inv:remove_item("main", "fishing:baitball_shark") - end - self.baitball = 20 - --addparticle - minetest.add_particlespawner(30, 0.5, -- for how long (?) -- Particles on splash - {x=pos.x,y=pos.y-0.0325,z=pos.z}, {x=pos.x,y=pos.y,z=pos.z}, -- position min, pos max - {x=-2,y=-0.0325,z=-2}, {x=2,y=3,z=2}, -- velocity min, vel max - {x=0,y=-3.8,z=0}, {x=0,y=-9.8,z=0}, - 0.3, 1.2, - 0.25, 0.40, -- min size, max size - false, "fishing_particle_baitball_shark.png") - -- add sound - minetest.sound_play("fishing_baitball", {pos = self.object:getpos(), gain = 0.2, }) - end - end, - - --- AS SOON AS THE BOBBER IS PLACED IT WILL ACT LIKE - on_step = function(self, dtime) - local pos = self.object:getpos() - --remove if no owner, no player, owner no in bobber_view_range - if self.owner == nil then self.object:remove(); return end - --remove if not node water - local node = minetest.get_node_or_nil({x=pos.x, y=pos.y-0.5, z=pos.z}) - if not node or string.find(node.name, "water_source") == nil then - if fishing_setting.settings["message"] == true then minetest.chat_send_player(self.owner, fishing_setting.func.S("Haha, Fishing is prohibited outside water!")) end - self.object:remove() - return - end - local player = minetest.get_player_by_name(self.owner) - if not player then self.object:remove(); return end - local p = player:getpos() - local dist = ((p.x-pos.x)^2 + (p.y-pos.y)^2 + (p.z-pos.z)^2)^0.5 - if dist > fishing_setting.settings["bobber_view_range"] then - minetest.sound_play("fishing_bobber1", {pos = self.object:getpos(),gain = 0.5,}) - self.object:remove() - return - end - - --rotate bobber - if math.random(1, 4) == 1 then - self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/2880*math.pi)) - end - - self.timer = self.timer + 1 - if self.timer < self.randomtime then - -- if fish or others items, move bobber to simulate fish on the line - if self.prize ~= "" and math.random(1,3) == 1 then - if self.old_pos2 == true then - pos.y = pos.y-0.0425 - self.object:moveto(pos, false) - self.old_pos2 = false - else - pos.y = pos.y+0.0425 - self.object:moveto(pos, false) - self.old_pos2 = true - end - end - return - end - - --change item on line - self.timer = 0 - self.prize = "" - self.object:moveto(self.old_pos, false) - --Once the fish are not hungry :), baitball increase hungry + 20% - if math.random(1, 100) > fishing_setting.baits[self.bait]["hungry"] + self.baitball then - --Fish not hungry !( - self.randomtime = math.random(20,60)*10 - return - end - - self.randomtime = math.random(1,5)*10 - local chance = math.random(1, 100) - --if 1 you catch a treasure - if chance == 1 then - if math.random(1, 100) <= fishing_setting.settings["treasure_chance"] and fishing_setting.settings["treasure_enable"] then - self.prize = fishing_setting.prizes["treasure"][math.random(1,#fishing_setting.prizes["treasure"])] - end - elseif chance <= fishing_setting.settings["fish_chance"] then - self.prize = fishing_setting.prizes["shark"][math.random(1,#fishing_setting.prizes["shark"])] - else - if math.random(1, 100) <= 10 then - self.prize = fishing_setting.func.get_loot() - end - end - - if self.prize ~= "" then - pos.y = self.old_pos.y-0.2 - self.object:moveto(pos, false) - minetest.sound_play("fishing_bobber1", {pos=pos,gain = 0.5,}) - end - end, -} - -minetest.register_entity("fishing:bobber_shark_entity", FISHING_BOBBER_SHARK_ENTITY) diff --git a/mods/fishing/crafting.lua b/mods/fishing/crafting.lua deleted file mode 100755 index a57ab24c..00000000 --- a/mods/fishing/crafting.lua +++ /dev/null @@ -1,258 +0,0 @@ ------------------------------------------------------------------------------------------------ --- Fishing - crabman77 version --- Rewrited from original Fishing - Mossmanikin's version - Recipes 0.0.8 ------------------------------------------------------------------------------------------------ --- License (code & textures): WTFPL --- Contains code from: animal_clownfish, animal_fish_blue_white, fishing (original), stoneage --- Looked at code from: --- Dependencies: default, farming --- Supports: animal_clownfish, animal_fish_blue_white, animal_rat, mobs ------------------------------------------------------------------------------------------------ - ------------------------------------------------------------------------------------------------ --- Fishing Pole ------------------------------------------------------------------------------------------------ --- Wood Fishing Pole -minetest.register_craft({ - output = "fishing:pole_wood", - recipe = { - {"", "", "group:stick" }, - {"", "group:stick", "farming:string" }, - {"group:stick", "", "farming:string" }, - } -}) - -if minetest.get_modpath("moreblocks") ~= nil then -minetest.register_craft({ - output = "fishing:pole_wood", - recipe = { - {"", "", "group:stick" }, - {"", "group:stick", "moreblocks:rope" }, - {"group:stick", "", "moreblocks:rope" }, - } -}) -end - -if minetest.get_modpath("ropes") ~= nil then - minetest.register_craft({ - output = "fishing:pole_wood", - recipe = { - {"", "", "group:stick" }, - {"", "group:stick", "ropes:rope" }, - {"group:stick", "", "ropes:rope" }, - } - }) -end - --- Mithril Fishing Pole -if minetest.get_modpath("moreores") ~= nil and minetest.get_modpath("mobs") ~= nil then -minetest.register_craft({ - output = "fishing:pole_perfect", - recipe = { - {"", "", "moreores:mithril_ingot" }, - {"", "moreores:mithril_ingot", "mobs:spider_cobweb" }, - {"moreores:mithril_ingot", "", "mobs:spider_cobweb" }, - } -}) -end - ------------------------------------------------------------------------------------------------ --- Fishing bait ------------------------------------------------------------------------------------------------ ---bait corn -minetest.register_craft({ - output = "fishing:bait_corn 9", - recipe = { - {"", "farming:corn", ""}, - } -}) - ---bait bread -minetest.register_craft({ - output = "fishing:bait_bread 9", - recipe = { - {"", "farming:bread", ""}, - } -}) - ------------------------------------------------------------------------------------------------ --- Roasted Fish ------------------------------------------------------------------------------------------------ -minetest.register_craft({ - type = "cooking", - output = "fishing:fish_cooked", - recipe = "fishing:fish_raw", - cooktime = 2, -}) - -minetest.register_craft({ - type = "cooking", - output = "fishing:fish_cooked", - recipe = "fishing:clownfish_raw", - cooktime = 2, -}) -minetest.register_craft({ - type = "cooking", - output = "fishing:fish_cooked", - recipe = "fishing:bluewhite_raw", - cooktime = 2, -}) - - ------------------------------------------------------------------------------------------------ --- Wheat Seed ------------------------------------------------------------------------------------------------ -minetest.register_craft({ - type = "shapeless", - output = "farming:seed_wheat", - recipe = {"farming:wheat"}, -}) - ------------------------------------------------------------------------------------------------ --- Sushi ------------------------------------------------------------------------------------------------ -if minetest.get_modpath("flowers_plus") ~= nil then - minetest.register_craft({ - type = "shapeless", - output = "fishing:sushi", - recipe = {"fishing:fish_cooked", "farming:seed_wheat", "flowers:seaweed" }, - }) -end - -if minetest.get_modpath("seaplants") ~= nil then - minetest.register_craft({ - type = "shapeless", - output = "fishing:sushi", - recipe = {"fishing:fish_cooked", "farming:seed_wheat", "seaplants:kelpgreen" }, - - }) -end - ------------------------------------------------------------------------------------------------ --- Roasted Shark ------------------------------------------------------------------------------------------------ -minetest.register_craft({ - type = "cooking", - output = "fishing:shark_cooked", - recipe = "fishing:shark_raw", - cooktime = 2, -}) - ------------------------------------------------------------------------------------------------ --- Roasted Pike ------------------------------------------------------------------------------------------------ -minetest.register_craft({ - type = "cooking", - output = "fishing:pike_cooked", - recipe = "fishing:pike_raw", - cooktime = 2, -}) - - --- baitball -minetest.register_craftitem("fishing:baitball", { - description = fishing_setting.func.S("Bait Ball"), - inventory_image = "fishing_baitball.png", - stack_max = 99, -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball 20", - recipe = {"farming:flour", "farming:corn", "bucket:bucket_water"}, - replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}} -}) - - --- baitball_shark -minetest.register_craftitem("fishing:baitball_shark", { - description = fishing_setting.func.S("Shark Bait Ball"), - inventory_image = "fishing_baitball_shark.png", - stack_max = 99, -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:fish_raw", "fishing:fish_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:clownfish_raw", "fishing:clownfish_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:clownfish_raw", "fishing:fish_raw"} -}) -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:bluewhite_raw", "fishing:bluewhite_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:bluewhite_raw", "fishing:fish_raw"} -}) -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:clownfish_raw", "fishing:bluewhite_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:clownfish_raw", "fishing:shark_raw"} -}) -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:clownfish_raw", "fishing:pike_raw"} -}) -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:bluewhite_raw", "fishing:shark_raw"} -}) -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:bluewhite_raw", "fishing:pike_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:shark_raw", "fishing:shark_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:pike_raw", "fishing:pike_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:fish_raw", "fishing:shark_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:fish_raw", "fishing:pike_raw"} -}) - -minetest.register_craft({ - type = "shapeless", - output = "fishing:baitball_shark 20", - recipe = {"fishing:shark_raw", "fishing:pike_raw"} -}) - diff --git a/mods/fishing/depends.txt b/mods/fishing/depends.txt deleted file mode 100755 index 6b8e3db4..00000000 --- a/mods/fishing/depends.txt +++ /dev/null @@ -1,9 +0,0 @@ -default -unified_inventory? -farming -moreblocks? -ropes? -moreores? -mobs? -flowers_plus? -seaplants? diff --git a/mods/fishing/fishes.lua b/mods/fishing/fishes.lua deleted file mode 100755 index a0eb26f2..00000000 --- a/mods/fishing/fishes.lua +++ /dev/null @@ -1,91 +0,0 @@ -------------------------------------------------------------------------------------------- --- Fishing - crabman77 version --- Rewrited from original Fishing - Mossmanikin's version - Fishes 0.0.4 --- License (code & textures): WTFPL ------------------------------------------------------------------------------------------------ - ------------------------------------------------------------------------------------------------ --- Fish ------------------------------------------------------------------------------------------------ -minetest.register_craftitem("fishing:fish_raw", { - description = fishing_setting.func.S("Fish"), - groups = {}, - inventory_image = "fishing_fish_raw.png", - on_use = minetest.item_eat(2), -}) - ----------------------------------------------------- - -- Roasted Fish - ----------------------------------------------------- - minetest.register_craftitem("fishing:fish_cooked", { - description = fishing_setting.func.S("Roasted Fish"), - groups = {}, - inventory_image = "fishing_fish_cooked.png", - on_use = minetest.item_eat(4), - }) - ----------------------------------------------------- - -- Sushi - ----------------------------------------------------- - minetest.register_craftitem("fishing:sushi", { - description = fishing_setting.func.S("Sushi (Hoso Maki)"), - groups = {}, - inventory_image = "fishing_sushi.png", - on_use = minetest.item_eat(6), - }) - ------------------------------------------------------------------------------------------------ --- clownfish ------------------------------------------------------------------------------------------------ -minetest.register_craftitem("fishing:clownfish_raw", { - description = fishing_setting.func.S("Clownfish"), - groups = {}, - inventory_image = "fishing_clownfish_raw.png", - on_use = minetest.item_eat(2), -}) - ------------------------------------------------------------------------------------------------ --- bluewhite ------------------------------------------------------------------------------------------------ -minetest.register_craftitem("fishing:bluewhite_raw", { - description = fishing_setting.func.S("Bluewhite"), - groups = {}, - inventory_image = "fishing_bluewhite_raw.png", - on_use = minetest.item_eat(2), -}) - ------------------------------------------------------------------------------------------------ --- Whatthef... it's a freakin' Shark! ------------------------------------------------------------------------------------------------ -minetest.register_craftitem("fishing:shark_raw", { - description = fishing_setting.func.S("Shark"), - groups = {}, - inventory_image = "fishing_shark_raw.png", - on_use = minetest.item_eat(2), -}) - ----------------------------------------------------- - -- Roasted Shark - ----------------------------------------------------- - minetest.register_craftitem("fishing:shark_cooked", { - description = fishing_setting.func.S("Roasted Shark"), - groups = {}, - inventory_image = "fishing_shark_cooked.png", - on_use = minetest.item_eat(6), - }) - ------------------------------------------------------------------------------------------------ --- Pike ------------------------------------------------------------------------------------------------ -minetest.register_craftitem("fishing:pike_raw", { - description = fishing_setting.func.S("Northern Pike"), - groups = {}, - inventory_image = "fishing_pike_raw.png", - on_use = minetest.item_eat(2), -}) - ----------------------------------------------------- - -- Roasted Pike - ----------------------------------------------------- - minetest.register_craftitem("fishing:pike_cooked", { - description = fishing_setting.func.S("Roasted Northern Pike"), - groups = {}, - inventory_image = "fishing_pike_cooked.png", - on_use = minetest.item_eat(6), - }) diff --git a/mods/fishing/functions.lua b/mods/fishing/functions.lua deleted file mode 100755 index 405b524d..00000000 --- a/mods/fishing/functions.lua +++ /dev/null @@ -1,650 +0,0 @@ - -local S = fishing_setting.func.S - ---function save settings -function fishing_setting.func.save() - local input, err = io.open(fishing_setting.file_settings, "w") - if input then - input:write(minetest.serialize(fishing_setting.settings)) - input:close() - else - minetest.log("error", "open(" .. fishing_setting.file_settings .. ", 'w') failed: " .. err) - end -end - - -function fishing_setting.func.set_settings(new_settings, settings) - if settings["message"] ~= nil then - new_settings["message"] = settings["message"] - end - - if settings["worm_is_mob"] ~= nil then - new_settings["worm_is_mob"] = settings["worm_is_mob"] - end - - if settings["worm_chance"] ~= nil then - new_settings["worm_chance"] = settings["worm_chance"] - end - - if settings["new_worm_source"] ~= nil then - new_settings["new_worm_source"] = settings["new_worm_source"] - end - if settings["wear_out"] ~= nil then - new_settings["wear_out"] = settings["wear_out"] - end - - if settings["bobber_view_range"] ~= nil then - new_settings["bobber_view_range"] = settings["bobber_view_range"] - end - - if settings["simple_deco_fishing_pole"] ~= nil then - new_settings["simple_deco_fishing_pole"] = settings["simple_deco_fishing_pole"] - end - - if settings["fish_chance"] ~= nil then - new_settings["fish_chance"] = settings["fish_chance"] - end - - if settings["treasure_chance"] ~= nil then - new_settings["treasure_chance"] = settings["treasure_chance"] - end - - if settings["shark_chance"] ~= nil then - new_settings["shark_chance"] = settings["shark_chance"] - end - - if settings["treasure_enable"] ~= nil then - new_settings["treasure_enable"] = settings["treasure_enable"] - end - - if settings["escape_chance"] ~= nil then - new_settings["escape_chance"] = settings["escape_chance"] - end -end - - ---function load settings from file -function fishing_setting.func.load() - local file = io.open(fishing_setting.file_settings, "r") - local settings = {} - if file then - settings = minetest.deserialize(file:read("*all")) - file:close() - if settings and type(settings) == "table" then - fishing_setting.func.set_settings(fishing_setting.settings, settings) - end - end -end - ---function return wear tool value (old or new) -function fishing_setting.func.wear_value(wear) - local used = 0 - if wear == "random" then - used = (2000*(math.random(20, 29))) - elseif wear == "randomtools" then - used = (65535/(30-(math.random(15, 29)))) - end - return used -end - - --- function return table where mods actived -function fishing_setting.func.ignore_mod(list) - local listOk = {} - for i,v in ipairs(list) do - if minetest.get_modpath(v[1]) ~= nil then - table.insert(listOk, v) - end - end - return listOk -end - ---function random hungry by bait type -function fishing_setting.func.hungry_random() - for i,a in pairs(fishing_setting.baits) do - fishing_setting.baits[i]["hungry"] = math.random(15, 80) - end - --change hungry after random time, min 0h30, max 6h00 - minetest.after(math.random(1, 12)*1800,function() fishing_setting.func.hungry_random() end) -end - - -function fishing_setting.func.get_loot() - local c = math.random(1, 67) - for i in pairs(fishing_setting.prizes["stuff"]) do - local min = fishing_setting.prizes["stuff"][i][5] - local chance = fishing_setting.prizes["stuff"][i][6] - local max = min + chance - 1 - if c <= max and c >= min then - return fishing_setting.prizes["stuff"][i] - end - end - return "" -end - - --- Show notification when a player catches treasure -function fishing_setting.func.notify(f_name, treasure) - local title = S("Lucky %s, he caught the treasure, %s!"):format(f_name, treasure[4]) - for _, player in ipairs(minetest.get_connected_players()) do - local player_name = player:get_player_name() - if player_name == f_name then - minetest.chat_send_player(player_name, S("You caught the treasure, %s!"):format(treasure[4])) - else - minetest.chat_send_player(player_name, title) - end - end -end - - --- Menu: fishing configuration -fishing_setting.func.on_show_settings = function(player_name) - if not fishing_setting.tmp_setting then - fishing_setting.tmp_setting = {} - fishing_setting.func.set_settings(fishing_setting.tmp_setting, fishing_setting.settings) - end - local formspec = "size[10.8,9]label[4,0;"..S("Fishing configuration").."]".. - -- Fish chance - "label[1.6,0.5;"..S("Fish chance").."]".. - "button[0,1;1,1;cfish;-1]".. - "button[1,1;1,1;cfish;-10]".. - "label[2.1,1.2;"..tostring(fishing_setting.tmp_setting["fish_chance"]).."]".. - "button[2.7,1;1,1;cfish;+10]".. - "button[3.7,1;1,1;cfish;+1]".. - -- Shark chance - "label[1.5,2;"..S("Shark chance").."]".. - "button[0,2.5;1,1;cshark;-1]".. - "button[1,2.5;1,1;cshark;-10]".. - "label[2.1,2.7;"..tostring(fishing_setting.tmp_setting["shark_chance"]).."]".. - "button[2.7,2.5;1,1;cshark;+10]".. - "button[3.7,2.5;1,1;cshark;+1]".. - -- Treasure chance - "label[1.5,3.5;"..S("Treasure chance").."]".. - "button[0,4.;1,1;ctreasure;-1]".. - "button[1,4;1,1;ctreasure;-10]".. - "label[2.1,4.2;"..tostring(fishing_setting.tmp_setting["treasure_chance"]).."]".. - "button[2.7,4;1,1;ctreasure;+10]".. - "button[3.7,4;1,1;ctreasure;+1]".. - -- Worm chance - "label[7.5,0.5;"..S("Worm chance").."]".. - "button[6,1;1,1;cworm;-1]".. - "button[7,1;1,1;cworm;-10]".. - "label[8.1,1.2;"..tostring(fishing_setting.tmp_setting["worm_chance"]).."]".. - "button[8.7,1;1,1;cworm;+10]".. - "button[9.7,1;1,1;cworm;+1]".. - -- Escape chance - "label[7.4,2;"..S("Escape chance").."]".. - "button[6,2.5;1,1;cescape;-1]".. - "button[7,2.5;1,1;cescape;-10]".. - "label[8.1,2.7;"..tostring(fishing_setting.tmp_setting["escape_chance"]).."]".. - "button[8.7,2.5;1,1;cescape;+10]".. - "button[9.7,2.5;1,1;cescape;+1]".. - -- Bobber view range - "label[7.2,3.5;"..S("Bobber view range").."]".. - "button[7,4;1,1;bvrange;-1]".. - "label[8.1,4.2;"..tostring(fishing_setting.tmp_setting["bobber_view_range"]).."]".. - "button[8.7,4;1,1;bvrange;+1]".. - -- Messages display - "label[0,5.7;"..S("Display messages in chat").."]".. - "button[3.7,5.5;1,1;dmessages;"..tostring(fishing_setting.tmp_setting["message"]).."]".. - --poledeco - "label[0,6.5;"..S("Simple pole deco").."]".. - "button[3.7,6.3;1,1;poledeco;"..tostring(fishing_setting.tmp_setting["simple_deco_fishing_pole"]).."]".. - -- Wearout - "label[0,7.3;"..S("Poles wearout").."]".. - "button[3.7,7.1;1,1;wearout;"..tostring(fishing_setting.tmp_setting["wear_out"]).."]".. - -- TREASURE_ENABLE - "label[6,5.7;"..S("Enable treasure").."]".. - "button[9.7,5.5;1,1;treasureenable;"..tostring(fishing_setting.tmp_setting["treasure_enable"]).."]".. - -- NEW_WORM_SOURCE - "label[6,6.5;"..S("New worm source (reboot)").."]".. - "button[9.7,6.3;1,1;newworm;"..tostring(fishing_setting.tmp_setting["new_worm_source"]).."]".. - -- WORM_IS_MOB - "label[6,7.3;"..S("Worm is a mob (reboot)").."]".. - "button[9.7,7.1;1,1;wormmob;"..tostring(fishing_setting.tmp_setting["worm_is_mob"]).."]".. - "button_exit[0,8.2;1.5,1;abort;"..S("Abort").."]".. - "button_exit[9.2,8.2;1.5,1;save;"..S("OK").."]" - minetest.show_formspec(player_name, "fishing:settings", formspec) -end - -local inc = function(value, field, min, max) - local inc = tonumber(field) - local v = value - if inc ~= nil then - v = value + inc - end - - if v > max then - return max - end - if v < min then - return min - end - return v -end - - -local bool = function(field) - return field ~= "true" -end - -minetest.register_on_player_receive_fields(function(player, formname, fields) - local player_name = player:get_player_name() - if not player_name then return end - if formname == "fishing:settings" then - if fields["save"] then - fishing_setting.func.set_settings(fishing_setting.settings, fishing_setting.tmp_setting) - fishing_setting.func.save() - fishing_setting.tmp_setting = nil - return - elseif fields["quit"] or fields["abort"] then - fishing_setting.tmp_setting = nil - return - elseif fields["cfish"] then - fishing_setting.tmp_setting["fish_chance"] = inc(fishing_setting.tmp_setting["fish_chance"], fields["cfish"], 1, 100) - elseif fields["cshark"] then - fishing_setting.tmp_setting["shark_chance"] = inc(fishing_setting.tmp_setting["shark_chance"], fields["cshark"], 1, 100) - elseif fields["ctreasure"] then - fishing_setting.tmp_setting["treasure_chance"] = inc(fishing_setting.tmp_setting["treasure_chance"], fields["ctreasure"], 1, 100) - elseif fields["bvrange"] then - fishing_setting.tmp_setting["bobber_view_range"] = inc(fishing_setting.tmp_setting["bobber_view_range"], fields["bvrange"], 4, 20) - elseif fields["cworm"] then - fishing_setting.tmp_setting["worm_chance"] = inc(fishing_setting.tmp_setting["worm_chance"], fields["cworm"], 1, 100) - elseif fields["cescape"] then - fishing_setting.tmp_setting["escape_chance"] = inc(fishing_setting.tmp_setting["escape_chance"], fields["cescape"], 1, 50) - elseif fields["dmessages"] then - fishing_setting.tmp_setting["message"] = bool(fields["dmessages"]) - elseif fields["poledeco"] then - fishing_setting.tmp_setting["simple_deco_fishing_pole"] = bool(fields["poledeco"]) - elseif fields["wearout"] then - fishing_setting.tmp_setting["wear_out"] = bool(fields["wearout"]) - elseif fields["treasureenable"] then - fishing_setting.tmp_setting["treasure_enable"] = bool(fields["treasureenable"]) - elseif fields["newworm"] then - fishing_setting.tmp_setting["new_worm_source"] = bool(fields["newworm"]) - elseif fields["wormmob"] then - fishing_setting.tmp_setting["worm_is_mob"] = bool(fields["wormmob"]) - else - return - end - - fishing_setting.func.on_show_settings(player_name) - elseif formname == "fishing:admin_conf" then - if fields["classement"] then - local formspec = fishing_setting.func.get_stat() - minetest.show_formspec(player_name, "fishing:classement", formspec) - elseif fields["contest"] then - fishing_setting.func.on_show_settings_contest(player_name) - elseif fields["configuration"] then - fishing_setting.func.on_show_settings(player_name) - elseif fields["hungerinfo"] then - fishing_setting.func.get_hunger_info(player_name) - end - end -end) - ---function load settings from file -function fishing_setting.func.load_trophies() - local file = io.open(fishing_setting.file_trophies, "r") - fishing_setting.trophies = {} - if file then - fishing_setting.trophies = minetest.deserialize(file:read("*all")) - file:close() - if not fishing_setting.trophies or type(fishing_setting.trophies) ~= "table" then - fishing_setting.trophies = {} - end - end -end - -function fishing_setting.func.save_trophies() - local input = io.open(fishing_setting.file_trophies, "w") - if input then - input:write(minetest.serialize(fishing_setting.trophies)) - input:close() - else - minetest.log("action","Open failed (mode:w) of " .. fishing_setting.file_trophies) - end -end - -minetest.register_on_shutdown(function() - minetest.log("action", "[fishing] Server shuts down. saving trophies table") - fishing_setting.func.save_trophies() - fishing_setting.func.save_contest() -end) - - -function fishing_setting.func.timetostr(time) - local countdown = time - local answer = "" - if countdown >= 3600 then - local hours = math.floor(countdown / 3600) - countdown = countdown % 3600 - answer = hours .. "h" - end - if countdown >= 60 then - local minutes = math.floor(countdown / 60) - countdown = countdown % 60 - answer = answer .. minutes .. "m" - else - answer = answer .. "0m" - end - local seconds = countdown - answer = answer .. math.floor(seconds) .. "s" - return answer -end - -minetest.register_on_joinplayer(function(player) - local player_name = player:get_player_name() - if fishing_setting.contest["contest"] == true then - minetest.chat_send_player(player_name, S("A fishing contest is in progress. (remaining time %s)"):format(fishing_setting.func.timetostr(fishing_setting.contest["duration"]))) - end -end) - - -function fishing_setting.func.add_to_trophies(player, fish, desc) - local player_name = player:get_player_name() - if not player_name then return end - if fish == "fish_raw" or fish == "shark_raw" or fish == "pike_raw" or fish == "clownfish_raw" or fish == "bluewhite_raw" then - if fishing_setting.trophies[fish] == nil then - fishing_setting.trophies[fish] = {} - end - fishing_setting.trophies[fish][player_name] = (fishing_setting.trophies[fish][player_name] or 0) + 1 - if fishing_setting.trophies[fish][player_name]%100 == 0 then - minetest.chat_send_player(player_name, S("You win a new trophy, you have caught %s " .. fish.."."):format(fishing_setting.trophies[fish][player_name])) - local inv = player:get_inventory() - local name = "fishing:trophy_"..fish - if inv:room_for_item("main", {name=name, count=1, wear=0, metadata=""}) then - inv:add_item("main", {name=name, count=1, wear=0, metadata=""}) - else - minetest.spawn_item(player:getpos(), {name=name, count=1, wear=0, metadata=""}) - end - end - - if fishing_setting.contest["contest"] ~= nil and fishing_setting.contest["contest"] == true then - if fishing_setting.contest[fish] == nil then - fishing_setting.contest[fish] = {} - end - fishing_setting.contest[fish][player_name] = (fishing_setting.contest[fish][player_name] or 0) + 1 - minetest.chat_send_all(S("Yeah, %s caught "..desc):format(player_name)) - end - end -end - - --- Menu: fishing configuration/contest -fishing_setting.func.on_show_admin_menu = function(player_name) - local formspec = "size[5,5]label[1.7,0;"..S("Fishing Menu").."]".. - "button[0.5,0.5;4,1;classement;"..S("Contest rankings").."]".. - "button[0.5,1.5;4,1;contest;"..S("Contests").."]".. - "button[0.5,2.5;4,1;configuration;"..S("Configuration").."]".. - "button[0.5,3.5;4,1;hungerinfo;"..S("Hunger info").."]".. - "button_exit[1,4.5;3,1;close;"..S("Close").."]" - minetest.show_formspec(player_name, "fishing:admin_conf", formspec) -end - - -if (minetest.get_modpath("unified_inventory")) then - unified_inventory.register_button("menu_fishing", { - type = "image", - image = "fishing_fish_raw.png", - tooltip = "fishing menu configuration", - action = function(player) - local player_name = player:get_player_name() - if not player_name then return end - if minetest.check_player_privs(player_name, {server=true}) then - fishing_setting.func.on_show_admin_menu(player_name) - else - local formspec = fishing_setting.func.get_stat() - minetest.show_formspec(player_name, "fishing:classement", formspec) - end - end, - }) -end - - ---function save settings -function fishing_setting.func.save_contest() - local input = io.open(fishing_setting.file_contest, "w") - if input then - input:write(minetest.serialize(fishing_setting.contest)) - input:close() - else - minetest.log("action","Open failed (mode:w) of " .. fishing_setting.file_contest) - end -end - ---function load councours data from file -function fishing_setting.func.load_contest() - local file = io.open(fishing_setting.file_contest, "r") - local settings = {} - fishing_setting.contest = {["contest"] = false, ["duration"] = 3600, ["bobber_nb"] = 4} - if file then - settings = minetest.deserialize(file:read("*all")) - file:close() - if settings ~= nil and type(settings) == "table" then - if settings["contest"] ~= nil then - fishing_setting.contest["contest"] = settings["contest"] - end - if settings["duration"] ~= nil then - fishing_setting.contest["duration"] = settings["duration"] - end - if settings["bobber_nb"] ~= nil then - fishing_setting.contest["bobber_nb"] = settings["bobber_nb"] - end - if settings["fish_raw"] ~= nil then - fishing_setting.contest["fish_raw"] = settings["fish_raw"] - end - if settings["clownfish_raw"] ~= nil then - fishing_setting.contest["clownfish_raw"] = settings["clownfish_raw"] - end - if settings["bluewhite_raw"] ~= nil then - fishing_setting.contest["bluewhite_raw"] = settings["bluewhite_raw"] - end - if settings["shark_raw"] ~= nil then - fishing_setting.contest["shark_raw"] = settings["shark_raw"] - end - if settings["pike_raw"] ~= nil then - fishing_setting.contest["pike_raw"] = settings["pike_raw"] - end - end - end -end - -function fishing_setting.func.end_contest() - fishing_setting.contest["contest"] = false - minetest.chat_send_all(S("End of fishing contest.")) - minetest.sound_play("fishing_contest_end",{gain=0.8}) - fishing_setting.func.show_result() -end - ---Menu fishing configuration -fishing_setting.func.on_show_settings_contest = function(player_name) - if not fishing_setting.tmp_setting then - fishing_setting.tmp_setting = { ["contest"] = (fishing_setting.contest["contest"] or false), - ["duration"] = (math.floor(fishing_setting.contest["duration"]) or 3600), - ["bobber_nb"] = (fishing_setting.contest["bobber_nb"] or 2), - ["reset"] = false - } - end - local formspec = "size[6.1,7]label[1.9,0;"..S("Fishing contest").."]".. - --Time contest - "label[2.2,0.5;"..S("Duration(in sec)").."]".. - "button[0.8,1;1,1;duration;-60]".. - "button[1.8,1;1,1;duration;-600]".. - "label[2.7,1.2;"..tostring(fishing_setting.tmp_setting["duration"]).."]".. - "button[3.5,1;1,1;duration;+600]".. - "button[4.5,1;1,1;duration;+60]".. - --bobber nb - "label[2,2;"..S("Bobber number limit").."]".. - "button[1.8,2.5;1,1;bobbernb;-1]".. - "label[2.9,2.7;"..tostring(fishing_setting.tmp_setting["bobber_nb"]).."]".. - "button[3.5,2.5;1,1;bobbernb;+1]".. - --contest enable - "label[0.8,3.8;"..S("Enable contests").."]".. - "button[4.5,3.6;1,1;contest;"..tostring(fishing_setting.tmp_setting["contest"]).."]".. - --reset - "label[0.8,5.2;"..S("Reset rankings").."]".. - "button[4.5,5;1,1;reset;"..tostring(fishing_setting.tmp_setting["reset"]).."]".. - "button_exit[0.8,6.2;1.5,1;abort;"..S("Abort").."]".. - "button_exit[4,6.2;1.5,1;save;"..S("OK").."]" - minetest.show_formspec(player_name, "fishing:contest", formspec) -end - -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname == "fishing:contest" then - local name = player:get_player_name() - if not name then return end - if fields["save"] then - if fishing_setting.tmp_setting["reset"] == true then - fishing_setting.contest["fish_raw"] = {} - fishing_setting.contest["clownfish_raw"] = {} - fishing_setting.contest["bluewhite_raw"] = {} - fishing_setting.contest["shark_raw"] = {} - fishing_setting.contest["pike_raw"] = {} - end - - local progress = (fishing_setting.contest["contest"] or false) - fishing_setting.contest["duration"] = fishing_setting.tmp_setting["duration"] - fishing_setting.contest["contest"] = fishing_setting.tmp_setting["contest"] - fishing_setting.contest["bobber_nb"] = fishing_setting.tmp_setting["bobber_nb"] - if progress == false and fishing_setting.tmp_setting["contest"] == true then - fishing_setting.contest["contest"] = true - fishing_setting.contest["warning_said"] = false - local time = fishing_setting.func.timetostr(fishing_setting.contest["duration"]) - minetest.chat_send_all(S("Attention, Fishing contest start (duration %s)!!!"):format(time)) - minetest.sound_play("fishing_contest_start",{gain=0.8}) - elseif progress == true and fishing_setting.tmp_setting["contest"] == false then - fishing_setting.func.end_contest() - end - fishing_setting.func.save_contest() - fishing_setting.tmp_setting = nil - return - elseif fields["quit"] or fields["abort"] then - fishing_setting.tmp_setting = nil - return - elseif fields["duration"] then - fishing_setting.tmp_setting["duration"] = inc(fishing_setting.tmp_setting["duration"], fields["duration"], 120, 14400) - elseif fields["contest"] then - fishing_setting.tmp_setting["contest"] = bool(fields["contest"]) - elseif fields["bobbernb"] then - fishing_setting.tmp_setting["bobber_nb"] = inc(fishing_setting.tmp_setting["bobber_nb"], fields["bobbernb"], 1, 8) - elseif fields["reset"] then - fishing_setting.tmp_setting["reset"] = bool(fields["reset"]) - else - return - end - fishing_setting.func.on_show_settings_contest(name) - end -end) - - -function spairs(t, order) - -- collect the keys - local keys = {} - for k in pairs(t) do keys[#keys+1] = k end - -- if order function given, sort by it by passing the table and keys a, b, - -- otherwise just sort the keys - if order then - table.sort(keys, function(a,b) return order(t, a, b) end) - else - table.sort(keys) - end - -- return the iterator function - local i = 0 - return function() - i = i + 1 - if keys[i] then - return keys[i], t[keys[i]] - end - end -end - - -function fishing_setting.func.set_winners(list) - local win = {} - local i = 1 - -- this uses an custom sorting function ordering by score descending - for k,v in spairs(list, function(t,a,b) return t[b] < t[a] end) do - table.insert(win, {[k]=v}) - if #win >= 6 then - break - end - end - return win -end - - -function fishing_setting.func.get_stat() - local winners= {} - for k,v in pairs(fishing_setting.contest) do - if string.find(k, "_raw") ~= nil then - if fishing_setting.contest[k] ~= nil then - winners[k] = fishing_setting.func.set_winners(fishing_setting.contest[k]) - else - winners[k] = {} - end - end - end - local formspec = {"size[12,8]label[4.6,0;"..S("Fishing contest rankings").."]"} - local X = 0 - local Y - for fish, fishers in pairs(winners) do - Y = 1.1 - table.insert(formspec, "label["..(X+0.4)..",0.5;"..string.gsub(fish, "_raw", ""):upper().."]") --fish name - for _,s in ipairs(fishers) do - for pl,nb in pairs(s) do - table.insert(formspec, "label["..(X) ..","..Y..";"..tostring(nb).."]") -- nb fish caught - table.insert(formspec, "label["..(X+0.5) ..","..Y..";"..tostring(pl).."]") -- playername - end - Y = Y + 0.4 - end - X = X + 2.3 - end - table.insert(formspec, "button_exit[5.4,7.5;1.2,1;close;"..S("Close").."]") - return table.concat(formspec) -end - -function fishing_setting.func.get_hunger_info(player_name) - local formspec = "size[6,8]label[1.9,0;Fishing Info Center]" - local y = 1 - for i, a in pairs(fishing_setting.baits) do - formspec = formspec .."item_image_button[1,"..tostring(y)..";1,1;"..tostring(i)..";"..tostring(i)..";]".. - "label[2.2,"..tostring(y+0.2)..";Chance to fish :"..tostring(a["hungry"]).."%]" - y = y+1 - end - formspec = formspec .."button_exit[2,7.5;2,1;close;"..S("Close").."]" - minetest.show_formspec(player_name,"fishing:material_info", formspec) -end - -minetest.register_chatcommand("fishing_menu", { - params = "", - description = "Show fishing menu (admin only)", - privs = {server=true}, - func = function(player_name, param) - if not player_name then return end - fishing_setting.func.on_show_admin_menu(player_name) - end -}) - -minetest.register_chatcommand("fishing_classement", { - params = "display classement", - description = "", - privs = {interact=true}, - func = function(player_name, param) - if not player_name then return end - local formspec = fishing_setting.func.get_stat() - minetest.show_formspec(player_name, "fishing:classement", formspec) - end -}) - -function fishing_setting.func.show_result() - minetest.after(3, function() - local formspec = fishing_setting.func.get_stat() - for _,player in pairs(minetest.get_connected_players()) do - local player_name = player:get_player_name() - if player_name ~= nil then - minetest.show_formspec(player_name, "fishing:classement", formspec) - end - end - end) -end diff --git a/mods/fishing/init.lua b/mods/fishing/init.lua deleted file mode 100755 index 36f2f84d..00000000 --- a/mods/fishing/init.lua +++ /dev/null @@ -1,95 +0,0 @@ ------------------------------------------------------------------------------------------------ -local title = "Fishing - Crabman77's version" -local version = "0.0.2" -local mname = "fishing" ------------------------------------------------------------------------------------------------ --- original by wulfsdad (http://forum.minetest.net/viewtopic.php?id=4375) --- rewrited by Mossmanikin (https://forum.minetest.net/viewtopic.php?id=6480) --- this version rewrited by Crabman77 --- License (code & textures): WTFPL --- Contains code from: animal_clownfish, animal_fish_blue_white, fishing (original), stoneage --- Looked at code from: default, farming --- Dependencies: default --- Supports: animal_clownfish, animal_fish_blue_white, animal_rat, mobs ------------------------------------------------------------------------------------------------ - -minetest.log("action","[mod fishing] Loading...") -local path = minetest.get_modpath("fishing").."/" - -fishing_setting = {} -fishing_setting.func = {} -fishing_setting.is_creative_mode = minetest.setting_getbool("creative_mode") -fishing_setting.file_settings = minetest.get_worldpath() .. "/fishing_config.txt" -fishing_setting.file_trophies = minetest.get_worldpath() .. "/fishing_trophies.txt" -fishing_setting.file_contest = minetest.get_worldpath() .. "/fishing_contest.txt" -fishing_setting.settings = {} -fishing_setting.contest = {} ---for random object -random_objects = {} -fishing_setting.baits = {} -fishing_setting.hungry = {} -fishing_setting.prizes = {} -fishing_setting.trophies = {} - -if (minetest.get_modpath("intllib")) then - dofile(minetest.get_modpath("intllib").."/intllib.lua") - fishing_setting.func.S = intllib.Getter(minetest.get_current_modname()) -else - fishing_setting.func.S = function ( s ) return s end -end - -dofile(path .."settings.txt") -dofile(path .."functions.lua") - ---default_settings -fishing_setting.settings["message"] = MESSAGES -fishing_setting.settings["worm_is_mob"] = WORM_IS_MOB -fishing_setting.settings["worm_chance"] = WORM_CHANCE -fishing_setting.settings["new_worm_source"] = NEW_WORM_SOURCE -fishing_setting.settings["wear_out"] = WEAR_OUT -fishing_setting.settings["simple_deco_fishing_pole"] = SIMPLE_DECO_FISHING_POLE -fishing_setting.settings["bobber_view_range"] = BOBBER_VIEW_RANGE -fishing_setting.settings["fish_chance"] = FISH_CHANCE -fishing_setting.settings["shark_chance"] = SHARK_CHANCE -fishing_setting.settings["treasure_chance"] = TREASURE_CHANCE -fishing_setting.settings["treasure_enable"] = TREASURE_RANDOM_ENABLE -fishing_setting.settings["escape_chance"] = ESCAPE_CHANCE - --- load config file if exist in worldpath -fishing_setting.func.load() - -dofile(path .."worms.lua") -dofile(path .."crafting.lua") -dofile(path .."baits.lua") -dofile(path .."prizes.lua") -dofile(path .."baitball.lua") -dofile(path .."bobber.lua") -dofile(path .."bobber_shark.lua") -dofile(path .."fishes.lua") -dofile(path .."trophies.lua") -dofile(path .."poles.lua") - ---random hungry bait -fishing_setting.func.hungry_random() ---load table caught fish by players -fishing_setting.func.load_trophies() ---load table contest -fishing_setting.func.load_contest() - - -minetest.register_globalstep(function(dtime) - if fishing_setting.contest["contest"] ~= nil and fishing_setting.contest["contest"] == true then - fishing_setting.contest["duration"] = fishing_setting.contest["duration"] - dtime - - if fishing_setting.contest["duration"] < 30 and fishing_setting.contest["warning_said"] ~= true then - minetest.chat_send_all(fishing_setting.func.S("WARNING, Fishing contest will finish in 30 seconds.")) - fishing_setting.contest["warning_said"] = true - end - if fishing_setting.contest["duration"] < 0 then - fishing_setting.func.end_contest() - end - end -end) ------------------------------------------------------------------------------------------------ -minetest.log("action", "[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") ------------------------------------------------------------------------------------------------ diff --git a/mods/fishing/locale/de.txt b/mods/fishing/locale/de.txt deleted file mode 100755 index f6903681..00000000 --- a/mods/fishing/locale/de.txt +++ /dev/null @@ -1,87 +0,0 @@ -# Translation original by Xanthin -# adapted for new fishing version by crabman77 - -### bobber.lua ### -You didn't catch anything. = Du hast nichts gefangen. -The bait is still there. = -Your fish escaped. = Dein Fisch ist entkommen. -You caught a Fish. = Du hast einen Fisch gefangen. -You caught a Clownfish. = Du hast einen Clownfisch gefangen. -You caught a Bluewhite. = Du hast einen blau-weissen Fisch gefangen. -You caught a Twig. = Du hast einen Zweig gefangen. -You caught a Rat. = Du hast eine Ratte gefangen. -You caught some Seaweed. = Du hast etwas Seetang gefangen. -You caught a Green Kelp. = Du hast etwas gruenen Kelp gefangen. -You caught a String. = Du hast eine Schnur gefangen. - -### bobber_shark.lua ### -You caught a small Shark. = Du hast einen kleinen Hai gefangen. -You caught a Northern Pike. = Du hast einen Hecht gefangen. -You caught an old Fishing Pole. = Du hast eine alte Angelrute gefangen. -You caught some very old Boots. = Du hast ein Paar sehr alte Schuhe gefangen. -You caught a Gold Coin. = -You caught a very old Helmet. = -You caught a very old Shield. = -You caught a very old Sword. = -You caught a mese block. = -You caught a Nyan Cat. = -You caught a Diamond Block. = -Haha, Fishing is prohibited outside water! = - - - - -### crafting.lua ### -Bait Ball = -Shark Bait Ball = - - -### fishes.lua ### -Fish = Fisch -Roasted Fish = Gebratener Fisch -Sushi (Hoso Maki) = Sushi (Hoso Maki) -Clownfish = Clownfisch -Bluewhite = blau-weisse Fisch -Shark = Hai -Roasted Shark = Gebratener Hai -Northern Pike = Hecht -Roasted Northern Pike = Gebratener Hecht - - -### functions.lua ### -You don't have the server priviledge! = -You win a new trophy, you have caught %s fish. = -You win a new trophy, you have caught %s shark. = -You win a new trophy, you have caught %s pike. = -You win a new trophy, you have caught %s clownfish. = -You win a new trophy, you have caught %s bluewhite. = - - -### material.lua ### -Show information about hunger fish = - - -### poles.lua ### -Fishing Pole = Angelrute -Perfect Fishing Pole = - - -### trophies.lua ### -Fish Trophy = Fisch-Trophaee -Northern Pike Trophy = Hecht-Trophaee -Shark Trophy = Hai-Trophaee -Clownfish Trophy = Clownfisch-Trophaee -Bluewhite Trophy = Blau-weisser-Fisch-Trophaee -This Huge Fish was caught by the Famous Angler %s ! = Dieser riesige Fisch wurde vom beruehmten Angler %s gefangen! -This Huge Northern Pike was caught by the Famous Angler %s ! = Dieser riesige Hecht wurde vom beruehmten Angler %s gefangen! -This Huge Shark was caught by the Famous Angler %s ! = Dieser riesige Hai wurde vom beruehmten Angler %s gefangen! -This Huge Clownfish was caught by the Famous Angler %s ! = Dieser riesige Clownfisch wurde vom beruehmten Angler %s gefangen! -This Huge Bluewhite was caught by the Famous Angler %s ! = Dieser riesige blau-weisse Fisch wurde vom beruehmten Angler %s gefangen! - -### worms.lua ### -Worm = Wurm -Dirt = Erde -Wooden Hoe = Holzhacke -Stone Hoe = Steinhacke -Steel Hoe = Stahlhacke -Bronze Hoe = Bronzehacke diff --git a/mods/fishing/locale/fr.txt b/mods/fishing/locale/fr.txt deleted file mode 100755 index c42ff396..00000000 --- a/mods/fishing/locale/fr.txt +++ /dev/null @@ -1,101 +0,0 @@ - -# Template -Bait Corn = Appats au Mais -Bait Bread = Appats au Pain - -### bobber.lua ### -You didn't catch anything. = Vous n'avez rien attrape. -The bait is still there. = L'appat est toujours la. -Your fish escaped. = Le poisson s'est decroche. -You caught a Fish. = Vous avez attrape un poisson. -You caught a Clownfish. = Vous avez attrape un poisson clown. -You caught a Bluewhite. = Vous avez attrape un poisson bleu. -You caught a Twig. = Vous avez attrape une brindille . -You caught a Rat. = Vous avez attrape un rat. -You caught some Seaweed. = Vous avez attrape des algues. -You caught a Green Kelp. = Vous avez attrape une algue verte. -You caught a String. = Vous avez attrape une ficelle. - -### bobber_shark.lua ### -You caught a small Shark. = Vous avez attrape un requin -You caught a Northern Pike. = Vous avez attrape un brochet. -You caught an old Fishing Pole. = Vous avez attrape une vielle canne a peche. -You caught some very old Boots. = Vous avez attrape de tres vieilles bottes. -You caught a Gold Coin. = Vous avez attrape une pice en or. -You caught a very old Helmet. = Vous avez attrape un casque tres vieux. -You caught a very old Shield. = Vous avez attrape un bouclier tres vieux. -You caught a very old Sword. = Vous avez attrape une epee tres ancienne. -You caught a mese block. = Vous avez attrape un bloc de mese. -You caught a Nyan Cat. = Vous avez attrape un Nyan Cat. -You caught a Diamond Block. = Vous avez attrape block de diamant. -Haha, Fishing is prohibited outside water! = Haha, pecher est interdit en dehors de l'eau! - - - - -### crafting.lua ### -Bait Ball = Amorce -Shark Bait Ball = Amorce a carnassier - - -### fishes.lua ### -Fish = Poisson -Roasted Fish = Poisson grille -Sushi (Hoso Maki) = Sushi (Hoso Maki) -Clownfish = Poisson clown -Bluewhite = Poisson bleu -Shark = Requin -Roasted Shark = Requin grille -Northern Pike = Brochet -Roasted Northern Pike = Brochet grille - - -### functions.lua ### -You don't have the server priviledge! = Vous n'avez pas les privilèges serveur! -You win a new trophy, you have caught %s fish. = Vous gagnez un trophee, vous avez attrape %s poissons. -You win a new trophy, you have caught %s shark. = Vous gagnez un trophee, vous avez attrape %s requins. -You win a new trophy, you have caught %s pike. = Vous gagnez un trophee, vous avez attrape %s brochets. -You win a new trophy, you have caught %s clownfish. = Vous gagnez un trophee, vous avez attrape %s poissons clown. -You win a new trophy, you have caught %s bluewhite. = Vous gagnez un trophee, vous avez attrape %s poissons bleu. -Good luck to %s, He catch the treasure, %s! = %s a de la chance, Il attrappe le tresor, %s! -You catch the treasure, %s! = Vous attrappez le tresor, %s! -Yeah, %s caught a Fish. = Wouah, %s a attrappe un poisson -Yeah, %s caught a Clownfish. = Wouah, %s a attrappe un poisson clown. -Yeah, %s caught a Bluewhite. = Wouah, %s a attrappe un poisson bleu. -Yeah, %s caught a Northern Pike. = Wouah, %s a attrappe un brochet. -Yeah, %s caught a small Shark. = Wouah, %s a attrappe un requin. -A fishing contest is in progress. (remaining time %s) = Un concours de peche est en cours. (temps restant %s) -Attention, Fishing contest start(duration %s)!!! = Attention, un concours de peche viens de commence(duree %s)!!! -WARNING, Fishing contest will finish in 30 seconds. = Attention, le concours de peche se termine dans 30 secondes -End of fishing contest. = Le concours est fini - -### material.lua ### -View information about hunger fish = Afficher les informations sur la faim des poissons - - -### poles.lua ### -Fishing Pole = Canne a peche -Perfect Fishing Pole = Canne a peche parfaite -You don't fishing in a bottle! = Vous ne pouvez pas pecher dans une bouteille! -You don't have mores %s bobbers! = Vous ne pouvez pas avoir plus de %s flotteurs - -### trophies.lua ### -Fish Trophy = Trophee poisson -Northern Pike Trophy = Trophee brochet -Shark Trophy = Trophee requin -Clownfish Trophy = Trophee poisson clown -Bluewhite Trophy = Trophee poisson bleu -This Huge Fish was caught by the Famous Angler %s ! = -This Huge Northern Pike was caught by the Famous Angler %s ! = -This Huge Shark was caught by the Famous Angler %s ! = -This Huge Clownfish was caught by the Famous Angler %s ! = -This Huge Bluewhite was caught by the Famous Angler %s ! = - -### worms.lua ### -Worm = ver -Dirt = terre -Wooden Hoe = Hoe en bois -Stone Hoe = Hoe en pierre -Steel Hoe = Hoe en fer -Bronze Hoe = Hoe en bronze - diff --git a/mods/fishing/locale/template.txt b/mods/fishing/locale/template.txt deleted file mode 100755 index ce1a7935..00000000 --- a/mods/fishing/locale/template.txt +++ /dev/null @@ -1,127 +0,0 @@ -# Template -### baits.lua ### -Bait Corn = -Bait Bread = - - -### bobber.lua ### -You didn't catch anything. = -The bait is still there. = -Your fish escaped. = -You caught a Fish. = -You caught a Clownfish. = -You caught a Bluefish. = -You caught a Twig. = -You caught a Rat. = -You caught some Seaweed. = -You caught a Green Kelp. = -You caught a String. = - -### bobber_shark.lua ### -You caught a small Shark. = -You caught a Northern Pike. = -You caught an old Fishing Pole. = -You caught some very old Boots. = -You caught a Gold Coin. = -You caught a very old Helmet. = -You caught a very old Shield. = -You caught a very old Sword. = -You caught a mese block. = -You caught a Nyan Cat. = -You caught a Diamond Block. = -Haha, Fishing is prohibited outside water! = - - -### crafting.lua ### -Bait Ball = -Shark Bait Ball = - - -### fishes.lua ### -Fish = -Roasted Fish = -Sushi (Hoso Maki) = -Clownfish = -Bluefish = -Shark = -Roasted Shark = -Northern Pike = -Roasted Northern Pike = - - -### functions.lua ### -You don't have the server priviledge! = -You win a new trophy, you have caught %s fish. = -You win a new trophy, you have caught %s shark. = -You win a new trophy, you have caught %s pike. = -You win a new trophy, you have caught %s clownfish. = -You win a new trophy, you have caught %s bluewhite. = -Lucky %s, he caught the treasure, %s! = -You caught the treasure, %s!= -Yeah, %s caught a Fish. = -Yeah, %s caught a Clownfish. = -Yeah, %s caught a Bluefish. = -Yeah, %s caught a Northern Pike. = -Yeah, %s caught a small Shark. = -A fishing contest is in progress. (remaining time %s) = -Attention, Fishing contest start(duration %s)!!! = -WARNING, Fishing contest will finish in 30 seconds. = -End of fishing contest. = -Fishing configuration = -Fish chance = -Shark chance = -Treasure chance = -Worm chance = -Escape chance = -Bobber view range = -Display messages in chat = -Simple pole deco = -Poles wearout = -Enable treasure = -New worm source (reboot) = -Worm is a mob (reboot) = -Abort = -OK = -Fishing Menu = -Contest rankings = -Contests = -Configuration = -Close = - -Fishing contest = -Duration(in sec) = -Bobber number limit = -Enable contests = -Reset rankings (type 'yes') = -Fishing contest rankings = - -### material.lua ### -Show information about hunger fish = - - -### poles.lua ### -Fishing Pole = -Perfect Fishing Pole = -You don't fishing in a bottle! = -You don't have mores %s bobbers! = - -### trophies.lua ### -Fish Trophy = -Northern Pike Trophy = -Shark Trophy = -Clownfish Trophy = -Bluefish Trophy = -This Huge Fish was caught by the Famous Angler %s ! = -This Huge Northern Pike was caught by the Famous Angler %s ! = -This Huge Shark was caught by the Famous Angler %s ! = -This Huge Clownfish was caught by the Famous Angler %s ! = -This Huge Bluefish was caught by the Famous Angler %s ! = - -### worms.lua ### -Worm = -Dirt = -Wooden Hoe = -Stone Hoe = -Steel Hoe = -Bronze Hoe = - diff --git a/mods/fishing/material.lua b/mods/fishing/material.lua deleted file mode 100755 index 1d22aab7..00000000 --- a/mods/fishing/material.lua +++ /dev/null @@ -1,35 +0,0 @@ - - --- useless or useful ??? No activated -minetest.register_node("fishing:material_info", { - description = fishing_setting.func.S("Show information about hunger fish"), - name = "Fishing Info Center", - tiles = {"default_wood.png", "default_wood.png", "default_wood.png", - "default_wood.png", "default_wood.png", "default_wood.png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - paramtype2 = "facedir", - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_wood_defaults(), - - - on_rightclick = function(pos, _, clicker) - local formspec = "size[6,8]label[1.7,0;Fishing Info Center]" - local y = 1 - for i, a in pairs(fishing_setting.baits) do - formspec = formspec .."item_image_button[1,"..tostring(y)..";1,1;"..tostring(i)..";"..tostring(i)..";]".. - --formspec = formspec .."image[1,"..tostring(y)..";1,1;"..tostring(a["texture"]).."]".. - "label[2.2,"..tostring(y+0.2)..";Chance to fish :"..tostring(a["hungry"]).."%]" - y = y+1 - end - minetest.show_formspec(clicker:get_player_name(),"fishing:material_info", formspec) - end - -}) - - -minetest.register_craft({ - output = 'fishing:material_info', - type = 'shapeless', - recipe = { 'default:steel_ingot', 'default:steel_ingot' }, -}) diff --git a/mods/fishing/poles.lua b/mods/fishing/poles.lua deleted file mode 100755 index c5963e87..00000000 --- a/mods/fishing/poles.lua +++ /dev/null @@ -1,164 +0,0 @@ ------------------------------------------------------------------------------------------------ --- Fishing Pole ------------------------------------------------------------------------------------------------ - -local S = fishing_setting.func.S - -local function rod_wear(itemstack, user, pointed_thing, uses) - itemstack:add_wear(65535/(uses-1)) - return itemstack -end - -fishing_setting.poles = {} -fishing_setting.poles.wood = {["name"] = "wood", ["max_use"] = 30, ["desc"] = S("Fishing Pole"),["bobber_max"] = 2 } -fishing_setting.poles.perfect = {["name"] = "perfect", ["max_use"] = 1500, ["desc"] = S("Perfect Fishing Pole"),["bobber_max"] = 5} - - -for _,pole in pairs(fishing_setting.poles) do - local bobbermax = pole["bobber_max"] - minetest.register_tool("fishing:pole_".. pole.name, { - description = pole.desc, - groups = {}, - inventory_image = "fishing_pole_".. pole.name ..".png", - wield_image = "fishing_pole_".. pole.name ..".png", - stack_max = 1, - liquids_pointable = true, - - on_use = function (itemstack, user, pointed_thing) - if pointed_thing and pointed_thing.under then - local pt = pointed_thing - local node = minetest.get_node(pt.under) - if not node or string.find(node.name, "water_source") == nil then return nil end - local player_name = user:get_player_name() - local inv = user:get_inventory() - local bait = inv:get_stack("main", user:get_wield_index()+1 ):get_name() - if fishing_setting.baits[bait] == nil then return nil end - - local objs = minetest.get_objects_inside_radius(pt.under, 1) - for m, obj in pairs(objs) do - if obj:get_luaentity() ~= nil and string.find(obj:get_luaentity().name, "fishing:bobber") then - if fishing_setting.settings["message"] == true then minetest.chat_send_player(player_name, S("Sorry, there is another bobber!")) end - return nil - end - end - - --if contest then player must have only 2 boober - local bobber_nb = 0 - local bobber_max - if fishing_setting.contest["contest"] ~= nil and fishing_setting.contest["contest"] == true then - bobber_max = fishing_setting.contest["bobber_nb"] - else - bobber_max = bobbermax - end - --player has others bobbers? - for m, obj in pairs(minetest.get_objects_inside_radius(pt.under, 20)) do - if obj:get_luaentity() ~= nil and string.find(obj:get_luaentity().name, "fishing:bobber") ~= nil then - if obj:get_luaentity().owner == player_name then - bobber_nb = bobber_nb + 1 - end - end - end - if bobber_nb >= bobber_max then - if fishing_setting.settings["message"] == true then - minetest.chat_send_player(player_name, S("You don't have mores %s bobbers!"):format(bobber_max)) - end - return nil - end - - local nodes = 1 - for _,k in pairs({ {1, 0}, {-1,0}, {0,1}, {0,-1} }) do - local node_name = minetest.get_node({x=pt.under.x+k[1], y=pt.under.y, z=pt.under.z+k[2]}).name - if node_name and string.find(node_name, "water_source") ~= nil - and minetest.get_node({x=pt.under.x+k[1], y=pt.under.y+1, z=pt.under.z+k[2]}).name == "air" then - nodes = nodes + 1 - end - end - --if water == -3 nodes - if nodes < 2 then - if fishing_setting.settings["message"] == true then minetest.chat_send_player(player_name, S("You don't fishing in a bottle!")) end - return nil - end - local new_pos = {x=pt.under.x, y=pt.under.y+(45/64), z=pt.under.z} - local ent = minetest.add_entity({interval = 1,x=new_pos.x, y=new_pos.y, z=new_pos.z}, fishing_setting.baits[bait].bobber) - if not ent then return nil end - local luaentity = ent:get_luaentity() - luaentity.owner = player_name - luaentity.bait = bait - luaentity.old_pos = new_pos - luaentity.old_pos2 = true - if not fishing_setting.is_creative_mode then - inv:remove_item("main", bait) - end - minetest.sound_play("fishing_bobber2", {pos = new_pos, gain = 0.5}) - if fishing_setting.settings["wear_out"] == true and not fishing_setting.is_creative_mode then - return rod_wear(itemstack, user, pointed_thing, pole.max_use) - else - return {name="fishing:pole_".. pole.name, count=1, wear=0, metadata=""} - end - end - return nil - end, - - on_place = function(itemstack, placer, pointed_thing) - if fishing_setting.settings["simple_deco_fishing_pole"] == false then return end - local pt = pointed_thing - local pt_under_name = minetest.get_node(pt.under).name - if string.find(pt_under_name, "water_") == nil then - local wear = itemstack:get_wear() - local direction = minetest.dir_to_facedir(placer:get_look_dir()) - local dir = minetest.facedir_to_dir(direction) - local p = vector.add(pt.above, dir) - local n2 = minetest.get_node_or_nil(p) - local def = n2 and minetest.registered_items[n2.name] - if not def or not def.buildable_to then - return nil - end - minetest.set_node(pt.above, {name="fishing:pole_".. pole.name .."_deco", param2=direction}) - local meta = minetest.get_meta(pt.above) - meta:set_int("wear", wear) - if not fishing_setting.is_creative_mode then - itemstack:take_item() - end - end - return itemstack - end, - }) - - minetest.register_node("fishing:pole_".. pole.name .."_deco", { - description = pole.desc, - inventory_image = "fishing_pole_".. pole.name ..".png", - wield_image = "fishing_pole.png^[transformFXR270", - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - tiles = { - "fishing_pole_".. pole.name .."_simple.png", - "fishing_pole_".. pole.name .."_simple.png", - "fishing_pole_".. pole.name .."_simple.png", - "fishing_pole_".. pole.name .."_simple.png^[transformFX", - }, - groups = { snappy=3, flammable=2, not_in_creative_inventory=1 }, - node_box = { - type = "fixed", - fixed = { - { 0 , -1/2 , 0 , 0 , 1/2 , 1 }, - } - }, - selection_box = { - type = "fixed", - fixed = { - {-1/16 , -1/2 , 0 , 1/16 , 1/2 , 1 }, - } - }, - sounds = default.node_sound_wood_defaults(), - on_dig = function(pos, node, digger) - if digger:is_player() and digger:get_inventory() then - local meta = minetest.get_meta(pos) - local wear_out = meta:get_int("wear") - digger:get_inventory():add_item("main", {name="fishing:pole_".. pole.name, count=1, wear=wear_out, metadata=""}) - end - minetest.remove_node(pos) - end, - }) - -end diff --git a/mods/fishing/prizes.lua b/mods/fishing/prizes.lua deleted file mode 100755 index c0452710..00000000 --- a/mods/fishing/prizes.lua +++ /dev/null @@ -1,46 +0,0 @@ - - -fishing_setting.prizes["fish"] = { - {"fishing", "fish_raw", 0, "a Fish."}, - {"fishing", "clownfish_raw", 0, "a Clownfish."}, - {"fishing", "bluewhite_raw", 0, "a Bluewhite."} -} - -fishing_setting.prizes["shark"] = { - {"fishing", "shark_raw", 0, "a small Shark."}, - {"fishing", "pike_raw", 0, "a Northern Pike."} -} - - -local stuff = { --- mod item wear message ("You caught "..) nrmin chance (1/67) - {"flowers", "seaweed", 0, "some Seaweed.", 1, 5}, - {"farming", "string", 0, "a String.", 6, 5}, - {"trunks", "twig_1", 0, "a Twig.", 11, 5}, - {"mobs", "rat", 0, "a Rat.", 16, 5}, - {"default", "stick", 0, "a Twig.", 21, 5}, - {"seaplants", "kelpgreen", 0, "a Green Kelp.", 26, 5}, - {"3d_armor", "boots_steel", "random", "some very old Boots.", 31, 2}, - {"3d_armor", "leggings_gold", "random", "some very old Leggings.", 33, 5}, - {"3d_armor", "chestplate_bronze", "random", "a very old ChestPlate.", 38, 5}, - {"fishing", "pole_wood", "randomtools", "an old Fishing Pole.", 43, 10}, - {"3d_armor", "boots_wood", "random", "some very old Boots.", 53, 5}, - {"maptools", "gold_coin", 0, "a Gold Coin.", 58, 1}, - {"3d_armor", "helmet_diamond", "random", "a very old Helmet.", 59, 1}, - {"shields", "shield_enhanced_cactus", "random", "a very old Shield.", 60, 2}, - {"default", "sword_bronze", "random", "a very old Sword.", 62, 2}, - {"default", "sword_mese", "random", "a very old Sword.", 64, 2}, - {"default", "sword_nyan", "random", "a very old Sword.", 66, 2}, --- nom mod nom item durabilité message dans le chat -- fin 67 --- de l'objet -} -fishing_setting.prizes["stuff"] = fishing_setting.func.ignore_mod(stuff) - - -local treasure = { - {"default", "mese", 0, "a mese block."}, - {"default", "nyancat", 0, "a Nyan Cat."}, - {"default", "diamondblock", 0, "a Diamond Block."}, -} -fishing_setting.prizes["treasure"] = fishing_setting.func.ignore_mod(treasure) - diff --git a/mods/fishing/settings.txt b/mods/fishing/settings.txt deleted file mode 100755 index 4732bc33..00000000 --- a/mods/fishing/settings.txt +++ /dev/null @@ -1,12 +0,0 @@ -MESSAGES = true -SIMPLE_DECO_FISHING_POLE = true -WEAR_OUT = true -BOBBER_VIEW_RANGE = 7 -NEW_WORM_SOURCE = true -WORM_IS_MOB = true -WORM_CHANCE = 66 -FISH_CHANCE = 60 -SHARK_CHANCE = 50 -TREASURE_CHANCE = 5 -TREASURE_RANDOM_ENABLE = true -ESCAPE_CHANCE = 5 diff --git a/mods/fishing/sounds/SoundLicense.txt b/mods/fishing/sounds/SoundLicense.txt deleted file mode 100755 index 02bb9a36..00000000 --- a/mods/fishing/sounds/SoundLicense.txt +++ /dev/null @@ -1,11 +0,0 @@ -These sounds are used for the Mod for Minetest; Fishing - Mossmanikin's version. -The included sounds are http://creativecommons.org/licenses/by-nc-sa/3.0/ - ---"fishing_bobber1" & "fishing_bobber2" sampled from "01260 water swimming splashing 1.wav", Attribution Noncommercial License, Robinhood76, http://www.freesound.org/people/Robinhood76/sounds/79657/ - - -"fishing_contest_start" resampled from "cor 9.mp3", Pierre Grandjean, https://www.freesound.org/people/Pierre%20Grandjean/sounds/125973/ - -"fishing_contest_end" resampled from "Trompette 8", jebb, https://www.freesound.org/people/jebb/sounds/205848/ - -"fishing_baitball" resampled from "dog steps around in water" , noctaro, https://www.freesound.org/people/noctaro/sounds/243574/ diff --git a/mods/fishing/sounds/fishing_baitball.ogg b/mods/fishing/sounds/fishing_baitball.ogg deleted file mode 100755 index 154b60cf68f0ee342b510ffd77c667337ed27b62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18303 zcmeIZWprFSuqN7Oh$)VlnVFdxV`e*MW@aa5W@ux~%*=7j%p6lpF~`jA*FNXox%2+a zU2o02f1{<|TTr`7`lKqA_EsxfTB-pc0sj#qb7arolg}`}Wg&gGH4Zn$J7se}z7%e;FZz>lKVWEI7HC*f^P3Sy-XL z1t{R3sH(cGn!2Epqp6#*iz5QKL_$>l>-}`QI}O$kQCH%bTnfik#MwhWgyWq zb~AS&23MIom^zx7y9k2Wn!dB;0<&cyv9mV$S0V(=zjsnGaZPaRAOJX~>a!`EPquFAVoDw3?5f4hITMTRZa|!(hY_0fIuxyjz+XC+qJSe zEzLB#+$~A&kitwsOolczNe-@9O-W3KGi^zgme5sI)kgFWSfp4BNeJ?{nFNjZcK#4S z!)rhUd%ag=zz9mw{6vHLPj~<( zG`ta1O$UCialsb6R&;|0Zcb#22eJ-y2M5`%Q@qq!u0uSB*{)G87OYlax@=eUU<=xR zQ@H~NqP7+9WkbBB!Ol`RV7knv15q2UC2$#5QwgsP(;zrSwtpaN&$I|mP4R+B{<&0O zm%2JBy>l+OJJ59y!v?2>a7%q%#oo*Qi|$`|!2K1);Ryn5cS8lA=B&OPlj=&*1?8(hv+)8Pd@IxI~bK;h2ojmS%rLq$@8fh+-RK zXq;dhf4`j6HBRxJvJ9Y!BULw{%PTf7YMWNKA7VANGY+U>vMu&aP{ii9jUHYtoRC@5oUET$Uh zEtzlJ*&AbfY}~tV-MjBDhZ^gong74yzg-9SBnV9m{@;!iBmoQj zp+Yd|Od;(;F`C36o6I5KC@?uMpm-ypf}uFCE~(`vxzQxKnxeSurnu^+q0?-j(_+86 zWN(yazjg2bKSg)Kf4V3G0Q`}OE0T#Sl8M{pNuq$rC#?hkaNlPWO;jOI+^$R#g=|`p zZ0^2JfrU+prB6i}hjI%ip}csm>S9&|6Slzoaayk14{`&g8=~ejilDO0|6mH1LQ+9Sl1cZ!CFDOI z2Fn5q%Ke{Zm1PFeRQwNFRA50Q6;%HxWc^M3q=q&~Z#&|6}YqG%zy{yx$AUD=H8buLV>v-YGRg z-zhV}locmG|C4gjoiwVzD)XK4q(cO}QgDFHqX9Npc4kRMM-2m%3I}-g&{$42|B_h& z4ksNANS_tKG~kk;iVkodOrx#=b~aMYaks&yeXPN59iYGLZob+Aww?q$VAlmllp0q9 z%eW8$o9Mj{&;S+ikg+PzmZTUfh|!R8M9IR_hA7C%m8YtU%1{=o(!rM(smnmUG%AOSc8!wp~n1e7s2W#>4i!BBE2DmH+D2A3!%AA0A~L=}LMf3Nrl;~IMK zNW24Orh_3l3&zsj_#bSKJ6IG|)HN2}4MrN?@gHNeTjv00&2h^rD#pMNF8_ll1YjEh z1t0>$RTbx?%7LZ*&zyk*1d%|K7GsFX(T1d`!qXO`p@WyUZLkaSMGTjQ!%Px@25vnG zMe#Q!Im-NZALSoM<$vpv{Qrqd(tkrO`+uNC|7ZI3|2G#zz)Y+YV8)*%9|;4m0UaO% z)`1w6C|3CLK~2(u3|Dkr+iI~0)6qD%;S2Q_m#+F>xVUm<2-RSO=DOuU-W*lES z!onm~dDgp4d0NWi6_eBM(gd+M#-SD8Y1U#ay~_G~LsPl>MI6(M?t2{5%KD{E-wW0j zP1`saz!xqafC$A(9p6vcS?w=iKLjEO>_z>=d3PA!6+lUD6vuT+6rMB$O^y~9T=t$4 zqooAv4IF96XEB;$vk6}Cp5#3R))6>Da4kY{N)qeg`#uGnQsw(6MN@QN*aDp zg3E$#I6(-8-iJhSB;A-Cml#nwTC)V!p`z3zv0i0?j;C)~H zUd!cTtENOx)l*sdlbn)*f}Wm*ikgy&ijszrZkC#!X12bxt)`;6prWR}ys5RNr?G>E zl8lCduBU^Tl9q;!l!op{b<R65y(QkjzZon+cr z6QK-SDKzD=*WDVYs{MN=MNchTf@^M0`Pc4}hOka98O-Ta!v#zGfU(j`<6E%mAlM(? z{wclT_`M-n;~id@a_11L>+0M!z)80x--%`xU(XbfV#V*ICFN*gFHaBXDR&oQ(mVen z+fCLGG+BjVF5@Y#tViUH#dDL`!Ym+4@`E`p|ZmTOM2lEmu4o z7R#K5YKXe7gFZQxPw+iWvMbDYL&+!K{oC11*1?W+=W=7I*(X2=nFQW8>wRRh<$Rxa zdn{IOTh?&$q2?2j`E&fm*cMyQ2R%ZyuoH`yW?tO(HaC^S7-yvsbT?s18_OkRX!HTb zzrYBt@;~rIKp3Ie`Uwmq9bN087vNyC`w8MujSRcy1#ggI>Jw-;^7@FMREGtzxvg#E z1j_H`^ziXHJ!1SIJ-knHwtO0!89NS%tA)C!j)E!qV=|6sDVq-YAFCKQsJvu@WhlwM zR0!uA6s7oYD?3fw?)yU}=Y8GS-FyUWU3C^uDqgYXdQ}Qd^tER$Kjc|&w3 zi<^=2#d7BqqQ21lcyy2z9$nrg&$ul>bK4Fhj1Edg+OvZ1e;}!P&bOGm zrnmaqyePvdJ7$*`qmr7RK!^7|o25ceX&1?xF9yW++Rp@hsO`klIxBBvm1~S|A zjG9MIIF32W@)8u7>B&yc&mGf5Mg^ci=H5jl<|HyzVltT^L<*9)WDaWgG#|_SdHBFM zl_dwgBxJ+5&yH403y3|~CBBjk4kOi1YiagVpo@Tb5r;*1&nBZS`3;nHlK}yI8q7Gz zxX|cmIDJDJ48@FrFOlV4A5h=;ZoYh(L0o4-N>KeR;;!9WpLG63K{yotMWJ~+u$aBF zQzUp>oXTsWk=eFM8D!^VdA-QVawY<3kRsuq-n%dJk{W`sxVfuGBCiz`*6UX?00I@7 zy?C=kS$z?dfCgBnoITLfrS4TC0X?uZrNJ%(C1B}(H}lEA-@XQtU>XAFn|b7p6F>om z7*adH-0dYhm*LUZO7Ga`F80aXjMX7#(o%Rbr5@ttGu$pifi>XRXiK0|I|vE_lID-0 zXXozUw+6a+^OnuZ8?T6r!|z7}G3$l0Z@&OYiV7sXs*89;C|}=PV4rgKTvV;y6{3%? zTk?;exoV8y?SOZj5Cm!@l||*n!QrGNGe&p_<0na6>swwdW3qVde6w8Bh&}AxIriO9 z6pD#}K~;2EY$88TNSHN2v=6e&WjT|HP}U*Zc$vRn`HBKIAYbG#*}{v(a)^HR(RV_` z>*ZFjookfS@W|@XpWIAU9b`o|HE^RsD}GMxM<<2GMnhxq0{98!8ZK;Qr0)4~R>_oQ-*+a_2xub*aEUe`msQ}13U|0^+f@%%xE1z%n`Q_E&gG z0p3o7pMk#ZV}LbH`8G~~amWy~Y})m|IWkoP?!V(UdOo%8=K>Q2EYj&Z={ZI?+7{b;xr(`lvq5j#2<k{oH)rF#JI6(D9fN z{;Sux>9L5mRPt7WQLz9acZ>Ai>48-$dCd+^KXL_y3XjLsJ%DIzKQZ5aU)l%WgrtB0 z#4c|mZBT?=>Cqvwz_4ju%d`6ex~$aVCk_lC>^Arq>AhKyeQPVvyvZ4`?Us?z!_i{K zlfl|-FHa#mL!vHUy!l9hq%M_BDgeqgoCOTrVn-jURR-zl*lyqSEFpUFau*GwEiH?^(oCi;hwKCSpzuT`nx z0QDX*x^gtYXW6zTi@>tE!oH|H>GSE|Kaq8Eey3b-haLK;wC=x&FQV0`nkreTSCs`o z!_+H}(vqTx{ZN%8Ux55-6k)hJNz34ZfMw=xc9WxnGQI&l5XwYTSa?fF{IzivHq5)E zttQ`h}25UHp70V_h&U*Gm+SJv4#UVOU#$<6nF>!LB4o=#FO3 zG}9%af^xp#mFp&ViCZJM6RoCjjDv35SlUEW)(9A&u95mtyjfsK<=v;<30mmhFt>f3 zzxPj$x#aZCHLUt$V2m_tib$c#6dQ&SY}|&JEd4pD^QRX@if6w{)I^~3B!tkD#+NS3 zz6ESHv!*Eq|-5YULAH!2AYZ8=Lw=eb#-l-BhOr}U;n?bI@6zkRmEIWPgLBG6navqS;^I(dBY%V&{p4)z_FysDgf1ol z1W)=aAmS+j*`fs4dVOH$+r8TK%W|;?bxdcn=Y>^wAqV&9s(p;|@Ig*$Mlo`^!~>i} zaza@YN!1Yw`IK0~>NS5U#_vqa-t0AvU4Ts)gb;uw{M46c>cG=s+sV?-KmcS6M1-T=d49Mhy_zV7Rqkzhqk{nq22_ z>BuVj#2j5ZMdfBJ!O7_Ji`u%;jyk9{*yfkW zXRX#MmF1Ho*P1rTM%;GVh?la*j-3ld_7`@Lvaiy(ZC{&`dIqO>PcO?sE42`eH7uWGcfk9_mW zk-1;a7cW&DG-Sy!x@E5mGFkq!RnE2;V{G(vf&O5kF8=6}{ygc>PyAahF;h52(X|A1 zSy~6LCKty>2MI)O^V4edDEw9sW|J4imEm{-si}$x*Wa8QNk^TOKch2QKEsB_@h6J3 zaRuANn`w5XX)u)SL4ayDX3t$IF@IrW%)#{XEQ2H89;4xOQeT9Xx@qA!WP!!)EJ}NC zW1S`frCC_8HVmw4r*B;NQYY;2*L1@+Le=`w<1p&Qh2e>xK0UsS0e-4u2* z7lJvhjCMADbs% z(^b}m&_{vrY5siX{*x^u5MMt(zgDVI4|wr6BG=dO5wv=bKV+n(oX@W$#(H9YC3ZYrXKrOI}gcMX$&#b zJp3*0pAAd+KP9~`WbCro_Q~pErcybQC;shysgt9;mI13y(c)cv^bGhkV% z!B)TYaxeEar%7wlNE;jB@Tr><74a<+86pqbj7*)}W>kT}k_YE({11F(|7Ci=cPG>l zT4jS0NaEodIEnUAbrmKW(p+06y%yH*M)!g#zH~Epa<41BotMvFkc&foBmUWc*rB7; zEJ%i387&r4Q|at)c-Jud;%VvSR`S)!FXr1pJ>Xmn;JX~%V~BS4dEsR`YT;BrXAkj& zJNKZ5-)7)uv8B&_0kByqJ3HAjsCQ$&^wY_Jy$;-Fci>NW5og+i;*}wd7-sxV@B}IN z(fDMSUI0syxF2ZIo_H54u4dUH1g+EM3Ap3cQs{Y^_UKDO)}R{9sS$cOU1gpQbZ;q) zT~)3W=fRb&XRt^o8>%vFM8l&i zOBycn<4F+Y4gY8)&1de|&_1C=DCFaO$2DM1^tiAqLy$WS3fMql_c_}X_MS7MHrkV` z$)4Y>*=*dXPTonJknB-~^76gui=wf%pCD4}L@)&I(+4oY80Rx2?Au$2F7M8b4mpXY zxjtTJ)u4w@O}_;ul4<$d$i8e4vEl1jHoZ0vY&dZo`!)Ogz2`?AF5wd7@M+2B3frmY zZ=>WVl~4$!5L1Ng<;`$xvvs4{2Z}`k5-qNmG@c*(W3qZqdtO2WZk^Hc4T~#NTAhU` z8$kyXHxBB=wvA1Bq?~cny8WvH<+2xcsrd4^_1cLEbKf0azvW`Ef1&*j(Kl}-u(s3nO-ku(i%*+!R#nWKKdU96|8fJPxGWzuQqBj8F<7c)wD|xB{u)z$zinTJ zT)H`^cbgomamFIm^qH8rbcj(a$ga#s)XX9$iV9*+u8x5&ijoS48cFnTUXbMCaBW=k zauweCno6hlt3qk&hK2#wD-8s+yj>h(rZxhP8u)Dh^7eHev7JVWl3j!8??fqis(p6K zM?E|MhN8kDfpUub)8B1j%P+fm%Ch@_k*lK$=Dk3?Ef#Ya6=(|iP*)21?tyH;Pl&D+ zcpbwd*V$&{uLQ@q3zjOyxFz@qfI*+y_dJJ(-`zqEI_NS#R2OcJ|ldW@_O?r={R--Zb2OC7h9MtMaLm;>!?ZDH=v zU7p+|+GYZ2!PTYJ{3+Ix7lc)lg;qJv7*_>@>38Z609e4<&lvY)J}85I8L8DPEJz|_qh5t z#a@^1kwOjw$%s@~o3&+*=D@igH=BO7-=tI_5-BKDq*~>iM*(U&m!K zJnf;^`WTLiELylcszhUgPVQJ!q(Mnag4&Qw&KvQ-WsPf;;%%9qr`KTMo(VTA!iDrf z*)AQlv#Mi+;#+W&Z|XnWefy{EiZr3|5>|_ zr=VvtK{+O1&Quo+fK9HWnM0n{6Kz^mRBdDE;R~k_QY{R-1SqJ*FX(0ZPKfAOCJ@*m z^2d5bXk>;vcR3=J&_x^0!#;c59Sr4_Hhz>)hV!A2mmVsu@LdU>Mon|8#E@+%p2blI z&dtBx{384{?>{L3I)ZRJB&UFxD)VW#q2i>aUPat%GD{+7kC{OJuUQZHti@P>#(^QMM6lzT@2E(lK68Io z{)TtpEdH)QI)CD!H4H_oEr9w6#e?XU5{-Bo0QKCZQB6O z6^bUa(;P=rjzMbeLpN$~N4(?V^r!F>VV`}EDIq#GX~*OKadO8s4&^{kpl%0p;uCG7 z20orx!gwUDwsFbZW!vP;tG|W|?S5w=*XvJPE8mRn3U25)dZSCVtyrd#Ps>)!M|8Ic zM8M_@B_cEq+=ho~2AP_XZ%7!637PwTfd~{hQYwQFp!mjeozI~*7;e+|bcs5%0=6+f zvEY1km6=Wiu%(34IgBAm5Ezy(ihLs>v{?OKbC%aVY%@PJ-MNpwy&}hKgaKVg9q$zb z6&69G@Jq|*X6AT95wkwfXIx{2!75w_Cchrc?~}&_4|I1+POH_X;XYO3a>q|M-9fFB zRdGaE%~}}K=tVCbCAcpAYn!~dA&^hrufKPTiuVBawT*zA5>4f=dU460VL%!;;jlwxjS=hE$XZWB6jQ_yAe^AseYGTDs5GvZfgTR&QQ&Q5f9ngxTr%$(Osz0i$clzwB9Z7ADe zuBzavW-BhbEL)|HS-o8T%=POq{-v8-^Vh;}vLDUpOA`wb!f&z5=l~DieR9!G^l?~L z46lcQ-zqH9X;9UcZ2gaXR^Lq@Zq8O2_(JG&uH%s-nI7scef1EZT$sbgDPxw8zuir` zb`Qy6#yv%+MKR}jc#(k`(&dc&X(T>}?I+Pj4$QdY1rK(>%jsAp#d@D+PxK{*>3`ZD zZElM5cXc${MAFci_%Um%^AYkd+u`5QMd9qlv%d&Jvd4Z8MamDl!uchp)2#FXm7au+ z1P8K^O?csl>}=$5D6OP?WU8$CMJ6(Iy`K1t5J-w*VSK~&D>%o2=i}khl&ISQj<`C* zg6z3oCJFNS%YuPtOITpds)A43WJN|r&4op~8xC&KYgL`3k*POaIWkzMk4@Fw!yp*d zv3N)=o*0DE#SuV8-?TibL{h~z=BBYC_+z!nztHVC)N&^9cIMx|qzXWibr)ijUQ%Lg z8s0T%XBLG=e%qn#MkKr|l9EZ`J5*b173GUjd%T+i=mL?mzVyy4|46AGy`pZEn?1!B zL66r;{@b5~^AB{mjG+RT%JoW>c37&PT3<4j2>2Zu`iw_l;_3PF(7cAHeWsIh0YM z=|wrXH`g9P!z~x(djDnNNOAXjMM~);@5^4oAaOa5Fl&| zE0PK&m5XLZ$RLtTx!)L?8SBKIWO_kTUTG&>-a{_|Ip+TwV2KtH`!xGyQmm^ zUm5A39C>Z|jHT_c?JUn66f1>O2=>L0dHEsZ> z1g<6zmHy1P2xP8LiLVh@OR{G)oNw>HahpzW zbv;+DE@@rEftYxS?(xbUJ|Z|nh+(F9d1|r7&(7i>wz`(AFFCf@Ze0I%It;8{%GC@E z80yi>`|a$jt$oy)mK8fzHmRzh6|5}Xf06c5+#;PyKacBt3U(a1OWz?BiwP#GH5CS+}?3aar_sUNyHp2H2{ji;S-2Z8igYyBC%Fptla%X~UjE)ivK&r@ZgaZx?*@)zC^eabaJK5qkdEDVZat-))~ z7rT-8yX?U zoK3BXwLYO$tv`5^^+y}^uVfjNPY{A$Eru342kJfczXvgf=vJK}6^Td>T3gQK+0cg@ z*=~>74_H&ZKP!*soodW>-6?=H373lZUoVMVtc# zrqWW&hdm06ZJx1xDy25@ZHO{7E5=2T?fV<`B^a;64JsE%*_>}QIBcC{l^^B-l;oRZ zdhxsnL*gu&H$JGCu{_HAc};HW|NL|p%8`3))o)%HQ@FdCfHbr34^%SBR`mEobJS7h z%~o23U?qyLFjn|*yu2czxV%S}5VnhlhAuNKdY#{cO{%!wF#zS34Je8d@J z`NkbfYI*~HQ*|A-mG#nwTCFGF&DJ<9o$6H}PBv8AiJhk}%xf|816fP#XCak#Lxwx^-G zp}MEJrlGLDs<^bGs60EDEEhN!DR!P``MQ8$Q=V^Nk?#usa(@~?T3HfybN6E8~hHittYs^V^4hySw!!NrWzku=L+`HMc3U^ZiHx$hl z@zbs7+If9j!G^}=zXYyJ&$8A6Oj0vI3@o1KFI7nzb@=vG2Ui17LO{xb)nPPz^^t;P z9jg}^(zd+?^6bzY4;^O}@JGjio6$-hLS`mB-rTS@-ltKx`;$oC=;hAzi|j4erP5L+ zq-2T`RD9NGkrM503bQ*w4_~&mSl!TrI(o<-*h54xK@{rLqMY)NE%B8SE@cX;Z)Pzp zk`HH%(XXkB#FF(fiq5|jLXNJid73=C@K2y851qTKR)5*r!8fn|^`*;e376=wFnBb3 z`(D)-@sU#I@7m>}jW&W1P$MZ{byETL{A(%RFRsQJ-(Q*Q^WrNAAHKt$c0*`O7hfF< z&&dvFYjn;kY1bL_wk`GsxZWKh@OK$M)N$vvbftNZEuSUd+K^gD7*MKoP<3ijZ1{ci zyN2Whg&G3B$9NY$-Y?Y~yZ*I(U0?GHprz>#S-#h;a!`e&dOo@19FoxROuJ3$y*4xmudu`lK;lz~nL7uge5=VA|Ivrns_Pp>E0ygIq z+8>Ks%IKo;23TOVbGT5>NPOU(cxHk)kvsltNo+)vea`zy!TS0Ob9Y9aYwOm_?1f=f zr#Dvg^;yj3b45mn>#@U(%z3lP;-|XPJ9Y*`_x;pfNT^5E@Dp~JpDfA){b`mRz9p6B zzTXn4dZr!UxCV``53x0>a!RREQw;^%9XsS}!UZK;&t zjxZ=$}^{Nfy^ z`)07x4txc<-KV(pWOGmQ)f9Y9JJGs$d^>M)-4*WWBo4Gbtk(;_-Q8)tA8r}jlgofK zLMiRQdQ9gF;LDQ(HTu_&PF6pR${vJEJH*0n3{;4)+2obTn9ZYcR8d^M@p(NE`%Jic zoSg|`>_4B-l*<$@eSx9JbL8l7&uG^~H%soEtz!6_~pNBXAn$<63PCGsg0hI|#Y z4+U2WK@b4t3*>g#ec>wm>yX!0UY%{p1jRseY9=cHL*DL7AO)A1fma=#$k)+u`FgvU z61LH`jl$fFENEv;bZEt@0bk1IF)+arpnUy)c9MMccUkbCY!^xLVyggQD_R6-MVm<@ zj&7RcuSeS-zb9C1{34wvD?fq!#-=3ZkrKAlt5J>)Ew4a~oB3y`?FXtRMCJ8iWRuo> zmOXB&OGM>Hc9M0r-XZ4zB=|T(8lkf98X@5H3;(vx%9PCKkE`o}BX&lMf#bc*MD(Zp z7Gl^pV{$fFvpNz!2_bzRKM2wlQe9ZhRCY4RD5X=ysZ06O=Zy%G{b;bSfRtK+2RXkq z#gSofx6ISzt=TDad8$7U;4XUtt@DoN=dYNGlK3I4h7jkk0*hb*OD)gFUv7Qp=5NNa zL;Gh5PG0E(scZa>rlT+B%~KOJVd62$7V?ijnyYnWs-byOGN)+IV1(AyngrcbBG-ASV~e;IxvWKir+{#4-fU zFo|ZXjQeES>@kr+eI6YRl3Xmc&OpZpkfJ0siqc25X1tz zJ^@W_9+=%dtgbn)F@Wik_SCw6oet z1SzCI%-`QGaD8&Uqb;f>LY!6u6xeZpd-dgu{o~$BUc1nGT~q3ODe&PC`|_JDbs%AO zwObnV1nA21p0j+9FK5}Q8!wC0CWkGhKo>FTz#BwJDswdGP&<$m@i}pnM__D~^)CK{ z>OPJ1BNGow`mJRD?0yf!SgG^&Ag^}L__E{b?v6AQp%89XSgU357s+A`xl;?X);i=} zy>+k2lp4D)vHa*U75#tRMcfU1waQyR^Z<(+rMR8>eJINMyn%y;KTBRcpk^K&ARrpd z3|>LIsH1i$gYXDa9Ar6eeMc;8m#4-7nl`%At;Yhtm8#6}!@N zacKRx@EXJdm?5JWu?#0fZ z;Yy{p`_)ITwb$R}vNs0|VPrtbF5NYa_&Zt=Mp2Inz)vs1oFm3ehoL1p3GQk(F@Nv- zn9l_P_B!N9TdpoqLYQ^6c zD#~T3HoTXhP`dlk@GEk~O;G)1WDEi5<#OfU5i_@pTn+)0 z-cy}3%ifG1GjI~R4q$;4Y!$F%e(oz);p4r)r* zB60gXWyxi8iK}8g9`ADOZGs7lgsnv#0r8YZIw5)wa8SNae_}e8Dzp4+zK-r#8dZm= z!qDNf8-xhVT@(m(;d{VR9gBNA_t2z(W1|%xm`OyP#U%LL`TQfRu+aB{myS*9+O3ehEIy} z8!mHz4_KtsNuOqw2@CsM8Ngs(R-BOBu?*nvZ#|gs|?GW)sVi4RF?31+NMC zP06aoYN&Wy2GP@#q`Z?pOoHDCnR8a>uRvfnSXrgDEHpZBfxjha)*=?=3mlFIc39iz zBC-_SyjGuq_NN1*HcsKB@BMZyT<`n3*1s6DPM(pjUeI!vw=$8-rF4#FIsdWtc_pB; z9m69G+?sw|n&Iw26D^|JecPf6&w!oihi4wPLBcJRVyhUR;ZH+x= zuWf#Tq2g*p(1>z*o^z0SdB+zuQ^+YkJY9ed@gS07kX2mhvBB7oiNIiuMbG)dCGSHbn5>5!hP=5 z+N!m8jLlSivDeca#m_qu;p3M}ICD>-YB+vY+C)V|s```)Wmp>$V~6-%GqvNuT%+bI z8zfD}*HP9x9m59^Ag28G(E=kymh(p zHr%EtjN_EDgJSaGGbp_0N5#sns(^u@Do#K1}_P1=k8GM_!@nI;1 zjl~Iyrj)XsP{eMoGBf4Zk7>*Iz>SHzB z0(?37IoX-e*l*Bc`8d`+IhA0xEBopvK%j7tWc(|2sgX4ElQ!b<>qdIj><`H;^D0bp z!H8t^;KIIB7U;F&N{bb2^j!Nl?wBHP?$>qs=Q&ZK-odBg%MvZm<(@lE3c&Z1M^;hXbaH7ODd zb#uw;iZilpessgkSb6+HSR6hQw@TY;@lF@2j+#^(ea?cNV(AQ; zEmQgj@4hF?1566O>4Gep-sBQEP{=}9i81t2?Ha2#R>ClkqqVv`?HL{=v?_zM()qC-5 zemaZs;*AyVFWI#YcfU`H$<6yQ*u${2qB2KjN%>#1Wy)N{qT9m zGk)i&0)T<+uHQ9p+dpww~7MT(sVnV`5?KxvS93m#4{~)go?RAvWT<$~@%l zi$d;tE_|(&Ue(Q6gHfT6@o+Ze(I)A}0!h@K>aUMY^xfp^jGd0&7Cf8|u@!8oLH#}` z9`w?Ky1C)yO&{WYD&XdPeKui`+llYFoK+iBY~u91n9q%c**9m#RJlDy_DEe@YWq}k zP>WT{vmo;9?A#XC6!tS=ebYX;E%uwTClo5a(X#YqqI@l7LiH*NQ?u2})9bB9vNwO+ zll=M8u{+OHCQ2xl8glyS$#N*=vrqC|qhbKPnENB1pf>57O!jS5>_u#|DwzhLFV8PnqTWP&`5+)@v z^8?2HBcNy6()_Afuh^LQK5L}p%Cbi0+9^fAQ0dtBxDDX_qQz`@jO3>ywUv!gb1 zk?@;$@PK;bTWp;2Qcb(T*%8r3-NAVD+ym+)l-unVA@Ob3y1U;jP3~W5OJzJc#!0U_ z7JJ3g3|DCq$juQ>>#mqudTMYdp3}Zou zjFPl&Ww?2>7JJiYGly0V!Xbe&u}f0-L~Ygc1QcJ#)=CS}&Wj@Xu& zPuINo@dZXzLXEXXs}9n!eP>U5(aFK#bI9SL&_8!(iCl zxAzHIws7g}84^WFw=9j)nGxVAzC(#3U2oq=`aq?eKjhH#8#CS^KJI&t`-Z;u^`g@T zMOuf=+a9BJicVKfftvF*ZL4tA7(d@1$~Hayr!~OaNKWZxQ@z6gNfl7a0l$>Hnsb26 z3tB1s_1wud}zH z!JShPv0GMj^*gSq8l}rM8!ktV8;C@?qO@6)MMq;1q!M=)>CrxK+UlIh|C_x!9wMuO zpjm4v>MXY2e}%Di=b??%M4u3PFeg9$dy*ak(g%#(kqw9G+Aual9M!)}F3iijjv;IT zAEOq8YGuOlFhR-~{7}xkvk{l+8$R>Hj;Du1_IXEF&g8R?ZldA4C;%CazqbviCqCLa zT9#Wjx|bP(FU|d|HLtmp@5Bq2BicXtK|1PLyI;1Jv`xVr_L z*+ahXmwnE~zWDdmc}~--S9N!F^{Tg8YSwDh-o4WVAOrplz<=*Q3W^PoD3RP9oXxCV z9?Otr$^ig4A^>jxxi=uGJ+}PM@YoUwae-0SlyD3mIsY?wqx>W16{1?#+R=(#&G{Ym zduuc8ztX7{sku41IJpp!npxA_%GAx$!rtxOI}2Cfqr8`hOIB4{O-2?hifCi%_SV`# zi25Ia7WU>yX#bEjQqtN8b|e6axfW0^6+8|KBXvpOl1nv<1BDd^5lJazx)5lV3eIHM zmN(W>2jP-wssqtd!O>uAQuCNc3Rg*y!4+SKDbpO+K=H?Pifx4Cck&?YG_W%8X974} z3WHQL64;#p21z|(aD6VcMXnhQVwP;ka4D-xN-~cqb&UgU)4x@gQUHFA13f9!RFzWT zOPU4)DO|u{8_69+mr~!UgRno2#y}pQvqJ)xtokWH9RR=$&m{>*4hk+u25|K>VioA&@IKqnXD@&HI+{QL2PO zacUtMbtl$a5)5oTGypXMJvru1T$KNS2Vll57|K|?*toFE%dRhN3i&llNg1m6<0k)bU?!m`ozpCb!&;jR9TxqO|T6`syx+z`r zipK2>+vnr@))jTrAYdWF%D}()1tQFYLHagEQtnZ5C{0m@^8m0U2l+3Yh|0%_Bhv38 zBk%fOvDZaJK0!ti5o?tPCzaI*AybJ)2GbTxS9Yev?n~EhE7xx8GoMZMk}UqW_>bxc zO#*SHF#b`bki>k5Yda@iUFtv7q(*eup+Vm5L@)15-yg@O7|*LzBQiW8qH-alL7+0B zC9C5qyHqPXm!LA^sxs#a(W^7k`))TkZD*2Xw{q?G-=Z7EUlkPqfE|VC0)_Abh3IvG zIC`X9nlb=@^l>yXhvy4KuPemSD<%~vW^L-_S=to6^M;ln|7DSQWO)qCX=}iuHDKPF zU>+SP&q6=1$mT0^di8$O*Z)&w|2x2A0D#e0^8Q$I!~j=B5J-Q~Ma%_cfFo9K3}VnD zM*P1zs$C!eH5xIO)5YvBG^j>a9V@GobN`5sblA`a>oX$oQ=|lxwSCQu~Cwio~qR03b4nW|Bbs%GS;8xf_Spc;)Sxy*bP8jXK`Tx-^t{5qc85t4( z?F-S7RT?7xD-_Yo?^IgqG{*l?C;v8%+d@kFfA_`w-}*vy^naYuKrHkgr7(vVSwo?qYTn`Vf0lhnVv$$Y zc32*BS`oB~9l`uqtO+q9&SFBara__5ug^wa$RZXz#Hu*+*s1j+=T}w~gwP2s$V{RI zb$C%J6uQ?`jU_Y23qiEiN&4_F(;#;TFJ#KiNG}Nq!SI!J@H@6TMCUPY5r|mh*#@ia zP#ldAG8TvshWL%xG~b|RzSYtTiefbM1U$vo!vn}57RMgW!W3{Y7beZ;QBFph0$gq& zL!lN3jixXTR7zbC2L_TRB6i-=k1-&{QY~CCu(SXf(D9rcaj^v<7JOuY7XT2%1>))< zalxf2Btf_hp)ue{gpctylB*}fMHSRfVvcZO3SA%liFmNkqi2C|5gy%(f`q?W#J*00 zs737Xk1PN{&Od0&@-vZOvOK~a^Yky=JiE@UOuI9-hT{$Fx(^hrO^Mx zxbZ6jbc8jaaTW-JBCwqLZ1spObib2VRs(|Y&S(Y^{0P*l?EXPIrwPi^T#aR@1F@L- zjs^&15&!@QXRCxd6~}bnAT|}GKr8^Dlf;}r3IiB~3kJ~?BuF8)>Hp_w1V~^!dMYV- zh$PDV(P#PVxcomq)KD2n+^hK9z5>g!j)1479y}jlu2O%6B8b(M*)R#;J*|G z17hrffI;|=6>%UCFcA!TWPSux{Vy|^1z7mE3?YgEf$!750sw&D9Y_G`4h*6Gl4^{X zDh(%q|CsoJSPAOj2yBT+Nt-%pETJ&2BrLM-f+=;b!jxJfp*{kaNiZnaTvb1!t`Jws zR&r+<6pol5xTpZs6aX>`Dw+uf5*Ipv8Y7mJHn-|25lMpNr!EnIXJBXy1_1vBfi*Gl zs72tjriOh93`q$&ZRj?oFzQXY<#P1FGbjFxcGL1F?xH113F zF{&`eKn%d#;nvmnS??_-Vy{bEv_K4lu7My)rLx)w_A#+^)EwJJf2SF>@$365UrYB$ zktk0*l5c%Xr_b8ua;tG=tO|*JIztKZpP_t38Uy(EwHg=Iv*ovN21?tv+KZ=e2BHX1 za4a!tgPH$h4tC&Nvm zA)K1oT6;BbTN#NQrX6==3|~81fj19%_UsxjoyH`O8>F60wqyOO<8m3su;oYBK`HHM^ z0QHh6i-#|~64bxBFh0){8WrThU$}kMah1Uj=6FFu<%<4h@iv)wY4JRH!KAUlX(YR^ z;;K@bEkgBq*iA`mW_`Vhonp$fd=2GazPIqrw*lw5K}!e4G)LSE-0sjioJ)XWT&htk z)Q+_-YlMj~tdGZ-3&=dVxOL4BFEU><;Gck2WQJMRXl=ZU4Dga3u9~h$Ro6E|DH`Nh z>2o%^RAtNphSt$`zQm_2x%3vXU?tP;$kR^WO`iWqAZ>*Y#t9vtpppB@62g7;MIjMn z<|rQ=P{}%XvrHO$T60spvUTm-dfHP>$MM8!r2e-;{3f$-&-&F($m+WL22Gj;tu?>b z)G$#>Y>9xep9x?8=pC@yuvA&3gd5bUYk(RPiC^$)%_JVLLQ)Q|wqv8;NB>syb;jpR zTd>0AWiH`9nXoOIuX2I<%t4_yrsRG!i70!fEn`xl0SAyA&#{8)i&`e-6R{GDiVQDX zHsk@$lF!wa1xNs@MaL2h7NNTU=_6f*TBZ3W5x=J4MI&;t{Tmk(m?zZl>e|1vTk&WP zJ`_JwEj&>b5B#K+-6a!F7A3^4Pml()VV*~wiVbbLG1($TaW#|-xz)0Zdz+vxJ?{cq z5?LgKYc_ueHV@Gr)@@#wOtiO5gpQS6PL%8g3>7rcP#xiSMM13CPR$81B2rLGxE{EB zSh_e#3e|1VDgCXh(aK{22#}Ub2pJB4qJG9zFWHD;1U`Zy=2YOp0N7*Vo#D-dBT3W zoO&ohsr+S*{g6cd5~UBGX4)sll@6Sk%2U^*|D(3Q1sB`6 zf&Xb7Ss#Q_4TK-FJ8v#*C-+qCsdSyW9{+GCFk#P&Zxkfs;SpIBt6r-PrNc|xeoqVIoGYJrfRSo(X+cI_(#7Y23+5t7^*-u+B@Pq9u~?{ zS+Q67FIug?#k|m;WNBgylisJG@O0IuMGPWzD7-iC%p)3y6j^LuJxo%7Tx{vJ6LH%nozt>H)( zwj!2&XnXTP&r>^bv&h)fyQTBSQ1o`|xjZvN&8 z(A(;*ToPnEZilV0QTZOh)8Blfwv(QF`&42S%R)3;7`70sAp#Ih=k6P`UQ4Elx`R zwjj^RNf&$9ZvwHf&Dx_+dUWq9nqz_|=#$=AZkqiF70vs-qxnZyfXE~ZJx3=tWg`2x zM^b>W&Q(ZqSjf!uZb;nw1wltC6+9FO%~yYYFOAlApB1N!uL6GSNLVA+YCm&IleqAZ zKQMBAY~b0Qywd6wX}^JfeSaV{%S8;}WZb3Z2Icmkjt*?WRUm=9BfIXku&fFi%cBhw zMkVyjBfpXZ#v-G`o~fdH^#H~Bc(E;ib1$n(@f#1e&7SH>_2kGxoLZ$f39_Hp5W@!& zh{-SM{A1n=P2<>r%n?mO?!dJqJX~u{ZQ|nV`F*yiqqAke;`SUX56Q^;hnr>M>!>>+ z`H;DJx4G8kxin7~>u)>8>~6ug3oo*G2}RJtzsF)w(8#Gs193<3q^uM~^{pui-j}6H z)gdMBRCPMoWZlkauv+bYx+)#lMgin=MGJzbWZ^F5GJ0 zVgp`7!mcp2>=d_=IU6cN;-z02?k2*5g2yPy*+)X5UX>!|bK|$}p0!KtenI&&b+`Ns z*=;1@Op*Qk;=;V+1M3OIScwz3t4edBj=gLuIhQJ&@lA{ zx6AV}Djh?y3X+gv)z>Bm9}?k4t9M`IO??(AMdq_eL?`I^?5*=lD(Fp7v!Gc3-dS1- z;|(1JDQ@Hu&(2d_YnG1W^(b3`Z!J;B92D4}V#J z-^X^}3?C%&FcSD{O|Cc|`dYXuy~DR0Yuo#lXU4QLpemq^v}}#0Okc?88fWn}m*l*N z&?hNEt0d3ZNs`p8xJajTWhu?bs%YZGb6VT6xDW`?l*+}+0`63Q0% z<&XHK5Q8sv?`&r?S4$4|s_o66;4K~gvX0@j;vt`!q%K*_-dhSD1&-OPap;RaP3+9> z{Nt(~*mL6aI>#C%Pm0GnO@8m03SCIK)y6-^0hT1dBUmOMrrxad^G*9y2vMNOejQI#+g; z-uAOzy_Q?!@IB<%(K+3HG=Y+oFZfeyu!yWwnc&h_S6}$dF1fe6OZ$0txqAS6`jO4D zHldKyOq73QxK_e5nAF~Gb7pX_)QMqF`02GY#yz@yb7SQvMZlFOwycmmHs?jmCpj}O zhbyJAr+H}Bytn4B7>C<4vNQF+YFzYdB>d3d0tte?-pk%j;Apb>xap~#B%7!ywJ;fN z6&`c-4%gKm*UW}JEP-VOqK$37ZOYNd%6xj88#TbOQDZ_ZTs^*jyOI__^!kv$(${b5 z=Hia)c2%{Bl#{4Jp;d$rqPRmh#uUb_fE9n~2~KIBSO4Wh^^U){t3-3b-r3fV%2fw@ z|3g4&xO&r!jez`v<@JZXx+Zp5r_qn1n$i-Ni-I@cV*+}4Xrx%Q7OChl=7;cf9PEkB z(VQMTdU}z!J~w!SN2i1>_vmc0sM?BnAI37%nvM^hFtmC&er)m=YjfQW7sIon{5O+k zkG<89*d%MdQ%Ke$&G~Q2$HptEw)Wsr5_1F&TG65I&z%sJ)X~_F11~3=D^3$Jf0jvg!d6LpRcQ&F zp3=)J6Nb?7Q!WR%7;kW6YGueBibe4HD);7VyT4efTyY>bK8$AaXa=yUX!ljA#BXN$ z%T9y458ID=Rf73$N!NraakzJMi)3nwz8_vHpo*v!^J=Lm(p-leTv{N%>uyLlqBs*v z%vMd{ua9@(PNMc{_xB={arUZX@Z<+esOMVUkCaiQCR8wRP6C)?esOF+z^;0mPYkh+pakS{t` zY$OJG?-?mAFi9;;6A(_F1)xHo<`0{tU^?@1IWz88VMig5=7h*PqB^8G!n~UCbC8Sa z7RuU%+$P?oOF&1KPjMOSQ3(_|dpB}{0pKS1tpK~+MUadHb)8S^$db=oyE8ATEsqQu zfvml#q|-(g`mFeaZz!7v>S;(6Stx8RGH3Mm|>fJv*iLC3JGUFO93G(uA{TJH*MoMhOE; zg>(C+3xCLK4K|8=J|G z{;%}!y5EZU-@`T+uGhyrcT#nV?SG6DhryVnu2PEG^A+uMvS3py%bO7o5$pP7qRX+1 zMrCn>XPafo#1X8-DoLf0vQ-Ms3reV=t5tlo=xP!ZIhno!EfypTBR3A#6|Ax zZ+Bl*$dK5Ema7}0|MSJUqvF3_KcFDUS=)#q`l|M_w(ma~nM!hVQ!`8IC@CqasHo|g zfh<5)=ElsgWm$P?nPO?f3ewVI5_>s}#OZZ;+j2*NWJG-Zs%jU3lurpCm^$N%gsQu} z*@}J_v5R;eTJ%Bd1AJ2*ZoEex2G31XmsZ8E+TB^pghJN0bg0&2qSIV2wA6&4C#XQ0 z7HhG{)WF5l2;mze`%(z3>$haq6e^|EU4yJeWRSck0MgRx$~Sc9*)}24R^y`|wYK{D zi`q?Uh*|BXltt#bgpH3`8UC84W zVp^)mR7D*b+_qsM%Z&qx@}6kz%qAUnH_&_^sccP<3y+jn`Ck6MS%ac|i}fZUuND#s z9Ucoivy&EmZ&mAemLELBu_tnHyJG)c@3v_nyJl@YAs^1a3?a)+O1bn$KWAX*q+m9p z8`_sO39I+-=QBK#=+>n-o*QNr5J~1{{D(xG`VTx2={#5WRj~!;K#ks}z zYtGF3U8^)X|GLG?d$H-piTC#bcliM~twq`5eQL_{)9|>6V=dz~GN6?yk4pD;%C2k8 zOH2M5>sN}_jyb>B`9nXjc1CE#wK-0V7R?n(d@vw2hC+fA@p0*YHxE5eMnm^!eDN%M zBY;!w6e)$`-7wQbh7mBJI!?hgr}3NBL$IW~0P*WOZV5~dMq z;wD;Nvw3A`%<@!4-YScs=VRWbDXC;H7|(84p+>Qf>o4CSQF%@x zyz!0KcF-SIY%8>}pox)a3|Y^+d=4}u}A@|FN zy3W93lrIh^uOxB<<8Z{%uv1@p1zC(wVrJ=AW=w1ca^(hpW};G9?Te6s_txZX$*cJH z;$ROf{REz0p>0OAEorLJ4aQHr<9O}>o;l)tUZ2M#MJaCcryRrbIn`W4olI-%2x%%Y zhtbP3qu`Dj)QxpkuV7DtTpd`w(j9l%58fBH%oWD_MK9qQJ5}QW*j>2^`EHc)7R%Ac zu=6=8_qyF8`I%hA_tNK@7Jkbx5xZOx-?KCzqMGBF4^GBIZ(qRr;#enol^8>%)#J`UH4*sdR zNbIn6&1G(f{8ScSD~fWY;L8uuQZHJtT_eq+(r)oxWP7o|%KnvkCTyJjp467ZcYL>L zkTN6v-kliC4D0vYplT3A?mdtkCKGl)+-4-#M&;FG4Y^GQ(n!0uQ+lw3eK2c9#w?2& zIjkeI^Q6bOreD&p_m~3k>L^o+WX+xr_-}T`-=TtK4T}ptRoOX9M@YX@YbVeT^s8ra_IFBJxoaCaIY7OQ^$= zSuUBOtU`<&Ite8i2mnhRrhZY14nD%_!;`Bc?Ict{k$org{I}#Y-5WR+9#lJWg6=Ib zgm8j3Ld5@}J%HB2GHHxhhYrF~sr`MJo`Dxsm;N%{Vx>*Iz=7O3*2N?1jx}lf(=6xS z{jWNZ)re(fa&nhUt?9&&sf7n%>&XVnUVVQzbgi*Ud|Ui$AF2 zF8Q8TR@*~Q#V0xc2>T`9XE3j&W|gyf)Qrjai2AkT>$bD4Wpf4Nx5=7RmtGq&a!hH~ zC-)btSd2J$EdSsMfSrIa&gZynd*VJO_VA(|r-3h)eGNP;v!+Hhh6EN3p97ox`VGg0 zYRq;FA)SZi2C;QHQA)UU*iK`k%tgXTu##aGA#OZm7MrBkO?3*5+^Cp(czRiyzk*K# zM1H9-xdk{6^U1zV^#bo!jIfJt>?Shr?F@(7nAe?7?C}xu3&R@47po=pc$7<)vntb9|xxNYY_<>7Lz0c9wTu`hGWsS-qMJ|hq| zpU_K4usQK)e@~>HLtS-%$#TD@ghW|797h)NgxZmyuf8AKt2GLjwka@%PT)`;`_E0b zKX?*01Y^@vCm>AKTTV6!|3YvYE7tmY{Mvg8vP#x``aVgIK=AD~LBhpU#{S!3O3_Jy zY2UXFl}utmx2yZ9W4TIJIQZCd94{?!UQyX!tX3;QJkP~eQV1v57s-l@gLBHwB2n_9 z*s%t??ih7AHJ|1w_2{NA4TH~V!eIc!!_kowd_bFHWfIp+U!5J0)TizZY$O_VY2tyw zWpb;}lw^-~19%3`nwZzpX76b09zKQ&h^vBD+VzE^TLK!n2m2zw>_MdWGJl`o-trvs zmAZ)g?*8I+kk6t%GKoqQ@8q_dF;+^QGPwt_-nS1DtS5#UKMkw(GJ&rF7dkEJng`+V z3$1Tjs8Y^792{Srs1(TPQ&_IW76m}%uPF;GUfBVLFahqRkZ0cPrr3d5zpYnDN4LD3Jp5~F>zF2Mg)M){>!dO= ze?X=>nXcaQxGb^}UB2den$z++GG61D`LLUp(?(tQU|hC2e-ihpOUyY-W8);j*RNNi zm7|Q?he^KA2$XKT8;W*Y)-yg!paOo^Y`HB!L$3n%vRG;~$pBbN_M$(&Y-D9O!b>S0 z@;uORAx5|GYqf1!DsUVImJ(-gOhJEzoUTJ{SZIfN#HS5nH7G^EXQ4xg5;CgF(P@xH z|EsC##s?q(`M^Phv0dH#?!IgCXhs(dxK|cbV<8v>wVEz@YoY$ib|cAFyS_=vR@_r! z)Xzh@SH4-NNiR8PcJw^A=e`POiB=@al$}aJ*LWpKKmtZ1P!cpI9iH-H)K_^4mGWeH zpp)j(Gzr+Q96nzt6CNQ$M{`8FP_8OK3ue|GC%bNMG?G_<;=0cjjtV|lz&sb`y>A0j zQw6jn4bq;Ws&%T^`pf)Cc=9eATZ`tNC(Too;`7RGM!-PS`S$ucYuV|Qrwhv}LM6`2 zNNN@)o1upV|9#aMTpAJQ$s&_4U%zB;nciC6sfz7~aD^>}g8&DrRprGZMZZM`rhy+y zaF^{C@9!km8z%>4OsS43RhS&w7Nb0{=jmS@s8`*m2$g&+w4R^489`DoC0qO~7XTs-{cKzr^fpwR`cQ4s?!P9J1|Y&~@0` zFE9S{C7j?kh2kR4E6RwAn!q=4ZgsXQ<_SQ|;fi;%c=wN=`-yX-91M;_7+dpW{U#!R zHrQ#o{&=qbaOvGP%wLCN#9dqf?mq@Q6&utwmeH^zow-lF|28SZkV`|B6)G{lBeR~j zF{NGZkXb|X?!l0MM_)VBs$$lE+xs|-YqhD*E7if)gVrJ*#%o)8{l2wc`2c)ZiyFom z605LCxZ%x*rPp3lS9jOuD{V3@XsXEdRn6gW-q-BmMQ;)$)1b6ZxR4@pLA7 z+b((3QNcr)ni?ic_LhTq+=%EL)p10++6r6EeU(~*8h3uSKqR_+9-cu^O`)UlO%IIf>A^A+skiBp zKrsic*@c_c?WHKUx2Q-%3oM4}_>M0uZKd1(-Kuc3UY+oKdumwx%us*RL%RWZc-G?> z-Cp38%$_Azt~AtR!&zoIwdRth?Y-C&i>=igV}`1N3A6i(Kjvv25KHuZ6)#l~e(CPJ zKS(z$eO2v1c7hUw%J;+!&qD4ki{_5gI%KizU7ylI%gO~V@eJCgMY}2X3&&{ml17QDD#kESC(I#bsTfV?=6V>)cQTi`bP>#o|kD*RI1SPDh9O zD$mfEWPLpk(l&3_U&^+@hIJfz>PRirZa%WXy7-tBzq za(`I8=6sP&V?a?9n?7FNG2oY&;1OH4t5jpL9~;+76_84NcI0=nByD}~!yKl)l38A{ zoV!zuYAee{RPjYUk`1h4k1+$eCz^lyiWmTE7&eGj^b5oluo)jZq-I%^eh9?SYn%8Z zPJve%xg>Ha?Dy5L{#{i)R_x4A`zae^_yb;CF>l*eD6f{5`5@e6!uvIb$!iZP@x?0< z9scBt9fS&_zbatMicVaW zMXO;wxQj4P-#Yd;cF%`?(hC2?eMD1DyIcZ+I5F(*;1V(_soB)gNLMA;GQN&H>Qc|i^*q5Z`#kN^kc@)a z4v2rPJ9^pQ>}kFKJm^FTown$L?Ij(E#=a}p4vq65LiQY7RH$2d4=tdjo=Dg}pH=+Q z;h5NokA$isUyP9!q|9(PRZr)g6W(4nkx-k;f85opN@>gpALRJKfxH0{+`0%ZBxf-v z@{lH6DxQ0%qfICnLEx&kH66zEPJH8Il{X-*lmX-|m-Es!X5zC=7)ds{^CxyR!C&c# z@WzprfLu>#CuKG)J2WSBXj)r_%I$5FTW8b58wC@pOn%ofxa%J0aPVtx@mq_s&P{ zuisai3JD*VRD>8Gbv+yy5`MEuVSR6Wl;Dr`iGG<@yU;ILSR}x{<&;Q)))2tS1Q08Q z7&gfTp+DQ$QLe}wsFOt!-O$DHZ|YqB1P=>U7{Rt}ce5(G^>d<(=Xq;v;8k}#v3^$x zbdPvVcQg{o4D1L7%Vph+K?XdNn#Ew5gTWy$jH8^pdI>#>vJBh&e2OfC&)YPYg5Pyz z1-mr+tlYo@;;&mKah19%e}&a-QxHL`4vEbqC{q8NzcFzRDP&1Tf_4KaORzt%E8}{* z#&nU@c_l&LqwY|LoKqW{AHv|F1S~Axu7&;e*Jo$4evS;;KkYYv`?U+g3%NVX;!R8} zLz(kKBi}CuxRONOUYeM%gd4c<(ByqLZ&Ti0d#Gm2yPjF+9K>Hc>=ooOUFmw=7;mDG zDzG|Q>g4Wr``+j7m4Ted&uvi|f==O1Y{z{F9a19b4FC_t4)6w z+Ltd~dTGxp4k(o&I=t?2enQT1ddEvX<_E%P{6vz%?n=UyN-?E&KZS(YYRs<^xZ;wB z{k|Mko?=Fkbt|6ZsEYWxFZ9eCZ_-qr3%fn%Lm%p%Uu0k|bbP8QqTO1;jq14a&9DZ_ z@PIsoI3UG%ps?pzCvV1Q=2or*?U?wj8t{siDa&6=`Pc;XL&;kY4^xj2u`^+)dk<3b|_)2i=4ZJwFL?(MJ^Mb*`>6=$9 zUNm$tU5n4;N|3!3X1z6h(CTrytLhPUehTl6viQ}$?#6vMQxaGS_8Z|>T34Tl-CBP! zC@eA){@SFddDdIu^lI`BQOg}SOe`IXO8Yqzz;X1wvz67!(^#%xGbuAHhD?;Fh7;g(&bFfqo5pCSk^RcEKPi6))DLeKV*n{<|Jfn9xQ9 zSXblJGwWuv;*pk;fhn4pFx7ON0`IP9k6aq$s7$q{P+fsu7=%oK?HY{QPoHNguNYQ7 zL;5_##;i|(1LeBQF|_NIePU9*^lTV`iAzEt^Ljn%T!-;&)y=2%ci$UYD)uu!*tEFs zmF+#zZqvSW>r*InelZrqzZUe6zVCKAz916thjPCYe= z_e=w0KK-`$bd?BQ9d~Z9EQ`;9W#1u*SLfQ3ChTimS%>=I`;qmh<(_iXK!+M6tstYew zmiNg!MaPFPrBN?b$$q!Tdxh7ZDS^Auqo(5k9Qvg>%2D+~eCOkhv6nMZg)B{d44QF{ z2dh1KJk(0M2T-75%0!OC6eoM@X<+kuK)H}%N+9cRc=lK7pE|*rTR6lSdpZxj)2-KK zesgyUZOwL7?U{oEuFgUczKq`7iF2Na|9Q)&(Jz+8QN8~aW-&Tln^CJL?!UJPb6HzY z{&u4$PkuPX%8*s-5gKD?kX+f+nNbEIIW@u6Zoz!M;N+(# z%?P`yyFFa$;d;(2wKm~1HS1MAmlB<^a}i&7ck<1^GOhiW!S^=*mWub^&uo9{YlLgw|W9ar`78sSbx*9DK|6#8eXtx^+heU z)}vxp(<)qaPPaD_=SAr|I$s5N)5;Eb+7ut1Da6ivSp&)3TpUca=pFQU&73|o-2AEW zapn2$37!=tlMC;48y}HopLT<3Z&O8&=$)Fj>V!1wf%YzSikG)+6l+>Xz=JAY!-QpE zGe&p5pk>p=Bk3@#xWUX`v#lQJU4(n%ibI<##7(dms`Cj=3*gv@Fmu+^ zWNg#Rwq*T}rzg1a#}O~;_BGjpHI^c{TQyf4c4$%E$lp}j-jv5u_!lB&UR8O zJf;kcm$rjL0#-R=FRk)SM#^0tEV^_*k^xJoTYt_8L`oYviM@~+^tJTtQHcCO!nL-H z#vJ&}e>OAema^r*5U)1EN#Njn=|j2ok772G-hRvLd$?=KNyygsb}?G+fzV~&#_c!o z@@q!C5tCE>j8Had{xoX=|K)jc^5NKwr#KtehAU@FORgiltV!MWo>slwR4PC}lXZWC zk=o%wESBk>XA;~>B>3b)e1mpUgG7P4;Ucm`iW5WuG1qAg9VFnk0q*4&1 zw%Jyr;xAYzT>LLqU%A)MY^E#b(_mvz&pfz9|5!sPaN{H#b|n^)h$)ks=4x!cLHL4%h9(mZ<)I# n@s5|;A~%1wn29Ksf6#Oad7W)&Y%B}jMy#`yGj{-}0nh&zL|W*v diff --git a/mods/fishing/sounds/fishing_bobber2.ogg b/mods/fishing/sounds/fishing_bobber2.ogg deleted file mode 100755 index 94bcd84c68a959fa318cade0a7fc134f5864b403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12227 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 L2tR@6u;~8_3u>Wt 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 FV1nx_JCpzb diff --git a/mods/fishing/textures/fishing_bait_corn.png b/mods/fishing/textures/fishing_bait_corn.png deleted file mode 100755 index ed0e12d696f7605ace23981931c19ba03ab517f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)3kp&yyn<`S=es%I@0*$5uHj!l%yko-b64d$0AsHA$S4>B zqrq)a7%fX;nv3lDsmAYeqdfzlzdJQy6L8Mu0L5Tq0?_N-mkaf|#3Ym0C^w~MCIA$p zp^$hqGGP)JzuA^{uPXpnSC*B4DoySvfn!BBS4l$Pq-;q`%s&2+#9t?nT-gKF6o9q$ z2l7Q(NbGDWiBpxJ!m1;WP~H}R~lCR3AVnE^1{Zx?+E?72*VX(^IvgU0v#AG!vZ#IJpvDzVu24YELdz$Beg z9Px1%p!oc92GF~yz2IiPFIaUxmNbel6vYPsdi_mBN!&0FYftFL1NrdjiMzD<1yoqA zHII})J&}0#X&-fiL2mT*F0VyrH_>_7QEdT%j07*qoM6N<$f)gAdQUCw| diff --git a/mods/fishing/textures/fishing_bait_worm.png b/mods/fishing/textures/fishing_bait_worm.png deleted file mode 100755 index 42c9e8795b7beb3b8432721fdc9fcc4dfbc58f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|H5N51TiJu4*WH0gbb!ETLAtEfQ@3h&|oPmK++0(@_B;xSfY4#pYfg;E1!w;<# ziNj#W?6bW zv*K1z)GUGTcKd(cD}ML$TZr2&l9_I;&(glS9!DS zz@tq}JACCjZti}d?)y`%K)tbLuQJ2;)-d+z`&W8AVj2vs*czqAe y-rK=oQ~8(S%xZUrbyt^6u6cdCD(~<_I|hsO{=PF$XrBOvAcLo?pUXO@geCwpx}a_V diff --git a/mods/fishing/textures/fishing_baitball.png b/mods/fishing/textures/fishing_baitball.png deleted file mode 100755 index 6bb4e31c4a44e675ed0c72f8dc40f682c4cf3a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0H21`G|FYq_~A{$$y#@g5z3w)s>XaspJ zV{y+G0}Ih^R-I;YckaEJbMBeBv%p^;YSe;0EolHy+c$=f)_QzGrGB&l$2tZ=Z(ZoU{ZcJ@M}~IKPQw&;$S!cHd*hz$oOy5i=6w=EV+?s}>zxVeF+00GOVdjMP&6 zG=M}weEUS|7RkUf1ABxd44_|)%rnS@WBomV?27obszg?n@0oQnBC1EX!u8j0X(?pF zLJeH)0|083YXE?sYZKvPG_vfLu4tYJ@bC(mN`o=s5Ns60Q}UP(M`jyY2hj0 z4y(tDa+iAxFc9`x)9jkW1`TG)!Z-~o0RX6f)BylqUV4XGJF#5@!KWb41%gz+Q_Yls zTN1m&^R8U8_K75!5(d06kSb1130U$iTgsr}Lnr zbQi-Hk&|Ieibz>=hYa-Z;@%BMF|lw!4Ge?^eEmAK6TZy1hri@S6z*7`Fa0d>=H=Kw dENd9}A7AM$yXkXXC&&N*002ovPDHLkV1i6K0viAT diff --git a/mods/fishing/textures/fishing_baitball_shark.png b/mods/fishing/textures/fishing_baitball_shark.png deleted file mode 100755 index af4f7cb1d3bc503952b612ba425b9787d5b33cf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)FfkB3Bxyt?5HS@Mw6yhq@FMiq9*dV=Me!sN2{ed=mg1$o zM6uLDQtC}=X`!WQQX&%aTdQWpkd58cY&W|}HmU33nS-aWV2hKI2j(!t%)|4%zn|yx z414k9;+f>yG4}o6Rc0P{!jmVC*C6}y>tJ)M3QEO?;NrkQW_J>(wRrd6_urm7e+5Rz z#-o#ck?NOBQ@qg70Ny!V1{c2D1m%Z8;`Y!`X4esDhi`g6S%$HDzk$YVGk9Zu8eD$! z2&k0Tz`$Q3+77m}k)rd(4$!uA5B#v*7*kLQ z0zJ!lFno7BT~kmufm6L7m7x2_36N`S0bL!TfvL(mXl@SkE3JgudkV|oh1Cb?bi%p` zEa&44=iYi7*ke(?h&&QT~r7<2&)*gX7t>O8X zZsju2*W%gall8|@K>DVj|Ks;-us_*)g$D)j!N^4BNfeOYf5K1SJ63~gbt}~W)zH&P bU@!gwr9;CAx@4df00000NkvXXu0mjfgI-Rk diff --git a/mods/fishing/textures/fishing_bluewhite_raw.png b/mods/fishing/textures/fishing_bluewhite_raw.png deleted file mode 100755 index 25043ef0a9083a92227b90ff6d32ad03edc0b538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?RB~mvCfBPk#~{;)ec{snzwkJ$Yn)tv6(zxu{_~Zro2wC z_%8o1rvCBXPrr5F@BQ`l_2<9)?!W)q(-Clb#o}WN8MqdJ(7gSIGcFwY^<));$vHiy z4?8C_EJ(DC{`#kI4)cOJp6p!Qk5(|-s+ThbR8_DnD5;eTc%WUs-;!xTvAw)T$eJ~a z--Z<^ZVMqXsGA^z}q+{ W_GZQz@q56aW$<+Mb6Mw<&;$UwL9RFe diff --git a/mods/fishing/textures/fishing_bobber.png b/mods/fishing/textures/fishing_bobber.png deleted file mode 100755 index 353d8b2bb0ec707700646695d63757b92c0fe346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)VGd000McNliru-v|^F7YNmlp56ce0$@o* zK~z}7<<~!GRc9Cm@ZT*-Zju^v8$y$z`6Gx!u7nOQwNoc)1;Nq5fG#fG?cOnqgP;yY zs)OjziWF3YwrNSskR^~v{(;^kCeozdq&LkC-WyJb?;h|3LQSD~jL&j74}9M_?{l8_ zeZIpk7#qG7jSb(5{LlEnTSjIl@of501T(WUpyk6B@YxpwnSH51-AI zxXex7kKl0r%gp}vz~f(TM38N41d~smfTQ_7u)Vzvj(vXSKPhqc#HSG~EiI+g1DoYd zkozbH8XK~pyczg|t*v`{z=hMtBUoJxo?2O10iB(lDOI3attRffx;_Dgg$2;x)&?Hl zyBxuZQ(q^%aPiz%5zNlcf~lz~kk9AA`uaN9+S*E~0+mVylu9MgkZlOc)cAN#)YT=I zeslh01cgE&vA(~*AB>EQfZpC-(B9sj(m4=gbm(RTxm@Um`GtA#^3OGJ=ui*X*w_Hq zFI`D^D0cby_&A875Ukm3=&HWHzLa_(#@bq_w7$N+_U2(SR;s}Z<#IXU=J-DT#-pR7 zprfNB;hCPEpxog14>IZYK#boWeHXo6!Sr2xkBQ002ovPDHLk FV1n>tVZHzW diff --git a/mods/fishing/textures/fishing_bobber_bottom.png b/mods/fishing/textures/fishing_bobber_bottom.png deleted file mode 100755 index cbd4655df43fb6c10fb083d737b48e5e936309d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?eGFsdwPjL15!>X&s(qDrwrd;a9v+H5u~ZU;5MmM}1^yeu&1!-1k7K>Hay MUHx3vIVCg!0FLBIwg3PC diff --git a/mods/fishing/textures/fishing_bobber_feather_1.png b/mods/fishing/textures/fishing_bobber_feather_1.png deleted file mode 100755 index 6bbc9f7aafd6e4f32fd070879ac4de26696cd1b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?-eJI!B44sjHdm5r5wD=E5IV zB9k1X&X%ul|15Xz?;d_bFnB-rNVaXspO*#)3M^QTCJENuh-SXOUyfCx|9HaAn5Gy# zcDKbB=Slu3{AB5{{4(R@lPp)VObuqAJy5lmZU1|Dq5MM!4tlfCnP10w;q})8HFoS@ zt7J{2cmwpNJKD{!-}5uUp6AQ&S^=kylzUlQ9kix0bstr_^j~-P?WWE7^2|JJ%^t_j zrU{F1we~)0?tK!pl0~onp4z=Bjp^?XlvuG|%@W;mJ9om_H09d+Y5%^TFTd}gHkt8m zp7@f>FFl^!{=7QA{QsTJcTG1$t#w!$#CS4AC?@8<&C1CCcMr&S1%*Aiel6x6FhChR MUHx3vIVCg!01R)j00000 diff --git a/mods/fishing/textures/fishing_bobber_shark.png b/mods/fishing/textures/fishing_bobber_shark.png deleted file mode 100755 index 9417e2f62559d2ae7dc1823a729f69342a41caf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)VGd000McNliru-v|^F7AhI^?t1_L0xU^H zK~z}7-Iu*@(@+$}e=nh=IE?}&aw$VQK>;C(kU%I*NK7D=m5r7D2`mg9m>C&aK-oI+ zwIddWmWmcNRHc9lG%9i8gw$=4UWWUEWTOazgm80~E8o2L>~rq9*A8?+LGn_Nyzq~a z;6KAe6VGKz0G4?RfXhJuZkSi5FBRAqO;qs!Xw-ZFN*T>Rma77A%{(#v?SX=v7nLRr zz+!m`fRn=$0PNDXo_P6JN=z3;0FJtG^+1hA$o+@XDa%~*DY8A?;O2rd&gpTa9gSZ% z)jf4B+sz8e- z0N<(E1^TE)H1FFvk&JAevdqU+Ffv0L7m6D5XEm;^Yuv2Fbq;j!P%a2S#&*LR?*V8w zwgEWeDAfja0OnTSsA9>m%O_8SZ?tVau(TRi4|L#Du?q$OIAABE7gUvrvjxBof&QMd zHP&X~;u(z_->kQEfbzk5VD^$R@m65k6b--waRgw{E={W0e=1Wi-_|+tN%x&TuCeUf zez(ee{1Rp!-?w2DcWXHTa2y@t2~nE|f!2P$s6`*m>H20XT=R;K6CRy2W^a5Cbi=*& zm;ekUZ0&vRf_Lj`>#{ZnTfr^>PcJ9`=J0 zU$(aT_Gszz^2Ct(P+REpY$<002ovPDHLk FV1jg6Cw%|_ diff --git a/mods/fishing/textures/fishing_bobber_top.png b/mods/fishing/textures/fishing_bobber_top.png deleted file mode 100755 index a2ce2a91ac55e9ea1341bc25217c75e6b3ea9dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?VGd000McNliru-v|^F5jESrbx8mK0hUQb zK~z}7?bX3cR8bVi@y|=&BtwfLXr)NC8xdU$K|wIlrWT421hpAzC7ABR7UCvcMhlk_ zLj41+YT-be!Xc=rpc;k>3ap8QFeiQ977q&va%wS#yt}#FbI;;?e&=^M(bSY}J-f&N zGJp&q1K1$|&Dv0C)`r4A0Te6wP)_1dPU29k_$29RX(#EP-RQ>j5qmPJ#2~yU`yN70AHekKMeyc*TFcuPUsKP_45x~G&ZYU?^_D%5CYH9*1J%;tR}Xt7BMAThaDi(79FR**44oGJp(V#{>KT>Y{qUfuA$k00000 LNkvXXu0mjfz+vTe diff --git a/mods/fishing/textures/fishing_deco_pike.png b/mods/fishing/textures/fishing_deco_pike.png deleted file mode 100755 index 018187d02e96cc0a13bbdbc3e59826be770b407d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVVGd000McNliru-v|^F6CK<>zcBy+0eneB zK~z}7?bc6ARACgy@y~6h87F7*Pc>sDq$%m-B9n*;BnS#@(+g-(5VY!z^fp@5YiL(V zn+UB89@GT zg{MxR2=H?LP3I~4H!5&t=6ry+iw&^w`duQk-~H8EKj`WzhMl^~{(WHm>o>5m@f{Qj zdlLbd8_g)4GqAb&0}Krx4v@>`z{lkkP_C4~@sT57ZM9{muD7p}&~G=kL3gaIz{N{b;Qqab;QGz0U~ypy%s!q6muJp_FQ3=I zgSP(0t!tpCw+!ywzMHNsi2igF9v!TOcm_Tt$S+J!wznnDVfN8n!hh!M$pFuvy^2!( l6GqupoB?D28Nh!J@Cz29XO@xpL&X39002ovPDHLkV1mSD+*JSo diff --git a/mods/fishing/textures/fishing_fish_cooked.png b/mods/fishing/textures/fishing_fish_cooked.png deleted file mode 100755 index da66c79de22d002deefd58ba4bec6fe111713e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmV-q1e^PbP)z~<&A z0NI@#S+5A~Rw@9bQmGI?pk6NnWU^TR?$zruzq#2b2>jOzv$MMPjv^HZ1U%dr?C+Q7 zS`C1g9`ADjQUebGFf}s`K+u-;AAbI=1rTj&@(BVhx|6c9c;B#DBkk7+r)Fn83*EJG z7vQstmlP2>`lOfCUj4)J2Lk2{3xxszca*JNsT2T9 zYiphb-+%PB3otS9CjdJE$@>{a=+x=c0Q`LYnjlpdeaULpOpJ|57S$sDK)@-N%aZ5C zA^@RK$P;;MYpW=pZAXM7_W<~ND=+L0hXHu`*{1-QzWRfVx5&DgDanEdR99v*70m+M zA6eimuB><>kEueH)Dw!TfbWmISp;y}4~bVKg(Cw|QNUk*{SAQb?jwTG+HJ|6NkJgh zmheQ}+ScY11Rfq71YmV_Ra{NA{IQcK0r-7<9DupGIRI`fEX(|~aAd3?+d(<(%I>8yZ1)UxB%hi2mqHqx$LPE zGU;^yI&|G%H$)eh9_SAgmGPbcYv5-*N#KmX-h*S58#R z!j)J{i=3%)=ekB-a~#QceQ)ZD%+?kFJv}`>;XpE(lpSjX=ieB10ai-#T-XsENOlTB z>+4bzZcI-C@XgH)>wW}h=f(Am%bMD9PhHlu>fO6O;XqP%_{D{DuCV)4$@67V$S0qB zQL^CO4`jUTt)fhYWW2=H@lZsvwO@gdf@1H4xR&Ty3V8#1b9**iG4~7Owx&OD1pWoRi*wn%R|-@B0000|5M9Jk5lkl$+9jgar9(%l z(9Ke7E2#~U#-<|8#cQ=O$>owHsvo1^_KjB$}=Z!1DBT zGzi51Aa?*D|Gogg=HM^@!M6?oXMzd<&gU-xEOvV3f`$mRLlXI!nP|D7YXWy}-*5qn ziG%vrVK<-eZ32*6a{x#tHT>Kyy$_l{6Nua-?3%!aBZc)NQdq530T^G&190*5F#sOT z3*m!8e)oRIRN(kcL%f@4K`8~&ES^;F6L ze6(#5_*xc$ihSP)Nmwyy8T=F~|FGHBl#SjlNI$q|0J1G@v!#XC@_qaO0Oc)Bx&eDd zTWx9WukIAl>47I>qXu9(DcxLT;78oNdf5Q@E#2!!#~$xZ0{ihD*@MFB$)z+h P00000NkvXXu0mjfPQMlJ diff --git a/mods/fishing/textures/fishing_particle_baitball.png b/mods/fishing/textures/fishing_particle_baitball.png deleted file mode 100755 index f861b3ad5c8ba7859d623b6ddf4a7faf4faeb813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqY)RhkEoOKp{s@7sn8Z%e{S$Tnvgl%hB0`$`njxgN@xNAl9V(w diff --git a/mods/fishing/textures/fishing_particle_baitball_shark.png b/mods/fishing/textures/fishing_particle_baitball_shark.png deleted file mode 100755 index 0224abe7f70c72d27e0e9bd794519fe9c8aba7fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~n;^f8Ny{<)t3aU~PZ!4!iOb0e2lyibD*ktG`u|`5 z)W3e6V;wq@e|*{-fgo}16;ZZh`&RZ8usRA}{=a_eu0sV$XS3KqpnF0<$2*{ukAW-? z5Zn#xmFRQW$aIXaZrR}td9G^8ZCN>eDG5Mu?72U~11IIE$dE2CpuG&9u6{1-oD!M< Difc;l diff --git a/mods/fishing/textures/fishing_pike_cooked.png b/mods/fishing/textures/fishing_pike_cooked.png deleted file mode 100755 index b311d24257fe99d4e89a3146939c531e24ed3840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcmV>P)y$tGhp_4jOyxYaQ*sqFn|7hFg-o3P}J1afNR&T6};cx-X7L7$C3Tl1B(_d z0^{T3$@SXW+5~~}@^Wzb^5uX1UTafr4i^SSv*JLYva&K9WC4sDH*O>uO-xJ_tnKaF zw?TaW>eZ_S7ihV!CWp?>PO#^x&0zaWZx;swC3o-MO)`oRGjD5a1HHYyNjD4(3?#_K zxWB$Ehq}5t@aq1+k^aGZ!5i;>n*9^u;^~6e*QKSU;O5PnX)Rk?LMHwF;MT2M1=&3? zGztzMd;y&L>NNQ5*io=<$154!xpSvTb)dPq8T9q_{V!eE(At#4?q{}x6JMSQ2u=o0 zZQr^Pyx)B)Su1j<_z;NyEYEYWY}vBJ8-|C61Dp3ho5RMA2f>jKj)Bb^IzYqX!1@on zPlXScR%C^^HTMYA*ViXXwq(f?aOKJs@OWoi4(HBa03EH%!NYBsIBE%}j!QUAw@`2c8R4?W23a z(AY!uUn{xQ>+ zRNDA_oIxWOif2LSPmv(7 ze0lKq!NEbWb4&35Z_f8+h4u?EVhtnvCnrN!jEszgiKw9=*-2fzcrkfD?x^M*fjLfb&fkm9-5Dqk#R9n=16wh`ONY3-V=RFDhSHM*$W}QMY>&Uq;?1uV-AZ|UE zD>(qpPcM5^0i8Hwx};BUB>-0Pd#d$*=nAOcCT})B0GMA$18~=P^myNU3JAHGnFgSK zb%UQ0M+Yaq?}~2<+L2GBlK>dQg8-ZzUwrwT=+A(VKHNV8Fgi9uC*-T^ivY}|$_ik6 zx8(TELi81o&Lz)6s-N4De^=2@fp{jfAf!^8J4*npE$;*H`tsgY1Mx}0w<=YS*Rm0?vRL;+0*FP)ojLg$Z6%m75i5@|9`T#EU+u)TeAq zdU_}QKB#gs+vYcq$4)}dtH~cMAe07m^72BycC{7}Tea6gB8^)Wuts%Vk_uI-pR6KA}wKM$R;oBEoEM7G{oX1`9!}No8#hz3X qE;m`A;>0+qnbA-p$55Io?6O?0GG^tP7hGk#P u9>YV<4ejyCCcHf#1b+N``||@ABSXt^p<8LGXC4A=VeoYIb6Mw<&;$S`-$up& diff --git a/mods/fishing/textures/fishing_pole_perfect_simple.png b/mods/fishing/textures/fishing_pole_perfect_simple.png deleted file mode 100755 index bf7ea94f35ef01ab1a04f1fc0a3e2dc9a68984e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|^5N4e8lX)pnkiEpy*OmP~hlsG0Lg*BaOrX#OPZ!6Kh{MT${{Oc>?7*bf#>l3# zL*+_|cVN@A)5oQGK)~jY6qw$wS8mL=Uf{sf$LalMi+_Ciw733$d$?4?Pnqfc?e%&R z8uJf3)je=dSWv^q{qtb7(4||?H%yTKr|7U^j^sW?hR;7=KmRQ$0R;EZ1AM-&@OjJLIht9kT8Sdwp#-XZi9~|8IIiLc)%Uz$IIKFanH$VEPe8$RU3>lg2@wvNtE&z;GccU{T$CM`RJ9rCHwI5vKbLh* G2~7Yq*m>3f diff --git a/mods/fishing/textures/fishing_pole_perfect_top.png b/mods/fishing/textures/fishing_pole_perfect_top.png deleted file mode 100755 index ce6292f5de47e6a0218e008b10ec52d11c4f3078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r)EAj~ML;ne^XWH0gbb!ETLAtEfLe^fj42T&-%)5S3);&5_`f}qE#Uw@9P|9^8a z&8_BBPtS@=K0M4kZn6fi8Uooj1l)G`Qe!8@x|mO*^uPyg_KF{-AG9m>q?&NGRZ3O- zt@+Qv&*-P;x#yGoy*{-=f$Tk230D}M&oDAPS-`b_t^Kbypj`}}u6{1-oD!MGhlU@Bhh*-+%sWM-@D0i|6JCE_D9<$ISB*#8f%+BaC09KByik~F!;ZTD zkL^Qi?S42j*iPNw{_6+V7E|k-Uu`|g`^tG3GJkokoo|}^2IwIMPgg&ebxsLQ0PK5x ABLDyZ diff --git a/mods/fishing/textures/fishing_pole_wood_back.png b/mods/fishing/textures/fishing_pole_wood_back.png deleted file mode 100755 index bf92d7e67c0213df0da7275352d3a8ac90d8bd38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?mg6a-nKSN%J#zW>{g zT(_Vz$w?9k2Co>zf=o9Q7xlUwT*2%nYw)TekiF-_u7=*;+LrbM>*MX+D>!QY8(%7B zG=A*C-?&|Vf8Pgzgv3P2hl(G*-#vWsRYip*14C;cKhJ94H$6bx7(8A5T-G@yGywpz Cu1aqJ diff --git a/mods/fishing/textures/fishing_pole_wood_bottom.png b/mods/fishing/textures/fishing_pole_wood_bottom.png deleted file mode 100755 index dd065bd868fc388be2de10ec96f02e115a7b04b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r)EAj~ML;ne^XWH0gbb!ETLAtEd-kQL_H0u;*eba4!cIGmiKAZVdk`0u#-{`dFF z-Ga^}CrKn2ylMz!@3CrV4dH!X|406zqQZ%T7PC0qWepA$H!fT(&;0M(fm0VXB%WnH z`1w~_*@mT}@~2w`$DOJlHA|K=+T9bBW14SYEB8?Gz>k+NKX5TJI9(K(F3nkS3urHc Mr>mdKI;Vst0Kz*=`v3p{ diff --git a/mods/fishing/textures/fishing_pole_wood_deco.png b/mods/fishing/textures/fishing_pole_wood_deco.png deleted file mode 100755 index 4708ff89f77e294d9272ac551c945b657052b592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)VGd000McNliru-v|^F8z4-Nc_;t?0Yynf zK~z}7-IqT~#6T2>zY&FGCB=$p5xdo1v9l0@y|tB|^W2wFV9S}mBSoApgQ~=jk7rIMwf4e}4 zyOvEZPW$7)qRIWKfj08LR(~70|7Ss0IWLOh`wWR90Lrp7YHoELaLu{@HIO8U1~?w= z{<`qyZftbV^zGdk|ESI883t0AQY<3&QebngOXzmD5< iHX1lBaJ^ym?!XsBw}uaYw0i&m0000!QbdV->&zAz>hyaKY!q2WZ+~H`VqYRh$qk{22WQ%mvv4FO#ospM9csH diff --git a/mods/fishing/textures/fishing_pole_wood_simple.png b/mods/fishing/textures/fishing_pole_wood_simple.png deleted file mode 100755 index d4d9026ae40e1b484fa321985f6a79516137d64b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|^5N4e8lX)pnkiEpy*OmP~hlsEYqyO^%8-YU4JY5_^A`ai3zLA$nQKZejCv4rq zy<1yP<|d{-<>-6Jq{f%fUa2-gi7s!;%P_mmB+FG)8&h0Jd8kF;u{QirzD3w1uEY0Ei z?#%Jqod12_omrm$Ab7s#^#*1Au1C4^U-mJ6=UTVj`eE?rcYZGSpB3$8EHFR6@uAAr z7uy)`-_l+hHSu`5!f7M!3D0*{Z2c#))|BCJgTe~DWM4fED4U4 diff --git a/mods/fishing/textures/fishing_pole_wood_top.png b/mods/fishing/textures/fishing_pole_wood_top.png deleted file mode 100755 index 2f3b4e56287ff2f9a84afe6d1d42dcbf94ff9747..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r)EAj~ML;ne^XWH0gbb!ETLAtEdzqEsav1r&<&ba4!cIGmiKAb8}~sz1lo_rJK1 z>sIrrr)R|_A0B2NH(7&M4T0<%0&Y8esj-t{UCbv@dfVGd000McNliru-v|^F93t(&j>7-|1Di=i zK~z}7&DUROmSq?Q@ZUSPblW$bbAOPv*+7R%Y&KUZ4JxE_gN`}~Jc)=PJP^v0j>3~L zDhPt4=+8kXB2g(6*oma+YFTb`4s6=o=Eml1|8(E>cJSFxefP=D`#kUa@IKdb z-Pe6RNkv5kn46meB_$TNQnwlDrrYX30?;hB+X;Wr?aBwiQV4Sb4tjy$t&AAj_ zJ8=xW_0iW!aUgK_?p+XbRaF%j8yf?;TrTs$!omWWn3wlpIa&odr5NK>{3}-bwoSA57XvpY6jJCEm@JN0tg?En~ z1)rY!3M?+JAXX9d*qvMW@@beMmxGa&Hn ztFI@}^;ByLm;V?_R{M$h`S~K_Kx=Dj27#ugri>yUY->s3z@9yU5=K=f)!l4KNWZG3a`?GzU00yhQ*2EgY(|B}G1TemXa zFs>VYMvRE~?c2AD1c9#haK;lOq5k*nc|7Efec;+(q5lsI{R1uyj3m&Mlfsl-vbsmC z-DyNBMs&-?xA$><%2xxzG3fp5O2CuPgae7o8rv z9KKvnjGaqh-C7gK)Z6j=d=>N*Cc#|$@Tz_3BM?HUT}(+*)A_=?7ogHQ2zGAmZ7c#m zor2Pla)1r3EnrKr9psxfM@LH^z|^A$U~j1(%vL{vu~R3LbQ4(7q4Jpkg_cMnpKk_l z-%NvCrYRO#m8?}_=YJO!QI zUEulDvzY&d#UDB+eFTOtUJ3B}RRv`8S zDk`{e?M_rMB~hA~o7~(#GcL}Fkb;P-cGTGnm$@^{_nq&2XO3~sv7aMgpU3|TM1Q*B z^vXF0V4Ve^m=*xkbq&DI`w!;tVqoR!B?mAbj{&%I`#J#2ol}C`3i82V1i(_K?EuQM z1R(qJ)f{LB%&&Z4ZEM2;+}cP_ zfg^&Xxw;O(@XZSV7E}YrE^jJRk}V%Ubwx8K@RWfn7l+$^{Z7;#%3ZHrJTI|czam;l zVpV+~fCmpBYkJ8!jU@Gyfzj|g8bo14o$b-~OZl!V0H%2kfU^QQ4m3MdL&o`93!If| zmnIEyzJX+e8r@GuY%TvqVK`S6QRK!tU$a1wL|X0ARMb4mr0VT0Aw^luIb^Epw=+h( zV_>1x)ECcGkSJuQ!8Iy|suJV|6^9c{(?a$|-a292NHw;i_Q^O?mD@Swv;42BLf;F5 z$yTzj*=ikZ2F&j|qqD0Q9Ka-(m{vuhF_yW|dB#MVCIFO$Ff{1)jNc6G9qlt6=?l~; oC;D2ReP_L0zxo36&v(Z^0FUL@&19Qy6#xJL07*qoM6N<$f&=m$LI3~& diff --git a/mods/fishing/textures/fishing_trophy_label.png b/mods/fishing/textures/fishing_trophy_label.png deleted file mode 100755 index d48f8ff9ffdf34d0ac717cb0059fcb8fa50e99f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?wrQjo-U3d5r^MiU&z}Kz~g!`y6K=H zYa&-zDl^Y%0UfqZ=V`ng33VRtKIi()p5>MnWF*?E?9jl#$i%`Spa5cgz1>tiU+962 z7{jb>>zopr013)L AQvd(} diff --git a/mods/fishing/textures/fishing_trophy_plank.png b/mods/fishing/textures/fishing_trophy_plank.png deleted file mode 100755 index dc4aba59f8f7619da62506ce28a1b919a0087544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)#bbLy}1=!fsW^f4>)kt=kU@4kJ5#WcmPERp4D-;`%5v=yFq zEs`)o6a}P7gg8#Hn9uOEYw+VwzYNHr!~V%^g#7glUd^X{)8Sa5sT-tef})rp2?^p5 z`p&j#@!OxP!FSNjJzT%S&GiC#mLo}$GrH3W#dwS~%aDh-e_Diq-Z-+z8JvN-LfwpdwRF{?D|Z!+$Lg%8w#C)e0;f}U{#+dJ zq3m$424rya=^K3W#dXi1t_~>o2W&Sb=JP40MR76ZXRfCc;?W3h9|zyT``bTIKHOnC z9b-N%kmp&C{dIbE#uc3zgb-t#=l!{<6!`hqcZ0fVj>Y2apyhs#ZMj1dLa+S}ZwM9Q zI7Zt>{i%+2JKV1yhIi98;PYbg!d15YeVqi(W3QgN03+>IgAm7{{p0M?`xvtznK64002ov JPDHLkV1l 200 then - self.object:set_hp(199) - elseif self.object:get_hp() > 200 then -- leave dirt to see whats going on - self.object:moveto({x=pos.x+(0.001*(math.random(-2, 2))),y=pos.y+0.003,z=pos.z+(0.001*(math.random(-2, 2)))}) - elseif self.object:get_hp() < 199 then -- no rain here, let's get outa here - self.object:moveto({x=pos.x+(0.001*(math.random(-2, 2))),y=pos.y-0.001,z=pos.z+(0.001*(math.random(-2, 2)))}) - elseif self.object:get_hp() == 0 then - self.object:remove() - end - else -- check if there's dirt anywhere (not finished) - local check_group = minetest.get_item_group - local goal_01 = check_group(minetest.get_node({x = pos.x + 1, y = pos.y-0.4, z = pos.z }).name, "soil") - local goal_02 = check_group(minetest.get_node({x = pos.x, y = pos.y-0.4, z = pos.z + 1}).name, "soil") - local goal_03 = check_group(minetest.get_node({x = pos.x - 1, y = pos.y-0.4, z = pos.z }).name, "soil") - local goal_04 = check_group(minetest.get_node({x = pos.x, y = pos.y-0.4, z = pos.z - 1}).name, "soil") - - local goal_1a = check_group(minetest.get_node({x = pos.x + 1, y = pos.y+0.6, z = pos.z }).name, "soil") - local goal_2a = check_group(minetest.get_node({x = pos.x, y = pos.y+0.6, z = pos.z + 1}).name, "soil") - local goal_3a = check_group(minetest.get_node({x = pos.x - 1, y = pos.y+0.6, z = pos.z }).name, "soil") - local goal_4a = check_group(minetest.get_node({x = pos.x, y = pos.y+0.6, z = pos.z - 1}).name, "soil") - -- if there's dirt nearby, go there - if goal_01 ~= 0 or goal_1a ~= 0 then - self.object:moveto({x=pos.x+0.002,y=pos.y,z=pos.z+(0.001*(math.random(-2, 2)))}) - elseif goal_02 ~= 0 or goal_2a ~= 0 then - self.object:moveto({x=pos.x+(0.001*(math.random(-2, 2))),y=pos.y,z=pos.z+0.002}) - elseif goal_03 ~= 0 or goal_3a ~= 0 then - self.object:moveto({x=pos.x-0.002,y=pos.y,z=pos.z+(0.001*(math.random(-2, 2)))}) - elseif goal_04 ~= 0 or goal_4a ~= 0 then - self.object:moveto({x=pos.x+(0.001*(math.random(-2, 2))),y=pos.y,z=pos.z-0.002}) - else -- I'm lost, no dirt - self.object:moveto({x=pos.x+(0.001*(math.random(-8, 8))),y=pos.y,z=pos.z+(0.001*(math.random(-8, 8)))}) - end - end - end - look_whats_up(self) - end, -}) - --- Bait Worm Entity -minetest.register_craft({ - output = "fishing:bait_worm_entity 8", - recipe = { - {"default:dirt"}, - {"default:dirt"}, - } -}) - ------------------------------------------------------------------------------------------------ --- GETTING WORMS ------------------------------------------------------------------------------------------------ --- get worms from digging in dirt: -if fishing_setting.settings["new_worm_source"] == false then - minetest.register_node(":default:dirt", { - description = fishing_setting.func.S("Dirt"), - tiles = {"default_dirt.png"}, - is_ground_content = true, - groups = {crumbly=3}, - sounds = default.node_sound_dirt_defaults(), - after_dig_node = function (pos, oldnode, oldmetadata, digger) - if math.random(1, 100) <= fishing_setting.settings["worm_chance"] then - local tool_in_use = digger:get_wielded_item():get_name() - if tool_in_use == "" or tool_in_use == "default:dirt" then - if fishing_setting.settings["worm_is_mob"] == true then - minetest.add_entity({x = pos.x, y = pos.y+0.4, z = pos.z}, "fishing:bait_worm_entity") - else - local inv = digger:get_inventory() - if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then - inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - end - end - end - end - end, - }) - -else - -- get worms from digging with hoes: - -- turns nodes with group soil=1 into soil - local function hoe_on_use(itemstack, user, pointed_thing, uses) - local pt = pointed_thing - -- check if pointing at a node - if not pt or pt.type ~= "node" then - return - end - - local under = minetest.get_node(pt.under) - local upos = pointed_thing.under - - if minetest.is_protected(upos, user:get_player_name()) then - minetest.record_protection_violation(upos, user:get_player_name()) - return - end - - local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} - local above = minetest.get_node(p) - - -- return if any of the nodes is not registered - if not minetest.registered_nodes[under.name] - or not minetest.registered_nodes[above.name] then - return - end - - -- check if the node above the pointed thing is air - if above.name ~= "air" then - return - end - - -- check if pointing at dirt - if minetest.get_item_group(under.name, "soil") ~= 1 then - return - end - -- turn the node into soil, wear out item and play sound - minetest.set_node(pt.under, {name="farming:soil"}) - minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5,}) - - if math.random(1, 100) < fishing_setting.settings["worm_chance"] then - if fishing_setting.settings["worm_is_mob"] == true then - minetest.add_entity({x=pt.under.x, y=pt.under.y+0.4, z=pt.under.z}, "fishing:bait_worm_entity") - else - local inv = user:get_inventory() - if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then - inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - end - end - end - if not minetest.setting_getbool("creative_mode") then - local tool_name = itemstack:get_name() - itemstack:add_wear(65535/(uses-1)) - if itemstack:get_wear() == 0 and minetest.get_modpath("invtweak") then - local index = user:get_wield_index() - minetest.sound_play("invtweak_tool_break", {pos = user:getpos(), gain = 0.9, max_hear_distance = 5}) - minetest.after(0.20, refill, user, tool_name, index) - end - end - return itemstack - end - - - -- didn't change the hoes, just here because hoe_on_use is local - minetest.register_tool(":farming:hoe_wood", { - description = fishing_setting.func.S("Wooden Hoe"), - inventory_image = "farming_tool_woodhoe.png", - on_use = function(itemstack, user, pointed_thing) - return hoe_on_use(itemstack, user, pointed_thing, 30) - end, - }) - minetest.register_tool(":farming:hoe_stone", { - description = fishing_setting.func.S("Stone Hoe"), - inventory_image = "farming_tool_stonehoe.png", - on_use = function(itemstack, user, pointed_thing) - return hoe_on_use(itemstack, user, pointed_thing, 90) - end, - }) - minetest.register_tool(":farming:hoe_steel", { - description = fishing_setting.func.S("Steel Hoe"), - inventory_image = "farming_tool_steelhoe.png", - on_use = function(itemstack, user, pointed_thing) - return hoe_on_use(itemstack, user, pointed_thing, 200) - end, - }) - minetest.register_tool(":farming:hoe_bronze", { - description = fishing_setting.func.S("Bronze Hoe"), - inventory_image = "farming_tool_bronzehoe.png", - on_use = function(itemstack, user, pointed_thing) - return hoe_on_use(itemstack, user, pointed_thing, 220) - end, - }) -end