diff --git a/api.lua b/api.lua deleted file mode 100644 index 4fe3185..0000000 --- a/api.lua +++ /dev/null @@ -1,577 +0,0 @@ -kpgmobs = {} -function kpgmobs:register_mob(name, def) - minetest.register_entity(name, { - hp_max = 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 = 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 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=x, y=self.object:getvelocity().y, z=z}) - end, - - get_velocity = function(self) - local v = self.object:getvelocity() - return (v.x^2 + v.z^2)^(0.5) - 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) - - --spanch - if self.type == "spanch" then - if self.state == "walk" then - self.object:set_properties({ - textures = {"mobs_spanchbob_a1.png"}, - mesh = "mobs_spanchbob.x", - }) - else - self.object:set_properties({ - textures = {"mobs_spanchbob.png"}, - mesh = "mobs_spanchbob.x", - }) - end - - end - - 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.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 - self.old_y = self.object:getpos().y - 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() - 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 - - 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() - 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 - - 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.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) - -- nachalo - if self.attack.dist > 2 then - if not self.v_start then - self.v_start = true - 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) - 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, - - 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() <= 0 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 - end - end, - - }) -end - -kpgmobs.spawning_mobs = {} -function kpgmobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, spawn_func) - kpgmobs.spawning_mobs[name] = true - minetest.register_abm({ - nodenames = nodes, - neighbors = {"air"}, - interval = 30, - chance = chance, - action = function(pos, node, _, active_object_count_wider) - if active_object_count_wider > active_object_count then - return - end - if not kpgmobs.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("[kpgmobs] Add "..name.." at "..minetest.pos_to_string(pos)) - end - minetest.env:add_entity(pos, name) - end - }) -end - -function kpgmobs: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/init.lua b/init.lua index f455ebe..a29c70a 100644 --- a/init.lua +++ b/init.lua @@ -1,684 +1,7 @@ -dofile(minetest.get_modpath("kpgmobs").."/api.lua") +--File modified by Sys4 for NALC -minetest.register_node("kpgmobs:uley", { - description = "Uley", - drawtype = "plantlike", - visual_scale = 1.0, - tiles ={"uley.png"}, - inventory_image = "uley.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - groups = {fleshy=3,dig_immediate=3}, - on_use = minetest.item_eat(4), - sounds = default.node_sound_defaults(), - after_place_node = function(pos, placer, itemstack) - if placer:is_player() then - minetest.set_node(pos, {name="kpgmobs:uley", param2=1}) - minetest.env:add_entity(pos, "kpgmobs:bee") - end - end, - -}) - -minetest.register_craft({ - output = 'kpgmobs:uley', - recipe = { - {'kpgmobs:bee','kpgmobs:bee','kpgmobs:bee'}, - } -}) - - ---HORSE go go goooo :) -local horse = { - - - physical = true, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - visual = "mesh", - stepheight = 1.1, - visual_size = {x=1,y=1}, - mesh = "mobs_horseh1.x", - textures = {"mobs_horseh1.png"}, - - driver = nil, - v = 0, -} - - -local function is_ground(pos) - local nn = minetest.get_node(pos).name - return minetest.get_item_group(nn, "crumbly") ~= 0 -end - -local function get_sign(i) - if i == 0 then - return 0 - else - return i/math.abs(i) - end -end - -local function get_velocity(v, yaw, y) - local x = math.cos(yaw)*v - local z = math.sin(yaw)*v - return {x=x, y=y, z=z} -end - -local function get_v(v) - return math.sqrt(v.x^2+v.z^2) -end - -function horse:on_rightclick(clicker) - if not clicker or not clicker:is_player() then - return - end - if self.driver and clicker == self.driver then - self.driver = nil - clicker:set_detach() - elseif not self.driver then - self.driver = clicker - clicker:set_attach(self.object, "", {x=0,y=5,z=0}, {x=0,y=0,z=0}) - self.object:setyaw(clicker:get_look_yaw()) - end -end - - -function horse:on_activate(staticdata, dtime_s) - self.object:set_armor_groups({immortal=1}) - if staticdata then - self.v = tonumber(staticdata) - end -end - -function horse:get_staticdata() - return tostring(v) -end - -function horse:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) - self.object:remove() - if puncher and puncher:is_player() then - puncher:get_inventory():add_item("main", "kpgmobs:horseh1") - end -end - - -function horse:on_step(dtime) - - self.v = get_v(self.object:getvelocity())*get_sign(self.v) - if self.driver then - local ctrl = self.driver:get_player_control() - if ctrl.up then - self.v = self.v+2 - end - if ctrl.down then - self.v = self.v-0.1 - end - if ctrl.left then - self.object:setyaw(self.object:getyaw()+math.pi/120+dtime*math.pi/120) - end - if ctrl.right then - self.object:setyaw(self.object:getyaw()-math.pi/120-dtime*math.pi/120) - end - if ctrl.jump then - local p = self.object:getpos() - p.y = p.y-0.5 - if is_ground(p) then - local pos = self.object:getpos() - pos.y = math.floor(pos.y)+4 - self.object:setpos(pos) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0)) - end - end - end - local s = get_sign(self.v) - self.v = self.v - 0.02*s - if s ~= get_sign(self.v) then - self.object:setvelocity({x=0, y=0, z=0}) - self.v = 0 - return - end - if math.abs(self.v) > 4.5 then - self.v = 4.5*get_sign(self.v) - end - - local p = self.object:getpos() - p.y = p.y-0.5 - if not is_ground(p) then - if minetest.registered_nodes[minetest.get_node(p).name].walkable then - self.v = 0 - end - self.object:setacceleration({x=0, y=-10, z=0}) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y)) - else - p.y = p.y+1 - if is_ground(p) then - self.object:setacceleration({x=0, y=3, z=0}) - local y = self.object:getvelocity().y - if y > 2 then - y = 2 - end - if y < 0 then - self.object:setacceleration({x=0, y=10, z=0}) - end - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), y)) - else - self.object:setacceleration({x=0, y=0, z=0}) - if math.abs(self.object:getvelocity().y) < 1 then - local pos = self.object:getpos() - pos.y = math.floor(pos.y)+0.5 - self.object:setpos(pos) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0)) - else - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y)) - end - end - end -end - ---horse white - -local horsepeg = { - - - physical = true, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - visual = "mesh", - stepheight = 1.1, - visual_size = {x=1,y=1}, - mesh = "mobs_horseh1.x", - textures = {"mobs_horsepegh1.png"}, - - driver = nil, - v = 0, -} - - -local function is_ground(pos) - local nn = minetest.get_node(pos).name - return minetest.get_item_group(nn, "crumbly") ~= 0 -end - -local function get_sign(i) - if i == 0 then - return 0 - else - return i/math.abs(i) - end -end - -local function get_velocity(v, yaw, y) - local x = math.cos(yaw)*v - local z = math.sin(yaw)*v - return {x=x, y=y, z=z} -end - -local function get_v(v) - return math.sqrt(v.x^2+v.z^2) -end - -function horsepeg:on_rightclick(clicker) - if not clicker or not clicker:is_player() then - return - end - if self.driver and clicker == self.driver then - self.driver = nil - clicker:set_detach() - elseif not self.driver then - self.driver = clicker - clicker:set_attach(self.object, "", {x=0,y=5,z=0}, {x=0,y=0,z=0}) - self.object:setyaw(clicker:get_look_yaw()) - end -end - - -function horsepeg:on_activate(staticdata, dtime_s) - self.object:set_armor_groups({immortal=1}) - if staticdata then - self.v = tonumber(staticdata) - end -end - -function horsepeg:get_staticdata() - return tostring(v) -end - -function horsepeg:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) - self.object:remove() - if puncher and puncher:is_player() then - puncher:get_inventory():add_item("main", "kpgmobs:horsepegh1") - end -end - - -function horsepeg:on_step(dtime) - - self.v = get_v(self.object:getvelocity())*get_sign(self.v) - if self.driver then - local ctrl = self.driver:get_player_control() - if ctrl.up then - self.v = self.v+2 - end - if ctrl.down then - self.v = self.v-0.1 - end - if ctrl.left then - self.object:setyaw(self.object:getyaw()+math.pi/120+dtime*math.pi/120) - end - if ctrl.right then - self.object:setyaw(self.object:getyaw()-math.pi/120-dtime*math.pi/120) - end - if ctrl.jump then - local p = self.object:getpos() - p.y = p.y-0.5 - if is_ground(p) then - local pos = self.object:getpos() - pos.y = math.floor(pos.y)+4 - self.object:setpos(pos) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0)) - end - end - end - local s = get_sign(self.v) - self.v = self.v - 0.02*s - if s ~= get_sign(self.v) then - self.object:setvelocity({x=0, y=0, z=0}) - self.v = 0 - return - end - if math.abs(self.v) > 4.5 then - self.v = 4.5*get_sign(self.v) - end - - local p = self.object:getpos() - p.y = p.y-0.5 - if not is_ground(p) then - if minetest.registered_nodes[minetest.get_node(p).name].walkable then - self.v = 0 - end - self.object:setacceleration({x=0, y=-10, z=0}) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y)) - else - p.y = p.y+1 - if is_ground(p) then - self.object:setacceleration({x=0, y=3, z=0}) - local y = self.object:getvelocity().y - if y > 2 then - y = 2 - end - if y < 0 then - self.object:setacceleration({x=0, y=10, z=0}) - end - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), y)) - else - self.object:setacceleration({x=0, y=0, z=0}) - if math.abs(self.object:getvelocity().y) < 1 then - local pos = self.object:getpos() - pos.y = math.floor(pos.y)+0.5 - self.object:setpos(pos) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0)) - else - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y)) - end - end - end -end - ---horse arabik - local horseara = { - - - physical = true, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - visual = "mesh", - stepheight = 1.1, - visual_size = {x=1,y=1}, - mesh = "mobs_horseh1.x", - textures = {"mobs_horsearah1.png"}, - - driver = nil, - v = 0, -} - - -local function is_ground(pos) - local nn = minetest.get_node(pos).name - return minetest.get_item_group(nn, "crumbly") ~= 0 -end - -local function get_sign(i) - if i == 0 then - return 0 - else - return i/math.abs(i) - end -end - -local function get_velocity(v, yaw, y) - local x = math.cos(yaw)*v - local z = math.sin(yaw)*v - return {x=x, y=y, z=z} -end - -local function get_v(v) - return math.sqrt(v.x^2+v.z^2) -end - -function horseara:on_rightclick(clicker) - if not clicker or not clicker:is_player() then - return - end - if self.driver and clicker == self.driver then - self.driver = nil - clicker:set_detach() - elseif not self.driver then - self.driver = clicker - clicker:set_attach(self.object, "", {x=0,y=5,z=0}, {x=0,y=0,z=0}) - self.object:setyaw(clicker:get_look_yaw()) - end -end - - -function horseara:on_activate(staticdata, dtime_s) - self.object:set_armor_groups({immortal=1}) - if staticdata then - self.v = tonumber(staticdata) - end -end - -function horseara:get_staticdata() - return tostring(v) -end - -function horseara:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) - self.object:remove() - if puncher and puncher:is_player() then - puncher:get_inventory():add_item("main", "kpgmobs:horsearah1") - end -end - - -function horseara:on_step(dtime) - - self.v = get_v(self.object:getvelocity())*get_sign(self.v) - if self.driver then - local ctrl = self.driver:get_player_control() - if ctrl.up then - self.v = self.v+3 - end - if ctrl.down then - self.v = self.v-0.1 - end - if ctrl.left then - self.object:setyaw(self.object:getyaw()+math.pi/120+dtime*math.pi/120) - end - if ctrl.right then - self.object:setyaw(self.object:getyaw()-math.pi/120-dtime*math.pi/120) - end - if ctrl.jump then - local p = self.object:getpos() - p.y = p.y-0.5 - if is_ground(p) then - local pos = self.object:getpos() - pos.y = math.floor(pos.y)+4 - self.object:setpos(pos) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0)) - end - end - - end - local s = get_sign(self.v) - self.v = self.v - 0.02*s - if s ~= get_sign(self.v) then - self.object:setvelocity({x=0, y=0, z=0}) - self.v = 0 - return - end - if math.abs(self.v) > 4.5 then - self.v = 4.5*get_sign(self.v) - end - - local p = self.object:getpos() - p.y = p.y-0.5 - if not is_ground(p) then - if minetest.registered_nodes[minetest.get_node(p).name].walkable then - self.v = 0 - end - self.object:setacceleration({x=0, y=-10, z=0}) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y)) - else - p.y = p.y+1 - if is_ground(p) then - self.object:setacceleration({x=0, y=3, z=0}) - local y = self.object:getvelocity().y - if y > 2 then - y = 2 - end - if y < 0 then - self.object:setacceleration({x=0, y=10, z=0}) - end - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), y)) - else - self.object:setacceleration({x=0, y=0, z=0}) - if math.abs(self.object:getvelocity().y) < 1 then - local pos = self.object:getpos() - pos.y = math.floor(pos.y)+0.5 - self.object:setpos(pos) - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0)) - else - self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y)) - end - end - end -end - ---END HORSE - -kpgmobs:register_mob("kpgmobs:sheep", { - type = "animal", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_sheep.png"}, - visual = "mesh", - mesh = "mobs_sheep.x", - makes_footstep_sound = true, - walk_velocity = 1, - armor = 200, - drops = { - {name = "kpgmobs: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"}, - mesh = "mobs_sheep.x", - }) - 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_shaved.png"}, - mesh = "mobs_sheep_shaved.x", - }) - end - end, -}) -kpgmobs:register_spawn("kpgmobs:sheep", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) - - -minetest.register_craftitem("kpgmobs:meat_raw", { - description = "Raw Meat", - inventory_image = "mobs_meat_raw.png", -}) - -minetest.register_craftitem("kpgmobs:meat", { - description = "Meat", - inventory_image = "mobs_meat.png", - on_use = minetest.item_eat(8), -}) - -minetest.register_craft({ - type = "cooking", - output = "kpgmobs:meat", - recipe = "kpgmobs:meat_raw", - cooktime = 5, -}) - -kpgmobs:register_mob("kpgmobs:rat", { - type = "animal", - hp_max = 1, - collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2}, - visual = "mesh", - mesh = "mobs_rat.x", - 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", "kpgmobs:rat") - self.object:remove() - end - end, -}) -kpgmobs:register_spawn("kpgmobs:rat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 7000, 1, 31000) - -minetest.register_craftitem("kpgmobs:rat", { - description = "Rat", - inventory_image = "mobs_rat_inventory.png", - - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.above then - minetest.env:add_entity(pointed_thing.above, "kpgmobs:rat") - itemstack:take_item() - end - return itemstack - end, -}) - -minetest.register_craftitem("kpgmobs:rat_cooked", { - description = "Cooked Rat", - inventory_image = "mobs_cooked_rat.png", - - on_use = minetest.item_eat(3), -}) - - -kpgmobs:register_mob("kpgmobs:bee", { - type = "animal", - hp_max = 1, - collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2}, - visual = "mesh", - mesh = "mobs_bee.x", - textures = {"mobs_bee.png"}, - makes_footstep_sound = false, - walk_velocity = 1, - armor = 200, - drops = { - {name = "kpgmobs:med_cooked", - chance = 1, - min = 1, - max = 2,}, - }, - drawtype = "front", - water_damage = 0, - lava_damage = 1, - light_damage = 0, - - animation = { - speed_normal = 15, - stand_start = 0, - stand_end = 30, - walk_start = 35, - walk_end = 65, - }, - - on_rightclick = function(self, clicker) - if clicker:is_player() and clicker:get_inventory() then - clicker:get_inventory():add_item("main", "kpgmobs:bee") - self.object:remove() - end - end, -}) -kpgmobs:register_spawn("kpgmobs:bee", {"default:dirt_with_grass"}, 20, -1, 7000, 1, 31000) - -minetest.register_craftitem("kpgmobs:bee", { - description = "bee", - inventory_image = "mobs_bee_inventar.png", - - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.above then - minetest.env:add_entity(pointed_thing.above, "kpgmobs:bee") - itemstack:take_item() - end - return itemstack - end, -}) - -minetest.register_craftitem("kpgmobs:med_cooked", { - description = "Cooked med", - inventory_image = "mobs_med_inventar.png", - - on_use = minetest.item_eat(6), -}) - - -minetest.register_craft({ - type = "cooking", - output = "kpgmobs:med_cooked", - recipe = "kpgmobs:bee", - cooktime = 5, -}) - -kpgmobs:register_mob("kpgmobs:deer", { +-- Deer +mobs:register_mob("kpgmobs:deer", { type = "animal", hp_max = 5, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, @@ -689,7 +12,7 @@ kpgmobs:register_mob("kpgmobs:deer", { walk_velocity = 1, armor = 200, drops = { - {name = "kpgmobs:meat_raw", + {name = "mobs:meat_raw", chance = 1, min = 2, max = 3,}, @@ -710,243 +33,11 @@ kpgmobs:register_mob("kpgmobs:deer", { }) -kpgmobs:register_spawn("kpgmobs:deer", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) +mobs:register_spawn("kpgmobs:deer", {"default:dirt_with_grass"}, 20, 8, 27000, 1, 31000) +mobs:register_egg("kpgmobs:deer", "Deer", "wool_violet.png", 1) -kpgmobs:register_mob("kpgmobs:horse", { - type = "animal", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_horse.png"}, - visual = "mesh", - mesh = "mobs_horse.x", - makes_footstep_sound = true, - walk_velocity = 1, - armor = 200, - drops = { - {name = "kpgmobs:meat_raw", - chance = 1, - min = 2, - max = 3,}, - }, - drawtype = "front", - water_damage = 1, - lava_damage = 5, - light_damage = 0, - animation = { - speed_normal = 15, - stand_start = 25, - stand_end = 75, - walk_start = 75, - walk_end = 100, - }, - follow = "farming:wheat", - view_range = 5, - - on_rightclick = function(self, clicker) - if clicker:is_player() and clicker:get_inventory() then - clicker:get_inventory():add_item("main", "kpgmobs:horseh1") - self.object:remove() - end - end, - -}) -kpgmobs:register_spawn("kpgmobs:horse", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) - -minetest.register_craftitem("kpgmobs:horseh1", { - description = "Horse", - inventory_image = "mobs_horse_inventar.png", - - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.above then - minetest.env:add_entity(pointed_thing.above, "kpgmobs:horseh1") - itemstack:take_item() - end - return itemstack - end, -}) -minetest.register_entity("kpgmobs:horseh1", horse) - -minetest.register_craftitem("kpgmobs:horsepegh1", { - description = "HorseWhite", - inventory_image = "mobs_horse_inventar.png", - - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.above then - minetest.env:add_entity(pointed_thing.above, "kpgmobs:horsepegh1") - itemstack:take_item() - end - return itemstack - end, -}) -minetest.register_entity("kpgmobs:horsepegh1", horsepeg) - -minetest.register_craftitem("kpgmobs:horsearah1", { - description = "HorseBlack", - inventory_image = "mobs_horse_inventar.png", - - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.above then - minetest.env:add_entity(pointed_thing.above, "kpgmobs:horsearah1") - itemstack:take_item() - end - return itemstack - end, -}) -minetest.register_entity("kpgmobs:horsearah1", horseara) - -kpgmobs:register_mob("kpgmobs:wolf", { - type = "monster", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_wolf.png"}, - visual = "mesh", - mesh = "mobs_wolf.x", - makes_footstep_sound = true, - view_range = 7, - walk_velocity = 2, - run_velocity = 3, - damage = 2, - armor = 200, - attack_type = "dogfight", - drops = { - {name = "kpgmobs:meat_raw", - chance = 1, - min = 2, - max = 3,}, - }, - drawtype = "front", - water_damage = 1, - lava_damage = 5, - light_damage = 2, - on_rightclick = nil, - - animation = { - speed_normal = 15, - speed_run = 15, - stand_start = 10, - stand_end = 20, - walk_start = 75, - walk_end = 100, - run_start = 100, - run_end = 130, - punch_start = 135, - punch_end = 155, - }, -}) -kpgmobs:register_spawn("kpgmobs:wolf", {"default:dirt_with_grass","default:dirt","default:desert_sand"}, 10, -1, 11000, 3, 31000) - -kpgmobs:register_mob("kpgmobs:pumba", { - type = "animal", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_pumba.png"}, - visual = "mesh", - mesh = "mobs_pumba.x", - makes_footstep_sound = true, - walk_velocity = 2, - armor = 200, - drops = { - {name = "kpgmobs:meat_raw", - chance = 1, - min = 2, - max = 3,}, - }, - drawtype = "front", - water_damage = 1, - lava_damage = 5, - light_damage = 0, - animation = { - speed_normal = 15, - stand_start = 25, - stand_end = 55, - walk_start = 70, - walk_end = 100, - }, - follow = "farming:wheat", - view_range = 5, - -}) -kpgmobs:register_spawn("kpgmobs:pumba", {"default:desert_sand"}, 20, 8, 9000, 1, 31000) - -kpgmobs:register_mob("kpgmobs:horse3", { - type = "animal", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_horseara.png"}, - visual = "mesh", - mesh = "mobs_horse.x", - makes_footstep_sound = true, - walk_velocity = 1, - armor = 200, - drops = { - {name = "kpgmobs:meat_raw", - chance = 1, - min = 2, - max = 3,}, - }, - drawtype = "front", - water_damage = 1, - lava_damage = 5, - light_damage = 0, - animation = { - speed_normal = 15, - stand_start = 25, - stand_end = 75, - walk_start = 75, - walk_end = 100, - }, - follow = "farming:wheat", - view_range = 5, - - on_rightclick = function(self, clicker) - if clicker:is_player() and clicker:get_inventory() then - clicker:get_inventory():add_item("main", "kpgmobs:horsearah1") - self.object:remove() - end - end, -}) -kpgmobs:register_spawn("kpgmobs:horse3", {"default:desert_sand"}, 20, 8, 9000, 1, 31000) - -kpgmobs:register_mob("kpgmobs:horse2", { - type = "animal", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_horsepeg.png"}, - visual = "mesh", - mesh = "mobs_horse.x", - makes_footstep_sound = true, - walk_velocity = 1, - armor = 200, - drops = { - {name = "kpgmobs:meat_raw", - chance = 1, - min = 2, - max = 3,}, - }, - drawtype = "front", - water_damage = 1, - lava_damage = 5, - light_damage = 0, - animation = { - speed_normal = 15, - stand_start = 25, - stand_end = 75, - walk_start = 75, - walk_end = 100, - }, - follow = "farming:wheat", - view_range = 5, - - on_rightclick = function(self, clicker) - if clicker:is_player() and clicker:get_inventory() then - clicker:get_inventory():add_item("main", "kpgmobs:horsepegh1") - self.object:remove() - end - end, -}) -kpgmobs:register_spawn("kpgmobs:horse2", {"default:dirt_with_grass"}, 20, 8, 10000, 1, 31000) - -kpgmobs:register_mob("kpgmobs:jeraf", { +-- Jeraf +mobs:register_mob("kpgmobs:jeraf", { type = "animal", hp_max = 5, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, @@ -957,7 +48,7 @@ kpgmobs:register_mob("kpgmobs:jeraf", { walk_velocity = 2, armor = 200, drops = { - {name = "kpgmobs:meat_raw", + {name = "mobs:meat_raw", chance = 1, min = 2, max = 3,}, @@ -978,9 +69,11 @@ kpgmobs:register_mob("kpgmobs:jeraf", { view_range = 5, }) -kpgmobs:register_spawn("kpgmobs:jeraf", {"default:desert_sand"}, 20, 8, 9000, 1, 31000) +mobs:register_spawn("kpgmobs:jeraf", {"default:desert_sand", "default:dirt_with_dry_grass"}, 20, 8, 27000, 1, 31000) +mobs:register_egg("kpgmobs:jeraf", "Giraffe", "wool_yellow.png", 1) -kpgmobs:register_mob("kpgmobs:medved", { +-- Bear +mobs:register_mob("kpgmobs:medved", { type = "animal", hp_max = 5, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, @@ -995,7 +88,7 @@ kpgmobs:register_mob("kpgmobs:medved", { armor = 200, attack_type = "dogfight", drops = { - {name = "kpgmobs:meat_raw", + {name = "mobs:meat_raw", chance = 1, min = 5, max = 10,}, @@ -1019,74 +112,8 @@ kpgmobs:register_mob("kpgmobs:medved", { punch_end = 100, }, }) -kpgmobs:register_spawn("kpgmobs:medved", {"default:dirt_with_grass","default:dirt","default:desert_sand"}, 20, 0, 11000, 3, 31000) - -kpgmobs:register_mob("kpgmobs:cow", { - type = "animal", - hp_max = 5, - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - textures = {"mobs_cow.png"}, - visual = "mesh", - mesh = "mobs_cow.x", - makes_footstep_sound = true, - view_range = 7, - walk_velocity = 1, - run_velocity = 2, - damage = 10, - armor = 200, - drops = { - {name = "kpgmobs:meat_raw", - chance = 1, - min = 5, - max = 10,}, - }, - drawtype = "front", - water_damage = 1, - lava_damage = 5, - light_damage = 0, - follow = "farming:wheat", - view_range = 5, - -- ADDED TenPlus1 (right-clicking cow with empty bucket gives bucket of milk and moo sound) - on_rightclick = function(self, clicker) - tool = clicker:get_wielded_item():get_name() - if tool == "bucket:bucket_empty" then - if self.milked then - minetest.sound_play("cow", { - object = self.object, - gain = 1.0, -- default - max_hear_distance = 32, -- default - loop = false, - }) - do return end - end - clicker:get_inventory():remove_item("main", "bucket:bucket_empty") - clicker:get_inventory():add_item("main", "kpgmobs:bucket_milk") - if math.random(1,2) > 1 then self.milked = true end - end - end, - - - animation = { - speed_normal = 15, - speed_run = 15, - stand_start = 0, - stand_end = 30, - walk_start = 35, - walk_end = 65, - run_start = 105, - run_end = 135, - punch_start = 70, - punch_end = 100, - }, -}) -kpgmobs:register_spawn("kpgmobs:cow", {"default:dirt_with_grass","default:dirt","default:desert_sand"}, 20, 0, 11000, 3, 31000) - --- ADDED Tenplus1 (Bucket of Milk gives 4 hearts and returns empty bucket) -minetest.register_craftitem("kpgmobs:bucket_milk", { - description = "Bucket of Milk", - inventory_image = "bucket_milk.png", - on_use = minetest.item_eat(8, "bucket:bucket_empty"), -}) +mobs:register_spawn("kpgmobs:medved", {"default:dirt_with_grass","default:dirt"}, 20, 0, 44000, 3, 31000) +mobs:register_egg("kpgmobs:medved", "Bear", "wool_brown.png", 1) if minetest.setting_get("log_mods") then minetest.log("action", "kpgmobs loaded") diff --git a/sounds/cow.ogg b/sounds/cow.ogg deleted file mode 100644 index e919c6b..0000000 Binary files a/sounds/cow.ogg and /dev/null differ diff --git a/sounds/mobs_sheep.ogg b/sounds/mobs_sheep.ogg deleted file mode 100644 index 4e7e232..0000000 Binary files a/sounds/mobs_sheep.ogg and /dev/null differ diff --git a/textures/bucket_milk.png b/textures/bucket_milk.png deleted file mode 100644 index b3c427a..0000000 Binary files a/textures/bucket_milk.png and /dev/null differ diff --git a/textures/mobs_bee_inventar.png b/textures/mobs_bee_inventar.png deleted file mode 100644 index 94d5ace..0000000 Binary files a/textures/mobs_bee_inventar.png and /dev/null differ diff --git a/textures/mobs_cooked_rat.png b/textures/mobs_cooked_rat.png deleted file mode 100644 index daad3be..0000000 Binary files a/textures/mobs_cooked_rat.png and /dev/null differ diff --git a/textures/mobs_deer.png b/textures/mobs_deer.png new file mode 100644 index 0000000..514007e Binary files /dev/null and b/textures/mobs_deer.png differ diff --git a/textures/mobs_horse_inventar.png b/textures/mobs_horse_inventar.png deleted file mode 100644 index 134048e..0000000 Binary files a/textures/mobs_horse_inventar.png and /dev/null differ diff --git a/textures/mobs_jeraf.png b/textures/mobs_jeraf.png new file mode 100644 index 0000000..addf078 Binary files /dev/null and b/textures/mobs_jeraf.png differ diff --git a/textures/mobs_meat.png b/textures/mobs_meat.png deleted file mode 100644 index 4c63fdd..0000000 Binary files a/textures/mobs_meat.png and /dev/null differ diff --git a/textures/mobs_meat_raw.png b/textures/mobs_meat_raw.png deleted file mode 100644 index 0dea4ec..0000000 Binary files a/textures/mobs_meat_raw.png and /dev/null differ diff --git a/textures/mobs_med_inventar.png b/textures/mobs_med_inventar.png deleted file mode 100644 index e70666d..0000000 Binary files a/textures/mobs_med_inventar.png and /dev/null differ diff --git a/textures/mobs_medved.png b/textures/mobs_medved.png new file mode 100644 index 0000000..2835e76 Binary files /dev/null and b/textures/mobs_medved.png differ diff --git a/textures/mobs_rat_inventory.png b/textures/mobs_rat_inventory.png deleted file mode 100644 index a8d6151..0000000 Binary files a/textures/mobs_rat_inventory.png and /dev/null differ diff --git a/textures/mobs_sheep_old.png b/textures/mobs_sheep_old.png deleted file mode 100644 index 4eef9e3..0000000 Binary files a/textures/mobs_sheep_old.png and /dev/null differ diff --git a/textures/mobs_spanchbob_invetar.png b/textures/mobs_spanchbob_invetar.png deleted file mode 100644 index 20efb82..0000000 Binary files a/textures/mobs_spanchbob_invetar.png and /dev/null differ diff --git a/textures/uley.png b/textures/uley.png deleted file mode 100644 index 8125fd0..0000000 Binary files a/textures/uley.png and /dev/null differ