From e5b45921a4aa8074d8207a452e57e1e39d3186ec Mon Sep 17 00:00:00 2001 From: Skandarella <75903112+Skandarella@users.noreply.github.com> Date: Tue, 2 Mar 2021 08:08:35 +0100 Subject: [PATCH] Add files via upload --- LICENSE | 31 ++++++ aboinstructor.lua | 136 +++++++++++++++++++++++++ abominer.lua | 138 +++++++++++++++++++++++++ afrfarmer.lua | 136 +++++++++++++++++++++++++ afrinstructor.lua | 136 +++++++++++++++++++++++++ afrsmith.lua | 146 +++++++++++++++++++++++++++ afrwarrior.lua | 133 +++++++++++++++++++++++++ aradoctor.lua | 136 +++++++++++++++++++++++++ araminer.lua | 138 +++++++++++++++++++++++++ aravillager.lua | 86 ++++++++++++++++ bootynode.lua | 20 ++++ chindoctor.lua | 136 +++++++++++++++++++++++++ chinfarmer.lua | 136 +++++++++++++++++++++++++ chininstructor.lua | 136 +++++++++++++++++++++++++ chinsmith.lua | 146 +++++++++++++++++++++++++++ depends.txt | 7 ++ description.txt | 3 + dog.lua | 149 +++++++++++++++++++++++++++ evilminer.lua | 74 ++++++++++++++ eweminer.lua | 138 +++++++++++++++++++++++++ ewevillager.lua | 86 ++++++++++++++++ ewewarrior.lua | 133 +++++++++++++++++++++++++ feeder.lua | 19 ++++ firstaidnode.lua | 18 ++++ forge.lua | 32 ++++++ goat.lua | 175 ++++++++++++++++++++++++++++++++ guide.txt | 29 ++++++ hatefulminer.lua | 74 ++++++++++++++ hunger.lua | 17 ++++ init.lua | 96 ++++++++++++++++++ intllib.lua | 3 + jealousminer.lua | 74 ++++++++++++++ meddoctor.lua | 188 ++++++++++++++++++++++++++++++++++ medfarmer.lua | 157 +++++++++++++++++++++++++++++ medinstructor.lua | 162 ++++++++++++++++++++++++++++++ medminer.lua | 158 +++++++++++++++++++++++++++++ medsmith.lua | 167 +++++++++++++++++++++++++++++++ medvillager.lua | 107 ++++++++++++++++++++ medwarrior.lua | 154 ++++++++++++++++++++++++++++ mineshaft.lua | 32 ++++++ mod.conf | 1 + nordoctor.lua | 136 +++++++++++++++++++++++++ norfarmer.lua | 136 +++++++++++++++++++++++++ norinstructor.lua | 136 +++++++++++++++++++++++++ norminer.lua | 138 +++++++++++++++++++++++++ norsmith.lua | 146 +++++++++++++++++++++++++++ norvillager.lua | 86 ++++++++++++++++ norwarrior.lua | 133 +++++++++++++++++++++++++ papdoctor.lua | 136 +++++++++++++++++++++++++ papvillager.lua | 86 ++++++++++++++++ pirate.lua | 82 +++++++++++++++ plunderercrossbow.lua | 105 +++++++++++++++++++ plundererflask.lua | 105 +++++++++++++++++++ plundererstick.lua | 81 +++++++++++++++ rideelephant.lua | 226 +++++++++++++++++++++++++++++++++++++++++ ridehorse.lua | 227 ++++++++++++++++++++++++++++++++++++++++++ rideostrich.lua | 222 +++++++++++++++++++++++++++++++++++++++++ rideox.lua | 225 +++++++++++++++++++++++++++++++++++++++++ ridepig.lua | 221 ++++++++++++++++++++++++++++++++++++++++ ridereindeer.lua | 218 ++++++++++++++++++++++++++++++++++++++++ samfarmer.lua | 136 +++++++++++++++++++++++++ samsmith.lua | 146 +++++++++++++++++++++++++++ samwarrior.lua | 133 +++++++++++++++++++++++++ screenshot.png | Bin 0 -> 561565 bytes spawnbooty.lua | 16 +++ villagerbed.lua | 32 ++++++ weaponstand.lua | 19 ++++ zombiedoctor.lua | 77 ++++++++++++++ zombiefarmer.lua | 77 ++++++++++++++ zombieinstructor.lua | 77 ++++++++++++++ zombieminer.lua | 77 ++++++++++++++ zombiesmith.lua | 77 ++++++++++++++ zombievillager.lua | 77 ++++++++++++++ zombiewarrior.lua | 77 ++++++++++++++ 74 files changed, 7909 insertions(+) create mode 100644 LICENSE create mode 100644 aboinstructor.lua create mode 100644 abominer.lua create mode 100644 afrfarmer.lua create mode 100644 afrinstructor.lua create mode 100644 afrsmith.lua create mode 100644 afrwarrior.lua create mode 100644 aradoctor.lua create mode 100644 araminer.lua create mode 100644 aravillager.lua create mode 100644 bootynode.lua create mode 100644 chindoctor.lua create mode 100644 chinfarmer.lua create mode 100644 chininstructor.lua create mode 100644 chinsmith.lua create mode 100644 depends.txt create mode 100644 description.txt create mode 100644 dog.lua create mode 100644 evilminer.lua create mode 100644 eweminer.lua create mode 100644 ewevillager.lua create mode 100644 ewewarrior.lua create mode 100644 feeder.lua create mode 100644 firstaidnode.lua create mode 100644 forge.lua create mode 100644 goat.lua create mode 100644 guide.txt create mode 100644 hatefulminer.lua create mode 100644 hunger.lua create mode 100644 init.lua create mode 100644 intllib.lua create mode 100644 jealousminer.lua create mode 100644 meddoctor.lua create mode 100644 medfarmer.lua create mode 100644 medinstructor.lua create mode 100644 medminer.lua create mode 100644 medsmith.lua create mode 100644 medvillager.lua create mode 100644 medwarrior.lua create mode 100644 mineshaft.lua create mode 100644 mod.conf create mode 100644 nordoctor.lua create mode 100644 norfarmer.lua create mode 100644 norinstructor.lua create mode 100644 norminer.lua create mode 100644 norsmith.lua create mode 100644 norvillager.lua create mode 100644 norwarrior.lua create mode 100644 papdoctor.lua create mode 100644 papvillager.lua create mode 100644 pirate.lua create mode 100644 plunderercrossbow.lua create mode 100644 plundererflask.lua create mode 100644 plundererstick.lua create mode 100644 rideelephant.lua create mode 100644 ridehorse.lua create mode 100644 rideostrich.lua create mode 100644 rideox.lua create mode 100644 ridepig.lua create mode 100644 ridereindeer.lua create mode 100644 samfarmer.lua create mode 100644 samsmith.lua create mode 100644 samwarrior.lua create mode 100644 screenshot.png create mode 100644 spawnbooty.lua create mode 100644 villagerbed.lua create mode 100644 weaponstand.lua create mode 100644 zombiedoctor.lua create mode 100644 zombiefarmer.lua create mode 100644 zombieinstructor.lua create mode 100644 zombieminer.lua create mode 100644 zombiesmith.lua create mode 100644 zombievillager.lua create mode 100644 zombiewarrior.lua diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..db41169 --- /dev/null +++ b/LICENSE @@ -0,0 +1,31 @@ +MIT License + +Copyright (c) 2021 Skandarella + +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. + + +Lincense for original Code (mobs redo + mobs_animal + mob_horse + mobs_npc): (MIT) Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 + +Modified Code by Liil/Wilhelmine/Skandarella (c) 2021 +Textures, Models and Animation by Liil/Wilhelmine/Skandarella under (MIT) License (c) 2021 + +People Sounds by Liil/Wilhelmine/Skandarella. Animal Sounds + Environment are from freesound.org under Creative Commons License. +Thanks to Baidonovan, Timtube, Qubodup, Egomassive, Travisneedham, Mrauralization, Gibarroule, Acclivity, Inspectorj, O-ciz, +Lydmakeren, Shadeslayer99, Erokia, Filmscore, Anton, 15gpanskabokstefflova-nicola, Vataaa and Robinhood76 diff --git a/aboinstructor.lua b/aboinstructor.lua new file mode 100644 index 0000000..b904b5c --- /dev/null +++ b/aboinstructor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.aboinstructor_drops = { +"people:samwarrior" +} + +mobs:register_mob("people:aboinstructor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Instructor.b3d", + textures = { + {"textureaboinstructor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_instructor", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:instructorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:gold_ingot"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "people:emblemoftriumph" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.aboinstructor_drops or mobs.aboinstructor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for honor!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Instructor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Instructor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:aboinstructor", + nodes = {"default:junglewood"}, + neighbors = {"people:weaponstand"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:aboinstructor", S("Instructor Jungle"), "aaboinstructor.png") + +-- compatibility +mobs:alias_mob("people:aboinstructor", "people:aboinstructor") diff --git a/abominer.lua b/abominer.lua new file mode 100644 index 0000000..1e3987c --- /dev/null +++ b/abominer.lua @@ -0,0 +1,138 @@ + +local S = mobs.intllib + + +mobs.abominer_drops = { +"default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump", "default:diamond", "default:copper_lump", +"default:iron_lump", "default:tin_lump", "default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump" +} + +mobs:register_mob("people:abominer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + textures = { + {"textureabominer.png"}, + + }, + makes_footstep_sound = true, +sounds = { random = "people_miner", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:minergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:hemp_oil", "farming:hemp_leaf"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "farming:turkish_delight" or item:get_name() == "farming:garlic_bread" or item:get_name() == "farming:donut" or item:get_name() == "farming:donut_chocolate" or item:get_name() == "farming:donut_apple" or item:get_name() == "farming:porridge" or item:get_name() == "farming:jaffa_cake" or item:get_name() == "farming:apple_pie" or item:get_name() == "farming:spaghetti" or item:get_name() == "farming:burger" or item:get_name() == "farming:bibimbap" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.abominer_drops or mobs.abominer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for food!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Miner stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Miner will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:abominer", + nodes = {"default:junglewood"}, + neighbors = {"people:mineshaft"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:abominer", S("Miner Jungle"), "aabominer.png") + +-- compatibility +mobs:alias_mob("people:abominer", "people:abominer") diff --git a/afrfarmer.lua b/afrfarmer.lua new file mode 100644 index 0000000..14b5a09 --- /dev/null +++ b/afrfarmer.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.afrfarmer_drops = { +"people:dog", "people:goat", "people:dogfoodsack", "people:ridepig", "people:rideostrich" +} + +mobs:register_mob("people:afrfarmer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medfarmer.b3d", + textures = { + {"textureafrfarmer.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_farmerm", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:farmergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:coal_lump"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.afrfarmer_drops or mobs.afrfarmer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Farmer dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Farmer stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Farmer will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:afrfarmer", + nodes = {"default:acacia_wood"}, + neighbors = {"people:feeder"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:afrfarmer", S("Farmer Acacia"), "aafrfarmer.png") + +-- compatibility +mobs:alias_mob("people:afrfarmer", "people:afrfarmer") diff --git a/afrinstructor.lua b/afrinstructor.lua new file mode 100644 index 0000000..4937313 --- /dev/null +++ b/afrinstructor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.afrinstructor_drops = { +"people:afrwarrior" +} + +mobs:register_mob("people:afrinstructor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Instructor.b3d", + textures = { + {"textureafrinstructor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_instructor", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:instructorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:gold_ingot"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "people:emblemoftriumph" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.afrinstructor_drops or mobs.afrinstructor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for honor!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Instructor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Instructor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:afrinstructor", + nodes = {"default:acacia_wood"}, + neighbors = {"people:weaponstand"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:afrinstructor", S("Instructor Acacia"), "aafrinstructor.png") + +-- compatibility +mobs:alias_mob("people:afrinstructor", "people:afrinstructor") diff --git a/afrsmith.lua b/afrsmith.lua new file mode 100644 index 0000000..9014d3b --- /dev/null +++ b/afrsmith.lua @@ -0,0 +1,146 @@ + +local S = mobs.intllib + + +mobs.afrsmith_drops = { +"default:axe_steel", "default:axe_steel", "default:axe_steel", +"default:axe_steel", "default:axe_mese", "default:axe_mese", +"default:axe_diamond", "default:axe_diamond", "default:pick_bronze", "default:pick_bronze","default:pick_steel", "default:pick_steel","default:pick_mese", "default:pick_mese", + "default:pick_diamond", "default:pick_diamond", + "default:shovel_bronze", "default:shovel_bronze", + "default:shovel_steel", "default:shovel_steel", + "default:shovel_mese", "default:shovel_mese", + "default:shovel_diamond", "default:shovel_diamond ", +"default:sword_bronze", "default:sword_bronze", "default:sword_steel", +"default:sword_steel", "default:sword_mese", "default:sword_mese", +"default:sword_diamond", "default:sword_diamond" +} + +mobs:register_mob("people:afrsmith", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medsmith.b3d", + textures = { + {"textureafrsmith.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_smith", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:smithgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.afrsmith_drops or mobs.afrsmith_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Blackmith dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Blacksmith stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Blacksmith will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:afrsmith", + nodes = {"default:acacia_wood"}, + neighbors = {"people:forge"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:afrsmith", S("Blacksmith Acacia"), "aafrsmith.png") + +-- compatibility +mobs:alias_mob("people:afrsmith", "people:afrsmith") diff --git a/afrwarrior.lua b/afrwarrior.lua new file mode 100644 index 0000000..389f13d --- /dev/null +++ b/afrwarrior.lua @@ -0,0 +1,133 @@ + +local S = mobs.intllib + +-- Npc by TenPlus1 + + +mobs:register_mob("people:afrwarrior", { + type = "npc", + passive = false, + damage = 8, + attack_type = "dogshoot", + dogshoot_switch = 1, + dogshoot_count_max = 12, -- shoot for 10 seconds + dogshoot_count2_max = 3, -- dogfight for 3 seconds + shoot_interval = 1.5, + arrow = "people:spearfly", + shoot_offset = 2, + attacks_monsters = true, + attack_npcs = false, + owner_loyal = true, + pathfinding = true, + hp_min = 25, + hp_max = 125, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Warrior.b3d", + drawtype = "front", + textures = { + {"textureafrwarrior.png"}, + }, + makes_footstep_sound = true, + sounds = { + attack = "people_warrior3", + random = "people_warrior2", + damage = "people_male5", + death = "people_warrior", + distance = 10, +}, + walk_velocity = 3, + run_velocity = 4, + jump = true, + drops = { {name = "people:warriorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 2, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 12, + owner = "", + order = "follow", + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + walk_speed = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + shoot_start = 300, + shoot_speed = 80, + shoot_end = 400, + }, + + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, true, true) then return end + + -- capture npc with net or lasso + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + -- protect npc with mobs:protector + if mobs:protect(self, clicker) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + + + -- by right-clicking owner can switch npc between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Warrior stands still.")) + else + self.order = "follow" + + minetest.chat_send_player(name, S("Warrior will follow you.")) + end + end + end, +}) + + +mobs:register_egg("people:afrwarrior", S("Warrior Acacia"), "aafrwarrior.png" ) + +-- compatibility +mobs:alias_mob("people:afrwarrior", "people:afrwarrior") + +mobs:register_arrow("people:spearfly", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"spearfly.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) diff --git a/aradoctor.lua b/aradoctor.lua new file mode 100644 index 0000000..dc36335 --- /dev/null +++ b/aradoctor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.aradoctor_drops = { +"farming:hemp_leaf", "farming:hemp_oil", "farming:carrot_gold", "people:firsaidkit" +} + +mobs:register_mob("people:aradoctor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Doctor.b3d", + textures = { + {"texturearadoctor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_female", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:doctorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:mint_tea"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_lump" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.aradoctor_drops or mobs.aradoctor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Doctor dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Doctor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Doctor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:aradoctor", + nodes = {"default:acacia_wood"}, + neighbors = {"people:firstaidnode"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:aradoctor", S("Doctor Acacia"), "aaradoctor.png") + +-- compatibility +mobs:alias_mob("people:aradoctor", "people:aradoctor") diff --git a/araminer.lua b/araminer.lua new file mode 100644 index 0000000..cb55128 --- /dev/null +++ b/araminer.lua @@ -0,0 +1,138 @@ + +local S = mobs.intllib + + +mobs.araminer_drops = { +"default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump", "default:diamond", "default:copper_lump", +"default:iron_lump", "default:tin_lump", "default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump" +} + +mobs:register_mob("people:araminer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + textures = { + {"texturearaminer.png"}, + + }, + makes_footstep_sound = true, +sounds = { random = "people_miner", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:minergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:hemp_oil", "farming:hemp_leaf"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "farming:turkish_delight" or item:get_name() == "farming:garlic_bread" or item:get_name() == "farming:donut" or item:get_name() == "farming:donut_chocolate" or item:get_name() == "farming:donut_apple" or item:get_name() == "farming:porridge" or item:get_name() == "farming:jaffa_cake" or item:get_name() == "farming:apple_pie" or item:get_name() == "farming:spaghetti" or item:get_name() == "farming:burger" or item:get_name() == "farming:bibimbap" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.araminer_drops or mobs.araminer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for food!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Miner stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Miner will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:araminer", + nodes = {"default:acacia_wood"}, + neighbors = {"people:mineshaft"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:araminer", S("Miner Acacia"), "aaraminer.png") + +-- compatibility +mobs:alias_mob("people:araminer", "people:araminer") diff --git a/aravillager.lua b/aravillager.lua new file mode 100644 index 0000000..9db78cd --- /dev/null +++ b/aravillager.lua @@ -0,0 +1,86 @@ +mobs:register_mob("people:aravillager", { + stepheight = 2, + type = "animal", + passive = true, + attack_type = "dogfight", + group_attack = true, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 2, + hp_min = 30, + hp_max = 60, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Villager.b3d", + textures = { + {"texturearavillager.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "people_female2", + damage = "people_female4", + death = "people_femaledeath", + distance = 10, + }, + walk_velocity = 1.5, + run_velocity = 2.5, + walk_chance = 10, + runaway = true, + runaway_from = {"animalworld:bear", "animalworld:crocodile", "animalworld:tiger", "animalworld:spider", "animalworld:spidermale", "animalworld:shark", "animalworld:hyena", "animalworld:kobra", "animalworld:monitor", "animalworld:snowleopard", "animalworld:volverine", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "people:pirate", "people:evilminer", "people:jealousminer", "people:hatefulminer", "people:plunderercrossbow", "people:plundererflask", "people:plundererstick"}, + jump = true, + jump_height = 3, + pushable = true, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 10, + drops = { {name = "people:villagergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_start = 200, + walk_end = 300, + run_speed = 200, + run_start = 300, + run_end = 300, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:aravillager", + nodes = {"default:acacia_wood"}, + neighbors = {"people:villagerbed"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:aravillager", ("Villager Acacia"), "aaravillager.png") + + +mobs:alias_mob("people:aravillager", "people:aravillager") -- compatibility diff --git a/bootynode.lua b/bootynode.lua new file mode 100644 index 0000000..a376c9b --- /dev/null +++ b/bootynode.lua @@ -0,0 +1,20 @@ +minetest.register_node("people:bootynode", { + description = "Booty", + tiles = { + "people_bootynode_top.png", + "people_bootynode_bottom.png", + "people_bootynode_right.png", + "people_bootynode_left.png", + "people_bootynode_back.png", + "people_bootynode_front.png" + }, + groups = {choppy = 2}, + drop = "default:gold_lump 1", + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:bootynode", + burntime = 4, +}) diff --git a/chindoctor.lua b/chindoctor.lua new file mode 100644 index 0000000..549d343 --- /dev/null +++ b/chindoctor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.chindoctor_drops = { +"farming:hemp_leaf", "farming:hemp_oil", "farming:carrot_gold", "people:firsaidkit" +} + +mobs:register_mob("people:chindoctor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Doctor.b3d", + textures = { + {"texturechindoctor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_female", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:doctorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:mint_tea"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_lump" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.chindoctor_drops or mobs.chindoctor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Doctor dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Doctor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Doctor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:chindoctor", + nodes = {"default:aspen_wood"}, + neighbors = {"people:firstaidnode"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:chindoctor", S("Doctor Aspen"), "achindoctor.png") + +-- compatibility +mobs:alias_mob("people:chindoctor", "people:chindoctor") diff --git a/chinfarmer.lua b/chinfarmer.lua new file mode 100644 index 0000000..b4240d8 --- /dev/null +++ b/chinfarmer.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.chinfarmer_drops = { +"people:dog", "people:goat", "people:dogfoodsack", "people:ridepig", "people:ridereindeer" +} + +mobs:register_mob("people:chinfarmer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medfarmer2.b3d", + textures = { + {"texturechinfarmer.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_farmerf", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:farmergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:coal_lump"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.chinfarmer_drops or mobs.chinfarmer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Farmer dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Farmer stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Farmer will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:chinfarmer", + nodes = {"default:aspen_wood"}, + neighbors = {"people:feeder"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:chinfarmer", S("Farmer Aspen"), "achinfarmer.png") + +-- compatibility +mobs:alias_mob("people:chinfarmer", "people:chinfarmer") diff --git a/chininstructor.lua b/chininstructor.lua new file mode 100644 index 0000000..9b510b7 --- /dev/null +++ b/chininstructor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.chininstructor_drops = { +"people:ewewarrior" +} + +mobs:register_mob("people:chininstructor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Instructor.b3d", + textures = { + {"texturechininstructor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_instructor", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:instructorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:gold_ingot"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "people:emblemoftriumph" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.chininstructor_drops or mobs.chininstructor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for honor!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Instructor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Instructor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:chininstructor", + nodes = {"default:aspen_wood"}, + neighbors = {"people:weaponstand"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:chininstructor", S("Instructor Aspen"), "achininstructor.png") + +-- compatibility +mobs:alias_mob("people:chininstructor", "people:chininstructor") diff --git a/chinsmith.lua b/chinsmith.lua new file mode 100644 index 0000000..e79f691 --- /dev/null +++ b/chinsmith.lua @@ -0,0 +1,146 @@ + +local S = mobs.intllib + + +mobs.chinsmith_drops = { +"default:axe_steel", "default:axe_steel", "default:axe_steel", +"default:axe_steel", "default:axe_mese", "default:axe_mese", +"default:axe_diamond", "default:axe_diamond", "default:pick_bronze", "default:pick_bronze","default:pick_steel", "default:pick_steel","default:pick_mese", "default:pick_mese", + "default:pick_diamond", "default:pick_diamond", + "default:shovel_bronze", "default:shovel_bronze", + "default:shovel_steel", "default:shovel_steel", + "default:shovel_mese", "default:shovel_mese", + "default:shovel_diamond", "default:shovel_diamond ", +"default:sword_bronze", "default:sword_bronze", "default:sword_steel", +"default:sword_steel", "default:sword_mese", "default:sword_mese", +"default:sword_diamond", "default:sword_diamond" +} + +mobs:register_mob("people:chinsmith", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medsmith.b3d", + textures = { + {"texturechinsmith.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_smith", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:smithgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.chinsmith_drops or mobs.chinsmith_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Blackmith dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Blacksmith stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Blacksmith will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:chinsmith", + nodes = {"default:aspen_wood"}, + neighbors = {"people:forge"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:chinsmith", S("Blacksmith Aspen"), "achinsmith.png") + +-- compatibility +mobs:alias_mob("people:chinsmith", "people:chinsmith") diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..ae20e9f --- /dev/null +++ b/depends.txt @@ -0,0 +1,7 @@ +mobs +default +farming +ethereal? +xocean? +fishing? +hunger_ng? \ No newline at end of file diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..9216875 --- /dev/null +++ b/description.txt @@ -0,0 +1,3 @@ +Based on Mobs Redo. +Adds the possibility to build living villages in your Minetest Game world. +Trade items for random stuff from your villagers, recruit mounts and warriors. \ No newline at end of file diff --git a/dog.lua b/dog.lua new file mode 100644 index 0000000..fc1b371 --- /dev/null +++ b/dog.lua @@ -0,0 +1,149 @@ +mobs:register_mob("people:dog", { + stay_near = {"people:dogfoodsack", 10}, + type = "animal", + visual = "mesh", + mesh = "Dog.b3d", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.5, 0.4}, + animation = { + speed_normal = 100, + stand_speed = 50, + stand_start = 400, + stand_end = 500, + stand2_speed = 50, + stand2_start = 250, + stand2_end = 350, + stand3_speed = 50, + stand3_start = 400, + stand3_end = 500, + stand4_speed = 50, + stand4_start = 500, + stand4_end = 600, + stand5_speed = 50, + stand5_start = 500, + stand5_end = 600, + walk_start = 0, + walk_end = 100, + punch_start = 100, + punch_end = 200, + punch2_start = 100, + punch2_end = 200, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + textures = { + {"texturedog.png"} + }, + fear_height = 3, + runaway = false, + jump = true, + jump_height = 6, + fly = false, + walk_velocity = 1, + run_velocity = 4, + view_range = 10, + passive = false, + attack_type = "dogfight", + damage = 9, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npcs = false, + pathfinding = true, + group_attack = true, + hp_min = 35, + hp_max = 100, + armor = 100, + knock_back = 2, + lava_damage = 5, + fall_damage = 1, + water_damage = 0, + makes_footstep_sound = true, + sounds = { + attack = "people_dog4", + random = "people_dog2", + damage = "people_dog3", + death = "people_dog5", + distance = 10, + }, + follow = {"mobs:meat_raw", "people:dogfood", "people:dogfood_cooked"}, + on_rightclick = function(self, clicker) + if mobs:feed_tame(self, clicker, 6, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 30, 50, 100, false, nil) then return end + + if clicker:get_wielded_item():is_empty() and clicker:get_player_name() == self.owner then + if clicker:get_player_control().sneak then + self.order = "" + self.state = "walk" + self.walk_velocity = 2 + self.stepheight = 2 + else + if self.order == "follow" then + self.order = "stand" + self.state = "stand" + self.walk_velocity = 2 + self.stepheight = 2 + else + self.order = "follow" + self.state = "walk" + self.walk_velocity = 3 + self.stepheight = 2 + end + end + return + end + end +}) + +mobs:register_egg("people:dog", "Dog", "adog.png") +-- raw dogfood +minetest.register_craftitem(":people:dogfood", { + description = ("Dog Food"), + inventory_image = "people_dogfood.png", + on_use = minetest.item_eat(2), + groups = {food_meat_raw = 1, food_mutton_raw = 1, flammable = 2}, +}) + +-- cooked dogfood +minetest.register_craftitem(":people:dogfood_cooked", { + description = ("Cooked Dog Food"), + inventory_image = "people_dogfood_cooked.png", + on_use = minetest.item_eat(6), + groups = {food_meat = 1, food_mutton = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "people:dogfood_cooked", + recipe = "people:dogfood", + cooktime = 5, +}) + + +minetest.register_node("people:dogfoodsack", { + description = "Sack of Dog Food", + tiles = { + "people_dogfoodsack_top.png", + "people_dogfoodsack_bottom.png", + "people_dogfoodsack_right.png", + "people_dogfoodsack_left.png", + "people_dogfoodsack_back.png", + "people_dogfoodsack_front.png" + }, + groups = {crumbly = 3}, + drop = "people:dogfood 9", + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_craft({ + output = "people:dogfoodsack", + recipe = { + {"people:dogfood", "people:dogfood", "people:dogfood"}, + {"people:dogfood", "people:dogfood", "people:dogfood"}, + {"people:dogfood", "people:dogfood", "people:dogfood"}, + } +}) \ No newline at end of file diff --git a/evilminer.lua b/evilminer.lua new file mode 100644 index 0000000..a68c78b --- /dev/null +++ b/evilminer.lua @@ -0,0 +1,74 @@ +mobs:register_mob("people:evilminer", { + type = "monster", + passive = false, + attack_type = "dogfight", + attack_animals = true, + reach = 2, + damage = 9, + hp_min = 55, + hp_max = 85, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + visual_size = {x = 1.0, y = 1.0}, + textures = { + {"textureevilminer.png"}, + }, + sounds = { + attack = "people_evilminer2", + random = "people_evilminer4", + damage = "people_evilminer", + death = "people_evilminer3", + distance = 15, + }, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 3, + runaway = false, + jump = true, + drops = { + {name = "default:gold_lump", chance = 1, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + view_range = 15, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 5, 50, 80, false, nil) then return end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:evilminer", + nodes = {"default:stone"}, + neighbors = {"default:stone_with_diamond", "default:mese"}, + min_light = 0, + interval = 60, + chance = 2, -- 15000 + min_height = -1000, + max_height = -400, +}) +end + +mobs:register_egg("people:evilminer", ("Evil Miner"), "aevilminer.png") diff --git a/eweminer.lua b/eweminer.lua new file mode 100644 index 0000000..e12aa92 --- /dev/null +++ b/eweminer.lua @@ -0,0 +1,138 @@ + +local S = mobs.intllib + + +mobs.eweminer_drops = { +"default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump", "default:diamond", "default:copper_lump", +"default:iron_lump", "default:tin_lump", "default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump" +} + +mobs:register_mob("people:eweminer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + textures = { + {"textureeweminer.png"}, + + }, + makes_footstep_sound = true, +sounds = { random = "people_miner", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:minergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:hemp_oil", "farming:hemp_leaf"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "farming:turkish_delight" or item:get_name() == "farming:garlic_bread" or item:get_name() == "farming:donut" or item:get_name() == "farming:donut_chocolate" or item:get_name() == "farming:donut_apple" or item:get_name() == "farming:porridge" or item:get_name() == "farming:jaffa_cake" or item:get_name() == "farming:apple_pie" or item:get_name() == "farming:spaghetti" or item:get_name() == "farming:burger" or item:get_name() == "farming:bibimbap" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.eweminer_drops or mobs.eweminer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for food!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Miner stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Miner will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:eweminer", + nodes = {"default:aspen_wood"}, + neighbors = {"people:mineshaft"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:eweminer", S("Miner Aspen"), "aeweminer.png") + +-- compatibility +mobs:alias_mob("people:eweminer", "people:eweminer") diff --git a/ewevillager.lua b/ewevillager.lua new file mode 100644 index 0000000..6d1a089 --- /dev/null +++ b/ewevillager.lua @@ -0,0 +1,86 @@ +mobs:register_mob("people:ewevillager", { + stepheight = 2, + type = "animal", + passive = true, + attack_type = "dogfight", + group_attack = true, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 2, + hp_min = 30, + hp_max = 60, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Villager.b3d", + textures = { + {"textureewevillager.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "people_female2", + damage = "people_female4", + death = "people_femaledeath", + distance = 10, + }, + walk_velocity = 1.5, + run_velocity = 2.5, + walk_chance = 10, + runaway = true, + runaway_from = {"animalworld:bear", "animalworld:crocodile", "animalworld:tiger", "animalworld:spider", "animalworld:spidermale", "animalworld:shark", "animalworld:hyena", "animalworld:kobra", "animalworld:monitor", "animalworld:snowleopard", "animalworld:volverine", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "people:pirate", "people:evilminer", "people:jealousminer", "people:hatefulminer", "people:plunderercrossbow", "people:plundererflask", "people:plundererstick"}, + jump = true, + jump_height = 3, + pushable = true, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 10, + drops = { {name = "people:villagergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_start = 200, + walk_end = 300, + run_speed = 200, + run_start = 300, + run_end = 300, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:ewevillager", + nodes = {"default:aspen_wood"}, + neighbors = {"people:villagerbed"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:ewevillager", ("Villager Aspen"), "aewevillager.png") + + +mobs:alias_mob("people:ewevillager", "people:ewevillager") -- compatibility diff --git a/ewewarrior.lua b/ewewarrior.lua new file mode 100644 index 0000000..e8d5f42 --- /dev/null +++ b/ewewarrior.lua @@ -0,0 +1,133 @@ + +local S = mobs.intllib + +-- Npc by TenPlus1 + + +mobs:register_mob("people:ewewarrior", { + type = "npc", + passive = false, + damage = 8, + attack_type = "dogshoot", + dogshoot_switch = 1, + dogshoot_count_max = 12, -- shoot for 10 seconds + dogshoot_count2_max = 3, -- dogfight for 3 seconds + shoot_interval = 1.5, + arrow = "people:spearfly", + shoot_offset = 2, + attacks_monsters = true, + attack_npcs = false, + owner_loyal = true, + pathfinding = true, + hp_min = 25, + hp_max = 125, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Warrior.b3d", + drawtype = "front", + textures = { + {"textureewewarrior.png"}, + }, + makes_footstep_sound = true, + sounds = { + attack = "people_warrior3", + random = "people_warrior2", + damage = "people_male5", + death = "people_warrior", + distance = 10, +}, + walk_velocity = 3, + run_velocity = 4, + jump = true, + drops = { {name = "people:warriorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 2, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 12, + owner = "", + order = "follow", + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + walk_speed = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + shoot_start = 300, + shoot_speed = 80, + shoot_end = 400, + }, + + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, true, true) then return end + + -- capture npc with net or lasso + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + -- protect npc with mobs:protector + if mobs:protect(self, clicker) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + + + -- by right-clicking owner can switch npc between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Warrior stands still.")) + else + self.order = "follow" + + minetest.chat_send_player(name, S("Warrior will follow you.")) + end + end + end, +}) + + +mobs:register_egg("people:ewewarrior", S("Warrior Aspen"), "aewewarrior.png" ) + +-- compatibility +mobs:alias_mob("people:ewewarrior", "people:ewewarrior") + +mobs:register_arrow("people:spearfly", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"spearfly.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) diff --git a/feeder.lua b/feeder.lua new file mode 100644 index 0000000..abd935d --- /dev/null +++ b/feeder.lua @@ -0,0 +1,19 @@ +minetest.register_node("people:feeder", { + description = "Feeder", + visual_scale = 1, + mesh = "Feeder.b3d", + tiles = {"texturefeeder.png"}, + inventory_image = "afeeder.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:feeder", + burntime = 4, +}) diff --git a/firstaidnode.lua b/firstaidnode.lua new file mode 100644 index 0000000..e9cb99c --- /dev/null +++ b/firstaidnode.lua @@ -0,0 +1,18 @@ +minetest.register_node("people:firstaidnode", { + description = "First Aid Node", + tiles = { + "people_firstaidnode_top.png", + "people_firstaidnode_bottom.png", + "people_firstaidnode_right.png", + "people_firstaidnode_left.png", + "people_firstaidnode_back.png", + "people_firstaidnode_front.png" + }, + groups = {choppy = 2} +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:firstaidnode", + burntime = 4, +}) diff --git a/forge.lua b/forge.lua new file mode 100644 index 0000000..5b78820 --- /dev/null +++ b/forge.lua @@ -0,0 +1,32 @@ +minetest.register_node("people:forge", { + description = "Anvil", + visual_scale = 0.5, + mesh = "Forge.b3d", + tiles = {"textureforge.png"}, + inventory_image = "aforge.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collision_box = { + type = "fixed", + fixed = { + {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}, + --[[{-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}, + {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}]] + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3} + } + }, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "cooking", + output = "default:steel_ingot", + recipe = "people:forge", +}) \ No newline at end of file diff --git a/goat.lua b/goat.lua new file mode 100644 index 0000000..06a74d1 --- /dev/null +++ b/goat.lua @@ -0,0 +1,175 @@ + mobs:register_mob("people:goat", { + stay_near = {"farming:straw", 10, "people:feeder", 10}, + stepheight = 3, + type = "animal", + passive = false, + damage = 4, + hp_min = 25, + hp_max = 45, + armor = 100, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.5, 0.4}, + visual = "mesh", + mesh = "Goat.b3d", + textures = { + {"texturegoat.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "people_goat", + damage = "people_goat2", + distance = 5, +}, + walk_velocity = 1, + run_velocity = 2, + walk_chance = 10, + runaway = true, + jump = true, + jump_height = 3, + pushable = true, + drops = { + {name = "people:mutton_raw", chance = 1, min = 1, max = 2}, + {name = "wool:white", chance = 1, min = 1, max = 2}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + animation = { + speed_normal = 50, + speed_run = 80, + stand_start = 0, + stand_end = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + follow = { + "farming:wheat", "default:grass_1", "farming:barley", + "farming:oat", "farming:rye" + }, + view_range = 8, + replace_rate = 10, + replace_what = { + {"group:grass", "air", -1}, + {"default:dirt_with_grass", "default:dirt", -2} + }, + fear_height = 4, + on_replace = function(self, pos, oldnode, newnode) + + self.food = (self.food or 0) + 1 + + -- if sheep replaces 8x grass then it regrows wool + if self.food >= 8 then + + self.food = 0 + self.gotten = false + + self.object:set_properties({ + textures = {"texturegoat.png"}, + mesh = "Goat.b3d", + }) + end + end, + on_rightclick = function(self, clicker) + + --are we feeding? + if mobs:feed_tame(self, clicker, 8, true, true) then + + --if fed 7 times then sheep regrows wool + if self.food and self.food > 6 then + + self.gotten = false + + self.object:set_properties({ + textures = {"texturegoat.png"}, + mesh = "Goat.b3d", + }) + end + + return + end + + local item = clicker:get_wielded_item() + local itemname = item:get_name() + local name = clicker:get_player_name() + + --are we giving a haircut> + if itemname == "mobs:shears" then + + if self.gotten ~= false + or self.child ~= false + or name ~= self.owner + or not minetest.get_modpath("wool") then + return + end + + self.gotten = true -- shaved + + local obj = minetest.add_item( + self.object:get_pos(), + ItemStack( "wool:white" ) + ) + + if obj then + + obj:setvelocity({ + x = math.random(-1, 1), + y = 5, + z = math.random(-1, 1) + }) + end + + item:add_wear(650) -- 100 uses + + clicker:set_wielded_item(item) + + self.object:set_properties({ + textures = {"texturegoat2.png"}, + mesh = "Goat.b3d", + }) + + return + end + + + + -- protect mod with mobs:protector item + if mobs:protect(self, clicker) then return end + + --are we capturing? + if mobs:capture_mob(self, clicker, 30, 50, 100, false, nil) then return end + end + }) + +mobs:register_egg("people:goat", ("Goat"), "agoat.png") + +mobs:alias_mob("people:goat", "people:goat") -- compatibility + +-- raw mutton +minetest.register_craftitem(":people:mutton_raw", { + description = ("Raw Mutton"), + inventory_image = "people_mutton_raw.png", + on_use = minetest.item_eat(2), + groups = {food_meat_raw = 1, food_mutton_raw = 1, flammable = 2}, +}) + +-- cooked mutton +minetest.register_craftitem(":people:mutton_cooked", { + description = ("Cooked Mutton"), + inventory_image = "people_mutton_cooked.png", + on_use = minetest.item_eat(6), + groups = {food_meat = 1, food_mutton = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "people:mutton_cooked", + recipe = "people:mutton_raw", + cooktime = 5, +}) diff --git a/guide.txt b/guide.txt new file mode 100644 index 0000000..84e6fe2 --- /dev/null +++ b/guide.txt @@ -0,0 +1,29 @@ +Guide: + +First you should reach a certain level of strength in Minetest, best above stone tech level, if you are playing Single Player or without NPCs to fight for you. +I recommend to use 3D Armor. +Brace yourself for your first contact with the plunderers, normally they come in a pack of melee and range and you can only beat one of them, +if you manage to separate a plunderer from the group. + +If you are lucky you will be victorious and gain your first item for attracting people. This could be an Anvil, Weaponstand, Feeder, Villager Bed, +Mineshaft or First Aid Node. + +If you haven't build a building yet, now is the time to come, because you need a wooden floor to place your gathered items on. +All 5 default wood types (apple, acacia, pine, aspen, jungle) are suitable for a building floor and will spawn different looking people. +After your first citizen has spawned, he is trading with you, but wont stay near your building. You first have to “tame” him or her, +every profession likes and needs different things: + +Blacksmith: Farming Dishes +Farmer: Coal Lumps +Doctor: Mint Tea +Miner: Hemp Oil + Hemp Leaves +Instructor: Gold Ingot +Warrior: Farming Dishes + +After you satisfied your new resident, you can tell him or her to stay at place. If an enemy will raid your town and kill someone, +you will find a wooden cross. You can burn it in the furnace, or bury the dead, but beware: Do not forget to bury the citizens +in soil which provides the corpse the chance to rot, otherwise, a surprise will occur at night... + +To be successful you need to mine a lot of gold and use the trading system wisely, because its based on chance. + +There is some more stuff in this mod, but this will not be revealed here, the basics are enough to play successful, the rest should be discovered by yourself. diff --git a/hatefulminer.lua b/hatefulminer.lua new file mode 100644 index 0000000..498ecfb --- /dev/null +++ b/hatefulminer.lua @@ -0,0 +1,74 @@ +mobs:register_mob("people:hatefulminer", { + type = "monster", + passive = false, + attack_type = "dogfight", + attack_animals = true, + reach = 2, + damage = 6, + hp_min = 35, + hp_max = 55, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + visual_size = {x = 1.0, y = 1.0}, + textures = { + {"texturehatefulminer.png"}, + }, + sounds = { + attack = "people_evilminer2", + random = "people_evilminer4", + damage = "people_evilminer", + death = "people_evilminer3", + distance = 15, + }, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 3, + runaway = false, + jump = true, + drops = { + {name = "default:iron_lump", chance = 1, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + view_range = 15, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 5, 50, 80, false, nil) then return end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:hatefulminer", + nodes = {"default:stone"}, + neighbors = {"default:stone_with_iron", "default:stone_with_gold"}, + min_light = 0, + interval = 60, + chance = 2, -- 15000 + min_height = -300, + max_height = -80, +}) +end + +mobs:register_egg("people:hatefulminer", ("Hateful Miner"), "ahatefulminer.png") diff --git a/hunger.lua b/hunger.lua new file mode 100644 index 0000000..5a37f4d --- /dev/null +++ b/hunger.lua @@ -0,0 +1,17 @@ +if minetest.get_modpath("hunger_ng") ~= nil then +hunger_ng.add_hunger_data('people:mutton_raw', { + satiates = 1.0, + }) + hunger_ng.add_hunger_data('people:mutton_cooked', { + satiates = 3.0, + }) + hunger_ng.add_hunger_data('people:dogfood', { + satiates = 1.0, + }) + hunger_ng.add_hunger_data('people:dogfood_cooked', { + satiates = 3.0, + }) + hunger_ng.add_hunger_data('people:bandage', { + heals = 20.0, +}) +end \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..46efd1c --- /dev/null +++ b/init.lua @@ -0,0 +1,96 @@ + +-- Load support for intllib. +local path = minetest.get_modpath(minetest.get_current_modname()) .. "/" + +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(path .. "intllib.lua") + +mobs.intllib = S + + +-- Check for custom mob spawn file +local input = io.open(path .. "spawn.lua", "r") + +if input then + mobs.custom_spawn_animal = true + input:close() + input = nil +end + + +-- Animals +dofile(path .. "goat.lua") -- +dofile(path .. "dog.lua") -- +dofile(path .. "hunger.lua") -- +dofile(path .. "forge.lua") -- +dofile(path .. "feeder.lua") -- +dofile(path .. "weaponstand.lua") -- +dofile(path .. "villagerbed.lua") -- +dofile(path .. "mineshaft.lua") -- +dofile(path .. "firstaidnode.lua") -- +dofile(path .. "bootynode.lua") -- +dofile(path .. "plunderercrossbow.lua") -- +dofile(path .. "pirate.lua") -- +dofile(path .. "plundererstick.lua") -- +dofile(path .. "plundererflask.lua") -- +dofile(path .. "spawnbooty.lua") -- +dofile(path .. "medsmith.lua") -- +dofile(path .. "afrsmith.lua") -- +dofile(path .. "norsmith.lua") -- +dofile(path .. "chinsmith.lua") -- +dofile(path .. "samsmith.lua") -- +dofile(path .. "medfarmer.lua") -- +dofile(path .. "norfarmer.lua") -- +dofile(path .. "samfarmer.lua") -- +dofile(path .. "afrfarmer.lua") -- +dofile(path .. "chinfarmer.lua") -- +dofile(path .. "medvillager.lua") -- +dofile(path .. "aravillager.lua") -- +dofile(path .. "papvillager.lua") -- +dofile(path .. "ewevillager.lua") -- +dofile(path .. "norvillager.lua") -- +dofile(path .. "medminer.lua") -- +dofile(path .. "araminer.lua") -- +dofile(path .. "abominer.lua") -- +dofile(path .. "eweminer.lua") -- +dofile(path .. "norminer.lua") -- +dofile(path .. "jealousminer.lua") -- +dofile(path .. "hatefulminer.lua") -- +dofile(path .. "evilminer.lua") -- +dofile(path .. "meddoctor.lua") -- +dofile(path .. "aradoctor.lua") -- +dofile(path .. "chindoctor.lua") -- +dofile(path .. "nordoctor.lua") -- +dofile(path .. "papdoctor.lua") -- +dofile(path .. "medwarrior.lua") -- +dofile(path .. "norwarrior.lua") -- +dofile(path .. "samwarrior.lua") -- +dofile(path .. "ewewarrior.lua") -- +dofile(path .. "afrwarrior.lua") -- +dofile(path .. "medinstructor.lua") -- +dofile(path .. "norinstructor.lua") -- +dofile(path .. "chininstructor.lua") -- +dofile(path .. "afrinstructor.lua") -- +dofile(path .. "aboinstructor.lua") -- +dofile(path .. "zombiedoctor.lua") -- +dofile(path .. "zombiesmith.lua") -- +dofile(path .. "zombievillager.lua") -- +dofile(path .. "zombiewarrior.lua") -- +dofile(path .. "zombiefarmer.lua") -- +dofile(path .. "zombieinstructor.lua") -- +dofile(path .. "zombieminer.lua") -- +dofile(path .. "ridepig.lua") -- +dofile(path .. "rideelephant.lua") -- +dofile(path .. "rideostrich.lua") -- +dofile(path .. "ridehorse.lua") -- +dofile(path .. "ridereindeer.lua") -- +dofile(path .. "rideox.lua") -- + +-- Load custom spawning +if mobs.custom_spawn_animal then + dofile(path .. "spawn.lua") +end + + + +print (S("[MOD] Mobs Redo Animals loaded")) diff --git a/intllib.lua b/intllib.lua new file mode 100644 index 0000000..adb0f88 --- /dev/null +++ b/intllib.lua @@ -0,0 +1,3 @@ +-- Support for the old multi-load method +dofile(minetest.get_modpath("intllib").."/init.lua") + diff --git a/jealousminer.lua b/jealousminer.lua new file mode 100644 index 0000000..8a827bb --- /dev/null +++ b/jealousminer.lua @@ -0,0 +1,74 @@ +mobs:register_mob("people:jealousminer", { + type = "monster", + passive = false, + attack_type = "dogfight", + attack_animals = true, + reach = 2, + damage = 4, + hp_min = 15, + hp_max = 25, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + visual_size = {x = 1.0, y = 1.0}, + textures = { + {"texturejealousminer.png"}, + }, + sounds = { + attack = "people_evilminer2", + random = "people_evilminer4", + damage = "people_evilminer", + death = "people_evilminer3", + distance = 15, + }, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 3, + runaway = false, + jump = true, + drops = { + {name = "default:copper_lump", chance = 1, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + view_range = 15, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 5, 50, 80, false, nil) then return end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:jealousminer", + nodes = {"default:stone"}, + neighbors = {"default:stone_with_coal", "default:stone_with_copper"}, + min_light = 0, + interval = 60, + chance = 2, -- 15000 + min_height = -100, + max_height = 0, +}) +end + +mobs:register_egg("people:jealousminer", ("Jealous Miner"), "ajealousminer.png") diff --git a/meddoctor.lua b/meddoctor.lua new file mode 100644 index 0000000..d715aed --- /dev/null +++ b/meddoctor.lua @@ -0,0 +1,188 @@ + +local S = mobs.intllib + + +mobs.meddoctor_drops = { +"farming:hemp_leaf", "farming:hemp_oil", "farming:carrot_gold", "people:firsaidkit" +} + +mobs:register_mob("people:meddoctor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Doctor.b3d", + textures = { + {"texturemeddoctor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_female", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:doctorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:mint_tea"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_lump" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.meddoctor_drops or mobs.meddoctor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Doctor dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Doctor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Doctor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:meddoctor", + nodes = {"default:wood"}, + neighbors = {"people:firstaidnode"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:meddoctor", S("Doctor Apple"), "ameddoctor.png") + +-- compatibility +mobs:alias_mob("people:meddoctor", "people:meddoctor") + +minetest.register_node("people:firsaidkit", { + description = "First Aid Kit", + tiles = { + "people_firsaidkit_top.png", + "people_firsaidkit_bottom.png", + "people_firsaidkit_right.png", + "people_firsaidkit_left.png", + "people_firsaidkit_back.png", + "people_firsaidkit_front.png" + }, + groups = {crumbly = 3}, + drop = "people:bandage 9", + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_craft({ + output = "people:firsaidkit", + recipe = { + {"people:bandage", "people:bandage", "people:bandage"}, + {"people:bandage", "people:bandage", "people:bandage"}, + {"people:bandage", "people:bandage", "people:bandage"}, + } +}) + +-- bandage +minetest.register_craftitem(":people:bandage", { + description = ("Healing Bandage"), + inventory_image = "people_bandage.png", + on_use = minetest.item_eat(2), + groups = {food_meat_raw = 1, fleshy = 3, flammable = 2}, +}) + +minetest.register_node("people:doctorgrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:doctorgrave", + burntime = 6, +}) diff --git a/medfarmer.lua b/medfarmer.lua new file mode 100644 index 0000000..100d822 --- /dev/null +++ b/medfarmer.lua @@ -0,0 +1,157 @@ + +local S = mobs.intllib + + +mobs.medfarmer_drops = { +"people:dog", "people:goat", "people:dogfoodsack", "people:ridepig", "people:rideox" +} + +mobs:register_mob("people:medfarmer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medfarmer.b3d", + textures = { + {"texturemedfarmer.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_farmerm", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:farmergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:coal_lump"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.medfarmer_drops or mobs.medfarmer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Farmer dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Farmer stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Farmer will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:medfarmer", + nodes = {"default:wood"}, + neighbors = {"people:feeder"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:medfarmer", S("Farmer Apple"), "amedfarmer.png") + +-- compatibility +mobs:alias_mob("people:medfarmer", "people:medfarmer") + +minetest.register_node("people:farmergrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:farmergrave", + burntime = 6, +}) + diff --git a/medinstructor.lua b/medinstructor.lua new file mode 100644 index 0000000..2315f03 --- /dev/null +++ b/medinstructor.lua @@ -0,0 +1,162 @@ + +local S = mobs.intllib + + +mobs.medinstructor_drops = { +"people:medwarrior" +} + +mobs:register_mob("people:medinstructor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Instructor.b3d", + textures = { + {"texturemedinstructor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_instructor", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:instructorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:gold_ingot"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "people:emblemoftriumph" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.medinstructor_drops or mobs.medinstructor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for honor!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Instructor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Instructor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:medinstructor", + nodes = {"default:wood"}, + neighbors = {"people:weaponstand"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:medinstructor", S("Instructor Apple"), "amedinstructor.png") + +-- compatibility +mobs:alias_mob("people:medinstructor", "people:medinstructor") + +minetest.register_craftitem("people:emblemoftriumph", { + description = S("Emblem of Triumph"), + inventory_image = "people_emblemoftriumph.png", +}) + + +minetest.register_node("people:instructorgrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:instructorgrave", + burntime = 6, +}) diff --git a/medminer.lua b/medminer.lua new file mode 100644 index 0000000..3451b5c --- /dev/null +++ b/medminer.lua @@ -0,0 +1,158 @@ + +local S = mobs.intllib + + +mobs.medminer_drops = { +"default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump", "default:diamond", "default:copper_lump", +"default:iron_lump", "default:tin_lump", "default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump" +} + +mobs:register_mob("people:medminer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + textures = { + {"texturemedminer.png"}, + + }, + makes_footstep_sound = true, +sounds = { random = "people_miner", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:minergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:hemp_oil", "farming:hemp_leaf"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "farming:turkish_delight" or item:get_name() == "farming:garlic_bread" or item:get_name() == "farming:donut" or item:get_name() == "farming:donut_chocolate" or item:get_name() == "farming:donut_apple" or item:get_name() == "farming:porridge" or item:get_name() == "farming:jaffa_cake" or item:get_name() == "farming:apple_pie" or item:get_name() == "farming:spaghetti" or item:get_name() == "farming:burger" or item:get_name() == "farming:bibimbap" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.medminer_drops or mobs.medminer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for food!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Miner stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Miner will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:medminer", + nodes = {"default:wood"}, + neighbors = {"people:mineshaft"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:medminer", S("Miner Apple"), "amedminer.png") + +-- compatibility +mobs:alias_mob("people:medminer", "people:medminer") + +minetest.register_node("people:minergrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:minergrave", + burntime = 6, +}) diff --git a/medsmith.lua b/medsmith.lua new file mode 100644 index 0000000..4ed8f13 --- /dev/null +++ b/medsmith.lua @@ -0,0 +1,167 @@ + +local S = mobs.intllib + + +mobs.medsmith_drops = { +"default:axe_steel", "default:axe_steel", "default:axe_steel", +"default:axe_steel", "default:axe_mese", "default:axe_mese", +"default:axe_diamond", "default:axe_diamond", "default:pick_bronze", "default:pick_bronze","default:pick_steel", "default:pick_steel","default:pick_mese", "default:pick_mese", + "default:pick_diamond", "default:pick_diamond", + "default:shovel_bronze", "default:shovel_bronze", + "default:shovel_steel", "default:shovel_steel", + "default:shovel_mese", "default:shovel_mese", + "default:shovel_diamond", "default:shovel_diamond ", +"default:sword_bronze", "default:sword_bronze", "default:sword_steel", +"default:sword_steel", "default:sword_mese", "default:sword_mese", +"default:sword_diamond", "default:sword_diamond" +} + +mobs:register_mob("people:medsmith", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medsmith.b3d", + textures = { + {"texturemedsmith.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_smith", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:smithgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.medsmith_drops or mobs.medsmith_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Blackmith dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Blacksmith stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Blacksmith will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:medsmith", + nodes = {"default:wood"}, + neighbors = {"people:forge"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:medsmith", S("Blacksmith Apple"), "amedsmith.png") + +-- compatibility +mobs:alias_mob("people:medsmith", "people:medsmith") + +minetest.register_node("people:smithgrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:smithgrave", + burntime = 6, +}) + diff --git a/medvillager.lua b/medvillager.lua new file mode 100644 index 0000000..907dcb6 --- /dev/null +++ b/medvillager.lua @@ -0,0 +1,107 @@ +mobs:register_mob("people:medvillager", { + stepheight = 2, + type = "animal", + passive = true, + attack_type = "dogfight", + group_attack = true, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 2, + hp_min = 30, + hp_max = 60, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Villager.b3d", + textures = { + {"texturemedvillager.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "people_female2", + damage = "people_female4", + death = "people_femaledeath", + distance = 10, + }, + walk_velocity = 1.5, + run_velocity = 2.5, + walk_chance = 10, + runaway = true, + runaway_from = {"animalworld:bear", "animalworld:crocodile", "animalworld:tiger", "animalworld:spider", "animalworld:spidermale", "animalworld:shark", "animalworld:hyena", "animalworld:kobra", "animalworld:monitor", "animalworld:snowleopard", "animalworld:volverine", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "people:pirate", "people:evilminer", "people:jealousminer", "people:hatefulminer", "people:plunderercrossbow", "people:plundererflask", "people:plundererstick"}, + jump = true, + jump_height = 3, + pushable = true, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 10, + drops = { {name = "people:villagergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_start = 200, + walk_end = 300, + run_speed = 200, + run_start = 300, + run_end = 300, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:medvillager", + nodes = {"default:wood"}, + neighbors = {"people:villagerbed"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:medvillager", ("Villager Apple"), "amedvillager.png") + + +mobs:alias_mob("people:medvillager", "people:medvillager") -- compatibility + +minetest.register_node("people:villagergrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:villagergrave", + burntime = 6, +}) + diff --git a/medwarrior.lua b/medwarrior.lua new file mode 100644 index 0000000..ddae97d --- /dev/null +++ b/medwarrior.lua @@ -0,0 +1,154 @@ + +local S = mobs.intllib + +-- Npc by TenPlus1 + + +mobs:register_mob("people:medwarrior", { + type = "npc", + passive = false, + damage = 8, + attack_type = "dogshoot", + dogshoot_switch = 1, + dogshoot_count_max = 12, -- shoot for 10 seconds + dogshoot_count2_max = 3, -- dogfight for 3 seconds + shoot_interval = 1.5, + arrow = "people:spearfly", + shoot_offset = 2, + attacks_monsters = true, + attack_npcs = false, + owner_loyal = true, + pathfinding = true, + hp_min = 25, + hp_max = 125, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Warrior.b3d", + drawtype = "front", + textures = { + {"texturemedwarrior.png"}, + }, + makes_footstep_sound = true, + sounds = { + attack = "people_warrior3", + random = "people_warrior2", + damage = "people_male5", + death = "people_warrior", + distance = 10, +}, + walk_velocity = 3, + run_velocity = 4, + jump = true, + drops = { {name = "people:warriorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 2, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 12, + owner = "", + order = "follow", + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + walk_speed = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + shoot_start = 300, + shoot_speed = 80, + shoot_end = 400, + }, + + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, true, true) then return end + + -- capture npc with net or lasso + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + -- protect npc with mobs:protector + if mobs:protect(self, clicker) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + + + -- by right-clicking owner can switch npc between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Warrior stands still.")) + else + self.order = "follow" + + minetest.chat_send_player(name, S("Warrior will follow you.")) + end + end + end, +}) + + +mobs:register_egg("people:medwarrior", S("Warrior Apple"), "amedwarrior.png" ) + +-- compatibility +mobs:alias_mob("people:medwarrior", "people:medwarrior") + +mobs:register_arrow("people:spearfly", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"spearfly.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) + +minetest.register_node("people:warriorgrave", { + description = "Grave", + visual_scale = 1, + mesh = "Grave.b3d", + tiles = {"texturegrave.png"}, + inventory_image = "agrave.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.4, 0.4}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:warriorgrave", + burntime = 6, +}) + diff --git a/mineshaft.lua b/mineshaft.lua new file mode 100644 index 0000000..3bb6f03 --- /dev/null +++ b/mineshaft.lua @@ -0,0 +1,32 @@ +minetest.register_node("people:mineshaft", { + description = "Mineshaft", + visual_scale = 1.0, + mesh = "Mineshaft.b3d", + tiles = {"texturemineshaft.png"}, + inventory_image = "amineshaft.png", + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 3}, + drawtype = "mesh", + collision_box = { + type = "fixed", + fixed = { + {-1, -0.5, -1, 1, -0.2, 1}, + --[[{-1, -0.5, -1, 1, -0.2, 1}, + {-1, -0.5, -1, 1, -0.2, 1}]] + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1, -0.5, -1, 1, -0.2, 1} + } + }, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_craft({ + type = "fuel", + recipe = "people:mineshaft", + burntime = 8, +}) diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..63dc26d --- /dev/null +++ b/mod.conf @@ -0,0 +1 @@ +name = people diff --git a/nordoctor.lua b/nordoctor.lua new file mode 100644 index 0000000..2831f25 --- /dev/null +++ b/nordoctor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.nordoctor_drops = { +"farming:hemp_leaf", "farming:hemp_oil", "farming:carrot_gold", "people:firsaidkit" +} + +mobs:register_mob("people:nordoctor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Doctor.b3d", + textures = { + {"texturenordoctor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_female", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:doctorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:mint_tea"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_lump" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.nordoctor_drops or mobs.nordoctor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Doctor dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Doctor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Doctor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:nordoctor", + nodes = {"default:acacia_wood"}, + neighbors = {"people:firstaidnode"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:nordoctor", S("Doctor Pine"), "anordoctor.png") + +-- compatibility +mobs:alias_mob("people:nordoctor", "people:nordoctor") diff --git a/norfarmer.lua b/norfarmer.lua new file mode 100644 index 0000000..804640f --- /dev/null +++ b/norfarmer.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.norfarmer_drops = { +"people:dog", "people:goat", "people:dogfoodsack", "people:ridepig", "people:ridehorse" +} + +mobs:register_mob("people:norfarmer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medfarmer2.b3d", + textures = { + {"texturenorfarmer.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_farmerf", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:farmergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:coal_lump"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.norfarmer_drops or mobs.norfarmer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Farmer dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Farmer stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Farmer will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:norfarmer", + nodes = {"default:pine_wood"}, + neighbors = {"people:feeder"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:norfarmer", S("Farmer Pine"), "anorfarmer.png") + +-- compatibility +mobs:alias_mob("people:norfarmer", "people:norfarmer") diff --git a/norinstructor.lua b/norinstructor.lua new file mode 100644 index 0000000..2d9291b --- /dev/null +++ b/norinstructor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.norinstructor_drops = { +"people:norwarrior" +} + +mobs:register_mob("people:norinstructor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Instructor.b3d", + textures = { + {"texturenorinstructor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_instructor", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:instructorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:gold_ingot"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "people:emblemoftriumph" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.norinstructor_drops or mobs.norinstructor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for honor!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Instructor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Instructor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:norinstructor", + nodes = {"default:pine_wood"}, + neighbors = {"people:weaponstand"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:norinstructor", S("Instructor Pine"), "anorinstructor.png") + +-- compatibility +mobs:alias_mob("people:norinstructor", "people:norinstructor") diff --git a/norminer.lua b/norminer.lua new file mode 100644 index 0000000..c19946d --- /dev/null +++ b/norminer.lua @@ -0,0 +1,138 @@ + +local S = mobs.intllib + + +mobs.norminer_drops = { +"default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump", "default:diamond", "default:copper_lump", +"default:iron_lump", "default:tin_lump", "default:copper_lump", "default:tin_lump", "default:iron_lump", +"default:gold_lump" +} + +mobs:register_mob("people:norminer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Miner.b3d", + textures = { + {"texturenorminer.png"}, + + }, + makes_footstep_sound = true, +sounds = { random = "people_miner", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:minergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:hemp_oil", "farming:hemp_leaf"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "farming:turkish_delight" or item:get_name() == "farming:garlic_bread" or item:get_name() == "farming:donut" or item:get_name() == "farming:donut_chocolate" or item:get_name() == "farming:donut_apple" or item:get_name() == "farming:porridge" or item:get_name() == "farming:jaffa_cake" or item:get_name() == "farming:apple_pie" or item:get_name() == "farming:spaghetti" or item:get_name() == "farming:burger" or item:get_name() == "farming:bibimbap" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.norminer_drops or mobs.norminer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("NPC dropped you an item for food!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Miner stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Miner will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:norminer", + nodes = {"default:pine_wood"}, + neighbors = {"people:mineshaft"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:norminer", S("Miner Pine"), "anorminer.png") + +-- compatibility +mobs:alias_mob("people:norminer", "people:norminer") diff --git a/norsmith.lua b/norsmith.lua new file mode 100644 index 0000000..d1b36f6 --- /dev/null +++ b/norsmith.lua @@ -0,0 +1,146 @@ + +local S = mobs.intllib + + +mobs.norsmith_drops = { +"default:axe_steel", "default:axe_steel", "default:axe_steel", +"default:axe_steel", "default:axe_mese", "default:axe_mese", +"default:axe_diamond", "default:axe_diamond", "default:pick_bronze", "default:pick_bronze","default:pick_steel", "default:pick_steel","default:pick_mese", "default:pick_mese", + "default:pick_diamond", "default:pick_diamond", + "default:shovel_bronze", "default:shovel_bronze", + "default:shovel_steel", "default:shovel_steel", + "default:shovel_mese", "default:shovel_mese", + "default:shovel_diamond", "default:shovel_diamond ", +"default:sword_bronze", "default:sword_bronze", "default:sword_steel", +"default:sword_steel", "default:sword_mese", "default:sword_mese", +"default:sword_diamond", "default:sword_diamond" +} + +mobs:register_mob("people:norsmith", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medsmith2.b3d", + textures = { + {"texturenorsmith.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_smith", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:smithgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.norsmith_drops or mobs.norsmith_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Blackmith dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Blacksmith stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Blacksmith will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:norsmith", + nodes = {"default:pine_wood"}, + neighbors = {"people:forge"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:norsmith", S("Blacksmith Pine"), "anorsmith.png") + +-- compatibility +mobs:alias_mob("people:norsmith", "people:norsmith") diff --git a/norvillager.lua b/norvillager.lua new file mode 100644 index 0000000..662a591 --- /dev/null +++ b/norvillager.lua @@ -0,0 +1,86 @@ +mobs:register_mob("people:norvillager", { + stepheight = 2, + type = "animal", + passive = true, + attack_type = "dogfight", + group_attack = true, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 2, + hp_min = 30, + hp_max = 60, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Villager.b3d", + textures = { + {"texturenorvillager.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "people_female2", + damage = "people_female4", + death = "people_femaledeath", + distance = 10, + }, + walk_velocity = 1.5, + run_velocity = 2.5, + walk_chance = 10, + runaway = true, + runaway_from = {"animalworld:bear", "animalworld:crocodile", "animalworld:tiger", "animalworld:spider", "animalworld:spidermale", "animalworld:shark", "animalworld:hyena", "animalworld:kobra", "animalworld:monitor", "animalworld:snowleopard", "animalworld:volverine", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "people:pirate", "people:evilminer", "people:jealousminer", "people:hatefulminer", "people:plunderercrossbow", "people:plundererflask", "people:plundererstick"}, + jump = true, + jump_height = 3, + pushable = true, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 10, + drops = { {name = "people:villagergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_start = 200, + walk_end = 300, + run_speed = 200, + run_start = 300, + run_end = 300, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:norvillager", + nodes = {"default:pine_wood"}, + neighbors = {"people:villagerbed"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:norvillager", ("Villager Pine"), "anorvillager.png") + + +mobs:alias_mob("people:norvillager", "people:norvillager") -- compatibility diff --git a/norwarrior.lua b/norwarrior.lua new file mode 100644 index 0000000..eed978b --- /dev/null +++ b/norwarrior.lua @@ -0,0 +1,133 @@ + +local S = mobs.intllib + +-- Npc by TenPlus1 + + +mobs:register_mob("people:norwarrior", { + type = "npc", + passive = false, + damage = 8, + attack_type = "dogshoot", + dogshoot_switch = 1, + dogshoot_count_max = 12, -- shoot for 10 seconds + dogshoot_count2_max = 3, -- dogfight for 3 seconds + shoot_interval = 1.5, + arrow = "people:spearfly", + shoot_offset = 2, + attacks_monsters = true, + attack_npcs = false, + owner_loyal = true, + pathfinding = true, + hp_min = 25, + hp_max = 125, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Warrior.b3d", + drawtype = "front", + textures = { + {"texturenorwarrior.png"}, + }, + makes_footstep_sound = true, + sounds = { + attack = "people_warrior3", + random = "people_warrior2", + damage = "people_male5", + death = "people_warrior", + distance = 10, +}, + walk_velocity = 3, + run_velocity = 4, + jump = true, + drops = { {name = "people:warriorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 2, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 12, + owner = "", + order = "follow", + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + walk_speed = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + shoot_start = 300, + shoot_speed = 80, + shoot_end = 400, + }, + + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, true, true) then return end + + -- capture npc with net or lasso + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + -- protect npc with mobs:protector + if mobs:protect(self, clicker) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + + + -- by right-clicking owner can switch npc between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Warrior stands still.")) + else + self.order = "follow" + + minetest.chat_send_player(name, S("Warrior will follow you.")) + end + end + end, +}) + + +mobs:register_egg("people:norwarrior", S("Warrior Pine"), "anorwarrior.png" ) + +-- compatibility +mobs:alias_mob("people:norwarrior", "people:norwarrior") + +mobs:register_arrow("people:spearfly", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"spearfly.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) diff --git a/papdoctor.lua b/papdoctor.lua new file mode 100644 index 0000000..a60de30 --- /dev/null +++ b/papdoctor.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.papdoctor_drops = { +"farming:hemp_leaf", "farming:hemp_oil", "farming:carrot_gold", "people:firsaidkit" +} + +mobs:register_mob("people:papdoctor", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Doctor.b3d", + textures = { + {"texturepapdoctor.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_female", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:doctorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"farming:mint_tea"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_lump" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.papdoctor_drops or mobs.papdoctor_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Doctor dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Doctor stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Doctor will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:papdoctor", + nodes = {"default:junglewood"}, + neighbors = {"people:firstaidnode"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:papdoctor", S("Doctor Jungle"), "apapdoctor.png") + +-- compatibility +mobs:alias_mob("people:papdoctor", "people:apapdoctor") diff --git a/papvillager.lua b/papvillager.lua new file mode 100644 index 0000000..e4bb186 --- /dev/null +++ b/papvillager.lua @@ -0,0 +1,86 @@ +mobs:register_mob("people:papvillager", { + stepheight = 2, + type = "animal", + passive = true, + attack_type = "dogfight", + group_attack = true, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 2, + hp_min = 30, + hp_max = 60, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Villager.b3d", + textures = { + {"texturepapvillager.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "people_female2", + damage = "people_female4", + death = "people_femaledeath", + distance = 10, + }, + walk_velocity = 1.5, + run_velocity = 2.5, + walk_chance = 10, + runaway = true, + runaway_from = {"animalworld:bear", "animalworld:crocodile", "animalworld:tiger", "animalworld:spider", "animalworld:spidermale", "animalworld:shark", "animalworld:hyena", "animalworld:kobra", "animalworld:monitor", "animalworld:snowleopard", "animalworld:volverine", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "people:pirate", "people:evilminer", "people:jealousminer", "people:hatefulminer", "people:plunderercrossbow", "people:plundererflask", "people:plundererstick"}, + jump = true, + jump_height = 3, + pushable = true, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 10, + drops = { {name = "people:villagergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_start = 200, + walk_end = 300, + run_speed = 200, + run_start = 300, + run_end = 300, + + die_start = 1, -- we dont have a specific death animation so we will + die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and + die_speed = 1, -- have mob rotate when dying. + die_loop = false, + die_rotate = true, + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:papvillager", + nodes = {"default:junglewood"}, + neighbors = {"people:villagerbed"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:papvillager", ("Villager Jungle"), "apapvillager.png") + + +mobs:alias_mob("people:papvillager", "people:papvillager") -- compatibility diff --git a/pirate.lua b/pirate.lua new file mode 100644 index 0000000..395795f --- /dev/null +++ b/pirate.lua @@ -0,0 +1,82 @@ + +mobs:register_mob("people:pirate", { + type = "monster", + passive = false, + step_height = 2, + fear_height = 4, + attack_type = "dogfight", + attack_animals = true, + reach = 2, + damage = 9, + hp_min = 35, + hp_max = 75, + armor = 100, + collisionbox = {-0.5, -0.01, -0.5, 0.5, 0.95, 0.5}, + visual = "mesh", + mesh = "Pirate.b3d", + visual_size = {x = 1.0, y = 1.0}, + textures = { + {"texturepirate.png"}, + }, + sounds = { + attack = "people_plundererpirate", + random = "people_plundererpirate2", + damage = "people_plundererpirate3", + death = "people_plundererpirate", + distance = 15, + }, + makes_footstep_sound = true, + walk_velocity = 2, + run_velocity = 4, + walk_chance = 10, + runaway = false, + jump = true, + drops = { + {name = "people:forge", chance = 7, min = 1, max = 1}, + {name = "people:feeder", chance = 7, min = 1, max = 1}, + {name = "people:mineshaft", chance = 7, min = 1, max = 1}, + {name = "people:villagerbed", chance = 7, min = 1, max = 1}, + {name = "people:weaponstand", chance = 7, min = 1, max = 1}, + {name = "people:firstaidnode", chance = 7, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + animation = { + speed_normal = 100, + stand_speed = 50, + stand_start = 0, + stand_end = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + -- 50-70 is slide/water idle + }, + view_range = 15, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 5, 50, 80, false, nil) then return end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:pirate", + nodes = {"default:cobble", "default:mossycobble", "default:sandstonebrick"}, + neighbors = {"people:bootynode"}, + min_light = 0, + interval = 30, + active_object_count = 2, + chance = 10, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:pirate", ("Pirate Plunderer"), "apirate.png") diff --git a/plunderercrossbow.lua b/plunderercrossbow.lua new file mode 100644 index 0000000..9f165dc --- /dev/null +++ b/plunderercrossbow.lua @@ -0,0 +1,105 @@ + +mobs:register_mob("people:plunderercrossbow", { + -- animal, monster, npc + type = "monster", + -- aggressive, shoots shuriken + passive = false, + step_height = 2, + fear_height = 4, + damage = 7, + attack_type = "shoot", + shoot_interval = 2, + arrow = "people:bolt", + shoot_offset = 2, + attacks_monsters = false, + -- health & armor + hp_min = 30, hp_max = 50, armor = 100, + -- textures and model + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Plunderercrossbow.b3d", + drawtype = "front", + textures = { + {"textureplunderercrossbow.png"}, + }, + visual_size = {x=1, y=1}, + -- sounds + makes_footstep_sound = true, + sounds = { + shoot_attack = "people_plunderercrossbow2", + random = "people_plunderercrossbow", + damage = "people_plunderercrossbow3", + distance = 15, +}, + -- speed and jump + walk_velocity = 2, + run_velocity = 3, + walk_chance = 10, + jump = true, + drops = { + {name = "people:forge", chance = 7, min = 1, max = 1}, + {name = "people:feeder", chance = 7, min = 1, max = 1}, + {name = "people:mineshaft", chance = 7, min = 1, max = 1}, + {name = "people:villagerbed", chance = 7, min = 1, max = 1}, + {name = "people:weaponstand", chance = 7, min = 1, max = 1}, + {name = "people:firstaidnode", chance = 7, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + -- damaged by + water_damage = 0, + lava_damage = 4, + light_damage = 0, + fall_damage = 0, + view_range = 15, + -- model animation + animation = { + speed_normal = 70, speed_run = 100, + stand_speed = 50, + stand_start = 0, stand_end = 100, + walk_start = 100, walk_end = 200, + run_start = 100, run_end = 200, + shoot_start = 200, shoot_end = 300, + speed_shoot = 55, + }, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:plunderercrossbow", + nodes = {"default:cobble", "default:mossycobble", "default:sandstonebrick"}, + neighbors = {"people:bootynode"}, + min_light = 0, + interval = 30, + active_object_count = 2, + chance = 10, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:plunderercrossbow", "Plunderer with Crossbow", "aplunderercrossbow.png") + +mobs:register_arrow("people:bolt", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"bolt.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) diff --git a/plundererflask.lua b/plundererflask.lua new file mode 100644 index 0000000..c8c008f --- /dev/null +++ b/plundererflask.lua @@ -0,0 +1,105 @@ + +mobs:register_mob("people:plundererflask", { + -- animal, monster, npc + type = "monster", + -- aggressive, shoots flasks + passive = false, + step_height = 2, + fear_height = 4, + damage = 8, + attack_type = "shoot", + shoot_interval = 1, + arrow = "people:flask", + shoot_offset = 2, + attacks_monsters = false, + -- health & armor + hp_min = 20, hp_max = 40, armor = 100, + -- textures and model + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Plundererflask.b3d", + drawtype = "front", + textures = { + {"textureplundererflask.png"}, + }, + visual_size = {x=1, y=1}, + -- sounds + makes_footstep_sound = true, + sounds = { + shoot_attack = "people_plundererflask2", + random = "people_plundererflask", + damage = "people_plundererflask3", + distance = 15, +}, + -- speed and jump + walk_velocity = 2, + run_velocity = 3, + walk_chance = 10, + jump = true, + drops = { + {name = "people:forge", chance = 7, min = 1, max = 1}, + {name = "people:feeder", chance = 7, min = 1, max = 1}, + {name = "people:mineshaft", chance = 7, min = 1, max = 1}, + {name = "people:villagerbed", chance = 7, min = 1, max = 1}, + {name = "people:weaponstand", chance = 7, min = 1, max = 1}, + {name = "people:firstaidnode", chance = 7, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + -- damaged by + water_damage = 0, + lava_damage = 4, + light_damage = 0, + fall_damage = 0, + view_range = 15, + -- model animation + animation = { + speed_normal = 70, speed_run = 100, + stand_speed = 50, + stand_start = 0, stand_end = 100, + walk_start = 100, walk_end = 200, + run_start = 100, run_end = 200, + shoot_start = 200, shoot_end = 300, + speed_shoot = 55, + }, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:plundererflask", + nodes = {"default:cobble", "default:mossycobble", "default:sandstonebrick"}, + neighbors = {"people:bootynode"}, + min_light = 0, + interval = 30, + active_object_count = 2, + chance = 10, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:plundererflask", "Plunderer with Flask", "aplundererflask.png") + +mobs:register_arrow("people:flask", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"flask.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) diff --git a/plundererstick.lua b/plundererstick.lua new file mode 100644 index 0000000..842373f --- /dev/null +++ b/plundererstick.lua @@ -0,0 +1,81 @@ + +mobs:register_mob("people:plundererstick", { + type = "monster", + passive = false, + step_height = 2, + fear_height = 4, + attack_type = "dogfight", + attack_animals = true, + reach = 3, + damage = 7, + hp_min = 25, + hp_max = 65, + armor = 100, + collisionbox = {-0.5, -0.01, -0.5, 0.5, 0.95, 0.5}, + visual = "mesh", + mesh = "Plundererstick.b3d", + visual_size = {x = 1.0, y = 1.0}, + textures = { + {"textureplundererstick.png"}, + }, + sounds = { + attack = "people_plundererstick3", + random = "people_plunderersick", + damage = "people_plundererstick2", + distance = 15, + }, + makes_footstep_sound = true, + walk_velocity = 2, + run_velocity = 4, + walk_chance = 10, + runaway = false, + jump = true, + drops = { + {name = "people:forge", chance = 7, min = 1, max = 1}, + {name = "people:feeder", chance = 7, min = 1, max = 1}, + {name = "people:mineshaft", chance = 7, min = 1, max = 1}, + {name = "people:villagerbed", chance = 7, min = 1, max = 1}, + {name = "people:weaponstand", chance = 7, min = 1, max = 1}, + {name = "people:firstaidnode", chance = 7, min = 1, max = 1}, + {name = "people:emblemoftriumph", chance = 7, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 4, + light_damage = 0, + animation = { + speed_normal = 100, + stand_speed = 50, + stand_start = 0, + stand_end = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + -- 50-70 is slide/water idle + }, + view_range = 15, + + on_rightclick = function(self, clicker) + + -- feed or tame + if mobs:feed_tame(self, clicker, 4, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 5, 50, 80, false, nil) then return end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:plundererstick", + nodes = {"default:cobble", "default:mossycobble", "default:sandstonebrick"}, + neighbors = {"people:bootynode"}, + min_light = 0, + interval = 30, + active_object_count = 2, + chance = 10, -- 15000 + min_height = -25, + max_height = 1000, +}) +end + +mobs:register_egg("people:plundererstick", ("Plunderer with a Stick"), "aplundererstick.png") diff --git a/rideelephant.lua b/rideelephant.lua new file mode 100644 index 0000000..32fc407 --- /dev/null +++ b/rideelephant.lua @@ -0,0 +1,226 @@ + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(MP .. "/intllib.lua") + +-- 0.4.17 or 5.0 check +local y_off = 20 +if minetest.features.object_independent_selectionbox then + y_off = 10 +end + +-- horse shoes (speed, jump, break, overlay texture) +local shoes = { + ["people:horseshoe_steel"] = {7, 4, 2, "people_horseshoe_steelo.png"}, + ["people:horseshoe_bronze"] = {7, 4, 4, "people_horseshoe_bronzeo.png"}, + ["people:horseshoe_mese"] = {9, 5, 8, "people_horseshoe_meseo.png"}, + ["people:horseshoe_diamond"] = {10, 6, 6, "people_horseshoe_diamondo.png"} +} + +-- rideable horse +mobs:register_mob("people:rideelephant", { + type = "animal", + visual = "mesh", + visual_size = {x = 1, y = 1}, + mesh = "Rideelephant.b3d", + collisionbox = {-0.5, -0.01, -0.5, 0.5, 2, 0.5}, + animation = { + speed_normal = 50, + run_speed = 100, + stand_start = 0, + stand_end = 100, + walk_speed = 50, + walk_start = 101, + walk_end = 200, + run_start = 101, + run_end = 200, + }, + textures = { + {"texturerideelephant.png"}, + + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + walk_velocity = 1.5, + view_range = 10, + follow = { + "farming:wheat", "default:apple", "farming:oat", + "farming:barley", "farming:corn"}, + passive = true, + hp_min = 100, + hp_max = 400, + armor = 100, + lava_damage = 5, + fall_damage = 5, + water_damage = 0, + makes_footstep_sound = true, + sounds = { + random = "people_elephant2", + damage = "people_elephant", + death = "people_elephant3", + distance = 15, +}, + drops = { + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 5 + self.max_speed_reverse = 2 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 23, z = -8} + self.driver_eye_offset = {x = 0, y = 23, z = -0} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + + minetest.add_item(pos, "mobs:saddle") + + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + + self.saddle = nil + end + + -- drop any horseshoes added + if self.shoed then + minetest.add_item(pos, self.shoed) + end + + end, + + do_punch = function(self, hitter) + + -- don't cut the branch you're... ah, that's not about that + if hitter ~= self.driver then + return true + end + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- applying protection rune + if mobs:protect(self, clicker) then + return + end + + local player_name = clicker:get_player_name() + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == player_name then + + local inv = clicker:get_inventory() + local tool = clicker:get_wielded_item() + local item = tool:get_name() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker:get_pos(), "mobs:saddle") + end + + self.saddle = nil + + -- attach player to horse + elseif (not self.driver and not self.child + and clicker:get_wielded_item():get_name() == "mobs:saddle") + or self.saddle then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + if not self.saddle then + inv:remove_item("main", "mobs:saddle") + end + + self.saddle = true + end + + -- apply horseshoes + if item:find("people:horseshoe") then + + -- drop any existing shoes + if self.shoed then + minetest.add_item(self.object:get_pos(), self.shoed) + end + + local speed = shoes[item][1] + local jump = shoes[item][2] + local reverse = shoes[item][3] + local overlay = shoes[item][4] + + self.max_speed_forward = speed + self.jump_height = jump + self.max_speed_reverse = reverse + self.accel = speed + self.shoed = item + + -- apply horseshoe overlay to current horse texture + if overlay then + self.texture_mods = "^" .. overlay + self.object:set_texture_mod(self.texture_mods) + end + + -- show horse speed and jump stats with shoes fitted + minetest.chat_send_player(player_name, + S("Horse shoes fitted -") + .. S(" speed: ") .. speed + .. S(" , jump height: ") .. jump + .. S(" , stop speed: ") .. reverse) + + tool:take_item() + + clicker:set_wielded_item(tool) + + return + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end, +}) + + +mobs:register_egg("people:rideelephant", S("Ridable Elephant"), "arideelephant.png") + + diff --git a/ridehorse.lua b/ridehorse.lua new file mode 100644 index 0000000..0a4f179 --- /dev/null +++ b/ridehorse.lua @@ -0,0 +1,227 @@ + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(MP .. "/intllib.lua") + +-- 0.4.17 or 5.0 check +local y_off = 20 +if minetest.features.object_independent_selectionbox then + y_off = 10 +end + +-- horse shoes (speed, jump, break, overlay texture) +local shoes = { + ["people:horseshoe_steel"] = {7, 4, 2, "people_horseshoe_steelo.png"}, + ["people:horseshoe_bronze"] = {7, 4, 4, "people_horseshoe_bronzeo.png"}, + ["people:horseshoe_mese"] = {9, 5, 8, "people_horseshoe_meseo.png"}, + ["people:horseshoe_diamond"] = {10, 6, 6, "people_horseshoe_diamondo.png"} +} + +-- rideable horse +mobs:register_mob("people:ridehorse", { + type = "animal", + visual = "mesh", + visual_size = {x = 1, y = 1}, + mesh = "Ridehorse.b3d", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 50, + run_speed = 100, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 75, + walk_start = 200, + walk_end = 300, + run_start = 200, + run_end = 300, + }, + textures = { + {"textureridehorse.png"}, + + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + walk_velocity = 1.5, + view_range = 10, + follow = { + "farming:wheat", "default:apple", "farming:oat", + "farming:barley", "farming:corn"}, + passive = true, + hp_min = 50, + hp_max = 120, + armor = 100, + lava_damage = 5, + fall_damage = 5, + water_damage = 1, + makes_footstep_sound = true, + sounds = { + random = "people_horse2", + damage = "people_horse3", + death = "people_horse", + distance = 15, +}, + drops = { + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 6 + self.max_speed_reverse = 2 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 14.2, z = -3} + self.driver_eye_offset = {x = 0, y = 14.2, z = 0} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + + minetest.add_item(pos, "mobs:saddle") + + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + + self.saddle = nil + end + + -- drop any horseshoes added + if self.shoed then + minetest.add_item(pos, self.shoed) + end + + end, + + do_punch = function(self, hitter) + + -- don't cut the branch you're... ah, that's not about that + if hitter ~= self.driver then + return true + end + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- applying protection rune + if mobs:protect(self, clicker) then + return + end + + local player_name = clicker:get_player_name() + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == player_name then + + local inv = clicker:get_inventory() + local tool = clicker:get_wielded_item() + local item = tool:get_name() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker:get_pos(), "mobs:saddle") + end + + self.saddle = nil + + -- attach player to horse + elseif (not self.driver and not self.child + and clicker:get_wielded_item():get_name() == "mobs:saddle") + or self.saddle then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + if not self.saddle then + inv:remove_item("main", "mobs:saddle") + end + + self.saddle = true + end + + -- apply horseshoes + if item:find("people:horseshoe") then + + -- drop any existing shoes + if self.shoed then + minetest.add_item(self.object:get_pos(), self.shoed) + end + + local speed = shoes[item][1] + local jump = shoes[item][2] + local reverse = shoes[item][3] + local overlay = shoes[item][4] + + self.max_speed_forward = speed + self.jump_height = jump + self.max_speed_reverse = reverse + self.accel = speed + self.shoed = item + + -- apply horseshoe overlay to current horse texture + if overlay then + self.texture_mods = "^" .. overlay + self.object:set_texture_mod(self.texture_mods) + end + + -- show horse speed and jump stats with shoes fitted + minetest.chat_send_player(player_name, + S("Horse shoes fitted -") + .. S(" speed: ") .. speed + .. S(" , jump height: ") .. jump + .. S(" , stop speed: ") .. reverse) + + tool:take_item() + + clicker:set_wielded_item(tool) + + return + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end, +}) + + +mobs:register_egg("people:ridehorse", S("Ridable Horse"), "aridehorse.png") + diff --git a/rideostrich.lua b/rideostrich.lua new file mode 100644 index 0000000..a14ed18 --- /dev/null +++ b/rideostrich.lua @@ -0,0 +1,222 @@ + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(MP .. "/intllib.lua") + +-- 0.4.17 or 5.0 check +local y_off = 20 +if minetest.features.object_independent_selectionbox then + y_off = 10 +end + +-- horse shoes (speed, jump, break, overlay texture) +local shoes = { + ["people:horseshoe_steel"] = {7, 4, 2, "people_horseshoe_steelo.png"}, + ["people:horseshoe_bronze"] = {7, 4, 4, "people_horseshoe_bronzeo.png"}, + ["people:horseshoe_mese"] = {9, 5, 8, "people_horseshoe_meseo.png"}, + ["people:horseshoe_diamond"] = {10, 6, 6, "people_horseshoe_diamondo.png"} +} + +-- rideable horse +mobs:register_mob("people:rideostrich", { + type = "animal", + visual = "mesh", + visual_size = {x = 1, y = 1}, + mesh = "Rideostrich.b3d", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 50, + run_speed = 100, + stand_start = 0, + stand2_end = 200, + stand2_start = 300, + stand_end = 100, + walk_speed = 75, + walk_start = 100, + walk_end = 200, + run_start = 200, + run_end = 300, + }, + textures = { + {"texturerideostrich.png"}, + + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + walk_velocity = 3, + view_range = 10, + follow = { + "farming:wheat", "default:apple", "farming:oat", + "farming:barley", "farming:corn"}, + passive = true, + hp_min = 25, + hp_max = 55, + armor = 100, + lava_damage = 5, + fall_damage = 5, + water_damage = 1, + makes_footstep_sound = true, + drops = { + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 9 + self.max_speed_reverse = 4 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 11, z = -1.6} + self.driver_eye_offset = {x = 0, y = 11, z = 0} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + + minetest.add_item(pos, "mobs:saddle") + + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + + self.saddle = nil + end + + -- drop any horseshoes added + if self.shoed then + minetest.add_item(pos, self.shoed) + end + + end, + + do_punch = function(self, hitter) + + -- don't cut the branch you're... ah, that's not about that + if hitter ~= self.driver then + return true + end + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- applying protection rune + if mobs:protect(self, clicker) then + return + end + + local player_name = clicker:get_player_name() + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == player_name then + + local inv = clicker:get_inventory() + local tool = clicker:get_wielded_item() + local item = tool:get_name() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker:get_pos(), "mobs:saddle") + end + + self.saddle = nil + + -- attach player to horse + elseif (not self.driver and not self.child + and clicker:get_wielded_item():get_name() == "mobs:saddle") + or self.saddle then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + if not self.saddle then + inv:remove_item("main", "mobs:saddle") + end + + self.saddle = true + end + + -- apply horseshoes + if item:find("people:horseshoe") then + + -- drop any existing shoes + if self.shoed then + minetest.add_item(self.object:get_pos(), self.shoed) + end + + local speed = shoes[item][1] + local jump = shoes[item][2] + local reverse = shoes[item][3] + local overlay = shoes[item][4] + + self.max_speed_forward = speed + self.jump_height = jump + self.max_speed_reverse = reverse + self.accel = speed + self.shoed = item + + -- apply horseshoe overlay to current horse texture + if overlay then + self.texture_mods = "^" .. overlay + self.object:set_texture_mod(self.texture_mods) + end + + -- show horse speed and jump stats with shoes fitted + minetest.chat_send_player(player_name, + S("Horse shoes fitted -") + .. S(" speed: ") .. speed + .. S(" , jump height: ") .. jump + .. S(" , stop speed: ") .. reverse) + + tool:take_item() + + clicker:set_wielded_item(tool) + + return + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end, +}) + + +mobs:register_egg("people:rideostrich", S("Ridable Ostrich"), "arideostrich.png") + + diff --git a/rideox.lua b/rideox.lua new file mode 100644 index 0000000..527a5bb --- /dev/null +++ b/rideox.lua @@ -0,0 +1,225 @@ + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(MP .. "/intllib.lua") + +-- 0.4.17 or 5.0 check +local y_off = 20 +if minetest.features.object_independent_selectionbox then + y_off = 10 +end + +-- horse shoes (speed, jump, break, overlay texture) +local shoes = { + ["people:horseshoe_steel"] = {7, 4, 2, "people_horseshoe_steelo.png"}, + ["people:horseshoe_bronze"] = {7, 4, 4, "people_horseshoe_bronzeo.png"}, + ["people:horseshoe_mese"] = {9, 5, 8, "people_horseshoe_meseo.png"}, + ["people:horseshoe_diamond"] = {10, 6, 6, "people_horseshoe_diamondo.png"} +} + +-- rideable horse +mobs:register_mob("people:rideox", { + type = "animal", + visual = "mesh", + visual_size = {x = 1, y = 1}, + mesh = "Rideox.b3d", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 50, + run_speed = 100, + stand_start = 0, + stand_end = 100, + walk_speed = 75, + walk_start = 100, + walk_end = 200, + run_start = 100, + run_end = 200, + }, + textures = { + {"texturerideox.png"}, + + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + walk_velocity = 1.5, + view_range = 10, + follow = { + "farming:wheat", "default:apple", "farming:oat", + "farming:barley", "farming:corn", "ethereal:banana_single", "farming:corn_cob", "farming:cabbage"}, + passive = true, + hp_min = 100, + hp_max = 250, + armor = 100, + lava_damage = 5, + fall_damage = 5, + water_damage = 1, + makes_footstep_sound = true, + sounds = { + random = "people_ox3", + damage = "people_ox", + death = "people_ox2", + distance = 15, +}, + drops = { + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 4 + self.max_speed_reverse = 1 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 9, z = -13} + self.driver_eye_offset = {x = 0, y = 9, z = -10} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + + minetest.add_item(pos, "mobs:saddle") + + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + + self.saddle = nil + end + + -- drop any horseshoes added + if self.shoed then + minetest.add_item(pos, self.shoed) + end + + end, + + do_punch = function(self, hitter) + + -- don't cut the branch you're... ah, that's not about that + if hitter ~= self.driver then + return true + end + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- applying protection rune + if mobs:protect(self, clicker) then + return + end + + local player_name = clicker:get_player_name() + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == player_name then + + local inv = clicker:get_inventory() + local tool = clicker:get_wielded_item() + local item = tool:get_name() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker:get_pos(), "mobs:saddle") + end + + self.saddle = nil + + -- attach player to horse + elseif (not self.driver and not self.child + and clicker:get_wielded_item():get_name() == "mobs:saddle") + or self.saddle then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + if not self.saddle then + inv:remove_item("main", "mobs:saddle") + end + + self.saddle = true + end + + -- apply horseshoes + if item:find("people:horseshoe") then + + -- drop any existing shoes + if self.shoed then + minetest.add_item(self.object:get_pos(), self.shoed) + end + + local speed = shoes[item][1] + local jump = shoes[item][2] + local reverse = shoes[item][3] + local overlay = shoes[item][4] + + self.max_speed_forward = speed + self.jump_height = jump + self.max_speed_reverse = reverse + self.accel = speed + self.shoed = item + + -- apply horseshoe overlay to current horse texture + if overlay then + self.texture_mods = "^" .. overlay + self.object:set_texture_mod(self.texture_mods) + end + + -- show horse speed and jump stats with shoes fitted + minetest.chat_send_player(player_name, + S("Horse shoes fitted -") + .. S(" speed: ") .. speed + .. S(" , jump height: ") .. jump + .. S(" , stop speed: ") .. reverse) + + tool:take_item() + + clicker:set_wielded_item(tool) + + return + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end, +}) + + +mobs:register_egg("people:rideox", S("Ridable Ox"), "arideox.png") + diff --git a/ridepig.lua b/ridepig.lua new file mode 100644 index 0000000..9892858 --- /dev/null +++ b/ridepig.lua @@ -0,0 +1,221 @@ + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(MP .. "/intllib.lua") + +-- 0.4.17 or 5.0 check +local y_off = 20 +if minetest.features.object_independent_selectionbox then + y_off = 10 +end + +-- horse shoes (speed, jump, break, overlay texture) +local shoes = { + ["people:horseshoe_steel"] = {7, 4, 2, "people_horseshoe_steelo.png"}, + ["people:horseshoe_bronze"] = {7, 4, 4, "people_horseshoe_bronzeo.png"}, + ["people:horseshoe_mese"] = {9, 5, 8, "people_horseshoe_meseo.png"}, + ["people:horseshoe_diamond"] = {10, 6, 6, "people_horseshoe_diamondo.png"} +} + +-- rideable horse +mobs:register_mob("people:ridepig", { + type = "animal", + visual = "mesh", + visual_size = {x = 1, y = 1}, + mesh = "Ridepig.b3d", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 50, + run_speed = 100, + stand_start = 0, + stand_end = 100, + walk_speed = 75, + walk_start = 100, + walk_end = 200, + run_start = 200, + run_end = 300, + }, + textures = { + {"textureridepig.png"}, + + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + view_range = 10, +follow = {"default:apple", "farming:potato", "ethereal:banana_bread", "farming:melon_slice", "farming:carrot", "farming:seed_rice", "farming:corn"}, + passive = true, + hp_min = 60, + hp_max = 100, + armor = 100, + lava_damage = 5, + fall_damage = 5, + water_damage = 1, + makes_footstep_sound = true, + sounds = { + random = "people_pig", + damage = "people_pig2", + death = "people_pig3", + distance = 15, +}, + drops = { + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 4 + self.max_speed_reverse = 2 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 11, z = -2} + self.driver_eye_offset = {x = 0, y = 11, z = 0} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + + minetest.add_item(pos, "mobs:saddle") + + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + + self.saddle = nil + end + + -- drop any horseshoes added + if self.shoed then + minetest.add_item(pos, self.shoed) + end + + end, + + do_punch = function(self, hitter) + + -- don't cut the branch you're... ah, that's not about that + if hitter ~= self.driver then + return true + end + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- applying protection rune + if mobs:protect(self, clicker) then + return + end + + local player_name = clicker:get_player_name() + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == player_name then + + local inv = clicker:get_inventory() + local tool = clicker:get_wielded_item() + local item = tool:get_name() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker:get_pos(), "mobs:saddle") + end + + self.saddle = nil + + -- attach player to horse + elseif (not self.driver and not self.child + and clicker:get_wielded_item():get_name() == "mobs:saddle") + or self.saddle then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + if not self.saddle then + inv:remove_item("main", "mobs:saddle") + end + + self.saddle = true + end + + -- apply horseshoes + if item:find("people:horseshoe") then + + -- drop any existing shoes + if self.shoed then + minetest.add_item(self.object:get_pos(), self.shoed) + end + + local speed = shoes[item][1] + local jump = shoes[item][2] + local reverse = shoes[item][3] + local overlay = shoes[item][4] + + self.max_speed_forward = speed + self.jump_height = jump + self.max_speed_reverse = reverse + self.accel = speed + self.shoed = item + + -- apply horseshoe overlay to current horse texture + if overlay then + self.texture_mods = "^" .. overlay + self.object:set_texture_mod(self.texture_mods) + end + + -- show horse speed and jump stats with shoes fitted + minetest.chat_send_player(player_name, + S("Horse shoes fitted -") + .. S(" speed: ") .. speed + .. S(" , jump height: ") .. jump + .. S(" , stop speed: ") .. reverse) + + tool:take_item() + + clicker:set_wielded_item(tool) + + return + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end, +}) + + +mobs:register_egg("people:ridepig", S("Ridable Pig"), "aridepig.png") diff --git a/ridereindeer.lua b/ridereindeer.lua new file mode 100644 index 0000000..06829c3 --- /dev/null +++ b/ridereindeer.lua @@ -0,0 +1,218 @@ + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator and minetest.get_translator("people") or + dofile(MP .. "/intllib.lua") + +-- 0.4.17 or 5.0 check +local y_off = 20 +if minetest.features.object_independent_selectionbox then + y_off = 10 +end + +-- horse shoes (speed, jump, break, overlay texture) +local shoes = { + ["people:horseshoe_steel"] = {7, 4, 2, "people_horseshoe_steelo.png"}, + ["people:horseshoe_bronze"] = {7, 4, 4, "people_horseshoe_bronzeo.png"}, + ["people:horseshoe_mese"] = {9, 5, 8, "people_horseshoe_meseo.png"}, + ["people:horseshoe_diamond"] = {10, 6, 6, "people_horseshoe_diamondo.png"} +} + +-- rideable horse +mobs:register_mob("people:ridereindeer", { + type = "animal", + visual = "mesh", + visual_size = {x = 1, y = 1}, + mesh = "Ridereindeer.b3d", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 50, + run_speed = 100, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 75, + walk_start = 200, + walk_end = 300, + run_start = 200, + run_end = 300, + }, + textures = { + {"textureridereindeer.png"}, + + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 50, + walk_velocity = 1.5, + view_range = 5, + follow = {"default:apple", "default:permafrost_with_moss", "ethereal:snowygrass", "ethereal:crystalgrass", "default:dry_shrub ", "default:grass_1", "ethereal:dry_shrub", "farming:seed_wheat", "farming:seed_rye", "default:junglegrass"}, + passive = true, + hp_min = 35, + hp_max = 75, + armor = 100, + lava_damage = 5, + fall_damage = 5, + water_damage = 0, + makes_footstep_sound = true, + drops = { + {name = "mobs:leather", chance = 1, min = 0, max = 2} + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 5 + self.max_speed_reverse = 3 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 11.4, z = -4.5} + self.driver_eye_offset = {x = 0, y = 11.4, z = 0} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + + minetest.add_item(pos, "mobs:saddle") + + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + + self.saddle = nil + end + + -- drop any horseshoes added + if self.shoed then + minetest.add_item(pos, self.shoed) + end + + end, + + do_punch = function(self, hitter) + + -- don't cut the branch you're... ah, that's not about that + if hitter ~= self.driver then + return true + end + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- applying protection rune + if mobs:protect(self, clicker) then + return + end + + local player_name = clicker:get_player_name() + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == player_name then + + local inv = clicker:get_inventory() + local tool = clicker:get_wielded_item() + local item = tool:get_name() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker:get_pos(), "mobs:saddle") + end + + self.saddle = nil + + -- attach player to horse + elseif (not self.driver and not self.child + and clicker:get_wielded_item():get_name() == "mobs:saddle") + or self.saddle then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + if not self.saddle then + inv:remove_item("main", "mobs:saddle") + end + + self.saddle = true + end + + -- apply horseshoes + if item:find("people:horseshoe") then + + -- drop any existing shoes + if self.shoed then + minetest.add_item(self.object:get_pos(), self.shoed) + end + + local speed = shoes[item][1] + local jump = shoes[item][2] + local reverse = shoes[item][3] + local overlay = shoes[item][4] + + self.max_speed_forward = speed + self.jump_height = jump + self.max_speed_reverse = reverse + self.accel = speed + self.shoed = item + + -- apply horseshoe overlay to current horse texture + if overlay then + self.texture_mods = "^" .. overlay + self.object:set_texture_mod(self.texture_mods) + end + + -- show horse speed and jump stats with shoes fitted + minetest.chat_send_player(player_name, + S("Horse shoes fitted -") + .. S(" speed: ") .. speed + .. S(" , jump height: ") .. jump + .. S(" , stop speed: ") .. reverse) + + tool:take_item() + + clicker:set_wielded_item(tool) + + return + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end, +}) + + +mobs:register_egg("people:ridereindeer", S("Ridable Reindeer"), "aridereindeer.png") diff --git a/samfarmer.lua b/samfarmer.lua new file mode 100644 index 0000000..c1d3043 --- /dev/null +++ b/samfarmer.lua @@ -0,0 +1,136 @@ + +local S = mobs.intllib + + +mobs.samfarmer_drops = { +"people:dog", "people:goat", "people:dogfoodsack", "people:ridepig", "people:rideelephant" +} + +mobs:register_mob("people:samfarmer", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medfarmer2.b3d", + textures = { + {"texturesamfarmer.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_farmerf", + damage = "people_female5", + death = "people_femaledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:farmergrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:coal_lump"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 50, + walk_start = 300, + walk_end = 400, + punch_speed = 100, + punch_start = 200, + punch_end = 300, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.samfarmer_drops or mobs.samfarmer_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Farmer dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Farmer stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Farmer will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:samfarmer", + nodes = {"default:junglewood"}, + neighbors = {"people:feeder"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:samfarmer", S("Farmer Jungle"), "asamfarmer.png") + +-- compatibility +mobs:alias_mob("people:samfarmer", "people:samfarmer") diff --git a/samsmith.lua b/samsmith.lua new file mode 100644 index 0000000..ad30c69 --- /dev/null +++ b/samsmith.lua @@ -0,0 +1,146 @@ + +local S = mobs.intllib + + +mobs.samsmith_drops = { +"default:axe_steel", "default:axe_steel", "default:axe_steel", +"default:axe_steel", "default:axe_mese", "default:axe_mese", +"default:axe_diamond", "default:axe_diamond", "default:pick_bronze", "default:pick_bronze","default:pick_steel", "default:pick_steel","default:pick_mese", "default:pick_mese", + "default:pick_diamond", "default:pick_diamond", + "default:shovel_bronze", "default:shovel_bronze", + "default:shovel_steel", "default:shovel_steel", + "default:shovel_mese", "default:shovel_mese", + "default:shovel_diamond", "default:shovel_diamond ", +"default:sword_bronze", "default:sword_bronze", "default:sword_steel", +"default:sword_steel", "default:sword_mese", "default:sword_mese", +"default:sword_diamond", "default:sword_diamond" +} + +mobs:register_mob("people:samsmith", { + type = "npc", + passive = true, + damage = 5, + attack_type = "dogfight", + owner_loyal = true, + pathfinding = true, + reach = 2, + attack_monsters = true, + attack_animals = false, + attack_npc = false, + hp_min = 25, + hp_max = 35, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Medsmith2.b3d", + textures = { + {"texturesamsmith.png"}, + + }, + makes_footstep_sound = true, + sounds = { + random = "people_smith", + damage = "people_male5", + death = "people_maledeath", + distance = 10, +}, + walk_velocity = 1, + run_velocity = 2, + stepheight = 1, + fear_height = 2, + jump = true, + jump_height = 3, + drops = { {name = "people:smithgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 1, + lava_damage = 3, + light_damage = 0, + follow = {"default:diamond"}, + view_range = 15, + owner = "", + order = "follow", + -- model animation + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + stand2_start = 100, + stand2_end = 200, + walk_speed = 100, + walk_start = 200, + walk_end = 300, + punch_speed = 100, + punch_start = 300, + punch_end = 400, + }, + -- right clicking with raw meat will give Igor more health + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, false, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + -- right clicking with gold lump drops random item from mobs.npc_drops + if item:get_name() == "default:gold_ingot" then + + if not mobs.is_creative(name) then + item:take_item() + clicker:set_wielded_item(item) + end + + local pos = self.object:get_pos() + + pos.y = pos.y + 0.5 + + local drops = self.samsmith_drops or mobs.samsmith_drops + + minetest.add_item(pos, { + name = drops[math.random(1, #drops)] + }) + + minetest.chat_send_player(name, S("Blackmith dropped you an item for gold!")) + + return + end + + -- if owner switch between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Blacksmith stands still.")) + else + self.order = "follow" + minetest.chat_send_player(name, S("Blacksmith will follow you.")) + end + end + end, +}) + +if not mobs.custom_spawn_animal then +mobs:spawn({ + name = "people:samsmith", + nodes = {"default:junglewood"}, + neighbors = {"people:forge"}, + min_light = 0, + interval = 30, + chance = 1, -- 15000 + min_height = -25, + max_height = 1000, +}) +end +-- register spawn egg +mobs:register_egg("people:samsmith", S("Blacksmith Jungle"), "asamsmith.png") + +-- compatibility +mobs:alias_mob("people:samsmith", "people:samsmith") diff --git a/samwarrior.lua b/samwarrior.lua new file mode 100644 index 0000000..e8e292b --- /dev/null +++ b/samwarrior.lua @@ -0,0 +1,133 @@ + +local S = mobs.intllib + +-- Npc by TenPlus1 + + +mobs:register_mob("people:samwarrior", { + type = "npc", + passive = false, + damage = 8, + attack_type = "dogshoot", + dogshoot_switch = 1, + dogshoot_count_max = 12, -- shoot for 10 seconds + dogshoot_count2_max = 3, -- dogfight for 3 seconds + shoot_interval = 1.5, + arrow = "people:spearfly", + shoot_offset = 2, + attacks_monsters = true, + attack_npcs = false, + owner_loyal = true, + pathfinding = true, + hp_min = 25, + hp_max = 125, + armor = 100, + collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35}, + visual = "mesh", + mesh = "Warrior.b3d", + drawtype = "front", + textures = { + {"texturesamwarrior.png"}, + }, + makes_footstep_sound = true, + sounds = { + attack = "people_warrior3", + random = "people_warrior2", + damage = "people_male5", + death = "people_warrior", + distance = 10, +}, + walk_velocity = 3, + run_velocity = 4, + jump = true, + drops = { {name = "people:warriorgrave", chance = 1, min = 1, max = 1}, + }, + water_damage = 0, + lava_damage = 2, + light_damage = 0, + follow = {"farming:turkish_delight", "farming:garlic_bread", "farming:donut", "farming:donut_chocolate", "farming:donut_apple", "farming:porridge", "farming:jaffa_cake", "farming:apple_pie", "farming:spaghetti", "farming:burger", "farming:bibimbap"}, + view_range = 12, + owner = "", + order = "follow", + fear_height = 3, + animation = { + speed_normal = 50, + stand_start = 0, + stand_end = 100, + walk_speed = 100, + walk_start = 100, + walk_end = 200, + punch_start = 200, + punch_end = 300, + shoot_start = 300, + shoot_speed = 80, + shoot_end = 400, + }, + + on_rightclick = function(self, clicker) + + -- feed to heal npc + if mobs:feed_tame(self, clicker, 8, true, true) then return end + + -- capture npc with net or lasso + if mobs:capture_mob(self, clicker, nil, 5, 80, false, nil) then return end + + -- protect npc with mobs:protector + if mobs:protect(self, clicker) then return end + + local item = clicker:get_wielded_item() + local name = clicker:get_player_name() + + + + -- by right-clicking owner can switch npc between follow and stand + if self.owner and self.owner == name then + + if self.order == "follow" then + + self.attack = nil + self.order = "stand" + self.state = "stand" + self:set_animation("stand") + self:set_velocity(0) + + minetest.chat_send_player(name, S("Warrior stands still.")) + else + self.order = "follow" + + minetest.chat_send_player(name, S("Warrior will follow you.")) + end + end + end, +}) + + +mobs:register_egg("people:samwarrior", S("Warrior Jungle"), "asamwarrior.png" ) + +-- compatibility +mobs:alias_mob("people:samwarrior", "people:samwarrior") + +mobs:register_arrow("people:spearfly", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {"spearfly.png"}, + velocity = 12, + drop = true, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=13}, + }, nil) + end, + + hit_node = function(self, pos, node) + end, +}) diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1c3b540bafe4d6b73d6b49fa3f2acda54a4293 GIT binary patch literal 561565 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 x0BKD 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