Class Particle
- Direct Known Subclasses:
BillboardParticle,ElderGuardianAppearanceParticle,ItemPickupParticle,NoRenderParticle
Each particle is typically rendered as a camera-facing texture quad.
SpriteBillboardParticle provides this behavior, and most vanilla particles inherit from it.
If you would like a particle with no direct rendering effects, inherit from NoRenderParticle.
- Mappings:
Namespace Name named net/minecraft/client/particle/Particleintermediary net/minecraft/class_703official gji
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected floatprotected floatprotected booleanprotected floatprivate Boxprotected booleanprotected booleanprivate static final Boxprotected floatprotected floatprivate static final doubleprotected intprotected booleanprotected floatprotected doubleprotected doubleprotected doubleprotected final Randomprotected floatprotected floatprotected floatprivate booleanprotected floatprotected doubleprotected doubleprotected doubleprotected final ClientWorldprotected doubleprotected doubleprotected double -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedParticle(ClientWorld world, double x, double y, double z) Particle(ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ) -
Method Summary
Modifier and TypeMethodDescriptionReturns the boundingBoxof this particle used for collision and movement logic.protected intgetBrightness(float tint) Returns the packed light level this particle should render at.getGroup()Returns the optional group that this particle belongs to.intReturns the maximum age, in ticks, of this particle.abstract ParticleTextureSheetgetType()Returns the rendering category this particle is rendered under.booleanisAlive()Returnsfalseif this particle is finished and should be removed from the parentParticleManager, otherwisetrueif the particle is still alive.voidmarkDead()Marks this particle as ready to be removed from the containingClientWorld.voidmove(double dx, double dy, double dz) Moves this particle by the specified delta amounts, re-positioning bounding boxes and adjusting movement for collision with the world.move(float speed) Multiplies this particle's current velocity by the targetspeedamount.abstract voidrender(VertexConsumer vertexConsumer, Camera camera, float tickDelta) Renders this particle to the givenVertexConsumerbuffer.voidrenderCustom(MatrixStack matrices, VertexConsumerProvider vertexConsumers, Camera camera, float tickDelta) Renders this particle to the givenVertexConsumerbuffer.protected voidscale(float scale) Scales the size of this particle by the givenscaleamount.protected voidsetAlpha(float alpha) Updates the alpha value of this particle to use while rendering.voidsetBoundingBox(Box boundingBox) protected voidsetBoundingBoxSpacing(float spacingXZ, float spacingY) voidsetColor(float red, float green, float blue) Updates the rendering color of this particle.voidsetMaxAge(int maxAge) Sets the maximum age, in ticks, that this particle can exist for.voidsetPos(double x, double y, double z) Updates the position and bounding box of this particle to the targetx,y,zposition.voidsetVelocity(double velocityX, double velocityY, double velocityZ) Updates this particle's velocity to the target X, Y, and Z values.voidtick()Called each game tick (20 times per second), and should be used to do core particle logic, such as movement and collision.toString()
-
Field Details
-
EMPTY_BOUNDING_BOX
- Mappings:
Namespace Name Mixin selector named EMPTY_BOUNDING_BOXLnet/minecraft/client/particle/Particle;EMPTY_BOUNDING_BOX:Lnet/minecraft/util/math/Box;intermediary field_3860Lnet/minecraft/class_703;field_3860:Lnet/minecraft/class_238;official aLgji;a:Lfaw;
-
MAX_SQUARED_COLLISION_CHECK_DISTANCE
private static final double MAX_SQUARED_COLLISION_CHECK_DISTANCE- Mappings:
Namespace Name Mixin selector named MAX_SQUARED_COLLISION_CHECK_DISTANCELnet/minecraft/client/particle/Particle;MAX_SQUARED_COLLISION_CHECK_DISTANCE:Dintermediary field_36193Lnet/minecraft/class_703;field_36193:Dofficial bLgji;b:D
-
world
- Mappings:
Namespace Name Mixin selector named worldLnet/minecraft/client/particle/Particle;world:Lnet/minecraft/client/world/ClientWorld;intermediary field_3851Lnet/minecraft/class_703;field_3851:Lnet/minecraft/class_638;official cLgji;c:Lgga;
-
prevPosX
protected double prevPosX- Mappings:
Namespace Name Mixin selector named prevPosXLnet/minecraft/client/particle/Particle;prevPosX:Dintermediary field_3858Lnet/minecraft/class_703;field_3858:Dofficial dLgji;d:D
-
prevPosY
protected double prevPosY- Mappings:
Namespace Name Mixin selector named prevPosYLnet/minecraft/client/particle/Particle;prevPosY:Dintermediary field_3838Lnet/minecraft/class_703;field_3838:Dofficial eLgji;e:D
-
prevPosZ
protected double prevPosZ- Mappings:
Namespace Name Mixin selector named prevPosZLnet/minecraft/client/particle/Particle;prevPosZ:Dintermediary field_3856Lnet/minecraft/class_703;field_3856:Dofficial fLgji;f:D
-
x
protected double x- Mappings:
Namespace Name Mixin selector named xLnet/minecraft/client/particle/Particle;x:Dintermediary field_3874Lnet/minecraft/class_703;field_3874:Dofficial gLgji;g:D
-
y
protected double y- Mappings:
Namespace Name Mixin selector named yLnet/minecraft/client/particle/Particle;y:Dintermediary field_3854Lnet/minecraft/class_703;field_3854:Dofficial hLgji;h:D
-
z
protected double z- Mappings:
Namespace Name Mixin selector named zLnet/minecraft/client/particle/Particle;z:Dintermediary field_3871Lnet/minecraft/class_703;field_3871:Dofficial iLgji;i:D
-
velocityX
protected double velocityX- Mappings:
Namespace Name Mixin selector named velocityXLnet/minecraft/client/particle/Particle;velocityX:Dintermediary field_3852Lnet/minecraft/class_703;field_3852:Dofficial jLgji;j:D
-
velocityY
protected double velocityY- Mappings:
Namespace Name Mixin selector named velocityYLnet/minecraft/client/particle/Particle;velocityY:Dintermediary field_3869Lnet/minecraft/class_703;field_3869:Dofficial kLgji;k:D
-
velocityZ
protected double velocityZ- Mappings:
Namespace Name Mixin selector named velocityZLnet/minecraft/client/particle/Particle;velocityZ:Dintermediary field_3850Lnet/minecraft/class_703;field_3850:Dofficial lLgji;l:D
-
boundingBox
- Mappings:
Namespace Name Mixin selector named boundingBoxLnet/minecraft/client/particle/Particle;boundingBox:Lnet/minecraft/util/math/Box;intermediary field_3872Lnet/minecraft/class_703;field_3872:Lnet/minecraft/class_238;official DLgji;D:Lfaw;
-
onGround
protected boolean onGround- Mappings:
Namespace Name Mixin selector named onGroundLnet/minecraft/client/particle/Particle;onGround:Zintermediary field_3845Lnet/minecraft/class_703;field_3845:Zofficial mLgji;m:Z
-
collidesWithWorld
protected boolean collidesWithWorld- Mappings:
Namespace Name Mixin selector named collidesWithWorldLnet/minecraft/client/particle/Particle;collidesWithWorld:Zintermediary field_3862Lnet/minecraft/class_703;field_3862:Zofficial nLgji;n:Z
-
stopped
private boolean stopped- Mappings:
Namespace Name Mixin selector named stoppedLnet/minecraft/client/particle/Particle;stopped:Zintermediary field_21507Lnet/minecraft/class_703;field_21507:Zofficial ELgji;E:Z
-
dead
protected boolean dead- Mappings:
Namespace Name Mixin selector named deadLnet/minecraft/client/particle/Particle;dead:Zintermediary field_3843Lnet/minecraft/class_703;field_3843:Zofficial oLgji;o:Z
-
spacingXZ
protected float spacingXZ- Mappings:
Namespace Name Mixin selector named spacingXZLnet/minecraft/client/particle/Particle;spacingXZ:Fintermediary field_3849Lnet/minecraft/class_703;field_3849:Fofficial pLgji;p:F
-
spacingY
protected float spacingY- Mappings:
Namespace Name Mixin selector named spacingYLnet/minecraft/client/particle/Particle;spacingY:Fintermediary field_3867Lnet/minecraft/class_703;field_3867:Fofficial qLgji;q:F
-
random
- Mappings:
Namespace Name Mixin selector named randomLnet/minecraft/client/particle/Particle;random:Lnet/minecraft/util/math/random/Random;intermediary field_3840Lnet/minecraft/class_703;field_3840:Lnet/minecraft/class_5819;official rLgji;r:Lazh;
-
age
protected int age- Mappings:
Namespace Name Mixin selector named ageLnet/minecraft/client/particle/Particle;age:Iintermediary field_3866Lnet/minecraft/class_703;field_3866:Iofficial sLgji;s:I
-
maxAge
protected int maxAge- Mappings:
Namespace Name Mixin selector named maxAgeLnet/minecraft/client/particle/Particle;maxAge:Iintermediary field_3847Lnet/minecraft/class_703;field_3847:Iofficial tLgji;t:I
-
gravityStrength
protected float gravityStrength- Mappings:
Namespace Name Mixin selector named gravityStrengthLnet/minecraft/client/particle/Particle;gravityStrength:Fintermediary field_3844Lnet/minecraft/class_703;field_3844:Fofficial uLgji;u:F
-
red
protected float red- Mappings:
Namespace Name Mixin selector named redLnet/minecraft/client/particle/Particle;red:Fintermediary field_3861Lnet/minecraft/class_703;field_3861:Fofficial vLgji;v:F
-
green
protected float green- Mappings:
Namespace Name Mixin selector named greenLnet/minecraft/client/particle/Particle;green:Fintermediary field_3842Lnet/minecraft/class_703;field_3842:Fofficial wLgji;w:F
-
blue
protected float blue- Mappings:
Namespace Name Mixin selector named blueLnet/minecraft/client/particle/Particle;blue:Fintermediary field_3859Lnet/minecraft/class_703;field_3859:Fofficial xLgji;x:F
-
alpha
protected float alpha- Mappings:
Namespace Name Mixin selector named alphaLnet/minecraft/client/particle/Particle;alpha:Fintermediary field_3841Lnet/minecraft/class_703;field_3841:Fofficial yLgji;y:F
-
angle
protected float angle- Mappings:
Namespace Name Mixin selector named angleLnet/minecraft/client/particle/Particle;angle:Fintermediary field_3839Lnet/minecraft/class_703;field_3839:Fofficial zLgji;z:F
-
prevAngle
protected float prevAngle- Mappings:
Namespace Name Mixin selector named prevAngleLnet/minecraft/client/particle/Particle;prevAngle:Fintermediary field_3857Lnet/minecraft/class_703;field_3857:Fofficial ALgji;A:F
-
velocityMultiplier
protected float velocityMultiplier- Mappings:
Namespace Name Mixin selector named velocityMultiplierLnet/minecraft/client/particle/Particle;velocityMultiplier:Fintermediary field_28786Lnet/minecraft/class_703;field_28786:Fofficial BLgji;B:F
-
ascending
protected boolean ascending- Mappings:
Namespace Name Mixin selector named ascendingLnet/minecraft/client/particle/Particle;ascending:Zintermediary field_28787Lnet/minecraft/class_703;field_28787:Zofficial CLgji;C:Z
-
-
Constructor Details
-
Particle
- Mappings:
Namespace Name Mixin selector named <init>Lnet/minecraft/client/particle/Particle;<init>(Lnet/minecraft/client/world/ClientWorld;DDD)Vintermediary <init>Lnet/minecraft/class_703;<init>(Lnet/minecraft/class_638;DDD)Vofficial <init>Lgji;<init>(Lgga;DDD)V
-
Particle
public Particle(ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ) - Mappings:
Namespace Name Mixin selector named <init>Lnet/minecraft/client/particle/Particle;<init>(Lnet/minecraft/client/world/ClientWorld;DDDDDD)Vintermediary <init>Lnet/minecraft/class_703;<init>(Lnet/minecraft/class_638;DDDDDD)Vofficial <init>Lgji;<init>(Lgga;DDDDDD)V
-
-
Method Details
-
move
Multiplies this particle's current velocity by the targetspeedamount.- Parameters:
speed- the velocity multiplier to apply to this particle- Mappings:
Namespace Name Mixin selector named moveLnet/minecraft/client/particle/Particle;move(F)Lnet/minecraft/client/particle/Particle;intermediary method_3075Lnet/minecraft/class_703;method_3075(F)Lnet/minecraft/class_703;official cLgji;c(F)Lgji;
-
setVelocity
public void setVelocity(double velocityX, double velocityY, double velocityZ) Updates this particle's velocity to the target X, Y, and Z values.- Parameters:
velocityX- the new x-velocity of this particlevelocityY- the new y-velocity of this particlevelocityZ- the new z-velocity of this particle- Mappings:
Namespace Name Mixin selector named setVelocityLnet/minecraft/client/particle/Particle;setVelocity(DDD)Vintermediary method_34753Lnet/minecraft/class_703;method_34753(DDD)Vofficial bLgji;b(DDD)V
-
scale
Scales the size of this particle by the givenscaleamount.- Parameters:
scale- the amount to scale this particle's size by- Returns:
- this particle
- Mappings:
Namespace Name Mixin selector named scaleLnet/minecraft/client/particle/Particle;scale(F)Lnet/minecraft/client/particle/Particle;intermediary method_3087Lnet/minecraft/class_703;method_3087(F)Lnet/minecraft/class_703;official dLgji;d(F)Lgji;
-
setColor
public void setColor(float red, float green, float blue) Updates the rendering color of this particle. Each value should be between 0.0 (no channel color) and 1.0 (full channel color).- Parameters:
red- the target red color to use while renderinggreen- the target green color to use while renderingblue- the target blue color to use while rendering- Mappings:
Namespace Name Mixin selector named setColorLnet/minecraft/client/particle/Particle;setColor(FFF)Vintermediary method_3084Lnet/minecraft/class_703;method_3084(FFF)Vofficial aLgji;a(FFF)V
-
setAlpha
protected void setAlpha(float alpha) Updates the alpha value of this particle to use while rendering.Note that a particle cannot render with transparency unless
getType()isParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT, or another sheet that supports transparency.Also note that the default particle shader (core/particle.fsh) will discard all transparent pixels below 0.1 alpha.
- Parameters:
alpha- the new alpha value of this particle- Mappings:
Namespace Name Mixin selector named setAlphaLnet/minecraft/client/particle/Particle;setAlpha(F)Vintermediary method_3083Lnet/minecraft/class_703;method_3083(F)Vofficial eLgji;e(F)V
-
setMaxAge
public void setMaxAge(int maxAge) Sets the maximum age, in ticks, that this particle can exist for.- Parameters:
maxAge- the new maximum age of this particle, in ticks- Mappings:
Namespace Name Mixin selector named setMaxAgeLnet/minecraft/client/particle/Particle;setMaxAge(I)Vintermediary method_3077Lnet/minecraft/class_703;method_3077(I)Vofficial aLgji;a(I)V
-
getMaxAge
public int getMaxAge()Returns the maximum age, in ticks, of this particle. If this particle's age exceeds this value, it will be removed from the world.- Returns:
- the maximum age, in ticks, of this particle
- Mappings:
Namespace Name Mixin selector named getMaxAgeLnet/minecraft/client/particle/Particle;getMaxAge()Iintermediary method_3082Lnet/minecraft/class_703;method_3082()Iofficial jLgji;j()I
-
tick
public void tick()Called each game tick (20 times per second), and should be used to do core particle logic, such as movement and collision.- Mappings:
Namespace Name Mixin selector named tickLnet/minecraft/client/particle/Particle;tick()Vintermediary method_3070Lnet/minecraft/class_703;method_3070()Vofficial aLgji;a()V
-
render
Renders this particle to the givenVertexConsumerbuffer. Particles using theParticleTextureSheet.CUSTOMsheet should implement this with an empty method, and instead render inrenderCustom(net.minecraft.client.util.math.MatrixStack, net.minecraft.client.render.VertexConsumerProvider, net.minecraft.client.render.Camera, float).- Parameters:
vertexConsumer- the buffer to render tocamera- the current active gameCameratickDelta- frame tick delta amount- Mappings:
Namespace Name Mixin selector named renderLnet/minecraft/client/particle/Particle;render(Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/client/render/Camera;F)Vintermediary method_3074Lnet/minecraft/class_703;method_3074(Lnet/minecraft/class_4588;Lnet/minecraft/class_4184;F)Vofficial aLgji;a(Lffz;Lfks;F)V
-
renderCustom
public void renderCustom(MatrixStack matrices, VertexConsumerProvider vertexConsumers, Camera camera, float tickDelta) Renders this particle to the givenVertexConsumerbuffer. This is only used by particles using theParticleTextureSheet.CUSTOMsheet.- Mappings:
Namespace Name Mixin selector named renderCustomLnet/minecraft/client/particle/Particle;renderCustom(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/Camera;F)Vintermediary method_65198Lnet/minecraft/class_703;method_65198(Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_4184;F)Vofficial aLgji;a(Lffv;Lglz;Lfks;F)V
-
getType
Returns the rendering category this particle is rendered under.For more information on the properties and types available to each
Particle, visitParticleTextureSheet.- Returns:
- the rendering category this particle is rendered under
- Mappings:
Namespace Name Mixin selector named getTypeLnet/minecraft/client/particle/Particle;getType()Lnet/minecraft/client/particle/ParticleTextureSheet;intermediary method_18122Lnet/minecraft/class_703;method_18122()Lnet/minecraft/class_3999;official bLgji;b()Lgjm;
-
toString
-
markDead
public void markDead()Marks this particle as ready to be removed from the containingClientWorld.- Mappings:
Namespace Name Mixin selector named markDeadLnet/minecraft/client/particle/Particle;markDead()Vintermediary method_3085Lnet/minecraft/class_703;method_3085()Vofficial kLgji;k()V
-
setBoundingBoxSpacing
protected void setBoundingBoxSpacing(float spacingXZ, float spacingY) - Mappings:
Namespace Name Mixin selector named setBoundingBoxSpacingLnet/minecraft/client/particle/Particle;setBoundingBoxSpacing(FF)Vintermediary method_3080Lnet/minecraft/class_703;method_3080(FF)Vofficial bLgji;b(FF)V
-
setPos
public void setPos(double x, double y, double z) Updates the position and bounding box of this particle to the targetx,y,zposition.- Parameters:
x- the x position to move this particle toy- the y position to move this particle toz- the z position to move this particle to- Mappings:
Namespace Name Mixin selector named setPosLnet/minecraft/client/particle/Particle;setPos(DDD)Vintermediary method_3063Lnet/minecraft/class_703;method_3063(DDD)Vofficial cLgji;c(DDD)V
-
move
public void move(double dx, double dy, double dz) Moves this particle by the specified delta amounts, re-positioning bounding boxes and adjusting movement for collision with the world.- Parameters:
dx- the delta x to move this particle bydy- the delta y to move this particle bydz- the delta z to move this particle by- Mappings:
Namespace Name Mixin selector named moveLnet/minecraft/client/particle/Particle;move(DDD)Vintermediary method_3069Lnet/minecraft/class_703;method_3069(DDD)Vofficial aLgji;a(DDD)V
-
repositionFromBoundingBox
protected void repositionFromBoundingBox()- Mappings:
Namespace Name Mixin selector named repositionFromBoundingBoxLnet/minecraft/client/particle/Particle;repositionFromBoundingBox()Vintermediary method_3072Lnet/minecraft/class_703;method_3072()Vofficial lLgji;l()V
-
getBrightness
protected int getBrightness(float tint) Returns the packed light level this particle should render at.- Returns:
- the packed light level this particle should render at
- See Also:
- Mappings:
Namespace Name Mixin selector named getBrightnessLnet/minecraft/client/particle/Particle;getBrightness(F)Iintermediary method_3068Lnet/minecraft/class_703;method_3068(F)Iofficial aLgji;a(F)I
-
isAlive
public boolean isAlive()Returnsfalseif this particle is finished and should be removed from the parentParticleManager, otherwisetrueif the particle is still alive.- Returns:
falseif this particle is finished and should be removed from the parentParticleManager, otherwisetrueif the particle is still alive- Mappings:
Namespace Name Mixin selector named isAliveLnet/minecraft/client/particle/Particle;isAlive()Zintermediary method_3086Lnet/minecraft/class_703;method_3086()Zofficial mLgji;m()Z
-
getBoundingBox
Returns the boundingBoxof this particle used for collision and movement logic.By default, this bounding box is automatically repositioned when a particle moves in
tick(). To adjust the size of the returned box, visitsetBoundingBoxSpacing(float, float). To directly update the current bounding box, visitsetBoundingBox(Box);- Returns:
- the bounding
Boxof this particle used for collision and movement logic - Mappings:
Namespace Name Mixin selector named getBoundingBoxLnet/minecraft/client/particle/Particle;getBoundingBox()Lnet/minecraft/util/math/Box;intermediary method_3064Lnet/minecraft/class_703;method_3064()Lnet/minecraft/class_238;official nLgji;n()Lfaw;
-
setBoundingBox
- Mappings:
Namespace Name Mixin selector named setBoundingBoxLnet/minecraft/client/particle/Particle;setBoundingBox(Lnet/minecraft/util/math/Box;)Vintermediary method_3067Lnet/minecraft/class_703;method_3067(Lnet/minecraft/class_238;)Vofficial aLgji;a(Lfaw;)V
-
getGroup
Returns the optional group that this particle belongs to.A particle group restricts the number of particles from the group that can be rendered in a client world. If the particle does not have a group, it is not restricted.
- Returns:
- the optional group that this particle belongs to
- Mappings:
Namespace Name Mixin selector named getGroupLnet/minecraft/client/particle/Particle;getGroup()Ljava/util/Optional;intermediary method_34019Lnet/minecraft/class_703;method_34019()Ljava/util/Optional;official oLgji;o()Ljava/util/Optional;
-