Mehr Mods hinzugefügt

This commit is contained in:
N-Nachtigal 2025-05-10 23:49:11 +02:00
parent 92a55732cf
commit 9e345a25fb
2805 changed files with 2096013 additions and 0 deletions

33
mods/livingnether/LICENSE Normal file
View file

@ -0,0 +1,33 @@
MIT License
Copyright (c) 2021 Skandarella
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Thanks to adikalon from Github for modifying the code to make automatic depth search possible
Lincense for original Code (mobs redo + mobs_animal + pmobs + mobs_monster): (MIT) Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1
Modified Code by Liil/Wilhelmine/Liil (c) 2021
Sounds, Textures, Models and Animation by Liil/Wilhelmine/Liil under (MIT) License (c) 2021

View file

@ -0,0 +1,80 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:cyst", {
type = "monster",
passive = false,
attack_type = "explode",
explosion_radius = 2,
explosion_damage__radius = 6,
explosion_timer = 2,
reach = 3,
damage = 25,
hp_min = 45,
hp_max = 60,
armor = 100,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.8, 0.4},
visual = "mesh",
mesh = "Cyst.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"texturecyst.png"},
},
sounds = {
damage = "livingnether_cyst",
fuse = "livingnether_cyst2",
distance = 16,
},
makes_footstep_sound = false,
walk_velocity = 0,
run_velocity = 0,
jump = false,
jump_height = 6,
fly = false,
stepheight = 1,
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 0,
animation = {
speed_normal = 50,
speed_run = 10,
stand_start = 0,
stand_end = 100,
run_start = 100,
run_end = 200,
walk_start = 0,
walk_end = 100,
hurt_start = 100,
hurt_end = 200,
die_start = 0,
die_end = 100,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
view_range = 6,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 0, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:cyst",
nodes = {"nether:sand", "nether:basalt"},
min_light = 0,
interval = 60,
active_object_count = 5,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:cyst", S("Cyst"), "acyst.png")

View file

@ -0,0 +1,3 @@
mobs
default
nether

View file

@ -0,0 +1 @@
Adds various creatures to your Nether.

View file

@ -0,0 +1,82 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:flyingrod", {
stepheight = 3,
type = "animal",
passive = true,
attack_type = "dogfight",
attack_animals = false,
reach = 2,
damage = 1,
hp_min = 45,
hp_max = 60,
armor = 100,
collisionbox = {-0.3, -0.01, -0.3, 0.3, 0.5, 0.3},
visual = "mesh",
mesh = "Flyingrod.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"textureflyingrod.png"},
},
sounds = {
random = "livingnether_flyingrod",
},
makes_footstep_sound = false,
walk_velocity = 13,
run_velocity = 13,
walk_chance = 100,
fall_speed = 0,
jump = true,
jump_height = 6,
fly = true,
stepheight = 3,
stay_near = {{"nether:glowstone", "nether:fumarole", "nether:basalt"}, 5},
drops = {
{name = "animalworld:chicken_raw", chance = 1, min = 1, max = 1},
{name = "animalworld:chicken_feather", chance = 1, min = 1, max = 1},
},
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 0,
animation = {
speed_normal = 130,
stand_start = 0,
stand_end = 100,
fly_start = 0,
fly_end = 100,
die_start = 0,
die_end = 100,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"air"},
floats = 0,
view_range = 4,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:flyingrod",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 5,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:flyingrod", S("Flyingrod"), "aflyingrod.png")

View file

@ -0,0 +1,69 @@
--This creates the livingnether object.
livingnether = {}
--This creates the naturalbiomes.settings object, and fills it with either the menu selected choices as defined in settingtypes.txt, or default values, (In this case, false).
livingnether.settings = {
clear_biomes = minetest.settings:get_bool("livingnether.clear_biomes") or false,
clear_decos = minetest.settings:get_bool("livingnether.clear_decos") or false,
clear_ores = minetest.settings:get_bool("livingnether.clear_ores") or false,
}
livingnether.MAX_HEIGHT = nether.DEPTH_CEILING
livingnether.MIN_HEIGHT = nether.FLOOR_CEILING
if livingnether.settings.clear_biomes then
minetest.clear_registered_biomes()
end
if livingnether.settings.clear_decos then
minetest.clear_registered_decorations()
end
if livingnether.settings.clear_ores then
minetest.clear_registered_ores()
end
local modname = "livingnether"
local modpath = minetest.get_modpath(modname)
local mg_name = minetest.get_mapgen_setting("mg_name")
-- Load support for intllib.
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
local S = minetest.get_translator and minetest.get_translator("livingnether") or
dofile(path .. "intllib.lua")
mobs.intllib = S
-- Check for custom mob spawn file
local input = io.open(path .. "spawn.lua", "r")
if input then
mobs.custom_spawn_livingnether = true
input:close()
input = nil
end
-- Animals
dofile(path .. "razorback.lua") --
dofile(path .. "lavawalker.lua") --
dofile(path .. "tardigrade.lua") --
dofile(path .. "flyingrod.lua") --
dofile(path .. "cyst.lua") --
dofile(path .. "whip.lua") --
dofile(path .. "noodlemaster.lua") --
dofile(path .. "sokaarcher.lua") --
dofile(path .. "sokameele.lua") --
-- Load custom spawning
if mobs.custom_spawn_livingnether then
dofile(path .. "spawn.lua")
end
print (S("[MOD] Mobs Redo Animals loaded"))

