--MCmobs v0.2 --maikerumine --made for MC like Survival game --License for code WTFPL and otherwise stated in readmes --dofile(minetest.get_modpath("mobs").."/api.lua") -- Dog mobs:register_mob("mobs_mc:dog", { type = "npc", passive = true, hp_min = 6, hp_max = 6, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, visual = "mesh", pathfinding = 1, mesh = "mobs_wolf.x", textures = { {"mobs_dog.png"}, }, makes_footstep_sound = true, sounds = { war_cry = "mobs_wolf_attack", }, view_range = 15, stepheight = 1.1, owner = "", order = "follow", floats = {x=0,y=0,z=0}, walk_velocity = 4, run_velocity = 4, stepheight = 1.1, damage = 4, armor = 100, attacks_monsters = true, attack_type = "dogfight", drops = {}, drawtype = "front", water_damage = 0, lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second, light_damage = 0, on_rightclick = function(self, clicker) local item = clicker:get_wielded_item() if item:get_name() == "mcl:mobitems:bone" then local hp = self.object:get_hp() if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end self.object:set_hp(hp+4) else if self.owner == "" then self.owner = clicker:get_player_name() else local formspec = "size[8,4]" formspec = formspec .. "label[0,0;What are your commands for the tamed wolf?]" formspec = formspec .. "button_exit[0,1;4,1;dfollow;Follow me!]" formspec = formspec .. "button_exit[4,1;4,1;dstand;Stay here!]" formspec = formspec .. "button_exit[0,2;4,1;dfandp;Follow and protect me!]" formspec = formspec .. "button_exit[4,2;4,1;dsandp;Stay here and protect me!]" formspec = formspec .. "button_exit[0,3;4,1;dsethome;This is your home!]" formspec = formspec .. "button_exit[4,3;4,1;dgohome;Go home!]" minetest.show_formspec(clicker:get_player_name(), "order", formspec) minetest.register_on_player_receive_fields(function(clicker, formname, fields) if fields.dfollow then self.order = "follow" self.attacks_monsters = false end if fields.dstand then self.order = "stand" self.attacks_monsters = false end if fields.dfandp then self.order = "follow" self.attacks_monsters = true end if fields.dsandp then self.order = "stand" self.attacks_monsters = true end if fields.dsethome then self.floats = self.object:getpos() end if fields.dgohome then if self.floats then self.order = "stand" self.object:setpos(self.floats) end end end) end end end, animation = { speed_normal = 20, speed_run = 30, stand_start = 10, stand_end = 20, walk_start = 75, walk_end = 100, run_start = 100, run_end = 130, punch_start = 135, punch_end = 155, }, jump = true, step = 1, blood_texture = "mobs_blood.png", }) -- Wolf by KrupnoPavel mobs:register_mob("mobs_mc:wolf", { type = "animal", hp_min = 8, hp_max = 8, passive = false, group_attack = true, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, visual = "mesh", mesh = "mobs_wolf.x", textures = { {"mobs_wolf.png"}, }, makes_footstep_sound = true, sounds = { war_cry = "mobs_wolf_attack", }, view_range = 7, walk_velocity = 2, run_velocity = 3, stepheight = 1.1, damage = 4, armor = 100, attack_type = "dogfight", drops = {}, drawtype = "front", water_damage = 0, lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second, light_damage = 0, on_rightclick = function(self, clicker) local tool = clicker:get_wielded_item() local dog local ent if tool:get_name() == "mcl_mobitems:bone" then clicker:get_inventory():remove_item("main", "mcl_mobitems:bone") dog = minetest.add_entity(self.object:getpos(), "mobs_mc:dog") ent = dog:get_luaentity() ent.owner = clicker:get_player_name() self.object:remove() end end, animation = { speed_normal = 20, speed_run = 30, stand_start = 10, stand_end = 20, walk_start = 75, walk_end = 100, run_start = 100, run_end = 130, punch_start = 135, punch_end = 155, }, jump = true, step = 0.5, blood_texture = "mobs_blood.png", }) mobs:register_spawn("mobs_mc:wolf", {"mcl_core:dirt_with_grass", "mcl_core:dirt", "mcl_core:coarse_dirt", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol"}, 20, 0, 19000, 1, 31000) -- compatibility mobs:alias_mob("mobs:wolf", "mobs_mc:wolf") mobs:alias_mob("mobs:dog", "mobs_mc:dog") mobs:alias_mob("esmobs:wolf", "mobs_mc:wolf") mobs:alias_mob("esmobs:dog", "mobs_mc:dog") -- spawn eggs mobs:register_egg("mobs_mc:wolf", "Spawn Wolf", "spawn_egg_wolf.png", 0) if minetest.setting_get("log_mods") then minetest.log("action", "MC Wolf loaded") end