From ce8852a0a7a0ed0352c15bb91d85a0b4eabd2dfd Mon Sep 17 00:00:00 2001 From: MistUnky Date: Thu, 2 Jun 2022 13:47:48 -0400 Subject: [PATCH] remove tr&itemdrop, keep UI and add mobs and sumpf --- mods/mobs/README.txt | 77 +++ mods/mobs/api.lua | 567 ++++++++++++++++++ mods/mobs/depends.txt | 2 + mods/mobs/extra.lua | 116 ++++ mods/mobs/init.lua | 438 ++++++++++++++ mods/mobs/sounds/mobs_fireball.ogg | Bin 0 -> 22342 bytes mods/mobs/sounds/mobs_sheep.ogg | Bin 0 -> 18659 bytes mods/mobs/textures/extra/LICENSES.txt | 30 + mods/mobs/textures/extra/mobs_cheese.png | Bin 0 -> 5991 bytes mods/mobs/textures/extra/mobs_chicken.png | Bin 0 -> 1377 bytes mods/mobs/textures/extra/mobs_cow.png | Bin 0 -> 3299 bytes mods/mobs/textures/extra/mobs_egg.png | Bin 0 -> 672 bytes mods/mobs/textures/extra/mobs_milk.png | Bin 0 -> 241 bytes mods/mobs/textures/extra/mobs_omelet.png | Bin 0 -> 166 bytes mods/mobs/textures/mobs_cooked_rat.png | Bin 0 -> 239 bytes mods/mobs/textures/mobs_dirt_monster.png | Bin 0 -> 1249 bytes mods/mobs/textures/mobs_dirt_monster_back.png | Bin 0 -> 1205 bytes mods/mobs/textures/mobs_dungeon_master.png | Bin 0 -> 1999 bytes .../textures/mobs_dungeon_master_back.png | Bin 0 -> 1985 bytes .../textures/mobs_dungeon_master_fireball.png | Bin 0 -> 2316 bytes .../mobs_dungeon_master_fireball_back.png | Bin 0 -> 2095 bytes mods/mobs/textures/mobs_fireball.png | Bin 0 -> 404 bytes mods/mobs/textures/mobs_fireball_animated.png | Bin 0 -> 623 bytes mods/mobs/textures/mobs_meat.png | Bin 0 -> 411 bytes mods/mobs/textures/mobs_meat_raw.png | Bin 0 -> 426 bytes mods/mobs/textures/mobs_oerkki.png | Bin 0 -> 239 bytes mods/mobs/textures/mobs_oerkki_back.png | Bin 0 -> 224 bytes mods/mobs/textures/mobs_rat.png | Bin 0 -> 920 bytes mods/mobs/textures/mobs_sand_monster.png | Bin 0 -> 1016 bytes mods/mobs/textures/mobs_sand_monster_back.png | Bin 0 -> 990 bytes mods/mobs/textures/mobs_sheep.png | Bin 0 -> 1476 bytes mods/mobs/textures/mobs_sheep_naked.png | Bin 0 -> 1348 bytes mods/mobs/textures/mobs_sheep_old.png | Bin 0 -> 909 bytes mods/mobs/textures/mobs_stone_monster.png | Bin 0 -> 1300 bytes .../mobs/textures/mobs_stone_monster_back.png | Bin 0 -> 1352 bytes mods/mobs/textures/mobs_tree_monster.png | Bin 0 -> 8426 bytes mods/mobs/textures/mobs_tree_monster_back.png | Bin 0 -> 17545 bytes 37 files changed, 1230 insertions(+) create mode 100644 mods/mobs/README.txt create mode 100644 mods/mobs/api.lua create mode 100644 mods/mobs/depends.txt create mode 100644 mods/mobs/extra.lua create mode 100644 mods/mobs/init.lua create mode 100644 mods/mobs/sounds/mobs_fireball.ogg create mode 100644 mods/mobs/sounds/mobs_sheep.ogg create mode 100644 mods/mobs/textures/extra/LICENSES.txt create mode 100644 mods/mobs/textures/extra/mobs_cheese.png create mode 100644 mods/mobs/textures/extra/mobs_chicken.png create mode 100644 mods/mobs/textures/extra/mobs_cow.png create mode 100644 mods/mobs/textures/extra/mobs_egg.png create mode 100644 mods/mobs/textures/extra/mobs_milk.png create mode 100644 mods/mobs/textures/extra/mobs_omelet.png create mode 100644 mods/mobs/textures/mobs_cooked_rat.png create mode 100644 mods/mobs/textures/mobs_dirt_monster.png create mode 100644 mods/mobs/textures/mobs_dirt_monster_back.png create mode 100644 mods/mobs/textures/mobs_dungeon_master.png create mode 100644 mods/mobs/textures/mobs_dungeon_master_back.png create mode 100644 mods/mobs/textures/mobs_dungeon_master_fireball.png create mode 100644 mods/mobs/textures/mobs_dungeon_master_fireball_back.png create mode 100644 mods/mobs/textures/mobs_fireball.png create mode 100644 mods/mobs/textures/mobs_fireball_animated.png create mode 100644 mods/mobs/textures/mobs_meat.png create mode 100644 mods/mobs/textures/mobs_meat_raw.png create mode 100644 mods/mobs/textures/mobs_oerkki.png create mode 100644 mods/mobs/textures/mobs_oerkki_back.png create mode 100644 mods/mobs/textures/mobs_rat.png create mode 100644 mods/mobs/textures/mobs_sand_monster.png create mode 100644 mods/mobs/textures/mobs_sand_monster_back.png create mode 100644 mods/mobs/textures/mobs_sheep.png create mode 100644 mods/mobs/textures/mobs_sheep_naked.png create mode 100644 mods/mobs/textures/mobs_sheep_old.png create mode 100644 mods/mobs/textures/mobs_stone_monster.png create mode 100644 mods/mobs/textures/mobs_stone_monster_back.png create mode 100644 mods/mobs/textures/mobs_tree_monster.png create mode 100644 mods/mobs/textures/mobs_tree_monster_back.png diff --git a/mods/mobs/README.txt b/mods/mobs/README.txt new file mode 100644 index 0000000..7f1524d --- /dev/null +++ b/mods/mobs/README.txt @@ -0,0 +1,77 @@ +=== MOBS-MOD for MINETEST-C55 === +by PilzAdam + +Inroduction: +This mod adds some basic hostile and friendly mobs to the game. + +How to install: +Unzip the archive an place it in minetest-base-directory/mods/minetest/ +if you have a windows client or a linux run-in-place client. If you have +a linux system-wide instalation place it in ~/.minetest/mods/minetest/. +If you want to install this mod only in one world create the folder +worldmods/ in your worlddirectory. +For further information or help see: +http://wiki.minetest.com/wiki/Installing_Mods + +How to use the mod: +See https://github.com/PilzAdam/mobs/wiki + +For developers: +The API documentation is moved to https://github.com/PilzAdam/mobs/wiki/API + +License: +Sourcecode: WTFPL (see below) +Grahpics: WTFPL (see below) +Models: WTFPL (by Pavel_S, see below) + +See also: +http://minetest.net/ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + + +===================================================== +LICENSES FOR CONTENT IN TEXTURES/EXTRA: + +mobs_egg.png and mobs_chicken.png: + CC-BY-SA 3.0, Author sapier + URL: https://creativecommons.org/licenses/by-sa/3.0/legalcode + +mobs_cow.png: + WTFPL, rinoux + +mobs_milk.png and mobs_cheese.png and mobs_omelet.png: + + The MIT License (MIT) + + Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. diff --git a/mods/mobs/api.lua b/mods/mobs/api.lua new file mode 100644 index 0000000..f118774 --- /dev/null +++ b/mods/mobs/api.lua @@ -0,0 +1,567 @@ +mobs = {} +function mobs:register_mob(name, def) + minetest.register_entity(name, { + hp_max = 100+def.hp_max, + physical = true, + collisionbox = def.collisionbox, + visual = def.visual, + visual_size = def.visual_size, + mesh = def.mesh, + textures = def.textures, + makes_footstep_sound = def.makes_footstep_sound, + view_range = def.view_range, + walk_velocity = def.walk_velocity, + run_velocity = def.run_velocity, + damage = def.damage, + light_damage = def.light_damage, + water_damage = def.water_damage, + lava_damage = def.lava_damage, + disable_fall_damage = def.disable_fall_damage, + drops = def.drops, + armor = def.armor, + drawtype = def.drawtype, + on_rightclick = def.on_rightclick, + type = def.type, + attack_type = def.attack_type, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds, + animation = nil,--def.animation, + follow = def.follow, + jump = def.jump or true, + + timer = 0, + env_damage_timer = 0, -- only if state = "attack" + attack = {player=nil, dist=nil}, + state = "stand", + v_start = false, + old_y = nil, + lifetimer = 600, + tamed = false, + + set_velocity = function(self, v) + local yaw = self.object:getyaw() + if v ~= nil and yaw ~= nil then + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + local x = math.sin(yaw) * -v + local z = math.cos(yaw) * v + self.object:setvelocity({x=self.object:getvelocity().x, y=self.object:getvelocity().y, z=self.object:getvelocity().z}) + end + end, + + get_velocity = function(self) + local v = self.object:getvelocity() + if v ~= nil then + return (v.x^2 + v.z^2)^(0.5) + end + end, + + set_animation = function(self, type) + if not self.animation then + return + end + if not self.animation.current then + self.animation.current = "" + end + if type == "stand" and self.animation.current ~= "stand" then + if + self.animation.stand_start + and self.animation.stand_end + and self.animation.speed_normal + then + self.object:set_animation( + {x=self.animation.stand_start,y=self.animation.stand_end}, + self.animation.speed_normal, 0 + ) + self.animation.current = "stand" + end + elseif type == "walk" and self.animation.current ~= "walk" then + if + self.animation.walk_start + and self.animation.walk_end + and self.animation.speed_normal + then + self.object:set_animation( + {x=self.animation.walk_start,y=self.animation.walk_end}, + self.animation.speed_normal, 0 + ) + self.animation.current = "walk" + end + elseif type == "run" and self.animation.current ~= "run" then + if + self.animation.run_start + and self.animation.run_end + and self.animation.speed_run + then + self.object:set_animation( + {x=self.animation.run_start,y=self.animation.run_end}, + self.animation.speed_run, 0 + ) + self.animation.current = "run" + end + elseif type == "punch" and self.animation.current ~= "punch" then + if + self.animation.punch_start + and self.animation.punch_end + and self.animation.speed_normal + then + self.object:set_animation( + {x=self.animation.punch_start,y=self.animation.punch_end}, + self.animation.speed_normal, 0 + ) + self.animation.current = "punch" + end + end + end, + + on_step = function(self, dtime) + if self.type == "monster" and minetest.setting_getbool("only_peaceful_mobs") then + self.object:remove() + end + + self.lifetimer = self.lifetimer - dtime + if self.lifetimer <= 0 and not self.tamed then + local player_count = 0 + for _,obj in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 20)) do + if obj:is_player() then + player_count = player_count+1 + end + end + if player_count == 0 and self.state ~= "attack" then + self.object:remove() + return + end + end + + if self.object:getvelocity().y > 0.1 then + local yaw = self.object:getyaw() + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + local x = math.sin(yaw) * -2 + local z = math.cos(yaw) * 2 + self.object:setacceleration({x=x, y=-10, z=z}) + else + self.object:setacceleration({x=0, y=-10, z=0}) + end + + if self.object:getpos() ~= nil then + if self.disable_fall_damage and self.object:getvelocity().y == 0 then + if not self.old_y then + self.old_y = self.object:getpos().y + else + local d = self.old_y - self.object:getpos().y + if d > 5 then + local damage = d-5 + self.object:set_hp(self.object:get_hp()-damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + if self.object:getpos() ~= nil then + self.old_y = self.object:getpos().y + end + end + end + end + + self.timer = self.timer+dtime + if self.state ~= "attack" then + if self.timer < 1 then + return + end + self.timer = 0 + end + + if self.sounds and self.sounds.random and math.random(1, 100) <= 1 then + minetest.sound_play(self.sounds.random, {object = self.object}) + end + + local do_env_damage = function(self) + local pos = self.object:getpos() + local n = minetest.env:get_node(pos) + + if self.light_damage and self.light_damage ~= 0 + and pos.y>0 + and minetest.env:get_node_light(pos) + and minetest.env:get_node_light(pos) > 4 + and minetest.env:get_timeofday() > 0.2 + and minetest.env:get_timeofday() < 0.8 + then + self.object:set_hp(self.object:get_hp()-self.light_damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + + if self.water_damage and self.water_damage ~= 0 and + minetest.get_item_group(n.name, "water") ~= 0 + then + self.object:set_hp(self.object:get_hp()-self.water_damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + + if self.lava_damage and self.lava_damage ~= 0 and + minetest.get_item_group(n.name, "lava") ~= 0 + then + self.object:set_hp(self.object:get_hp()-self.lava_damage) + if self.object:get_hp() == 0 then + self.object:remove() + end + end + end + + self.env_damage_timer = self.env_damage_timer + dtime + if self.state == "attack" and self.env_damage_timer > 1 then + self.env_damage_timer = 0 + do_env_damage(self) + elseif self.state ~= "attack" then + do_env_damage(self) + end + + if self.type == "monster" and minetest.setting_getbool("enable_damage") then + for _,player in pairs(minetest.get_connected_players()) do + local s = self.object:getpos() + local p = player:getpos() + if s ~= nil and p ~= nil then + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist < self.view_range then + if self.attack.dist then + if self.attack.dist < dist then + self.state = "attack" + self.attack.player = player + self.attack.dist = dist + end + else + self.state = "attack" + self.attack.player = player + self.attack.dist = dist + end + end + end + end + end + + if self.follow ~= "" and not self.following then + for _,player in pairs(minetest.get_connected_players()) do + local s = self.object:getpos() + local p = player:getpos() + if s ~= nil and p ~= nil then + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if self.view_range and dist < self.view_range then + self.following = player + end + end + end + end + + if self.following and self.following:is_player() then + if self.following:get_wielded_item():get_name() ~= self.follow then + self.following = nil + self.v_start = false + else + local s = self.object:getpos() + local p = self.following:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist > self.view_range then + self.following = nil + self.v_start = false + else + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if p.x > s.x then + yaw = yaw+math.pi + end + self.object:setyaw(yaw) + if dist > 2 then + if not self.v_start then + self.v_start = true + self.set_velocity(self, self.walk_velocity) + else + if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then + local v = self.object:getvelocity() + v.y = 5 + self.object:setvelocity(v) + end + self.set_velocity(self, self.walk_velocity) + end + self:set_animation("walk") + else + self.v_start = false + self.set_velocity(self, 0) + self:set_animation("stand") + end + return + end + end + end + if self.object:getyaw() ~= nil then + if self.state == "stand" then + if math.random(1, 4) == 1 then + self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/180*math.pi)) + end + self.set_velocity(self, 0) + self.set_animation(self, "stand") + if math.random(1, 100) <= 50 then + self.set_velocity(self, self.walk_velocity) + self.state = "walk" + self.set_animation(self, "walk") + end + elseif self.state == "walk" then + if math.random(1, 100) <= 30 then + self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/180*math.pi)) + end + if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then + local v = self.object:getvelocity() + v.y = 5 + self.object:setvelocity(v) + end + self:set_animation("walk") + self.set_velocity(self, self.walk_velocity) + if math.random(1, 100) <= 10 then + self.set_velocity(self, 0) + self.state = "stand" + self:set_animation("stand") + end + elseif self.state == "attack" and self.attack_type == "dogfight" then + if not self.attack.player or not self.attack.player:is_player() then + self.state = "stand" + self:set_animation("stand") + return + end + local s = self.object:getpos() + local p = self.attack.player:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist > self.view_range or self.attack.player:get_hp() <= 0 then + self.state = "stand" + self.v_start = false + self.set_velocity(self, 0) + self.attack = {player=nil, dist=nil} + self:set_animation("stand") + return + else + self.attack.dist = dist + end + + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if p.x > s.x then + yaw = yaw+math.pi + end + self.object:setyaw(yaw) + if self.attack.dist > 2 then + if not self.v_start then + self.v_start = true + self.set_velocity(self, self.run_velocity) + else + if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then + local v = self.object:getvelocity() + v.y = 5 + self.object:setvelocity(v) + end + self.set_velocity(self, self.run_velocity) + end + self:set_animation("run") + else + self.set_velocity(self, 0) + self:set_animation("punch") + self.v_start = false + if self.timer > 1 then + self.timer = 0 + if self.sounds and self.sounds.attack then + minetest.sound_play(self.sounds.attack, {object = self.object}) + end + self.attack.player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=self.damage} + }, vec) + end + end + elseif self.state == "attack" and self.attack_type == "shoot" then + if not self.attack.player or not self.attack.player:is_player() then + self.state = "stand" + self:set_animation("stand") + return + end + local s = self.object:getpos() + local p = self.attack.player:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if dist > self.view_range or self.attack.player:get_hp() <= 0 then + self.state = "stand" + self.v_start = false + self.set_velocity(self, 0) + self.attack = {player=nil, dist=nil} + self:set_animation("stand") + return + else + self.attack.dist = dist + end + + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + if self.drawtype == "side" then + yaw = yaw+(math.pi/2) + end + if p.x > s.x then + yaw = yaw+math.pi + end + self.object:setyaw(yaw) + self.set_velocity(self, 0) + + if self.timer > self.shoot_interval and math.random(1, 100) <= 60 then + self.timer = 0 + + self:set_animation("punch") + + if self.sounds and self.sounds.attack then + minetest.sound_play(self.sounds.attack, {object = self.object}) + end + + local p = self.object:getpos() + p.y = p.y + (self.collisionbox[2]+self.collisionbox[5])/2 + local obj = minetest.env:add_entity(p, self.arrow) + local amount = (vec.x^2+vec.y^2+vec.z^2)^0.5 + local v = obj:get_luaentity().velocity + vec.y = vec.y+1 + vec.x = vec.x*v/amount + vec.y = vec.y*v/amount + vec.z = vec.z*v/amount + obj:setvelocity(vec) + end + end + end + end, + + on_activate = function(self, staticdata, dtime_s) + self.object:set_armor_groups({fleshy=self.armor}) + self.object:setacceleration({x=0, y=-10, z=0}) + self.state = "stand" + self.object:setvelocity({x=0, y=self.object:getvelocity().y, z=0}) + self.object:setyaw(math.random(1, 360)/180*math.pi) + if self.type == "monster" and minetest.setting_getbool("only_peaceful_mobs") then + self.object:remove() + end + self.lifetimer = 600 - dtime_s + if staticdata then + local tmp = minetest.deserialize(staticdata) + if tmp and tmp.lifetimer then + self.lifetimer = tmp.lifetimer - dtime_s + end + if tmp and tmp.tamed then + self.tamed = tmp.tamed + end + end + if self.lifetimer <= 0 and not self.tamed then + self.object:remove() + end + end, + + get_staticdata = function(self) + local tmp = { + lifetimer = self.lifetimer, + tamed = self.tamed, + } + return minetest.serialize(tmp) + end, + + on_punch = function(self, hitter) + if self.object:get_hp() <= 100 then + if hitter and hitter:is_player() and hitter:get_inventory() then + for _,drop in ipairs(self.drops) do + if math.random(1, drop.chance) == 1 then + hitter:get_inventory():add_item("main", ItemStack(drop.name.." "..math.random(drop.min, drop.max))) + end + end + end + self.object:remove() + end + end, + + }) +end + +mobs.spawning_mobs = {} +function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, spawn_func) + mobs.spawning_mobs[name] = true + minetest.register_abm({ + nodenames = nodes, + neighbors = {"air"}, + interval = 30, + chance = chance * mob_spawn_chance_multiplier, + action = function(pos, node, _, active_object_count_wider) + if active_object_count_wider > active_object_count then + return + end + if not mobs.spawning_mobs[name] then + return + end + pos.y = pos.y+1 + if not minetest.env:get_node_light(pos) then + return + end + if minetest.env:get_node_light(pos) > max_light then + return + end + if minetest.env:get_node_light(pos) < min_light then + return + end + if pos.y > max_height then + return + end + if minetest.env:get_node(pos).name ~= "air" then + return + end + pos.y = pos.y+1 + if minetest.env:get_node(pos).name ~= "air" then + return + end + if spawn_func and not spawn_func(pos, node) then + return + end + + if minetest.setting_getbool("display_mob_spawn") then + minetest.chat_send_all("[mobs] Add "..name.." at "..minetest.pos_to_string(pos)) + end + minetest.env:add_entity(pos, name) + end + }) +end + +function mobs:register_arrow(name, def) + minetest.register_entity(name, { + physical = false, + visual = def.visual, + visual_size = def.visual_size, + textures = def.textures, + velocity = def.velocity, + hit_player = def.hit_player, + hit_node = def.hit_node, + + on_step = function(self, dtime) + local pos = self.object:getpos() + if minetest.env:get_node(self.object:getpos()).name ~= "air" then + self.hit_node(self, pos, node) + self.object:remove() + return + end + pos.y = pos.y-1 + for _,player in pairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if player:is_player() then + self.hit_player(self, player) + self.object:remove() + return + end + end + end + }) +end diff --git a/mods/mobs/depends.txt b/mods/mobs/depends.txt new file mode 100644 index 0000000..70715c7 --- /dev/null +++ b/mods/mobs/depends.txt @@ -0,0 +1,2 @@ +default +fire diff --git a/mods/mobs/extra.lua b/mods/mobs/extra.lua new file mode 100644 index 0000000..414d5aa --- /dev/null +++ b/mods/mobs/extra.lua @@ -0,0 +1,116 @@ +function mobs_extra_register_sheeplike(name, hp, textures, textures_shear, sheared, fodder, biomes, mx, my, downer, chancer, amtp) + mobs:register_mob(name, { + type = "animal", + hp_max = hp, + collisionbox = {-0.4, downer, -0.4, 0.4, 1, 0.4}, + visual_size = {x=mx,y=my}, + textures = textures, + visual = "upright_sprite", + makes_footstep_sound = true, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:meat_raw", + chance = 1, + min = 2, + max = 3,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + sounds = { + random = "mobs_sheep", + }, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 80, + walk_start = 81, + walk_end = 100, + }, + follow = fodder, + view_range = 5, + + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == fodder then + if not self.tamed then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.tamed = true + elseif self.naked then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.naked = false + self.object:set_properties({ + textures = textures, + }) + end + end + return + end + if clicker:get_inventory() and not self.naked then + self.naked = true + if minetest.registered_items[sheared] then + clicker:get_inventory():add_item("main", ItemStack(sheared.." "..math.random(1,3))) + end + self.object:set_properties({ + textures = textures_shear, + }) + end + end, + }) + mobs:register_spawn(name, biomes, 20, 8, chancer, amtp, 31000) +end + +--mobs_extra_register_sheeplike("mobs:sheep", 5, {"mobs_sheep.png", "mobs_sheep.png"}, {"mobs_sheep_naked.png", "mobs_sheep_naked.png"}, "wool:white", "farming:wheat", {"default:dirt_with_grass"}) + +minetest.register_craftitem("mobs:egg", { + description = "Egg", + inventory_image = "mobs_egg.png", + on_use = minetest.item_eat(1), +}) + +minetest.register_craftitem("mobs:omelet", { + description = "Omelet", + inventory_image = "mobs_omelet.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:omelet", + recipe = "mobs:egg", + cooktime = 3, +}) + +mobs_extra_register_sheeplike("mobs:chicken", 5, {"mobs_chicken.png", "mobs_chicken.png"}, {"mobs_chicken.png", "mobs_chicken.png"}, "mobs:egg", "farming:wheat", {"default:dirt_with_grass"}, 0.5, 0.5, -0.4, 8000, 4) + +minetest.register_craftitem("mobs:milk", { + description = "Milk", + inventory_image = "mobs_milk.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem("mobs:cheese", { + description = "Cheese", + inventory_image = "mobs_cheese.png", + on_use = minetest.item_eat(13), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:cheese", + recipe = "mobs:milk", + cooktime = 17, +}) + +mobs_extra_register_sheeplike("mobs:cow", 5, {"mobs_cow.png", "mobs_cow.png"}, {"mobs_cow.png", "mobs_cow.png"}, "mobs:milk", "farming:wheat", {"default:dirt_with_grass"}, 3, 4, -1.0, 9000, 1) diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua new file mode 100644 index 0000000..5756ff6 --- /dev/null +++ b/mods/mobs/init.lua @@ -0,0 +1,438 @@ +mob_spawn_chance_multiplier = 1.0 + +dofile(minetest.get_modpath("mobs").."/api.lua") + +mobs:register_mob("mobs:dirt_monster", { + type = "monster", + hp_max = 5, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1.9, 0.4}, + visual = "upright_sprite", + textures = {"mobs_dirt_monster.png", "mobs_dirt_monster_back.png"}, + visual_size = {x=1, y=2}, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + damage = 2, + drops = { + {name = "default:dirt", + chance = 1, + min = 3, + max = 5,}, + }, + armor = 100, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 2, + on_rightclick = nil, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 40, + punch_end = 63, + } +}) +mobs:register_spawn("mobs:dirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 3, 31000) + +mobs:register_mob("mobs:stone_monster", { + type = "monster", + hp_max = 10, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1.9, 0.4}, + visual = "upright_sprite", + textures = {"mobs_stone_monster.png", "mobs_stone_monster_back.png"}, + visual_size = {x=1, y=2}, + makes_footstep_sound = true, + view_range = 10, + walk_velocity = 0.5, + run_velocity = 2, + damage = 3, + drops = { + {name = "default:mossycobble", + chance = 1, + min = 3, + max = 5,}, + }, + light_resistant = true, + armor = 80, + drawtype = "front", + water_damage = 0, + lava_damage = 0, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 14, + walk_start = 15, + walk_end = 38, + run_start = 40, + run_end = 63, + punch_start = 40, + punch_end = 63, + } +}) +mobs:register_spawn("mobs:stone_monster", {"default:stone"}, 3, -1, 7000, 3, 0) + +mobs:register_mob("mobs:sand_monster", { + type = "monster", + hp_max = 3, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1.9, 0.4}, + visual = "upright_sprite", + textures = {"mobs_sand_monster.png", "mobs_sand_monster_back.png"}, + visual_size = {x=1,y=2}, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1.5, + run_velocity = 4, + damage = 1, + drops = { + {name = "default:sand", + chance = 1, + min = 3, + max = 5,}, + }, + light_resistant = true, + armor = 100, + drawtype = "front", + water_damage = 3, + lava_damage = 1, + light_damage = 0, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 39, + walk_start = 41, + walk_end = 72, + run_start = 74, + run_end = 105, + punch_start = 74, + punch_end = 105, + }, +}) +mobs:register_spawn("mobs:sand_monster", {"default:desert_sand"}, 20, -1, 7000, 3, 31000) + +mobs:register_mob("mobs:tree_monster", { + type = "monster", + hp_max = 5, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1.9, 0.4}, + visual = "upright_sprite", + textures = {"mobs_tree_monster.png", "mobs_tree_monster_back.png"}, + visual_size = {x=3,y=5}, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + damage = 2, + drops = { + {name = "default:sapling", + chance = 3, + min = 1, + max = 2,}, + {name = "default:junglesapling", + chance = 3, + min = 1, + max = 2,}, + }, + light_resistant = true, + armor = 100, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 2, + disable_fall_damage = true, + attack_type = "dogfight", + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 24, + walk_start = 25, + walk_end = 47, + run_start = 48, + run_end = 62, + punch_start = 48, + punch_end = 62, + }, +}) +mobs:register_spawn("mobs:tree_monster", {"default:leaves", "default:jungleleaves"}, 3, -1, 7000, 3, 31000) + +mobs:register_mob("mobs:sheep", { + type = "animal", + hp_max = 5, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1, 0.4}, + textures = {"mobs_sheep.png", "mobs_sheep.png"}, + visual = "upright_sprite", + makes_footstep_sound = true, + walk_velocity = 1, + armor = 200, + drops = { + {name = "mobs:meat_raw", + chance = 1, + min = 2, + max = 3,}, + }, + drawtype = "front", + water_damage = 1, + lava_damage = 5, + light_damage = 0, + sounds = { + random = "mobs_sheep", + }, + animation = { + speed_normal = 15, + stand_start = 0, + stand_end = 80, + walk_start = 81, + walk_end = 100, + }, + follow = "farming:wheat", + view_range = 5, + + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == "farming:wheat" then + if not self.tamed then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.tamed = true + elseif self.naked then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + self.food = (self.food or 0) + 1 + if self.food >= 8 then + self.food = 0 + self.naked = false + self.object:set_properties({ + textures = {"mobs_sheep.png", "mobs_sheep.png"}, + }) + end + end + return + end + if clicker:get_inventory() and not self.naked then + self.naked = true + if minetest.registered_items["wool:white"] then + clicker:get_inventory():add_item("main", ItemStack("wool:white "..math.random(1,3))) + end + self.object:set_properties({ + textures = {"mobs_sheep_naked.png", "mobs_sheep_naked.png"}, + }) + end + end, +}) +mobs:register_spawn("mobs:sheep", {"default:dirt_with_grass"}, 20, 8, 7000, 3, 31000) + +minetest.register_craftitem("mobs:meat_raw", { + description = "Raw Meat", + inventory_image = "mobs_meat_raw.png", +}) + +minetest.register_craftitem("mobs:meat", { + description = "Meat", + inventory_image = "mobs_meat.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:meat", + recipe = "mobs:meat_raw", + cooktime = 5, +}) + +mobs:register_mob("mobs:rat", { + type = "animal", + hp_max = 1, + collisionbox = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}, + visual = "upright_sprite", + visual_size = {x=1,y=0.5}, + textures = {"mobs_rat.png"}, + makes_footstep_sound = false, + walk_velocity = 1, + armor = 200, + drops = {}, + drawtype = "front", + water_damage = 0, + lava_damage = 1, + light_damage = 0, + + on_rightclick = function(self, clicker) + if clicker:is_player() and clicker:get_inventory() then + clicker:get_inventory():add_item("main", "mobs:rat") + self.object:remove() + end + end, +}) +mobs:register_spawn("mobs:rat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 7000, 1, 31000) + +minetest.register_craftitem("mobs:rat", { + description = "Rat", + inventory_image = "mobs_rat.png", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.above then + minetest.env:add_entity(pointed_thing.above, "mobs:rat") + itemstack:take_item() + end + return itemstack + end, +}) + +minetest.register_craftitem("mobs:rat_cooked", { + description = "Cooked Rat", + inventory_image = "mobs_cooked_rat.png", + + on_use = minetest.item_eat(3), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:rat_cooked", + recipe = "mobs:rat", + cooktime = 5, +}) + +mobs:register_mob("mobs:oerkki", { + type = "monster", + hp_max = 8, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1.9, 0.4}, + visual = "upright_sprite", + textures = {"mobs_oerkki.png", "mobs_oerkki_back.png"}, + visual_size = {x=1, y=2}, + makes_footstep_sound = false, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + damage = 4, + drops = {}, + armor = 100, + drawtype = "front", + light_resistant = true, + water_damage = 1, + lava_damage = 1, + light_damage = 0, + attack_type = "dogfight", + animation = { + stand_start = 0, + stand_end = 23, + walk_start = 24, + walk_end = 36, + run_start = 37, + run_end = 49, + punch_start = 37, + punch_end = 49, + speed_normal = 15, + speed_run = 15, + }, +}) +mobs:register_spawn("mobs:oerkki", {"default:stone"}, 2, -1, 7000, 3, -10) + +mobs:register_mob("mobs:dungeon_master", { + type = "monster", + hp_max = 10, + collisionbox = {-0.7, -1.0, -0.7, 0.7, 2.6, 0.7}, + visual = "upright_sprite", + textures = {"mobs_dungeon_master.png", "mobs_dungeon_master_back.png"}, + visual_size = {x=1, y=2}, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + damage = 4, + drops = { + {name = "default:mese", + chance = 100, + min = 1, + max = 2,}, + }, + armor = 60, + drawtype = "front", + water_damage = 1, + lava_damage = 1, + light_damage = 0, + on_rightclick = nil, + attack_type = "shoot", + arrow = "mobs:fireball", + shoot_interval = 2.5, + sounds = { + attack = "mobs_fireball", + }, + animation = { + stand_start = 0, + stand_end = 19, + walk_start = 20, + walk_end = 35, + punch_start = 36, + punch_end = 48, + speed_normal = 15, + speed_run = 15, + }, +}) +mobs:register_spawn("mobs:dungeon_master", {"default:stone", "default:mossycobble"}, 2, -1, 7000, 1, -50) + +mobs:register_arrow("mobs:fireball", { + visual = "sprite", + visual_size = {x=1, y=1}, + --textures = {{name="mobs_fireball.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.5}}}, FIXME + textures = {"mobs_fireball.png"}, + velocity = 5, + hit_player = function(self, player) + local s = self.object:getpos() + local p = player:getpos() + local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z} + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=4}, + }, vec) + local pos = self.object:getpos() + for dx=-1,1 do + for dy=-1,1 do + for dz=-1,1 do + local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.env:get_node(pos).name + if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then + minetest.env:set_node(p, {name="fire:basic_flame"}) + else + minetest.env:remove_node(p) + end + end + end + end + end, + hit_node = function(self, pos, node) + for dx=-1,1 do + for dy=-2,1 do + for dz=-1,1 do + local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + local n = minetest.env:get_node(pos).name + if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then + minetest.env:set_node(p, {name="fire:basic_flame"}) + else + minetest.env:remove_node(p) + end + end + end + end + end +}) + +dofile(minetest.get_modpath("mobs").."/extra.lua") + +if minetest.setting_get("log_mods") then + minetest.log("action", "mobs loaded") +end diff --git a/mods/mobs/sounds/mobs_fireball.ogg b/mods/mobs/sounds/mobs_fireball.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bdc4ac21f73d35b865ae6295067d0730a88bb6e8 GIT binary patch literal 22342 zcmeFZcUV(R_b9qU?@}X84ZS5wXfH*4LzONq5P~3t8miJ11P#>?iZtmcy@Ui4X(Ebr zrKv~fm&vvRMX{r-O`+01{Y zQU*t0@Mryxo(l7W1>tc{zZZa+!_-ufs;cU0nlMF^D4($C^Zq_zK1z)Fgu#zPsBgr1 z&oCc-Q!AK5M5H%96s8Sf{WGJIp^*~=-~dMeB>6-?;!vL9KtB&_~P3C*X8Sy@AJRE zQ2q~<0Tc+!2j?UooRc-NmwgZhXa5c1hX9CEls$YPOygv@#)I(V;B_*>cqq?m?6cK@ ze<6W^b^t&jB?rz)4uR0HM@)oiI*04egj>&mpkP4ce_i5#(+ju}sWRXE00M`4mgjG< z5Ws0gD>#gJ{;UKJAXdDF6+bEdG^WE>{HDA?xMZRy)v-jOqoJ_mHwJ?qiM;}GsWe

