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/Particle
intermediary net/minecraft/class_703
official gir
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
protected float
protected float
protected boolean
protected float
private Box
protected boolean
protected boolean
private static final Box
protected float
protected float
private static final double
protected int
protected boolean
protected float
protected double
protected double
protected double
protected final Random
protected float
protected float
protected float
private boolean
protected float
protected double
protected double
protected double
protected final ClientWorld
protected double
protected double
protected double
-
Constructor Summary
ModifierConstructorDescriptionprotected
Particle
(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 TypeMethodDescriptionabstract void
buildGeometry
(VertexConsumer vertexConsumer, Camera camera, float tickDelta) Renders this particle to the givenVertexConsumer
buffer.Returns the boundingBox
of this particle used for collision and movement logic.protected int
getBrightness
(float tint) Returns the packed light level this particle should render at.getGroup()
Returns the optional group that this particle belongs to.int
Returns the maximum age, in ticks, of this particle.abstract ParticleTextureSheet
getType()
Returns the rendering category this particle is rendered under.boolean
isAlive()
Returnsfalse
if this particle is finished and should be removed from the parentParticleManager
, otherwisetrue
if the particle is still alive.void
markDead()
Marks this particle as ready to be removed from the containingClientWorld
.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.move
(float speed) Multiplies this particle's current velocity by the targetspeed
amount.protected void
scale
(float scale) Scales the size of this particle by the givenscale
amount.protected void
setAlpha
(float alpha) Updates the alpha value of this particle to use while rendering.void
setBoundingBox
(Box boundingBox) protected void
setBoundingBoxSpacing
(float spacingXZ, float spacingY) void
setColor
(float red, float green, float blue) Updates the rendering color of this particle.void
setMaxAge
(int maxAge) Sets the maximum age, in ticks, that this particle can exist for.void
setPos
(double x, double y, double z) Updates the position and bounding box of this particle to the targetx
,y
,z
position.void
setVelocity
(double velocityX, double velocityY, double velocityZ) Updates this particle's velocity to the target X, Y, and Z values.void
tick()
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_BOX
Lnet/minecraft/client/particle/Particle;EMPTY_BOUNDING_BOX:Lnet/minecraft/util/math/Box;
intermediary field_3860
Lnet/minecraft/class_703;field_3860:Lnet/minecraft/class_238;
official a
Lgir;a:Lfbs;
-
MAX_SQUARED_COLLISION_CHECK_DISTANCE
private static final double MAX_SQUARED_COLLISION_CHECK_DISTANCE- Mappings:
Namespace Name Mixin selector named MAX_SQUARED_COLLISION_CHECK_DISTANCE
Lnet/minecraft/client/particle/Particle;MAX_SQUARED_COLLISION_CHECK_DISTANCE:D
intermediary field_36193
Lnet/minecraft/class_703;field_36193:D
official b
Lgir;b:D
-
world
- Mappings:
Namespace Name Mixin selector named world
Lnet/minecraft/client/particle/Particle;world:Lnet/minecraft/client/world/ClientWorld;
intermediary field_3851
Lnet/minecraft/class_703;field_3851:Lnet/minecraft/class_638;
official c
Lgir;c:Lgfj;
-
prevPosX
protected double prevPosX- Mappings:
Namespace Name Mixin selector named prevPosX
Lnet/minecraft/client/particle/Particle;prevPosX:D
intermediary field_3858
Lnet/minecraft/class_703;field_3858:D
official d
Lgir;d:D
-
prevPosY
protected double prevPosY- Mappings:
Namespace Name Mixin selector named prevPosY
Lnet/minecraft/client/particle/Particle;prevPosY:D
intermediary field_3838
Lnet/minecraft/class_703;field_3838:D
official e
Lgir;e:D
-
prevPosZ
protected double prevPosZ- Mappings:
Namespace Name Mixin selector named prevPosZ
Lnet/minecraft/client/particle/Particle;prevPosZ:D
intermediary field_3856
Lnet/minecraft/class_703;field_3856:D
official f
Lgir;f:D
-
x
protected double x- Mappings:
Namespace Name Mixin selector named x
Lnet/minecraft/client/particle/Particle;x:D
intermediary field_3874
Lnet/minecraft/class_703;field_3874:D
official g
Lgir;g:D
-
y
protected double y- Mappings:
Namespace Name Mixin selector named y
Lnet/minecraft/client/particle/Particle;y:D
intermediary field_3854
Lnet/minecraft/class_703;field_3854:D
official h
Lgir;h:D
-
z
protected double z- Mappings:
Namespace Name Mixin selector named z
Lnet/minecraft/client/particle/Particle;z:D
intermediary field_3871
Lnet/minecraft/class_703;field_3871:D
official i
Lgir;i:D
-
velocityX
protected double velocityX- Mappings:
Namespace Name Mixin selector named velocityX
Lnet/minecraft/client/particle/Particle;velocityX:D
intermediary field_3852
Lnet/minecraft/class_703;field_3852:D
official j
Lgir;j:D
-
velocityY
protected double velocityY- Mappings:
Namespace Name Mixin selector named velocityY
Lnet/minecraft/client/particle/Particle;velocityY:D
intermediary field_3869
Lnet/minecraft/class_703;field_3869:D
official k
Lgir;k:D
-
velocityZ
protected double velocityZ- Mappings:
Namespace Name Mixin selector named velocityZ
Lnet/minecraft/client/particle/Particle;velocityZ:D
intermediary field_3850
Lnet/minecraft/class_703;field_3850:D
official l
Lgir;l:D
-
boundingBox
- Mappings:
Namespace Name Mixin selector named boundingBox
Lnet/minecraft/client/particle/Particle;boundingBox:Lnet/minecraft/util/math/Box;
intermediary field_3872
Lnet/minecraft/class_703;field_3872:Lnet/minecraft/class_238;
official D
Lgir;D:Lfbs;
-
onGround
protected boolean onGround- Mappings:
Namespace Name Mixin selector named onGround
Lnet/minecraft/client/particle/Particle;onGround:Z
intermediary field_3845
Lnet/minecraft/class_703;field_3845:Z
official m
Lgir;m:Z
-
collidesWithWorld
protected boolean collidesWithWorld- Mappings:
Namespace Name Mixin selector named collidesWithWorld
Lnet/minecraft/client/particle/Particle;collidesWithWorld:Z
intermediary field_3862
Lnet/minecraft/class_703;field_3862:Z
official n
Lgir;n:Z
-
stopped
private boolean stopped- Mappings:
Namespace Name Mixin selector named stopped
Lnet/minecraft/client/particle/Particle;stopped:Z
intermediary field_21507
Lnet/minecraft/class_703;field_21507:Z
official E
Lgir;E:Z
-
dead
protected boolean dead- Mappings:
Namespace Name Mixin selector named dead
Lnet/minecraft/client/particle/Particle;dead:Z
intermediary field_3843
Lnet/minecraft/class_703;field_3843:Z
official o
Lgir;o:Z
-
spacingXZ
protected float spacingXZ- Mappings:
Namespace Name Mixin selector named spacingXZ
Lnet/minecraft/client/particle/Particle;spacingXZ:F
intermediary field_3849
Lnet/minecraft/class_703;field_3849:F
official p
Lgir;p:F
-
spacingY
protected float spacingY- Mappings:
Namespace Name Mixin selector named spacingY
Lnet/minecraft/client/particle/Particle;spacingY:F
intermediary field_3867
Lnet/minecraft/class_703;field_3867:F
official q
Lgir;q:F
-
random
- Mappings:
Namespace Name Mixin selector named random
Lnet/minecraft/client/particle/Particle;random:Lnet/minecraft/util/math/random/Random;
intermediary field_3840
Lnet/minecraft/class_703;field_3840:Lnet/minecraft/class_5819;
official r
Lgir;r:Lbam;
-
age
protected int age- Mappings:
Namespace Name Mixin selector named age
Lnet/minecraft/client/particle/Particle;age:I
intermediary field_3866
Lnet/minecraft/class_703;field_3866:I
official s
Lgir;s:I
-
maxAge
protected int maxAge- Mappings:
Namespace Name Mixin selector named maxAge
Lnet/minecraft/client/particle/Particle;maxAge:I
intermediary field_3847
Lnet/minecraft/class_703;field_3847:I
official t
Lgir;t:I
-
gravityStrength
protected float gravityStrength- Mappings:
Namespace Name Mixin selector named gravityStrength
Lnet/minecraft/client/particle/Particle;gravityStrength:F
intermediary field_3844
Lnet/minecraft/class_703;field_3844:F
official u
Lgir;u:F
-
red
protected float red- Mappings:
Namespace Name Mixin selector named red
Lnet/minecraft/client/particle/Particle;red:F
intermediary field_3861
Lnet/minecraft/class_703;field_3861:F
official v
Lgir;v:F
-
green
protected float green- Mappings:
Namespace Name Mixin selector named green
Lnet/minecraft/client/particle/Particle;green:F
intermediary field_3842
Lnet/minecraft/class_703;field_3842:F
official w
Lgir;w:F
-
blue
protected float blue- Mappings:
Namespace Name Mixin selector named blue
Lnet/minecraft/client/particle/Particle;blue:F
intermediary field_3859
Lnet/minecraft/class_703;field_3859:F
official x
Lgir;x:F
-
alpha
protected float alpha- Mappings:
Namespace Name Mixin selector named alpha
Lnet/minecraft/client/particle/Particle;alpha:F
intermediary field_3841
Lnet/minecraft/class_703;field_3841:F
official y
Lgir;y:F
-
angle
protected float angle- Mappings:
Namespace Name Mixin selector named angle
Lnet/minecraft/client/particle/Particle;angle:F
intermediary field_3839
Lnet/minecraft/class_703;field_3839:F
official z
Lgir;z:F
-
prevAngle
protected float prevAngle- Mappings:
Namespace Name Mixin selector named prevAngle
Lnet/minecraft/client/particle/Particle;prevAngle:F
intermediary field_3857
Lnet/minecraft/class_703;field_3857:F
official A
Lgir;A:F
-
velocityMultiplier
protected float velocityMultiplier- Mappings:
Namespace Name Mixin selector named velocityMultiplier
Lnet/minecraft/client/particle/Particle;velocityMultiplier:F
intermediary field_28786
Lnet/minecraft/class_703;field_28786:F
official B
Lgir;B:F
-
ascending
protected boolean ascending- Mappings:
Namespace Name Mixin selector named ascending
Lnet/minecraft/client/particle/Particle;ascending:Z
intermediary field_28787
Lnet/minecraft/class_703;field_28787:Z
official C
Lgir;C:Z
-
-
Constructor Details
-
Particle
- Mappings:
Namespace Name Mixin selector named <init>
Lnet/minecraft/client/particle/Particle;<init>(Lnet/minecraft/client/world/ClientWorld;DDD)V
intermediary <init>
Lnet/minecraft/class_703;<init>(Lnet/minecraft/class_638;DDD)V
official <init>
Lgir;<init>(Lgfj;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)V
intermediary <init>
Lnet/minecraft/class_703;<init>(Lnet/minecraft/class_638;DDDDDD)V
official <init>
Lgir;<init>(Lgfj;DDDDDD)V
-
-
Method Details
-
move
Multiplies this particle's current velocity by the targetspeed
amount.- Parameters:
speed
- the velocity multiplier to apply to this particle- Mappings:
Namespace Name Mixin selector named move
Lnet/minecraft/client/particle/Particle;move(F)Lnet/minecraft/client/particle/Particle;
intermediary method_3075
Lnet/minecraft/class_703;method_3075(F)Lnet/minecraft/class_703;
official c
Lgir;c(F)Lgir;
-
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 setVelocity
Lnet/minecraft/client/particle/Particle;setVelocity(DDD)V
intermediary method_34753
Lnet/minecraft/class_703;method_34753(DDD)V
official b
Lgir;b(DDD)V
-
scale
Scales the size of this particle by the givenscale
amount.- Parameters:
scale
- the amount to scale this particle's size by- Returns:
- this particle
- Mappings:
Namespace Name Mixin selector named scale
Lnet/minecraft/client/particle/Particle;scale(F)Lnet/minecraft/client/particle/Particle;
intermediary method_3087
Lnet/minecraft/class_703;method_3087(F)Lnet/minecraft/class_703;
official d
Lgir;d(F)Lgir;
-
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 setColor
Lnet/minecraft/client/particle/Particle;setColor(FFF)V
intermediary method_3084
Lnet/minecraft/class_703;method_3084(FFF)V
official a
Lgir;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 setAlpha
Lnet/minecraft/client/particle/Particle;setAlpha(F)V
intermediary method_3083
Lnet/minecraft/class_703;method_3083(F)V
official e
Lgir;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 setMaxAge
Lnet/minecraft/client/particle/Particle;setMaxAge(I)V
intermediary method_3077
Lnet/minecraft/class_703;method_3077(I)V
official a
Lgir;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 getMaxAge
Lnet/minecraft/client/particle/Particle;getMaxAge()I
intermediary method_3082
Lnet/minecraft/class_703;method_3082()I
official j
Lgir;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 tick
Lnet/minecraft/client/particle/Particle;tick()V
intermediary method_3070
Lnet/minecraft/class_703;method_3070()V
official a
Lgir;a()V
-
buildGeometry
Renders this particle to the givenVertexConsumer
buffer.- Parameters:
vertexConsumer
- the buffer to render tocamera
- the current active gameCamera
tickDelta
- frame tick delta amount- Mappings:
Namespace Name Mixin selector named buildGeometry
Lnet/minecraft/client/particle/Particle;buildGeometry(Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/client/render/Camera;F)V
intermediary method_3074
Lnet/minecraft/class_703;method_3074(Lnet/minecraft/class_4588;Lnet/minecraft/class_4184;F)V
official a
Lgir;a(Lfgv;Lflo;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 getType
Lnet/minecraft/client/particle/Particle;getType()Lnet/minecraft/client/particle/ParticleTextureSheet;
intermediary method_18122
Lnet/minecraft/class_703;method_18122()Lnet/minecraft/class_3999;
official b
Lgir;b()Lgiv;
-
toString
-
markDead
public void markDead()Marks this particle as ready to be removed from the containingClientWorld
.- Mappings:
Namespace Name Mixin selector named markDead
Lnet/minecraft/client/particle/Particle;markDead()V
intermediary method_3085
Lnet/minecraft/class_703;method_3085()V
official k
Lgir;k()V
-
setBoundingBoxSpacing
protected void setBoundingBoxSpacing(float spacingXZ, float spacingY) - Mappings:
Namespace Name Mixin selector named setBoundingBoxSpacing
Lnet/minecraft/client/particle/Particle;setBoundingBoxSpacing(FF)V
intermediary method_3080
Lnet/minecraft/class_703;method_3080(FF)V
official b
Lgir;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
,z
position.- 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 setPos
Lnet/minecraft/client/particle/Particle;setPos(DDD)V
intermediary method_3063
Lnet/minecraft/class_703;method_3063(DDD)V
official c
Lgir;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 move
Lnet/minecraft/client/particle/Particle;move(DDD)V
intermediary method_3069
Lnet/minecraft/class_703;method_3069(DDD)V
official a
Lgir;a(DDD)V
-
repositionFromBoundingBox
protected void repositionFromBoundingBox()- Mappings:
Namespace Name Mixin selector named repositionFromBoundingBox
Lnet/minecraft/client/particle/Particle;repositionFromBoundingBox()V
intermediary method_3072
Lnet/minecraft/class_703;method_3072()V
official l
Lgir;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 getBrightness
Lnet/minecraft/client/particle/Particle;getBrightness(F)I
intermediary method_3068
Lnet/minecraft/class_703;method_3068(F)I
official a
Lgir;a(F)I
-
isAlive
public boolean isAlive()Returnsfalse
if this particle is finished and should be removed from the parentParticleManager
, otherwisetrue
if the particle is still alive.- Returns:
false
if this particle is finished and should be removed from the parentParticleManager
, otherwisetrue
if the particle is still alive- Mappings:
Namespace Name Mixin selector named isAlive
Lnet/minecraft/client/particle/Particle;isAlive()Z
intermediary method_3086
Lnet/minecraft/class_703;method_3086()Z
official m
Lgir;m()Z
-
getBoundingBox
Returns the boundingBox
of 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
Box
of this particle used for collision and movement logic - Mappings:
Namespace Name Mixin selector named getBoundingBox
Lnet/minecraft/client/particle/Particle;getBoundingBox()Lnet/minecraft/util/math/Box;
intermediary method_3064
Lnet/minecraft/class_703;method_3064()Lnet/minecraft/class_238;
official n
Lgir;n()Lfbs;
-
setBoundingBox
- Mappings:
Namespace Name Mixin selector named setBoundingBox
Lnet/minecraft/client/particle/Particle;setBoundingBox(Lnet/minecraft/util/math/Box;)V
intermediary method_3067
Lnet/minecraft/class_703;method_3067(Lnet/minecraft/class_238;)V
official a
Lgir;a(Lfbs;)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 getGroup
Lnet/minecraft/client/particle/Particle;getGroup()Ljava/util/Optional;
intermediary method_34019
Lnet/minecraft/class_703;method_34019()Ljava/util/Optional;
official o
Lgir;o()Ljava/util/Optional;
-