From 1d6776f433b4bf558967f4b2f311e206baf2a83b Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Fri, 6 Mar 2015 15:23:59 +0000 Subject: [PATCH] Added Npc, removed barbarian type (was just monster in disguise) --- api.lua | 36 +++++++++++----------- chicken.lua | 1 + init.lua | 3 ++ models/character.b3d | Bin 0 -> 86880 bytes models/mobs_npc.png | Bin 0 -> 901 bytes npc.lua | 70 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 91 insertions(+), 19 deletions(-) create mode 100644 models/character.b3d create mode 100644 models/mobs_npc.png create mode 100644 npc.lua diff --git a/api.lua b/api.lua index 80e7a7c..461c10f 100644 --- a/api.lua +++ b/api.lua @@ -1,4 +1,4 @@ - -- Mobs Api (5th March 2015) + -- Mobs Api (6th March 2015) mobs = {} -- Set global for other mod checks (e.g. Better HUD uses this) @@ -17,7 +17,7 @@ function mobs:register_mob(name, def) minetest.register_entity(name, { name = name, hp_min = def.hp_min or 5, - hp_max = def.hp_max, + hp_max = def.hp_max or 10, physical = true, collisionbox = def.collisionbox, visual = def.visual, @@ -279,7 +279,7 @@ function mobs:register_mob(name, def) end -- FIND SOMEONE TO ATTACK - if ( self.type == "monster" or self.type == "barbarian" ) and damage_enabled and self.state ~= "attack" then + if self.type == "monster" and damage_enabled and self.state ~= "attack" then local s = self.object:getpos() local inradius = minetest.get_objects_inside_radius(s,self.view_range) @@ -317,22 +317,20 @@ function mobs:register_mob(name, def) end -- NPC FIND A MONSTER TO ATTACK --- if self.type == "npc" and self.attacks_monsters and self.state ~= "attack" then --- local s = self.object:getpos() --- local inradius = minetest.get_objects_inside_radius(s,self.view_range) --- for _, oir in pairs(inradius) do --- local obj = oir:get_luaentity() --- if obj then --- if obj.type == "monster" or obj.type == "barbarian" then --- -- attack monster --- local p = obj.object:getpos() --- local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 --- self.do_attack(self,obj.object,dist) --- break --- end --- end --- end --- end + if self.type == "npc" and self.attacks_monsters and self.state ~= "attack" then + local s = self.object:getpos() + local inradius = minetest.get_objects_inside_radius(s,self.view_range) + for _, oir in pairs(inradius) do + local obj = oir:get_luaentity() + if obj and obj.type == "monster" then + -- attack monster + local p = obj.object:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + self.do_attack(self,obj.object,dist) + break + end + end + end if self.follow ~= "" and not self.following then for _,player in pairs(minetest.get_connected_players()) do diff --git a/chicken.lua b/chicken.lua index ed5e24e..b4d505e 100644 --- a/chicken.lua +++ b/chicken.lua @@ -52,6 +52,7 @@ mobs:register_mob("mobs:chicken", { follow = "farming:wheat", view_range = 5, -- right click to pick up chicken on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() if clicker:is_player() and clicker:get_inventory() then clicker:get_inventory():add_item("main", "mobs:chicken") self.object:remove() diff --git a/init.lua b/init.lua index 52d6536..99835b9 100644 --- a/init.lua +++ b/init.lua @@ -29,6 +29,9 @@ dofile(minetest.get_modpath("mobs").."/mese_monster.lua") dofile(minetest.get_modpath("mobs").."/spider.lua") +-- NPC +dofile(minetest.get_modpath("mobs").."/npc.lua") + -- Meat & Cooked Meat minetest.register_craftitem("mobs:meat_raw", { diff --git a/models/character.b3d b/models/character.b3d new file mode 100644 index 0000000000000000000000000000000000000000..bc9d92735aa6bf688cfb55e4d552c347f453f3fe GIT binary patch literal 86880 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∓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 literal 0 HcmV?d00001 diff --git a/models/mobs_npc.png b/models/mobs_npc.png new file mode 100644 index 0000000000000000000000000000000000000000..93563989580324581cac10eaa5a91c427eaac724 GIT binary patch literal 901 zcmV;01A6?4P)067o8=&K2l_nO4V-n|G)B{ptiksc002fl!)YT zauTX)vt?PX*QHpQtAo{27_Eh=elm_*5!U(mUnpU$)#7J>>-Fo4Be(e#Kx-v*{UZS4 zZnrN!eVvd0rIA(%q5ce@l(y3Rroo#OoDxn5BmOL6EuA(($zK3|FCzprQV97r@HlH{ zm2^;0NbQW`OsrJ87FH>1p~;c@aW={tYmmRPsHJmCYKeYwwKZ^^coFY78zHgLn5_Y% z6lh6w75dUBA?ru^zCUiakMHZToP2Q2ue+M6=C)FxuZ46k^*_!UmA9fcdTU7Z5?r*U zF-`&DZ3-66XRHDOk|_hdP@5Y3Q5dj!Ct{&5(1d2Y5f;59Yb~?@s?cxC$Y+8wD`%8( zj&FlTLs;vK+pl+w!DG;_Q-Jw+4!rL1-q&;a4*sQ?!Z3^tZ2yiShVvQkVVtIMxC6{U zIL8!T06aFP_&^Sk^AFJjcpQd%K*pwcer)$c=(GkTimIdcl3tfpK& zXw3khAQqpO6XPc$EUbPE1OzG!Fk(EHee)e4Gjtl6LBe`win(Ke)$gM(oPeEn2L3+= zc}8vni@h?yhLrohFo55qa)GEnu~FMJZQJ;kP7e)I#{+yPo5U=plpo0i&Dq={Jj)i3ekvLUQ?c>wU)9kyd?HXbb9NVJ!%#CueOw`|tk zd!{O}eeXG#_`^eTABK@hu@5RJ2caCG0)&nq>K_0l&=VHHggs&gr&G5=l?rYQFuIL# zcuJv*MaTxoDRqT-Ov8|9GZY$^s6#NuvK$$NZWpWJB82jl;y9wA%V`~VM~Y0Hy#3R!0{9|`}$00000NkvXXu0mjfYEy{n literal 0 HcmV?d00001 diff --git a/npc.lua b/npc.lua new file mode 100644 index 0000000..61059e1 --- /dev/null +++ b/npc.lua @@ -0,0 +1,70 @@ + +-- Npc by TenPlus1 + +mobs:register_mob("mobs:npc", { + -- animal, monster, npc, barbarian + type = "npc", + -- aggressive, deals 1 damage to player/mob when hit + passive = false, + damage = 1, + attack_type = "dogfight", + attacks_monsters = true, + -- health & armor + hp_min = 10, hp_max = 20, armor = 100, + -- textures and model + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "character.b3d", + drawtype = "front", + available_textures = { + total = 1, + texture_1 = {"mobs_npc.png"}, + }, + visual_size = {x=1, y=1}, + -- sounds + makes_footstep_sound = true, + sounds = {}, + -- speed and jump + walk_velocity = 1, + run_velocity = 2, + jump = true, + -- drops wood and chance of apples when dead + drops = { + {name = "default:wood", + chance = 1, min = 1, max = 3}, + {name = "default:apple", + chance = 2, min = 1, max = 2}, + }, + -- damaged by + water_damage = 1, + lava_damage = 2, + light_damage = 0, + -- follow diamond + follow = "default:diamond", + view_range = 15, + -- model animation + animation = { + speed_normal = 30, speed_run = 30, + stand_start = 0, stand_end = 79, + walk_start = 168, walk_end = 187, + run_start = 168, run_end = 187, + punch_start = 200, punch_end = 219, + }, + -- right clicking with cooked meat will give npc more health + on_rightclick = function(self, clicker) + local item = clicker:get_wielded_item() + if item:get_name() == "mobs:meat" then + if not minetest.setting_getbool("creative_mode") then + item:take_item() + clicker:set_wielded_item(item) + end + local hp = self.object:get_hp() + 4 + if hp > self.hp_max then hp = self.hp_max end + self.object:set_hp(hp) + end + end, +}) +-- spawning disabled for now +--mobs:register_spawn("mobs:npc", {"default:dirt_with_grass"}, 20, 0, 7000, 1, 31000) +-- register spawn egg +mobs:register_egg("mobs:npc", "Npc", "default_brick.png", 1)