Add files via upload

master
Skandarella 2021-02-14 23:40:24 +01:00 committed by GitHub
parent fc561d6760
commit b398de5677
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 836 additions and 0 deletions

29
LICENSE Normal file
View File

@ -0,0 +1,29 @@
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.
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

73
cyst.lua Normal file
View File

@ -0,0 +1,73 @@
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,
},
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal 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 = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:cyst", ("Cyst"), "acyst.png")

3
depends.txt Normal file
View File

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

1
description.txt Normal file
View File

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

77
flyingrod.lua Normal file
View File

@ -0,0 +1,77 @@
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, -1, 0.3, 0.3, 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,
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,
walk_start = 0,
walk_end = 100,
fly_start = 0, -- swim animation
fly_end = 100,
-- 50-70 is slide/water idle
},
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:flyingrod",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 5,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:flyingrod", ("Flyingrod"), "aflyingrod.png")

41
init.lua Normal file
View File

@ -0,0 +1,41 @@
-- 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_animal = 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_animal then
dofile(path .. "spawn.lua")
end
print (S("[MOD] Mobs Redo Animals loaded"))

3
intllib.lua Normal file
View File

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

74
lavawalker.lua Normal file
View File

@ -0,0 +1,74 @@
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,
stepheight = 2,
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,
-- 50-70 is slide/water idle
},
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:lavawalker",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:lavawalker", ("Lavawalker"), "alavawalker.png")

1
mod.conf Normal file
View File

@ -0,0 +1 @@
name = livingnether

148
noodlemaster.lua Normal file
View File

@ -0,0 +1,148 @@
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "livingnether:noodlemaster",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 1200,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:noodlemaster", ("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
})

76
razorback.lua Normal file
View File

@ -0,0 +1,76 @@
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,
walk_chance = 20,
jump = true,
jump_height = 6,
stepheight = 2,
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,
-- 50-70 is slide/water idle
},
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:razorback",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:razorback", ("Razorback"), "arazorback.png")

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 KiB

93
sokaarcher.lua Normal file
View File

@ -0,0 +1,93 @@
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,
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,
-- 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,
},
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:sokaarcher",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:sokaarcher", "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},
}, 0)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups = {fleshy=13},
}, 0)
end,
hit_node = function(self, pos, node)
end,
})

68
sokameele.lua Normal file
View File

@ -0,0 +1,68 @@
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, 0.95, 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,
jump = true,
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,
-- 50-70 is slide/water idle
},
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:sokameele",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 60,
active_object_count = 3,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:sokameele", ("Soka Meele"), "asokameele.png")

77
tardigrade.lua Normal file
View File

@ -0,0 +1,77 @@
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.95, 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,
animation = {
speed_normal = 75,
stand_start = 0,
stand_end = 100,
walk_start = 100,
walk_end = 200,
punch_start = 200,
punch_end = 300,
die_start = 1, -- we dont have a specific death animation so we will
die_end = 2, -- re-use 2 standing frames at a speed of 1 fps and
die_speed = 1, -- have mob rotate when dying.
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, 0, 5, 50, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:tardigrade",
nodes = {"nether:rack"},
min_light = 0,
interval = 60,
active_object_count = 4,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:tardigrade", ("Tardigrade"), "atardigrade.png")
mobs:alias_mob("livingnether:tardigrade", "livingnether:tardigrade") -- compatibility

72
whip.lua Normal file
View File

@ -0,0 +1,72 @@
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, 0.8, 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,
},
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, 5, 50, 80, false, nil) then return end
end,
})
if not mobs.custom_spawn_animal then
mobs:spawn({
name = "livingnether:whip",
nodes = {"nether:rack_deep"},
min_light = 0,
interval = 60,
active_object_count = 5,
chance = 8000, -- 15000
min_height = -8000,
max_height = -3000,
})
end
mobs:register_egg("livingnether:whip", ("Flesh Whip"), "awhip.png")