Class SpawnPlacementRegisterEvent
java.lang.Object
net.neoforged.bus.api.Event
net.neoforged.neoforge.event.entity.SpawnPlacementRegisterEvent
- All Implemented Interfaces:
net.neoforged.fml.event.IModBusEvent
public class SpawnPlacementRegisterEvent
extends net.neoforged.bus.api.Event
implements net.neoforged.fml.event.IModBusEvent
This event allows each
EntityType
to have a SpawnPlacements.SpawnPredicate
registered or modified.
Spawn Predicates are checked whenever an Entity
of the given EntityType
spawns in the world naturally.
If registering your own entity's spawn placements, you should use register(EntityType, SpawnPlacementType, Heightmap.Types, SpawnPlacements.SpawnPredicate, Operation)
So that you ensure that your entity has a heightmap type and placement type registered.
If modifying vanilla or another mod's spawn placements, you can use three operations:
REPLACE: checked first, the last mod to replace the predicate wipes out all other predicates. Listen with a low EventPriority
if you need to do this.
OR: checked second, only one of these predicates must pass along with the original predicate
AND: checked third, these predicates must all pass along with the original predicate
This event is not cancellable and does not
.
invalid reference
have a result
Fired on the Mod bus IModBusEvent
.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static enum
-
Field Summary
Modifier and TypeFieldDescriptionprivate final Map
<EntityType<?>, SpawnPlacementRegisterEvent.MergedSpawnPredicate<?>> -
Constructor Summary
ConstructorDescriptionSpawnPlacementRegisterEvent
(Map<EntityType<?>, SpawnPlacementRegisterEvent.MergedSpawnPredicate<?>> map) -
Method Summary
Modifier and TypeMethodDescription<T extends Entity>
voidregister
(EntityType<T> entityType, @Nullable SpawnPlacementType placementType, Heightmap.Types heightmap, SpawnPlacements.SpawnPredicate<T> predicate, SpawnPlacementRegisterEvent.Operation operation) Register apredicate
for a givenentityType
andoperation
With the option of changing theplacementType
andheightmap
.<T extends Entity>
voidregister
(EntityType<T> entityType, SpawnPlacements.SpawnPredicate<T> predicate) Register an optional spawn placementpredicate
for a givenentityType
<T extends Entity>
voidregister
(EntityType<T> entityType, SpawnPlacements.SpawnPredicate<T> predicate, SpawnPlacementRegisterEvent.Operation operation) Register apredicate
for a givenentityType
with a givenoperation
for handling
-
Field Details
-
map
-
-
Constructor Details
-
SpawnPlacementRegisterEvent
@Internal public SpawnPlacementRegisterEvent(Map<EntityType<?>, SpawnPlacementRegisterEvent.MergedSpawnPredicate<?>> map)
-
-
Method Details
-
register
public <T extends Entity> void register(EntityType<T> entityType, SpawnPlacements.SpawnPredicate<T> predicate) Register an optional spawn placementpredicate
for a givenentityType
-
register
public <T extends Entity> void register(EntityType<T> entityType, SpawnPlacements.SpawnPredicate<T> predicate, SpawnPlacementRegisterEvent.Operation operation) Register apredicate
for a givenentityType
with a givenoperation
for handling -
register
public <T extends Entity> void register(EntityType<T> entityType, @Nullable @Nullable SpawnPlacementType placementType, @Nullable Heightmap.Types heightmap, SpawnPlacements.SpawnPredicate<T> predicate, SpawnPlacementRegisterEvent.Operation operation) Register apredicate
for a givenentityType
andoperation
With the option of changing theplacementType
andheightmap
. These are only applied ifSpawnPlacementRegisterEvent.Operation.REPLACE
is used. Usenull
for the placement or heightmap to leave them as is (which should be done in almost every case)
-