View file

@ -0,0 +1,3 @@
-- Support for the old multi-load method
dofile(minetest.get_modpath("intllib").."/init.lua")

View file

@ -0,0 +1,82 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:lavawalker", {
stepheight = 4,
type = "monster",
passive = false,
attack_type = "dogfight",
attack_animals = true,
reach = 4,
damage = 17,
hp_min = 200,
hp_max = 700,
armor = 100,
collisionbox = {-1.5, -0.01, -1.5, 1.5, 1.5, 1.5},
visual = "mesh",
mesh = "Lavawalker.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"texturelavawalker.png"},
},
sounds = {
random = "livingnether_lavawalker",
attack = "livingnether_lavawalker2",
distance = 12,
},
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 3,
runaway = false,
jump = false,
jump_height = 6,
fear_height = 5,
knock_back = false,
stay_near = {{"nether:glowstone", "nether:fumarole", "nether:basalt"}, 5},
drops = {
{name = "default:steel_ingot", chance = 1, min = 1, max = 2},
},
water_damage = 4,
lava_damage = 4,
light_damage = 0,
animation = {
speed_normal = 100,
stand_speed = 40,
stand_start = 0,
stand_end = 100,
walk_start = 100,
walk_end = 200,
punch_speed = 150,
punch_start = 200,
punch_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
view_range = 8,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 0, 25, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:lavawalker",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:lavawalker", S("Lavawalker"), "alavawalker.png")

View file

@ -0,0 +1,11 @@
# textdomain: livingnether
Cyst=Zyste
Flyingrod=Fliegender Rod
Lavawalker=Lavaläufer
Noodlemaster=Nudelmeister
Razorback=Klingenrücken
Soka Archer=Soka Fernkämpfer
Soka Meele=Soka Nahkämpfer
Tardigrade=Bärtierchen
Flesh Whip=Peitsche des Fleisches

View file

@ -0,0 +1,8 @@
name = livingnether
author = Liil
depends = mobs, default, nether
optional_depends =
description = Adds various creatures to your Nether.
release = 26157
title = Wilhelmines Living Nether

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,149 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:noodlemaster", {
stepheight = 3,
type = "monster",
passive = false,
attack_animals = false,
damage = 15,
reach = 5,
attack_type = "dogshoot",
dogshoot_switch = 1,
dogshoot_count_max = 12, -- shoot for 10 seconds
dogshoot_count2_max = 3, -- dogfight for 3 seconds
shoot_interval = 0.2,
arrow = "livingnether:lavaball",
shoot_offset = 0.8,
hp_min = 250,
hp_max = 1000,
armor = 100,
collisionbox = {-3,-1.0,-3,3,3,3},
visual = "mesh",
mesh = "Noodlemaster.b3d",
visual_size = {x = 4.0, y = 4.0},
textures = {
{"texturenoodlemaster.png"},
},
sounds = {
death = "livingnether_noodlemaster",
random = "livingnether_noodlemaster2",
distance = 30,
},
makes_footstep_sound = false,
walk_velocity = 3,
run_velocity = 4,
fall_speed = 0,
jump = true,
jump_height = 6,
stepheight = 3,
fly = true,
drops = {
{name = "default:mese_crystal", chance = 1, min = 1, max = 3},
},
water_damage = 1,
lava_damage = 0,
light_damage = 0,
fear_height = 0,
animation = {
speed_normal = 50,
stand_start = 0,
stand_end = 100,
walk_start = 100,
walk_end = 200,
fly_start = 100, -- swim animation
fly_end = 200,
punch_start = 250,
punch_end = 350,
shoot_start = 250,
shoot_end = 350,
-- 50-70 is slide/water idle
},
fly_in = {"air"},
floats = 0,
view_range = 20,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 0, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:noodlemaster",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 500,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:noodlemaster", S("Noodlemaster"), "anoodlemaster.png")
-- fireball (weapon)
mobs:register_arrow("livingnether:lavaball", {
visual = "sprite",
-- visual = "wielditem",
visual_size = {x = 0.5, y = 0.5},
textures = {"lavaball.png"},
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
velocity = 7,
tail = 1,
tail_texture = "lavaball.png",
tail_size = 10,
glow = 5,
expire = 0.1,
on_activate = function(self, staticdata, dtime_s)
-- make fireball indestructable
self.object:set_armor_groups({immortal = 1, fleshy = 100})
end,
-- if player has a good weapon with 7+ damage it can deflect fireball
on_punch = function(self, hitter, tflp, tool_capabilities, dir)
if hitter and hitter:is_player() and tool_capabilities and dir then
local damage = tool_capabilities.damage_groups and
tool_capabilities.damage_groups.fleshy or 1
local tmp = tflp / (tool_capabilities.full_punch_interval or 1.4)
if damage > 6 and tmp < 4 then
self.object:set_velocity({
x = dir.x * self.velocity,
y = dir.y * self.velocity,
z = dir.z * self.velocity,
})
end
end
end,
-- direct hit, no fire... just plenty of pain
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 8},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 8},
}, nil)
end,
-- node hit
hit_node = function(self, pos, node)
mobs:boom(self, pos, 1)
end
})

