Compare commits

..

No commits in common. "main-namespace_mobs" and "master" have entirely different histories.

52 changed files with 441 additions and 768 deletions

View File

@ -1,15 +1,3 @@
* 2023-06-04 : mckaygerhard
* dont relly on the legacy layer of default mod, detect if player api is present
* remove any conflicts with lib_mount
* fix fox behaviour, fix water dragon aim
* fix wrong local non local variable for function scope only
* sync with tenplus1 last changes, backport fixeds
* 2022-01-23 : mckaygerhard
* change namespace from dmobs to mobs_doomed
* fixed depends
* fixed damage by fire
* improvements over readme and information, added screenshot
* Fixed a few nil error bugs from tenplus1 and more checks
* 2021-03-30 : Poikilos
* Add more details to the panda texture (Change every pixel give or take a few) while reducing the number of pixels.
* 2019-07-31 : Grossam

128
README.md
View File

@ -1,128 +1,6 @@
minetest mod mobs D00Med
=========================
MOBS for dragons, pandas, orcs, ogres, fox, owl, and many more animals that can be loved or enemies!
Information
-----------
Some of those mobs are already in others mods.. like Dragon (nether), wasp (nssm/mobs_monster)
Dragon gems are dropped by the "boss" dragons ie: the wyvern, the water dragon, and the great dragon(red+black).
If you see a wasp, bee careful because it wasp probably spawned by the "king of sting", a huge wasp that will make nests and spawn more wasps. Golems sometimes drop their heads. you can use these to make a friendly golem, if you place one on top of two stone blocks. Foxes are sneaky, they will dig through fences if you try to trap them.
![](screenshot.png)
You must first place an egg in a "nest" made of lava, obsidian, cactus, or ice.
Then you can right click the egg with a gem(the purple one), and after a while the egg will change color. Then you have to right click it with the gem that matches the type of dragon in the egg.
* Red dragon - Lava nest - Fire gem
* Green dragon - Cactus nest - Poison gem
* Blue dragon - Ice nest - Ice gem
* Black dragon - Obsidian nest - Lightning gem
The nests are just the nodes above, surrounding the egg on all sides and underneath.
To get tame dragons you need to hatch them from eggs.
Technical info
--------------
This mod is named `mobs_doomed` in this branch, and includes all the changes from the tenplus1 fork and
some improvements fixeds from mckaygerhard namespaced changes. Its the same from `dmobs` but plus all the
recent changes and also fixeds, with renamed namespace to be named as `mobs_doomed`.
This means its compatible with all engine releases of minetest since 0.4 to 5.5
and maybe latest.
> **Warning** **This mod will added 10 megs of more media to yuor server game so clients on mobile may sufering**
Please for more technical info about dragons read the [dragons.md](dragons.md) file.
There's an api for vehicles and mount, it forked little **lib_mount lua** api so can be outdated in future.
Models sources are in [projects](projects) directory of course in GIMP format.
### Depends
* default
* mobs
* wool
* farming
* bones
* mobs_animal (optional)
* ethereal (optional)
* caverealms (optional)
* player_api (this depends if you use older game base)
### Download
This is a fork that tries to rename the namespace to `mobs_doomed` from `dmobs` o be in sync with mobs api from tenplus1.
to use the older named mod just download it but before commit https://codeberg.org/minenux/minetest-mod-mobs_doomed/commit/7910cbf5dd9ce97c72c056ee656966b32cc1b574 .
To use the `mobs_doomed` (that is same as tenplus1 dmobs and includes the compatiblity from original one) just
download this current branch and be sure to named the directory mod as `mobs_doomed`.
It also try to be compatible with both 0.4 and 5.2 engines of minetest for minenux games. This fork can be downloaded
from https://codeberg.org/minenux/minetest-mod-mobs_doomed the original one is at https://github.com/minetest-mobs-mods/dmobs
### Configurations
| Configuration variable | Description | type | default |
| ----------------------- | ------------------------------ | ----- | ----- |
| mobs_doomed.regulars | Enable most common new animals | bool | true |
| mobs_doomed.eggtimer | Timer for the egg mechanics | int | 100 |
| mobs_doomed.destructive | Fire balls will be destructive | bool | true |
| mobs_doomed.dragons | If disabled only a common dragon will be spawned | bool | true |
| mobs_doomed.allow_nyanc | Enable the stupid NyanCat mob fliying pig | bool | false |
### mobs nodes and names
Whit more chance, more rare.
There's some settings, if `mobs_doomed.regulars` are enabled then those monster will be available:
| tech name | type | chance | notes | spawn nodes |
| -------------- | ----- | ------- | ---------- | --------------------------- |
| mobs_doomed:nyan | mobs | 300 | friendly | air or ethereal:mushroom/nyanland:meseleaves |
| mobs_doomed:hedgehog | mobs | 8000 | friendly | group:flora, ethereal:prairie_dirt |
| mobs_doomed:whale | mobs | 16000 | friendly | default:water_source |
| mobs_doomed:owl | mobs | 16000 | friendly | group:tree |
| mobs_doomed:gnorm | npc | 16000 | friendly | default:dirt_with_grass, ethereal:bamboo_dirt |
| mobs_doomed:tortoise | mobs | 8000 | friendly | default:water_source, group:sand |
| mobs_doomed:elephan | mobs | 16000 | friendly | default:dirt_with_dry_grass, ethereal:grove_dirt |
| mobs_doomed:pig | mobs | 32000 | friendly | default:dirt_with_grass, ethereal:prairie_dirt, nyanland:cloudstone |
| mobs_doomed:panda | mobs | 32000 | friendly | default:dirt_with_grass, ethereal:bamboo_dirt |
| mobs_doomed:waps | mobs | 16000 | baddly | air/leaves or mobs_doomed:hive |
| mobs_doomed:waps_leader | mobs | 64000 | baddly | air/leaves or mobs_doomed:hive |
| mobs_doomed:golem | mobs | 16000 | baddly | group:stone |
| mobs_doomed:pig_evil | mobs | 64000 | baddly | group:leave, ethereal:bamboo_leaves |
| mobs_doomed:fox | mobs | 32000 | baddly | group:leaves |
| mobs_doomed:rat | mobs | 32000 | baddly | group:stone, group:sand |
| mobs_doomed:treeman | mobs | 16000 | baddly | group:leaves |
| mobs_doomed:skeleton | mobs | 16000 | baddly | group:stone, caverealms:stone_with_salt, default:desert_sand |
| mobs_doomed:badger | mobs | 8000 | friendly | |
There's some settings, if `mobs_doomed.dragon`, orcs and ogres spawn more often when dragons are disabled:
| tech name | type | chance | notes | spawn nodes |
| -------------- | ----- | ------- | ---------- | --------------------------- |
| mobs_doomed:orc | mobs | 8000/2000 | baddly | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
| mobs_doomed:ogre | mobs | 16000/32000 | baddly | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
| mobs_doomed:dragon_great_tame | npc | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby
| mobs_doomed:dragon | mobs | 16000 | always enabled | group:leaves |
| mobs_doomed:waterdragon | mobs | 24000 | rare, ice/water | default:water_source |
| mobs_doomed:dragon1 | mobs | 24000 | rare, fire | ethereal:fiery_dirt, default:desert_sand |
| mobs_doomed:dragon2 | mobs | 24000 | rare, thunder/fire | ethereal:cristal_dirt, default:dirt_with_dry_grass |
| mobs_doomed:dragon3 | mobs | 30000 | rare, poison | ethereal:jungle_dirt, default:jungleleaves |
| mobs_doomed:dragon4 | mobs | 24000 | rare, ice/water | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
| mobs_doomed:wyvern | mobs | 32000 | rare, dog attack | group:leaves |
| mobs_doomed:dragon_great | mobs | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
## Authors & License
# D00Med's Mobs
Thanks to D00Med, TenPlus1, blert2112, Grossam and taikedz
See [license.txt](license.txt)
## Authors & License
- See license.txt.

209
api.lua
View File

@ -23,7 +23,7 @@
--from lib_mount (required by new functions)
local p_api = minetest.get_modpath("player_api")
local mobs_redo = false
if mobs.mod and mobs.mod == "redo" then
mobs_redo = true
@ -43,12 +43,11 @@ local function force_detach(player)
end
player:set_detach()
end
if p_api then player_api.player_attached[player:get_player_name()] = false
else default.player_attached[player:get_player_name()] = false end
default.player_attached[player:get_player_name()] = false
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
end
function mobs_doomed.object_attach(entity, player, attach_at, eye_offset)
function object_attach(entity, player, attach_at, eye_offset)
eye_offset = eye_offset or {x=0, y=0, z=0}
force_detach(player)
entity.driver = player
@ -57,27 +56,18 @@ function mobs_doomed.object_attach(entity, player, attach_at, eye_offset)
player:set_properties({visual_size = {x=1, y=1}})
player:set_eye_offset(eye_offset, {x=0, y=0, z=0})
if p_api then player_api.player_attached[player:get_player_name()] = true
else default.player_attached[player:get_player_name()] = true end
default.player_attached[player:get_player_name()] = true
minetest.after(0.2, function()
if p_api then player_api.set_animation(player, "sit" , 30)
else default.player_set_animation(player, "sit" , 30) end
default.player_set_animation(player, "sit" , 30)
end)
--entity.object:set_yaw(player:get_look_yaw() - math.pi / 2)
entity.object:set_yaw(player:get_look_horizontal() - (math.pi/2))
entity.object:set_yaw(player:get_look_yaw() - math.pi / 2)
end
function mobs_doomed.object_detach(entity, player, offset)
function object_detach(entity, player, offset)
entity.driver = nil
player:set_detach()
if p_api then
player_api.player_attached[player:get_player_name()] = false
player_api.set_animation(player, "stand" , 30)
else
default.player_attached[player:get_player_name()] = false
default.player_set_animation(player, "stand" , 30)
end
default.player_attached[player:get_player_name()] = false
default.player_set_animation(player, "stand" , 30)
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
local pos = player:get_pos()
pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z}
@ -89,60 +79,48 @@ end
minetest.register_on_leaveplayer(function(player)
if player then
force_detach(player)
end
force_detach(player)
end)
minetest.register_on_shutdown(function()
local playerc
local players = minetest.get_connected_players()
local players = minetest.get_connected_players()
for i = 1,#players do
playerc = players[i]
if playerc then
force_detach(players[i])
end
playerc = nil
force_detach(players[i])
end
end)
minetest.register_on_dieplayer(function(player)
if player then
force_detach(player)
return true
end
force_detach(player)
return true
end)
-------------------------------------------------------------------------------
--mixed code(from this mod and lib_mount)
local rotview = math.pi / 2
function mobs_doomed.object_drive(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim, jumps)
function object_drive(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim, jumps)
local ctrl = entity.driver:get_player_control()
local dir = entity.driver:get_look_dir();
local vec_forward = {x=dir.x*speed,y=-2,z=dir.z*speed}
local vec_backward = {x=-dir.x*speed,y=-2,z=-dir.z*speed}
local vec_stop = {x=0,y=0,z=0}
--local yaw = entity.driver:get_look_yaw()
local yaw = entity.driver:get_look_horizontal()
local yaw = entity.driver:get_look_yaw();
if ctrl.up then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_forward)
elseif ctrl.down then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_backward)
elseif not ctrl.down or ctrl.up then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_stop)
end
if ctrl.sneak and ctrl.LMB and shoots then
local pos = entity.object:get_pos()
local obj = minetest.add_entity({x=pos.x+0+dir.x*2,y=pos.y+1.5+dir.y,z=pos.z+0+dir.z*2}, arrow)
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
local yaw = entity.driver:get_look_horizontal() + rotview -- we have math.pi/2 but later yaw sumarized again in next line
obj:set_yaw(yaw+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
local yaw = entity.driver:get_look_yaw();
obj:set_yaw(yaw+math.pi/2)
obj:set_velocity(vec)
end
--lib_mount animation
@ -171,10 +149,7 @@ function mobs_doomed.object_drive(entity, dtime, speed, shoots, arrow, moving_an
-- end
end
function mobs_doomed.object_fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
if entity and not entity.driver:get_look_dir() then return end
function object_fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
local ctrl = entity.driver:get_player_control()
local velo = entity.object:get_velocity()
local dir = entity.driver:get_look_dir();
@ -182,7 +157,7 @@ function mobs_doomed.object_fly(entity, dtime, speed, shoots, arrow, moving_anim
local vec_backward = {x=-dir.x*speed,y=dir.y*speed+2,z=-dir.z*speed}
local vec_rise = {x=velo.x,y=velo.y+0.2,z=velo.z}
local vec_stop = {x=0,y=-0.2,z=0}
local yaw = entity.driver:get_look_horizontal() + rotview
local yaw = entity.driver:get_look_yaw();
local pos = entity.object:get_pos()
local node = minetest.get_node(pos).name
@ -191,26 +166,25 @@ function mobs_doomed.object_fly(entity, dtime, speed, shoots, arrow, moving_anim
-- entity.object:set_velocity({x=velo.x*0.5, y=velo.y*0.5, z=velo.z*0.5})
-- end
if ctrl.up then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_forward)
elseif ctrl.down then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_backward)
elseif ctrl.jump then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_rise)
elseif not ctrl.down or ctrl.up or ctrl.jump then
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
entity.object:set_yaw(yaw+math.pi+math.pi/2)
entity.object:set_velocity(vec_stop)
end
if ctrl.aux1 and shoots and not entity.loaded then
local pos = entity.object:get_pos()
local obj = minetest.add_entity({x=pos.x+0+dir.x*2.5,y=pos.y+1.5+dir.y,z=pos.z+0+dir.z*2.5}, arrow)
local vec = vector.multiply(dir, 12)
--local yaw = entity.driver:get_look_yaw()
local yaw = entity.driver:get_look_horizontal()
local yaw = entity.driver:get_look_yaw();
entity.loaded = true
obj:set_yaw(yaw+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
obj:set_yaw(yaw+math.pi/2)
obj:set_velocity(vec)
local object = obj:get_luaentity()
object.launcher = entity.driver
@ -258,3 +232,128 @@ local function get_v(v)
return math.sqrt(v.x ^ 2 + v.z ^ 2)
end
lib_mount = {}
function lib_mount.attach(entity, player, attach_at, eye_offset)
eye_offset = eye_offset or {x=0, y=0, z=0}
force_detach(player)
entity.driver = player
player:set_attach(entity.object, "", attach_at, {x=0, y=0, z=0})
player:set_properties({visual_size = {x=1, y=1}})
player:set_eye_offset(eye_offset, {x=0, y=0, z=0})
default.player_attached[player:get_player_name()] = true
minetest.after(0.2, function()
default.player_set_animation(player, "sit" , 30)
end)
entity.object:set_yaw(player:get_look_yaw() - math.pi / 2)
end
function lib_mount.detach(entity, player, offset)
if entity ~= nil then entity.driver = nil end
player:set_detach()
default.player_attached[player:get_player_name()] = false
default.player_set_animation(player, "stand" , 30)
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
local pos = player:get_pos()
pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z}
minetest.after(0.1, function()
player:set_pos(pos)
end)
end
function lib_mount.drive(entity, dtime, moving_anim, stand_anim, can_fly)
entity.v = get_v(entity.object:get_velocity()) * get_sign(entity.v)
local ctrl = entity.driver:get_player_control()
local yaw = entity.object:get_yaw()
if ctrl.up then
entity.v = entity.v + 0.1
elseif ctrl.down then
entity.v = entity.v - 0.1
end
if ctrl.left then
if entity.v < 0 then
entity.object:set_yaw(yaw - (1 + dtime) * 0.03)
else
entity.object:set_yaw(yaw + (1 + dtime) * 0.03)
end
elseif ctrl.right then
if entity.v < 0 then
entity.object:set_yaw(yaw + (1 + dtime) * 0.03)
else
entity.object:set_yaw(yaw - (1 + dtime) * 0.03)
end
end
local velo = entity.object:get_velocity()
if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then
if stand_anim and stand_anim ~= nil and mobs_redo == true then
mobs:set_animation(entity, stand_anim)
end
entity.object:set_pos(entity.object:get_pos())
return
end
if moving_anim and moving_anim ~= nil and mobs_redo == true then
mobs:set_animation(entity, moving_anim)
end
local s = get_sign(entity.v)
entity.v = entity.v - 0.02 * s
if s ~= get_sign(entity.v) then
entity.object:set_velocity({x = 0, y = 0, z = 0})
entity.v = 0
return
end
if math.abs(entity.v) > 5 then
entity.v = 5 * get_sign(entity.v)
end
local p = entity.object:get_pos()
p.y = p.y - 0.5
local new_velo = {x = 0, y = 0, z = 0}
local new_acce = {x = 0, y = 0, z = 0}
if not is_group(p, "crumbly") then
local nodedef = minetest.registered_nodes[minetest.get_node(p).name]
if (not nodedef) or nodedef.walkable then
entity.v = 0
new_acce = {x = 0, y = 1, z = 0}
else
new_acce = {x = 0, y = -9.8, z = 0}
end
new_velo = get_velocity(entity.v, entity.object:get_yaw(),
entity.object:get_velocity().y)
entity.object:set_pos(entity.object:get_pos())
else
p.y = p.y + 1
if is_group(p, "crumbly") then
local y = entity.object:get_velocity().y
if y >= 5 then
y = 5
elseif y < 0 then
new_acce = {x = 0, y = 20, z = 0}
else
new_acce = {x = 0, y = 5, z = 0}
end
new_velo = get_velocity(entity.v, entity.object:get_yaw(), y)
entity.object:set_pos(entity.object:get_pos())
else
new_acce = {x = 0, y = 0, z = 0}
if math.abs(entity.object:get_velocity().y) < 1 then
local pos = entity.object:get_pos()
pos.y = math.floor(pos.y) + 0.5
entity.object:set_pos(pos)
new_velo = get_velocity(entity.v, entity.object:get_yaw(), 0)
else
new_velo = get_velocity(entity.v, entity.object:get_yaw(),
entity.object:get_velocity().y)
entity.object:set_pos(entity.object:get_pos())
end
end
end
if can_fly and can_fly == true and ctrl.jump then
new_velo.y = new_velo.y + 0.75
end
entity.object:set_velocity(new_velo)
entity.object:set_acceleration(new_acce)
end

View File

@ -29,6 +29,6 @@ local base_arrow = {
for _,arrowtype in pairs( {"ice","lightning","poison"} ) do
base_arrow.textures = {"dmobs_"..arrowtype..".png"}
name = "mobs_doomed:"..arrowtype
mobs:register_arrow(name, mobs_doomed.deepclone(base_arrow) )
name = "dmobs:"..arrowtype
mobs:register_arrow(name, dmobs.deepclone(base_arrow) )
end

View File

@ -1,6 +1,6 @@
--function to register tamed dragon attacks
function mobs_doomed.register_fire(fname, texture, dmg, replace_node, explode, ice, variance, size)
function dmobs.register_fire(fname, texture, dmg, replace_node, explode, ice, variance, size)
minetest.register_entity(fname, {
textures = {texture},
velocity = 0.1,
@ -14,7 +14,7 @@ minetest.register_entity(fname, {
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= fname and obj:get_luaentity().name ~= "mobs_doomed:dragon_red" and obj:get_luaentity().name ~= "mobs_doomed:dragon_blue" and obj:get_luaentity().name ~= "mobs_doomed:dragon_black" and obj:get_luaentity().name ~= "mobs_doomed:dragon_green" and obj:get_luaentity().name ~= "mobs_doomed:dragon_great_tame" and obj:get_luaentity().name ~= "__builtin:item" then
if obj:get_luaentity().name ~= fname and obj:get_luaentity().name ~= "dmobs:dragon_red" and obj:get_luaentity().name ~= "dmobs:dragon_blue" and obj:get_luaentity().name ~= "dmobs:dragon_black" and obj:get_luaentity().name ~= "dmobs:dragon_green" and obj:get_luaentity().name ~= "dmobs:dragon_great_tame" and obj:get_luaentity().name ~= "__builtin:item" then
obj:punch(self.launcher, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=3},
@ -43,7 +43,7 @@ minetest.register_entity(fname, {
end
end
end
local apos = self.object:get_pos(); if not apos then return end
local apos = self.object:get_pos()
local part = minetest.add_particlespawner(
6, --amount
0.3, --time
@ -65,7 +65,7 @@ minetest.register_entity(fname, {
})
end
mobs_doomed.register_fire("mobs_doomed:fire_plyr", "dmobs_fire.png", 2, "fire:basic_flame", true, false, 0.3, 1)
mobs_doomed.register_fire("mobs_doomed:ice_plyr", "dmobs_ice.png", 2, "default:ice", false, true, 0.5, 10)
mobs_doomed.register_fire("mobs_doomed:poison_plyr", "dmobs_poison.png", 2, "air", false, false, 0.3, 1)
mobs_doomed.register_fire("mobs_doomed:lightning_plyr", "dmobs_lightning.png", 2, "air", true, false, 0, 0.5)
dmobs.register_fire("dmobs:fire_plyr", "dmobs_fire.png", 2, "fire:basic_flame", true, false, 0.3, 1)
dmobs.register_fire("dmobs:ice_plyr", "dmobs_ice.png", 2, "default:ice", false, true, 0.5, 10)
dmobs.register_fire("dmobs:poison_plyr", "dmobs_poison.png", 2, "air", false, false, 0.3, 1)
dmobs.register_fire("dmobs:lightning_plyr", "dmobs_lightning.png", 2, "air", true, false, 0, 0.5)

View File

@ -1,5 +1,5 @@
--Thanks to Tenplus1
mobs:register_arrow("mobs_doomed:fire", {
mobs:register_arrow("dmobs:fire", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"dmobs_fire.png"},

View File

@ -1,5 +1,5 @@
mobs:register_arrow("mobs_doomed:fire", {
mobs:register_arrow("dmobs:fire", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"dmobs_fire.png"},

View File

@ -1,4 +1,4 @@
mobs:register_arrow("mobs_doomed:sting", {
mobs:register_arrow("dmobs:sting", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"dmobs_sting.png"},

View File

@ -1,9 +1,6 @@
default
mobs
wool
farming
bones?
farming?
ethereal?
caverealms?
mobs_animal?
player_api?

View File

@ -1 +0,0 @@
MOBS for more monsters like dragons, orcs, ogres, elephans, etc

View File

@ -1,43 +1,11 @@
minetest mod mobs_doomed
======================
D00Med's Mobs
MOBS for dragons.. Main info at [Readme.md](README.md)
## Dragns and orcs/ogres
When dragons are disabled orcs will spawm more frecuently,
about 16000 chance and 32000 (very rare) chance if dragons are disabled,
same for ogres, about 6000 with disabled dragons and 8000 then.
## Dragons names
Generic dragon always spawn, the others only if enabled in settings by `mobs_doomed.dragons` set to true (default):
| tech name | type | chance | notes | spawn nodes |
| ------------- | ---- | ------ | ------------------ | ---------------------- |
| mobs_doomed:dragon | mob | 16000 | always enabled | group:leaves |
| mobs_doomed:waterdragon | mob | 24000 | rare, ice/water | default:water_source |
| mobs_doomed:dragon1 | mob | 24000 | rare, fire | ethereal:fiery_dirt, default:desert_sand |
| mobs_doomed:dragon2 | mob | 24000 | rare, thunder/fire | ethereal:cristal_dirt, default:dirt_with_dry_grass |
| mobs_doomed:dragon3 | mob | 30000 | rare, poison | ethereal:jungle_dirt, default:jungleleaves |
| mobs_doomed:dragon4 | mob | 24000 | rare, ice/water | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
| mobs_doomed:wyvern | mob | 32000 | rare, dog attack | group:leaves |
| mobs_doomed:dragon_great | mob | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
| mobs_doomed:dragon_great_tame | npc | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
Dragon D00Med's Mobs
-------------
![screenshot_red_dragon.png](screenshot_red_dragon.png)
## How to Dragon
How to Dragon
By defeating dragons you will get eggs. Place them in their ideal environment and feed them a dragon gem (the violet one) to create an
elemental egg.
Environements :
* Fire : lava source
* Lightning : obsidian
* Poison : cactus
@ -56,13 +24,4 @@ Feed the right elemental gem to the elemental egg to hatch a dragon:
Use the Use key to shoot fireballs when riding your new pet dragon.
Press the forward key to fly to the direction you're looking
## Configurations
there's a variable named `mobs_doomed.dragons` by default set to true, if disabled or false will spawn more orcs
and only let the `mobs_doomed:dragon` available for spawn. This can be set using the
config file (server) or using the gui configure advanced part from the client (single player)
Enjoy !
Main info at [Readme.md](README.md)

View File

@ -1,61 +0,0 @@
minetest mod mobs_doomed
======================
Main info at [../Readme.md](../README.md)
## Dragns and orcs/ogres
When dragons are disabled orcs will spawm more frecuently,
about 16000 chance and 32000 (very rare) chance if dragons are disabled,
same for ogres, about 6000 with disabled dragons and 8000 then.
## Dragons names
Generic dragon always spawn, the others only if enabled in settings by `dmobs.dragons` set to true (default):
| tech name | type | chance | notes | spawn nodes |
| ------------- | ---- | ------ | ------------------ | ---------------------- |
| mobs_doomed:dragon | mob | 16000 | always enabled | group:leaves |
| mobs_doomed:waterdragon | mob | 24000 | rare, ice/water | default:water_source |
| mobs_doomed:dragon1 | mob | 24000 | rare, fire | ethereal:fiery_dirt, default:desert_sand |
| mobs_doomed:dragon2 | mob | 24000 | rare, thunder/fire | ethereal:cristal_dirt, default:dirt_with_dry_grass |
| mobs_doomed:dragon3 | mob | 30000 | rare, poison | ethereal:jungle_dirt, default:jungleleaves |
| mobs_doomed:dragon4 | mob | 24000 | rare, ice/water | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
| mobs_doomed:wyvern | mob | 32000 | rare, dog attack | group:leaves |
| mobs_doomed:dragon_great | mob | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
| mobs_doomed:dragon_great_tame | npc | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
Dragon D00Med's Mobs
-------------
![../screenshot_red_dragon.png](../screenshot_red_dragon.png)
## How to Dragon
By defeating dragons you will get eggs. Place them in their ideal environment and feed them a dragon gem (the violet one) to create an
elemental egg.
Environements :
* Fire : lava source
* Lightning : obsidian
* Poison : cactus
* Ice : ice
* Great : diamond block
By defeating special dragons, you can obtain elemental gems.
Feed the right elemental gem to the elemental egg to hatch a dragon:
* Fire : fire gem
* Lightning : lightning gem
* Poison : poison gem
* Ice : ice gem
* Great : dragon gem
Use the Use key to shoot fireballs when riding your new pet dragon.
Press the forward key to fly to the direction you're looking
Enjoy !
Main info at [../Readme.md](../README.md)

View File

@ -11,7 +11,7 @@ local dragondef = {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:fire",
arrow = "dmobs:fire",
shoot_offset = 1,
hp_min = 70,
hp_max = 100,
@ -29,7 +29,7 @@ local dragondef = {
jump_chance = 30,
walk_chance = 80,
fall_speed = 0,
follow = {"mobs_doomed:dragon_gem"},
follow = {"dmobs:dragon_gem"},
pathfinding = true,
fall_damage = 0,
sounds = {
@ -41,14 +41,13 @@ local dragondef = {
fly = true,
fly_in = {"air","default:water_source", "default:water_flowing", "default:lava_source", "default:lava_flowing"},
drops = {
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
},
fall_speed = 0,
stepheight = 10,
water_damage = 3,
lava_damage = 1,
fire_damage = 1,
light_damage = 0,
view_range = 20,
animation = {
@ -64,19 +63,19 @@ local dragondef = {
punch_end = 47,
},
knock_back = 2,
do_custom = mobs_doomed.dragon.step_custom,
on_rightclick = mobs_doomed.dragon.on_rc
do_custom = dmobs.dragon.step_custom,
on_rightclick = dmobs.dragon.on_rc
}
-- The wild dragon is registered
mobs:register_mob("mobs_doomed:dragon1", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon1", dmobs.deepclone(dragondef) )
-- The def is modified to make it tamed and rideable
dragondef.type = "npc"
dragondef.attacks_monsters = true
dragondef.on_rightclick = mobs_doomed.dragon.ride
dragondef.do_custom = mobs_doomed.dragon.do_custom
dragondef.on_rightclick = dmobs.dragon.ride
dragondef.do_custom = dmobs.dragon.do_custom
-- The tamed version is registered
mobs:register_mob("mobs_doomed:dragon_red", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon_red", dmobs.deepclone(dragondef) )

View File

@ -11,7 +11,7 @@ local dragondef = {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:lightning",
arrow = "dmobs:lightning",
shoot_offset = 1,
hp_min = 70,
hp_max = 100,
@ -29,7 +29,7 @@ local dragondef = {
jump_chance = 30,
walk_chance = 80,
fall_speed = 0,
follow = {"mobs_doomed:dragon_gem"},
follow = {"dmobs:dragon_gem"},
pathfinding = true,
fall_damage = 0,
sounds = {
@ -41,14 +41,13 @@ local dragondef = {
fly = true,
fly_in = {"air","default:water_source","default:water_flowing"},
drops = {
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
},
fall_speed = 0,
stepheight = 10,
water_damage = 2,
lava_damage = 0,
fire_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
@ -64,18 +63,18 @@ local dragondef = {
punch_end = 47,
},
knock_back = 2,
do_custom = mobs_doomed.dragon.step_custom,
on_rightclick = mobs_doomed.dragon.on_rc
do_custom = dmobs.dragon.step_custom,
on_rightclick = dmobs.dragon.on_rc
}
mobs:register_mob("mobs_doomed:dragon2", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon2", dmobs.deepclone(dragondef) )
dragondef.type = "npc"
dragondef.attacks_monsters = true
dragondef.on_rightclick = mobs_doomed.dragon.ride
dragondef.on_rightclick = dmobs.dragon.ride
dragondef.do_custom = mobs_doomed.dragon.do_custom
dragondef.do_custom = dmobs.dragon.do_custom
mobs:register_mob("mobs_doomed:dragon_black", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon_black", dmobs.deepclone(dragondef) )

View File

@ -11,7 +11,7 @@ local dragondef = {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:poison",
arrow = "dmobs:poison",
shoot_offset = 1,
hp_min = 70,
hp_max = 100,
@ -29,7 +29,7 @@ local dragondef = {
jump_chance = 30,
walk_chance = 80,
fall_speed = 0,
follow = {"mobs_doomed:dragon_gem"},
follow = {"dmobs:dragon_gem"},
pathfinding = true,
fall_damage = 0,
sounds = {
@ -41,14 +41,13 @@ local dragondef = {
fly = true,
fly_in = {"air","default:water_source","default:water_flowing"},
drops = {
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
},
fall_speed = 0,
stepheight = 10,
water_damage = 2,
lava_damage = 0,
fire_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
@ -64,18 +63,18 @@ local dragondef = {
punch_end = 47,
},
knock_back = 2,
do_custom = mobs_doomed.dragon.step_custom,
on_rightclick = mobs_doomed.dragon.on_rc
do_custom = dmobs.dragon.step_custom,
on_rightclick = dmobs.dragon.on_rc
}
mobs:register_mob("mobs_doomed:dragon3", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon3", dmobs.deepclone(dragondef) )
dragondef.type = "npc"
dragondef.attacks_monsters = true
dragondef.on_rightclick = mobs_doomed.dragon.ride
dragondef.on_rightclick = dmobs.dragon.ride
dragondef.do_custom = mobs_doomed.dragon.do_custom
dragondef.do_custom = dmobs.dragon.do_custom
mobs:register_mob("mobs_doomed:dragon_green", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon_green", dmobs.deepclone(dragondef) )

View File

@ -11,7 +11,7 @@ local dragondef = {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:ice",
arrow = "dmobs:ice",
shoot_offset = 1,
hp_min = 70,
hp_max = 100,
@ -29,7 +29,7 @@ local dragondef = {
jump_chance = 30,
walk_chance = 80,
fall_speed = 0,
follow = {"mobs_doomed:dragon_gem"},
follow = {"dmobs:dragon_gem"},
pathfinding = true,
fall_damage = 0,
sounds = {
@ -41,14 +41,13 @@ local dragondef = {
fly = true,
fly_in = {"air","default:water_source","default:water_flowing"},
drops = {
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
},
fall_speed = 0,
stepheight = 10,
water_damage = 1,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
view_range = 20,
animation = {
@ -64,16 +63,16 @@ local dragondef = {
punch_end = 47,
},
knock_back = 2,
do_custom = mobs_doomed.dragon.step_custom,
on_rightclick = mobs_doomed.dragon.on_rc
do_custom = dmobs.dragon.step_custom,
on_rightclick = dmobs.dragon.on_rc
}
mobs:register_mob("mobs_doomed:dragon4", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon4", dmobs.deepclone(dragondef) )
dragondef.type = "npc"
dragondef.attacks_monsters = true
dragondef.on_rightclick = mobs_doomed.dragon.ride
dragondef.do_custom = mobs_doomed.dragon.do_custom
dragondef.on_rightclick = dmobs.dragon.ride
dragondef.do_custom = dmobs.dragon.do_custom
mobs:register_mob("mobs_doomed:dragon_blue", mobs_doomed.deepclone(dragondef) )
mobs:register_mob("dmobs:dragon_blue", dmobs.deepclone(dragondef) )

View File

@ -1,7 +1,8 @@
-- 'Generic' dragon
dofile(minetest.get_modpath("dmobs").."/dragons/piloting.lua")
mobs:register_mob("mobs_doomed:dragon", {
mobs:register_mob("dmobs:dragon", {
type = "monster",
passive = false,
attacks_monsters = true,
@ -12,7 +13,7 @@ mobs:register_mob("mobs_doomed:dragon", {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:fire",
arrow = "dmobs:fire",
shoot_offset = 1,
hp_min = 50,
hp_max = 80,
@ -49,7 +50,6 @@ mobs:register_mob("mobs_doomed:dragon", {
stepheight = 10,
water_damage = 2,
lava_damage = 0,
fire_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
@ -65,6 +65,6 @@ mobs:register_mob("mobs_doomed:dragon", {
punch_end = 47,
},
knock_back = 2,
do_custom = mobs_doomed.dragon.step_custom,
on_rightclick = mobs_doomed.dragon.on_rc
do_custom = dmobs.dragon.step_custom,
on_rightclick = dmobs.dragon.on_rc
})

View File

@ -10,7 +10,7 @@ local dragonpairs = {
local function egg_transform(pos, node, clicker, item, _)
local wield_item = clicker:get_wielded_item():get_name()
if wield_item == "mobs_doomed:dragon_gem" then
if wield_item == "dmobs:dragon_gem" then
local p = {x = pos.x, y = pos.y - 1, z = pos.z}
local corner_name
@ -48,9 +48,9 @@ local function egg_transform(pos, node, clicker, item, _)
minetest.chat_send_player(clicker:get_player_name()," ... something seems to be happening .... come back later?")
minetest.after(mobs_doomed.eggtimer,
minetest.after(dmobs.eggtimer,
function(pos, dragon, pname)
minetest.set_node(pos, {name="mobs_doomed:dragon_egg_"..dragon_type})
minetest.set_node(pos, {name="dmobs:dragon_egg_"..dragon_type})
end,
pos
)
@ -64,28 +64,28 @@ local function egghatch(pos, node, clicker, item, _)
local eggnode = minetest.get_node(pos).name
for nature,details in pairs(dragonpairs) do
if ( wield_item == "mobs_doomed:dragon_gem_"..nature and eggnode:find(nature) ) or
( wield_item == "mobs_doomed:dragon_gem" and eggnode == "mobs_doomed:dragon_egg_great" ) then -- special case... because inconsiderate/inconsistent naming
if ( wield_item == "dmobs:dragon_gem_"..nature and eggnode:find(nature) ) or
( wield_item == "dmobs:dragon_gem" and eggnode == "dmobs:dragon_egg_great" ) then -- special case... because inconsiderate/inconsistent naming
minetest.chat_send_player(clicker:get_player_name(), " ... it ... swallowed the gem...")
minetest.after(mobs_doomed.eggtimer,
minetest.after(dmobs.eggtimer,
function(pos, dragon, pname)
local neweggnode = minetest.get_node(pos).name
if eggnode ~= neweggnode then return end -- prevent infinite hatchings
minetest.remove_node(pos)
local thedragon = "mobs_doomed:dragon_"..details.colour
if eggnode == "mobs_doomed:dragon_egg_great" then
thedragon = "mobs_doomed:dragon_great_tame"
local thedragon = "dmobs:dragon_"..details.colour
if eggnode == "dmobs:dragon_egg_great" then
thedragon = "dmobs:dragon_great_tame"
end
local ent = minetest.add_entity(pos, thedragon)
minetest.sound_play("dmobs_chirrup",{pos=pos,max_hear_distance=20})
local obj = ent:get_luaentity()
if eggnode ~= "mobs_doomed:dragon_egg_great" then
if eggnode ~= "dmobs:dragon_egg_great" then
ent:set_properties({
textures = {"dmobs_dragon_young.png"},
visual_size = {x=1, y=1},
@ -121,28 +121,28 @@ local base_egg = { -- base template for all dragon eggs
}
minetest.register_node("mobs_doomed:egg", mobs_doomed.deepclone(base_egg) ) -- clone, to not affect the base template
minetest.register_node("dmobs:egg", dmobs.deepclone(base_egg) ) -- clone, to not affect the base template
-- Fire egg
base_egg.groups.not_in_creative_inventory=1
base_egg.on_rightclick = egghatch
base_egg.tiles = {"dmobs_egg1.png"}
minetest.register_node("mobs_doomed:dragon_egg_fire", mobs_doomed.deepclone(base_egg) )
minetest.register_node("dmobs:dragon_egg_fire", dmobs.deepclone(base_egg) )
-- Lightning egg
base_egg.tiles = {"dmobs_egg2.png"}
minetest.register_node("mobs_doomed:dragon_egg_lightning", mobs_doomed.deepclone(base_egg) )
minetest.register_node("dmobs:dragon_egg_lightning", dmobs.deepclone(base_egg) )
-- Poison egg
base_egg.tiles = {"dmobs_egg3.png"}
minetest.register_node("mobs_doomed:dragon_egg_poison", mobs_doomed.deepclone(base_egg) )
minetest.register_node("dmobs:dragon_egg_poison", dmobs.deepclone(base_egg) )
-- Ice egg
base_egg.tiles = {"dmobs_egg4.png"}
minetest.register_node("mobs_doomed:dragon_egg_ice", mobs_doomed.deepclone(base_egg) )
minetest.register_node("dmobs:dragon_egg_ice", dmobs.deepclone(base_egg) )
-- Great dragon egg
base_egg.groups.not_in_creative_inventory=nil
base_egg.tiles = {"default_sandstone.png"}
base_egg.description = "Great Dragon Egg"
minetest.register_node("mobs_doomed:dragon_egg_great", mobs_doomed.deepclone(base_egg) )
minetest.register_node("dmobs:dragon_egg_great", dmobs.deepclone(base_egg) )

View File

@ -9,7 +9,7 @@ local gdragon_base = {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:lightning",
arrow = "dmobs:lightning",
shoot_offset = 1,
hp_min = 150,
hp_max = 250,
@ -39,13 +39,12 @@ local gdragon_base = {
fly = true,
fly_in = {"air","default:water_source","default:water_flowing", "default:lava_source","default:lava_flowing"},
drops = {
{name = "mobs_doomed:dragon_egg_great", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_egg_great", chance = 1, min = 1, max = 1},
},
fall_speed = 0,
stepheight = 10,
water_damage = 2,
lava_damage = 0,
fire_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
@ -63,13 +62,13 @@ local gdragon_base = {
knock_back = 2,
}
mobs:register_mob("mobs_doomed:dragon_great", mobs_doomed.deepclone(gdragon_base) )
mobs:register_mob("dmobs:dragon_great", dmobs.deepclone(gdragon_base) )
gdragon_base.type = "npc"
gdragon_base.attacks_monsters = true
gdragon_base.on_rightclick = mobs_doomed.dragon.ride
gdragon_base.on_rightclick = dmobs.dragon.ride
gdragon_base.do_custom = mobs_doomed.dragon.do_custom
gdragon_base.do_custom = dmobs.dragon.do_custom
mobs:register_mob("mobs_doomed:dragon_great_tame", mobs_doomed.deepclone(gdragon_base) )
mobs:register_mob("dmobs:dragon_great_tame", dmobs.deepclone(gdragon_base) )

View File

@ -1,31 +1,31 @@
--thanks to diriel, blert2112 and taikedz
if not mobs_doomed.dragon then
mobs_doomed.dragon = {}
end
dmobs.dragon = {}
dofile(minetest.get_modpath("dmobs").."/dragons/piloting.lua")
local tamed_dragons = {}
--items and tools
minetest.register_craftitem("mobs_doomed:dragon_gem_lightning", {
minetest.register_craftitem("dmobs:dragon_gem_lightning", {
description = "Lightning Gem",
inventory_image = "dmobs_gem_lightning.png"
})
minetest.register_craftitem("mobs_doomed:dragon_gem_ice", {
minetest.register_craftitem("dmobs:dragon_gem_ice", {
description = "Ice Gem",
inventory_image = "dmobs_gem_ice.png"
})
minetest.register_craftitem("mobs_doomed:dragon_gem_fire", {
minetest.register_craftitem("dmobs:dragon_gem_fire", {
description = "Fire Gem",
inventory_image = "dmobs_gem_fire.png"
})
minetest.register_craftitem("mobs_doomed:dragon_gem_poison", {
minetest.register_craftitem("dmobs:dragon_gem_poison", {
description = "Poison Gem",
inventory_image = "dmobs_gem_poison.png"
})
minetest.register_craftitem("mobs_doomed:dragon_gem", {
minetest.register_craftitem("dmobs:dragon_gem", {
description = "Dragon Gem",
inventory_image = "dmobs_gem.png"
})
@ -36,19 +36,19 @@ minetest.register_craftitem("mobs_doomed:dragon_gem", {
----------
-- Wild dragons
mobs:register_egg("mobs_doomed:dragon", "Minor Dragon", "default_apple.png", 1)
mobs:register_egg("mobs_doomed:dragon1", "Wild Fire Dragon", "default_apple.png", 1)
mobs:register_egg("mobs_doomed:dragon2", "Wild Lightning Dragon", "dmobs_lightning.png", 1)
mobs:register_egg("mobs_doomed:dragon3", "Wild Poison Dragon", "dmobs_poison.png", 1)
mobs:register_egg("mobs_doomed:dragon4", "Wild Ice Dragon", "default_ice.png", 1)
mobs:register_egg("mobs_doomed:dragon_great", "Boss Dragon", "dmobs_egg1.png", 1)
mobs:register_egg("mobs_doomed:waterdragon", "Boss Waterdragon", "dmobs_egg4.png", 1)
mobs:register_egg("mobs_doomed:wyvern", "Boss Wyvern", "dmobs_egg3.png", 1)
mobs:register_egg("dmobs:dragon", "Minor Dragon", "default_apple.png", 1)
mobs:register_egg("dmobs:dragon1", "Wild Fire Dragon", "default_apple.png", 1)
mobs:register_egg("dmobs:dragon2", "Wild Lightning Dragon", "dmobs_lightning.png", 1)
mobs:register_egg("dmobs:dragon3", "Wild Poison Dragon", "dmobs_poison.png", 1)
mobs:register_egg("dmobs:dragon4", "Wild Ice Dragon", "default_ice.png", 1)
mobs:register_egg("dmobs:dragon_great", "Boss Dragon", "dmobs_egg1.png", 1)
mobs:register_egg("dmobs:waterdragon", "Boss Waterdragon", "dmobs_egg4.png", 1)
mobs:register_egg("dmobs:wyvern", "Boss Wyvern", "dmobs_egg3.png", 1)
-- Tamed dragons
mobs:register_egg("mobs_doomed:dragon_red", "Tamed Fire Dragon", "default_apple.png", 1)
mobs:register_egg("mobs_doomed:dragon_black", "Tamed Lightning Dragon", "dmobs_lightning.png", 1)
mobs:register_egg("mobs_doomed:dragon_green", "Tamed Poison Dragon", "dmobs_poison.png", 1)
mobs:register_egg("mobs_doomed:dragon_blue", "Tamed Ice Dragon", "default_ice.png", 1)
mobs:register_egg("mobs_doomed:dragon_great_tame", "Tamed Great Dragon", "default_lava_source_animated.png", 1)
mobs:register_egg("dmobs:dragon_red", "Tamed Fire Dragon", "default_apple.png", 1)
mobs:register_egg("dmobs:dragon_black", "Tamed Lightning Dragon", "dmobs_lightning.png", 1)
mobs:register_egg("dmobs:dragon_green", "Tamed Poison Dragon", "dmobs_poison.png", 1)
mobs:register_egg("dmobs:dragon_blue", "Tamed Ice Dragon", "default_ice.png", 1)
mobs:register_egg("dmobs:dragon_great_tame", "Tamed Great Dragon", "default_lava_source_animated.png", 1)

View File

@ -1,11 +1,11 @@
if not mobs_doomed.dragon then
mobs_doomed.dragon = {}
if not dmobs.dragon then
dmobs.dragon = {}
end
mobs_doomed.dragon.step_custom = function(self, dtime)
dmobs.dragon.step_custom = function(self, dtime)
if self.driver then
mobs_doomed.object_fly(self, dtime, 10, true, "mobs_doomed:fire_plyr", "walk", "stand")
object_fly(self, dtime, 10, true, "dmobs:fire_plyr", "walk", "stand")
if self.state == "attack" then
self.state = nil
end
@ -14,12 +14,12 @@ mobs_doomed.dragon.step_custom = function(self, dtime)
return true
end
mobs_doomed.dragon.ride = function(self, clicker)
dmobs.dragon.ride = function(self, clicker)
if self.tamed and self.owner == clicker:get_player_name() then
local inv = clicker:get_inventory()
if self.driver and clicker == self.driver then
mobs_doomed.object_detach(self, clicker, {x=1, y=0, z=1})
object_detach(self, clicker, {x=1, y=0, z=1})
if inv:room_for_item("main", "mobs:saddle") then
inv:add_item("main", "mobs:saddle")
@ -29,7 +29,7 @@ mobs_doomed.dragon.ride = function(self, clicker)
elseif not self.driver then
if clicker:get_wielded_item():get_name() == "mobs:saddle" then
mobs_doomed.object_attach(self, clicker, {x=0, y=12, z=4}, {x=0, y=0, z=4})
object_attach(self, clicker, {x=0, y=12, z=4}, {x=0, y=0, z=4})
inv:remove_item("main", "mobs:saddle")
end
end
@ -37,19 +37,19 @@ mobs_doomed.dragon.ride = function(self, clicker)
end
mobs_doomed.dragon.on_rc = function(self, clicker)
dmobs.dragon.on_rc = function(self, clicker)
if not clicker or not clicker:is_player() then
return
end
if mobs:feed_tame(self, clicker, 1, false, false) then
return
end
mobs_doomed.dragon.ride(self, clicker)
dmobs.dragon.ride(self, clicker)
end
mobs_doomed.dragon.do_custom = function(self, dtime)
dmobs.dragon.do_custom = function(self, dtime)
if self.driver then
mobs_doomed.object_fly(self, dtime, 10, true, "mobs_doomed:fire_plyr", "walk", "stand")
object_fly(self, dtime, 10, true, "dmobs:fire_plyr", "walk", "stand")
if self.state == "attack" then
self.state = "idle"

View File

@ -1,6 +1,6 @@
-- Waterdragon (Hydra)
mobs:register_mob("mobs_doomed:waterdragon", {
mobs:register_mob("dmobs:waterdragon", {
type = "monster",
passive = false,
attack_type = "dogshoot",
@ -8,7 +8,7 @@ mobs:register_mob("mobs_doomed:waterdragon", {
dogshoot_count = 0,
dogshoot_count_max =5,
shoot_interval = 2.5,
arrow = "mobs_doomed:ice",
arrow = "dmobs:ice",
shoot_offset = 0,
pathfinding = false,
reach = 5,
@ -35,8 +35,8 @@ mobs:register_mob("mobs_doomed:waterdragon", {
run_velocity = 0.01,
jump = false,
drops = {
{name = "mobs_doomed:dragon_gem_ice", chance = 1, min = 1, max = 1},
{name = "mobs_doomed:dragon_gem_fire", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem_ice", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem_fire", chance = 1, min = 1, max = 1},
},
water_damage = 0,
lava_damage = 5,
@ -66,12 +66,12 @@ mobs:register_mob("mobs_doomed:waterdragon", {
local obj, obj2, ent
-- add body and make it follow head
obj = minetest.add_entity({x=pos.x+1, y=pos.y, z=pos.z}, "mobs_doomed:waterdragon_2")
obj = minetest.add_entity({x=pos.x+1, y=pos.y, z=pos.z}, "dmobs:waterdragon_2")
ent = obj:get_luaentity()
ent.following = self.object
-- add body and make it follow previous body segment
obj2 = minetest.add_entity({x=pos.x-1, y=pos.y, z=pos.z}, "mobs_doomed:waterdragon_2")
obj2 = minetest.add_entity({x=pos.x-1, y=pos.y, z=pos.z}, "dmobs:waterdragon_2")
ent = obj2:get_luaentity()
ent.following = self.object
end
@ -80,7 +80,7 @@ mobs:register_mob("mobs_doomed:waterdragon", {
mobs:register_mob("mobs_doomed:waterdragon_2", {
mobs:register_mob("dmobs:waterdragon_2", {
type = "monster",
passive = false,
attack_type = "shoot",
@ -88,8 +88,8 @@ mobs:register_mob("mobs_doomed:waterdragon_2", {
dogshoot_count = 0,
dogshoot_count_max =5,
shoot_interval = 3,
arrow = "mobs_doomed:ice",
shoot_offset = -1,
arrow = "dmobs:ice",
shoot_offset = 0,
pathfinding = false,
reach = 5,
damage = 2,
@ -117,7 +117,6 @@ mobs:register_mob("mobs_doomed:waterdragon_2", {
jump = false,
water_damage = 0,
lava_damage = 5,
fire_damage = 4,
light_damage = 0,
animation = {
speed_normal = 15,

View File

@ -1,4 +1,4 @@
mobs:register_mob("mobs_doomed:wyvern", {
mobs:register_mob("dmobs:wyvern", {
type = "monster",
passive = false,
attacks_monsters = false,
@ -9,7 +9,7 @@ mobs:register_mob("mobs_doomed:wyvern", {
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "mobs_doomed:poison",
arrow = "dmobs:poison",
shoot_offset = 0.5,
hp_min = 100,
hp_max = 150,
@ -33,8 +33,8 @@ mobs:register_mob("mobs_doomed:wyvern", {
jump = true,
fly = false,
drops = {
{name = "mobs_doomed:dragon_gem_poison", chance = 1, min = 1, max = 1},
{name = "mobs_doomed:dragon_gem_lightning", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem_poison", chance = 1, min = 1, max = 1},
{name = "dmobs:dragon_gem_lightning", chance = 1, min = 1, max = 1},
},
sounds = {
shoot_attack = "dmobs_poison",
@ -42,7 +42,6 @@ mobs:register_mob("mobs_doomed:wyvern", {
},
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
view_range = 20,
animation = {

View File

@ -1,42 +1,39 @@
mobs_doomed = {}
dmobs = {}
-- dmobs by D00Med
-- mounts api by D00Med and lib_mount api by blert2112
dofile(minetest.get_modpath("mobs_doomed").."/api.lua")
dofile(minetest.get_modpath("dmobs").."/api.lua")
-- Enable dragons (disable to remove tamed dragons and dragon bosses)
mobs_doomed.dragons = minetest.settings:get_bool("mobs_doomed.dragons")
if mobs_doomed.dragons == nil then mobs_doomed.dragons = true end
dmobs.dragons = minetest.settings:get_bool("dmobs.dragons")
if dmobs.dragons == nil then
dmobs.dragons = true
end
dmobs.regulars = minetest.settings:get_bool("dmobs.regulars")
if dmobs.regulars == nil then
dmobs.regulars = true
end
-- Enable regular mobs independient of dragons (if all disabled one dragon and some orcs will be enabled)
mobs_doomed.regulars = minetest.settings:get_bool("mobs_doomed.regulars")
if mobs_doomed.regulars == nil then mobs_doomed.regulars = true end
-- Enabling of NyanCat
mobs_doomed.allow_nyanc = minetest.settings:get_bool("mobs_doomed.allow_nyanc")
if mobs_doomed.allow_nyanc == nil then mobs_doomed.allow_nyanc = false end
-- Enable fireballs/explosions
mobs_doomed.destructive = minetest.settings:get_bool("mobs_doomed.destructive")
if mobs_doomed.destructive == nil then mobs_doomed.destructive = true end
dmobs.destructive = minetest.settings:get_bool("dmobs.destructive") or false
-- Timer for the egg mechanics
mobs_doomed.eggtimer = tonumber(minetest.settings:get("mobs_doomed.eggtimer") )
if mobs_doomed.eggtimer == nil then mobs_doomed.eggtimer = 100 end
dmobs.eggtimer = tonumber(minetest.settings:get("dmobs.eggtimer") ) or 100
-- Table cloning to reduce code repetition
mobs_doomed.deepclone = function(t) -- deep-copy a table -- from https://gist.github.com/MihailJP/3931841
dmobs.deepclone = function(t) -- deep-copy a table -- from https://gist.github.com/MihailJP/3931841
if type(t) ~= "table" then return t end
local target = {}
for k, v in pairs(t) do
if k ~= "__index" and type(v) == "table" then -- omit circular reference
target[k] = mobs_doomed.deepclone(v)
target[k] = dmobs.deepclone(v)
else
target[k] = v
end
@ -48,7 +45,7 @@ end
local function loadmob(mobname,dir)
dir = dir or "/mobs/"
dofile(minetest.get_modpath("mobs_doomed")..dir..mobname..".lua")
dofile(minetest.get_modpath("dmobs")..dir..mobname..".lua")
end
-- regular mobs
@ -59,6 +56,7 @@ local mobslist = {
"panda",
"tortoise",
"golem_friendly",
"nyan",
"gnorm",
"hedgehog",
"owl",
@ -79,27 +77,18 @@ local mobslist = {
"ogre",
}
minetest.log("action","[mobs_doomed] nyancat enabled "..tostring(mobs_doomed.allow_nyanc))
minetest.log("action","[mobs_doomed] dragons enabled "..tostring(mobs_doomed.dragons))
minetest.log("action","[mobs_doomed] more animals "..tostring(mobs_doomed.regulars))
minetest.log("action","[mobs_doomed] enable destructive fire "..tostring(mobs_doomed.destructive))
minetest.log("action","[mobs_doomed] configured egg timer "..tostring(mobs_doomed.eggtimer))
if mobs_doomed.regulars then
if dmobs.regulars then
for _,mobname in pairs(mobslist) do
loadmob(mobname)
end
if mobs_doomed.allow_nyanc then
loadmob("nyan")
end
end
---------------
-- dragons!! --
---------------
dofile(minetest.get_modpath("mobs_doomed").."/dragons/piloting.lua")
loadmob("dragon_normal","/dragons/")
if mobs_doomed.dragons then
if dmobs.dragons then
loadmob("main","/dragons/")
loadmob("dragon1","/dragons/")
loadmob("dragon2","/dragons/")
@ -109,26 +98,24 @@ if mobs_doomed.dragons then
loadmob("water_dragon","/dragons/")
loadmob("wyvern","/dragons/")
dofile(minetest.get_modpath("mobs_doomed").."/dragons/eggs.lua")
dofile(minetest.get_modpath("dmobs").."/dragons/eggs.lua")
end
dofile(minetest.get_modpath("mobs_doomed").."/arrows/dragonfire.lua")
dofile(minetest.get_modpath("mobs_doomed").."/arrows/dragonarrows.lua")
dofile(minetest.get_modpath("dmobs").."/arrows/dragonfire.lua")
dofile(minetest.get_modpath("dmobs").."/arrows/dragonarrows.lua")
-- General arrow definitions
if mobs_doomed.destructive == true then
dofile(minetest.get_modpath("mobs_doomed").."/arrows/fire_explosive.lua")
if dmobs.destructive == true then
dofile(minetest.get_modpath("dmobs").."/arrows/fire_explosive.lua")
else
dofile(minetest.get_modpath("mobs_doomed").."/arrows/fire.lua")
dofile(minetest.get_modpath("dmobs").."/arrows/fire.lua")
end
dofile(minetest.get_modpath("mobs_doomed").."/nodes.lua")
dofile(minetest.get_modpath("mobs_doomed").."/arrows/sting.lua")
dofile(minetest.get_modpath("dmobs").."/nodes.lua")
dofile(minetest.get_modpath("dmobs").."/arrows/sting.lua")
-- Spawning
dofile(minetest.get_modpath("mobs_doomed").."/spawn.lua")
dofile(minetest.get_modpath("mobs_doomed").."/saddle.lua")
print("[MOD] mobs_doomed loaded")
dofile(minetest.get_modpath("dmobs").."/spawn.lua")
dofile(minetest.get_modpath("dmobs").."/saddle.lua")

View File

@ -1,4 +1,4 @@
mobs:register_mob("mobs_doomed:badger", {
mobs:register_mob("dmobs:badger", {
type = "animal",
passive = false,
reach = 1,
@ -25,7 +25,6 @@ mobs:register_mob("mobs_doomed:badger", {
water_damage = 0,
lava_damage = 2,
light_damage = 0,
fire_damage = 2,
fall_damage = 1,
fall_speed = -8,
fear_height = 4,
@ -42,6 +41,7 @@ mobs:register_mob("mobs_doomed:badger", {
run_end = 58,
punch_start = 60,
punch_end = 80,
},
on_rightclick = function(self, clicker)
@ -54,4 +54,4 @@ mobs:register_mob("mobs_doomed:badger", {
})
mobs:register_egg("mobs_doomed:badger", "Badger", "default_obsidian.png", 1)
mobs:register_egg("dmobs:badger", "Badger", "default_obsidian.png", 1)

View File

@ -5,21 +5,21 @@ minetest.register_abm({
nodenames = {"flowers:flower_rose", "flowers:flower_tulip",
"flowers:flower_dandelion_yellow", "flowers:flower_viola",
"flowers:flower_dandelion_white", "flowers:flower_geranium"},
interval = 10,
interval = 10.0,
chance = 10,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.add_entity({x=pos.x,y=pos.y+0.3,z=pos.z}, "mobs_doomed:butterfly")
minetest.add_entity({x=pos.x,y=pos.y+0.3,z=pos.z}, "dmobs:butterfly")
end
})
minetest.register_entity("mobs_doomed:butterfly", {
minetest.register_entity("dmobs:butterfly", {
visual = "mesh",
mesh = "butterfly.b3d",
physical = true,
textures = {"dmobs_butterfly.png",},
visual_size = {x=0.3, y=0.3},
on_activate = function(self)
local num = math.random(1,4)
num = math.random(1,4)
self.object:set_properties({textures = {"dmobs_butterfly"..num..".png",},})
self.object:set_animation({x=1, y=10}, 20, 0)
self.object:set_yaw(math.pi+num)

View File

@ -1,12 +1,4 @@
local followf = {}
-- detect common minetest famous mobs
if minetest.get_modpath("farming") then
table.insert(followf, "farming:wheat")
table.insert(followf, "farming:seed_cotton")
end
mobs:register_mob("mobs_doomed:elephant", {
mobs:register_mob("dmobs:elephant", {
type = "animal",
passive = false,
reach = 1,
@ -29,7 +21,6 @@ mobs:register_mob("mobs_doomed:elephant", {
jump = false,
water_damage = 2,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -20, -- extra heavy!
@ -37,10 +28,10 @@ mobs:register_mob("mobs_doomed:elephant", {
replace_rate = 10,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "ethereal:bamboo"},
replace_with = "air",
follow = followf,
follow = {"farming:wheat"},
view_range = 14,
drops = {
{name = "mobs:meat_raw", chance = 2, min = 1, max = 3},
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
},
animation = {
speed_normal = 5,
@ -64,4 +55,4 @@ mobs:register_mob("mobs_doomed:elephant", {
})
mobs:register_egg("mobs_doomed:elephant", "Elephant", "default_dry_grass.png", 1)
mobs:register_egg("dmobs:elephant", "Elephant", "default_dry_grass.png", 1)

View File

@ -1,13 +1,5 @@
local followf = {}
table.insert(followf, "mobs:meat_raw")
if minetest.get_modpath("mobs_animal") then
table.insert(followf, "mobs_animal:muttom_raw")
end
-- Fox
mobs:register_mob("mobs_doomed:fox", {
mobs:register_mob("dmobs:fox", {
type = "monster",
attacks_monsters = true,
reach = 1,
@ -17,8 +9,8 @@ mobs:register_mob("mobs_doomed:fox", {
hp_max = 52,
armor = 130,
collisionbox = {-0.4, -0.6, -0.4, 0.3, 0.3, 0.3},
-- runaway = true,
-- pathfinding = true,
runaway = true,
pathfinding = true,
visual = "mesh",
mesh = "fox.b3d",
textures = {
@ -41,13 +33,12 @@ mobs:register_mob("mobs_doomed:fox", {
water_damage = 0,
lava_damage = 2,
light_damage = 0,
fire_damage = 2,
fall_damage = 1,
fear_height = 4,
replace_rate = 10,
replace_what = {"farming:wheat_5", "default:fence_wood", "default:grass_5", "default:dirt_with_grass"},
replace_with = "air",
follow = followf,
follow = {"mobs:meat_raw"},
view_range = 14,
animation = {
speed_normal = 6,
@ -72,4 +63,4 @@ mobs:register_mob("mobs_doomed:fox", {
})
mobs:register_egg("mobs_doomed:fox", "Fox", "wool_orange.png", 1)
mobs:register_egg("dmobs:fox", "Fox", "wool_orange.png", 1)

View File

@ -1,4 +1,4 @@
mobs:register_mob("mobs_doomed:gnorm", {
mobs:register_mob("dmobs:gnorm", {
type = "npc",
can_dig = true,
passive = true,
@ -23,15 +23,10 @@ mobs:register_mob("mobs_doomed:gnorm", {
jump = true,
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -6,
fear_height = 4,
drops = {
{name = "default:wood", chance = 1, min = 1, max = 1},
{name = "default:apple", chance = 1, min = 1, max = 1},
},
replace_rate = 10,
replace_what = {"default:apple", "default:stone", "default:stone_with_coal", "default:fence_wood"},
replace_with = "air",
@ -61,4 +56,4 @@ mobs:register_mob("mobs_doomed:gnorm", {
})
mobs:register_egg("mobs_doomed:gnorm", "Gnorm", "default_dirt.png", 1)
mobs:register_egg("dmobs:gnorm", "Gnorm", "default_dirt.png", 1)

View File

@ -1,7 +1,7 @@
--stone golem
mobs:register_mob("mobs_doomed:golem", {
mobs:register_mob("dmobs:golem", {
type = "monster",
reach = 3,
damage = 2,
@ -22,12 +22,10 @@ mobs:register_mob("mobs_doomed:golem", {
run_velocity = 2.5,
jump = true,
drops = {
{name = "default:stone", chance = 1, min = 1, max = 5},
{name = "mobs_doomed:golemstone", chance = 30, min = 1, max = 1},
{name = "dmobs:golemstone", chance = 30, min = 1, max = 1},
},
water_damage = 0,
lava_damage = 2,
fire_damage = 1,
light_damage = 1,
fall_damage = 0,
fear_height = 10,
@ -47,4 +45,4 @@ mobs:register_mob("mobs_doomed:golem", {
})
mobs:register_egg("mobs_doomed:golem", "Stone Golem", "default_stone.png", 1)
mobs:register_egg("dmobs:golem", "Stone Golem", "default_stone.png", 1)

View File

@ -1,5 +1,5 @@
mobs:register_mob("mobs_doomed:golem_friendly", {
mobs:register_mob("dmobs:golem_friendly", {
type = "npc",
reach = 3,
damage = 2,
@ -15,9 +15,6 @@ mobs:register_mob("mobs_doomed:golem_friendly", {
{"dmobs_golem.png"},
},
follow = "default:cobble",
drops = {
{name = "default:cobble", chance = 1, min = 1, max = 3},
},
blood_texture = "default_stone.png",
visual_size = {x=1, y=1},
makes_footstep_sound = true,
@ -26,7 +23,6 @@ mobs:register_mob("mobs_doomed:golem_friendly", {
jump = true,
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 0,
fear_height = 10,
@ -45,4 +41,4 @@ mobs:register_mob("mobs_doomed:golem_friendly", {
},
})
mobs:register_egg("mobs_doomed:golem_friendly", "Stone Golem (friendly)", "default_stone.png", 1)
mobs:register_egg("dmobs:golem_friendly", "Stone Golem (friendly)", "default_stone.png", 1)

View File

@ -1,14 +1,4 @@
local followf = {}
-- detect common minetest famous mobs
if minetest.get_modpath("farming") then
table.insert(followf, "farming:bread")
table.insert(followf, "farming:wheat")
table.insert(followf, "farming:seed_cotton")
end
mobs:register_mob("mobs_doomed:hedgehog", {
mobs:register_mob("dmobs:hedgehog", {
type = "animal",
passive = true,
hp_min = 12,
@ -29,16 +19,12 @@ mobs:register_mob("mobs_doomed:hedgehog", {
jump_height = 0.6,
water_damage = 2,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -6,
fear_height = 4,
view_range = 14,
follow = followf,
drops = {
{name = "mobs:meat_raw", chance = 2, min = 1, max = 3},
},
follow = {"farming:bread"},
animation = {
speed_normal = 5,
speed_run = 10,
@ -61,4 +47,4 @@ mobs:register_mob("mobs_doomed:hedgehog", {
})
mobs:register_egg("mobs_doomed:hedgehog", "Hedgehog", "wool_brown.png", 1)
mobs:register_egg("dmobs:hedgehog", "Hedgehog", "wool_brown.png", 1)

View File

@ -1,4 +1,4 @@
mobs:register_mob("mobs_doomed:nyan", {
mobs:register_mob("dmobs:nyan", {
type = "animal",
passive = true,
reach = 4,
@ -12,7 +12,7 @@ mobs:register_mob("mobs_doomed:nyan", {
textures = {
{"dmobs_nyancat.png"},
},
jump = true,
jump = true,
fly = true,
fall_speed = 0,
stepheight = 1.5,
@ -25,11 +25,10 @@ mobs:register_mob("mobs_doomed:nyan", {
run_chance = 20,
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
{name = "default:nyan_cat", chance = 2, min = 1, max = 1},
},
water_damage = 0,
lava_damage = 2,
fire_damage = 1,
light_damage = 0,
follow = {"default:mese"},
view_range = 14,
@ -45,7 +44,7 @@ mobs:register_mob("mobs_doomed:nyan", {
},
do_custom = function(self)
local apos = self.object:get_pos(); if not apos then return end
local apos = self.object:get_pos()
local vec = self.object:get_velocity()
local part = minetest.add_particlespawner({
amount = 5,
@ -76,4 +75,4 @@ mobs:register_mob("mobs_doomed:nyan", {
})
mobs:register_egg("mobs_doomed:nyan", "Nyan Cat", "wool_pink.png", 1)
mobs:register_egg("dmobs:nyan", "Nyan Cat", "wool_pink.png", 1)

View File

@ -1,5 +1,5 @@
-- Ogre
mobs:register_mob("mobs_doomed:ogre", {
mobs:register_mob("dmobs:ogre", {
type = "monster",
passive = false,
reach = 2,
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:ogre", {
rotate = 180,
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -14,
@ -43,7 +42,8 @@ mobs:register_mob("mobs_doomed:ogre", {
run_end = 38,
punch_start = 70,
punch_end = 100,
},
})
mobs:register_egg("mobs_doomed:ogre", "Ogre", "default_desert_sand.png", 1)
mobs:register_egg("dmobs:ogre", "Ogre", "default_desert_sand.png", 1)

View File

@ -1,6 +1,6 @@
-- Orc
mobs:register_mob("mobs_doomed:orc", {
mobs:register_mob("dmobs:orc", {
type = "monster",
passive = false,
reach = 1,
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:orc", {
jump = true,
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -13,
@ -43,11 +42,12 @@ mobs:register_mob("mobs_doomed:orc", {
run_end = 18,
punch_start = 20,
punch_end = 30,
},
})
-- Orc (Redesign)
mobs:register_mob("mobs_doomed:orc2", {
mobs:register_mob("dmobs:orc2", {
type = "monster",
passive = false,
reach = 1,
@ -94,5 +94,5 @@ mobs:register_mob("mobs_doomed:orc2", {
})
mobs:register_egg("mobs_doomed:orc2", "Morgul Orc", "default_desert_sand.png", 1) -- new and improved, hey
mobs:register_egg("mobs_doomed:orc", "Orc", "default_desert_sand.png", 1)
mobs:register_egg("dmobs:orc2", "Morgul Orc", "default_desert_sand.png", 1) -- new and improved, hey
mobs:register_egg("dmobs:orc", "Orc", "default_desert_sand.png", 1)

View File

@ -1,47 +1,4 @@
local follow = {}
-- detect common minetest famous mobs
if minetest.get_modpath("farming") then
table.insert(follow, "farming:seed_wheat")
table.insert(follow, "farming:seed_cotton")
end
if minetest.get_modpath("butterflies") then
table.insert(follow, "butterflies:butterfly_red")
table.insert(follow, "butterflies:butterfly_violet")
table.insert(follow, "butterflies:butterfly_white")
end
if minetest.get_modpath("fireflies") then
table.insert(follow, "fireflies:firefly")
end
if minetest.get_modpath("mobs_animal") then
table.insert(follow, "mobs_animal:rat")
table.insert(follow, "mobs_animal:bee")
table.insert(follow, "mobs_animal:bunny")
table.insert(follow, "mobs_animal:chicken")
table.insert(follow, "mobs_animal:muttom_raw")
end
-- compatibility with those made specially for other games
if minetest.get_modpath("mobs_bugslive") then
table.insert(follow, "mobs_bugslive:bug")
end
if minetest.get_modpath("mobs_butterfly") then
table.insert(follow, "mobs_butterfly:butterfly")
end
if minetest.get_modpath("mobs_fish") then
table.insert(follow, "mobs_fish:tropical")
table.insert(follow, "mobs_fish:clownfish")
end
if minetest.get_modpath("mobs_better_rat") then
table.insert(follow, "mobs_better_rat:rat")
end
if minetest.get_modpath("mobs_bat") then
table.insert(follow, "mobs_bat:bat")
end
if minetest.get_modpath("mobs_birds") then
table.insert(follow, "mobs_birds:bird_sm")
end
mobs:register_mob("mobs_doomed:owl", {
mobs:register_mob("dmobs:owl", {
type = "animal",
passive = true,
hp_min = 12,
@ -59,15 +16,10 @@ mobs:register_mob("mobs_doomed:owl", {
walk_velocity = 0,
run_velocity = 0,
jump = false,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
},
water_damage = 2,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
view_range = 1,
follow=follow,
do_custom = function(self)
local daytime = minetest.get_timeofday()*24000
if daytime <=6000 then
@ -82,17 +34,13 @@ mobs:register_mob("mobs_doomed:owl", {
})
end
end,
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
mobs:capture_mob(self, clicker, 0, 50, 5, false, nil)
end,
animation = {
speed_normal = 1,
walk_start = 1,
walk_end = 50,
},
})
mobs:register_egg("mobs_doomed:owl", "Owl", "default_tree.png", 1)
mobs:register_egg("dmobs:owl", "Owl", "default_tree.png", 1)

View File

@ -1,6 +1,6 @@
mobs:register_mob("mobs_doomed:panda", {
mobs:register_mob("dmobs:panda", {
type = "animal",
passive = false,
reach = 1,
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:panda", {
},
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -10,
@ -35,10 +34,7 @@ mobs:register_mob("mobs_doomed:panda", {
replace_rate = 10,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "ethereal:bamboo"},
replace_with = "air",
follow = {
{"default:papyrus"},
{"default:apple"}
},
follow = {"default:papyrus"},
view_range = 14,
animation = {
speed_normal = 6,
@ -64,4 +60,4 @@ mobs:register_mob("mobs_doomed:panda", {
})
mobs:register_egg("mobs_doomed:panda", "Panda", "default_papyrus.png", 1)
mobs:register_egg("dmobs:panda", "Panda", "default_papyrus.png", 1)

View File

@ -1,4 +1,4 @@
mobs:register_mob("mobs_doomed:pig", {
mobs:register_mob("dmobs:pig", {
type = "animal",
passive = true,
reach = 4,
@ -41,13 +41,8 @@ mobs:register_mob("mobs_doomed:pig", {
end,
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
follow = {
{"default:apple"},
{"default:leaves"},
{"mobs:meat_raw"},
},
follow = {"default:apple"},
view_range = 14,
animation = {
speed_normal = 10,
@ -71,4 +66,4 @@ mobs:register_mob("mobs_doomed:pig", {
})
mobs:register_egg("mobs_doomed:pig", "flying Pig", "wool_pink.png", 1)
mobs:register_egg("dmobs:pig", "flying Pig", "wool_pink.png", 1)

View File

@ -40,12 +40,8 @@ local pigdef = {
end,
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
follow = {
{"default:apple"},
{"default:leaves"},
},
follow = {"default:apple"},
view_range = 14,
animation = {
speed_normal = 10,
@ -68,12 +64,12 @@ local pigdef = {
end,
}
if mobs_doomed.destructive then
if dmobs.destructive then
pigdef.sounds.explode = "tnt_explode"
pigdef.attack_type = "explode"
end
mobs:register_mob("mobs_doomed:pig_evil", pigdef)
mobs:register_mob("dmobs:pig_evil", pigdef)
mobs:register_egg("mobs_doomed:pig_evil", "Kamikaze Pig", "wool_pink.png", 1)
mobs:register_egg("dmobs:pig_evil", "Kamikaze Pig", "wool_pink.png", 1)

View File

@ -1,19 +1,6 @@
--Rat
local followf = {}
table.insert(followf, "group:food_cheese")
-- detect common minetest famous mobs
if minetest.get_modpath("farming") then
table.insert(followf, "farming:wheat")
end
if minetest.get_modpath("mobs_animal") then
table.insert(followf, "mobs_animal:muttom_raw")
table.insert(followf, "mobs:meat_raw")
end
mobs:register_mob("mobs_doomed:rat", {
mobs:register_mob("dmobs:rat", {
type = "monster",
reach = 2,
damage = 2,
@ -39,14 +26,13 @@ mobs:register_mob("mobs_doomed:rat", {
},
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fear_height = 5,
replace_rate = 10,
replace_what = {"farming:wheat_5", "farming:wheat_4", "farming:wheat_2", "farming:wheat_3"},
replace_with = "air",
follow = followf,
follow = {"mobs_animal:cheese"},
view_range = 14,
animation = {
speed_normal = 10,
@ -63,4 +49,4 @@ mobs:register_mob("mobs_doomed:rat", {
})
mobs:register_egg("mobs_doomed:rat", "Giant Rat", "wool_grey.png", 1)
mobs:register_egg("dmobs:rat", "Giant Rat", "wool_grey.png", 1)

View File

@ -1,13 +1,7 @@
--skeleton
local dropsf = {}
-- detect common minetest famous mobs
if minetest.get_modpath("bones") then
dropsf = {name = "bones:bones", chance = 5, min = 3, max = 6}
end
mobs:register_mob("mobs_doomed:skeleton", {
mobs:register_mob("dmobs:skeleton", {
type = "monster",
reach = 3,
damage = 2,
@ -27,10 +21,11 @@ mobs:register_mob("mobs_doomed:skeleton", {
walk_velocity = 1,
run_velocity = 2.5,
jump = true,
drops = dropsf,
drops = {
{name = "bones:bones", chance = 5, min = 3, max = 6},
},
water_damage = 0,
lava_damage = 2,
fire_damage = 1,
light_damage = 1,
fall_damage = 0,
fear_height = 10,
@ -50,4 +45,4 @@ mobs:register_mob("mobs_doomed:skeleton", {
})
mobs:register_egg("mobs_doomed:skeleton", "Skeleton", "default_dirt.png", 1)
mobs:register_egg("dmobs:skeleton", "Skeleton", "default_dirt.png", 1)

View File

@ -1,16 +1,5 @@
local dropstor
dropstor = {{name = "default:stick", chance = 1, min = 1, max = 1},}
if minetest.get_modpath("farming") then
dropstor = {
{name = "default:stick", chance = 1, min = 1, max = 1},
{name = "farming:string", chance = 2, min = 0, max = 1},
}
end
mobs:register_mob("mobs_doomed:tortoise", {
mobs:register_mob("dmobs:tortoise", {
type = "animal",
passive = false,
reach = 1,
@ -33,18 +22,16 @@ mobs:register_mob("mobs_doomed:tortoise", {
jump = false,
jump_height = 0.5,
floats = true,
drops = dropstor,
drops = {
{name = "default:stick", chance = 1, min = 1, max = 1},
},
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
fall_damage = 1,
fall_speed = -10,
fear_height = 4,
follow = {
{"default:papyrus"},
{"default:leaves"}
},
follow = {"default:papyrus"},
view_range = 14,
animation = {
speed_normal = 6,
@ -63,9 +50,9 @@ mobs:register_mob("mobs_doomed:tortoise", {
return
end
mobs:capture_mob(self, clicker, 0, 50, 80, false, nil)
mobs:capture_mob(self, clicker, 30, 50, 80, false, nil)
end,
})
mobs:register_egg("mobs_doomed:tortoise", "Tortoise", "default_grass.png", 1)
mobs:register_egg("dmobs:tortoise", "Tortoise", "default_grass.png", 1)

View File

@ -1,6 +1,6 @@
-- Treeman
mobs:register_mob("mobs_doomed:treeman", {
mobs:register_mob("dmobs:treeman", {
type = "monster",
reach = 3,
damage = 2,
@ -25,8 +25,7 @@ mobs:register_mob("mobs_doomed:treeman", {
{name = "default:tree", chance = 5, min = 3, max = 6},
},
water_damage = 0,
lava_damage = 4,
fire_damage = 3,
lava_damage = 2,
light_damage = 0,
fall_damage = 1,
fear_height = 10,
@ -46,4 +45,4 @@ mobs:register_mob("mobs_doomed:treeman", {
})
mobs:register_egg("mobs_doomed:treeman", "Treeman", "default_tree.png", 1)
mobs:register_egg("dmobs:treeman", "Treeman", "default_tree.png", 1)

View File

@ -1,5 +1,5 @@
--Wasps!
mobs:register_mob("mobs_doomed:wasp", {
mobs:register_mob("dmobs:wasp", {
type = "monster",
reach = 1,
damage = 2,
@ -27,7 +27,6 @@ mobs:register_mob("mobs_doomed:wasp", {
jump = true,
water_damage = 2,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
view_range = 14,
animation = {
@ -45,15 +44,15 @@ mobs:register_mob("mobs_doomed:wasp", {
})
mobs:register_egg("mobs_doomed:wasp", "Wasp", "dmobs_wasp_bg.png", 1)
mobs:register_egg("dmobs:wasp", "Wasp", "dmobs_wasp_bg.png", 1)
mobs:register_mob("mobs_doomed:wasp_leader", {
mobs:register_mob("dmobs:wasp_leader", {
type = "monster",
reach = 1,
damage = 2,
attack_type = "shoot",
shoot_interval = 1,
arrow = "mobs_doomed:sting",
arrow = "dmobs:sting",
shoot_offset = 0,
hp_min = 82,
hp_max = 122,
@ -83,13 +82,12 @@ mobs:register_mob("mobs_doomed:wasp_leader", {
do_custom = function(self)
if math.random(1, 500) >= 500 then
local pos = self.object:get_pos()
if not pos then return end
minetest.add_entity(pos, "mobs_doomed:wasp")
minetest.add_entity(pos, "dmobs:wasp")
end
end,
replace_rate = 700,
replace_what = {"air"},
replace_with = "mobs_doomed:hive",
replace_with = "dmobs:hive",
water_damage = 2,
lava_damage = 2,
light_damage = 0,
@ -109,4 +107,4 @@ mobs:register_mob("mobs_doomed:wasp_leader", {
})
mobs:register_egg("mobs_doomed:wasp_leader", "King of Sting", "dmobs_wasp_bg.png", 1)
mobs:register_egg("dmobs:wasp_leader", "King of Sting", "dmobs_wasp_bg.png", 1)

View File

@ -1,4 +1,4 @@
mobs:register_mob("mobs_doomed:whale", {
mobs:register_mob("dmobs:whale", {
type = "animal",
passive = false,
reach = 1,
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:whale", {
fly_in = "default:water_source",
water_damage = 0,
lava_damage = 2,
fire_damage = 2,
light_damage = 0,
follow = {"fishing:fish_cooked"},
view_range = 14,
@ -60,4 +59,4 @@ mobs:register_mob("mobs_doomed:whale", {
})
mobs:register_egg("mobs_doomed:whale", "Whale", "default_water.png", 1)
mobs:register_egg("dmobs:whale", "Whale", "default_water.png", 1)

View File

@ -1,4 +1 @@
name = mobs_doomed
depends = default, mobs, wool, farming
optional_depends = bones, ethereal, caverealms, mobs_animal, player_api
description = MOBS for more monsters like dragons, orcs, ogres, elephans, etc
name = dmobs

View File

@ -2,21 +2,21 @@
--wasps nest
minetest.register_node("mobs_doomed:hive", {
minetest.register_node("dmobs:hive", {
description = "Wasp Nest",
tiles = {"dmobs_hive.png"},
groups = {crumbly=1, oddly_breakable_by_hand=1, falling_node=1, flammable=1},
on_destruct = function(pos, oldnode)
minetest.add_entity(pos, "mobs_doomed:wasp")
minetest.add_entity(pos, "mobs_doomed:wasp")
minetest.add_entity(pos, "mobs_doomed:wasp")
minetest.add_entity(pos, "mobs_doomed:wasp")
minetest.add_entity(pos, "dmobs:wasp")
minetest.add_entity(pos, "dmobs:wasp")
minetest.add_entity(pos, "dmobs:wasp")
minetest.add_entity(pos, "dmobs:wasp")
end,
})
--golem
minetest.register_node("mobs_doomed:golemstone", {
minetest.register_node("dmobs:golemstone", {
description = "golem stone",
tiles = {"dmobs_golem_stone.png",},
groups = {cracky=1},
@ -25,7 +25,7 @@ minetest.register_node("mobs_doomed:golemstone", {
local node2 = minetest.get_node({x=pos.x, y=pos.y-2, z=pos.z}).name
local node3 = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name
if node1 == "default:stone" and node2 == "default:stone" and node3 == "air" then
minetest.add_entity(pos, "mobs_doomed:golem_friendly")
minetest.add_entity(pos, "dmobs:golem_friendly")
minetest.remove_node({x=pos.x, y=pos.y-1, z=pos.z})
minetest.remove_node({x=pos.x, y=pos.y-2, z=pos.z})
minetest.remove_node({x=pos.x, y=pos.y, z=pos.z})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 888 KiB

View File

@ -1,15 +0,0 @@
# if enabled will spawn most new common animals from this mod
mobs_doomed.regulars (Enable most common new animals) bool true
# Timer for the egg mechanics, default 100
mobs_doomed.eggtimer (Spawn timer eggs Mobs) int 100
# if enabled be destructive for structure nodes each fireball or explotion from mobs
mobs_doomed.destructive (Fire balls will be destructive) bool true
# If disabled only a common dragon will be spawned
mobs_doomed.dragons (Enable all the dragons not only common) bool true
# if enabled will load a mobs very ugly and stupid.. nyancat.. a pig that fly and leve arciris
mobs_doomed.allow_nyanc (Enable the stupid NyanCat mob fliying pig) bool false

View File

@ -1,7 +1,7 @@
-- spawn.lua rewritten, using this latest function frim mobs_redo :
--
--mobs:spawn({
-- name = "mobs_doomed:dragon",
-- name = "dmobs:dragon",
-- nodes = {"air"},
-- neighbor = {"default:stone"},
-- min_light = 10,
@ -22,69 +22,67 @@
--local cr = minetest.get_modpath("caverealms")
--local nodes, neighbor = {}, {}
if mobs_doomed.regulars then
if dmobs.regulars then
-- friendlies
-- nodes = {"darkage:marble"}
-- neighbor = {"darkage:slate"}
if mobs_doomed.allow_nyanc then
mobs:spawn({name = "mobs_doomed:nyan", nodes = {"air"}, neighbor = {"group:leaves"},
min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:nyan", nodes = {"air"}, neighbor = {"ethereal:mushroom", "nyanland:meseleaves"},
min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
end
mobs:spawn({name = "mobs_doomed:hedgehog", nodes = {"group:flora", "ethereal:prairie_dirt"},
neighbor = {}, min_light = 0, max_light = 8, interval = 300, chance = 8000, active_object_count = 3, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:whale", nodes = {"default:water_source"}, neighbor = {"group:sand"},
min_light = 0, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = -100, max_height = 0})
mobs:spawn({name = "mobs_doomed:owl", nodes = {"group:tree"}, neighbor = {},
min_light = 0, max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:gnorm", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -100, max_height = 0})
mobs:spawn({name = "mobs_doomed:tortoise", nodes = {"default:water_source", "group:sand"}, neighbor = {},
min_light = 5, max_light = 10, interval = 300, chance = 8000, active_object_count = 2, min_height = -100, max_height = 500})
mobs:spawn({name = "mobs_doomed:elephant", nodes = {"default:dirt_with_dry_grass", "ethereal:grove_dirt"}, neighbor = {},
mobs:spawn({name = "dmobs:nyan", nodes = {"air"}, neighbor = {"group:leaves"},
min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:nyan", nodes = {"air"}, neighbor = {"ethereal:mushroom", "nyanland:meseleaves"},
min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:pig", nodes = {"default:dirt_with_grass", "ethereal:prairie_dirt", "nyanland:cloudstone"}, neighbor = {},
mobs:spawn({name = "dmobs:hedgehog", nodes = {"group:flora", "ethereal:prairie_dirt"},
neighbor = {}, min_light = 0, max_light = 8, interval = 300, chance = 8000, active_object_count = 3, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:whale", nodes = {"default:water_source"}, neighbor = {"group:sand"},
min_light = 0, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = -100, max_height = 0})
mobs:spawn({name = "dmobs:owl", nodes = {"group:tree"}, neighbor = {},
min_light = 0, max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:gnorm", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -100, max_height = 0})
mobs:spawn({name = "dmobs:tortoise", nodes = {"default:water_source", "group:sand"}, neighbor = {},
min_light = 5, max_light = 10, interval = 300, chance = 8000, active_object_count = 2, min_height = -100, max_height = 500})
mobs:spawn({name = "dmobs:elephant", nodes = {"default:dirt_with_dry_grass", "ethereal:grove_dirt"}, neighbor = {},
min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:pig", nodes = {"default:dirt_with_grass", "ethereal:prairie_dirt", "nyanland:cloudstone"}, neighbor = {},
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:panda", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
mobs:spawn({name = "dmobs:panda", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
-- baddies
mobs:spawn({name = "mobs_doomed:wasp", nodes = {"air"}, neighbor = {"group:leaves"}, min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:wasp", nodes = {"mobs_doomed:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:wasp_leader", nodes = {"group:leaves", "mobs_doomed:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:wasp", nodes = {"air"}, neighbor = {"group:leaves"}, min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:wasp", nodes = {"dmobs:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "dmobs:wasp_leader", nodes = {"group:leaves", "dmobs:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:golem", nodes = {"group:stone"}, neighbor = {}, min_light = 0,
mobs:spawn({name = "dmobs:golem", nodes = {"group:stone"}, neighbor = {}, min_light = 0,
max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = -32000, max_height = 100})
mobs:spawn({name = "mobs_doomed:pig_evil", nodes = {"group:leave", "ethereal:bamboo_leaves"}, neighbor = {},
mobs:spawn({name = "dmobs:pig_evil", nodes = {"group:leave", "ethereal:bamboo_leaves"}, neighbor = {},
min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:fox", nodes = {"group:leaves"}, neighbor = {},
mobs:spawn({name = "dmobs:fox", nodes = {"group:leaves"}, neighbor = {},
min_light = 0, max_light = 10, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:rat", nodes = {"group:stone", "group:sand"}, neighbor = {},
mobs:spawn({name = "dmobs:rat", nodes = {"group:stone", "group:sand"}, neighbor = {},
min_light = 0, max_light = 10, interval = 300, chance = 32000, active_object_count = 2, min_height = -30000, max_height = 100})
mobs:spawn({name = "mobs_doomed:treeman", nodes = {"group:leaves"}, neighbor = {},
mobs:spawn({name = "dmobs:treeman", nodes = {"group:leaves"}, neighbor = {},
min_light = 7, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:skeleton", nodes = {"group:stone","caverealms:stone_with_salt","default:desert_sand"}, neighbor = {},
mobs:spawn({name = "dmobs:skeleton", nodes = {"group:stone","caverealms:stone_with_salt","default:desert_sand"}, neighbor = {},
min_light = 0, max_light = 10, interval = 300, chance = 16000, active_object_count = 2, min_height = -31000, max_height = -1000})
-- Orcs and ogres spawn more often when dragons are disabled
if not mobs_doomed.dragons then
mobs:spawn({name = "mobs_doomed:orc",
if not dmobs.dragons then
mobs:spawn({name = "dmobs:orc",
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 6000,
active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:ogre",
mobs:spawn({name = "dmobs:ogre",
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 16000,
active_object_count = 2, min_height = 0, max_height = 2000})
else
mobs:spawn({name = "mobs_doomed:orc",
mobs:spawn({name = "dmobs:orc",
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 8000,
active_object_count = 2, min_height = 0, max_height = 2000})
mobs:spawn({name = "mobs_doomed:ogre",
mobs:spawn({name = "dmobs:ogre",
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 32000,
active_object_count = 2, min_height = 0, max_height = 2000})
@ -97,24 +95,24 @@ end
-------------
-- Generic dragon always spawn, the others only if enabled
mobs:spawn({name = "mobs_doomed:dragon", nodes = {"group:leaves"}, neighbor = {},
mobs:spawn({name = "dmobs:dragon", nodes = {"group:leaves"}, neighbor = {},
min_light = 5, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 30000})
if mobs_doomed.dragons then
mobs:spawn({name = "mobs_doomed:dragon1", nodes = {"ethereal:fiery_dirt", "default:desert_sand"}, neighbor = {},
if dmobs.dragons then
mobs:spawn({name = "dmobs:dragon1", nodes = {"ethereal:fiery_dirt", "default:desert_sand"}, neighbor = {},
min_light = 5, max_light = 15, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
mobs:spawn({name = "mobs_doomed:dragon2", nodes = {"ethereal:crystal_dirt", "default:dirt_with_dry_grass"}, neighbor = {},
mobs:spawn({name = "dmobs:dragon2", nodes = {"ethereal:crystal_dirt", "default:dirt_with_dry_grass"}, neighbor = {},
min_light = 5, max_light = 15, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
mobs:spawn({name = "mobs_doomed:dragon3", nodes = {"ethereal:jungle_dirt", "default:jungleleaves"}, neighbor = {},
mobs:spawn({name = "dmobs:dragon3", nodes = {"ethereal:jungle_dirt", "default:jungleleaves"}, neighbor = {},
min_light = 0, max_light = 10, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
mobs:spawn({name = "mobs_doomed:dragon4",
mobs:spawn({name = "dmobs:dragon4",
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"}, neighbor = {},
min_light = 5, max_light = 15, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
mobs:spawn({name = "mobs_doomed:waterdragon", nodes = {"default:water_source"}, neighbor = {"air"},
mobs:spawn({name = "dmobs:waterdragon", nodes = {"default:water_source"}, neighbor = {"air"},
min_light = 0, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -10, max_height = 100})
mobs:spawn({name = "mobs_doomed:wyvern", nodes = {"group:leaves"}, neighbor = {},
mobs:spawn({name = "dmobs:wyvern", nodes = {"group:leaves"}, neighbor = {},
min_light = 0, max_light = 10, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 30000})
mobs:spawn({name = "mobs_doomed:dragon_great",
mobs:spawn({name = "dmobs:dragon_great",
nodes = {"ethereal:jungle_dirt", "default:jungleleaves", "default:lava_source", "caverealms:glow_mese",
"caverealms:glow_amethyst", "caverealms:glow_crystal", "caverealms:glow_emerald","cavereals:glow_ruby"}, neighbor = {},
min_light = 0, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -30000, max_height = 30000})

View File

@ -1 +0,0 @@
dmobs_nyancat.png