Package com.hbm_m.particle.explosions
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 ClassesModifier and TypeClassDescriptionstatic interfaceФункциональный интерфейс для создания частицstatic classВНУТРЕННИЙ КЛАСС Provider Позволяет удобно создавать частицы через простой интерфейс -
Field Summary
Fields inherited from class net.minecraft.client.particle.TextureSheetParticle
spriteFields inherited from class net.minecraft.client.particle.SingleQuadParticle
quadSizeFields 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
ConstructorsConstructorDescriptionAbstractExplosionParticle(net.minecraft.client.multiplayer.ClientLevel level, double x, double y, double z, net.minecraft.client.particle.SpriteSet sprites) -
Method Summary
Modifier and TypeMethodDescriptionintgetLightColor(float partialTick) Самосветящиеся частицы — не зависят от освещения кратера (0 light → чёрные квадраты).net.minecraft.client.particle.ParticleRenderTypeКРИТИЧЕСКОЕ ПЕРЕОПРЕДЕЛЕНИЕ!voidrender(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, setSpriteFromAgeMethods inherited from class net.minecraft.client.particle.SingleQuadParticle
getQuadSize, scaleMethods 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
-
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:
shouldCullin classnet.minecraft.client.particle.Particle
-
getRenderType
public net.minecraft.client.particle.ParticleRenderType getRenderType()КРИТИЧЕСКОЕ ПЕРЕОПРЕДЕЛЕНИЕ! Без этого будет использоваться ванильный рендер- Specified by:
getRenderTypein classnet.minecraft.client.particle.Particle
-
getLightColor
public int getLightColor(float partialTick) Самосветящиеся частицы — не зависят от освещения кратера (0 light → чёрные квадраты).- Overrides:
getLightColorin classnet.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:
renderin classnet.minecraft.client.particle.SingleQuadParticle
-