diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..61bd150 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +* 2019-07-31 : Grossam + * spawn.lua rewritten using mobs:spawn() + * spawn rules modified for more consistency (e.g. hedgehogs now spawn at night) + * some sounds and textures added + * dragon arrow bug corrected + * elemental an great drangons can fly in water (still take damages from it !) + * great dragons may spawn in caverealms +* 2019-07-28 : Grossam + * some little bugs corrected + * dragon_normal described as 'minor dragons' and now they can spawn + * ice dragons are now named "Blue dragon" + * hatched great dragons are tamed now + * great dragons now need a diamond block nest (you've to deserve greatness !) +* 2019-07-27 : Grossam + * Forked on https://git.fwhost.eu/Grossam/dmobs + diff --git a/README.md b/README.md index 719b923..83d87ad 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ # D00Med's Mobs -Thanks to TenPlus1, blert2112, and taikedz - +Thanks to D00Med, TenPlus1, blert2112, Grossam and taikedz diff --git a/api.lua b/api.lua index 030eaa0..e11ae2c 100644 --- a/api.lua +++ b/api.lua @@ -160,9 +160,12 @@ function object_fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim local yaw = entity.driver:get_look_yaw(); local pos = entity.object:get_pos() local node = minetest.get_node(pos).name - if node == "default:water_source" or node == "default:river_water_source" or node == "default:river_water_flowing" or node == "default:water_flowing" then - entity.object:set_velocity({x=velo.x*0.9, y=-1, z=velo.z*0.9}) - elseif ctrl.up then + +-- Commented condition makes dragons stuck in water, lava and so on… +-- if node == "default:water_source" or node == "default:river_water_source" or node == "default:river_water_flowing" or node == "default:water_flowing" or node == "default:lava_source" or node == "default:lava_flowing" then +-- 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) entity.object:set_velocity(vec_forward) elseif ctrl.down then @@ -202,8 +205,8 @@ function object_fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim end end ---lib_mount (not required by new functions) +--lib_mount (not required by new functions) local function is_group(pos, group) local nn = minetest.get_node(pos).name diff --git a/arrows/dragonarrows.lua b/arrows/dragonarrows.lua index 81e7fee..ffecbbd 100644 --- a/arrows/dragonarrows.lua +++ b/arrows/dragonarrows.lua @@ -1,7 +1,10 @@ +local name = {} + local base_arrow = { visual = "sprite", visual_size = {x = 0.5, y = 0.5}, velocity = 8, + textures = {}, tail = 1, -- enable tail tail_texture = "dmobs_ice.png", @@ -25,6 +28,7 @@ local base_arrow = { } for _,arrowtype in pairs( {"ice","lightning","poison"} ) do - base_arrow.textures = {"dmobs_"..arrowtype..".png"}, - mobs:register_arrow("dmobs:"..arrowtype, dmobs.deepclone(base_arrow) ) + base_arrow.textures = {"dmobs_"..arrowtype..".png"} + name = "dmobs:"..arrowtype + mobs:register_arrow(name, dmobs.deepclone(base_arrow) ) end diff --git a/depends.txt b/depends.txt index 35729e0..5b6e05b 100644 --- a/depends.txt +++ b/depends.txt @@ -1,4 +1,6 @@ default mobs wool -farming? \ No newline at end of file +farming? +ethereal? +caverealms? diff --git a/dragons.md b/dragons.md index b8fdb50..45c49c1 100644 --- a/dragons.md +++ b/dragons.md @@ -2,12 +2,26 @@ D00Med's Mobs How to Dragon -By defeating dragons you will get eggs. Place them in their ideal environment and feed them a gem to create an elemental egg. +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. +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 +Enjoy ! diff --git a/dragons/dragon1.lua b/dragons/dragon1.lua index b1fed81..b0e32bf 100644 --- a/dragons/dragon1.lua +++ b/dragons/dragon1.lua @@ -1,3 +1,5 @@ +-- Fire dragon + local dragondef = { type = "monster", passive = false, @@ -37,14 +39,15 @@ local dragondef = { run_velocity = 5, jump = true, fly = true, + fly_in = {"air","default:water_source", "default:water_flowing", "default:lava_source", "default:lava_flowing"}, drops = { {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, + water_damage = 3, + lava_damage = 1, light_damage = 0, view_range = 20, animation = { @@ -64,13 +67,15 @@ local dragondef = { on_rightclick = dmobs.dragon.on_rc } -mobs:register_mob("dmobs:dragon", dmobs.deepclone(dragondef) ) +-- The wild dragon is registered +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 = dmobs.dragon.ride - dragondef.do_custom = dmobs.dragon.do_custom +-- The tamed version is registered mobs:register_mob("dmobs:dragon_red", dmobs.deepclone(dragondef) ) diff --git a/dragons/dragon2.lua b/dragons/dragon2.lua index a90f104..7931769 100644 --- a/dragons/dragon2.lua +++ b/dragons/dragon2.lua @@ -1,3 +1,5 @@ +-- Lightning dragon + local dragondef = { type = "monster", passive = false, @@ -31,12 +33,13 @@ local dragondef = { pathfinding = true, fall_damage = 0, sounds = { - shoot_attack = "mobs_fireball", + shoot_attack = "dmobs_thunder", }, walk_velocity = 3, run_velocity = 5, jump = true, fly = true, + fly_in = {"air","default:water_source","default:water_flowing"}, drops = { {name = "dmobs:egg", chance = 1, min = 1, max = 1}, {name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1}, diff --git a/dragons/dragon3.lua b/dragons/dragon3.lua index a21553e..30b98e9 100644 --- a/dragons/dragon3.lua +++ b/dragons/dragon3.lua @@ -1,3 +1,5 @@ +-- Poison dragon + local dragondef = { type = "monster", passive = false, @@ -31,12 +33,13 @@ local dragondef = { pathfinding = true, fall_damage = 0, sounds = { - shoot_attack = "mobs_fireball", + shoot_attack = "dmobs_poison", }, walk_velocity = 3, run_velocity = 5, jump = true, fly = true, + fly_in = {"air","default:water_source","default:water_flowing"}, drops = { {name = "dmobs:egg", chance = 1, min = 1, max = 1}, {name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1}, diff --git a/dragons/dragon4.lua b/dragons/dragon4.lua index 204d589..22ba68e 100644 --- a/dragons/dragon4.lua +++ b/dragons/dragon4.lua @@ -1,3 +1,5 @@ +-- Ice dragon + local dragondef = { type = "monster", passive = false, @@ -31,20 +33,21 @@ local dragondef = { pathfinding = true, fall_damage = 0, sounds = { - shoot_attack = "mobs_fireball", + shoot_attack = "dmobs_wind.ogg", }, walk_velocity = 3, run_velocity = 5, jump = true, fly = true, + fly_in = {"air","default:water_source","default:water_flowing"}, drops = { {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, + water_damage = 1, + lava_damage = 2, light_damage = 0, view_range = 20, animation = { @@ -64,14 +67,12 @@ local dragondef = { on_rightclick = dmobs.dragon.on_rc } - mobs:register_mob("dmobs:dragon4", dmobs.deepclone(dragondef) ) dragondef.type = "npc" dragondef.attacks_monsters = true dragondef.on_rightclick = dmobs.dragon.ride - dragondef.do_custom = dmobs.dragon.do_custom mobs:register_mob("dmobs:dragon_blue", dmobs.deepclone(dragondef) ) diff --git a/dragons/dragon_normal.lua b/dragons/dragon_normal.lua index 1b88958..6ad7e46 100644 --- a/dragons/dragon_normal.lua +++ b/dragons/dragon_normal.lua @@ -1,4 +1,4 @@ ---dragon +-- 'Generic' dragon dofile(minetest.get_modpath("dmobs").."/dragons/piloting.lua") @@ -15,8 +15,8 @@ mobs:register_mob("dmobs:dragon", { dogshoot_count_max =5, arrow = "dmobs:fire", shoot_offset = 1, - hp_min = 70, - hp_max = 100, + hp_min = 50, + hp_max = 80, armor = 100, collisionbox = {-0.6, -1.2, -0.6, 0.6, 0.6, 0.6}, visual = "mesh", @@ -68,9 +68,3 @@ mobs:register_mob("dmobs:dragon", { do_custom = dmobs.dragon.step_custom, on_rightclick = dmobs.dragon.on_rc }) - - - -mobs:spawn_specific("dmobs:dragon", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) - -mobs:register_egg("dmobs:dragon", "Dragon", "default_apple.png", 1) diff --git a/dragons/eggs.lua b/dragons/eggs.lua index 0e65400..eb13481 100644 --- a/dragons/eggs.lua +++ b/dragons/eggs.lua @@ -4,8 +4,8 @@ local dragonpairs = { fire = {colour="red",nest="default:lava_source"}, lightning = {colour="black",nest="default:obsidian"}, poison = {colour="green",nest="default:cactus"}, - ice = {colour="black",nest="default:ice"}, - great = {colour="great",nest=""}, + ice = {colour="blue",nest="default:ice"}, + great = {colour="great",nest="default:diamond_block"}, -- You've to deserve greatness !' } local function egg_transform(pos, node, clicker, item, _) @@ -41,6 +41,10 @@ local function egg_transform(pos, node, clicker, item, _) break end end + -- default to Great dragon si it doesn't crash + if dragon_type == nil then + dragon_type = "great" + end minetest.chat_send_player(clicker:get_player_name()," ... something seems to be happening .... come back later?") @@ -74,7 +78,7 @@ local function egghatch(pos, node, clicker, item, _) local thedragon = "dmobs:dragon_"..details.colour if eggnode == "dmobs:dragon_egg_great" then - thedragon = "dmobs:dragon_great" + thedragon = "dmobs:dragon_great_tame" end local ent = minetest.add_entity(pos, thedragon) @@ -98,7 +102,10 @@ local function egghatch(pos, node, clicker, item, _) end -- for loop end --- Egg form dfinitions ----------------------------------------- + +---------------------- --- +-- Egg form definitions -- +-------------------------- local base_egg = { -- base template for all dragon eggs description = "Dragon Egg", @@ -116,21 +123,25 @@ local base_egg = { -- base template for all dragon eggs 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("dmobs:dragon_egg_fire", dmobs.deepclone(base_egg) ) +-- Lightning egg base_egg.tiles = {"dmobs_egg2.png"} minetest.register_node("dmobs:dragon_egg_lightning", dmobs.deepclone(base_egg) ) +-- Poison egg base_egg.tiles = {"dmobs_egg3.png"} minetest.register_node("dmobs:dragon_egg_poison", dmobs.deepclone(base_egg) ) +-- Ice egg base_egg.tiles = {"dmobs_egg4.png"} 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" diff --git a/dragons/great_dragon.lua b/dragons/great_dragon.lua index 22a5ab2..1c1b8ab 100644 --- a/dragons/great_dragon.lua +++ b/dragons/great_dragon.lua @@ -11,8 +11,8 @@ local gdragon_base = { dogshoot_count_max =5, arrow = "dmobs:lightning", shoot_offset = 1, - hp_min = 140, - hp_max = 180, + hp_min = 150, + hp_max = 250, armor = 220, collisionbox = {-0.6, -1.4, -0.6, 0.6, 0.6, 0.6}, visual = "mesh", @@ -37,6 +37,7 @@ local gdragon_base = { run_velocity = 5, jump = true, fly = true, + fly_in = {"air","default:water_source","default:water_flowing", "default:lava_source","default:lava_flowing"}, drops = { {name = "dmobs:dragon_egg_great", chance = 1, min = 1, max = 1}, }, @@ -67,11 +68,7 @@ gdragon_base.type = "npc" gdragon_base.attacks_monsters = true gdragon_base.on_rightclick = dmobs.dragon.ride - + gdragon_base.do_custom = dmobs.dragon.do_custom mobs:register_mob("dmobs:dragon_great_tame", dmobs.deepclone(gdragon_base) ) - - -mobs:register_egg("dmobs:dragon_great", "Boss Dragon", "dmobs_egg1.png", 1) -mobs:register_egg("dmobs:dragon_great_tame", "Great Dragon", "default_lava_source_animated.png", 1) diff --git a/dragons/main.lua b/dragons/main.lua index 19a2400..cb659f4 100644 --- a/dragons/main.lua +++ b/dragons/main.lua @@ -31,21 +31,24 @@ minetest.register_craftitem("dmobs:dragon_gem", { }) ---spawns and eggs +---------- +-- Eggs -- +---------- --- mobs:spawn_specific("dmobs:dragon", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) --- mobs:spawn_specific("dmobs:dragon2", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) --- mobs:spawn_specific("dmobs:dragon3", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) --- mobs:spawn_specific("dmobs:dragon4", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) - - -mobs:register_egg("dmobs:dragon", "Wild Fire Dragon", "default_apple.png", 1) -mobs:register_egg("dmobs:dragon2", "Wild Lightning Dragon", "default_mese_crystal.png", 1) +-- Wild dragons +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) -mobs:register_egg("dmobs:dragon_red", "Tame Fire Dragon", "default_apple.png", 1) -mobs:register_egg("dmobs:dragon_black", "Tame Lightning Dragon", "default_mese_crystal.png", 1) -mobs:register_egg("dmobs:dragon_green", "Tame Poison Dragon", "dmobs_poison.png", 1) -mobs:register_egg("dmobs:dragon_blue", "Tame Ice Dragon", "default_ice.png", 1) +-- Tamed dragons +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) diff --git a/dragons/water_dragon.lua b/dragons/water_dragon.lua index 16f3806..19604c9 100644 --- a/dragons/water_dragon.lua +++ b/dragons/water_dragon.lua @@ -1,3 +1,5 @@ +-- Waterdragon (Hydra) + mobs:register_mob("dmobs:waterdragon", { type = "monster", passive = false, @@ -25,6 +27,7 @@ mobs:register_mob("dmobs:waterdragon", { makes_footstep_sound = true, sounds = { random = "mobs_dirtmonster", + shoot_attack = "dmobs_wave" }, view_range = 15, rotate = 180, @@ -103,9 +106,9 @@ mobs:register_mob("dmobs:waterdragon_2", { blood_texture = "mobs_blood.png", makes_footstep_sound = true, sounds = { - shoot_attack = "mobs_fireball", - random = "velociraptor", - }, + shoot_attack = "dmobs_wave", + random = "velociraptor", + }, view_range = 15, rotate = 180, floats = 0, @@ -130,6 +133,3 @@ mobs:register_mob("dmobs:waterdragon_2", { shoot_end = 40, }, }) - - -mobs:register_egg("dmobs:waterdragon", "Boss Waterdragon", "dmobs_egg4.png", 1) diff --git a/dragons/wyvern.lua b/dragons/wyvern.lua index 773b550..0b7a7d6 100644 --- a/dragons/wyvern.lua +++ b/dragons/wyvern.lua @@ -37,7 +37,7 @@ mobs:register_mob("dmobs:wyvern", { {name = "dmobs:dragon_gem_lightning", chance = 1, min = 1, max = 1}, }, sounds = { - shoot_attack = "mobs_fireball", + shoot_attack = "dmobs_poison", random = "velociraptor", }, water_damage = 0, @@ -58,6 +58,3 @@ mobs:register_mob("dmobs:wyvern", { }, knock_back = 2, }) - - -mobs:register_egg("dmobs:wyvern", "Boss Wyvern", "dmobs_egg3.png", 1) diff --git a/init.lua b/init.lua index 26a9fcd..c1f8c68 100644 --- a/init.lua +++ b/init.lua @@ -83,11 +83,12 @@ if dmobs.regulars then end end --- dragons!! +--------------- +-- dragons!! -- +--------------- -if not dmobs.dragons then - loadmob("dragon_normal","/dragons/") -else +loadmob("dragon_normal","/dragons/") +if dmobs.dragons then loadmob("main","/dragons/") loadmob("dragon1","/dragons/") loadmob("dragon2","/dragons/") diff --git a/license.txt b/license.txt index 73d5e5e..5a70dc8 100644 --- a/license.txt +++ b/license.txt @@ -31,6 +31,12 @@ mobs_pig.ogg - from mobs_animal by TenPlus1 (MIT) dmobs_chirrup.ogg - CC BY SA 3.0 taikedz wasp.ogg - Public Domain +* dmobs_thunder.ogg - CC-0 : https://freesound.org/people/Josh74000MC/sounds/475094/ +* dmobs_wind.ogg - CC-BY 3.0 : https://freesound.org/people/Pedaling%20Prince/sounds/338952/ +* dmobs_poison.ogg - CC-BY 3.0 : https://freesound.org/people/qubodup/sounds/182789/ +* dmobs_wave.ogg - CC-BY 3.0 : https://freesound.org/people/Kayyy/sounds/61011/ + + --License of lib_mount: -- Minetest mod: lib_mount -- ======================= @@ -49,4 +55,4 @@ wasp.ogg - Public Domain -- License of source code: -- ----------------------- --- WTFPL \ No newline at end of file +-- WTFPL diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..a9812b9 --- /dev/null +++ b/mod.conf @@ -0,0 +1 @@ +name = dmobs diff --git a/sounds/dmobs_poison.ogg b/sounds/dmobs_poison.ogg new file mode 100644 index 0000000..a1ea13a Binary files /dev/null and b/sounds/dmobs_poison.ogg differ diff --git a/sounds/dmobs_thunder.ogg b/sounds/dmobs_thunder.ogg new file mode 100644 index 0000000..9a76bca Binary files /dev/null and b/sounds/dmobs_thunder.ogg differ diff --git a/sounds/dmobs_wave.ogg b/sounds/dmobs_wave.ogg new file mode 100644 index 0000000..32ff31f Binary files /dev/null and b/sounds/dmobs_wave.ogg differ diff --git a/sounds/dmobs_wind.ogg b/sounds/dmobs_wind.ogg new file mode 100644 index 0000000..267f5c9 Binary files /dev/null and b/sounds/dmobs_wind.ogg differ diff --git a/spawn.lua b/spawn.lua index 13a32eb..3e06ad7 100644 --- a/spawn.lua +++ b/spawn.lua @@ -1,52 +1,119 @@ +-- spawn.lua rewritten, using this latest function frim mobs_redo : +-- +--mobs:spawn({ +-- name = "dmobs:dragon", +-- nodes = {"air"}, +-- neighbor = {"default:stone"}, +-- min_light = 10, +-- max_light = 15, +-- interval = 300, +-- chance = 15000, +-- active_object_count = 2, +-- min_height = -100, +-- max_height = 11000, +--}) +-- +-- The fonction creates a rule defining how a mob will spawn. +-- Call it several times to create several rules. + + +-- mobs:spawn() seems to ignore unloaded nodes. So no need checking for loaded mods ? +--local eth = minetest.get_modpath("ethereal") +--local cr = minetest.get_modpath("caverealms") +--local nodes, neighbor = {}, {} + if dmobs.regulars then -- friendlies +-- nodes = {"darkage:marble"} +-- neighbor = {"darkage:slate"} + 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 = "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 = "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}) - mobs:register_spawn("dmobs:nyan", {"default:pine_needles","default:leaves"}, 20, 10, 50000, 2, 31000) - mobs:register_spawn("dmobs:nyan", {"nyanland:meseleaves"}, 20, 10, 15000, 2, 31000) - - mobs:register_spawn("dmobs:hedgehog", {"default:dirt_with_grass","default:pine_needles"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:whale", {"default:water_source"}, 20, 10, 15000, -20, 1000) - mobs:register_spawn("dmobs:owl", {"default:leaves","default:tree"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:gnorm", {"default:dirt_with_grass","default:wood"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:tortoise", {"default:clay","default:sand"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:elephant", {"default:dirt_with_dry_grass","default:desert_sand"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:badger", {"default:dirt_with_grass","default:dirt"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:pig", {"default:pine_needles","default:leaves", "nyanland:cloudstone"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:panda", {"default:dirt_with_grass","ethereal:bamboo_dirt"}, 20, 10, 15000, 2, 31000) -- baddies - mobs:register_spawn("dmobs:wasp", {"default:dirt_with_grass"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:wasp", {"dmobs:hive"}, 20, 10, 16000, 2, 31000) - mobs:register_spawn("dmobs:wasp_leader", {"default:dirt_with_grass","dmobs:hive"}, 20, 10, 64000, 2, 31000) + 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:register_spawn("dmobs:golem", {"default:stone"}, 7, 0, 16000, 2, 31000) - mobs:register_spawn("dmobs:pig_evil", {"default:pine_needles","default:leaves"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:fox", {"default:dirt_with_grass","default:dirt"}, 20, 10, 32000, 2, 31000) + 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 = "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 = "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 = "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 = "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 = "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 dmobs.dragons then - mobs:register_spawn("dmobs:orc", {"default:snow","default:snow_block", "default:desert_sand"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:ogre", {"default:snow","default:dirt_with_dry_grass", "default:desert_sand"}, 20, 10, 15000, 2, 31000) + 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 = "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:register_spawn("dmobs:orc", {"default:snow","default:snow_block", "default:desert_sand"}, 20, 10, 3500, 2, 31000) - mobs:register_spawn("dmobs:ogre", {"default:snow","default:dirt_with_dry_grass", "default:desert_sand"}, 20, 10, 350, 2, 31000) + 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 = "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}) end - - - mobs:register_spawn("dmobs:rat", {"default:stone","default:sand"}, 20, 0, 32000, 2, 31000) - mobs:register_spawn("dmobs:treeman", {"default:leaves", "default:pine_needles"}, 7, 0, 16000, 2, 31000) - mobs:register_spawn("dmobs:skeleton", {"default:stone"}, 7, 0, 16000, 2, 31000) end --- dragons -mobs:register_spawn("dmobs:dragon", {"default:leaves","default:dirt_with_grass"}, 20, 10, 64000, 2, 31000) +------------- +-- dragons -- +------------- + +-- Generic dragon always spawn, the others only if enabled +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 dmobs.dragons then - mobs:register_spawn("dmobs:dragon2", {"default:pine_needles"}, 20, 10, 64000, 2, 31000) - mobs:register_spawn("dmobs:dragon3", {"default:acacia_leaves","default:dirt_with_dry_grass"}, 20, 10, 64000, 2, 31000) - mobs:register_spawn("dmobs:dragon4", {"default:jungleleaves"}, 20, 10, 64000, 2, 31000) - mobs:register_spawn("dmobs:waterdragon", {"default:water_source"}, 20, 10, 32000, 1, 31000, false) - mobs:register_spawn("dmobs:wyvern", {"default:leaves"}, 20, 10, 32000, 1, 31000, false) - mobs:register_spawn("dmobs:dragon_great", {"default:lava_source"}, 20, 0, 64000, -21000, 1000, false) + 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 = "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 = "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 = "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 = "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 = "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 = "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}) end diff --git a/textures/Copyrighted_Image_Reuse_Prohibited_10372.jpg b/textures/Copyrighted_Image_Reuse_Prohibited_10372.jpg new file mode 100644 index 0000000..34d0b1f Binary files /dev/null and b/textures/Copyrighted_Image_Reuse_Prohibited_10372.jpg differ diff --git a/textures/dmobs_lightning.png b/textures/dmobs_lightning.png index 8495702..cd9017c 100644 Binary files a/textures/dmobs_lightning.png and b/textures/dmobs_lightning.png differ