View file

@ -0,0 +1,84 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:razorback", {
stepheight = 2,
type = "monster",
passive = false,
attack_type = "dogfight",
attack_animals = true,
reach = 2,
damage = 5,
hp_min = 120,
hp_max = 300,
armor = 100,
collisionbox = {-0.5, -0.01, -0.5, 0.5, 0.95, 0.5},
visual = "mesh",
mesh = "Razorback.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"texturerazorback.png"},
},
sounds = {
random = "livingnether_razorback",
attack = "livingnether_razorback2",
distance = 12,
},
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 3,
runaway = false,
knock_back = false,
walk_chance = 20,
jump = true,
jump_height = 6,
fear_height = 3,
stay_near = {{"nether:glowstone", "nether:fumarole", "nether:basalt"}, 5},
drops = {
{name = "default:copper_ingot", chance = 1, min = 1, max = 1},
},
water_damage = 4,
lava_damage = 4,
light_damage = 0,
animation = {
speed_normal = 125,
stand_speed = 50,
stand_start = 0,
stand_end = 100,
walk_start = 100,
walk_end = 200,
punch_speed = 90,
punch_start = 250,
punch_end = 350,
die_start = 250,
die_end = 350,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
view_range = 4,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:razorback",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:razorback", S("Razorback"), "arazorback.png")

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 KiB

View file

@ -0,0 +1,102 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:sokaarcher", {
-- animal, monster, npc
type = "monster",
-- aggressive, shoots shuriken
passive = false,
damage = 13,
attack_type = "shoot",
shoot_interval = 2,
arrow = "livingnether:sarrow",
shoot_offset = 2,
attacks_monsters = false,
-- health & armor
hp_min = 50, hp_max = 100, armor = 100,
-- textures and model
collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35},
visual = "mesh",
mesh = "Sokaarcher.b3d",
drawtype = "front",
textures = {
{"texturesokaarcher.png"},
},
visual_size = {x=1, y=1},
-- sounds
makes_footstep_sound = true,
sounds = {
shoot_attack = "livingnether_sokaarcher",
damage = "livingnether_sokaarcher2",
distance = 20,
},
-- speed and jump
walk_velocity = 2,
run_velocity = 3,
stepheight = 2,
fear_height = 3,
jump = true,
drops = {
{name = "default:gold_lump",
chance = 1, min = 1, max = 1},
},
-- damaged by
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fall_damage = 0,
view_range = 15,
stay_near = {{"nether:glowstone", "nether:fumarole", "nether:basalt"}, 5},
-- model animation
animation = {
speed_normal = 70, speed_run = 100,
stand_start = 0, stand_end = 100,
walk_start = 100, walk_end = 200,
run_start = 100, run_end = 200,
shoot_start = 200, shoot_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:sokaarcher",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:sokaarcher", S"Soka Archer", "asokaarcher.png")
mobs:register_arrow("livingnether:sarrow", {
visual = "sprite",
visual_size = {x=.5, y=.5},
textures = {"sarrow.png"},
velocity = 12,
drop = true,
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups = {fleshy=13},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups = {fleshy=13},
}, nil)
end,
hit_node = function(self, pos, node)
end,
})

