From 20a59ddd304760321ceccf2371782c52e5bdbb4f Mon Sep 17 00:00:00 2001 From: ElCeejo Date: Sat, 24 Feb 2024 19:04:13 -0800 Subject: [PATCH] Fix some stuff --- api/spawning.lua | 25 ++++++++--------------- craftitems.lua | 53 +++++++++++++++++++++++++++++++----------------- mobs/horse.lua | 2 +- mod.conf | 2 +- 4 files changed, 45 insertions(+), 37 deletions(-) diff --git a/api/spawning.lua b/api/spawning.lua index e9f816a..b06bebb 100644 --- a/api/spawning.lua +++ b/api/spawning.lua @@ -13,7 +13,7 @@ local function table_contains(tbl, val) return false end -local common_spawn_chance = tonumber(minetest.settings:get("animalia_common_chance")) or 45000 +local common_spawn_chance = tonumber(minetest.settings:get("animalia_common_chance")) or 60000 local ambient_spawn_chance = tonumber(minetest.settings:get("animalia_ambient_chance")) or 9000 @@ -56,13 +56,12 @@ creatura.register_abm_spawn("animalia:grizzly_bear", { creatura.register_abm_spawn("animalia:chicken", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 3, max_group = 5, + spawn_cap = 3, biomes = chicken_biomes, nodes = {"group:soil"}, }) @@ -79,13 +78,12 @@ creatura.register_abm_spawn("animalia:cat", { creatura.register_abm_spawn("animalia:cow", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 3, max_group = 4, + spawn_cap = 3, biomes = animalia.registered_biome_groups["grassland"].biomes, nodes = {"group:soil"}, neighbors = {"air", "group:grass", "group:flora"} @@ -103,13 +101,12 @@ creatura.register_abm_spawn("animalia:fox", { creatura.register_abm_spawn("animalia:horse", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 3, max_group = 4, + spawn_cap = 3, biomes = animalia.registered_biome_groups["grassland"].biomes, nodes = {"group:soil"}, neighbors = {"air", "group:grass", "group:flora"} @@ -150,39 +147,36 @@ creatura.register_abm_spawn("animalia:opossum", { creatura.register_abm_spawn("animalia:pig", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 2, max_group = 3, + spawn_cap = 3, biomes = pig_biomes, nodes = {"group:soil"}, }) creatura.register_abm_spawn("animalia:reindeer", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 6, max_group = 8, + spawn_cap = 3, biomes = animalia.registered_biome_groups["boreal"].biomes, nodes = {"group:soil"}, }) creatura.register_abm_spawn("animalia:sheep", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 3, max_group = 6, + spawn_cap = 3, biomes = animalia.registered_biome_groups["grassland"].biomes, nodes = {"group:soil"}, neighbors = {"air", "group:grass", "group:flora"} @@ -190,13 +184,12 @@ creatura.register_abm_spawn("animalia:sheep", { creatura.register_abm_spawn("animalia:turkey", { chance = common_spawn_chance, - chance_on_load = 64, spawn_active = true, - spawn_on_load = true, min_height = 0, max_height = 1024, min_group = 3, max_group = 4, + spawn_cap = 3, biomes = animalia.registered_biome_groups["boreal"].biomes, nodes = {"group:soil"}, }) @@ -345,7 +338,7 @@ minetest.register_abm({ action = function(pos, _, active_object_count) minetest.remove_node(pos) - if active_object_count > 8 then return end + if active_object_count > 4 then return end local spawnable_mobs = {} diff --git a/craftitems.lua b/craftitems.lua index 11f784c..05184e5 100644 --- a/craftitems.lua +++ b/craftitems.lua @@ -512,7 +512,32 @@ minetest.register_craftitem("animalia:net", { ----------- if minetest.get_modpath("3d_armor") then - table.insert(armor.attributes, "heavy_pelt") + + if armor + and armor.attributes then + table.insert(armor.attributes, "heavy_pelt") + + minetest.register_on_punchplayer(function(player, hitter, _, _, _, damage) + local name = player:get_player_name() + if name + and (armor.def[name].heavy_pelt or 0) > 0 then + local hit_ip = hitter:is_player() + if hit_ip and minetest.is_protected(player:get_pos(), "") then + return + else + local player_pos = player:get_pos() + if not player_pos then return end + + local biome_data = minetest.get_biome_data(player_pos) + + if biome_data.heat < 50 then + player:set_hp(player:get_hp() - (damage / 1.5)) + return true + end + end + end + end) + end armor:register_armor("animalia:coat_bear_pelt", { description = "Bear Pelt Coat", @@ -521,26 +546,16 @@ if minetest.get_modpath("3d_armor") then armor_groups = {fleshy = 5} }) - minetest.register_on_punchplayer(function(player, hitter, _, _, _, damage) - local name = player:get_player_name() - if name - and (armor.def[name].heavy_pelt or 0) > 0 then - local hit_ip = hitter:is_player() - if hit_ip and minetest.is_protected(player:get_pos(), "") then - return - else - local player_pos = player:get_pos() - if not player_pos then return end - local biome_data = minetest.get_biome_data(player_pos) - if biome_data.heat < 50 then - player:set_hp(player:get_hp() - (damage / 1.5)) - return true - end - end - end - end) + minetest.register_craft({ + output = "animalia:coat_bear_pelt", + recipe = { + {"animalia:pelt_bear", "", "animalia:pelt_bear"}, + {"animalia:pelt_bear", "animalia:pelt_bear", "animalia:pelt_bear"}, + {"animalia:pelt_bear", "animalia:pelt_bear", "animalia:pelt_bear"} + } + }) end ----------- diff --git a/mobs/horse.lua b/mobs/horse.lua index 1a854e5..03bb45a 100644 --- a/mobs/horse.lua +++ b/mobs/horse.lua @@ -371,7 +371,7 @@ creatura.register_mob("animalia:horse", { local owner = self.owner local name = clicker and clicker:get_player_name() - if not owner or name ~= owner then return end + if owner and name ~= owner then return end if animalia.set_nametag(self, clicker) then return diff --git a/mod.conf b/mod.conf index 9cfc5fd..5224901 100644 --- a/mod.conf +++ b/mod.conf @@ -1,6 +1,6 @@ name = animalia depends = creatura -optional_depends = default, mcl_player, farming +optional_depends = default, mcl_player, farming, 3d_armor description = Adds unique and consistantly designed Animals title = Animalia author = ElCeejo