2021-04-08 15:52:50 +02:00
|
|
|
--lua locals
|
2022-04-15 11:48:58 +02:00
|
|
|
local get_node = minetest.get_node
|
|
|
|
local get_item_group = minetest.get_item_group
|
|
|
|
local get_node_light = minetest.get_node_light
|
2021-04-08 15:52:50 +02:00
|
|
|
local find_nodes_in_area_under_air = minetest.find_nodes_in_area_under_air
|
2022-04-15 11:48:58 +02:00
|
|
|
local get_biome_name = minetest.get_biome_name
|
|
|
|
local get_objects_inside_radius = minetest.get_objects_inside_radius
|
|
|
|
local get_connected_players = minetest.get_connected_players
|
|
|
|
local minetest_get_perlin = minetest.get_perlin
|
|
|
|
|
2021-04-11 00:10:27 +02:00
|
|
|
local math_random = math.random
|
2022-04-15 11:48:58 +02:00
|
|
|
local math_floor = math.floor
|
|
|
|
local math_ceil = math.ceil
|
|
|
|
local math_cos = math.cos
|
|
|
|
local math_sin = math.sin
|
|
|
|
local math_round = function(x) return (x > 0) and math_floor(x + 0.5) or math_ceil(x - 0.5) end
|
|
|
|
|
2022-07-17 05:42:45 +02:00
|
|
|
local vector_distance = vector.distance
|
2022-04-15 11:48:58 +02:00
|
|
|
local vector_new = vector.new
|
|
|
|
local vector_floor = vector.floor
|
|
|
|
|
|
|
|
local table_copy = table.copy
|
|
|
|
local table_remove = table.remove
|
|
|
|
|
|
|
|
local pairs = pairs
|
2022-08-29 20:59:17 +02:00
|
|
|
local dbg_spawn_attempts = 0
|
|
|
|
local dbg_spawn_succ = 0
|
2021-04-08 18:07:20 +02:00
|
|
|
-- range for mob count
|
2022-07-17 05:42:45 +02:00
|
|
|
local aoc_range = 136
|
|
|
|
|
|
|
|
local mob_cap = {
|
|
|
|
monster = 70,
|
|
|
|
animal =10,
|
|
|
|
ambient =15,
|
|
|
|
water = 5, --currently unused
|
|
|
|
water_ambient = 20, --currently unused
|
|
|
|
}
|
2021-04-08 12:04:36 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
--do mobs spawn?
|
|
|
|
local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false
|
2022-09-13 13:15:57 +02:00
|
|
|
local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
|
2022-09-13 13:23:29 +02:00
|
|
|
local logging = minetest.settings:get_bool("mcl_logging_mobs_spawn",true)
|
2021-04-08 12:04:36 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
local noise_params = {
|
|
|
|
offset = 0,
|
|
|
|
scale = 3,
|
|
|
|
spread = {
|
|
|
|
x = 301,
|
|
|
|
y = 50,
|
|
|
|
z = 304,
|
|
|
|
},
|
|
|
|
seed = 100,
|
|
|
|
octaves = 3,
|
|
|
|
persistence = 0.5,
|
|
|
|
}
|
2022-02-13 21:40:12 +01:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
-- THIS IS THE BIG LIST OF ALL BIOMES - used for programming/updating mobs
|
|
|
|
-- Also used for missing parameter
|
|
|
|
-- Please update the list when adding new biomes!
|
|
|
|
|
|
|
|
local list_of_all_biomes = {
|
|
|
|
|
|
|
|
-- underground:
|
|
|
|
|
|
|
|
"FlowerForest_underground",
|
|
|
|
"JungleEdge_underground",
|
|
|
|
"ColdTaiga_underground",
|
|
|
|
"IcePlains_underground",
|
|
|
|
"IcePlainsSpikes_underground",
|
|
|
|
"MegaTaiga_underground",
|
|
|
|
"Taiga_underground",
|
|
|
|
"ExtremeHills+_underground",
|
|
|
|
"JungleM_underground",
|
|
|
|
"ExtremeHillsM_underground",
|
|
|
|
"JungleEdgeM_underground",
|
2022-07-29 02:48:00 +02:00
|
|
|
"MangroveSwamp_underground",
|
2022-04-15 11:48:58 +02:00
|
|
|
|
|
|
|
-- ocean:
|
|
|
|
|
|
|
|
"RoofedForest_ocean",
|
|
|
|
"JungleEdgeM_ocean",
|
|
|
|
"BirchForestM_ocean",
|
|
|
|
"BirchForest_ocean",
|
|
|
|
"IcePlains_deep_ocean",
|
|
|
|
"Jungle_deep_ocean",
|
|
|
|
"Savanna_ocean",
|
|
|
|
"MesaPlateauF_ocean",
|
|
|
|
"ExtremeHillsM_deep_ocean",
|
|
|
|
"Savanna_deep_ocean",
|
|
|
|
"SunflowerPlains_ocean",
|
|
|
|
"Swampland_deep_ocean",
|
|
|
|
"Swampland_ocean",
|
|
|
|
"MegaSpruceTaiga_deep_ocean",
|
|
|
|
"ExtremeHillsM_ocean",
|
|
|
|
"JungleEdgeM_deep_ocean",
|
|
|
|
"SunflowerPlains_deep_ocean",
|
|
|
|
"BirchForest_deep_ocean",
|
|
|
|
"IcePlainsSpikes_ocean",
|
|
|
|
"Mesa_ocean",
|
|
|
|
"StoneBeach_ocean",
|
|
|
|
"Plains_deep_ocean",
|
|
|
|
"JungleEdge_deep_ocean",
|
|
|
|
"SavannaM_deep_ocean",
|
|
|
|
"Desert_deep_ocean",
|
|
|
|
"Mesa_deep_ocean",
|
|
|
|
"ColdTaiga_deep_ocean",
|
|
|
|
"Plains_ocean",
|
|
|
|
"MesaPlateauFM_ocean",
|
|
|
|
"Forest_deep_ocean",
|
|
|
|
"JungleM_deep_ocean",
|
|
|
|
"FlowerForest_deep_ocean",
|
|
|
|
"MushroomIsland_ocean",
|
|
|
|
"MegaTaiga_ocean",
|
|
|
|
"StoneBeach_deep_ocean",
|
|
|
|
"IcePlainsSpikes_deep_ocean",
|
|
|
|
"ColdTaiga_ocean",
|
|
|
|
"SavannaM_ocean",
|
|
|
|
"MesaPlateauF_deep_ocean",
|
|
|
|
"MesaBryce_deep_ocean",
|
|
|
|
"ExtremeHills+_deep_ocean",
|
|
|
|
"ExtremeHills_ocean",
|
|
|
|
"MushroomIsland_deep_ocean",
|
|
|
|
"Forest_ocean",
|
|
|
|
"MegaTaiga_deep_ocean",
|
|
|
|
"JungleEdge_ocean",
|
|
|
|
"MesaBryce_ocean",
|
|
|
|
"MegaSpruceTaiga_ocean",
|
|
|
|
"ExtremeHills+_ocean",
|
|
|
|
"Jungle_ocean",
|
|
|
|
"RoofedForest_deep_ocean",
|
|
|
|
"IcePlains_ocean",
|
|
|
|
"FlowerForest_ocean",
|
|
|
|
"ExtremeHills_deep_ocean",
|
|
|
|
"MesaPlateauFM_deep_ocean",
|
|
|
|
"Desert_ocean",
|
|
|
|
"Taiga_ocean",
|
|
|
|
"BirchForestM_deep_ocean",
|
|
|
|
"Taiga_deep_ocean",
|
|
|
|
"JungleM_ocean",
|
2022-07-29 02:48:00 +02:00
|
|
|
"MangroveSwamp_ocean",
|
|
|
|
"MangroveSwamp_deep_ocean",
|
2022-04-15 11:48:58 +02:00
|
|
|
|
|
|
|
-- water or beach?
|
|
|
|
|
|
|
|
"MesaPlateauFM_sandlevel",
|
|
|
|
"MesaPlateauF_sandlevel",
|
|
|
|
"MesaBryce_sandlevel",
|
|
|
|
"Mesa_sandlevel",
|
|
|
|
|
|
|
|
-- beach:
|
|
|
|
|
|
|
|
"FlowerForest_beach",
|
|
|
|
"Forest_beach",
|
|
|
|
"StoneBeach",
|
|
|
|
"ColdTaiga_beach_water",
|
|
|
|
"Taiga_beach",
|
|
|
|
"Savanna_beach",
|
|
|
|
"Plains_beach",
|
|
|
|
"ExtremeHills_beach",
|
|
|
|
"ColdTaiga_beach",
|
|
|
|
"Swampland_shore",
|
|
|
|
"MushroomIslandShore",
|
|
|
|
"JungleM_shore",
|
|
|
|
"Jungle_shore",
|
2022-07-29 02:48:00 +02:00
|
|
|
"MangroveSwamp_shore",
|
2022-04-15 11:48:58 +02:00
|
|
|
|
|
|
|
-- dimension biome:
|
|
|
|
|
|
|
|
"Nether",
|
2022-07-17 05:42:45 +02:00
|
|
|
"BasaltDelta",
|
|
|
|
"CrimsonForest",
|
|
|
|
"WarpedForest",
|
|
|
|
"SoulsandValley",
|
2022-04-15 11:48:58 +02:00
|
|
|
"End",
|
|
|
|
|
|
|
|
-- Overworld regular:
|
|
|
|
|
|
|
|
"Mesa",
|
|
|
|
"FlowerForest",
|
|
|
|
"Swampland",
|
|
|
|
"Taiga",
|
|
|
|
"ExtremeHills",
|
2022-07-17 15:33:06 +02:00
|
|
|
"ExtremeHillsM",
|
|
|
|
"ExtremeHills+_snowtop",
|
2022-04-15 11:48:58 +02:00
|
|
|
"Jungle",
|
|
|
|
"Savanna",
|
|
|
|
"BirchForest",
|
|
|
|
"MegaSpruceTaiga",
|
|
|
|
"MegaTaiga",
|
|
|
|
"ExtremeHills+",
|
|
|
|
"Forest",
|
|
|
|
"Plains",
|
|
|
|
"Desert",
|
|
|
|
"ColdTaiga",
|
|
|
|
"MushroomIsland",
|
|
|
|
"IcePlainsSpikes",
|
|
|
|
"SunflowerPlains",
|
|
|
|
"IcePlains",
|
|
|
|
"RoofedForest",
|
|
|
|
"ExtremeHills+_snowtop",
|
|
|
|
"MesaPlateauFM_grasstop",
|
|
|
|
"JungleEdgeM",
|
|
|
|
"JungleM",
|
|
|
|
"BirchForestM",
|
|
|
|
"MesaPlateauF",
|
|
|
|
"MesaPlateauFM",
|
|
|
|
"MesaPlateauF_grasstop",
|
|
|
|
"MesaBryce",
|
|
|
|
"JungleEdge",
|
|
|
|
"SavannaM",
|
2022-07-29 02:48:00 +02:00
|
|
|
"MangroveSwamp",
|
2022-04-15 11:48:58 +02:00
|
|
|
}
|
2022-02-13 21:40:12 +01:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
-- count how many mobs are in an area
|
2022-07-17 05:42:45 +02:00
|
|
|
local function count_mobs(pos,r,mob_type)
|
2021-04-08 08:07:15 +02:00
|
|
|
local num = 0
|
2022-07-17 05:42:45 +02:00
|
|
|
for _,l in pairs(minetest.luaentities) do
|
|
|
|
if l and l.is_mob and (mob_type == nil or l.type == mob_type) then
|
|
|
|
local p = l.object:get_pos()
|
|
|
|
if p and vector_distance(p,pos) < r then
|
|
|
|
num = num + 1
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
return num
|
|
|
|
end
|
2021-04-08 18:07:20 +02:00
|
|
|
|
2022-07-17 05:42:45 +02:00
|
|
|
local function count_mobs_total(mob_type)
|
2022-07-17 03:45:41 +02:00
|
|
|
local num = 0
|
|
|
|
for _,l in pairs(minetest.luaentities) do
|
|
|
|
if l.is_mob then
|
2022-07-17 05:42:45 +02:00
|
|
|
if mob_type == nil or l.type == mob_type then
|
|
|
|
num = num + 1
|
|
|
|
end
|
2022-07-17 03:45:41 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
return num
|
|
|
|
end
|
|
|
|
|
2021-04-08 08:07:15 +02:00
|
|
|
|
|
|
|
-- global functions
|
|
|
|
|
2022-05-25 14:44:49 +02:00
|
|
|
function mcl_mobs:spawn_abm_check(pos, node, name)
|
2021-04-08 08:07:15 +02:00
|
|
|
-- global function to add additional spawn checks
|
|
|
|
-- return true to stop spawning mob
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
Custom elements changed:
|
2021-04-08 12:48:25 +02:00
|
|
|
|
2021-04-08 08:07:15 +02:00
|
|
|
name:
|
|
|
|
the mobs name
|
|
|
|
|
2021-04-12 15:45:00 +02:00
|
|
|
dimension:
|
2021-04-08 08:07:15 +02:00
|
|
|
"overworld"
|
|
|
|
"nether"
|
|
|
|
"end"
|
|
|
|
|
|
|
|
types of spawning:
|
|
|
|
"water"
|
|
|
|
"ground"
|
|
|
|
"lava"
|
|
|
|
|
2021-04-08 12:48:25 +02:00
|
|
|
biomes: tells the spawner to allow certain mobs to spawn in certain biomes
|
|
|
|
{"this", "that", "grasslands", "whatever"}
|
|
|
|
|
|
|
|
|
|
|
|
what is aoc??? objects in area
|
2021-04-08 08:07:15 +02:00
|
|
|
|
|
|
|
WARNING: BIOME INTEGRATION NEEDED -> How to get biome through lua??
|
|
|
|
]]--
|
|
|
|
|
2021-04-08 18:07:20 +02:00
|
|
|
|
2021-04-08 08:07:15 +02:00
|
|
|
--this is where all of the spawning information is kept
|
2021-04-08 14:09:43 +02:00
|
|
|
local spawn_dictionary = {}
|
2022-04-15 11:48:58 +02:00
|
|
|
local summary_chance = 0
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-05-25 14:44:49 +02:00
|
|
|
function mcl_mobs:spawn_setup(def)
|
2022-04-15 11:48:58 +02:00
|
|
|
if not mobs_spawn then return end
|
2021-04-08 12:48:25 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
if not def then
|
|
|
|
minetest.log("warning", "Empty mob spawn setup definition")
|
|
|
|
return
|
|
|
|
end
|
2021-04-08 12:48:25 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
local name = def.name
|
|
|
|
if not name then
|
|
|
|
minetest.log("warning", "Missing mob name")
|
2021-04-08 08:07:15 +02:00
|
|
|
return
|
|
|
|
end
|
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
local dimension = def.dimension or "overworld"
|
|
|
|
local type_of_spawning = def.type_of_spawning or "ground"
|
|
|
|
local biomes = def.biomes or list_of_all_biomes
|
|
|
|
local min_light = def.min_light or 0
|
|
|
|
local max_light = def.max_light or (minetest.LIGHT_MAX + 1)
|
|
|
|
local chance = def.chance or 1000
|
|
|
|
local aoc = def.aoc or aoc_range
|
|
|
|
local min_height = def.min_height or mcl_mapgen.overworld.min
|
|
|
|
local max_height = def.max_height or mcl_mapgen.overworld.max
|
|
|
|
local day_toggle = def.day_toggle
|
|
|
|
local on_spawn = def.on_spawn
|
|
|
|
local check_position = def.check_position
|
|
|
|
|
2021-04-08 08:07:15 +02:00
|
|
|
-- chance/spawn number override in minetest.conf for registered mob
|
|
|
|
local numbers = minetest.settings:get(name)
|
|
|
|
if numbers then
|
|
|
|
numbers = numbers:split(",")
|
|
|
|
chance = tonumber(numbers[1]) or chance
|
|
|
|
aoc = tonumber(numbers[2]) or aoc
|
|
|
|
if chance == 0 then
|
2022-05-25 14:44:49 +02:00
|
|
|
minetest.log("warning", string.format("[mcl_mobs] %s has spawning disabled", name))
|
2021-04-08 08:07:15 +02:00
|
|
|
return
|
|
|
|
end
|
2022-05-25 14:44:49 +02:00
|
|
|
minetest.log("action", string.format("[mcl_mobs] Chance setting for %s changed to %s (total: %s)", name, chance, aoc))
|
2021-04-08 08:07:15 +02:00
|
|
|
end
|
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
if chance < 1 then
|
|
|
|
chance = 1
|
|
|
|
minetest.log("warning", "Chance shouldn't be less than 1 (mob name: " .. name ..")")
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
spawn_dictionary[#spawn_dictionary + 1] = {
|
|
|
|
name = name,
|
|
|
|
dimension = dimension,
|
2022-07-17 05:42:45 +02:00
|
|
|
type_of_spawning = type_of_spawning,
|
2022-04-15 11:48:58 +02:00
|
|
|
biomes = biomes,
|
|
|
|
min_light = min_light,
|
|
|
|
max_light = max_light,
|
|
|
|
chance = chance,
|
|
|
|
aoc = aoc,
|
|
|
|
min_height = min_height,
|
|
|
|
max_height = max_height,
|
|
|
|
day_toggle = day_toggle,
|
|
|
|
check_position = check_position,
|
|
|
|
on_spawn = on_spawn,
|
|
|
|
}
|
|
|
|
summary_chance = summary_chance + chance
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-05-25 14:44:49 +02:00
|
|
|
function mcl_mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_light, max_light, interval, chance, aoc, min_height, max_height, day_toggle, on_spawn)
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
-- Do mobs spawn at all?
|
|
|
|
if not mobs_spawn then
|
|
|
|
return
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
-- chance/spawn number override in minetest.conf for registered mob
|
|
|
|
local numbers = minetest.settings:get(name)
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
if numbers then
|
|
|
|
numbers = numbers:split(",")
|
|
|
|
chance = tonumber(numbers[1]) or chance
|
|
|
|
aoc = tonumber(numbers[2]) or aoc
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
if chance == 0 then
|
2022-05-25 14:44:49 +02:00
|
|
|
minetest.log("warning", string.format("[mcl_mobs] %s has spawning disabled", name))
|
2022-04-15 11:48:58 +02:00
|
|
|
return
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-05-25 14:44:49 +02:00
|
|
|
minetest.log("action", string.format("[mcl_mobs] Chance setting for %s changed to %s (total: %s)", name, chance, aoc))
|
2021-04-08 18:07:20 +02:00
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
|
|
|
--load information into the spawn dictionary
|
2021-04-08 15:52:50 +02:00
|
|
|
local key = #spawn_dictionary + 1
|
|
|
|
spawn_dictionary[key] = {}
|
|
|
|
spawn_dictionary[key]["name"] = name
|
|
|
|
spawn_dictionary[key]["dimension"] = dimension
|
|
|
|
spawn_dictionary[key]["type_of_spawning"] = type_of_spawning
|
|
|
|
spawn_dictionary[key]["biomes"] = biomes
|
|
|
|
spawn_dictionary[key]["min_light"] = min_light
|
|
|
|
spawn_dictionary[key]["max_light"] = max_light
|
|
|
|
spawn_dictionary[key]["chance"] = chance
|
|
|
|
spawn_dictionary[key]["aoc"] = aoc
|
|
|
|
spawn_dictionary[key]["min_height"] = min_height
|
|
|
|
spawn_dictionary[key]["max_height"] = max_height
|
|
|
|
spawn_dictionary[key]["day_toggle"] = day_toggle
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
summary_chance = summary_chance + chance
|
2021-04-08 08:07:15 +02:00
|
|
|
end
|
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
local two_pi = 2 * math.pi
|
|
|
|
local function get_next_mob_spawn_pos(pos)
|
|
|
|
local distance = math_random(25, 32)
|
|
|
|
local angle = math_random() * two_pi
|
|
|
|
return {
|
|
|
|
x = math_round(pos.x + distance * math_cos(angle)),
|
|
|
|
y = pos.y,
|
|
|
|
z = math_round(pos.z + distance * math_sin(angle))
|
|
|
|
}
|
2021-04-08 08:07:15 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
local function decypher_limits(posy)
|
2022-04-15 11:48:58 +02:00
|
|
|
posy = math_floor(posy)
|
2021-04-08 08:07:15 +02:00
|
|
|
return posy - 32, posy + 32
|
|
|
|
end
|
2021-04-08 15:52:50 +02:00
|
|
|
|
|
|
|
--a simple helper function for mob_spawn
|
|
|
|
local function biome_check(biome_list, biome_goal)
|
2022-04-15 11:48:58 +02:00
|
|
|
for _, data in pairs(biome_list) do
|
2021-04-08 15:52:50 +02:00
|
|
|
if data == biome_goal then
|
|
|
|
return true
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
end
|
|
|
|
|
2021-04-08 15:52:50 +02:00
|
|
|
return false
|
|
|
|
end
|
2021-04-12 15:45:00 +02:00
|
|
|
|
2022-04-29 01:28:00 +02:00
|
|
|
local function is_farm_animal(n)
|
|
|
|
return n == "mobs_mc:pig" or n == "mobs_mc:cow" or n == "mobs_mc:sheep" or n == "mobs_mc:chicken" or n == "mobs_mc:horse" or n == "mobs_mc:donkey"
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2022-07-05 03:49:46 +02:00
|
|
|
local function get_water_spawn(p)
|
|
|
|
local nn = minetest.find_nodes_in_area(vector.offset(p,-2,-1,-2),vector.offset(p,2,-15,2),{"group:water"})
|
|
|
|
if nn and #nn > 0 then
|
|
|
|
return nn[math.random(#nn)]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2022-08-29 20:59:17 +02:00
|
|
|
local function spawn_check(pos,spawn_def)
|
|
|
|
if not spawn_def then return end
|
|
|
|
dbg_spawn_attempts = dbg_spawn_attempts + 1
|
|
|
|
local dimension = mcl_worlds.pos_to_dimension(pos)
|
|
|
|
local mob_type = minetest.registered_entities[spawn_def.name].type
|
|
|
|
local gotten_node = get_node(pos).name
|
|
|
|
local gotten_biome = minetest.get_biome_data(pos)
|
|
|
|
if not gotten_node or not gotten_biome then return end
|
|
|
|
gotten_biome = get_biome_name(gotten_biome.biome) --makes it easier to work with
|
|
|
|
|
|
|
|
local is_ground = minetest.get_item_group(gotten_node,"solid") ~= 0
|
|
|
|
if not is_ground then
|
|
|
|
pos.y = pos.y - 1
|
|
|
|
gotten_node = get_node(pos).name
|
|
|
|
is_ground = minetest.get_item_group(gotten_node,"solid") ~= 0
|
|
|
|
end
|
|
|
|
pos.y = pos.y + 1
|
2022-09-06 12:45:38 +02:00
|
|
|
local has_room = #minetest.find_nodes_in_area(pos,vector.offset(pos,0,1,0),{"air"}) or 0 >= 2
|
2022-08-29 20:59:17 +02:00
|
|
|
local is_water = get_item_group(gotten_node, "water") ~= 0
|
|
|
|
local is_lava = get_item_group(gotten_node, "lava") ~= 0
|
|
|
|
local is_leaf = get_item_group(gotten_node, "leaves") ~= 0
|
|
|
|
local is_bedrock = gotten_node == "mcl_core:bedrock"
|
|
|
|
local is_grass = minetest.get_item_group(gotten_node,"grass_block") ~= 0
|
|
|
|
local mob_count_wide = count_mobs(pos,aoc_range,mob_type)
|
|
|
|
local mob_count = count_mobs(pos,32,mob_type)
|
|
|
|
|
|
|
|
if pos and spawn_def
|
|
|
|
and mob_count_wide < (mob_cap[mob_type] or 15)
|
|
|
|
and mob_count < 5
|
|
|
|
and pos.y >= spawn_def.min_height
|
|
|
|
and pos.y <= spawn_def.max_height
|
|
|
|
and spawn_def.dimension == dimension
|
|
|
|
and biome_check(spawn_def.biomes, gotten_biome)
|
|
|
|
and (is_ground or spawn_def.type_of_spawning ~= "ground")
|
|
|
|
and (spawn_def.type_of_spawning ~= "ground" or not is_leaf)
|
2022-09-06 12:45:38 +02:00
|
|
|
and (spawn_def.type_of_spawning ~= "ground" or has_room)
|
2022-08-29 20:59:17 +02:00
|
|
|
and (spawn_def.check_position and spawn_def.check_position(pos) or true)
|
|
|
|
and (not is_farm_animal(spawn_def.name) or is_grass)
|
|
|
|
and (spawn_def.type_of_spawning ~= "water" or is_water)
|
2022-09-13 13:23:29 +02:00
|
|
|
and ( not spawn_protected or not minetest.is_protected(s, "") )
|
|
|
|
and not is_bedrock then
|
2022-08-29 20:59:17 +02:00
|
|
|
--only need to poll for node light if everything else worked
|
|
|
|
local gotten_light = get_node_light(pos)
|
|
|
|
if gotten_light >= spawn_def.min_light and gotten_light <= spawn_def.max_light then
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
2022-07-17 03:45:41 +02:00
|
|
|
|
2022-09-09 23:31:02 +02:00
|
|
|
function mcl_mobs.spawn(pos,id)
|
|
|
|
local def = minetest.registered_entities[id] or minetest.registered_entities["mobs_mc:"..id] or minetest.registered_entities["extra_mobs:"..id]
|
|
|
|
if not def or (def.can_spawn and not def.can_spawn(pos)) or not def.is_mob then
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
return minetest.add_entity(pos, def.name)
|
|
|
|
end
|
|
|
|
|
|
|
|
|
2022-07-17 02:20:12 +02:00
|
|
|
local function spawn_group(p,mob,spawn_on,group_max,group_min)
|
|
|
|
if not group_min then group_min = 1 end
|
2022-07-17 05:42:45 +02:00
|
|
|
local nn= minetest.find_nodes_in_area_under_air(vector.offset(p,-5,-3,-5),vector.offset(p,5,3,5),spawn_on)
|
2022-07-17 02:20:12 +02:00
|
|
|
local o
|
2022-08-29 20:59:17 +02:00
|
|
|
table.shuffle(nn)
|
2022-07-10 12:16:19 +02:00
|
|
|
if not nn or #nn < 1 then
|
|
|
|
nn = {}
|
|
|
|
table.insert(nn,p)
|
|
|
|
end
|
2022-07-17 02:20:12 +02:00
|
|
|
for i = 1, math.random(group_min,group_max) do
|
2022-07-17 05:42:45 +02:00
|
|
|
local sp = vector.offset(nn[math.random(#nn)],0,1,0)
|
2022-08-29 20:59:17 +02:00
|
|
|
if spawn_check(nn[math.random(#nn)],mob) then
|
|
|
|
if mob.type_of_spawning == "water" then
|
|
|
|
sp = get_water_spawn(sp)
|
|
|
|
end
|
2022-09-09 22:41:04 +02:00
|
|
|
o = mcl_mobs.spawn(sp,mob.name)
|
2022-08-29 20:59:17 +02:00
|
|
|
if o then dbg_spawn_succ = dbg_spawn_succ + 1 end
|
2022-07-17 05:42:45 +02:00
|
|
|
end
|
2022-07-05 12:55:14 +02:00
|
|
|
end
|
2022-07-17 02:20:12 +02:00
|
|
|
return o
|
2022-07-05 12:55:14 +02:00
|
|
|
end
|
|
|
|
|
2022-09-09 23:31:02 +02:00
|
|
|
mcl_mobs.spawn_group = spawn_group
|
2022-08-01 05:35:47 +02:00
|
|
|
|
|
|
|
minetest.register_chatcommand("spawn_mob",{
|
|
|
|
privs = { debug = true },
|
|
|
|
func = function(n,param)
|
|
|
|
local pos = minetest.get_player_by_name(n):get_pos()
|
|
|
|
if mcl_mobs.spawn(pos,param) then
|
2022-09-10 04:30:26 +02:00
|
|
|
return true, param.." spawned at "..minetest.pos_to_string(pos),
|
|
|
|
minetest.log("action", n.." spawned "..param.." at "..minetest.pos_to_string(pos))
|
2022-08-01 05:35:47 +02:00
|
|
|
end
|
|
|
|
return false, "Couldn't spawn "..param
|
|
|
|
end
|
|
|
|
})
|
|
|
|
|
2021-04-10 23:54:40 +02:00
|
|
|
if mobs_spawn then
|
Merge NEW MOBS by @jordan4ibanez from `mineclone5` branch
commit cd472337985d6e885eef019185f0965d13148e7f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 22:02:20 2021 -0400
Fix rabbit rotation
commit 0f4628db09d68f69a997f98dcd462f29e7ecbe06
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 20:48:42 2021 -0400
Bring mob spawning variable to the top of the spawning.lua file so it's easier to find
commit ddb33acf0d85f29dddb8bdab7a3a7030f9f595be
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 20:46:45 2021 -0400
Add in unused head code elements
commit e52aab45c07c22605993126c4a8ba39c8318d904
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 20:23:46 2021 -0400
Implement no-op head operations for enderman
commit ac852309388e1f9a7dec294440975c7dc89e498c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 20:08:45 2021 -0400
Add in chicken head code with additional pitch modifier
commit f57c4709ac74d1e2b0b683bebc706a1a3e59db73
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 19:54:11 2021 -0400
Comment out code that causes mobs to glitch push players in mcl_playerplus
commit b6c9a1c423a9831cb3684e6a7e1b57163d6d4ab4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 19:51:11 2021 -0400
Fix creeper head
commit a8152760b96ca3a9f142b006d2d888da0ebeff6a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 19:44:15 2021 -0400
Integrate more switches into internal api elements of head code
commit 6a38198e97fd0b573b3b9e590177977d900d5b14
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 18:24:10 2021 -0400
Add in swap_y_with_x and reverse_head_yaw to flesh out head code api element
commit d28e81bc9fc1f11b10da524d6874e8e1ee4a956d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 17:54:14 2021 -0400
Add in mobs look pitch
commit 5a2773ea1abb6c8706c477802aae2fa60704714c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 17:48:41 2021 -0400
Add in basics of head code yaw
commit 555935ff3d35d4ac28dad42f5facac0bbfe9b1c9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 16:43:23 2021 -0400
Implement basic fall damage
commit 7e3b69348e405425712cf8196907a913be10b62e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 16:11:45 2021 -0400
Add secondary existence check after main logic has been executed to prevent future crashes
commit c898e1e4db3b866ddc4ff391ff89798397775fbf
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 15:59:00 2021 -0400
Update sheep.lua
commit 9b5c9dc8ae9d1221340d1c72e4f48f3212a07fb7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 04:31:48 2021 -0400
Make farmable mobs/food mobs a lot less rare
commit 5e6653ff651a65e6bfc4057cb5de39f09e9b9cca
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 04:19:02 2021 -0400
Implement mob cramming
commit 1616cb7538141cd38485b4bf59a7b8b049ddd3f0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 04:09:35 2021 -0400
Fix nametags
commit a3ff108cd4b71cd823518eae0186cbf1d819267e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 04:03:06 2021 -0400
Make mobs walk up stairs/slabs properly, yet not glitch out when jumping over solid nodes
commit df364eed286fced64f3c4bff897fcfe91a9dd540
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 01:45:35 2021 -0400
Implement basics of head movement and fix walking mobs flying away after floating
commit bac191293bc23405bfc02ef0795f0296fdaeb95a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 01:45:03 2021 -0400
Fix clientside guessing making floating go crazy client side
commit b7c7c2627beba086c922df0a20939b67ae1eb464
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 01:44:46 2021 -0400
Fix parrots not drowning
commit 38c22f277db652226ce9911e8bffbb8e8b8bc398
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 01:24:19 2021 -0400
Add pop sound when baby mob is born
commit f83ccdb2ed5974486a030196f9b31d0490dcdff3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 01:22:43 2021 -0400
Add in breeding and feeding baby mob sounds
commit 7733e05a120cb07ed37c351956c1f451da3658b1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 01:14:48 2021 -0400
Add in random sounds/hurt/death sounds and stop mobs from reviving on server restart again
commit 0a380265c888c64386406187b34914438cdff161
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 00:16:54 2021 -0400
Fix dead-alive mobs and add in hurt/die sound
commit 8d3eff0c16abeff9fbce2f9d4af2b64931765696
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 25 00:06:12 2021 -0400
Enable mob drowning
commit 56086bf02be689ba83ba3ccf4858429ad4d6a10b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 23:33:46 2021 -0400
Fix villager
commit 079811984cd952714e6cf85297c91830c0790a1d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 23:29:56 2021 -0400
Make every mob besides spiders get slowed down by cobwebs like players
commit 7e8e63b0e37300b16a4556aa45758d737514316e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 23:15:40 2021 -0400
If mob is in daylight and ignites_in_daylight = true, make mob burn
commit 49b01dca4fcea165314c1548f6c3e673a5de0bd3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 22:28:26 2021 -0400
Make mobs drop xp on death
commit 3d5cceab76768e360e3ea958c71bcf79e9cc2eec
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 22:21:58 2021 -0400
Fix ghast strange behavior in the nether
commit a73e5b57c02275a37b98dc9c80cf35a8c782d9f7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 22:14:25 2021 -0400
Make pitch movement for fly/swim mobs more dynamic and make ghasts randomly fly around when attacking
commit b401b50c045830386c1c06c22be2232bda3e5b61
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 21:15:42 2021 -0400
Give mobs 6 seconds of memory to prevent strange behavior when player hides behind something
commit 807fb6966d747550da276b264e8e3bf376b332ab
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 20:27:37 2021 -0400
Make spiders climb up walls, fix problems with mob following freaking out when under, fix spider collisionbox
commit 11b5684a90a7779986b5685d899a55a606922a0f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 20:05:14 2021 -0400
Remove wolf-dog shift click breeding, and implement better logic
commit 41bfaae370729b7409d5dea2cc65a6f5c83979ac
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 20:02:59 2021 -0400
Allow putting chest on carpeted llama by owner, enable swapping carpets
commit 8c855f5b0955ebce15a1aaf4c17e407b5cad7ae8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 19:29:37 2021 -0400
Add in llama carpets
commit e0185a93113136862b24ad06bea75f1b2e24901f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 18:43:17 2021 -0400
Fix pig logic issue
commit c2cb15a47f75674afaac721217384c8d7ead1c57
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 18:36:22 2021 -0400
Fix horse breeding
commit 39f7d0cf3cc7d33d786761376a035a31e434434f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 18:18:53 2021 -0400
Update api.txt
commit 3e9bbca91400e0f587aef13df1ece7d8071b188a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 18:06:24 2021 -0400
Fix enderman crashing
commit 81713a342d8038c2b51140dbd4bc00f1440b73e8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:38:50 2021 -0400
Allow tamed wolves to be shift click bred
commit a27e6731cd97a1e41861d8a2acbdd4d2d530c220
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:29:30 2021 -0400
Make sheep breedable
commit efce97c1723ac25e9dabdfd9572781a6d50f0821
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:27:17 2021 -0400
Make llamas shift click breedable
commit 53c96cae2d28c3a6f4642b8a6d5b72365d32267d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:26:45 2021 -0400
Make pigs shift click breedable
commit dbe712bc17cc875c5e9b4b1a919880b0f6893ea1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:23:33 2021 -0400
Make llama breedable
commit 0d4d85bac6b3412a2fec3f01ebc5b3ff6c294173
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:19:41 2021 -0400
Fix horse literally blinding you following you
commit 6f2e2ab4c57fe651dd90b4897e4f10673da1de3a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:17:22 2021 -0400
Make chicken breedable
commit 3649e5f6f50c917e3c29bbd0b95327e3667ae1ef
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:17:09 2021 -0400
Make horse breedable
commit 2dab0773dffd40cb166c8a14ad79035ac898d4dc
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 24 00:00:21 2021 -0400
Remove unused breedable api call
commit 0568c14a435e663dccc1a42ae999a76d0936f153
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 23:59:35 2021 -0400
Fix timer and make mooshroom breedable
commit 531253008a13559cdab63f420e9d35c78b382c95
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 23:56:59 2021 -0400
Complete mob breeding, make cows breedable
commit 79cb6ddc4923ea8a009b2810efe785cf3720c63f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 22:35:35 2021 -0400
Fix lua locals in environment.lua
commit 6eb3eef21561ddf2091682f3703fa9a23e35915e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 22:34:40 2021 -0400
Fix typo in function
commit c37a82d4a2589d372f88b5101918858c2d210e57
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 22:03:29 2021 -0400
Add comments
commit ed9d629b99a9f873cebfa8e45239271a81a8025c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 21:59:42 2021 -0400
Add in mob following for cows
commit fcfd6b9d19bbc1e894b8dafed490e04102c87878
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 21:14:23 2021 -0400
Set up basics for breeding mechanics
commit 5ee6cf6c9b3b9da36830c8a58f105d289dfbe54c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 19:49:35 2021 -0400
Implement mob despawner/mob limiter
commit 19c8dd1dd48532bfb07eac133cd11b702ad74de7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 18:41:41 2021 -0400
Stop hostile mobs from falling through water when stunned
commit 31ded5e40fc97a7afd252fd74154183afaf1f568
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 18:34:20 2021 -0400
Re-implement neutral mob switch
commit 13c321e8f2c8cb43460093852d44ddae7edec0c1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 18:03:01 2021 -0400
Re-enable mob spawning
commit ea6912c980952bed2a0b5e62009e0a2639d75d75
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:44:49 2021 -0400
Don't do knockback effect for mobs when hurt by a rider
commit 8dafac50a865f189074272303b83f37391c11c3c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:37:20 2021 -0400
Make mobs run away slightly faster
commit 3560bda4a5a8be026c5d50eb8ddeca9ed45e0b8e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:29:23 2021 -0400
Remove unused code and variables from mob punch
commit 9720986c4d30bf8fcd2cf1117d80eea06da5332a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:27:08 2021 -0400
Fix punching a mob breaking it's velocity
commit dc7592528cf948556e4e925310e830648b52dff1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:23:00 2021 -0400
Add red tint hurt effect
commit 304cbed447adbcccff246f242d18d51fc010df35
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:12:02 2021 -0400
Make mobs that should be skittish, skittish
commit af4c42fea7112ada76fd9b273f771611532bdcf9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 17:10:44 2021 -0400
Add skittish behavior (runaway from punch) and fix ocelot
commit 8daf197fb899a0bee8f61aad4ccedec1108f5f92
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:52:07 2021 -0400
Fix iron golem rotation
commit c138050e0b877f5dc987959efe4acbe17ffd86f2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:45:12 2021 -0400
Make iron golem neutral and protective, fix rotation
commit 36d5af1d15b432d84e24e161b78d4b41ce2731bd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:35:16 2021 -0400
Stop dead mobs from getting in the way of fighting other mobs
commit 73b4d3c1d2c74cb5bd5bb23604ce1d74e183cb0d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:31:13 2021 -0400
stop projectile mobs from being completely disabled while stunned
commit eb7ae5e10e731fc949a9a4184e02a39103f83a1e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:28:30 2021 -0400
Fix random crash
commit c831da2c02253450df965930cbfcd539b820f3b9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:22:34 2021 -0400
Fix mobs not making hit sound when hit by node
commit d5a38fef58c1862490c9f32238ec83cf1a2c2d5c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:19:37 2021 -0400
Add in new mob punched sounds
commit 8e7ce5a72ae3e7cedf985a414c64ca259bcd6136
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 16:04:01 2021 -0400
Add in a visual for horse taming (hearts)
commit 189c0ad157a8871d51045effcded0662aff7b1af
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 15:53:01 2021 -0400
Half finish horse (riding logic, etc)
commit f64f8e31e3ba8e7a14b22d084be5ef584895242d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 14:50:38 2021 -0400
Fix llama blaze and ghast projectile sprites
commit 58bee2a2dd1b4d6d3d1873d3ac566be9e0aa7930
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 14:43:00 2021 -0400
Fix projectile tails clipping through sprite
commit 16cc7e37d2fc83e50d4e2c380cef05224dbbed38
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 14:34:59 2021 -0400
Randomize projectile cooldown timer
commit 8eb9ba12cef918cb116aea8eaea5a1e757123b01
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 14:33:40 2021 -0400
Fix crash when mob collides with nil entity
commit 5d59583583462563f7d65747a198b0d6d8ed34fc
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 14:10:12 2021 -0400
Massive overhaul to projectile mobs with custom projectile function, make llamas spit
commit f6fa90096dfdb9d21b6f52968daa60943a07470e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 13:35:30 2021 -0400
Fix enderman teleport attack
commit 4fb9e69e41a8c2ee91c659acb0b11fc76a6a97fe
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 13:27:17 2021 -0400
Make enderman become hostile when stared at, freeze when attacking when stared at
commit 99f13f84b563c1962c285b2e9973aec8a5d079d7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 13:13:23 2021 -0400
Half-fix enderman
commit dd76b15c501a1a458f2fa112b29784e26c3140bd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 13:06:57 2021 -0400
Make ghasts not insta-kill
commit b6f19699e9059a382421f55ac9ee5b642e7751a6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 13:06:17 2021 -0400
Make enderdragon half work
commit 4efec1ef58ba4afe4692a22a361079b5026a7de3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 23 12:55:11 2021 -0400
Add in chicken slow falling
commit 08956664073078fd896add1e57ff0a524de2a32f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 23:36:58 2021 -0400
Fix random crash with mixed mob ally data types
commit 408296140a4fe0c785f5fb4760899fdb3851fe00
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 23:30:32 2021 -0400
Fix and overhaul wolves
commit aac1e1933677d119b52c25a64b3ee6c77e16e770
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 23:18:33 2021 -0400
Implement rotation locking when standing, fix rotation unlock/lock for fly/swim mobs
commit fa059b5df245e81d71d73bbc87b51c59cd47a876
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 22:59:03 2021 -0400
Fix ghast's eyeheight
commit 2e3e92e39337e5c4ecba13855f134af1bd672ae6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 22:58:32 2021 -0400
Fix ghast's insane difficulty
commit 11bcf3aa34e85dcc19142258ca2c4abaf963b806
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 22:51:13 2021 -0400
Add attributes to epCode
commit 2099be43ea25740a402587f40b3004f6ef2d8c1d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 22:50:14 2021 -0400
Update to epCode's fixed version of ghast model
commit 5037ec3736a564157408df12699c91df17c934b6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 22:40:16 2021 -0400
Fix ghasts horrible collisionbox
commit 0a8fff65249610aba7fef7e9675bf28469265f29
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 22:08:54 2021 -0400
Add in mob criticals when falling
commit afdcada1fd6f7c8cbe68b0fd1486d6d92f3d12f7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 21:46:13 2021 -0400
Fix endermite
commit 5d876725c599b060c5150b0508f21b6a83001f9a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 21:45:00 2021 -0400
Fix bats
commit ef0d52a2df9a3d2d2c1e59b12084017c405bc398
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 21:41:54 2021 -0400
Update backup_code_api.lua
commit 8142f7e51214672292d3bffe3fa8119eb8a1cf1c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 21:36:42 2021 -0400
Add in mob death
commit ebf27866ca3bb02c726d4729c0666ee28e20a3dd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 21:12:08 2021 -0400
Fix typo and error in animation.lua
commit 3fe8d2d3c59ca6c173817a9d2d6b48e3549acd57
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 20:30:50 2021 -0400
Add file death_logic.lua
commit b73ab976a1115044bc336f9e3f181ecf6e75cc06
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 20:25:58 2021 -0400
Implement framework for mob death
commit 8530e6ee368f510581c618666613432f25266ce5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 20:20:56 2021 -0400
Make mob punching time based
commit e1812b2cdba132afec9ed6cdc45ee9f078806264
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 20:12:02 2021 -0400
Reset pause timer to 0
commit 991bba0a1d611cf545020c9129fdcbc4806e73c6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 20:10:01 2021 -0400
Add comments into ai.lua
commit f9a7144b658f747be895bb6a8b69c8a0124fdd2a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 20:07:30 2021 -0400
Implement ability to hurt mobs
commit 45790c0be0eec380e281a687a1ff03ea1f114143
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 19:12:02 2021 -0400
Re-enable mob punching (broken)
commit 31a791c33b19d76350993d844747a0c51a77382c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 18:20:58 2021 -0400
Undo debug.txt spam from mob spawning
commit d0d128c1d8f84e8de590e34adfe0265556ccd3e1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 18:18:57 2021 -0400
Break infinite loop if unable to find any mob to spawn
commit ee905642c2cdfaa3be3eb5c2af7ec75599ffd41e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 17:56:38 2021 -0400
Add temporary warning debug to spawning algorithm output
commit 2cef9e7cca2e70e544eb3068a0e3e36487cab669
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 00:39:32 2021 -0400
Optimize mob spawning even further with additional lua locals
commit edb1939649c62a2b486e1c04c5af27458f978388
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 00:27:35 2021 -0400
Fix mob_counter in mob spawning limiter
commit 7c1adeab459d452ac016108b588957082c1347c1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 22 00:20:57 2021 -0400
Hyper-optimize mob spawning
commit fbe3ccc5c05b5d5141737d3a73df3e4d14a33a33
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 23:28:38 2021 -0400
Delete current state of things comment
commit 5e15af260bed13b07b295f558f5cb05bedaa7eae
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 23:25:19 2021 -0400
Fix pig rotation
commit 6aa636449211b1bbec1297723281f72b4c76c4da
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 23:25:10 2021 -0400
Fix sheep rotation
commit 29305f548db88b0b895ec747ebfbc092c51c4762
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 15:08:35 2021 -0400
Overhaul arrow register, implement basic blaze, break parts of arrow register for now, remove fallback for detecting players
commit 08c90c34e83c498ee2cc883a2cad9b98a269a850
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 13:05:46 2021 -0400
Make parrots and squids work with tilt fly/swim
commit 91099c3be93689c2569f838a63e75e38ca382162
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 13:01:14 2021 -0400
Fix auto-true statement for tilt fly/swim
commit 71c34823bc87b0892d4450b877fb1c78cd6ad416
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 12:56:36 2021 -0400
Make tilt flying/swimming dynamic
commit 20886f54bb8887fb88ce0e0e0c6f28a789868740
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 12:48:23 2021 -0400
Make shooty mobs jump
commit ebd995fbd2eb089a37b659e9ae87c86562e3ed69
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 12:45:02 2021 -0400
Simplify skeleton arrow damage calculation
commit c9f71d66f52f2e80fea6cd01fcb2db30ae399c39
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 12:42:34 2021 -0400
Implement skeletons/strays
commit 99e808296b81f37a9e01d4b4beb02120526bb4e9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 12:17:51 2021 -0400
Add missing skeleton/stray run animation
commit 74094938bb0918df12ffa778c95b966d7bd6c9f3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 12:10:29 2021 -0400
Fix crash with non-punch attack mobs in collision
commit 6bd279255c7e4b5623afa39caae8f988127f7ac3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 11:50:22 2021 -0400
Fully implement zombie pigmen
commit 964ce9ccf7101aef387bdd5ec2213ba4ac361a51
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 11:42:01 2021 -0400
Temporarily disable spawn eggs from setting owner
commit 5062d56a5d89346234f6125848799f32915b31a4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 11:00:02 2021 -0400
Implement neutral mob mechanics and partial implement of zombie pigmen
commit b0b1ec9436776fdc89edaf3046499a9e2cfaed0f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 10:53:20 2021 -0400
Implement zombie pigmen and make them turn hostile when punched
commit f1dc2864425bab2eed2f5bec7b7ccd0307145b1f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 10:23:51 2021 -0400
Dump mob_punch from backup_code_api.lua back into interaction.lua
commit cc2a0ae52cefc388d18c9d106ef70fc0718f5e40
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 10:21:11 2021 -0400
Complete charged creeper
commit 486959515ca13ba0d5756ba5d930ff43e9d135b5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 21 10:20:31 2021 -0400
Make creepers even more dangerous
commit 576621169b468f317cf32d6d0be391252a033d3a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 23:26:18 2021 -0400
Make creepers and zombies even harder
commit 2c87bd19f3c6a4a5a1a3b88a45cd673ecccb838b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 23:14:53 2021 -0400
Overhaul zombie villager
commit 1ed3377559c4690fa19488f526bcaf97d5ff94b1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 23:11:18 2021 -0400
Add punch mobs knockback to players when hit
commit 8c9356a18cb60cd28691e3782723df763b75a1fa
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 22:58:39 2021 -0400
Implement eye_height and viewing range for hostile mobs, along with making punchy mobs jump over nodes
commit a05ebd7cc29c96b622dbc043529513b07d5cf47b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 22:44:34 2021 -0400
Add informative text art
commit 60ac3058ce1e3e05caa87c18bdf95c78a71ed750
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 22:42:51 2021 -0400
Make zombies more difficult
commit 751c4c2d995a011a3298d374c77b9c4567ed2fa1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 22:41:13 2021 -0400
Integrate mob punching into collision detection
commit 6b52b945165a8501e09ca70c18514049df194c05
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 22:30:34 2021 -0400
Start setting up hostile punch attack type
commit d371d6fdc9cb85e140399eafb89f15195f72d09f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 22:04:54 2021 -0400
Adjust creeper explosion settings
commit fabd4d64e6745b9ea8c4bb1a76c190c2d66576be
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 21:35:19 2021 -0400
Slow down creeper type mobs explosion buildup
commit bf367fffd054fe180dbc6d7f46e20e286d68bb09
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 21:34:18 2021 -0400
Add in sound_handling and make explosion type mobs make their attack sound before explosion animation
commit 0b763f54b55ea47b7889816612759447bfb50422
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 21:00:36 2021 -0400
Finish creeper movement ai and move jump_check into environment
commit cd6f07537f64bdbe7573642982ec24ac3fb19ec1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 20:43:45 2021 -0400
Make creepers even more deadly
commit 9678b556e17b124f841b0019b3a31880a415bd11
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 20:33:30 2021 -0400
Fix crashes when trying to collision detect a removed mob
commit cdb840609dc2586b31a1e44c8c1004379ef37979
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 20:19:55 2021 -0400
Add in creeper basic prototype
commit 008d670ed9006d918b1ed1698a5b644de27191b1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 17:10:51 2021 -0400
Remove wandering from ai
commit 491ef6c8f818e43ef0545963eb27b5476c95ea28
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 16:48:20 2021 -0400
Add in auto mob removal if something goes horribly wrong
commit 348df0fcecc2709fe088493d5665112827f08129
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 16:46:10 2021 -0400
Rename detect_players_in_area to detect_closest_player_within_radius
commit ac08c6991c0ce7f9bb8d9de5880ec64a7882c3e7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 16:39:05 2021 -0400
Add in detect_players_in_area
commit 3d776138e97b904c9b299119ae9b9a8a2811ae7a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 20 14:55:22 2021 -0400
Start implementing creeper ai
commit 85e531bf106df326b2ca470b5a94aeb06f92d4d6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 18 21:24:31 2021 -0400
Remove unneeded mobs:protect from code
commit 4d589dfb2aa10cb664b4d3b3471960e6d648b92c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 18 21:22:39 2021 -0400
Remove literally unneeded mobs:capture_mob
commit 39985aa558d9f43a6a2e82fb6d59ad0ca8b6324d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 18 21:22:21 2021 -0400
Up fallback max xp to 3
commit 1920ddf91530a7c033c8288cd3a752f3ee7ba850
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 18 21:02:03 2021 -0400
Change all enemy attack info to more workable and understandable attacks
commit 719bb2a3c96ca020f8f828959e377831f47cd27b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 18:21:33 2021 -0400
Add in prototype jump-only mobs api
commit db87b8e0a37cd15ef7931a76d21bbb190a158205
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 17:09:57 2021 -0400
fix chicken rotation
commit e2987245fd6c6ee75383ea92da30e9fc5e10ad1e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 17:00:34 2021 -0400
Balance out collision forces for mobs
commit 3cf263d292f9fc5a7a18fafa2aa1fbc8e1840a0a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 16:23:38 2021 -0400
Add in dynamic pitch in flying/swimming mobs
commit 5ade34115cff228994ff3fd680aa15c8225ab6e7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 13:17:29 2021 -0400
Remove random state initialization in set_up.lua
commit d9729fc8651d06566e61bcfcb2e7df0484f25f48
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 13:13:45 2021 -0400
Fix parrot's rotation
commit 58d9670e777c3798c676924023375a2579450142
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 13:11:39 2021 -0400
Remove collisionbox addition for y position for fly mobs
commit a20f272e08f0170b2761eeba2a12aeaf88efad7b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 13:05:53 2021 -0400
re-adjust logic gate for mobs floating in water and lava
commit 0794bc54372c6aaa9c653693da3a18194adf5c95
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 13:04:55 2021 -0400
Make flying mobs float in water and lava
commit 8783912938aed1f5566f3e2f5056213f0cefe4a6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:48:57 2021 -0400
Add in mobs api swimming animation
commit f2e909ab8d182febabbdacd9de50a65f27137761
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:41:14 2021 -0400
Add in fly logic gate
commit 07841c89632626f1c3bb4790f8db0c2adddfb2eb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:38:48 2021 -0400
Swap name of quick_rotate_45 to quick_rotate
commit 240d6ea21155f2044d3b728a210811821540013a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:37:04 2021 -0400
Add note about quick_rotate_45 actually rotating 11.25 degrees
commit e8148f81ab7641554096bc03ecda8927d9ad9491
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:36:19 2021 -0400
Make underwater mobs try to continuously swim around with quick_rotate_45
commit 061602d9d46d4e4607e407c064070709ef99f9b7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:28:07 2021 -0400
Overhaul separation of swimming and flying for ease of use with writing mobs api
commit 5365dec19a8a088263916a3686f27859be51e870
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sat Apr 17 12:01:27 2021 -0400
Adjust "flying" vector checks for mobs
commit dda7839d8c4c2292e9c8d6472faf38372654d886
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 21:43:02 2021 -0400
Add in prototype swimming
commit f1141aed9fa52bf57e8867fdb3ffb520793dab07
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 21:08:54 2021 -0400
Make mobs flop when outside of flying node
commit 84ca7681fc9ee3e9945488865678b2b82eb0a22d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 20:47:16 2021 -0400
Make squids fly in water flowing and water source
commit 52c3db041e602ebd0861a0b86c55b35662c8c33a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 20:32:05 2021 -0400
Add in fly state prep for mobs
commit 6db4511dd5b038cd95c7ea196559bb25a53246e9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 20:06:55 2021 -0400
Add notes
commit 15ea9c1c71f3e4d4dd24ce145d385f8457e4905e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 19:59:20 2021 -0400
Implement self walking velocity for walking state
commit 9d6d042ee325a010d97abdff7efc37f3dcf46b5e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 19:37:01 2021 -0400
Fix formatting in ai.lua
commit ce7f4918b061fa9a4d46045a389497cb0da1a5ee
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 19:35:19 2021 -0400
Re-organize comments
commit 05d06a4c8f0128ac5edd21b8096bb75553c1f89e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 18:36:23 2021 -0400
Add comment to state_execution
commit c761db86c7e67aab27d3806a76b7a58504a7d5c6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 18:29:42 2021 -0400
re-arrange mob logic for random wandering
commit ed456ecb47d788efe9aa526849110015e9c04e9a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 18:17:51 2021 -0400
Make mobs not fear cliffs if fear_height is 0
commit 8ca5f221ec9ce534e91f7094193b4ec951e743b1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 18:13:54 2021 -0400
clean up ai.lua
commit cadd53c103f4047069f581abdc033d2def4ed2dd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 16:39:03 2021 -0400
Adjust mob jumping default to account for higher gravity
commit 57b293de2b02be81ff3e17e620807c653fe9b625
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 16:37:15 2021 -0400
Make mobs gravity equal to player's
commit fb9a55e562c3e4102fa4e02603f93d1c78e397ad
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 15:55:11 2021 -0400
Make jump_check more modular and allow mobs to turn if at a wall
commit a6a54b34140c279d7a9ff3db5b21f1be0ead15f8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 15:49:03 2021 -0400
Make mobs not jump if against a wall
commit 6c5393427f72c082a5c85514cb3b54aa4a9ce45f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 15:39:39 2021 -0400
Smooth out mob cliff check and check if falling before cliff check
commit 2486ffef11113a40b43a2548bde57e9cca186da9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 15:30:44 2021 -0400
Make wandering mobs avoid cliffs
commit adc683c6a7cd56c33bebc22ce1363671db4f4846
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 14:19:22 2021 -0400
Clear mob animation on activate
commit d0695e7929460728f7da2e01cc809cb343481e1a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 13:58:08 2021 -0400
Fix mob animation "memory leak"
commit 024cf46307abb6fefbfe8be04941205026561177
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 11:52:29 2021 -0400
Adjust spacing in animation.lua
commit f38492bcb031b7fcc2ee8299f66fcd3cd3a68398
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 11:50:29 2021 -0400
Re-implement animation check gate for mobs
commit a934a59f3b64e8adef64676daaf81b574a6ceecd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 11:50:13 2021 -0400
Implement mob random walk directions
commit 94ca7e8b89bd39144d85bc6a622778babb226d47
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 11:31:18 2021 -0400
Add in state switch and state execution for mobs
commit 626c30de6d4191cd4a18b0f11cb4805c425f9648
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 16 11:30:55 2021 -0400
Create todo.txt
commit c2bac87a6d03364193aedf67c780fdea9f545cac
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 21:46:33 2021 -0400
Update set_up.lua
commit 375d683d08266586d024491dcba2268c66583989
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 16:18:42 2021 -0400
Fix forgotten localization in collision.lua
commit 246bdf9707c98f787cb5264dc7ff638e340d768b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 15:55:10 2021 -0400
Implement basic mob walking animation test
commit d07d0ae31c0d39c526c8418e725b5dce1d120793
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 15:34:07 2021 -0400
Make mobs jump properly
commit 6cb6d714c9bcf55213a9449416bec37c0fe318af
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 15:04:55 2021 -0400
Reorganize all mob sections into multiple files
commit 5155d12d05c5b563a78923b3fc02a885cd23fe85
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 14:09:54 2021 -0400
Reformat mobs_mcl to api folder for ease of use
commit bbcfb3fdb171053e3142854f658860e7693f31d1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 11:33:09 2021 -0400
Randomize walking or standing on spawn in
commit 9e4bf6e130195b4f2176658581ad17646a48ce3a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 11:29:18 2021 -0400
Move old set_yaw and add node on set_velocity
commit e53a193c4fe61e88e6501a2a863e22d533132ae4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 11:25:55 2021 -0400
Fix get_velocity (mobs internal)
commit 14207dd96aa60652c0ad1f4351441659c33d3ff6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 11:23:52 2021 -0400
Smooth out mob movement set_velocity more
commit a0ed1a0b2004baeb3d0f64c5eb02bbf0b21bf823
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 10:05:24 2021 -0400
Add automatic rotation lock
commit ba46e7fa42bbd25175d3505ca9699a11912d491f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 09:28:58 2021 -0400
Remove old debug of colliding with objects
commit 61124905f3d862d00f00674067003d8da7722405
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 15 09:28:22 2021 -0400
Add in mob auto rotation (implementation 1)
commit 8b200c7352cb9fdd01f1b073308acacd36b2672a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 14 19:38:14 2021 -0400
Add in basic movement rotation testing
commit 67259891a85e54f56dc543087bd98cfe12feb6f4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 14 18:01:29 2021 -0400
Remove unneeded comments
commit d063db751c1657c367f2277b24a5aa51a8d90fa3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 14 17:26:20 2021 -0400
Disable mcl_playerplus random check that moves players randomly
commit d4db27f0e1edd439f65821b814146a237ebea799
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 14 17:25:39 2021 -0400
Update backup_code_api.lua
commit 755533beeb6c708603096cce4f99bea558c8b6ce
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 14 11:50:22 2021 -0400
Disable literally everything in mobs api
commit 3f6312a631c6726c3bc4b09d9ec3e64b3ae810e5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 20:24:46 2021 -0400
Make mobs magnetic collision more jello-y
commit aa4d34c10e4bc367fc6ad7d898cd145d9f58ed0c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 20:00:38 2021 -0400
Improve mob to mob collision
commit 1210bc463adb949496fc521e3169fb88e49fc4e9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 19:44:24 2021 -0400
prevent mob collision detection shootout
commit ed6026671381c99723eccbf2089d99748e19bfe2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 19:17:48 2021 -0400
Gut even more elements of the api
commit 220d30df5f159d69be22663733feb1fbf51c45f8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 19:13:29 2021 -0400
Completely gut do_states
commit 9758bbf2e7e382948b4ad1ab8c360519270fec14
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 08:21:04 2021 -0400
Finish gutting mob api
commit f29ad4b8b78689ed0d759c18178a6b2dbc9a1e25
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 08:20:11 2021 -0400
Reorganize more settings to the top of file
commit 54f5bee8a379bf910c1cc6ea3d33bd32b819f3dd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 08:08:29 2021 -0400
reorganize load settings
commit 02515f0778bbe9cd962acc514b084c9dedf55074
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 08:07:32 2021 -0400
Move a large chunk of code to backup_code_api.lua
commit 3fc0184182f70be0c2fd9b3be1c5d78fa7f00503
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Tue Apr 13 07:39:57 2021 -0400
Disable entire mob ai to work on vanilla walking
commit 6fff719322ee250fc7c074d2362edbf0c4090406
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Mon Apr 12 08:47:07 2021 -0400
Localize minetest library
commit adaf74fc5c6354cf2fb1a9f784e5a37a4fb31caa
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Mon Apr 12 08:13:11 2021 -0400
Remove spacing and delete old collision comments
commit a564009e4aeda08372b80fb1a5fc2d16f5dfd364
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Mon Apr 12 08:11:55 2021 -0400
Change HORNY_TIMER to BREED_TIMER
commit 00759da39d621b36be6200fa365c51be86dbb99f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 11 18:29:32 2021 -0400
Unlimit mob ai
commit 9aafc28a2009998017753d0aa4d013e3cd8795b6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 11 14:47:56 2021 -0400
Fix mobs nil check during mob_step
commit 67c40885ef62b4e4e8dcaba3b65c58502c558f7e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 11 14:21:19 2021 -0400
Fix mobs collision system only running during movement - major overhaul with ai disabled
commit 2456e3cd1ef6954415e4a771bb704a12364895eb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 11 12:52:31 2021 -0400
Adjust math localizations in api.lua
commit 725dc731ddc2a6f1cf1a20832e06883613d5974a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Sun Apr 11 11:58:33 2021 -0400
Adjust mob collision detection - this breaks a lot of things and will be fixed later
commit e15fd2f4b60fafcae3b765d345914032b4a52668
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Fri Apr 9 01:38:34 2021 -0400
Add lua locals into mcl_dungeons for performance
commit c937b2a97338097700cd3836811ce46366e88027
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 14:19:42 2021 -0400
test
commit 8c10fe4057d5a973d448e32addbc07617f9b8edc
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 12:48:02 2021 -0400
Adjust spawning to be closer and more frequent
commit bd7866d7983aae52aef426bc7a305ae166817ed7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 12:07:20 2021 -0400
Finish mob limiter
commit 9369c9cab8f25d5fa34fe0cdaeee4f9570db4551
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 10:01:15 2021 -0400
Fix spawn timer reset debug
commit 28823298e1536d4ce34d67ada624dcb5aaf377e0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 10:00:04 2021 -0400
Fix forgotten biome check
commit 9d48549ec5901de887eb9fb2d75fd07f08edb39b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 09:52:50 2021 -0400
Complete prototype of biome generated mobs
commit 518252679f642d00057889b462eb8c87b0992de7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 08:42:57 2021 -0400
Fix a lot of things
commit bb078b0c4c48ac6932d2953561ac03bea3bde51a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 08:33:50 2021 -0400
Fix silverfish typo
commit adab48ff0c95c2fad11e4d58824d635ae6945875
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 08:29:16 2021 -0400
Readjust mobs internal settings to not cause insane memory usage
commit 47c59edb511fde5db934fca519b9d8aa1fc68838
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 08:13:46 2021 -0400
Fix typo
commit 5ca30fa8eec24a1f9bee879bb49d3dfce82484fb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 08:12:43 2021 -0400
Combine air and ground type spawning into ground
commit aacb8fc7b95013e42c832927088708b8c9889201
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 08:09:43 2021 -0400
Add in extra_mobs information
commit f900b24b53a802fd5db1bf1a633d7f89e42bcce5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 07:39:18 2021 -0400
Add in all biome information to mobs
commit 0ad833c046095d83a789705aa15dd7f30fd8f3ed
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 06:57:24 2021 -0400
Add bats, chicken, and blaze spawn info
commit f4a6bdc6b89b2d605cfd06f0b7baa6170a19314c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 06:48:25 2021 -0400
Make reference list copy-pastable
commit bf4bf9a0cc60a1a15f1ddbfed314ec5a9c75561c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 06:10:07 2021 -0400
Ignore default or void dimensions
commit 8e1e02d1fbc189680dbd004bdd905446467a4e29
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 06:04:36 2021 -0400
Add biome list
commit da045c207d3bd5931e3cf73c5459b45d86596c12
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 8 02:07:15 2021 -0400
Refactor spawning into it's own file
commit 6ec66ef6f666007e411e23689e0d4eccd5a5fbfe
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 7 23:16:03 2021 -0400
Fix mobs colliding with other mobs/players
commit 6bd249547a888493af6c5cfc65d3e206e1467c19
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Wed Apr 7 23:07:04 2021 -0400
Fix mobs colliding with objects
commit c4d030d111ea6e21ca6343f76fb98b8aa9d29f6c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date: Thu Apr 1 23:48:00 2021 -0400
Fix item drop on laggy servers
2021-04-29 02:11:33 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
local perlin_noise
|
|
|
|
|
|
|
|
local function spawn_a_mob(pos, dimension, y_min, y_max)
|
2022-08-29 20:59:17 +02:00
|
|
|
--create a disconnected clone of the spawn dictionary
|
|
|
|
--prevents memory leak
|
|
|
|
local mob_library_worker_table = table_copy(spawn_dictionary)
|
2022-04-15 11:48:58 +02:00
|
|
|
local goal_pos = get_next_mob_spawn_pos(pos)
|
2022-08-29 20:59:17 +02:00
|
|
|
--grab mob that fits into the spawning location
|
|
|
|
--randomly grab a mob, don't exclude any possibilities
|
2022-04-15 11:48:58 +02:00
|
|
|
local spawning_position_list = find_nodes_in_area_under_air(
|
|
|
|
{x = goal_pos.x, y = y_min, z = goal_pos.z},
|
|
|
|
{x = goal_pos.x, y = y_max, z = goal_pos.z},
|
|
|
|
{"group:solid", "group:water", "group:lava"}
|
|
|
|
)
|
|
|
|
if #spawning_position_list <= 0 then return end
|
|
|
|
local spawning_position = spawning_position_list[math_random(1, #spawning_position_list)]
|
|
|
|
|
|
|
|
perlin_noise = perlin_noise or minetest_get_perlin(noise_params)
|
|
|
|
local noise = perlin_noise:get_3d(spawning_position)
|
|
|
|
local current_summary_chance = summary_chance
|
2022-06-14 12:32:26 +02:00
|
|
|
table.shuffle(mob_library_worker_table)
|
2022-04-15 11:48:58 +02:00
|
|
|
while #mob_library_worker_table > 0 do
|
|
|
|
local mob_chance_offset = (math_round(noise * current_summary_chance + 12345) % current_summary_chance) + 1
|
|
|
|
local mob_index = 1
|
|
|
|
local mob_chance = mob_library_worker_table[mob_index].chance
|
|
|
|
local step_chance = mob_chance
|
|
|
|
while step_chance < mob_chance_offset do
|
|
|
|
mob_index = mob_index + 1
|
|
|
|
mob_chance = mob_library_worker_table[mob_index].chance
|
|
|
|
step_chance = step_chance + mob_chance
|
|
|
|
end
|
|
|
|
local mob_def = mob_library_worker_table[mob_index]
|
2022-07-17 02:20:12 +02:00
|
|
|
local spawn_in_group = minetest.registered_entities[mob_def.name].spawn_in_group or 4
|
2022-08-14 22:09:09 +02:00
|
|
|
local spawn_in_group_min = minetest.registered_entities[mob_def.name].spawn_in_group_min or 1
|
2022-08-29 21:13:52 +02:00
|
|
|
local mob_type = minetest.registered_entities[mob_def.name].type
|
2022-08-29 20:59:17 +02:00
|
|
|
if spawn_check(spawning_position,mob_def) then
|
2022-07-05 03:49:46 +02:00
|
|
|
if mob_def.type_of_spawning == "water" then
|
|
|
|
spawning_position = get_water_spawn(spawning_position)
|
|
|
|
if not spawning_position then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
end
|
2022-07-21 01:02:24 +02:00
|
|
|
if minetest.registered_entities[mob_def.name].can_spawn and not minetest.registered_entities[mob_def.name].can_spawn(pos) then
|
|
|
|
return
|
|
|
|
end
|
2022-04-15 11:48:58 +02:00
|
|
|
--everything is correct, spawn mob
|
2022-07-17 02:20:12 +02:00
|
|
|
local object
|
2022-08-29 21:13:52 +02:00
|
|
|
if spawn_in_group and ( mob_type ~= "monster" or math.random(5) == 1 ) then
|
2022-09-13 13:23:29 +02:00
|
|
|
if logging then
|
|
|
|
minetest.log("action", "[mcl_mobs] A group of mob " .. mob_def.name .. " spawns at " .. minetest.pos_to_string(spawning_position, 1))
|
|
|
|
end
|
2022-08-29 20:59:17 +02:00
|
|
|
object = spawn_group(spawning_position,mob_def,{minetest.get_node(vector.offset(spawning_position,0,-1,0)).name},spawn_in_group,spawn_in_group_min)
|
2022-09-13 13:23:29 +02:00
|
|
|
|
2022-08-29 20:59:17 +02:00
|
|
|
else
|
2022-09-13 13:23:29 +02:00
|
|
|
if logging then
|
|
|
|
minetest.log("action", "[mcl_mobs] Mob " .. mob_def.name .. " spawns at " .. minetest.pos_to_string(spawning_position, 1))
|
|
|
|
end
|
2022-09-09 22:41:04 +02:00
|
|
|
object = mcl_mobs.spawn(spawning_position, mob_def.name)
|
2022-07-05 12:55:14 +02:00
|
|
|
end
|
2022-07-17 02:20:12 +02:00
|
|
|
|
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
if object then
|
2022-07-04 01:41:45 +02:00
|
|
|
return mob_def.on_spawn and mob_def.on_spawn(object, spawning_position)
|
2022-04-15 11:48:58 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
current_summary_chance = current_summary_chance - mob_chance
|
|
|
|
table_remove(mob_library_worker_table, mob_index)
|
|
|
|
end
|
|
|
|
end
|
2021-04-08 08:07:15 +02:00
|
|
|
|
2021-04-10 19:15:04 +02:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
--MAIN LOOP
|
2022-02-13 21:40:12 +01:00
|
|
|
|
2022-04-15 11:48:58 +02:00
|
|
|
local timer = 0
|
|
|
|
minetest.register_globalstep(function(dtime)
|
|
|
|
timer = timer + dtime
|
|
|
|
if timer < 10 then return end
|
|
|
|
timer = 0
|
|
|
|
for _, player in pairs(get_connected_players()) do
|
|
|
|
local pos = player:get_pos()
|
|
|
|
local dimension = mcl_worlds.pos_to_dimension(pos)
|
|
|
|
-- ignore void and unloaded area
|
|
|
|
if dimension ~= "void" and dimension ~= "default" then
|
|
|
|
local y_min, y_max = decypher_limits(pos.y)
|
|
|
|
for i = 1, math_random(1, 4) do
|
|
|
|
spawn_a_mob(pos, dimension, y_min, y_max)
|
2022-02-13 21:40:12 +01:00
|
|
|
end
|
2021-04-10 23:54:40 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
2021-04-08 12:48:25 +02:00
|
|
|
end
|
2022-08-29 20:59:17 +02:00
|
|
|
|
|
|
|
minetest.register_chatcommand("mobstats",{
|
|
|
|
privs = { debug = true },
|
|
|
|
func = function(n,param)
|
|
|
|
local pos = minetest.get_player_by_name(n):get_pos()
|
|
|
|
minetest.chat_send_player(n,"mobs within 32 radius of player:"..count_mobs(pos,32))
|
|
|
|
minetest.chat_send_player(n,"total mobs:"..count_mobs_total())
|
|
|
|
minetest.chat_send_player(n,"spawning attempts since server start:"..dbg_spawn_attempts)
|
|
|
|
minetest.chat_send_player(n,"successful spawns since server start:"..dbg_spawn_succ)
|
|
|
|
end
|
|
|
|
})
|