View file

@ -0,0 +1,77 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:sokameele", {
type = "monster",
passive = false,
attack_type = "dogfight",
attack_animals = true,
reach = 2,
damage = 13,
hp_min = 80,
hp_max = 125,
armor = 100,
collisionbox = {-0.5, -0.01, -0.5, 0.5, 1.5, 0.5},
visual = "mesh",
mesh = "Sokameele.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"texturesokameele.png"},
},
sounds = {
attack = "livingnether_sokameele3",
damage = "livingnether_sokameele",
distance = 20,
},
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 4,
runaway = false,
stepheight = 2,
fear_height = 3,
jump = true,
stay_near = {{"nether:glowstone", "nether:fumarole", "nether:basalt"}, 5},
drops = {
{name = "default:gold_lump", chance = 1, min = 1, max = 1},
},
water_damage = 0,
lava_damage = 4,
light_damage = 0,
animation = {
speed_normal = 100,
stand_start = 0,
stand_end = 100,
walk_start = 100,
walk_end = 200,
punch_start = 200,
punch_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
view_range = 15,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:sokameele",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:sokameele", S("Soka Meele"), "asokameele.png")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,78 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:tardigrade", {
stepheight = 2,
type = "animal",
passive = true,
attack_type = "dogfight",
group_attack = true,
owner_loyal = true,
attack_npcs = false,
reach = 2,
damage = 2,
hp_min = 90,
hp_max = 120,
armor = 100,
collisionbox = {-0.6, -0.01, -0.6, 0.6, 0.7, 0.6},
visual = "mesh",
mesh = "Tardigrade.b3d",
textures = {
{"texturetardigrade.png"},
},
makes_footstep_sound = true,
sounds = {
random = "livingnether_tardigrade",
},
walk_velocity = 1,
run_velocity = 2,
walk_chance = 17,
runaway = true,
runaway_from = {"animalworld:bear", "animalworld:crocodile", "animalworld:tiger", "animalworld:spider", "animalworld:spidermale", "animalworld:shark", "animalworld:hyena", "animalworld:kobra", "animalworld:monitor", "animalworld:snowleopard", "animalworld:volverine", "player"},
jump = false,
jump_height = 3,
pushable = true,
view_range = 7,
water_damage = 0,
lava_damage = 5,
light_damage = 0,
fear_height = 3,
stay_near = {{"nether:glowstone", "nether:fumarole", "nether:basalt"}, 5},
animation = {
speed_normal = 75,
stand_start = 0,
stand_end = 100,
walk_start = 100,
walk_end = 200,
punch_start = 200,
punch_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
on_rightclick = function(self, clicker)
if mobs:feed_tame(self, clicker, 8, true, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 15, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:tardigrade",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 4,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:tardigrade", S("Tardigrade"), "atardigrade.png")
mobs:alias_mob("livingnether:tardigrade", "livingnether:tardigrade") -- compatibility

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,79 @@
local S = minetest.get_translator("livingnether")
mobs:register_mob("livingnether:whip", {
type = "monster",
passive = false,
attack_type = "dogfight",
attack_animals = false,
damage = 15,
reach = 4,
damage = 25,
hp_min = 45,
hp_max = 60,
armor = 100,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 2, 0.4},
visual = "mesh",
mesh = "Whip.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"texturewhip.png"},
},
sounds = {
attack = "livingnether_whip",
distance = 16,
},
makes_footstep_sound = false,
walk_velocity = 0,
run_velocity = 0,
jump = false,
jump_height = 6,
fly = false,
stepheight = 1,
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 0,
animation = {
speed_normal = 50,
speed_run = 50,
stand_start = 0,
stand_end = 100,
run_start = 100,
run_end = 200,
walk_start = 0,
walk_end = 100,
speed_punch = 100,
punch_start = 200,
punch_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
view_range = 4,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 4, false, true) then return end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, 0, 0, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_livingnether then
mobs:spawn({
name = "livingnether:whip",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 60,
active_object_count = 5,
chance = 8000, -- 15000
min_height = livingnether.MIN_HEIGHT,
max_height = livingnether.MAX_HEIGHT,
})
end
mobs:register_egg("livingnether:whip", S("Flesh Whip"), "awhip.png")