Class ExplosionNukeRayBatched

java.lang.Object
com.hbm_m.explosion.ExplosionNukeRayBatched
All Implemented Interfaces:
IExplosionRay

public class ExplosionNukeRayBatched extends Object implements IExplosionRay
Батчированный лучевой взрыв для ядерной бомбы MK5.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
     
    static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    boolean
     
    List<net.minecraft.world.level.ChunkPos>
    Порядок обработки чанков (от центра к периферии).
    Map<net.minecraft.world.level.ChunkPos,List<ExplosionNukeRayBatched.FloatTriplet>>
    Карта: чанк -> список конечных точек лучей в этом чанке.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ExplosionNukeRayBatched(net.minecraft.world.level.Level level, int x, int y, int z, int strength, int speed, int length)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    cacheChunksTick(int time)
    Вызывается каждый тик для предвычисления и кеширования затронутых чанков.
    void
    Немедленно отменяет взрыв и очищает внутренние структуры.
    void
    collectTip(int count)
    Предварительный проход: собирает кончики лучей и группирует их по чанкам.
    void
    destructionTick(int time)
    Вызывается каждый тик для фактического разрушения блоков в уже закешированных чанках.
    protected void
    handleTip(int x, int y, int z)
    Обработка «кончика» луча - при желании можно переопределить для спец-блоков.
    boolean
     
    static float
    masqueradeResistance(net.minecraft.world.level.Level level, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos)
     
    void
    Разрушает блоки вдоль лучей внутри одного чанка.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • perChunk

      public Map<net.minecraft.world.level.ChunkPos,List<ExplosionNukeRayBatched.FloatTriplet>> perChunk
      Карта: чанк -> список конечных точек лучей в этом чанке.
    • orderedChunks

      public List<net.minecraft.world.level.ChunkPos> 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:
      isComplete in interface IExplosionRay
      Returns:
      true, если расчёты и разрушение завершены или взрыв отменён.
    • cacheChunksTick

      public void cacheChunksTick(int time)
      Description copied from interface: IExplosionRay
      Вызывается каждый тик для предвычисления и кеширования затронутых чанков. Тяжёлые вычисления рекомендуется выполнять здесь с ограничением по времени.
      Specified by:
      cacheChunksTick in interface IExplosionRay
      Parameters:
      time - максимально допустимое время работы в этом тике (мс)
    • destructionTick

      public void destructionTick(int time)
      Description copied from interface: IExplosionRay
      Вызывается каждый тик для фактического разрушения блоков в уже закешированных чанках.
      Specified by:
      destructionTick in interface IExplosionRay
      Parameters:
      time - максимально допустимое время работы в этом тике (мс)
    • cancel

      public void cancel()
      Description copied from interface: IExplosionRay
      Немедленно отменяет взрыв и очищает внутренние структуры.
      Specified by:
      cancel in interface IExplosionRay