18YCLOFxWpGTQzt`Jh0&dCrOsmLckZ_`P!&03`AMrs99yev|SaDz45UDGw_) zkE)Hp88=GbBi%JxAHNX~5~O0dCP>8@tt;2Vn{>lzl94X#78}$6Jzif^y(Bu7+?>*GD^|ouh(X3L+QUlig+` zpU=cSpUF6LFy+4z*1tIi0GTG~H&5o_(vc5J6KxDR{~-8ZoO4e2LAK;jwyfnXS?j0p zv2Bf0pESmWOzbqQ9Yoy5MItAlJ`P%L6Pi8~XrHMlpSd<4*Y-GG$7D~e!km6n;HZ!m(AlB#I1yuG0@`&irFXr#T}r6-PX8p`1pZZ z&Mb`s*V!K@;{RjuM721~V~!orH!QlwDE7TMpo71(weWk37||d##;c zgRgve4sJPNob3Y|L8;OjU{&DyYIH5<<4@qe6-kwNCQ!YAU}t53UCZAB&S&fY&;o$T z0^KjP^WQ{QDw06^i9CD`KJv-fPT1N3?N;y#lfRl;saRY~zH<~@=<#nA1sZq$#s6;B zuoecTFer`P4i>MZGG-u?o4CP|6B^dw$Qjm3|Ki#PGN?&VzXwi5x*a4k+Q^`GVPXtI zyUkqlA>hIH?li%f9sfLwm6OTu?=-250H6Uicg@FzZJF_O3l0Fw-4FoQ&7nI~e~UxH z`t~LuEPhKGAcC}z?rDLn;qekQDh9fzJ!UAlA)}B`$Zd7Mg*3bgEQW`EORU-zme z2MOBAHWovLV4FgXH#n{|*IpNF;{y$j2yjSsp1tAQ(s0oJCAqrTF;cf1n?I{T~>Ixq;YV07`Czfuja8nG1ZH z00EWEuy@Jiwca)c{AVIP7Z|`_yVDKAJ<><)HbZ^GxdGtRSpZO`c}6DXR?@pcMaRU@ zmq|ztCD7(#ld9%7G*e2>`hSu?gaE!n;Qz-%(MtFHr*@9(KfRX!>A(E{S)0WMQd^w> z(MQS5D3_!Rb&716NG97s@mqob2PcSi10wRRY+jCqg@|Fgj-uSPd@PA-NJMhfR8L}q zkkH3E>=o5{SdvoPOAtX|8@LthX>O^SJZu`GO|&FP3dC9<*yg2f(F(SKTM2|)bbxL2 z0nxw=6U7o&MsFZhQ|V2(C4CC(MQN3^^X%0Ig&n|JagyrbH&HJNauu5^ z*!%sk0|Fcz2-1R#cSge?79<=_pY#mGR9^TaRsf~14WQ&i4HU%CP|qsPgNF&f5z_(s zkRa&|GAN8eSN7GS;UJm8k{F&?HOKD`1JJw#aVF;Vua1hO9Q$GL4MqpJoLtT1pEnd4 zmas*`zdLI3^6Y=V%kkSp23=8xr78&0Zk|2(UNX4GAKMuO2p71FHoav;nnic9d&w?HrKRdl;8rzs2Hf(NAH8K@nDX*S2 zXP0WlSo**WhRrR?5;&CD8j{nMYYKDo4Mz&?d2lMoh;-yhoi~n#4@5zcod5vL0%}4W z!l?Lo9zYvqmc;~caq}GNGeMz_N>z22pS99fDANJ}1L7!uDscdYtPodJu4N_+u%^TU z51-7Mb>1c%Wj_66z>VFI!;n7#BZ-1=YHPnpQCQkck|-^AaD0yf*8zaTz%nSl<^XBw z%A!|qH@^d%0%B51NF4)#-`#q^cK|T6ClHDLE84opPoNBqP0cKO4 zVrzeJ1>4N@s!)= z8-3!7y7Mi9bhY`@bci~%!a`;tb)m}vBa|Ql zr>0{1difhu_%ft1jwref6-Re!nI@Zhp(CFg#8)Pxw(lh(7QFf^=RKY%`UeY4wZS+- z?j>pbux_%kurZvy_t7YfWz-?qeDL{`?1$?&PH||PMaWNjy@o4on3=a(<<0)pFzz1_ z9DQk#=DIVJEr=d|z1c2u11YFf_jATb9>ufnyvy16?b8y^RLvo69rNQ8YzXs$UmExM zWih&kO{YG#GL-~vFWxZTJJ){8aI|))5VZ+NG99)I_Tk|Go?!x1yimZhyMDKpLrs`R zln0Xi zaJFTE_7t&xVfT6Fj@J^g-y{gyrEpIBLrGhOS$}%WC1-MYnpRFr6f{-thuiop(_kBJ z)@$$6_s&$JA3pc;_05EpUux5Ph@abLVk28Wuf;a1JWxTIUNvK*c2zl89$>lkx9_s= zhyE@7w-ysD;21pWecoaGaOb;HiW zqF_<{;b-~1e4#SFzP?beZq?w8pbe`=yq!c}%e+K>02bNb+tO6)>A6V8w$`A9jjWCP zTaa>%HdEPt z`S%g*fd_SBVQ``BE{B+aXEV|Q&m2nD3j9~|&ChAqu~5pkH<~lVwq^HD{Cv*Jt5p2M zwNQptI@7kn=T&<9=Vkwv1?#$Bu^VyKlwT(cYVDol1`TA7+-&tS8@$%;?&x=g#jKRu z?8PYrG0CA7Gb90VJIAsEuL;q$_^X9WQA^jG5TZ}4u*_5ky7UlqAQssCXk!Tnj)1Ue zNq7?koK)fiB?0*1!|{!R(f||(qXhl0wfCkT*$lMIHsS+A=L@x>v{L2^ozgIN%&n^Q zWVFh3Fn-F^fR1=8oPkawMpV4M&@o3~o$^OcdyXp-2?CCLfBW6IBmUG`=(A0J^!0BV z)9S^WLvb2bp;sn;gr0T!D{XM0+F&UnC$(+r*&}$;*DuL-vHNLb#eIPr8d|jGpXc;z zc1@w**(PLRk4qZB7JrbqTn^IRcur@;q*4{cimNMD8K1|juUtrMt3867W&0 zaU6g;QOVLcx}7m3P~;Fv87hDV(!%;@e19BxLC=a!8QkxO59~HWQK%r{Cpfwy4iFFv z`5B%1cBX4qI$K9OK0h(yR7|E^@QwS=;5X}R--$2%mG(;QM(J|mS)c5U_4(G;isvUB z7fem~#9BL|Gym$k+`jP`8^=zGo)}UhxQ+QA<+yJxTT@xYxzsVTc$^<+bGhF2nZ;4O zSH!2G86n)~2J^Kqo09!lBl4y(-aXDlsjJ~zn;oaxvhohVzE|?43)q5m@Bj0C*+k-X z{%}vvcm#hqEXo6igo3=`<;%_ns~vFcbF$)@z==jp!+A@B+d@1=f(Cnw$!P9CXf38N zz{4{ht>GUTAi#>OR5bN6=y$TSWkHkftDQb`SO*i5lmmQpId(X;P-c<|l~#!XM2w9^ zsPzfu9yI!Nf>U5OiGTa226?)6c049SO{TN*%nRD}p_`hag8N50d+QvfoGr^;cl?46Kk|;!&-5z?cCWv2b-%Iu z+;?in`|+zCDl7AZc^4n&Tm2MayE}?;YMy-@F0Q8xA;`Dl2OyV%5JwZ1p8&BBre8{P z@bPxHhjt{&;Mm!5?4Xd~7ZMWk0wLjxlP6$Xdwc_(;Bc!xGDn*#wb+R|*GrPZS=%;3 zNeIfEe|9pQ_4rDb?QR}}x+#_{OhMgUWM4rTf%!0#>f<=}`v|luljBTvdoS^k6=i{)> zf%yTL=48(S`Tkyhm&`LX(gbEc61yk@j22fVNQBlb=4x{ZLwiqVpLlU4&HmUnY)E`|GZ!-LSb_f=Yt zp479{dTx5jmicd27F&Lq%Ir78_xbm3@7{_lnT&bgp8jgUP9>@E^@86}W#B*|K%!=2 zIeS8!!;U8VJuuu4coAyvsP%x^It1Of&6;fIKyJUtt%=jqS_ zQxQ_g_<_1mc#wL59UF4N{;+UuL7 z1+4NOZvRTa>K^NRW`2QB>4CoPAYBx`RbLqK%3nr_55B&?f4-*rsJ{sBq>O91JJWS$ zgD;)oL7z^n)Ic_uiJH!1=}Q8Fs~2LM=M&>k8UTl%MOIc5fKB%EWr|8LVCTH3sD0Ki`4yPF>H6|AY-O2Ph)Ktc#?QtV z6^Zd9DY#I-R@?yYSX;_~Mlc1c=ZcoF>*H5RiJY)U^U^hVE&Gd;ivv7Nc>8Dx@x{{v z##RQC_B?4KCf$l0;wJHLb4OL;!t1fwrTKEFIXYmn&P~>DT6Eq?AANNae|NubYb?^{ zr3F>)mpzrc)F4+*H{r38)IIKEt=CQq@0WUczqSyv??A6v_$dT(7Y6iacILkxe3WubfxhvvKWMC5 zum8|R=!G}r1?RbRkJ#&vmaXAGy}$TckD0h#i%@?H5M)w!2NVa7XTVvBFg6SXoTLr3G`C}>TAU|@TQRm05&~$n3OS%SC7DRH zNwhIB@j}4L#d)0!(tI6X9_^!ke$i2@HSuPs#keXp{7H)>_k<4T(?|WTZ^iX6$>D+7 zJ=>EnE!%x3y zw{dX3<%m=bdvbHu$uKMX8ixpC+nK|UZN`xHzJa$|NS)g`U+bNmrwezEi;c?5+v{A9 zadvCWduI>1#cfw)FU)Uh=!B=BYBYWt%QSjVe2UVK2bdD7A3yx1ymyQKyvAwC;Edh_ z)Gr&EiZ7QApF4V-Pfi*3%hEwzC5 zl{-`^>P9M7qD_Pc$^+04RSu`ztV>$~lJbi_0*-(k-O0}5T$_(XPo+pdagu1)YRmF9 zBz#=dR_)r;k5Oj=C0q{HQl;5kH9XP?D1Uq|F-?I&;k~$a0fCY=*TbstcvwGGtG_*_ zvWY+OIM(Oxsrg>|UB7G8*znfUhna&HPK64rU4QAgO+4}}#k3&KT;}NNmAvMe`F?}r zuG<5-%?0Z-+%ikQ50lffBo@upLuVeYoF`uKIcC3=e3=!pBslusWq(pK-Y2*0s%_h#d|&;&4}63qw=Qk z!T$b+S&+wx1BHb}g+*e7`T8=GAV*46iU}nE8??>?|N3>-i*5j?&cWpK+fY-s5(tDX zmDSEMu)o~SsNZ;?*t4N>)BSjLjoGA89>rA5$e>Dr&*ed#=@yo*Xlrs~}I)TmmIzJcUIt*qKc<(!uq<0;~ z^CfP-PpA(WCi>G{$0alPVm(g>vkG!_yAjX83#qGfV%9f!E()~LTMMBMh!pf%z(BFJ z6QyL<16wGqB}J}9s{|B6p-u=yrGaKW&T%SXT9KrP>(@T7@8oI-;iJX8;ipV zrU|w}F7>B(@@lyX*Jbq^w6&~jho(}V_>R>*x_bR&xZh1>ftrI;2SP=9c03ivIafD6 zP$wg`xvwEIkcPUr6*-0Hfp+qdjU8iWWb6y-e4_$a@0RL*3;nu69Q405eVJw>2TPXc zd1TylVZ3F*qa;-7W=p)3)q}t52C_X z#^nVu_4_Hwq_!RNLGt!<8L=KadP-$Whg|TZ1*f)O&swG}T8=CrLig)xS_Q$;d}} zu;Xy-zP{`XImrY}<7|=Al`vdrV5RiefItIYR|g7NS$v8_c4%y^$C|Y0ibT{`qR|85 z+|s5ZCP)%2VL+E(X7GmqDVBpEU|`~P+6!-QVHw~il6Iuw>)tZv_PG|dq_(rWyDCm? z7e2Dnus8H&I947y&NT|+jZ%IZk9_P59Fx=K z;`c(L?GtS+^F&17`Q9JDI)$kBzP*UKp>x9FW4wP5k!Ur94d=!F0V-PcQ-d}pl!jRX*@M@(|E=SbO00}BnTR$C5*hc9oUcnv zhX`nZy&Lt`5b$h^&92A0GTnIQZK=tr)hwF#9f{_c)DZVjtHV8YQhytFRq7luAWxM( z)Eb(;_axvRO2gGT#Y%RrhRG@%Q~UY(u|py@hmgU&Vgm38 z1J{QmF7ai00B4jZe&}c?Kw@W5w{*0nqh#gfS5R=2)%tQb4hIG(K-zZ>-U~@jk$WUP7z52To=v{CmD+gTY%o>uo;o~9G3oP_ z1LbbUILM+_XrTADx1nd*kqyj|m4P@JHYK8@*psY?`z;t{b4!Mp=%&{(J;SVd{5H#yI`JbS6i&#!&kPYgeZ&Zo!!t2E`Oil zIVMZw{_^9p#om1Pe(>BqNbXpS zr-zY{+0swRHAz(f<9frZjF}Bs(~o18M}8f`DS-j|boDyf{XW4 z5L*yDje;!c7nvpP(Q3lZf`wnk7xW%{aX5KKU`ih1fZm{ZXl~Hx^%-SThcCKX=}EYv z;ZZ4?62ZcBnqw<}t1rI7q(wXsoq>7cPbZp)P)$vYg^w;O`@G@!>lWV?I41j{yn9PX zXnlSS@0hHd>^1bde7}^=bG}*ZWb5@Q!cEriTrOA_@1J)bb%h7_*s0$S*1z1ohhKd@ zzmTq$J?(ge?c92cIJ!}=4a0jM-8mMrP(?kqH+BNv{4IP_8EVBD$#kjc<-RDqVFJtHpH}z-*8tTk zCmiODDW&uXG*09 ziCk^|22gVCU`;_)=6z#%Zr2_*0jelJzheuNhm>Xqg5%f;XmZ@DnLj8jn*}U21YNRO253>rB{zh? zV=U)|oKk_T;hy*bNrtJ*Pzi?$3sZ~401q$H0M5WFt<1zWZ9s!sJJ2G4HUif219I{B zMEulKQnCkLh9qiI<*$hqPV`3)kidg!37&zV~~0rpa29T zOrX)5hU5gkLiHLe*t9_Ar?feVNJvQNp^Vpg8}W&lVp4H!GFGII)~!0FO2sy}&>Sr_ z&zvGzzTaRidLq@5^WH{w_xg9A_vweOB);F&^*Q8;%r6r@D-r*BXiT5q-(8J8M>AkO zfD-iADF}~;38m-9Ve8XE>?}`X*>6DVc>)@JPC5TT(}v|D_yqa1w8y_T@fi5xM)DAmtWwbaHG7IcmM{| zF4mahSw)=po|2!S1=RCGovdjog|%{uq7i>B)^#ag$lD_@od@dS*zBD35<W4_P5R4&dn`!JsKK$?nBE$u*B~Dk%w6l?LzIHA$Rtm}oy{l{s8KIdIc z9ehM?oqudzbx+T!vj_Y94CKK0-ib53msenI*ftG*Q`3_Vo9{mEcya9V3#`tu@^{d` zWgq(cj$BY!OjI{|e-XIkBDp5O0W9Cro|fSUy1Qz^Uc&})R_icRt97DFIvD>b1lhPb z*;)(R9^#4PZq#Z>&VWu^bE{~Pc`K)RCE!#dR@BJ^L6w*eq8%mADniRhPBJ7ixl)vB zDlEcHMhE@y@*x{xx9Ls-5G0Nl26Uu`9P1Sv;l;Ol2VeIe@p*~=lwYZps`5ADqkjIa zQWJQP=8jvfp!GB4h*Y$v-S8@Ep2_4?+--QDei>{)6Z6xUM(yy zOgvq9_HudLy*_<~X9EC|hy5Qt;R80we+jk1po?G zxXMWcIoK=T_w-H;R$R-a9aoR>z$?~zHjCERW9qRH9*v5k0<0o*gYFf=l28p##yw=`~_iKq9=v)mxy;2fro8F%{?+i^yX_s=b28lpbah_LEW z?!}s+=WUT}mxp~=YCmA>CjT0S^Gj-6j(*>~p)@AOA^RZ4bFj3S{f;@;7QSZvV07NX zP*c*)&mn&2KE^aV-*2(EI#*C2e{8)fe)up1aK|67lc52i4^W!f%>e%=++93UQmB}Rh5VvKT% z=ae|c!~|(ABUdqU`N5mpdu<2SWkS`4#gTP|=LBrXMwh!zd&tgxyE^w83+ap>JYCS%SYC5zjBaK&@B5HA+kgdCVmh_&e zeC!39w{G;!m{!wJo}+i>x3*_)*;1+z5#xlOLLvlhCz5>X+141zDk8oh#)P5l_~{13}CTE4%oAK<~9Q-4J zAEz7~(=o;r5u>yLmmXY|^kC&Ry44vm#~-4&DUyi@FG*k`PS*7_3wKyLD)|MeJ2Ge7 zzTNyH9&yx{rug3Bym2BDXp^!#YM2m1Eb_R%w(HrYH+Jlvmp2m75#t*n#3-q{Ca08CabW&s^ zbh@9^kboeQrAf2X#3N_s?Pu>yCLC9rZweTGCcV{uA5MOR9CcDUr_P`B<%P5w^A-0r zAB1*!C5*qlAS{tNjU~FNWbre?xn1cbzlXxL*pi{}g{a&U#}}`+dcUxa?7A4+%Z>T) zxpZXoUFF(=pfSzeUv}Id>q{NxjxJonc?NxPI@Nh>SG9G{~d0Q0wyOMXFn z;{L$$quCwJCqTC|Kp4v|EG!gFqbD-|3Bj2&0RaGDEP1^57LSZHF9jHxe@X($7N0un z4W4hP1fXd&S^x%%9H6z(no`ib^-P3HQd`QTLNv*sN*O9b%Nnu4TL0L(F3*(PuxdWT z&p#}o|H(65M&`4r^CR=iyEAFb$<-;r8{|vY)6n1*^V>#DPQ}VMk9xK6mgF7#)+bXr zm4%NkSo^A7C7E+#Q$VKH<^6Wt)-PGx$DQq`((gS9a#2R1?1Tvwsk(w#4gwfV)e2gf zM+E?q(r3Z>mh-k^Uh9%M&Hmw@iPr zC<5jcg1}+F<7@g!@rs1N(k;q2ezr=W>0^MD5u1H&GKVV(6g%K4F5@Hy47-C)gggYG zNwaxPiX%n6CI?Xh6SQJn=&=;c$pM;hYe;=fLjs1q5@RxsM?2b?z{yMrR6Bnm?pHND zXJ2bcKM0O$l77$^tj`_rCBE8{JEPGg*-eCE7fb_eH>h4W1Z7~-*N&V>{hUfLOXVLfwS?V$Vjwd#_*%{b;*fe5AP|xxr<8pIj;3%pZGj4_1Nl#i4*oZStNIk zvUCeAH>@(Wd%o=WYO%4>cyP`!!2(eapv(8!f@V@;ZTwpCxzHJYzGAkf^E_EvV(Qlt z2^bQ{Z#t@Jj5D_(5P$3NuejFPG%6Y)?WEV}K^#z}1Qa_-j0ZrI68lLYae3j|7flq)m;#jyCMA0V3kMfzKCmtQ{c=> zNqk?ma?i0%LbR#mwgOwD`}?i^+>M3y7Y}@5y>{wlo*F<-_y&CuLol1rl*10GxBX1d zkC(=XbX;Nvh(m`#B?%Tr_8udF4@}tM0RUS7&~g%Lq-J=wib_L`SXjlRf$K0IR#xy& z0=UtAy(AGUiGC7qK!cI60UDB#P+y6}O#!gB1G49(PsI6Ua}*_@9xqijLG%og_@i7M99I7hj@w;O=#4bwS@JzT z=<3g=xcuy2mDnpB(=fV@wiSetdjVr4W`SuJ=AZ>odkC|^J7H_IKIy)Wq-zR@*gDWc z##mbIcr*o=T{RU=HK4YW5f^*r&UW@j**0A-QWunlXkiBuW{IMZfy(k$gVfL;@yZxF z8$U~ZOGn;G6VpEX$)J;v*OA8kx@^m(DY-6m8#L3Q<3~?DGLNZ-m&=`;kG^=RVv+3n zt6c|!UH_1HIet05x)S=!gc_WgAr*Y&*4r@MOXk(zKD}RPST#U95~lbrDBO25us92x z@GV_KXfVs3y(+dE!#xIYK0B{s=5b#BJUjbKMoimky&F6MWu#AV0>Ib80Fkt^*%F-J z6}(Io&aV(hZ+7{5W@11;*5+WHKtVyR4PouP!mT}IAWKB=r4x+#O9suzmzZjX~Sgc{m%Huubew0 z6r;CIdQ`d8uHE^8gXjW`=&6?nRhD)(jdrDFo`e~78GFKh@b`4b@D^vqA0Ls`=`Im` ze8VE-yq%v~KOe9|o)`q;nSkrQ#}|HYN#oUA6JtwfV!ETh^hET734h@EO1~9Ih*sc+ zXzdRI>?XST`UVGSbh@}!$^cEo^`fh)^~9ZwX$pqkLneEYX3Hz5h>BPlQUV<&T`u5? z=4H|qV1dwVuI)v$A=}uPX?wSiUlh4kQ7N5s{a&6z?u=#s4{CHr@3kCB|id@o*KX%1PkUZ->2gnFs@C@C~fu=zfokqYZL{Ch;6#2cd*Oam@s*3I(Y*Gi4 z);jwgqY&Nu!pt7CjP~1p$4L}ai0E$nDzqMQNAG>~%;3!JL}pGw`MBn-IL8_0>Y}FX zfvp4?qt_{&t&1UBamDvxN&-FaOJ{EXLjEkqiavIl(&sv?rH@{DIlx0kG)#2B6 z1R#x4RsLm@;)9*1cINLMlJDR1IpnxhH2yj(J99Iv3{N|FtuNACv%F~`@O&q8aQPU| zmj&gMU+n`HW8Od(A7s6M+l4$E`}x3@rFjXWSxFc&X$XLOd#VW_;5i@K3e1%eW)9RM zCM$vImoAvUtWq!j*dQ*Z^dii@{7E03|uC=CHvcsY>67sdPKf@n;w>5uD_ay9| z@z`QYb!=sCtN-9+=fd9PjoqZIBs%Ynb~E|lO3&Meei`r65s6pfo>`rQa;Eyz=Qj%O z-A}u`Unf<2Xm%f39bj-#OF8t6VVZzgbG***=1RQ&uay8Ja<=;w@5ZohLkI*03jWjc zh`e~<)>`2?e7h|h)59j`qew7tD=9f^UQ+MJI%{C7Mz=4G(Ie2|E}gA~;Co32d4&PJkjn^H`|F__T-ikT8)<@m7-eMvaG? zthSwRzLK{SI(N~Z1l@jDH}U-b&1ebIn2_-*G;7kkY9Zvc%~S6Iu0!~sA6w5Ozg0!0 z)65$?g6QWIzBhLKU@}Z5tYfLcPiJKHuIPqQrCY?V?aJIeWg^_ICim`1oS^f~oTiC_=2&L)J9oA%eHv<2*on1QhvJqkKxBB!Lft*2sGQQi~={ zz?E)?44wk>n$SEHuPOwETRA^qu{ar1C|VhSAS<_3&MN9^ilcbM(X0c#OW8j!e6h;z z6=aXJ{^a{Z%2f1*+PB)7u}3Z58l(HFOPdkCKatN3f^QgkFMN{KB;N9M^11i{yXvMl z(x_Dkl}iA`RoP0Xi=!@HezT?LnsdgeZC|!nJ<~$>-51-()bNBw>O*33&8f2jQl@$V zGSGQZ3mZW2pJWVi5F=n=Bx8X83k2{@I_!k-;_D}~V@prwMjtOt&CM*#jLk2P@A;HY zXhtv#pS>)$8o|2=us*vP6DUo{s$pa%2du8lp4>m zVr#9mntHV58qO1AM4eTfMj}+5J*hmg$nRKD5x)PddQt^EvfIn7IP_4 zRxfz*YT!Fd6YiqZmK#qrr`}3a#b0*|`lTp~JyI#daAouE-gvz)Q()w9_e0h|^Uci5 zo?Qb>&oW!2>k=OXt*TadoBp8oB)qD*dhmku;&x;Gb3^5kPmZ}Cc?YZTW$-!pjd^ha zHl{&Qd3IpW=h?2S%VSx;*^S73|W(T;%Tp{K_kXQ1&2x``KJ%EHA=T3NR`SM3W2Ro zrgAix`^`j9)O{giT<#{RWXvP6MZc8k}w1QcT^Mo-BIXM|$k%FFRapaajIwJUaOs4LL zI`vFSIw0pR-}XtHPZf&))=I;%eOx}N{%QN?sNd}~7GL*|<;*4HE-W+UcRwO4me8;OaEYai)8yX5&|8McfX zwE_!VULM384E$4DD&DSf)^)wx(TI1Q5`YBLRJ8)US}SWK1Hs6voKrs&7;wdK=sIQ) z{Y_+a;b9ZAixUNktIpg#*C>YD0v{jSbl!BW6qv&G!$?rUZ&g(%h-&P7byKVhffuLe z$1cw<<(t3j{7dqsWz*}Y2D`@_UV5Hiy>3}vGpzR@rE8K@4m^AX^TXZ}4mvRJn4nr5 zee1`AUn9m*KPX2=SAdJEagGv#EAKKWB5ALH!&=WqE6uYF`y;-{r9dA#J zrykL{xn1q8+*$y6xAn;9%gYzV=+pZv3O*&hW2-xEk-tKW zyPCp^h>#cIJiy>919ZjbNIIY>(EX^Ty}cDzKTFUb7D!MnIH`EUhZA*y?1W%l!zE&fI8RSe647%^ z!&ZQw?xd=Wab#5yr9tT=GqcJlXmNzq+pP92^QE0nyPf%`gxOM^Uv)+{j1KC5Jh>XL zb>aszLAM9ONs(*sz3OzL(>RGwSouW=@@_Cu9mmc8u6-P`){!8BHF$W2c{4SUahi?L&I1zrWos@Wn2etMTQ4xS`pGKq&S&0Nh< zIDi|;tM2u3P}LQS&5>|9rSkwebYcG#v)-0PWV{&+M3nEdufg3AR&Di=Us}rqrqdFb zC`LZNuP+j3;|V%8zB!=T+L_~J%Qh>Qx|W6oT9?kT=2&~V`aeX&uyY}?23uPRwaA4TC=<|!%XZyUHV z^$q0L=tA&NiTvujIJH6)4nIjBjaAUpji1qes7aP?HfNc!RYf4#_e*UB?3!^L%_S;% zv-zlUve1w0Qt26S0@Xglb z9Qx!Rj%StGn3_;WzpOZ0KEManDu0{y`_rfhfzrke{N{u4RDmu;yiW{Go)4_ci9nj9 zzR`t`xJ|E5FGj4?_(HF&5s&vj|6+mKyNB$+y1UG-?X9D5-xQ=LdAvArb*I(djgw~; z)D)TnHb2J>BG|<&@%b_D`@Kgzy9LH+WT(!UAT1^~YE24|d^&*JQ+c*^HKhdtshfnh zRmNOCkDnUiagWxf!e;S9q~7IZN}Hfmk3%iw>KAfwC~AmbyzLEM2ut0ng-fS#vbUyq zLMSjxn)sr%&GmCNlX1G`v$a3jnQoeur`=Htfi`r3&#hdhYE1ili$El-DOUH+^ z$A3S*7%tunuW~IO==FX_)Ly&Jqk1@>g@i<%ByO~DhW-O zAL2-~$gy<^Tvk?f@pMtbcsR0J}KYq)*%cQE{D1hLv8O3%3| z$tfM}EMDn~@$WIbnG_J-5i8WZ@#N&rwKZ@3${ucGH@}Jaax0?c41L;1TUx*6@$R!R zMqSI-9W9L;EOxI#;Rn%gmDAuiH!gnEX-q7Z@nQD0mHbv5|9{3q>_ zrCs#mSnHT>y)du-X*+VMqY3MT{xeisw_f|Gtnc4h-`(=>8C3pJlf*e4R$3kFoL3*z zmeP|_I##wuJ-@KW2PLx~(j1Wg9ZOUWZsml38YY+*%GA`FqEum{22mg|395t!xCI76 z0sRzEGr+zzpt6NHIf;AQ;T=XoYQ>PC?W$j564I%PQXWDfo=S5iR_fzzTJh?=+v`~* ziB^@Y90tCZ!!GdB$|@DubDA9OyRa7w;yF)=F$$OMFGKrI;-*~pH4paG?{i^0TD#}C zREU2JuCa~?=spdn*@fk8#Qr>zsiQvP`R>Nj%@4aFE2Pt(T(9WAQm?EvsQLOHYcc=h zT277K1Ho12`GNsm-Q+F#s8w|P-0-sO+WG%IPppF|dT&o5fb1ics;umc25#!d&aL1R zG@G4M8lX|zdN5T{^$C*gv>h540fx_0f>V#!bl4z?B~~T8w1hMo5vjs2q%ve}chkE6 zxm4dYTHBE6tie}>C6@CZ=J-49_{@kI{G{L*cQ^CeS6^jSy`Zh4aGO!xgVh9uyCL0{ zqGwh|@)|$iVL)E`{Qe@@Ytkq?2RK|!vbYsvg63}`@wIT8$w~gXTz|5(uU)-gD_M_g+d(0!!eFLj z&$pa;^5i1sw0$;d?MOjI&+BOFZNC85qPPWIET7NRH1p#r-IC&!bI(t0z{R`4Ccfs} zbA7oZD@r`!a58FN^;`EAA#puy$3=d?Vj;$J*6l?eZMvZM3zbpw9cmic`y)Xkt0{V6 z{tSGxR~yO>i+JKE`|vNnv=;=hhNKyH=d06xnMuLFPayIDP?49KDgjy#7$X{h(M72e zZX*keP;|Q2n30@81rZ|kO;t>aur!IxN@7M)hfjT6VlmMPzMbFuw`l5wvom9 zB!p+x2t(2i?N7rxIq%?T3{_oAMiRwP+SrHZ+A&$UYORab_V&_6f7lXS)dR2)c44LE zK)Fp@t>n~rY8O&(e(J~5{k#1`UJ@2tE~YtRPd+UR$cJ~{{&N0a-iW?I>{W*~stzV5 zwXtW;F^5Hn=-bUxjcZ{eh`D>0;_{nnf4mn8C+IO@Nz!Kv z-yQEcI(%}erRViuk>!6P6~^yiA9#_@t~ZUDdE;wi>0@s|=R&rZUA2&Ls+98Nrc)g^ zQe_>~q7`YupS4kHR^_k_t*~OGfkvG}RmaQmynzYDCHt zEIp;DSJBxw0xFtR`&{Zyn8wj>9sQ(bFgKQ`vSqNv_WG`~V~07aY|;(y&?^x}to=Ik zL8gff*R|y-FpO?rR#!YhZno_QhV;mhcI@)d#MgB>IXN^9y2#Pa>9U(gD4>!@GQs?sPiy;FT717tos z9(MpQzOK>z)na)G0x6fF5AalX;Q9WNgN%A3Qq>`(8IX!0iu7b9E)k9CNQ<;7VHVmB zk_kl1(CqwAgDV1eZ~ND7PZ@hGl{11~3Ei6aR$R&QF#BVy=UZ=om&iSIVx4#?cC z8-F!tTc{>=o}2s52_ESc|JDjMvMyV@0zY>8&9;+$MgyegFllsA^ibc;?5qo~cxsmv zI-c+f6#aeJ6PcZPLAAFR3)c5kE_cXae1HUw^J7AL0`7~B%YvEHcb;9AzAQ>|!!aE& zuwRBkz`s&gWn+*`(_#yYSyT~LQr8x^38p9xm2;w#R2303+*}PV@_;kFkgF-rjel3S z-B>p*7|oh_cZeRlOWEpl+!Imk&yvRHv0DujibAz4Zg~}RYNlq()Z$o3%pdZ_6{muu zER5F;f9*FpaN#2qR$_)qNUlbwTHk6drk|hPGLc*sZV<=#$we9uKa1V?Y2!BjNuQHj zvzC%?Mt%7`IJ8~Q<{L-4uou2xO-=9`q7w)N)m>|>4mjq9I}AVF3{yg_=`h%NB^M;C z%*>*6L0SNyd+^smY!T6we9Ej+KUKOZ+2pvpFjST#Yzq`yRndvIs-t@dm0D;flBmkJ zRbhA#h>$w{HCCU7nAKF?9Sju?Q#sBqMbrcZ_^Sar8>XW)nQnNRekoN zXK)+HkKPCaJyT$!quWWMWAW1!96b@j|6+av#XX$LZY7Hzi8-0`GNhH{{^pij4W#UK zGog&z$0kOm(cXB>WYjgyiv8zJjiJo}-^X3U8lgDBzlY2)FipD9(P4kd3IduKxR_)# zT*xAo&~izPx`%x{6GpwehnQNTM3S>nk~32x3jC}F%Z+)N+wvM7A&x~nUz(v}Yg5lf z&(u`9PhG$LPqpv1tes>C!~@BH*}1Z3awntPE2MluBpBy;M})uFd1s$2J*Zs{@*j8< BusQ$$ literal 0 HcmV?d00001 diff --git a/mods/mobs/sounds/mobs_sheep.ogg b/mods/mobs/sounds/mobs_sheep.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4e7e2329bfc425cbd7959a46a8ffd1bb6edae4cb GIT binary patch literal 18659 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 literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/extra/mobs_cow.png b/mods/mobs/textures/extra/mobs_cow.png new file mode 100644 index 0000000000000000000000000000000000000000..eee2008f0779cfc9c4224b57928a1e0aa28f76a9 GIT binary patch literal 3299 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 aeU%|fi0froxbbqJ=?tE(elF{r5}E*8A45t2 literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/extra/mobs_omelet.png b/mods/mobs/textures/extra/mobs_omelet.png new file mode 100644 index 0000000000000000000000000000000000000000..ad144a50d337756cf52544648c45b5e11dd8f28d GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWWsqPvyF}vUdB>Oc5? z9M#UPQeexT(77>#VaCE79WF6WQIQrcHpUb-?K3hHL>Jyz!^W^dLr`5*OvwXi8iS{+ KpUXO@geCyAGBJh# literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_cooked_rat.png b/mods/mobs/textures/mobs_cooked_rat.png new file mode 100644 index 0000000000000000000000000000000000000000..daad3be0d19a741831bd9e1123846c19b580ca78 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m=t9o-U3d7QJVKqInM}2xzBh2{bVBBry0_96G?0kifLzpxuewC&!W% zBRADeeR3;XpJ9LFHJ!I)wt|enSA|Z?Hqo?4;cQcy?k98J gQ(9m5^L+tRu)W@od+PaZK*uq7y85}Sb4q9e0K#%s{r~^~ literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_dirt_monster.png b/mods/mobs/textures/mobs_dirt_monster.png new file mode 100644 index 0000000000000000000000000000000000000000..1f543441caca60ea91bbec713e749b06a5d3d485 GIT binary patch literal 1249 zcmV<71Rnc|P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyq{ z2>>avIHxcG000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000C$NklK9K z9xfM%hl9MFh!Kl~x$^r1#1;Y;blY8CKQ@dJXmt#WnKI2SgX2RedUXa9eb^$X*yKx9 z?mx=nw?!w%k_^OqrCMw7+ubM3933Q+^T2@XfMwf)Ydb8g7HPE&!^t?V&%x)|xUNNV zAWF5?P;mr*z|XzK9Nzi{Y74d{$i?$hblY7V%i_fB7&mV%p{f{zs-*y=5-|V<;=K~> z5Apq#I|O_VC^$2R)7*Zr!f-OqWwW#1Vm93RptIdR&Cp+w%#OPtcqn6)Tmy$ zcAMq=8rt1ndoUHpt28)!>NQgFUMh`Es`U-do}6H_-6G&R1pE$8wp8WFNJ<_&TIETm z%qyvWY(>BL?k51gz4kW%Uw?9edy6X+i&Y8w{bX|Gmh&E; zzITG>)oQUqZz#Y@zCuS0PHwG+jSvpGoI5j3G#25~^1fa`aOg?hk-T(QFJ)F`H76>?!=nuQBuC4RO-N!nTjEUs{xqJnq@akBKa=l5lzQOUy zA!2=DR&r&GF{mm%L6@27aW1?yOC;ncQ}A#KYZZEeE*%3HI6F6iG4R9HTO|5=u`I|I zsuYSfq7mQrjn*ohnVaP5FL!a?eS419W{cH)nR^SX^c6jlhx!l^O63{|*a(r3pNYe1 z=KoxxtIFbXiJ@cyJK$JsZEbzoF@{2=j%!=Eu8;BI6bsoh#w#Xne4YB{7U@Kkt_t0*QmHjD2I`wzvg?6u3D$-4Gko~| z+3laIQ1jNAIGjd1O2KQ=Z7T?DwpvV0q&Yb?!d9zIDBx#yYV;Wo*zrIQ@IZDv;Aszd z0S_2S#`s@7(0x3RY@w=8d7wKU$kQI^9uH)X2NDVSb&m%+luXFKsxalf%%YPg00000 LNkvXXu0mjfnFc@< literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_dirt_monster_back.png b/mods/mobs/textures/mobs_dirt_monster_back.png new file mode 100644 index 0000000000000000000000000000000000000000..3de463df4ef6d6d6ecebdccbfa581d79ad8225ef GIT binary patch literal 1205 zcmV;m1WNmfP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyq{ z2?7|>(8Y)V000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000CKNkl2ZCz=@)-8juF}ngXM25&1D4>Zqn3#A0(U=%-xKI-kHQtyQ zE+z4TM7_WmFTCc_&w0EUwh~sxjVC!*@B9AG z|9Rf$|2y!1K1W73$?@c4(J0b@20-?}?E$iKPu}foLp)$Kyh5p=R5(wYsq^ z!7P+fN-;Fh%_pbMDh=T1!C^Un@dmSr3}P*Rq^~D{kt;H`>v?(t9ps9On1wQ9JHsqi zE4ZDG<~{i0@Lt&*-oWXzSLp6quD>hbXKH$mAI{x;?2Kb2f!TyX&Ma|YY?ypufy?9f z=nD8(Z1#!*US|ttsmxzj@8E8M-nD-2&cslnKieFH2YQj3pfrWY?FCI^u~K1kxVQNn z96z#8e4Xt?69$$g*tX4V(nM3>(4pPqqExQnb~&+uQ-6-Dy1=Jz?Ur~VhsV=`ugy!% zwuz<;wuje&uHks}UcWg*PoRzY%mPX&e!MWbe2wu$4qM>4{vNW05@w;y_Q*Oq{cX&} zv)Hzch|ubBGQ4$=H(q^#cCV|^gI13dx7!IejE#iZGcv^Z?T6gDJBOwqmNdCG@c>;d z&qz9xV{|0axP`Hi2=j?7Q}^fbrwl?}ew0$Avw2XUqiFZK2oLl!acc%kgz4FI!@=Zq zl)~Z? z4u#9@Vrn{$u~0^I)o@^#1ss~j=#BxdkIx_?*fxkJoV#?p&Vx<;-T2mcIdlFd)}zpA z01i!KeJDU=a08<|2HE}MMpoiMG-Z;>7V&vpys~qsA<)+9Wb2lGUi;{ziX{zVDHBa; z6pBkIr9goohzOs3e^%+bPJW@(5D;59fAI#usyqN5EN-kE=V;PEDMh>6g=Ja%9W$uSW#|g{>U;hT(u#3@`^|lI z9?Zrw2+JisGY|5{LY)Umql8rzP&DPi6D5q_x`$;6!8IMsCQS;Zr8*BLCTCU`kVi0y zrVMrrJ;{SrOIVEuO_BD&{%sQJ4-pJ@VB7Hfg>i!Z4o?1dRUJFDOOmNPzV;UOytIXM zCdY^0oM|BKr_T?|d?L%8nK=Fq4<~-T{KWs_=)qx$4E8b~&tZvBvuwUTeMS8PPp9N! Tn;3iy00000NkvXXu0mjfg?u*_ literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_dungeon_master.png b/mods/mobs/textures/mobs_dungeon_master.png new file mode 100644 index 0000000000000000000000000000000000000000..e1c1e791a1376fe1b2c48d1c72151963e6509d78 GIT binary patch literal 1999 zcmV;=2Qc`FP)WFU8GbZ8()Nlj2>E@cM*00%QkL_t(o!>yQGZyU)G zg}?6UxsVh|NtSKN>*d;(*NGG4A=zMoyd{4iZ~2Y;nmp|v2oNAh0B4bG)`l(Hie*dI zjS?@zxpp4TP?Tlb*$s98f#ghg)v2mer+Q@g_!VsTNRxodLztEXfq~G%zlXGe;L7?6 z$S-~W;ANKG{CpKpjjv%=)x=-?bgOQ~femb6tE%R2kN-naK~aJC-~xRD7!S`!#Es+X zdpo|@$A=dF@Vke+KAIG}M`QQdX5SlQ&EZ*UVrS{E#Ngq4n&Z7E3LR-yV1aLU_Q(so zHJHc4<$=BD_-;?YfB&0pI-Q8oIIEw(IxwXVIGq%x@CM49fRX?xJhb8%?*g)EPB(^) zYpbkw+x+<-yJRI;3(wBp2jJc*kcZ#?;xaAPBg9?>=ic2fW(d zW%t<=Vp~$;SlQa<)~5qb4|dtxd4lmL?7cbW&ML&_A~b*1xxJj?$Qh3IUt^5r_;3hy zK|e9{I}z762YmI%uNe#mtal>-x~+&icLsd*r?1((HK5mtu%>3c-K=-H@h6Xc*6BoNhgxW zEQeVItq`6L;raQ(pP5H%4Q#JMRU2lxz-6@%&nn0&hj9_s=Y*!Ds#QOa?q{)A zpst~;U^szR1aSl0*rva|0!WK1j;k6v5e#Qw4a^E5bQaDF*l5FMSB|E+oPE-h;YkLg z9HIa^A@mYBo~YG|T%cnoKnE#&=I}2^7zf&Po(Z`(&~FLA)1jULOlFEGa*F0np*5`# zZg&OpWC|xKq?KefEuf!>NFG>qaNG#0`+ODu%bVI{n&?BTlurv~!UN91^{(X68AW+> zMS#m1vQkmjUf*9#;cjmssiO?m+HlgO+Z8qJkF+?eRKKEzy{XXFwKleaOpfRz|FI`C;<4-Jqw)#vt#>T0c=q=lSTHOxwQ zawwq2==a;Ph_~IB)4hoTXoo7t1-a%_Kb^uj7ux3|rMvI+%o@Mu7--G?9UE2ECR*d9(&ERvV)h3XFIX7yL#^!*5EADeE?@0Im0)`(C_uIiQYiFr5cx&>UExpFc^WF6^eQ;CWY5$?FFKrC`*qH zU~eMHbcqvTiW7{^wxUu1fmPi>LUO_C ztW-)?qGq#O)FLa@LWzU4R9i*CB3)^r3HElZ2*(*0v(Op=@+g=aU1i|Hu{F?*Rm&)l zgHaC8&$Vgps22-;?UlCLi`~Yk&B9B7j;0I3P8*GXak5}E&4A%AdvY*oG&c?utwHQe z8|^-xh;YMHbv~Y`?dENgS8`NV@Ygp2-fGetUpbFjP_yUFsqy}*oVOZrw?h6 z&2(xxk+u^Fs5Ms|H-eEkIG8o6gn+zG)mqjHVd7v|!eP@^lU(a!Clb9J!HbcceAd(V z#A(F7=lHvmrY4c1s=U(jHpO%!9R%j-oNo@Tw7sm=a&uPCxpFzJrs?yYOGjM0bB3AU zczi14uf~hx=W!}hc`s*WEf7%vKe-NDT}9N1;9$HE4TGYb2ll}O{m$9)*NwG!F+e~w zb}oB>zmbT|MFscPVgD8Ejz0YAvh+=2*?Ux0i8QX^z~y0XjE2j_Dbhn;^Sv(nzZO)! zsa>g36juy?ccMPs?5Z19LKt-4eQWr^jzbGy-cpns9Ub)EEYi%*nYybJEym)nw-##k ze>Aw<>lgxef640`uBZ(esd^c$))}N2c^2K_4mb1`1TlH zPnWa)GQ*vPXG8e;hCqIKOa1&{?S1F&V{FF5KaUpouJ-z+-xr3ns!>1S(c5O-l7C4U he&lNzsg{Y;e*x|^ZMZrY90ULW002ovPDHLkV1mPa$zcEh literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_dungeon_master_back.png b/mods/mobs/textures/mobs_dungeon_master_back.png new file mode 100644 index 0000000000000000000000000000000000000000..d6abd907757b2e2dd8d22110a746d51fabe0c899 GIT binary patch literal 1985 zcmV;y2R`_TP)WFU8GbZ8()Nlj2>E@cM*00$*WL_t(o!=;#8j~rJO zg}-y^);-;GA7eXUV^0!az!3-u3BfB03cmne;MegVBEcIkyhH&UV`Iyg*ba8hIi-7q(-bPD(a1 zI4QuSaA^w`NAIBer)Ti7h2Q+@M|}OwgiSkVS(G$QL*opQG1T62Fl*Ravj8;C(>O;O zLDM*vrGzj@A&sFI!&V>u`Upw~x1J001@Qi+K>zsJPq_7uTck0J7mmt#jQ8Xflnr<< zkr@NlKo-NI5K!Y`Ez!EN5ojF2P9N4%_}f#sITB_JaAg~BfKPw^AxHPW0`D-+b94gN z&%n_V&aJ~qNr+P4Sq!ThVhhU>w)=3jfSonSD~YmfV46eG=yQDse|wBE`u_!Z)>HV)L%1`> z!~kdeFe_k?G!(&D?ex$f6|gnB2Ko+_LmJ5`6P~M_(qRm&D&=>Yi<#|y$5tF$Q8P?M z3kYPIgS9ejfPSKTkyTF126|BkmRR`SP}lEI;qoRdtIqkYzA$W1RcwHM3{R%=rk}zv z)8}~A38idgAhrUJt%Q?$(Ogt=uonyL)(E~oQ1rEfSq^30b-%cFFk8uJtJc{{M*ca1 z%j-}zirxTw!;r(Gi}W}b_;}f9G$IH^X=Gd zOEQb3_WvHs)~XJ`H%FLuUPdHm-K(AIby>kq(yfau9OR>rgFMhJ8gYxr;%t78?n*)$il^~ppURks=`|5;op-^TrYBb zXDm-gg*>}Alb5YP;;`q6tc+Nr4!7BZyCVVj5(&#AuqP*&A8z0u%(^-JVD{23vpsp+ z(K2BOlvglXg=ai|H^fN_(Y9k7KE3@@Z-Jj2<$v;#)>+xWcXm&(RY7_iHxFL zPhq1MwoK7?06xElZ`&fkAnUr&%ST&Im4m#Lv+rU0^c-JY7vP1V>auO_aRk0TU3?E_ z@Zpx4Q9t=Va~v5(S=8{&GURcosG3s@_G7rdt9DyE`0|;q|Lz+8qpj0}e*<`bQwx(w zHGOpp#_dzVLcc0gfkGHfju|_S^h5Y+d{($)(ZUmH{ TDDM%n00000NkvXXu0mjf;0Uvc literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_dungeon_master_fireball.png b/mods/mobs/textures/mobs_dungeon_master_fireball.png new file mode 100644 index 0000000000000000000000000000000000000000..652d0bf907fbca3e86e08f8a0c80d8c52afb2f03 GIT binary patch literal 2316 zcmV+n3G?=eP)RJrdR*~03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00?kNL_t(o!=;#6Y+ThD zfWLFsSv~f6i{p5V?Zj~sN}=pg1yrqCRG}h3Acelrhp4DXq^*#Gg4CMQAW~Hos0FE| zLV|~?G|CI41*tDc6j2EZf;x%D$=JqbvUs2M&fK~8oIad!>?C#!0jPB*Gl0*^n=eYN z2lYePyR#dq1R;`|FR3*o0)gWgw5OujmdSFdhLj2kfFxpCd^~X$*#M;=9<{ER|HNEy zC3rA}vP{7pU+W{34Js9nnfWSE27=9;#4> zk`HBnjl{dtsF8M9u0g?rxC?#*iVX-2i_Xk2TefAGnVM#5a-3K!z%VR2dxqKCo8j!t zH2K^(J&Ayn3lR(A7SuxU8gP0EECUfru#6@+lSBm)dShT35Qfm-2`Z`KpPUASg=uRW z8zP`D1D#vpvz$dJ9hMh;Och`o5VyfKpfw7@06zdPfb0^?dYWkg7y_>Agw8n3SHL!* zRD-TI5CT$hXw(B*(*c-JE`lu}tb;*-8x4qU0V9A)5kd*eKExvsGr(~nYD2sXcv{03 z!OI>jR##)!6~HXq@$Fq0@)W`XC3Kjihruu**#fQ)P7G=uRLkI1^@2hP<+@g>*;H+% zaakM>rBIn9w0A=^4okBT)L_r`1C(Nu?CITu9WlsH)k$~ToS&$X?sD*Il3FRGQk6tv z65A03K4ec$QY>n)RN$Ce;#@%s`B@2J0Mr7g_~3{7MkE3^+&s)gagvTscFJNs*5y(yK~E;a4<2}oXx!%fRDct)C@m@u9{veG zAN?t=Ymyv*y|-?ozpo1^^#Z)cYMQki6Fgtvkj<;t-?WR_;3UWYaglXEgTDe*Cp$jI*&=kermzff zEv?ZNty+Q9!5y)5%zi$78h~zNgsD>=Pab(3oZax|op3vRv`xog2;7hZTHzk?0na}1 zYYsj4BU0@a&p!2I;t81h2o_>>swE9Oy}asNmTf?b3!&2R^D}VIgV*xvu`vdAz`gfB zO05FhGBExOyfh{_4oE-_K@u4LE*y%S0wYej5c1FWz)gakfa#eT{6L43Kzq2haf^;& z)vOwUgq!w4Sm|eAXNPx0EZPkA^is5HRI3v*B`Lf`f9osj_+ zF9b|X%urka%Y=ynOcb<#34nnXRN8^IsJ3;?hPs5B4+$5FQIH`te0X_E@OBe=H}Fua z;;yg5j*;C|%aX;V8cT~lv**sPb|pfaaeQeNY(dk@Qm9l!tHd^;R0rFDMhN@vgLjWZ zZ42C(1$Juijahv>vkch}Pcpv%+oMpgz(Q3E5-Kf7b`A834x}%k8#_}#+<`U+rkjr8 zx*!9{JuS4TYsS#6icrB&O21pEX)iVeT<~;8TnoJ@@yeJfBRZp~?l=_d+TK>v8D!9e z{8Ev-tW_IH!`M8Wn1_KDI9G)oZ7^BTD!v?g1sGt?Ls&vfe(&u=9RGI?A>f|dw)4VY z_5*O>;g@yqq!dC3{{G>99^dyTj=h(=2%Rc!3|$utaIUJo{f+l?-1p5LD5ZGw{WBaN zJV-A096=~S!Hci&2Vq=XNIv%@*X(%iB55P&hJ7_ayNgOXFgf`wmcVhECD@(U^>uP){WgJatUxM+Y8B3fFx6CJ zAW=)62D%nB0+tn!7hCAqaJ*`Xa;FY)5AZ_0hAY8R=CW-n=;93A_M^7BFb)%kNvoBs7F7;+++m-%eHohv@G@v66 z+fuqpiFGDyg!&hAAmOZT%2v$urENTzLMa8aO)p)^-Iov7(!Eq5VabDZ4EmG0$N*}i zBx0-wTv@Fj!emKr;Chm)1!L_{3g#-hb)Bi`ccx2R{C=^K0Mx~VQURI8V&eaWFU8GbZ8()Nlj2>E@cM*00)yvL_t(o!>yP}Zxz`U z$A9J8@j_31Dyml%WTq#dXa6i%SXsZ$p^@ycTumRY?78DMM+BuibB*1 zjp+s%f&t?RKl@Ep^=h~`i&Jg`#ukE<^i-u==brx={^y)qPw^JlXTPcQt6z@+xN-_x zmQZBiScoD}4*Y8wb(jwICO}tDW8)Fn5Re4lm^eyl*R&zZYQEN z20wJ@o{0G4&41wd@cEx!#ySxAqxU6*zxd<|zN=VU>ysoCiVQkUpLk+0R?%q&C}mmQ z9Fk`_X;IQ`h4e=;wIIcfGM;9zv;=on_VCo}yu7pk*XI_9vmB=|JbCnt$b){WD2>8% z6@{^A1A`vjZ#6efju+YTYkVP3<1E%NTAAHm=uXdm2( zr9XzEgp~mp1ED8Iv_o*TC>u^Jz60GFOiD0T-jzm_J|9cyJxA7e67X~2DQspH@ZH;R zN79EowE3yurp3?2>PNC0gIddHe`)-5o~B!5Z?pzp$b3-0YmTGB$~YrYuu z&8h(FT2qAA29T8%Nt9SzR=FEaq%<4_$6FF=YsHX;FQBf5qYVKu7S1$9hgXqlCxNw* zL;*mz+F&LyO5|l)$i~vb(LmO;f;g9ZQH8GC5Cc%qt;_SqSlFE8VhD&)g%PeyRmKCj z_rHuiv4A!bhnA@w#A@or6*cq2;=JA zkFQ|q!OD&R7Y2qU91X?#>6&;Oc`y~iRxF+lQZXujfw`rD&9TU@rr>Ls_Jt#*k-V?P zC=H^#Qy0r3Pc}_TSuc%*e%GL_SiCb9rXtx>_vKzzy}GPQGN_2;X-R>jWgmbGBK+8b za$zu(khxljGhK(!k$km63DGY5OCxfDTjgKN-kQHx!`)-haiO;=Wx8vO3(%Q@qYgYN zA*;$MPNZS@4n)4>Eid;PMJE!Y9zK^60!azLb}XQA4!w2AT$pLXN(`lXWgZ`|W1|4Z z1r!AoxwJjck&tR7ZB%QyPfDo(3ur{96+$nT-!OxI0j(BXJPV6U5QH$=hUGz(W2i_l z4eJ9`6bgBE3Q^VyL}qso^kN~_@s7cPGvP9BFehC548X0W)7S{}S| z5P0>vaT$w-!78|=tmUP&$YxOW-fHZ5T8#1>VYsPS-nZ~*`}G+5AmE#KP&-@F1|4Tl zaoraZ6-L_S?zqfLA(^$(yHCu)skwtsu==p$?c6*V7p9Lujx_zOs7gvpw;H6vaNmLF zBghq;I03i+3y&WhtlK>dcw+^&`;ylg2PRfLo^oKLfWm{hHf)b8FWZo*sM|iGGt$7>k@5i)x5O9;~fF zGJw;^;mDLs9Y?`b9i|$4be49`!4Qne9 zkKr%(zzt#4hO?((V|BlLtpOLNWl(I6U}*=I?!!;dV9!pyM2Ulee>jhgB4{+>c?p+i zU}+Q9pFzDYlV@S}Wo5%Y+}noL7-9>TyYj3RG+OY>PxphrwxwPF06QK-n#nk`7T!Mt zo-1Mh^7j6H^KDUXt(;cQPs6vpz5B!d8~zpX-Job;l>$GIDRu69@Q1&?e%~(m>#kRU Z{|7kzcaJ3rCQL70(Y)*K0-AbW|YuPgfaiF62o-U3d7N@69-Ya;>fTz{I@TH`}n@QKC z4LDj)J-Fn`c9JdcrYg??Sz8gc&K#M#ke?-0=l%UB%{i}gasHvh{91nmcjrI&CnC4? z&YXOm9bqv-KOK)=>&jJRmhnhA&an8A`jT%q^Mv0pu-_4xqo{K$Rz&C1ah4rhv=hr~ zZIym-Ze;QO_H~7)5rfy9&-$CrIm(}`ImOw>n0IPvD(mw8!fngUj@?X5n)Jr!9^+lx z19pCcCjy>>Hd-O@A}nqeC96WGeEC1c)I$ztaD0e0svSlpFRKp literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_fireball_animated.png b/mods/mobs/textures/mobs_fireball_animated.png new file mode 100644 index 0000000000000000000000000000000000000000..cc556d16a950872c56dcb136a6b736b29e9f9730 GIT binary patch literal 623 zcmV-#0+9WQP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyr2 z3@$L|J9Eqc00HkwL_t(Y$E{W|l7lb|Tze>QCJ!Kgq4f{)5DJ$->4Jyk2ekZ!JRoz| za|JQTvTU5(d4`$bptU5gR#JVBeRZu{htVp$vGkd7*Sb~O^ZOMwmOkb{!)O)#R?!dw zgDW<$n*;6^!vZB8rjy17fC2EdfFXb^+}(rS{rhGx*9Tzpc>S1wVS%CmRdDp(ZY~1= zEGEDI0&5J=O$hQ70^A(%w3urg#@oR#^c(3KeTFe@E*r9M05m@ixNHecdjJ-9O>{U zEtIb6tn#R5k|&xQ@dWzvn?rX+@IUqPBR!yCniI$y&-L;6 zisH_i`rKCHbdhk(u|5pIo|GCuhcTrHNh)7CJL8_D@NAp1QL70(Y)*K0-AbW|YuPgfaiF4ao-U3d7N?g^vdubdAacB(E6(QR4TXEx zF3u`ia7TIh3qvMb2mT4lB^n}c3}^mM5hQPNZ2d{j?b$^|R^^`s``T-BW~*s_Ph^k?jTf@q@XleX_U!(d zpRd@|Zl2A&s!G1?iq6}AB6~a*yo!|BkbKYbgOcN0+vUaXZ*7(MqNi+ru+{L@!kfR; xcc<9y}xJr}&S1jg>4r#17hce+c-?XfU(#Xu8o%U0?_>c)I$ztaD0e0svFmpH=_> literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_meat_raw.png b/mods/mobs/textures/mobs_meat_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..0dea4ec5404cccc8820d90a5d3e1513b150d6056 GIT binary patch literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBkF8NoF4Dim2{~Kq1Kz*N775{M_8s zyb=cIqSVBa)D(sC%#sWRcTeAd@J2pypjE7%E{-7kqh6PFiLxlUdNbJa48$*Oi5{r(a(v5$LiYP)9NG@bmxw?^k=dL`2Um z7D`(3L9XHYs-Ty*(|Bvn7jqg0W$_-^y6)wi$>%H?Ph7j=z4qj}=kXQ0mwuQRa9!ly zV+NO$Z<%YS9+UWKBa`yyo`mvtfhC4+QQ4}|!Ou&Sj&L~ayU+aLqIF^D(kn57*3X|* zZ-2bB{l4CGMxU(=1+mM;WL2Inv0!UI8}o0kIGf3TAIE5{BIN89Ry&ac@UkDfQywAE(< Ph8lyXtDnm{r-UW|E48P= literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_oerkki.png b/mods/mobs/textures/mobs_oerkki.png new file mode 100644 index 0000000000000000000000000000000000000000..d4422137f4f8d256a448bd55aeb4d65a3f703c6b GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0XBj({-ZRBb+KpdfpRr>`sf9Zq2ZKBg{vW;LKtzNd?0h{y4_ zlLGk;C~!D0RDb^L-E>2*0`F<53+=OX__wYSn0bRM`)o~==&T!=XB=jU{%+b(-`Fry zt3mw6T| zgW!U_%O?XxI14-?iy0XBj({-ZRBb+KpdfpRr>`sf9Zq2ZK0&@lryoF}1Wy;o5Rc<; zCm!T$FyL_Z-ap6wy0(%)VE^0H$gsG`tc)igl<%(nbkpR;htrXbYoz*^U;brFOrOON z_~xIDX4OxVy`Kwa&)fb$ZSN-`c~yo3=Ay^6cCIxDUn#~S;LvcNL7hQN(c<~fIZuIh OF?hQAxvXWvisK2!UfERspe) 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 M07*qoM6N<$f~WJfm;e9( literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_sheep.png b/mods/mobs/textures/mobs_sheep.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9069f1975eae2875d9d50f22c91e25aee048a3 GIT binary patch literal 1476 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 KMNUMnLSTX#M0{HS literal 0 HcmV?d00001 diff --git a/mods/mobs/textures/mobs_tree_monster.png b/mods/mobs/textures/mobs_tree_monster.png new file mode 100644 index 0000000000000000000000000000000000000000..7bbf95a647ae5e4ca60eb2b67d8383b7a31ae543 GIT binary patch literal 8426 zcmb_hbyQSev>v)kkRheJ8|e^`?(XhRK^Q;@X^@bV5Re8zVCY7qOF9%`=!Ss-X5RQ) z@4xr&yX)S2*1C6{ea`vz+24-yK}So40GA3E000oEzJ8^LZ2SH_*qF$--ns`C0DuzX zs;H==s;Efsfs0gu&0NoOTQk}A&b%0A7*@xB^e*@@Riq$__^-_Cs~QY*XL$| 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