类 MobSpawnEvent.PositionCheck
java.lang.Object
net.minecraftforge.eventbus.api.Event
net.minecraftforge.event.entity.EntityEvent
net.minecraftforge.event.entity.living.MobSpawnEvent
net.minecraftforge.event.entity.living.MobSpawnEvent.PositionCheck
- 封闭类:
MobSpawnEvent
This event is fired when a mob checks for a valid spawn position, after
Conditions validated here include the following:
SpawnPlacements.checkSpawnRules(net.minecraft.world.entity.EntityType<T>, net.minecraft.world.level.ServerLevelAccessor, net.minecraft.world.entity.EntitySpawnReason, net.minecraft.core.BlockPos, net.minecraft.util.RandomSource)
has been evaluated.Conditions validated here include the following:
- Obstruction - mobs inside blocks or fluids.
- Pathfinding - if the spawn block is valid for pathfinding.
- Sea Level - Ocelots check if the position is above sea level.
- Spawn Block - Ocelots check if the below block is grass or leaves.
These checks are performed by the vanilla methods Mob.checkSpawnRules(net.minecraft.world.level.LevelAccessor, net.minecraft.world.entity.EntitySpawnReason)
and Mob.checkSpawnObstruction(net.minecraft.world.level.LevelReader)
.
The logical-and of both methods forms the default result of this event.
This event has a result.
To change the result of this event, use Event.setResult(net.minecraftforge.eventbus.api.Event.Result)
. Results are interpreted in the following manner:
- Allow - The position will be accepted, and the spawn process will continue.
- Default - The position will be accepted if
Mob.checkSpawnRules(net.minecraft.world.level.LevelAccessor, net.minecraft.world.entity.EntitySpawnReason)
andMob.checkSpawnObstruction(net.minecraft.world.level.LevelReader)
are both true. - Deny - The position will not be accepted. The spawn process will abort, and further events will not be called.
- API Note:
- This event fires after Spawn Placement checks, which are the primary set of spawn checks.
-
嵌套类概要
从类继承的嵌套类/接口 net.minecraftforge.event.entity.living.MobSpawnEvent
MobSpawnEvent.AllowDespawn, MobSpawnEvent.FinalizeSpawn, MobSpawnEvent.PositionCheck, MobSpawnEvent.SpawnPlacementCheck
从类继承的嵌套类/接口 net.minecraftforge.event.entity.EntityEvent
EntityEvent.EnteringSection, EntityEvent.EntityConstructing
从类继承的嵌套类/接口 net.minecraftforge.eventbus.api.Event
net.minecraftforge.eventbus.api.Event.HasResult, net.minecraftforge.eventbus.api.Event.Result
-
字段概要
字段 -
构造器概要
构造器构造器说明PositionCheck
(Mob mob, ServerLevelAccessor level, EntitySpawnReason spawnReason, @Nullable BaseSpawner spawner) -
方法概要
修饰符和类型方法说明@Nullable BaseSpawner
Retrieves the underlyingBaseSpawner
instance if this mob was created by a Mob Spawner of some form.Retrieves the type of mob spawn that is happening.从类继承的方法 net.minecraftforge.eventbus.api.Event
getListenerList, getPhase, getResult, hasResult, isCancelable, isCanceled, setCanceled, setPhase, setResult
-
字段详细资料
-
spawner
-
spawnReason
-
-
构造器详细资料
-
PositionCheck
public PositionCheck(Mob mob, ServerLevelAccessor level, EntitySpawnReason spawnReason, @Nullable @Nullable BaseSpawner spawner)
-
-
方法详细资料
-
getSpawner
Retrieves the underlyingBaseSpawner
instance if this mob was created by a Mob Spawner of some form. This is always null unlessgetSpawnReason()
isEntitySpawnReason.SPAWNER
, and may still be null even then.- 返回:
- The BaseSpawner responsible for triggering the spawn, or null if none is available.
-
getSpawnReason
Retrieves the type of mob spawn that is happening.- 返回:
- The mob spawn type.
- 另请参阅:
-