Package com.hbm_m.explosion
Class ExplosionNukeRayBatched
java.lang.Object
com.hbm_m.explosion.ExplosionNukeRayBatched
- All Implemented Interfaces:
IExplosionRay
Батчированный лучевой взрыв для ядерной бомбы MK5.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanList<net.minecraft.world.level.ChunkPos>Порядок обработки чанков (от центра к периферии).Map<net.minecraft.world.level.ChunkPos,List<ExplosionNukeRayBatched.FloatTriplet>> Карта: чанк -> список конечных точек лучей в этом чанке. -
Constructor Summary
ConstructorsConstructorDescriptionExplosionNukeRayBatched(net.minecraft.world.level.Level level, int x, int y, int z, int strength, int speed, int length) -
Method Summary
Modifier and TypeMethodDescriptionvoidcacheChunksTick(int time) Вызывается каждый тик для предвычисления и кеширования затронутых чанков.voidcancel()Немедленно отменяет взрыв и очищает внутренние структуры.voidcollectTip(int count) Предварительный проход: собирает кончики лучей и группирует их по чанкам.voiddestructionTick(int time) Вызывается каждый тик для фактического разрушения блоков в уже закешированных чанках.protected voidhandleTip(int x, int y, int z) Обработка «кончика» луча - при желании можно переопределить для спец-блоков.booleanstatic floatmasqueradeResistance(net.minecraft.world.level.Level level, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos) voidРазрушает блоки вдоль лучей внутри одного чанка.
-
Field Details
-
perChunk
Карта: чанк -> список конечных точек лучей в этом чанке. -
orderedChunks
Порядок обработки чанков (от центра к периферии). -
isAusf3Complete
public boolean isAusf3Complete
-
-
Constructor Details
-
ExplosionNukeRayBatched
public ExplosionNukeRayBatched(net.minecraft.world.level.Level level, int x, int y, int z, int strength, int speed, int length)
-
-
Method Details
-
collectTip
public void collectTip(int count) Предварительный проход: собирает кончики лучей и группирует их по чанкам.- Parameters:
count- максимальное количество направлений для обработки за вызов
-
masqueradeResistance
public static float masqueradeResistance(net.minecraft.world.level.Level level, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos) -
processChunk
public void processChunk()Разрушает блоки вдоль лучей внутри одного чанка. -
handleTip
protected void handleTip(int x, int y, int z) Обработка «кончика» луча - при желании можно переопределить для спец-блоков. -
isComplete
public boolean isComplete()- Specified by:
isCompletein interfaceIExplosionRay- Returns:
true, если расчёты и разрушение завершены или взрыв отменён.
-
cacheChunksTick
public void cacheChunksTick(int time) Description copied from interface:IExplosionRayВызывается каждый тик для предвычисления и кеширования затронутых чанков. Тяжёлые вычисления рекомендуется выполнять здесь с ограничением по времени.- Specified by:
cacheChunksTickin interfaceIExplosionRay- Parameters:
time- максимально допустимое время работы в этом тике (мс)
-
destructionTick
public void destructionTick(int time) Description copied from interface:IExplosionRayВызывается каждый тик для фактического разрушения блоков в уже закешированных чанках.- Specified by:
destructionTickin interfaceIExplosionRay- Parameters:
time- максимально допустимое время работы в этом тике (мс)
-
cancel
public void cancel()Description copied from interface:IExplosionRayНемедленно отменяет взрыв и очищает внутренние структуры.- Specified by:
cancelin interfaceIExplosionRay
-