diff --git a/mods/mobs/api.lua b/mods/mobs/api.lua index f2bfc104..7ef81cd2 100755 --- a/mods/mobs/api.lua +++ b/mods/mobs/api.lua @@ -1,4 +1,4 @@ - -- Mobs Api (24th March 2015) + -- Mobs Api (29th March 2015) mobs = {} mobs.mod = "redo" @@ -41,16 +41,13 @@ function mobs:register_mob(name, def) animation = def.animation, follow = def.follow or "", jump = def.jump or true, - exp_min = def.exp_min or 0, - exp_max = def.exp_max or 0, walk_chance = def.walk_chance or 50, attacks_monsters = def.attacks_monsters or false, group_attack = def.group_attack or false, --fov = def.fov or 120, passive = def.passive or false, recovery_time = def.recovery_time or 0.5, - knock_back = def.knock_back or 1, --default value is "or 3", - blood_offset = def.blood_offset or 0, + knock_back = def.knock_back or 1, --Modif MFF, default value is "or 3", blood_amount = def.blood_amount or 5, blood_texture = def.blood_texture or "mobs_blood.png", shoot_offset = def.shoot_offset or 0, @@ -88,6 +85,7 @@ function mobs:register_mob(name, def) end, set_velocity = function(self, v) + if not v then v = 0 end -- added local yaw = self.object:getyaw() if self.drawtype == "side" then yaw = yaw+(math.pi/2) @@ -208,8 +206,7 @@ function mobs:register_mob(name, def) if self.fall_damage == 1 and self.object:getvelocity().y == 0 then local d = self.old_y - self.object:getpos().y if d > 5 then - local damage = math.floor(d - 5) - self.object:set_hp(self.object:get_hp()-damage) + self.object:set_hp(self.object:get_hp() - math.floor(d - 5)) check_for_death(self) end self.old_y = self.object:getpos().y @@ -241,12 +238,12 @@ function mobs:register_mob(name, def) local pos = self.object:getpos() local n = minetest.get_node(pos) - local lit = minetest.get_node_light(pos) or 0 local tod = minetest.get_timeofday() + pos.y = pos.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 if self.light_damage and self.light_damage ~= 0 and pos.y > 0 - and lit > 10 -- direct sunlight (was 4) + and (minetest.get_node_light(pos) or 0) > 10 -- direct sunlight (was 4) and tod > 0.2 and tod < 0.8 then self.object:set_hp(self.object:get_hp()-self.light_damage) effect(pos, 5, "tnt_smoke.png") @@ -279,17 +276,17 @@ function mobs:register_mob(name, def) if self.type == "monster" and damage_enabled and self.state ~= "attack" then local s = self.object:getpos() - local inradius = minetest.get_objects_inside_radius(s,self.view_range) local player = nil local type = nil + local obj = nil - for _,oir in ipairs(inradius) do + for _,oir in ipairs(minetest.get_objects_inside_radius(s,self.view_range)) do if oir:is_player() then player = oir type = "player" else - local obj = oir:get_luaentity() + obj = oir:get_luaentity() if obj then player = obj.object type = obj.type @@ -316,38 +313,23 @@ function mobs:register_mob(name, def) -- NPC FIND A MONSTER TO ATTACK if self.type == "npc" and self.attacks_monsters and self.state ~= "attack" then local s = self.object:getpos() - local inradius = minetest.get_objects_inside_radius(s,self.view_range) - for _, oir in pairs(inradius) do - local obj = oir:get_luaentity() + local obj = nil + local p, dist + for _, oir in pairs(minetest.get_objects_inside_radius(s,self.view_range)) do + obj = oir:get_luaentity() if obj and obj.type == "monster" then -- attack monster - local p = obj.object:getpos() - local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + p = obj.object:getpos() + dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 self.do_attack(self,obj.object,dist) break end end end - if self.follow ~= "" and not self.following then - for _,player in pairs(minetest.get_connected_players()) do - local s = self.object:getpos() - local p = player:getpos() - local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 - if self.view_range and dist < self.view_range then - self.following = player ; self.following_player = true - break - else self.following_player = nil - end - end - end - -- horny animal can mate for 40 seconds, afterwards horny animal cannot mate again for 200 seconds if self.horny == true and self.hornytimer < 240 and self.child == false then self.hornytimer = self.hornytimer + 1 - if self.hornytimer <= 40 then - effect(self.object:getpos(), 4, "heart.png") - end if self.hornytimer >= 240 then self.hornytimer = 0 self.horny = false @@ -364,6 +346,7 @@ function mobs:register_mob(name, def) textures = self.base_texture, mesh = self.base_mesh, visual_size = {x=self.visual_size.x,y=self.visual_size.y}, + collisionbox = self.collisionbox, }) end end @@ -371,15 +354,16 @@ function mobs:register_mob(name, def) -- if animal is horny, find another same animal who is horny and mate if self.horny == true and self.hornytimer <= 40 then local pos = self.object:getpos() + effect(pos, 4, "heart.png") local ents = minetest.get_objects_inside_radius(pos, self.view_range) local num = 0 + local ent = nil for i,obj in ipairs(ents) do - local ent = obj:get_luaentity() + ent = obj:get_luaentity() if ent and ent.name == self.name and ent.horny == true and ent.hornytimer <= 40 then num = num + 1 end if num > 1 then - --print("2 horny "..name) self.following = ent ent.following = self self.horny = false @@ -388,22 +372,22 @@ function mobs:register_mob(name, def) ent.horny = false ent.following = nil ent.hornytimer = 0 - minetest.after(7, function(dtime) - --print ("spawned baby:",self.name) local mob = minetest.add_entity(pos, self.name) local ent2 = mob:get_luaentity() local textures = self.base_texture if def.child_texture then - print ("child texture detected") textures = def.child_texture[1] end mob:set_properties({ textures = textures, visual_size = {x=self.visual_size.x/2,y=self.visual_size.y/2}, + collisionbox = {self.collisionbox[1]/2, self.collisionbox[2]/2, self.collisionbox[3]/2, + self.collisionbox[4]/2, self.collisionbox[5]/2, self.collisionbox[6]/2}, }) ent2.child = true ent2.tamed = true + ent2.following = ent -- follow mother end) num = 0 break @@ -411,7 +395,21 @@ function mobs:register_mob(name, def) end end - if self.following and self.following:is_player() and self.following:get_wielded_item():get_name() ~= self.follow then + if self.follow ~= "" and not self.following then + local s, p, dist + for _,player in pairs(minetest.get_connected_players()) do + s = self.object:getpos() + p = player:getpos() + dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + if self.view_range and dist < self.view_range then + self.following = player + break + end + end + end + + --if self.following and self.following:is_player() and self.following:get_wielded_item():get_name() ~= self.follow then + if self.following and self.following.is_player and self.following:get_wielded_item():get_name() ~= self.follow then self.following = nil self.v_start = false end @@ -446,9 +444,9 @@ function mobs:register_mob(name, def) self.v_start = true self.set_velocity(self, self.walk_velocity) else - if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then -- 0.5 was 1.5 + if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then local v = self.object:getvelocity() - v.y = 6 + v.y = 6.5 -- 6 (in older api.lua version) self.object:setvelocity(v) end self.set_velocity(self, self.walk_velocity) @@ -837,13 +835,14 @@ function mobs:register_mob(name, def) get_staticdata = function(self) -- select random texture, set model if not self.base_texture then - self.base_texture = def.available_textures["texture_"..math.random(1,def.available_textures["total"])] + self.base_texture = def.textures[math.random(1,#def.textures)] self.base_mesh = def.mesh end -- set texture, model and size local textures = self.base_texture local mesh = self.base_mesh local vis_size = self.visual_size + local colbox = self.collisionbox -- specific texture if gotten if self.gotten == true and def.gotten_texture then textures = def.gotten_texture @@ -858,6 +857,8 @@ function mobs:register_mob(name, def) if def.child_texture then textures = def.child_texture[1] end + colbox = {self.collisionbox[1]/2, self.collisionbox[2]/2, self.collisionbox[3]/2, + self.collisionbox[4]/2, self.collisionbox[5]/2, self.collisionbox[6]/2} end -- remember settings local tmp = { @@ -871,6 +872,7 @@ function mobs:register_mob(name, def) textures = textures, visual_size = vis_size, base_texture = self.base_texture, + collisionbox = colbox, } self.object:set_properties(tmp) return minetest.serialize(tmp) @@ -879,14 +881,13 @@ function mobs:register_mob(name, def) on_punch = function(self, hitter, tflp, tool_capabilities, dir) process_weapon(hitter,tflp,tool_capabilities) - local pos = self.object:getpos() check_for_death(self) --blood_particles + local pos = self.object:getpos() + pos.y = pos.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 if self.blood_amount > 0 and pos then - local p = pos - p.y = p.y + self.blood_offset - effect(p, self.blood_amount, self.blood_texture) + effect(pos, self.blood_amount, self.blood_texture) end -- knock back effect, adapted from blockmen's pyramids mod @@ -913,10 +914,10 @@ function mobs:register_mob(name, def) if self.state ~= "attack" then self.do_attack(self,hitter,1) end - -- alert other NPCs to the attack - local inradius = minetest.get_objects_inside_radius(hitter:getpos(),5) - for _, oir in pairs(inradius) do - local obj = oir:get_luaentity() + -- alert others to the attack + local obj = nil + for _, oir in pairs(minetest.get_objects_inside_radius(hitter:getpos(),5)) do + obj = oir:get_luaentity() if obj then if obj.group_attack == true and obj.state ~= "attack" then obj.do_attack(obj,hitter,1) @@ -1006,10 +1007,10 @@ function check_for_death(self) local pos = self.object:getpos() pos.y = pos.y + 0.5 -- drop items half a block higher self.object:remove() + local obj = nil for _,drop in ipairs(self.drops) do if math.random(1, drop.chance) == 1 then - local d = ItemStack(drop.name.." "..math.random(drop.min, drop.max)) - local obj = minetest.add_item(pos, d) + obj = minetest.add_item(pos, ItemStack(drop.name.." "..math.random(drop.min, drop.max))) if obj then obj:setvelocity({x=math.random(-1,1), y=5, z=math.random(-1,1)}) end @@ -1079,13 +1080,6 @@ local weapon = player:get_wielded_item() weapon:add_wear(wear) player:set_wielded_item(weapon) end - --- if weapon:get_definition().sounds ~= nil then --- local s = math.random(0,#weapon:get_definition().sounds) --- minetest.sound_play(weapon:get_definition().sounds[s], {object=player,}) --- else --- minetest.sound_play("default_sword_wood", {object = player,}) --- end end -- Spawn Egg diff --git a/mods/mobs/bee.lua b/mods/mobs/bee.lua index b72383ec..a150c422 100755 --- a/mods/mobs/bee.lua +++ b/mods/mobs/bee.lua @@ -13,9 +13,8 @@ mobs:register_mob("mobs:bee", { visual = "mesh", mesh = "mobs_bee.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_bee.png"}, + textures = { + {"mobs_bee.png"}, }, -- sounds makes_footstep_sound = false, @@ -52,8 +51,8 @@ mobs:register_mob("mobs:bee", { end end, }) --- spawn on group:flowers between 4 and 20 light, 1 in 10000 chance, 1 bee in area up to 31000 in height -mobs:register_spawn("mobs:bee", {"default:dirt_with_grass"}, 20, 4, 10000, 1, 31000) +-- spawn on group:flowers between 4 and 20 light, 1 in 5000 chance, 1 bee in area up to 31000 in height +mobs:register_spawn("mobs:bee", {"group:flower"}, 20, 4, 5000, 1, 31000) -- register spawn egg mobs:register_egg("mobs:bee", "Bee", "mobs_bee_inv.png", 0) diff --git a/mods/mobs/bunny.lua b/mods/mobs/bunny.lua index e2c61cc9..7f3ca77f 100755 --- a/mods/mobs/bunny.lua +++ b/mods/mobs/bunny.lua @@ -13,11 +13,10 @@ mobs:register_mob("mobs:bunny", { visual = "mesh", mesh = "mobs_bunny.b3d", drawtype = "front", - available_textures = { - total = 3, - texture_1 = {"mobs_bunny_grey.png"}, - texture_2 = {"mobs_bunny_brown.png"}, - texture_3 = {"mobs_bunny_white.png"}, + textures = { + {"mobs_bunny_grey.png"}, + {"mobs_bunny_brown.png"}, + {"mobs_bunny_white.png"}, }, -- sounds sounds = {}, diff --git a/mods/mobs/chicken.lua b/mods/mobs/chicken.lua index 156aff63..c22752ba 100755 --- a/mods/mobs/chicken.lua +++ b/mods/mobs/chicken.lua @@ -13,14 +13,11 @@ mobs:register_mob("mobs:chicken", { visual = "mesh", mesh = "mobs_chicken.x", drawtype = "front", - available_textures = { - total = 2, - texture_1 = {"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", - "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", - "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png"}, - texture_2 = {"mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", - "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", - "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png"}, + textures = { + {"mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", + "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png", "mobs_chicken.png"}, + {"mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", + "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png", "mobs_chicken_black.png"}, }, child_texture = { {"mobs_chick.png", "mobs_chick.png", "mobs_chick.png", "mobs_chick.png", @@ -57,7 +54,7 @@ mobs:register_mob("mobs:chicken", { -- follows wheat follow = "farming:seed_wheat", view_range = 8, -- replace air with egg (lay) - replace_rate = 1000, + replace_rate = 2000, replace_what = {"air"}, replace_with = "mobs:egg", -- right click to pick up chicken @@ -70,7 +67,10 @@ mobs:register_mob("mobs:chicken", { clicker:set_wielded_item(tool) end self.food = (self.food or 0) + 1 - if self.food >= 4 then + if self.child == true then + self.hornytimer = self.hornytimer + 10 + end + if self.food >= 8 then self.food = 0 if self.child == false then self.horny = true end self.gotten = false -- reset @@ -86,6 +86,12 @@ mobs:register_mob("mobs:chicken", { end end, + if clicker:is_player() and clicker:get_inventory() and self.child == false + and clicker:get_inventory():room_for_item("main", "mobs:chicken") then + clicker:get_inventory():add_item("main", "mobs:chicken") + self.object:remove() + end + end, }) -- spawn on default or bamboo grass between 8 and 20 light, 1 in 9000 change, 1 chicken in area up to 31000 in height mobs:register_spawn("mobs:chicken", {"default:dirt_with_grass"}, 20, 0, 10000, 1, 31000) diff --git a/mods/mobs/cow.lua b/mods/mobs/cow.lua index 56662274..32f98ce9 100755 --- a/mods/mobs/cow.lua +++ b/mods/mobs/cow.lua @@ -15,10 +15,9 @@ mobs:register_mob("mobs:cow", { visual = "mesh", mesh = "mobs_cow.x", drawtype = "front", - available_textures = { - total = 1, -- à mettre à 2 quand "mobs_cow_brown.png" sera compatible - texture_1 = {"mobs_cow.png"}, - --texture_2 = {"mobs_cow_brown.png"}, -- dé-commenter quand "mobs_cow_brown.png" sera compatible + textures = { + {"mobs_cow.png"}, + {"mobs_cow_brown.png"}, -- dé-commenter quand "mobs_cow_brown.png" sera compatible }, blood_texture = "mobs_blood.png", visual_size = {x=1,y=1}, diff --git a/mods/mobs/creeper.lua b/mods/mobs/creeper.lua old mode 100644 new mode 100755 index c046e092..30a57c17 --- a/mods/mobs/creeper.lua +++ b/mods/mobs/creeper.lua @@ -15,19 +15,22 @@ mobs:register_mob("mobs:creeper", { visual = "mesh", mesh = "mobs_tree_monster.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_creeper.png"}, + textures = { + {"mobs_creeper.png"}, }, visual_size = {x=4.5,y=4.5}, blood_texture = "mobs_creeper_inv.png", - - -- Continuer d'organiser le code à partir d'ici -- - + -- sounds makes_footstep_sound = true, - view_range = 16, + sounds = { + random = "mobs_treemonster", + }, + -- speed and jump walk_velocity = 2, run_velocity = 4, + jump = true, + view_range = 16, + -- drops mese or diamond when dead drops = { {name = "default:torch", chance = 10, @@ -46,27 +49,18 @@ mobs:register_mob("mobs:creeper", { min = 2, max = 3,}, }, - light_resistant = true, - water_damage = 0, + -- damaged by + water_damage = 2, lava_damage = 15, light_damage = 0, - disable_fall_damage = false, + -- model animation animation = { - speed_normal = 15, - speed_run = 15, - stand_start = 0, - stand_end = 24, - walk_start = 25, - walk_end = 47, - run_start = 48, - run_end = 62, - punch_start = 48, - punch_end = 62, + stand_start = 0, stand_end = 24, + walk_start = 25, walk_end = 47, + run_start = 48, run_end = 62, + punch_start = 48, punch_end = 62, + speed_normal = 15, speed_run = 15, }, - sounds = { - random = "mobs_treemonster", - }, - jump = true, }) mobs:register_spawn("mobs:creeper", {"default:dirt_with_grass"}, 20, 8, 12000, 1, 31000) mobs:register_egg("mobs:creeper", "Creeper", "mobs_creeper_inv.png", 1) diff --git a/mods/mobs/dirtmonster.lua b/mods/mobs/dirtmonster.lua index 8fc6a416..3bc9e589 100755 --- a/mods/mobs/dirtmonster.lua +++ b/mods/mobs/dirtmonster.lua @@ -15,9 +15,8 @@ mobs:register_mob("mobs:dirt_monster", { visual = "mesh", mesh = "mobs_stone_monster.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_dirt_monster.png"}, + textures = { + {"mobs_dirt_monster.png"}, }, visual_size = {x=3, y=2.6}, blood_texture = "default_dirt.png", diff --git a/mods/mobs/dungeonmaster.lua b/mods/mobs/dungeonmaster.lua index 3b1aa7bd..f20db6b7 100755 --- a/mods/mobs/dungeonmaster.lua +++ b/mods/mobs/dungeonmaster.lua @@ -21,11 +21,10 @@ mobs:register_mob("mobs:dungeon_master", { visual = "mesh", mesh = "mobs_dungeon_master.x", drawtype = "front", - available_textures = { - total = 3, - texture_1 = {"mobs_dungeon_master.png"}, - texture_2 = {"mobs_dungeon_master_cobblestone.png"}, - texture_3 = {"mobs_dungeon_master_strangewhite.png"}, + textures = { + {"mobs_dungeon_master.png"}, + {"mobs_dungeon_master_cobblestone.png"}, + {"mobs_dungeon_master_strangewhite.png"}, }, visual_size = {x=8, y=8}, blood_texture = "mobs_blood.png", diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua index f7aedcd0..d85b2324 100755 --- a/mods/mobs/init.lua +++ b/mods/mobs/init.lua @@ -24,10 +24,10 @@ dofile(minetest.get_modpath("mobs").."/treemonster.lua") -- PilzAdam dofile(minetest.get_modpath("mobs").."/wolf.lua") -- PilzAdam dofile(minetest.get_modpath("mobs").."/lava_flan.lua") -- Zeg9 dofile(minetest.get_modpath("mobs").."/mese_monster.lua") -- Zeg9 -dofile(minetest.get_modpath("mobs").."/spider.lua") -- https://forum.minetest.net/viewtopic.php?pid=127538 +dofile(minetest.get_modpath("mobs").."/spider.lua") -- AspireMint -- NPC -dofile(minetest.get_modpath("mobs").."/npc.lua") +dofile(minetest.get_modpath("mobs").."/npc.lua") -- TenPlus1 -- Creeper (fast impl by davedevils) dofile(minetest.get_modpath("mobs").."/creeper.lua") diff --git a/mods/mobs/kitten.lua b/mods/mobs/kitten.lua index 70a8b1cf..5c7b01e2 100755 --- a/mods/mobs/kitten.lua +++ b/mods/mobs/kitten.lua @@ -13,12 +13,11 @@ mobs:register_mob("mobs:kitten", { visual = "mesh", visual_size = {x=0.5, y=0.5}, mesh = "mobs_kitten.b3d", - available_textures = { - total = 4, - texture_1 = {"mobs_kitten_striped.png"}, - texture_2 = {"mobs_kitten_splotchy.png"}, - texture_3 = {"mobs_kitten_ginger.png"}, - texture_4 = {"mobs_kitten_sandy.png"}, + textures = { + {"mobs_kitten_striped.png"}, + {"mobs_kitten_splotchy.png"}, + {"mobs_kitten_ginger.png"}, + {"mobs_kitten_sandy.png"}, }, blood_texture = "mobs_blood.png", -- sounds @@ -29,12 +28,12 @@ mobs:register_mob("mobs:kitten", { -- speed and jump walk_velocity = 0.6, jump = false, - -- drops sometimes coins + -- drops string and coins drops = { {name = "maptools:copper_coin", - chance = 10, - min = 1, - max = 1,}, + chance = 10, min = 1, max = 1,}, + {name = "farming:string", + chance = 2, min = 1, max = 1}, }, -- damaged by water_damage = 1, diff --git a/mods/mobs/lava_flan.lua b/mods/mobs/lava_flan.lua index d8987278..1b194da0 100755 --- a/mods/mobs/lava_flan.lua +++ b/mods/mobs/lava_flan.lua @@ -15,9 +15,8 @@ mobs:register_mob("mobs:lava_flan", { visual = "mesh", mesh = "zmobs_lava_flan.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"zmobs_lava_flan.png"}, + textures = { + {"zmobs_lava_flan.png"}, }, blood_texture = "fire_basic_flame.png", visual_size = {x=1, y=1}, @@ -53,8 +52,8 @@ mobs:register_mob("mobs:lava_flan", { punch_start = 20, punch_end = 28, }, }) --- spawns in lava between -1 and 20 light, 1 in 2000 chance, 2 in area below 31000 in height -mobs:register_spawn("mobs:lava_flan", {"default:lava_source"}, 20, -1, 2500, 2, 31000) +-- spawns in lava between -1 and 20 light, 1 in 2000 chance, 3 in area below 31000 in height +mobs:register_spawn("mobs:lava_flan", {"default:lava_source"}, 20, -1, 2500, 3, 31000) -- register spawn egg mobs:register_egg("mobs:lava_flan", "Lava Flan", "default_lava.png", 1) diff --git a/mods/mobs/mese_monster.lua b/mods/mobs/mese_monster.lua index 981084f4..fa626f7c 100755 --- a/mods/mobs/mese_monster.lua +++ b/mods/mobs/mese_monster.lua @@ -17,9 +17,8 @@ mobs:register_mob("mobs:mese_monster", { collisionbox = {-0.5, -1.5, -0.5, 0.5, 0.5, 0.5}, visual = "mesh", mesh = "zmobs_mese_monster.x", - available_textures = { - total = 1, - texture_1 = {"zmobs_mese_monster.png"}, + textures = { + {"zmobs_mese_monster.png"}, }, visual_size = {x=1, y=1}, drawtype = "front", @@ -60,7 +59,7 @@ mobs:register_mob("mobs:mese_monster", { punch_start = 15, punch_end = 38, -- was 40 & 63 }, }) --- spawn on stone between 20 and -1 light, 1 in 6000 chance, 1 in area below -25 +-- spawn on stone between 20 and -1 light, 1 in 7000 chance, 1 in area below -25 mobs:register_spawn("mobs:mese_monster", {"default:stone", }, 20, -1, 7000, 1, -25) -- register spawn egg mobs:register_egg("mobs:mese_monster", "Mese Monster", "default_mese_block.png", 1) diff --git a/mods/mobs/npc.lua b/mods/mobs/npc.lua index c122fa99..9d2110f7 100755 --- a/mods/mobs/npc.lua +++ b/mods/mobs/npc.lua @@ -21,9 +21,8 @@ mobs:register_mob("mobs:npc", { visual = "mesh", mesh = "character.b3d", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_npc.png"}, + textures = { + {"mobs_npc.png"}, }, visual_size = {x=1, y=1}, -- sounds @@ -33,7 +32,6 @@ mobs:register_mob("mobs:npc", { walk_velocity = 1.5, run_velocity = 2.5, jump = true, - step = 1, -- drops wood and chance of apples when dead drops = { {name = "default:wood", @@ -65,14 +63,12 @@ mobs:register_mob("mobs:npc", { local item = clicker:get_wielded_item() if item:get_name() == "mobs:meat" or item:get_name() == "farming:bread" then local hp = self.object:get_hp() - if hp >= self.hp_max then return end + if hp + 4 > self.hp_max then return end if not minetest.setting_getbool("creative_mode") then item:take_item() clicker:set_wielded_item(item) end - local n = hp + 4 - if n > self.hp_max then n = self.hp_max end - self.object:set_hp(n) + self.object:set_hp(hp+4) -- right clicking with gold lump drops random item from mobs.npc_drops elseif item:get_name() == "default:gold_lump" then if not minetest.setting_getbool("creative_mode") then diff --git a/mods/mobs/oerkki.lua b/mods/mobs/oerkki.lua index 575e612b..c1499d2d 100755 --- a/mods/mobs/oerkki.lua +++ b/mods/mobs/oerkki.lua @@ -15,10 +15,9 @@ mobs:register_mob("mobs:oerkki", { visual = "mesh", mesh = "mobs_oerkki.x", drawtype = "front", - available_textures = { - total = 2, - texture_1 = {"mobs_oerkki.png"}, - texture_2 = {"mobs_oerkki2.png"}, + textures = { + {"mobs_oerkki.png"}, + {"mobs_oerkki2.png"}, }, visual_size = {x=5, y=5}, blood_texture = "mobs_blood.png", @@ -43,7 +42,7 @@ mobs:register_mob("mobs:oerkki", { -- damaged by water_damage = 1, lava_damage = 1, - light_damage = 0, + light_damage = 1, -- model animation animation = { stand_start = 0, stand_end = 23, diff --git a/mods/mobs/rat.lua b/mods/mobs/rat.lua index a52fdc57..01b19871 100755 --- a/mods/mobs/rat.lua +++ b/mods/mobs/rat.lua @@ -13,10 +13,9 @@ mobs:register_mob("mobs:rat", { visual = "mesh", mesh = "mobs_rat.x", drawtype = "front", - available_textures = { - total = 2, - texture_1 = {"mobs_rat.png"}, - texture_2 = {"mobs_rat_brown.png"}, + textures = { + {"mobs_rat.png"}, + {"mobs_rat_brown.png"}, }, blood_texture = "mobs_blood.png", -- sounds diff --git a/mods/mobs/sandmonster.lua b/mods/mobs/sandmonster.lua index 0af56db5..95e27317 100755 --- a/mods/mobs/sandmonster.lua +++ b/mods/mobs/sandmonster.lua @@ -15,9 +15,8 @@ mobs:register_mob("mobs:sand_monster", { visual = "mesh", mesh = "mobs_sand_monster.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_sand_monster.png"}, + textures = { + {"mobs_sand_monster.png"}, }, visual_size = {x=8,y=8}, blood_texture = "default_sand.png", @@ -52,7 +51,7 @@ mobs:register_mob("mobs:sand_monster", { punch_start = 74, punch_end = 105, }, }) --- spawns on desert sand between -1 and 20 light, 1 in 5000 chance, 1 sand monster in area up to 31000 in height +-- spawns on desert sand between -1 and 20 light, 1 in 7500 chance, 1 sand monster in area up to 31000 in height mobs:register_spawn("mobs:sand_monster", {"default:desert_sand", "default:sand"}, 20, -1, 7500, 1, 31000) -- register spawn egg mobs:register_egg("mobs:sand_monster", "Sand Monster", "default_desert_sand.png", 1) diff --git a/mods/mobs/sheep.lua b/mods/mobs/sheep.lua index b8ed6298..04c4aa0f 100755 --- a/mods/mobs/sheep.lua +++ b/mods/mobs/sheep.lua @@ -13,9 +13,8 @@ mobs:register_mob("mobs:sheep", { visual = "mesh", mesh = "mobs_sheep.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_sheep.png"}, + textures = { + {"mobs_sheep.png"}, }, blood_texture = "mobs_blood.png", visual_size = {x=1,y=1}, @@ -86,7 +85,7 @@ mobs:register_mob("mobs:sheep", { if minetest.registered_items["wool:white"] then local pos = self.object:getpos() pos.y = pos.y + 0.5 - local obj = minetest.add_item(pos, ItemStack("wool:white "..math.random(1,3))) + local obj = minetest.add_item(pos, ItemStack("wool:white "..math.random(2,3))) if obj then obj:setvelocity({x=math.random(-1,1), y=5, z=math.random(-1,1)}) end diff --git a/mods/mobs/sounds/mobs_dirtmonster.ogg b/mods/mobs/sounds/mobs_dirtmonster.ogg deleted file mode 100644 index 87fdab08..00000000 Binary files a/mods/mobs/sounds/mobs_dirtmonster.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_dungeonmaster.ogg b/mods/mobs/sounds/mobs_dungeonmaster.ogg deleted file mode 100644 index 4ac5f4a0..00000000 Binary files a/mods/mobs/sounds/mobs_dungeonmaster.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_lavaflan.ogg b/mods/mobs/sounds/mobs_lavaflan.ogg deleted file mode 100644 index 08c8f1de..00000000 Binary files a/mods/mobs/sounds/mobs_lavaflan.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_mesemonster.ogg b/mods/mobs/sounds/mobs_mesemonster.ogg deleted file mode 100644 index c354dfdf..00000000 Binary files a/mods/mobs/sounds/mobs_mesemonster.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_oerkki.ogg b/mods/mobs/sounds/mobs_oerkki.ogg deleted file mode 100644 index aac6e43b..00000000 Binary files a/mods/mobs/sounds/mobs_oerkki.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_rat.ogg b/mods/mobs/sounds/mobs_rat.ogg deleted file mode 100644 index 0e992671..00000000 Binary files a/mods/mobs/sounds/mobs_rat.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_sandmonster.ogg b/mods/mobs/sounds/mobs_sandmonster.ogg deleted file mode 100644 index 2feae6ae..00000000 Binary files a/mods/mobs/sounds/mobs_sandmonster.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_spider.2.ogg b/mods/mobs/sounds/mobs_spider.2.ogg deleted file mode 100755 index 8a777f15..00000000 Binary files a/mods/mobs/sounds/mobs_spider.2.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_spider.ogg b/mods/mobs/sounds/mobs_spider.ogg deleted file mode 100644 index 41050067..00000000 Binary files a/mods/mobs/sounds/mobs_spider.ogg and /dev/null differ diff --git a/mods/mobs/sounds/mobs_spider.1.ogg b/mods/mobs/sounds/mobs_spider_attack.ogg similarity index 100% rename from mods/mobs/sounds/mobs_spider.1.ogg rename to mods/mobs/sounds/mobs_spider_attack.ogg diff --git a/mods/mobs/sounds/mobs_stonemonster.ogg b/mods/mobs/sounds/mobs_stonemonster_attack.ogg old mode 100644 new mode 100755 similarity index 100% rename from mods/mobs/sounds/mobs_stonemonster.ogg rename to mods/mobs/sounds/mobs_stonemonster_attack.ogg diff --git a/mods/mobs/sounds/mobs_treemonster.ogg b/mods/mobs/sounds/mobs_treemonster.ogg deleted file mode 100644 index ce4e11e0..00000000 Binary files a/mods/mobs/sounds/mobs_treemonster.ogg and /dev/null differ diff --git a/mods/mobs/sounds/tnt_explode.ogg b/mods/mobs/sounds/tnt_explode.ogg old mode 100644 new mode 100755 diff --git a/mods/mobs/spider.lua b/mods/mobs/spider.lua index b531ec86..048b77d9 100755 --- a/mods/mobs/spider.lua +++ b/mods/mobs/spider.lua @@ -1,5 +1,5 @@ --- Spider by fishyWET (borrowed from Lord of the Test [game]) +-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture) mobs:register_mob("mobs:spider", { -- animal, monster, npc, barbarian @@ -15,9 +15,8 @@ mobs:register_mob("mobs:spider", { visual = "mesh", mesh = "mobs_spider.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_spider.png"}, + textures = { + {"mobs_spider.png"}, }, visual_size = {x=7,y=7}, blood_texture = "mobs_blood.png", @@ -27,7 +26,7 @@ mobs:register_mob("mobs:spider", { random = "mobs_spider", war_cry = "mobs_eerie", death = "mobs_howl", - attack = "mobs_spider", + attack = "mobs_spider_attack", }, -- speed and jump, sinks in water walk_velocity = 1, @@ -57,7 +56,7 @@ mobs:register_mob("mobs:spider", { punch_start = 50, punch_end = 90, }, }) --- spawn on desert stone/crystal dirt, between 0 and 5 light, 1 in 7000 chance, 1 in area up to 71 in height +-- spawn on desert stone/crystal dirt, between 0 and 5 light, 1 in 9000 chance, 1 in area up to 31000 in height mobs:register_spawn("mobs:spider", {"default:jungleleaves", "default:jungletree"}, 20, -1, 9000, 1, 31000) -- register spawn egg mobs:register_egg("mobs:spider", "Spider", "mobs_cobweb.png", 1) @@ -78,8 +77,8 @@ minetest.register_node("mobs:spider_cobweb", { sunlight_propagates = true, liquid_viscosity = 11, liquidtype = "source", - liquid_alternative_flowing = "mobs:spider_cobweb", - liquid_alternative_source = "mobs:spider_cobweb", + liquid_alternative_flowing = "mobs:spider_cobweb", --Modif MFF + liquid_alternative_source = "mobs:spider_cobweb", --Modif MFF liquid_renewable = false, liquid_range = 0, walkable = false, diff --git a/mods/mobs/stonemonster.lua b/mods/mobs/stonemonster.lua index abe84690..35ed83aa 100755 --- a/mods/mobs/stonemonster.lua +++ b/mods/mobs/stonemonster.lua @@ -15,9 +15,8 @@ mobs:register_mob("mobs:stone_monster", { visual = "mesh", mesh = "mobs_stone_monster.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_stone_monster.png"}, + textures = { + {"mobs_stone_monster.png"}, }, visual_size = {x=3, y=2.6}, blood_texture = "mobs_blood.png", @@ -25,6 +24,7 @@ mobs:register_mob("mobs:stone_monster", { makes_footstep_sound = true, sounds = { random = "mobs_stonemonster", + attack = "mobs_stonemonster_attack", }, -- speed and jump, sinks in water walk_velocity = 2, @@ -32,7 +32,7 @@ mobs:register_mob("mobs:stone_monster", { jump = true, floats = 0, view_range = 16, - -- chance of dropping torch, iron, lump and coins + -- chance of dropping torch, iron lump, coal lump and/or silver coins drops = { {name = "default:torch", chance = 10, min = 3, max = 5,}, @@ -56,7 +56,7 @@ mobs:register_mob("mobs:stone_monster", { punch_start = 40, punch_end = 63, }, }) --- spawns on stone between -1 and 5 light, 1 in 5500 chance, 1 in area below -5 +-- spawns on stone between -1 and 5 light, 1 in 7000 chance, 1 in area below -5 mobs:register_spawn("mobs:stone_monster", {"default:stone", "nether:dirt_top"}, 5, -1, 7000, 1, -5) -- register spawn egg mobs:register_egg("mobs:stone_monster", "Stone Monster", "default_stone.png", 1) diff --git a/mods/mobs/textures/mobs_creeper_inv.png b/mods/mobs/textures/mobs_creeper_inv.png old mode 100644 new mode 100755 index 649338d6..9f1470ab Binary files a/mods/mobs/textures/mobs_creeper_inv.png and b/mods/mobs/textures/mobs_creeper_inv.png differ diff --git a/mods/mobs/textures/mobs_leather.png b/mods/mobs/textures/mobs_leather.png old mode 100644 new mode 100755 diff --git a/mods/mobs/textures/mobs_wolf_inv.png b/mods/mobs/textures/mobs_wolf_inv.png new file mode 100755 index 00000000..0630d481 Binary files /dev/null and b/mods/mobs/textures/mobs_wolf_inv.png differ diff --git a/mods/mobs/treemonster.lua b/mods/mobs/treemonster.lua index 1847b8f5..3eb28b3b 100755 --- a/mods/mobs/treemonster.lua +++ b/mods/mobs/treemonster.lua @@ -15,9 +15,8 @@ mobs:register_mob("mobs:tree_monster", { visual = "mesh", mesh = "mobs_tree_monster.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_tree_monster.png"}, + textures = { + {"mobs_tree_monster.png"}, }, visual_size = {x=4.5,y=4.5}, blood_texture = "default_wood.png", @@ -31,7 +30,7 @@ mobs:register_mob("mobs:tree_monster", { run_velocity = 2.5, jump = true, view_range = 16, - -- drops saplings or apple + -- drops saplings, junglesapling, apple and/or silver coins drops = { {name = "default:sapling", chance = 3, min = 1, max = 2}, @@ -56,7 +55,7 @@ mobs:register_mob("mobs:tree_monster", { punch_start = 48, punch_end = 62, }, }) --- spawn on leaves and beech_leaves, between 0 and 5 light, 1 in 7000 chance, 1 in area up to 31000 in height +-- spawn on leaves and beech_leaves, between 0 and 5 light, 1 in 8000 chance, 1 in area up to 31000 in height mobs:register_spawn("mobs:tree_monster", {"default:leaves", "moretrees:beech_leaves"}, 3, -1, 8000, 1, 31000) -- register spawn egg mobs:register_egg("mobs:tree_monster", "Tree Monster", "default_tree_top.png", 1) diff --git a/mods/mobs/warthog.lua b/mods/mobs/warthog.lua index 73f55fe0..43c73479 100755 --- a/mods/mobs/warthog.lua +++ b/mods/mobs/warthog.lua @@ -15,9 +15,8 @@ mobs:register_mob("mobs:pumba", { visual = "mesh", mesh = "mobs_pumba.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_pumba.png"}, + textures = { + {"mobs_pumba.png"}, }, visual_size = {x=1,y=1}, blood_texture = "mobs_blood.png", diff --git a/mods/mobs/wolf.lua b/mods/mobs/wolf.lua index 8db99ac5..be7656ee 100755 --- a/mods/mobs/wolf.lua +++ b/mods/mobs/wolf.lua @@ -15,20 +15,22 @@ mobs:register_mob("mobs:wolf", { visual = "mesh", mesh = "mobs_wolf.x", drawtype = "front", - available_textures = { - total = 1, - texture_1 = {"mobs_wolf.png"}, + textures = { + {"mobs_wolf.png"}, }, --visual_size = {x=1,y=1}, --Quel valeur lui mettre ? blood_texture = "mobs_blood.png", - - -- Continuer d'organiser le code à partir d'ici -- - + -- sounds makes_footstep_sound = true, - view_range = 16, + sounds = { + random = "mobs_wolf", + }, + -- speed and jump walk_velocity = 3, run_velocity = 5, - damage = 4, + jump = true, + view_range = 16, + -- drops mese or diamond when dead drops = { {name = "mobs:meat_raw", chance = 1, @@ -39,26 +41,19 @@ mobs:register_mob("mobs:wolf", { min = 1, max = 4,}, }, - light_resistant = false, + -- damaged by water_damage = 1, lava_damage = 5, light_damage = 2, - on_rightclick = nil, + -- model animation animation = { - speed_normal = 15, - speed_run = 15, - stand_start = 0, - stand_end = 14, - walk_start = 15, - walk_end = 38, - run_start = 40, - run_end = 63, - punch_start = 40, - punch_end = 63, + stand_start = 0, stand_end = 14, + walk_start = 15, walk_end = 38, + run_start = 40, run_end = 63, + punch_start = 40, punch_end = 63, + speed_normal = 15, speed_run = 15, + }, - sounds = { - random = "mobs_wolf", - }, - jump = true, }) mobs:register_spawn("mobs:wolf", {"default:dirt_with_grass"}, 3, -1, 9500, 1, 31000) +mobs:register_egg("mobs:wolf", "Wolf", "mobs_wolf_inv.png", 1)