--MCmobs v0.4 --maikerumine --made for MC like Survival game --License for code WTFPL and otherwise stated in readmes local S = minetest.get_translator("mobs_mc") --################### --################### PARROT --################### mobs:register_mob("mobs_mc:parrot", { type = "npc", spawn_class = "passive", pathfinding = 1, hp_min = 6, hp_max = 6, xp_min = 1, xp_max = 3, collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.89, 0.25}, visual = "mesh", mesh = "mobs_mc_parrot.b3d", textures = {{"mobs_mc_parrot_blue.png"},{"mobs_mc_parrot_green.png"},{"mobs_mc_parrot_grey.png"},{"mobs_mc_parrot_red_blue.png"},{"mobs_mc_parrot_yellow_blue.png"}}, visual_size = {x=3, y=3}, rotate = 270, walk_velocity = 3, run_velocity = 5, sounds = { random = "mobs_mc_parrot_random", damage = {name="mobs_mc_parrot_hurt", gain=0.3}, death = {name="mobs_mc_parrot_death", gain=0.6}, eat = "mobs_mc_animal_eat_generic", distance = 16, }, drops = { {name = mobs_mc.items.feather, chance = 1, min = 1, max = 2, looting = "common",}, }, animation = { stand_speed = 50, walk_speed = 50, fly_speed = 50, stand_start = 30, stand_end = 45, fly_start = 30, fly_end = 45, walk_start = 30, walk_end = 45, -- TODO: actual walk animation --walk_start = 0, --walk_end = 20, -- TODO: more unused animations between 45 and 130 }, fall_damage = 0, fall_speed = -2.25, attack_type = "dogfight", floats = 1, physical = true, fly = true, makes_footstep_sound = false, fear_height = 0, view_range = 16, follow = mobs_mc.follow.parrot, on_rightclick = function(self, clicker) if self._doomed then return end local item = clicker:get_wielded_item() -- Kill parrot if fed with cookie if item:get_name() == mobs_mc.items.cookie then minetest.sound_play("mobs_mc_animal_eat_generic", {object = self.object, max_hear_distance=16}, true) self.health = 0 -- Doomed to die self._doomed = true if not minetest.is_creative_enabled(clicker:get_player_name()) then item:take_item() clicker:set_wielded_item(item) end return end -- Feed to tame, but not breed if mobs:feed_tame(self, clicker, 1, false, true) then return end if mobs:protect(self, clicker) then return end if mobs:capture_mob(self, clicker, 0, 50, 80, false, nil) then return end end, }) -- Parrots spawn rarely in jungles. TODO: Also check for jungle *biome* <- I'll get to this eventually -j4i mobs:spawn_specific( "mobs_mc:parrot", "overworld", "ground", { "Jungle", "JungleEdgeM", "JungleM", "JungleEdge", }, 0, minetest.LIGHT_MAX+1, 7, 30000, 1, mobs_mc.spawn_height.water+7, mobs_mc.spawn_height.overworld_max) -- spawn eggs mobs:register_egg("mobs_mc:parrot", S("Parrot"), "mobs_mc_spawn_icon_parrot.png", 0)