Class AbstractExplosionParticle

java.lang.Object
net.minecraft.client.particle.Particle
net.minecraft.client.particle.SingleQuadParticle
net.minecraft.client.particle.TextureSheetParticle
com.hbm_m.particle.explosions.AbstractExplosionParticle
Direct Known Subclasses:
AgentOrangeParticle, DarkSmokeParticle, DarkWaveSmokeParticle, ExplosionFireParticle, ExplosionFlashParticle, ExplosionSparkParticle, FireSparkParticle, LargeDarkSmoke, LargeExplosionSpark, MushroomSmokeParticle, ShockwaveRingParticle, WaveSmokeParticle

public abstract class AbstractExplosionParticle extends net.minecraft.client.particle.TextureSheetParticle
ИСПРАВЛЕННЫЙ БАЗОВЫЙ КЛАСС КЛЮЧЕВЫЕ ИСПРАВЛЕНИЯ: 1. shouldCull() теперь ПРАВИЛЬНО контролирует видимость (нет инверсии логики) 2. Максимальное расстояние видимости: 512+ блоков (255² = 65025 в квадрате = 2*255²) 3. FullBrightParticleRenderType — без lightmap (sky flash не искажает цвет) 4. Проверка null для Camera
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    Функциональный интерфейс для создания частиц
    static class 
    ВНУТРЕННИЙ КЛАСС Provider Позволяет удобно создавать частицы через простой интерфейс
  • Field Summary

    Fields inherited from class net.minecraft.client.particle.TextureSheetParticle

    sprite

    Fields inherited from class net.minecraft.client.particle.SingleQuadParticle

    quadSize

    Fields inherited from class net.minecraft.client.particle.Particle

    age, alpha, bbHeight, bbWidth, bCol, friction, gCol, gravity, hasPhysics, level, lifetime, onGround, oRoll, random, rCol, removed, roll, speedUpWhenYMotionIsBlocked, x, xd, xo, y, yd, yo, z, zd, zo
  • Constructor Summary

    Constructors
    Constructor
    Description
    AbstractExplosionParticle(net.minecraft.client.multiplayer.ClientLevel level, double x, double y, double z, net.minecraft.client.particle.SpriteSet sprites)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    getLightColor(float partialTick)
    Самосветящиеся частицы — не зависят от освещения кратера (0 light → чёрные квадраты).
    net.minecraft.client.particle.ParticleRenderType
    КРИТИЧЕСКОЕ ПЕРЕОПРЕДЕЛЕНИЕ!
    void
    render(com.mojang.blaze3d.vertex.VertexConsumer buffer, net.minecraft.client.Camera camera, float partialTick)
    Явный billboard + LightTexture.FULL_BRIGHT — как у MissileContrailParticle.
    boolean
    КРИТИЧЕСКОЕ ПЕРЕОПРЕДЕЛЕНИЕ!

    Methods inherited from class net.minecraft.client.particle.TextureSheetParticle

    getU0, getU1, getV0, getV1, pickSprite, setSprite, setSpriteFromAge

    Methods inherited from class net.minecraft.client.particle.SingleQuadParticle

    getQuadSize, scale

    Methods inherited from class net.minecraft.client.particle.Particle

    getBoundingBox, getLifetime, getParticleGroup, getPos, isAlive, move, remove, setAlpha, setBoundingBox, setColor, setLifetime, setLocationFromBoundingbox, setParticleSpeed, setPos, setPower, setSize, tick, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • AbstractExplosionParticle

      public AbstractExplosionParticle(net.minecraft.client.multiplayer.ClientLevel level, double x, double y, double z, net.minecraft.client.particle.SpriteSet sprites)
  • Method Details

    • shouldCull

      public boolean shouldCull()
      КРИТИЧЕСКОЕ ПЕРЕОПРЕДЕЛЕНИЕ! ИСПРАВЛЕНИЕ: Логика теперь ПРАВИЛЬНАЯ - Возвращаем FALSE если частица ВИДНА (в пределах расстояния) - Возвращаем TRUE если частица НЕ видна (слишком далеко) Это полностью обходит стандартное ограничение в 32 блока
      Overrides:
      shouldCull in class net.minecraft.client.particle.Particle
    • getRenderType

      public net.minecraft.client.particle.ParticleRenderType getRenderType()
      КРИТИЧЕСКОЕ ПЕРЕОПРЕДЕЛЕНИЕ! Без этого будет использоваться ванильный рендер
      Specified by:
      getRenderType in class net.minecraft.client.particle.Particle
    • getLightColor

      public int getLightColor(float partialTick)
      Самосветящиеся частицы — не зависят от освещения кратера (0 light → чёрные квадраты).
      Overrides:
      getLightColor in class net.minecraft.client.particle.Particle
    • render

      public void render(com.mojang.blaze3d.vertex.VertexConsumer buffer, net.minecraft.client.Camera camera, float partialTick)
      Явный billboard + LightTexture.FULL_BRIGHT — как у MissileContrailParticle. Ванильный TextureSheetParticle.render с LongRangeParticleRenderType даёт зелёный/фиолетовый tint через lightmap.
      Overrides:
      render in class net.minecraft.client.particle.SingleQuadParticle