[add] mob spawning
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
package ovh.glitchlabs.masterwild.event;
|
||||
|
||||
import net.minecraft.world.entity.SpawnPlacementType;
|
||||
import net.minecraft.world.entity.SpawnPlacementTypes;
|
||||
import net.minecraft.world.entity.animal.Animal;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
|
||||
import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent;
|
||||
import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent;
|
||||
import ovh.glitchlabs.masterwild.Masterwild;
|
||||
import ovh.glitchlabs.masterwild.entity.ModEntities;
|
||||
import ovh.glitchlabs.masterwild.entity.client.Pinguin.PinguinModel;
|
||||
@@ -40,4 +45,10 @@ public class ModEventBusEvents {
|
||||
event.put(ModEntities.RED_PANDA.get(), Red_PandaEntity.createAttributes().build());
|
||||
event.put(ModEntities.RACCOON.get(), RaccoonEntity.createAttributes().build());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerSpawnPlacements(RegisterSpawnPlacementsEvent event) {
|
||||
event.register(ModEntities.RACCOON.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES,
|
||||
Animal::checkAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.REPLACE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package ovh.glitchlabs.masterwild.event;
|
||||
|
||||
import net.minecraft.world.entity.SpawnPlacementTypes;
|
||||
import net.minecraft.world.entity.animal.Animal;
|
||||
import net.minecraft.world.entity.animal.WaterAnimal;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent;
|
||||
import ovh.glitchlabs.masterwild.Masterwild;
|
||||
import ovh.glitchlabs.masterwild.entity.ModEntities;
|
||||
|
||||
@EventBusSubscriber(modid = Masterwild.MODID)
|
||||
public class ModSpawnPlacements {
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerSpawnPlacements(RegisterSpawnPlacementsEvent event) {
|
||||
event.register(ModEntities.RACCOON.get(), SpawnPlacementTypes.ON_GROUND,
|
||||
Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules,
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(ModEntities.PINGUIN.get(), SpawnPlacementTypes.ON_GROUND,
|
||||
Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules,
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(ModEntities.ROOSTER.get(), SpawnPlacementTypes.ON_GROUND,
|
||||
Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules,
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(ModEntities.HEDGEHOG.get(), SpawnPlacementTypes.ON_GROUND,
|
||||
Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules,
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(ModEntities.RED_PANDA.get(), SpawnPlacementTypes.ON_GROUND,
|
||||
Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules,
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
|
||||
event.register(ModEntities.SHARK.get(), SpawnPlacementTypes.IN_WATER,
|
||||
Heightmap.Types.OCEAN_FLOOR, WaterAnimal::checkSurfaceWaterAnimalSpawnRules,
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
|
||||
event.register(ModEntities.FIREFLY.get(), SpawnPlacementTypes.NO_RESTRICTIONS,
|
||||
Heightmap.Types.MOTION_BLOCKING,
|
||||
(type, level, reason, pos, random) -> level.getLevel().isNight() && level.canSeeSky(pos),
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(ModEntities.BUTTERFLY.get(), SpawnPlacementTypes.NO_RESTRICTIONS,
|
||||
Heightmap.Types.MOTION_BLOCKING,
|
||||
(type, level, reason, pos, random) -> level.getLevel().isDay() && level.canSeeSky(pos),
|
||||
RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user