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

27
mods/marinaramobs/LICENSE Normal file
View file

@ -0,0 +1,27 @@
MIT License
Copyright (c) 2022 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.
The dolphin sounds are from freesound.org under Creative Commons License. Thanks to forpus, geraldfiebig and abrez.
Modified Code by Liil/Wilhelmine/Skandarella (c) 2022
Textures and Models by Liil/Wilhelmine/Skandarella under (MIT) License (c) 2022

View file

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

View file

@ -0,0 +1 @@
adds mobs to the marinara mod

View file

@ -0,0 +1,127 @@
local S = minetest.get_translator("marinaramobs")
local random = math.random
mobs:register_mob("marinaramobs:dolphin", {
stepheight = 0.0,
type = "animal",
passive = true,
attack_type = "dogfight",
attack_animals = false,
attack_npcs = false,
attack_monsters = true,
owner_loyal = true,
reach = 1,
damage = 4,
hp_min = 65,
hp_max = 145,
armor = 100,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.5, 0.4},
visual = "mesh",
mesh = "Dolphin.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"texturedolphin.png"},
},
sounds = {
random = "marinaramobs_dolphin",
attack = "marinaramobs_dolphin2",
damage = "marinaramobs_dolphin3",
death = "marinaramobs_dolphin4",
},
makes_footstep_sound = false,
walk_velocity = 3,
run_velocity = 4,
fly = true,
fly_in = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
fall_speed = 0,
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", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "animalworld:divingbeetle", "animalworld:divingbeetle", "animalworld:scorpion", "animalworld:polarbear", "animalworld:leopardseal", "animalworld:stellerseagle", "animalworld:wolf", "animalworld:panda", "animalworld:stingray", "marinaramobs:jellyfish", "marinaramobs:octopus", "livingcavesmobs:biter", "livingcavesmobs:flesheatingbacteria"},
jump = false,
stepheight = 0.0,
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 5},
stay_near = {{"marinara:bountychest", "marinara:bountychest2", "marinara:bountychest3", "marinara:bountychest4", "marinara:bountychest5", "marinara:bountychest6", "marinara:bountychest7", "marinara:bountychest8", "marinara:bountychest9", "marinara:bountychest10", "marinara:bountychest11", "marinara:bountychest12"}, 6},
drops = {
{name = "mobs:meat", chance = 1, min = 1, max = 1},
},
water_damage = 0,
air_damage = 1,
lava_damage = 4,
light_damage = 0,
view_range = 10,
animation = {
speed_normal = 50,
stand_speed = 25,
stand_start = 0,
stand_end = 100,
fly_start = 200,
fly_end = 300,
fly2_start = 300,
fly2_end = 400,
die_start = 300,
die_end = 400,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing"},
floats = 0,
follow = {
"animalworld:rawmollusk", "marinaramobs:octopus_raw", "marinara:raw_oisters", "marinara:raw_athropod", "animalworld:rawfish", "fishing:fish_raw", "fishing:pike_raw", "marinaramobs:raw_exotic_fish", "nativevillages:catfish_raw", "xocean:fish_edible", "ethereal:fish_raw", "mobs:clownfish_raw", "fishing:bluewhite_raw", "fishing:exoticfish_raw", "fishing:fish_raw", "fishing:carp_raw", "fishing:perch_raw", "water_life:meat_raw", "fishing:shark_raw", "fishing:pike_raw"
},
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, 5, 15, false, nil) then return end
end,
})
if not mobs.custom_spawn_marinaramobs then
mobs:spawn({
name = "marinaramobs:dolphin",
nodes = {"default:water_source"},
neighbors = {"marinara:hardcoral_pink", "marinara:hardcoral_yellow"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
active_object_count = 4,
min_height = -30,
max_height = 0,
day_toggle = true,
on_spawn = function(self, pos)
local nods = minetest.find_nodes_in_area_under_air(
{x = pos.x - 4, y = pos.y - 3, z = pos.z - 4},
{x = pos.x + 4, y = pos.y + 3, z = pos.z + 4},
{"default:water_source"})
if nods and #nods > 0 then
-- min herd of 4
local iter = math.min(#nods, 3)
-- print("--- dolphin at", minetest.pos_to_string(pos), iter)
for n = 1, iter do
local pos2 = nods[random(#nods)]
local kid = random(4) == 1 and true or nil
pos2.y = pos2.y + 2
if minetest.get_node(pos2).name == "air" then
mobs:add_mob(pos2, {
name = "marinaramobs:dolphin", child = kid})
end
end
end
end
})
end
mobs:register_egg("marinaramobs:dolphin", S("Dolphin"), "adolphin.png")

View file

@ -0,0 +1,17 @@
if minetest.get_modpath("hunger_ng") ~= nil then
hunger_ng.add_hunger_data('marinaramobs:octopus_cooked', {
satiates = 1.0,
})
hunger_ng.add_hunger_data('marinaramobs:octopus_raw', {
satiates = 3.0,
})
hunger_ng.add_hunger_data('marinaramobs:raw_exotic_fish', {
satiates = 1.0,
})
hunger_ng.add_hunger_data('marinaramobs:cooked_exotic_fish', {
satiates = 4.0,
})
hunger_ng.add_hunger_data('marinaramobs:seaurchin_cooked', {
satiates = 1.0,
})
end

View file

@ -0,0 +1,50 @@
--This creates the livingcavesmobs object.
livingcavesmobs = {}
--This creates the livingcavesmobs.settings object, and fills it with either the menu selected choices as defined in settingtypes.txt, or default values, (In this case, false).
livingcavesmobs.settings = {
clear_biomes = minetest.settings:get_bool("livingcavesmobs.clear_biomes") or false,
clear_decos = minetest.settings:get_bool("livingcavesmobs.clear_decos") or false,
clear_ores = minetest.settings:get_bool("livingcavesmobs.clear_ores") or false,
}
if livingcavesmobs.settings.clear_biomes then
minetest.clear_registered_biomes()
end
if livingcavesmobs.settings.clear_decos then
minetest.clear_registered_decorations()
end
if livingcavesmobs.settings.clear_ores then
minetest.clear_registered_ores()
end
local modname = "livingcavesmobs"
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("livingcavesmobs") or
dofile(path .. "intllib.lua")
-- plants
dofile(path .. "parrotfish.lua") --
dofile(path .. "jellyfish.lua") --
dofile(path .. "nautilus.lua") --
dofile(path .. "octopus.lua") --
dofile(path .. "seamouse.lua") --
dofile(path .. "seaslug.lua") --
dofile(path .. "seaurchin.lua") --
dofile(path .. "starfish.lua") --
dofile(path .. "dolphin.lua") --
dofile(path .. "hunger.lua") --
print (S("[MOD] Caves 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,83 @@
local S = minetest.get_translator("marinaramobs")
mobs:register_mob("marinaramobs:jellyfish", {
stepheight = 0.0,
type = "monster",
passive = false,
attack_type = "dogfight",
attack_animals = true,
reach = 2,
damage = 4,
hp_min = 30,
hp_max = 95,
armor = 100,
collisionbox = {-0.3, -0.01, -0.3, 0.3, 0.95, 0.3},
visual = "mesh",
mesh = "Jellyfish.b3d",
visual_size = {x = 4.0, y = 4.0},
textures = {
{"texturejellyfish.png"},
},
sounds = {},
makes_footstep_sound = false,
sounds = {
},
walk_velocity = 0.5,
run_velocity = 0.8,
fly = true,
fly_in = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
fall_speed = 0,
runaway = false,
jump = false,
stepheight = 0.0,
drops = {
},
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 2},
water_damage = 0,
air_damage = 1,
lava_damage = 4,
light_damage = 0,
animation = {
speed_normal = 25,
stand_start = 0,
stand_end = 100,
fly_start = 100,
fly_end = 200,
punch_start = 0,
punch_end = 100,
die_start = 0,
die_end = 100,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:river_water_source", "default:water_flowing"},
floats = 0,
follow = {
"mobs:meat_raw", "xocean:fish_edible", "ethereal:fish_raw", "mobs:clownfish_raw", "mobs:bluefish_raw", "fishing:bait_worm", "fishing:clownfish_raw", "fishing:bluewhite_raw", "fishing:exoticfish_raw", "fishing:fish_raw", "fishing:carp_raw", "fishing:perch_raw", "water_life:meat_raw", "fishing:jellyfish_raw", "fishing:pike_raw", "marinaramobs:octopus_raw", "marinaramobs:raw_exotic_fish", "fishing:fish_cooked", "marinaramobs:cooked_exotic_fish", "animalworld:cookedfish", "marinara:mussels", "nativevillages:catfish_cooked", "fishing:pike_cooked", "animalworld:cooked_athropod",
},
view_range = 1,
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_marinaramobs then
mobs:spawn({
name = "marinaramobs:jellyfish",
nodes = {"default:water_source"},
neighbors = {"marinara:sand_with_kelp", "default:sand_with_kelp"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
min_height = -30,
max_height = 0,
})
end
mobs:register_egg("marinaramobs:jellyfish", S("Jellyfish"), "ajellyfish.png")

View file

@ -0,0 +1,34 @@
# textdomain: marinaramobs
### jellyfish.lua ###
Jellyfish=Qualle
### nautilus.lua ###
Nautilusshell=Nautilus Schale
### octopus.lua ###
Octopus=Oktopus
Raw Octopus=Roher Oktopus
Cooked Octopus=Gekochter Oktopus
### parrotfish.lua ###
Parrotfish=Papageifisch
Raw Exotic Fish=Roher Exotischer Fisch
Cooked Exotic Fish=Gekochter Exotischer Fisch
### seamouse.lua ###
Seamouse=Seemaus
### seaslug.lua ###
Seaslug=Meeresschnecke
### seaurchin.lua ###
Seaurchin=Seeigel
Cooked Seaurchin=Gekochter Seeigel
### starfish.lua ###
Starfish=Seestern
Starfish Mobile=Seestern Mobile
### dolphin.lua ###
Dolphin=Delfin

View file

@ -0,0 +1,6 @@
name = marinaramobs
release = 16924
author = Liil
description = adds mobs to the marinara oceans
title = Wilhelmines Marinara Mobs

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,142 @@
local S = minetest.get_translator("marinaramobs")
local random = math.random
mobs:register_mob("marinaramobs:nautilus", {
stepheight = 0.0,
type = "animal",
passive = true,
attack_type = "dogfight",
attack_animals = false,
reach = 1,
damage = 1,
hp_min = 5,
hp_max = 25,
armor = 100,
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.5, 0.2},
visual = "mesh",
visual_size = {x = 2.0, y = 2.0},
mesh = "Nautilus.b3d",
textures = {
{"texturenautilus.png"},
},
sounds = {},
makes_footstep_sound = false,
walk_velocity = 1,
run_velocity = 1,
fly = true,
fly_in = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
fall_speed = 0,
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", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "animalworld:divingbeetle", "animalworld:divingbeetle", "animalworld:scorpion", "animalworld:polarbear", "animalworld:leopardseal", "animalworld:stellerseagle", "player", "animalworld:wolf", "animalworld:panda", "animalworld:stingray", "marinaramobs:jellyfish", "marinaramobs:octopus", "livingcavesmobs:biter", "livingcavesmobs:flesheatingbacteria"},
jump = false,
stepheight = 0.0,
drops = {
{name = "marinaramobs:nautilushell", chance = 1, min = 0, max = 1},
},
water_damage = 0,
air_damage = 1,
lava_damage = 4,
light_damage = 0,
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 4},
animation = {
speed_normal = 50,
stand_start = 0,
stand_end = 100,
fly_start = 100, -- swim animation
fly_end = 200,
die_start = 100,
die_end = 200,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing"},
floats = 0,
follow = {
"fishing:bait_worm",
"animalworld:raw_athropod", "animalworld:rawfish", "ethereal:fish_raw", "animalworld:fishfood", "mobs_fish:tropical", "water_life:meat_raw", "marinaramobs:octopus_raw", "marinaramobs:raw_exotic_fish"
},
view_range = 5,
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, 15, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_marinaramobs then
mobs:spawn({
name = "marinaramobs:nautilus",
nodes = {"default:water_source"}, {"default:river_water_source"},
neighbors = {"marinara:sand_with_kelp"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
active_object_count = 3,
min_height = -30,
max_height = 0,
day_toggle = true,
on_spawn = function(self, pos)
local nods = minetest.find_nodes_in_area_under_air(
{x = pos.x - 4, y = pos.y - 3, z = pos.z - 4},
{x = pos.x + 4, y = pos.y + 3, z = pos.z + 4},
{"default:water_source", "default:river_water_source"})
if nods and #nods > 0 then
-- min herd of 3
local iter = math.min(#nods, 3)
-- print("--- nautilus at", minetest.pos_to_string(pos), iter)
for n = 1, iter do
local pos2 = nods[random(#nods)]
local kid = random(4) == 1 and true or nil
pos2.y = pos2.y + 2
if minetest.get_node(pos2).name == "air" then
mobs:add_mob(pos2, {
name = "marinaramobs:nautilus", child = kid})
end
end
end
end
})
end
mobs:register_egg("marinaramobs:nautilus", ("Nautilus"), "anautilus.png")
minetest.register_node("marinaramobs:nautilushell", {
description = S"Nautilusshell",
visual_scale = 0.6,
mesh = "Nautilusshell.b3d",
tiles = {"marinaramobs_nautilusshell.png"},
inventory_image = "marinaramobs_nautilusshellinv.png",
paramtype = "light",
paramtype2 = "facedir",
groups = {choppy = 3},
drawtype = "mesh",
collision_box = {
type = "fixed",
fixed = {
{-0.4, -0.45, -0.4, 0.4, 0.15, 0.4},
--[[{-0.4, -0.45, -0.4, 0.4, 0.15, 0.4},
{-0.4, -0.45, -0.4, 0.4, 0.15, 0.4}]]
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.4, -0.45, -0.4, 0.4, 0.15, 0.4}
}
},
sounds = default.node_sound_wood_defaults()
})

View file

@ -0,0 +1,144 @@
local S = minetest.get_translator("marinaramobs")
mobs:register_mob("marinaramobs:octopus", {
stepheight = 0.0,
type = "monster",
passive = false,
attack_animals = true,
attack_npcs = true,
reach = 2,
damage = 5,
attack_type = "dogshoot",
dogshoot_switch = 1,
dogshoot_count_max = 3,
dogshoot_count2_max = 5,
shoot_interval = 1,
arrow = "marinara:octopusink",
shoot_offset = 0.8,
hp_min = 60,
hp_max = 95,
armor = 100,
collisionbox = {-0.5, -0.01, -0.5, 0.5, 0.95, 0.5},
visual = "mesh",
mesh = "Octopus.b3d",
visual_size = {x = 0.5, y = 0.5},
textures = {
{"textureoctopus.png"},
},
sounds = {},
makes_footstep_sound = false,
sounds = {
attack = "marinaramobs_octopus",
},
walk_velocity = 1,
run_velocity = 2,
fly = true,
fly_in = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
fall_speed = 0,
runaway = false,
jump = false,
stepheight = 0.0,
stay_near = {{"marinara:bountychest", "marinara:bountychest2", "marinara:bountychest3", "marinara:bountychest4", "marinara:bountychest5", "marinara:bountychest6", "marinara:bountychest7", "marinara:bountychest8", "marinara:bountychest9", "marinara:bountychest10", "marinara:bountychest11", "marinara:bountychest12", "marinara:hardcoral", "marinara:seapocks"}, 4},
drops = {
{name = "marinaramobs:octopus_raw", chance = 1, min = 0, max = 1},
{name = "dye:black", chance = 1, min = 0, max = 1},
},
water_damage = 0,
air_damage = 1,
lava_damage = 4,
light_damage = 0,
animation = {
speed_normal = 50,
stand_start = 0,
stand_end = 100,
fly_start = 100,
fly_end = 200,
punch_start = 200,
punch_end = 300,
shoot_start = 200,
shoot_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:river_water_source", "default:water_flowing"},
floats = 0,
follow = {
"mobs:meat_raw", "xocean:fish_edible", "ethereal:fish_raw", "mobs:clownfish_raw", "mobs:bluefish_raw", "fishing:bait_worm", "fishing:clownfish_raw", "fishing:bluewhite_raw", "fishing:exoticfish_raw", "fishing:fish_raw", "fishing:carp_raw", "fishing:perch_raw", "water_life:meat_raw", "fishing:octopus_raw", "fishing:pike_raw", "marinaramobs:octopus_raw", "marinaramobs:raw_exotic_fish"
},
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, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_marinaramobs then
mobs:spawn({
name = "marinaramobs:octopus",
nodes = {"default:water_source"},
neighbors = {"marinara:bountychest", "marinara:bountychest2", "marinara:bountychest3", "marinara:bountychest4", "marinara:bountychest5", "marinara:bountychest6", "marinara:bountychest7", "marinara:bountychest8", "marinara:bountychest9", "marinara:bountychest10", "marinara:bountychest11"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
min_height = -30,
max_height = 0,
})
mobs:register_egg("marinaramobs:octopus", S("Octopus"), "aoctopus.png")
mobs:register_arrow("marinaramobs:octopusink", {
visual = "sprite",
visual_size = {x=.10, y=.10},
textures = {"marinaramobs_octopusink.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,
})
-- raw octopus
minetest.register_craftitem("marinaramobs:octopus_raw", {
description = S("Raw Octopus"),
inventory_image = "marinaramobs_octopus_raw.png",
on_use = minetest.item_eat(3),
groups = {food_meat_raw = 1, flammable = 2},
})
-- cooked octopus
minetest.register_craftitem("marinaramobs:octopus_cooked", {
description = S("Cooked Octopus"),
inventory_image = "marinaramobs_octopus_cooked.png",
on_use = minetest.item_eat(5),
groups = {food_meat = 1, flammable = 2},
})
minetest.register_craft({
type = "cooking",
output = "marinaramobs:octopus_cooked",
recipe = "marinaramobs:octopus_raw",
cooktime = 5,
})
end

View file

@ -0,0 +1,143 @@
local S = minetest.get_translator("marinaramobs")
local random = math.random
mobs:register_mob("marinaramobs:parrotfish", {
stepheight = 0.0,
type = "animal",
passive = true,
attack_type = "dogfight",
attack_animals = false,
reach = 1,
damage = 1,
hp_min = 25,
hp_max = 45,
armor = 100,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 0.5, 0.4},
visual = "mesh",
mesh = "Parrotfish.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"textureparrotfish.png"},
},
sounds = {},
makes_footstep_sound = false,
walk_velocity = 0.5,
run_velocity = 1,
fly = true,
fly_in = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
fall_speed = 0,
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", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "animalworld:divingbeetle", "animalworld:divingbeetle", "animalworld:scorpion", "animalworld:polarbear", "animalworld:leopardseal", "animalworld:stellerseagle", "player", "animalworld:wolf", "animalworld:panda", "animalworld:stingray", "marinaramobs:jellyfish", "marinaramobs:octopus", "livingcavesmobs:biter", "livingcavesmobs:flesheatingbacteria"},
jump = false,
stepheight = 0.0,
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 4},
drops = {
{name = "marinaramobs:rawfish", chance = 1, min = 1, max = 1},
},
water_damage = 0,
air_damage = 1,
lava_damage = 4,
light_damage = 0,
animation = {
speed_normal = 100,
stand_speed = 50,
stand_start = 0,
stand_end = 100,
stand2_speed = 50,
stand2_start = 100,
stand2_end = 200,
fly_start = 200,
fly_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing"},
floats = 0,
follow = {
"marinara:seagrass", "marinara:seagrass2", "marinara:sand_with_seagrass",
"marinara:sand_with_seagrass2", "marinara:alage", "marinara:sand_with_alage", "default:kelp", "default:sand_with_kelp"
},
view_range = 5,
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, 15, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_marinaramobs then
mobs:spawn({
name = "marinaramobs:parrotfish",
nodes = {"default:water_source"},
neighbors = {"marinara:hardcoral", "marinara:hardcoral_green"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
active_object_count = 3,
min_height = -30,
max_height = 0,
day_toggle = true,
on_spawn = function(self, pos)
local nods = minetest.find_nodes_in_area_under_air(
{x = pos.x - 4, y = pos.y - 3, z = pos.z - 4},
{x = pos.x + 4, y = pos.y + 3, z = pos.z + 4},
{"default:water_source"})
if nods and #nods > 0 then
-- min herd of 3
local iter = math.min(#nods, 3)
-- print("--- parrotfish at", minetest.pos_to_string(pos), iter)
for n = 1, iter do
local pos2 = nods[random(#nods)]
local kid = random(4) == 1 and true or nil
pos2.y = pos2.y + 2
if minetest.get_node(pos2).name == "air" then
mobs:add_mob(pos2, {
name = "marinaramobs:parrotfish", child = kid})
end
end
end
end
})
end
mobs:register_egg("marinaramobs:parrotfish", S("Parrotfish"), "aparrotfish.png")
-- raw fish
minetest.register_craftitem(":marinaramobs:raw_exotic_fish", {
description = S("Raw Exotic Fish"),
inventory_image = "marinaramobs_exotic_fish_raw.png",
on_use = minetest.item_eat(3),
groups = {food_meat_raw = 1, flammable = 2},
})
-- cooked fish
minetest.register_craftitem(":marinaramobs:cooked_exotic_fish", {
description = S("Cooked Exotic Fish"),
inventory_image = "marinaramobs_exotic_fish_cooked.png",
on_use = minetest.item_eat(5),
groups = {food_meat = 1, flammable = 2},
})
minetest.register_craft({
type = "cooking",
output = "marinaramobs:cooked_exotic_fish",
recipe = "marinaramobs:raw_exotic_fish",
cooktime = 5,
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

View file

@ -0,0 +1,84 @@
local S = minetest.get_translator("marinaramobs")
mobs:register_mob("marinaramobs:seamouse", {
stepheight = 1,
type = "animal",
passive = true,
reach = 1,
attack_npcs = false,
reach = 2,
damage = 0,
hp_min = 10,
hp_max = 40,
armor = 100,
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2},
visual = "mesh",
mesh = "Seamouse.b3d",
drawtype = "front",
textures = {
{"textureseamouse.png"},
},
sounds = {
},
makes_footstep_sound = false,
walk_velocity = 0.3,
run_velocity = 0.5,
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", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "animalworld:divingbeetle", "animalworld:divingbeetle", "animalworld:scorpion", "animalworld:polarbear", "animalworld:leopardseal", "animalworld:stellerseagle", "player", "animalworld:wolf", "animalworld:panda", "animalworld:stingray", "marinaramobs:jellyfish", "marinaramobs:octopus", "livingcavesmobs:biter", "livingcavesmobs:flesheatingbacteria"},
jump = false,
jump_height = 6,
drops = {
},
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 5},
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 2,
animation = {
speed_normal = 50,
stand_start = 0,
stand_end = 100,
stand2_start = 200,
stand2_end = 300,
walk_start = 100,
walk_end = 200,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:water_flowing"},
floats = 0,
follow = {"animalworld:rawfish", "mobs_fish:tropical", "mobs:clownfish_raw",
"mobs:bluefish_raw", "fishing:bait_worm", "fishing:clownfish_raw", "fishing:bluewhite_raw", "fishing:exoticfish_raw", "fishing:fish_raw", "fishing:carp_raw", "fishing:perch_raw", "water_life:meat_raw", "fishing:shark_raw", "fishing:pike_raw", "marinaramobs:octopus_raw", "marinaramobs:raw_exotic_fish"},
view_range = 5,
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_marinaramobs then
mobs:spawn({
name = "marinaramobs:seamouse",
nodes = {"default:water_source"},
neighbors = {"marinara:coastrock"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
active_object_count = 2,
min_height = -30,
max_height = 0,
})
end
mobs:register_egg("marinaramobs:seamouse", S("Seamouse"), "aseamouse.png", 0)
mobs:alias_mob("marinaramobs:seamouse", "marinaramobs:seamouse") -- compatibility

View file

@ -0,0 +1,84 @@
local S = minetest.get_translator("marinaramobs")
mobs:register_mob("marinaramobs:seaslug", {
stepheight = 1,
type = "animal",
passive = true,
reach = 1,
attack_npcs = false,
reach = 2,
damage = 0,
hp_min = 10,
hp_max = 40,
armor = 100,
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2},
visual = "mesh",
mesh = "Seasnail.b3d",
drawtype = "front",
textures = {
{"textureseasnail.png"},
},
sounds = {
},
makes_footstep_sound = false,
walk_velocity = 0.4,
run_velocity = 0.6,
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", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "animalworld:divingbeetle", "animalworld:divingbeetle", "animalworld:scorpion", "animalworld:polarbear", "animalworld:leopardseal", "animalworld:stellerseagle", "player", "animalworld:wolf", "animalworld:panda", "animalworld:stingray", "marinaramobs:jellyfish", "marinaramobs:octopus", "livingcavesmobs:biter", "livingcavesmobs:flesheatingbacteria"},
jump = false,
jump_height = 6,
drops = {
},
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 5},
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 2,
animation = {
speed_normal = 25,
stand_start = 0,
stand_end = 100,
stand2_start = 200,
stand2_end = 300,
walk_start = 100,
walk_end = 200,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:water_flowing"},
floats = 0,
follow = {"marinara:seagrass", "marinara:seagrass2", "marinara:sand_with_seagrass",
"marinara:sand_with_seagrass2", "marinara:alage", "marinara:sand_with_alage", "default:kelp", "default:sand_with_kelp"},
view_range = 5,
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_marinaramobs then
mobs:spawn({
name = "marinaramobs:seaslug",
nodes = {"default:water_source"},
neighbors = {"marinara:hardcoral_yellow", "marinara:hardcoral_red"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
active_object_count = 2,
min_height = -30,
max_height = 0,
})
end
mobs:register_egg("marinaramobs:seaslug", S("Seaslug"), "aseaslug.png", 0)
mobs:alias_mob("marinaramobs:seaslug", "marinaramobs:seaslug") -- compatibility

View file

@ -0,0 +1,106 @@
local S = minetest.get_translator("marinaramobs")
mobs:register_mob("marinaramobs:seaurchin", {
stepheight = 1,
type = "animal",
passive = false,
reach = 1,
attack_npcs = true,
attack_type = "dogfight",
group_attack = true,
attack_animals = false,
reach = 2,
damage = 4,
hp_min = 10,
hp_max = 40,
armor = 100,
visual_size = {x = 0.7, y = 0.7},
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2},
visual = "mesh",
mesh = "Seaurchin.b3d",
drawtype = "front",
textures = {
{"textureseaurchin.png"},
},
sounds = {
},
makes_footstep_sound = false,
walk_velocity = 0.2,
run_velocity = 0.3,
runaway = false,
jump = false,
jump_height = 6,
drops = {
{name = "marinaramobs:seaurchin", chance = 1, min = 0, max = 1},
},
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 5},
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 2,
animation = {
speed_normal = 25,
stand_start = 100,
stand_end = 200,
stand2_start = 200,
stand2_end = 300,
walk_start = 0,
walk_end = 100,
punch_start = 0,
punch_end = 100,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:water_flowing"},
floats = 0,
follow = {"marinara:seagrass", "marinara:seagrass2", "marinara:sand_with_seagrass",
"marinara:sand_with_seagrass2", "marinara:alage", "marinara:sand_with_alage", "default:kelp", "default:sand_with_kelp", "animalworld:rawfish", "mobs_fish:tropical", "mobs:clownfish_raw",
"mobs:bluefish_raw", "fishing:bait_worm", "fishing:clownfish_raw", "fishing:bluewhite_raw", "fishing:exoticfish_raw", "fishing:fish_raw", "fishing:carp_raw", "fishing:perch_raw", "water_life:meat_raw", "fishing:shark_raw", "fishing:pike_raw", "marinaramobs:octopus_raw", "marinaramobs:raw_exotic_fish"},
view_range = 5,
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, 25, 0, false, nil) then return end
end,
})
if not mobs.custom_spawn_marinaramobs then
mobs:spawn({
name = "marinaramobs:seaurchin",
nodes = {"default:water_source"},
neighbors = {"marinara:coastrock_alage"},
min_light = 0,
interval = 60,
chance = 2, -- 15000
active_object_count = 2,
min_height = -30,
max_height = 0,
})
end
mobs:register_egg("marinaramobs:seaurchin", S("Seaurchin"), "aseaurchin.png", 0)
mobs:alias_mob("marinaramobs:seaurchin", "marinaramobs:seaurchin") -- compatibility
minetest.register_craftitem(":marinaramobs:seaurchin_cooked", {
description = S("Cooked Seaurchin"),
inventory_image = "marinaramobs_seaurchin_cooked.png",
on_use = minetest.item_eat(8),
groups = {food_meat = 1, flammable = 2},
})
minetest.register_craft({
type = "cooking",
output = "marinaramobs:seaurchin_cooked",
recipe = "marinaramobs:seaurchin",
cooktime = 2,
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,115 @@
local S = minetest.get_translator("marinaramobs")
mobs:register_mob("marinaramobs:starfish", {
stepheight = 1,
type = "animal",
passive = true,
reach = 1,
attack_npcs = false,
reach = 2,
damage = 0,
hp_min = 10,
hp_max = 40,
armor = 100,
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2},
visual = "mesh",
mesh = "Starfish.b3d",
drawtype = "front",
textures = {
{"texturestarfish.png"},
},
sounds = {
},
makes_footstep_sound = false,
walk_velocity = 0.2,
run_velocity = 0.4,
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", "livingfloatlands:deinotherium", "livingfloatlands:carnotaurus", "livingfloatlands:lycaenops", "livingfloatlands:smilodon", "livingfloatlands:tyrannosaurus", "livingfloatlands:velociraptor", "animalworld:divingbeetle", "animalworld:divingbeetle", "animalworld:scorpion", "animalworld:polarbear", "animalworld:leopardseal", "animalworld:stellerseagle", "player", "animalworld:wolf", "animalworld:panda", "animalworld:stingray", "marinaramobs:jellyfish", "marinaramobs:octopus", "livingcavesmobs:biter", "livingcavesmobs:flesheatingbacteria"},
jump = false,
jump_height = 6,
drops = {
{name = "marinaramobs:starfish", chance = 1, min = 0, max = 1},
},
stay_near = {{"marinara:sand_with_alage", "marinara:sand_with_seagrass", "default:sand_with_kelp", "marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving", "naturalbiomes:waterlily", "default:clay", "marinara:softcoral_red", "marinara:softcoral_white", "marinara:softcoral_green", "marinara:softcoral_white", "marinara:softcoral_green", "default:coral_cyan", "default:coral_pink", "default:coral_green"}, 5},
water_damage = 0,
lava_damage = 4,
light_damage = 0,
fear_height = 2,
animation = {
speed_normal = 25,
stand_start = 100,
stand_end = 200,
stand2_start = 200,
stand2_end = 300,
walk_start = 0,
walk_end = 100,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = {"default:water_source", "default:water_flowing"},
floats = 0,
follow = {"animalworld:rawfish", "mobs_fish:tropical", "mobs:clownfish_raw",
"mobs:bluefish_raw", "fishing:bait_worm", "fishing:clownfish_raw", "fishing:bluewhite_raw", "fishing:exoticfish_raw", "fishing:fish_raw", "fishing:carp_raw", "fishing:perch_raw", "water_life:meat_raw", "fishing:shark_raw", "fishing:pike_raw", "marinaramobs:octopus_raw", "marinaramobs:raw_exotic_fish"},
view_range = 5,
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_marinaramobs then
mobs:spawn({
name = "marinaramobs:starfish",
nodes = {"default:water_source"},
neighbors = {"marinara:coastrock"},
min_light = 0,
interval = 60,
chance = 2,
active_object_count = 3,
min_height = -30,
max_height = 0,
})
mobs:register_egg("marinaramobs:starfish", S("Starfish"), "astarfish.png", 0)
mobs:alias_mob("marinaramobs:starfish", "marinaramobs:starfish") -- compatibility
minetest.register_craft({
output = "marinaramobs:starfishmobile",
type = "shapeless",
recipe =
{"marinaramobs:starfish", "farming:string"}
})
minetest.register_node("marinaramobs:starfishmobile", {
description = S("Starfish Mobile"),
drawtype = "plantlike",
waving = 0,
tiles = {"marinaramobs_starfishmobile.png"},
inventory_image = "marinaramobs_starfishmobile.png",
wield_image = "marinaramobs_starfishmobile.png",
paramtype = "light",
sunlight_propagates = true,
climbable = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB