From 6cef4e41996c125fec71e9099e3c44c894859cea Mon Sep 17 00:00:00 2001 From: NewJumper Date: Fri, 29 Mar 2024 12:49:32 -0500 Subject: [PATCH] angler fish now spawn in caverns --- .../.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 | 4 ++-- .../deeperdarker/worldgen/biome/blooming_caverns.json | 6 ++++++ src/main/java/com/kyanite/deeperdarker/DeeperDarker.java | 3 +-- .../kyanite/deeperdarker/content/entities/AnglerFish.java | 8 ++++++++ .../deeperdarker/world/otherside/OthersideBiomes.java | 1 + 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 b/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 index 7846c46f4..42c472edd 100644 --- a/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 +++ b/src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924 @@ -1,8 +1,8 @@ -// 1.20.1 2024-01-06T18:09:35.1430196 Registries +// 1.20.1 2024-03-29T12:37:01.6518821 Registries 65c8c67a4ec7ef0ce6846fb2f4d921cc6ceb02e2 data/deeperdarker/damage_type/bite.json 0b65c61bd1e5086d0f3685566cc6cecf6e324516 data/deeperdarker/damage_type/ring.json 67f8cd0621b1c3614da8c1910f6b7bcb61660293 data/deeperdarker/dimension_type/otherside.json -77fa1d6c4e5f29aaa620ea412ff7be9fe06d2c78 data/deeperdarker/worldgen/biome/blooming_caverns.json +9b2c458e9a8d4dff2acd71cfcd27dcd84dcb01d4 data/deeperdarker/worldgen/biome/blooming_caverns.json 4491dd6887a8760b77f9a28406c3e4c0535b108d data/deeperdarker/worldgen/biome/deeplands.json bd2c433caf3a3f7dfff3668a68dbdf56fa994df5 data/deeperdarker/worldgen/biome/echoing_forest.json 06d29b9291ed3a63be90750a8c6f182e0c168b7b data/deeperdarker/worldgen/biome/overcast_columns.json diff --git a/src/generated/resources/data/deeperdarker/worldgen/biome/blooming_caverns.json b/src/generated/resources/data/deeperdarker/worldgen/biome/blooming_caverns.json index be5bc13b6..4d0311353 100644 --- a/src/generated/resources/data/deeperdarker/worldgen/biome/blooming_caverns.json +++ b/src/generated/resources/data/deeperdarker/worldgen/biome/blooming_caverns.json @@ -67,6 +67,12 @@ "creature": [], "misc": [], "monster": [ + { + "type": "deeperdarker:angler_fish", + "maxCount": 5, + "minCount": 3, + "weight": 6 + }, { "type": "deeperdarker:sculk_snapper", "maxCount": 2, diff --git a/src/main/java/com/kyanite/deeperdarker/DeeperDarker.java b/src/main/java/com/kyanite/deeperdarker/DeeperDarker.java index 6e77fc2b2..7b088feba 100644 --- a/src/main/java/com/kyanite/deeperdarker/DeeperDarker.java +++ b/src/main/java/com/kyanite/deeperdarker/DeeperDarker.java @@ -44,7 +44,6 @@ import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.SpawnPlacements; -import net.minecraft.world.entity.animal.WaterAnimal; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -160,7 +159,7 @@ private void registerAttributes(EntityAttributeCreationEvent event) { } private void registerSpawnPlacements(SpawnPlacementRegisterEvent event) { - event.register(DDEntities.ANGLER_FISH.get(), SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WaterAnimal::checkSurfaceWaterAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.REPLACE); + event.register(DDEntities.ANGLER_FISH.get(), SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AnglerFish::checkSpawnRules, SpawnPlacementRegisterEvent.Operation.REPLACE); event.register(DDEntities.SCULK_CENTIPEDE.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Mob::checkMobSpawnRules, SpawnPlacementRegisterEvent.Operation.REPLACE); event.register(DDEntities.SCULK_SNAPPER.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Mob::checkMobSpawnRules, SpawnPlacementRegisterEvent.Operation.REPLACE); event.register(DDEntities.SHATTERED.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Mob::checkMobSpawnRules, SpawnPlacementRegisterEvent.Operation.REPLACE); diff --git a/src/main/java/com/kyanite/deeperdarker/content/entities/AnglerFish.java b/src/main/java/com/kyanite/deeperdarker/content/entities/AnglerFish.java index 39eea01f6..bacbc7979 100644 --- a/src/main/java/com/kyanite/deeperdarker/content/entities/AnglerFish.java +++ b/src/main/java/com/kyanite/deeperdarker/content/entities/AnglerFish.java @@ -1,7 +1,9 @@ package com.kyanite.deeperdarker.content.entities; +import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.*; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; @@ -15,6 +17,8 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.block.Blocks; @SuppressWarnings("NullableProblems") public class AnglerFish extends AbstractFish { @@ -63,6 +67,10 @@ public boolean validTarget(LivingEntity entity) { return entity != null && entity.isInWater(); } + public static boolean checkSpawnRules(EntityType pType, ServerLevelAccessor pLevel, MobSpawnType pSpawnType, BlockPos pPos, RandomSource pRandom) { + return pLevel.getBlockState(pPos).is(Blocks.WATER); + } + @Override public ItemStack getBucketItemStack() { return null; diff --git a/src/main/java/com/kyanite/deeperdarker/world/otherside/OthersideBiomes.java b/src/main/java/com/kyanite/deeperdarker/world/otherside/OthersideBiomes.java index 9c0420aef..161f1f358 100644 --- a/src/main/java/com/kyanite/deeperdarker/world/otherside/OthersideBiomes.java +++ b/src/main/java/com/kyanite/deeperdarker/world/otherside/OthersideBiomes.java @@ -101,6 +101,7 @@ private static Biome echoingForest(HolderGetter placedFeatures, H private static Biome bloomingCaverns(HolderGetter placedFeatures, HolderGetter> worldCarvers) { MobSpawnSettings.Builder mobSpawnBuilder = new MobSpawnSettings.Builder(); + mobSpawnBuilder.addSpawn(MobCategory.MONSTER, new MobSpawnSettings.SpawnerData(DDEntities.ANGLER_FISH.get(), 6, 3, 5)); mobSpawnBuilder.addSpawn(MobCategory.MONSTER, new MobSpawnSettings.SpawnerData(DDEntities.SCULK_SNAPPER.get(), 1, 1, 2)); BiomeGenerationSettings.Builder biomeBuilder = new BiomeGenerationSettings.Builder(placedFeatures, worldCarvers);