Able to see all mobs in the lookup help menu (#4186)

added a Mobs category that has pages for all mobs

Co-authored-by: SOS-Games <101518564+SOS-Games@users.noreply.github.com>
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/4186
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: SOS-Games <gruberscomplete@gmail.com>
Co-committed-by: SOS-Games <gruberscomplete@gmail.com>
This commit is contained in:
SOS-Games 2024-04-21 08:16:15 +00:00 committed by the-real-herowl
parent bd4337a2dc
commit 4f37c1600f
15 changed files with 117 additions and 8 deletions

@ -325,12 +325,19 @@ function mcl_mobs.register_mob(name, def)
_spawner = def._spawner,
}
minetest.register_entity(name, setmetatable(final_def,mcl_mobs.mob_class_meta))
if minetest.get_modpath("doc_identifier") ~= nil then
doc.sub.identifier.register_object(name, "basics", "mobs")
if def.unused ~= true then
doc.add_entry("mobs", name, {
name = def.description or name,
data = final_def,
})
end
end
minetest.register_entity(name, setmetatable(final_def,mcl_mobs.mob_class_meta))
end -- END mcl_mobs.register_mob function

@ -1,6 +1,7 @@
local S = minetest.get_translator(minetest.get_current_modname())
local axolotl = {
description = S("Axolotl"),
type = "animal",
spawn_class = "axolotl",
can_despawn = true,

@ -30,6 +30,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
--###################
local cod = {
description = S("Cod"),
type = "animal",
spawn_class = "water_ambient",
can_despawn = true,

@ -136,7 +136,7 @@ mcl_mobs.register_mob("mobs_mc:creeper", {
})
mcl_mobs.register_mob("mobs_mc:creeper_charged", {
description = S("Creeper"),
description = S("Charged Creeper"),
type = "monster",
spawn_class = "hostile",
hp_min = 20,

@ -30,6 +30,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
--###################
local dolphin = {
description = S("Dolphin"),
type = "animal",
spawn_class = "water",
can_despawn = true,

@ -30,6 +30,7 @@ for i=1,4 do
end
mcl_mobs.register_mob("mobs_mc:glow_squid", {
description = S("Glow Squid"),
type = "animal",
spawn_class = "water_underground",
can_despawn = true,

@ -343,8 +343,13 @@ mcl_mobs.register_mob("mobs_mc:baby_zombified_piglin", baby_zombified_piglin)
-- Compatibility code. These were removed, and now are called zombie piglins. They don't spawn.
-- This is only to catch old cases. Maybe could be an alias?
mcl_mobs.register_mob("mobs_mc:pigman", zombified_piglin)
mcl_mobs.register_mob("mobs_mc:baby_pigman", baby_zombified_piglin)
local pigman_unused = table.copy(zombified_piglin)
pigman_unused.unused = true
local baby_pigman_unused = table.copy(baby_zombified_piglin)
baby_pigman_unused.unused = true
mcl_mobs.register_mob("mobs_mc:pigman", pigman_unused)
mcl_mobs.register_mob("mobs_mc:baby_pigman", baby_pigman_unused)
-- Piglin Brute --

@ -10,6 +10,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
--###################
local salmon = {
description = S("Salmon"),
type = "animal",
spawn_class = "water_ambient",
can_despawn = true,

@ -176,7 +176,7 @@ end
-- Slime
local slime_big = {
description = S("Slime"),
description = S("Slime - big"),
type = "monster",
spawn_class = "hostile",
group_attack = { "mobs_mc:slime_big", "mobs_mc:slime_small", "mobs_mc:slime_tiny" },
@ -231,6 +231,7 @@ local slime_big = {
mcl_mobs.register_mob("mobs_mc:slime_big", slime_big)
local slime_small = table.copy(slime_big)
slime_small.description = S("Slime - small")
slime_small.sounds.base_pitch = 1.15
slime_small.hp_min = 4
slime_small.hp_max = 4
@ -248,6 +249,7 @@ slime_small.on_die = spawn_children_on_die("mobs_mc:slime_tiny", 0.6, 1.0)
mcl_mobs.register_mob("mobs_mc:slime_small", slime_small)
local slime_tiny = table.copy(slime_big)
slime_tiny.description = S("Slime - tiny")
slime_tiny.sounds.base_pitch = 1.3
slime_tiny.hp_min = 1
slime_tiny.hp_max = 1
@ -397,7 +399,7 @@ swamp_max)
-- Magma cube
local magma_cube_big = {
description = S("Magma Cube"),
description = S("Magma Cube - big"),
type = "monster",
spawn_class = "hostile",
hp_min = 16,
@ -458,6 +460,7 @@ local magma_cube_big = {
mcl_mobs.register_mob("mobs_mc:magma_cube_big", magma_cube_big)
local magma_cube_small = table.copy(magma_cube_big)
magma_cube_small.description = S("Magma Cube - small")
magma_cube_small.sounds.jump = "mobs_mc_magma_cube_small"
magma_cube_small.sounds.death = "mobs_mc_magma_cube_small"
magma_cube_small.hp_min = 4
@ -479,6 +482,7 @@ magma_cube_small.on_die = spawn_children_on_die("mobs_mc:magma_cube_tiny", 0.6,
mcl_mobs.register_mob("mobs_mc:magma_cube_small", magma_cube_small)
local magma_cube_tiny = table.copy(magma_cube_big)
magma_cube_tiny.description = S("Magma Cube - tiny")
magma_cube_tiny.sounds.jump = "mobs_mc_magma_cube_small"
magma_cube_tiny.sounds.death = "mobs_mc_magma_cube_small"
magma_cube_tiny.sounds.base_pitch = 1.25

@ -11,6 +11,7 @@ local S = minetest.get_translator("mobs_mc")
local strider = {
description = S("Strider"),
type = "animal",
passive = true,
spawn_class = "passive",
@ -205,6 +206,7 @@ mcl_mobs.register_mob("mobs_mc:strider", strider)
-- Baby strider.
local baby_strider = table.copy(strider)
baby_strider.description = S("Baby Strider")
baby_strider.collisionbox = {-.3, -0.01, -.3, .3, 0.94, .3}
baby_strider.xp_min = 13
baby_strider.xp_max = 13

@ -58,6 +58,7 @@ local function set_textures(self)
end
local tropical_fish = {
description = S("Tropical Fish"),
type = "animal",
spawn_class = "water_ambient",
can_despawn = true,

@ -135,6 +135,7 @@ end
-- Tamed wolf (aka “dog”)
local dog = table.copy(wolf)
dog.description = S("Dog")
dog.can_despawn = false
dog.passive = true
dog.hp_min = 20

@ -53,7 +53,7 @@ doc.data = {}
doc.data.categories = {}
doc.data.aliases = {}
-- Default order (includes categories of other mods from the Docuentation System modpack)
doc.data.category_order = {"basics", "nodes", "tools", "craftitems", "advanced"}
doc.data.category_order = {"basics", "nodes", "tools", "craftitems", "advanced", "mobs"}
doc.data.category_count = 0
doc.data.players = {}

@ -116,7 +116,11 @@ function doc_identifier.identify(itemstack, user, pointed_thing)
end
-- A known registered object
elseif ro then
if doc.entry_exists("mobs", le.name) then
doc.show_entry(username, "mobs", le.name, true)
else
doc.show_entry(username, ro.category, ro.entry, true)
end
-- Undefined object (error)
elseif minetest.registered_entities[le.name] == nil then
show_message(username, "error_unknown", le.name)

@ -1136,6 +1136,86 @@ doc.add_category("craftitems", {
end
})
doc.add_category("mobs", {
name = S("Mobs"),
description = S("different mobs"),
build_formspec = function(data, playername)
if data then
local datastring = ""
if data.description then
datastring = datastring .. S("Description: @1", data.description)
datastring = newline2(datastring)
end
if data.type then
datastring = datastring .. S("Type: @1", data.type)
datastring = newline2(datastring)
end
if data.spawn_class then
datastring = datastring .. S("spawn class: @1", data.spawn_class)
datastring = newline2(datastring)
end
if data.jump then
datastring = datastring .. S("Can Jump")
datastring = newline2(datastring)
end
if data.fly then
datastring = datastring .. S("Can Fly")
datastring = newline2(datastring)
end
if data.drops then
count = 0
for _,item in ipairs(data.drops) do
count = count + 1
end
if count > 0 then
datastring = datastring .. S("drops: ")
datastring = newline(datastring)
for _,item in ipairs(data.drops) do
local itemDescription = ItemStack(item.name):get_short_description()
datastring = datastring .. itemDescription
datastring = newline(datastring)
end
datastring = newline2(datastring)
end
end
if data.follow then
datastring = datastring .. S("follows player when these items are held:")
datastring = newline(datastring)
if type(data.follow) == "string" then
datastring = datastring .. data.follow
datastring = newline(datastring)
else
for i=1, #data.follow do
local itemstring = data.follow[i]
local itemDescription = ItemStack(itemstring):get_short_description()
datastring = datastring .. itemDescription
datastring = newline(datastring)
end
end
datastring = newline2(datastring)
end
local formstring = doc.widgets.text(datastring, nil, nil, doc.FORMSPEC.ENTRY_WIDTH - 1.2)
return formstring
else
return "label[0,1;NO DATA AVALIABLE!]"
end
end
})
-- Register group definition stuff
-- More (user-)friendly group names to replace the rather technical names
-- for better understanding