From 6e202c2452315f4c326ad9e8cf06361cacb4eb7d Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sat, 24 Oct 2020 00:25:37 +0300 Subject: [PATCH] Fish spawning --- src/main/java/ru/betterend/entity/EntityEndFish.java | 9 +++++++++ src/main/java/ru/betterend/registry/EntityRegistry.java | 1 + src/main/java/ru/betterend/util/SpawnHelper.java | 4 ++++ .../ru/betterend/world/biome/BiomeFoggyMushroomland.java | 1 + .../java/ru/betterend/world/biome/BiomeMegalake.java | 5 ++++- 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/betterend/entity/EntityEndFish.java b/src/main/java/ru/betterend/entity/EntityEndFish.java index b309b29f..045cad9d 100644 --- a/src/main/java/ru/betterend/entity/EntityEndFish.java +++ b/src/main/java/ru/betterend/entity/EntityEndFish.java @@ -1,8 +1,11 @@ package ru.betterend.entity; +import java.util.Random; + import net.minecraft.block.Blocks; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.SpawnReason; import net.minecraft.entity.attribute.DefaultAttributeContainer; import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.damage.DamageSource; @@ -15,6 +18,8 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.particle.ParticleTypes; import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; public class EntityEndFish extends SchoolingFishEntity { @@ -101,4 +106,8 @@ public class EntityEndFish extends SchoolingFishEntity { public float getScale() { return this.dataTracker.get(SCALE) / 32F + 0.75F; } + + public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) { + return true; + } } diff --git a/src/main/java/ru/betterend/registry/EntityRegistry.java b/src/main/java/ru/betterend/registry/EntityRegistry.java index 0e86335e..d8af5500 100644 --- a/src/main/java/ru/betterend/registry/EntityRegistry.java +++ b/src/main/java/ru/betterend/registry/EntityRegistry.java @@ -24,6 +24,7 @@ public class EntityRegistry { public static void register() { SpawnHelper.restrictionLand(END_SLIME, EntityEndSlime::canSpawn); + SpawnHelper.restrictionWater(END_FISH, EntityEndFish::canSpawn); } protected static EntityType register(String name, SpawnGroup group, float width, float height, EntityFactory entity) { diff --git a/src/main/java/ru/betterend/util/SpawnHelper.java b/src/main/java/ru/betterend/util/SpawnHelper.java index 168f29cb..71356f7f 100644 --- a/src/main/java/ru/betterend/util/SpawnHelper.java +++ b/src/main/java/ru/betterend/util/SpawnHelper.java @@ -32,6 +32,10 @@ public class SpawnHelper { restriction(entity, Location.ON_GROUND, Type.MOTION_BLOCKING, predicate); } + public static void restrictionWater(EntityType entity, SpawnPredicate predicate) { + restriction(entity, Location.IN_WATER, Type.MOTION_BLOCKING, predicate); + } + static { try { for (Method method: SpawnRestriction.class.getDeclaredMethods()) { diff --git a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java index c45bc146..21baecd2 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java +++ b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java @@ -31,6 +31,7 @@ public class BiomeFoggyMushroomland extends EndBiome { .addFeature(FeatureRegistry.BUBBLE_CORAL) .addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addMobSpawn(EntityRegistry.DRAGONFLY, 80, 2, 5) + .addMobSpawn(EntityRegistry.END_FISH, 20, 2, 5) .addMobSpawn(EntityRegistry.END_SLIME, 10, 1, 2) .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); } diff --git a/src/main/java/ru/betterend/world/biome/BiomeMegalake.java b/src/main/java/ru/betterend/world/biome/BiomeMegalake.java index 2f7f07ab..4105ccc7 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeMegalake.java +++ b/src/main/java/ru/betterend/world/biome/BiomeMegalake.java @@ -3,6 +3,7 @@ package ru.betterend.world.biome; import net.minecraft.entity.EntityType; import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.BlockRegistry; +import ru.betterend.registry.EntityRegistry; import ru.betterend.registry.FeatureRegistry; import ru.betterend.registry.StructureRegistry; @@ -20,6 +21,8 @@ public class BiomeMegalake extends EndBiome { .addFeature(FeatureRegistry.END_LOTUS_LEAF) .addFeature(FeatureRegistry.BUBBLE_CORAL_RARE) .addFeature(FeatureRegistry.END_LILY_RARE) - .addMobSpawn(EntityType.ENDERMAN, 50, 1, 2)); + .addMobSpawn(EntityRegistry.DRAGONFLY, 50, 1, 3) + .addMobSpawn(EntityRegistry.END_FISH, 50, 3, 8) + .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); } }