Rebase code on Animalworld’s stingray

Also adds mobs dolphins eat as attack-targets.
This commit is contained in:
Jaidyn Ann 2024-08-14 15:41:25 -05:00
parent 2755667a41
commit 341043430e
3 changed files with 109 additions and 62 deletions

View File

@ -1,3 +0,0 @@
default
mobs
ethereal?

165
init.lua
View File

@ -1,59 +1,106 @@
if mobs.mod and mobs.mod == "redo" then
local l_water_level = minetest.setting_get("water_level") - 1
mobs:register_mob("mobs_dolphin:dolphin", {
type = "animal",
attack_type = "dogfight",
damage = 10,
reach = 3,
hp_min = 20,
hp_max = 25,
armor = 150,
collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75},
visual = "mesh",
mesh = "mobs_dolphin.b3d",
textures = {
{"dolphin_pink.png"},
{"dolphin_blue.png"},
{"dolphin_white.png"}
},
sounds = {
random = "dolphin",
},
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
},
makes_footstep_sound = false,
walk_velocity = 4,
run_velocity = 6,
fly = true,
fly_in = "default:water_source",
fall_speed = 0,
rotate = 0,
view_range = 10,
water_damage = 0,
lava_damage = 10,
light_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 66,
stand_end = 90,
walk_start = 0,
walk_end = 40,
run_start = 40,
run_end = 60,
punch_start = 40,
punch_end = 40,
},
follow = {"ethereal:fish_raw"},
on_rightclick = function(self, clicker)
mobs:capture_mob(self, clicker, 80, 100, 0, true, nil)
end
})
--name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height
mobs:spawn_specific("mobs_dolphin:dolphin", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 5, 20, 30, 10000, 2, -31000, l_water_level)
mobs:register_egg("mobs_dolphin:dolphin", "Dolphin", "dolphin_inv.png", 0)
end
-- animalworld:stingray was used as the base for this file:
-- https://github.com/Skandarella/animalworld/
local S = minetest.get_translator(minetest.get_current_modname())
mobs:register_mob("mobs_dolphin:dolphin", {
stepheight = 0.0,
type = "animal",
attack_type = "dogfight",
attack_animals = true,
specific_attack = {
"animalworld:beluga", "animalworld:seahorse", "animalworld:squid", "animalworld:trout",
"mobs_fish:clownfish", "mobs_fish:tropical"
},
reach = 2,
damage = 6,
hp_min = 15,
hp_max = 65,
armor = 100,
collisionbox = {-0.7, -0.01, -0.7, 0.7, 0.95, 0.7},
visual = "mesh",
mesh = "mobs_dolphin.b3d",
visual_size = {x = 1.0, y = 1.0},
textures = {
{"dolphin_pink.png"},
{"dolphin_blue.png"},
{"dolphin_white.png"}
},
sounds = {
random = "dolphin"
},
makes_footstep_sound = false,
walk_velocity = 4,
run_velocity = 6,
fly = true,
fall_speed = 0,
runaway = false,
jump = false,
stepheight = 0.0,
stay_near = {
{
"marinara:sand_with_alage", "mcl_ocean:bubble_coral", "mcl_ocean:tubeff_coral",
"mcl_ocean:fire_coral", "mcl_ocean:brain_coral", "mcl_ocean:seagrass_gravel",
"mcl_flowers:waterlily", "marinara:sand_with_seagrass", "default:sand_with_kelp",
"marinara:sand_with_kelp", "marinara:reed_root", "flowers:waterlily_waving",
"naturalbiomes:waterlily", "default:clay"
},
5
},
drops = {
{name = "animalworld:rawfish", chance = 1, min = 1, max = 1},
},
water_damage = 0,
air_damage = 2,
lava_damage = 4,
light_damage = 0,
fear_height = 2,
animation = {
speed_normal = 100,
stand_start = 0,
stand_end = 100,
fly_start = 100, -- swim animation
fly_end = 200,
punch_start = 200,
punch_end = 300,
die_start = 200,
die_end = 300,
die_speed = 50,
die_loop = false,
die_rotate = true,
},
fly_in = "group:water",
floats = 0,
follow = {
"mobs:meat_raw", "animalworld:raw_athropod", "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:shark_raw", "fishing:pike_raw",
"animalworld:rawfish"
},
view_range = 2,
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,
})
mobs:spawn({
name = "mobs_dolphin:dolphin",
nodes = {
"mcl_core:water_source", "default:water_source", "default:river_water_source",
"mcl_core:water_source", "mcl_core:water_flowing"
},
neighbors = {"naturalbiomes:palmbeach_sand", "mcl_core:sand", "mcl_core:gravel"},
min_light = 0,
interval = 60,
active_object_count = 2,
chance = 2000, -- 15000
min_height = -10,
max_height = 5,
})
mobs:register_egg("mobs_dolphin:dolphin", S("Dolphin"), "dolphin_inv.png")

3
mod.conf Normal file
View File

@ -0,0 +1,3 @@
name = mobs_dolphin
depends = mobs
description = Adds peaceful dolphins to the oceans.