Update the mobs mod

- Update to the 0.8 release of TenPlus1 mobs redo mod
- Merge the TenPlus1 mobs redo mod changes
- Add 2/3 new sounds for each monsters (from the Cyberpangolin mobs
sounds)
- Small up of the lava_flan mob health
This commit is contained in:
Ombridride 2014-12-25 18:34:34 +01:00
parent c81fc9903e
commit 3fce25aeab
41 changed files with 113 additions and 72 deletions

View File

@ -25,10 +25,11 @@ This mod contains the following additions:
Changelog:
0.7 - mob.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes
0.8 - Added sounds to monster mobs (thanks Cyberpangolin for the sfx) and also chicken sound
0.7 - mobs.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes
0.6 - Api now supports multi-textured mobs, e.g oerkki, dungeon master, rats and chickens have random skins when spawning (sheep fix TODO), also new Honey block
0.5 - Mobs now float in water, die from falling, and some code improvements
0.4 - Dungeon Masters and Mese Monsters have much better aim due to shoot_offset, also they can both shoot through nodes that aren't walkable (flowers, grass etc) plus new sheep sound :)
0.3 - Added LOTT's Spider mob, made Cobwebs, added KPavel's Bee with Honey and Beehives (made texture), Warthogs now have sound and can be tamed, taming of shaved sheep or milked cow with 8 wheat so it will not despawn, many bug fixes :)
0.2 - Cooking bucket of milk into cheese now returns empty bucket
0.1 - Initial Release
0.1 - Initial Release

View File

@ -174,7 +174,7 @@ function mobs:register_mob(name, def)
end,
on_step = function(self, dtime)
local yaw = 0
if self.type == "monster" and minetest.setting_getbool("only_peaceful_mobs") then
self.object:remove()
end
@ -196,7 +196,7 @@ function mobs:register_mob(name, def)
-- drop egg
if self.animaltype == "clucky" then
if math.random(1, 1500) < 2
if math.random(1, 3000) <= 1
and minetest.get_node(self.object:getpos()).name == "air"
and self.state == "stand" then
minetest.set_node(self.object:getpos(), {name="mobs:egg"})
@ -458,7 +458,7 @@ function mobs:register_mob(name, def)
self.set_animation(self, "walk")
end
elseif self.state == "walk" then
if math.random(1, 100) < 31 then
if math.random(1, 100) <= 30 then
self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/180*math.pi))
end
if self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0 then
@ -468,7 +468,7 @@ function mobs:register_mob(name, def)
end
self:set_animation("walk")
self.set_velocity(self, self.walk_velocity)
if math.random(1, 100) < 31 then
if math.random(1, 100) <= 30 then
self.set_velocity(self, 0)
self.state = "stand"
self:set_animation("stand")
@ -534,7 +534,7 @@ function mobs:register_mob(name, def)
full_punch_interval=1.0,
damage_groups = {fleshy=self.damage}
}, vec)
if self.attack.player:get_hp() < 1 then
if self.attack.player:get_hp() <= 0 then
self.state = "stand"
self:set_animation("stand")
end
@ -576,7 +576,7 @@ function mobs:register_mob(name, def)
self.object:setyaw(yaw)
self.set_velocity(self, 0)
if self.timer > self.shoot_interval and math.random(1, 100) < 61 then
if self.timer > self.shoot_interval and math.random(1, 100) <= 60 then
self.timer = 0
self:set_animation("punch")
@ -629,7 +629,7 @@ function mobs:register_mob(name, def)
self.object:set_properties(tmp.textures)
end]]
end
if self.lifetimer < 1 and not self.tamed and self.type ~= "npc" then
if self.lifetimer <= 0 and not self.tamed and self.type ~= "npc" then
self.object:remove()
end
end,
@ -794,21 +794,22 @@ function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_o
if not mobs.spawning_mobs[name] then
return
end
-- Check if protected area using bogus name so mobs will not spawn
if mobs.protected == 1 and minetest.is_protected(pos, "-") then
return
end
pos.y = pos.y+1
if not minetest.get_node_light(pos)
or minetest.get_node_light(pos) > max_light
or minetest.get_node_light(pos) < min_light then
--print ("LIGHT", name)
if not minetest.get_node_light(pos) then
return
end
if minetest.get_node_light(pos) > max_light then
return
end
if minetest.get_node_light(pos) < min_light then
return
end
if pos.y > max_height then
return
end
@ -867,7 +868,8 @@ function mobs:register_arrow(name, def)
on_step = function(self, dtime)
local pos = self.object:getpos()
--if minetest.get_node(self.object:getpos()).name ~= "air" then
if minetest.registered_nodes[minetest.get_node(self.object:getpos()).name].walkable then
local node = minetest.get_node(self.object:getpos()).name
if minetest.registered_nodes[node].walkable then
self.hit_node(self, pos, node)
self.object:remove()
return

View File

@ -12,7 +12,7 @@ mobs:register_mob("mobs:bee", {
available_textures = {
total = 1,
texture_1 = {"mobs_bee.png"},
},
},
makes_footstep_sound = false,
walk_velocity = 1,
armor = 200,
@ -34,7 +34,9 @@ mobs:register_mob("mobs:bee", {
walk_start = 35,
walk_end = 65,
},
sounds = {
random = "mobs_bee_random01",
},
on_rightclick = function(self, clicker)
if clicker:is_player() and clicker:get_inventory() then
clicker:get_inventory():add_item("main", "mobs:bee")
@ -53,7 +55,7 @@ minetest.register_craftitem("mobs:bee", {
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.above then
minetest.add_entity(pointed_thing.above, "mobs:bee")
minetest.env:add_entity(pointed_thing.above, "mobs:bee")
itemstack:take_item()
end
return itemstack
@ -92,7 +94,7 @@ minetest.register_node("mobs:beehive", {
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name="mobs:beehive", param2=1})
minetest.add_entity(pos, "mobs:bee")
minetest.env:add_entity(pos, "mobs:bee")
end
end,
@ -107,22 +109,24 @@ minetest.register_craft({
-- Honey Block
minetest.register_node("mobs:honey_block", {
description = "Honey Block",
tiles = {"mobs_honey_block.png"},
groups = {snappy=3,flammable=2},
sounds = default.node_sound_dirt_defaults(),
description = "Honey Block",
tiles = {"mobs_honey_block.png"},
groups = {snappy=3,flammable=2},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_craft({
output = "mobs:honey_block",
recipe = {
{"mobs:honey", "mobs:honey", "mobs:honey"},
{"mobs:honey", "mobs:honey", "mobs:honey"},
{"mobs:honey", "mobs:honey", "mobs:honey"},
}
output = "mobs:honey_block",
recipe = {
{"mobs:honey", "mobs:honey", "mobs:honey"},
{"mobs:honey", "mobs:honey", "mobs:honey"},
{"mobs:honey", "mobs:honey", "mobs:honey"},
}
})
minetest.register_craft({
output = "mobs:honey 9",
recipe = {
{"mobs:honey_block"},
}
})
output = "mobs:honey 9",
recipe = {
{"mobs:honey_block"},
}
})

View File

@ -18,9 +18,9 @@ mobs:register_mob("mobs:chicken", {
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"},
},
--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"},
makes_footstep_sound = true,
walk_velocity = 1,
armor = 200,
@ -46,22 +46,10 @@ mobs:register_mob("mobs:chicken", {
clicker:get_inventory():add_item("main", "mobs:chicken")
self.object:remove()
end
-- A VOIR POUR RENDRE TAMED/APPRIVOISABLE
-- if item:get_name() == "farming:wheat" then
-- if not minetest.setting_getbool("creative_mode") then
-- item:take_item()
-- clicker:set_wielded_item(item)
-- end
-- self.food = (self.food or 0) + 1
-- if self.food >= 4 then
-- self.food = 0
-- self.tamed = true
-- end
-- end
-- return
-- end
end,
sounds = {
random = "mobs_chicken",
},
jump = true,
step = 1,
blood_texture = "mobs_blood.png",
@ -78,7 +66,7 @@ minetest.register_craftitem("mobs:chicken", {
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.above then
minetest.add_entity(pointed_thing.above, "mobs:chicken")
minetest.env:add_entity(pointed_thing.above, "mobs:chicken")
itemstack:take_item()
end
return itemstack
@ -127,7 +115,7 @@ minetest.register_craft({
-- Chicken (raw and cooked)
minetest.register_craftitem("mobs:chicken_raw", {
description = "Raw Chicken",
description = "Raw Chicken",
inventory_image = "mobs_chicken_raw.png",
on_use = minetest.item_eat(2),
})

View File

@ -47,6 +47,9 @@ mobs:register_mob("mobs:dirt_monster", {
punch_start = 40,
punch_end = 63,
},
sounds = {
random = {"mobs_dirtmonster_random01", "mobs_dirtmonster_random02"},
},
jump = true,
step = 1,
blood_texture = "default_dirt.png",

View File

@ -74,6 +74,9 @@ mobs:register_mob("mobs:dungeon_master", {
speed_normal = 15,
speed_run = 15,
},
sounds = {
random = {"mobs_dungeonmaster_random01", "mobs_dungeonmaster_random02.ogg", "mobs_dungeonmaster_random03.ogg"},
},
jump = true,
step = 0.5,
shoot_offset = 0,
@ -106,11 +109,11 @@ mobs:register_arrow("mobs:fireball", {
for dy=-1,1 do
for dz=-1,1 do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.get_node(p).name
local n = minetest.env:get_node(p).name
local excluding = minetest.registered_nodes[n].groups["unbreakable"] ~= nil
or n:split(":")[1] == "nether"
for _,i in ipairs(excluded) do
if i == n then excluding = true end
if i == n then including = true end
end
--if p.y < -19600 and including and n:split(":")[1] == "nether" then
@ -119,9 +122,9 @@ mobs:register_arrow("mobs:fireball", {
end
if n ~= "default:obsidian" and n ~= "ethereal:obsidian_brick" then
if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then
minetest.set_node(p, {name="fire:basic_flame"})
minetest.env:set_node(p, {name="fire:basic_flame"})
else
minetest.set_node(p, {name="air"})
minetest.env:set_node(p, {name="air"})
end
end
end

View File

@ -12,8 +12,8 @@ minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb")
mobs:register_mob("mobs:lava_flan", {
type = "monster",
hp_min = 15,
hp_max = 30,
hp_min = 20,
hp_max = 35,
collisionbox = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5},
visual = "mesh",
mesh = "zmobs_lava_flan.x",
@ -53,6 +53,9 @@ mobs:register_mob("mobs:lava_flan", {
punch_start = 20,
punch_end = 28,
},
sounds = {
random = {"mobs_lavaflan_random01", "mobs_lavaflan_random02"},
},
jump = true,
step = 2,
blood_texture = "fire_basic_flame.png",

21
mods/mobs/license.txt Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Krupnov Pavel
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.

View File

@ -65,6 +65,9 @@ mobs:register_mob("mobs:mese_monster", {
punch_start = 15, -- 40
punch_end = 38, -- 63
},
sounds = {
random = {"mobs_mesemonster_random01", "mobs_mesemonster_random02"},
},
jump = true,
step = 1,
shoot_offset = 2,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -49,6 +49,10 @@ mobs:register_mob("mobs:oerkki", {
speed_normal = 15,
speed_run = 15,
},
sounds = {
random = {"mobs_oerkki_random01", "mobs_oerkki_random02"},
attack = "mobs_oerkki_attack",
},
jump = true,
step = 1,
blood_texture = "mobs_blood.png",

View File

@ -25,6 +25,9 @@ mobs:register_mob("mobs:rat", {
jump = true,
step = 1,
passive = true,
sounds = {
random = {"mobs_rat_random01", "mobs_rat_random02"},
},
on_rightclick = function(self, clicker)
if clicker:is_player() and clicker:get_inventory() then
@ -43,7 +46,7 @@ minetest.register_craftitem("mobs:rat", {
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.above then
minetest.add_entity(pointed_thing.above, "mobs:rat")
minetest.env:add_entity(pointed_thing.above, "mobs:rat")
itemstack:take_item()
end
return itemstack

View File

@ -48,6 +48,9 @@ mobs:register_mob("mobs:sand_monster", {
punch_start = 74,
punch_end = 105,
},
sounds = {
random = {"mobs_sandmonster_random01", "mobs_sandmonster_random02"},
},
jump = true,
step = 1,
blood_texture = "mobs_blood.png",

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -57,20 +57,16 @@ mobs:register_mob("mobs:spider", {
punch_start = 50,
punch_end = 90,
},
-- jump = true,
-- sounds = {},
-- step = 1,
--})
-- },
jump = true,
step = 1,
blood_texture = "mobs_blood.png",
sounds = {
random = {"mobs_spider_random01", "mobs_spider_random02"},
war_cry = "mobs_eerie",
death = "mobs_howl",
attack = "mobs_oerkki_attack",
},
jump = true,
sounds = {},
step = 1,
blood_texture = "mobs_blood.png",
})
mobs:register_spawn("mobs:spider", {"default:junglegrass", "default:jungleleaves", "default:jungletree"}, 20, -10, 7000, 1, 31000)

View File

@ -56,6 +56,9 @@ mobs:register_mob("mobs:stone_monster", {
punch_start = 40,
punch_end = 63,
},
sounds = {
random = "mobs_stonemonster_random01", "mobs_stonemonster_random02",
},
jump = true,
step = 1,
blood_texture = "mobs_blood.png",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 513 B

View File

@ -57,6 +57,10 @@ mobs:register_mob("mobs:tree_monster", {
punch_start = 48,
punch_end = 62,
},
sounds = {
random = {"mobs_treemonster_random01", "mobs_treemonster_random01"},
},
step = 0.5,
jump = true,
step = 1,
blood_texture = "default_wood.png",