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 official ffy
intermediary net/minecraft/class_703
named net/minecraft/client/particle/Particle
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
protected float
protected float
protected float
private Box
protected boolean
protected boolean
private static final Box
private boolean
protected boolean
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
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 official a
Lffy;a:Lecz;
intermediary field_3860
Lnet/minecraft/class_703;field_3860:Lnet/minecraft/class_238;
named EMPTY_BOUNDING_BOX
Lnet/minecraft/client/particle/Particle;EMPTY_BOUNDING_BOX:Lnet/minecraft/util/math/Box;
-
MAX_SQUARED_COLLISION_CHECK_DISTANCE
private static final double MAX_SQUARED_COLLISION_CHECK_DISTANCE- Mappings:
Namespace Name Mixin selector official b
Lffy;b:D
intermediary field_36193
Lnet/minecraft/class_703;field_36193:D
named MAX_SQUARED_COLLISION_CHECK_DISTANCE
Lnet/minecraft/client/particle/Particle;MAX_SQUARED_COLLISION_CHECK_DISTANCE:D
-
world
- Mappings:
Namespace Name Mixin selector official c
Lffy;c:Lfdj;
intermediary field_3851
Lnet/minecraft/class_703;field_3851:Lnet/minecraft/class_638;
named world
Lnet/minecraft/client/particle/Particle;world:Lnet/minecraft/client/world/ClientWorld;
-
prevPosX
protected double prevPosX- Mappings:
Namespace Name Mixin selector official d
Lffy;d:D
intermediary field_3858
Lnet/minecraft/class_703;field_3858:D
named prevPosX
Lnet/minecraft/client/particle/Particle;prevPosX:D
-
prevPosY
protected double prevPosY- Mappings:
Namespace Name Mixin selector official e
Lffy;e:D
intermediary field_3838
Lnet/minecraft/class_703;field_3838:D
named prevPosY
Lnet/minecraft/client/particle/Particle;prevPosY:D
-
prevPosZ
protected double prevPosZ- Mappings:
Namespace Name Mixin selector official f
Lffy;f:D
intermediary field_3856
Lnet/minecraft/class_703;field_3856:D
named prevPosZ
Lnet/minecraft/client/particle/Particle;prevPosZ:D
-
x
protected double x- Mappings:
Namespace Name Mixin selector official g
Lffy;g:D
intermediary field_3874
Lnet/minecraft/class_703;field_3874:D
named x
Lnet/minecraft/client/particle/Particle;x:D
-
y
protected double y- Mappings:
Namespace Name Mixin selector official h
Lffy;h:D
intermediary field_3854
Lnet/minecraft/class_703;field_3854:D
named y
Lnet/minecraft/client/particle/Particle;y:D
-
z
protected double z- Mappings:
Namespace Name Mixin selector official i
Lffy;i:D
intermediary field_3871
Lnet/minecraft/class_703;field_3871:D
named z
Lnet/minecraft/client/particle/Particle;z:D
-
velocityX
protected double velocityX- Mappings:
Namespace Name Mixin selector official j
Lffy;j:D
intermediary field_3852
Lnet/minecraft/class_703;field_3852:D
named velocityX
Lnet/minecraft/client/particle/Particle;velocityX:D
-
velocityY
protected double velocityY- Mappings:
Namespace Name Mixin selector official k
Lffy;k:D
intermediary field_3869
Lnet/minecraft/class_703;field_3869:D
named velocityY
Lnet/minecraft/client/particle/Particle;velocityY:D
-
velocityZ
protected double velocityZ- Mappings:
Namespace Name Mixin selector official l
Lffy;l:D
intermediary field_3850
Lnet/minecraft/class_703;field_3850:D
named velocityZ
Lnet/minecraft/client/particle/Particle;velocityZ:D
-
boundingBox
- Mappings:
Namespace Name Mixin selector official D
Lffy;D:Lecz;
intermediary field_3872
Lnet/minecraft/class_703;field_3872:Lnet/minecraft/class_238;
named boundingBox
Lnet/minecraft/client/particle/Particle;boundingBox:Lnet/minecraft/util/math/Box;
-
onGround
protected boolean onGround- Mappings:
Namespace Name Mixin selector official m
Lffy;m:Z
intermediary field_3845
Lnet/minecraft/class_703;field_3845:Z
named onGround
Lnet/minecraft/client/particle/Particle;onGround:Z
-
collidesWithWorld
protected boolean collidesWithWorld- Mappings:
Namespace Name Mixin selector official n
Lffy;n:Z
intermediary field_3862
Lnet/minecraft/class_703;field_3862:Z
named collidesWithWorld
Lnet/minecraft/client/particle/Particle;collidesWithWorld:Z
-
field_21507
private boolean field_21507- Mappings:
Namespace Name Mixin selector official E
Lffy;E:Z
intermediary field_21507
Lnet/minecraft/class_703;field_21507:Z
named field_21507
Lnet/minecraft/client/particle/Particle;field_21507:Z
-
dead
protected boolean dead- Mappings:
Namespace Name Mixin selector official o
Lffy;o:Z
intermediary field_3843
Lnet/minecraft/class_703;field_3843:Z
named dead
Lnet/minecraft/client/particle/Particle;dead:Z
-
spacingXZ
protected float spacingXZ- Mappings:
Namespace Name Mixin selector official p
Lffy;p:F
intermediary field_3849
Lnet/minecraft/class_703;field_3849:F
named spacingXZ
Lnet/minecraft/client/particle/Particle;spacingXZ:F
-
spacingY
protected float spacingY- Mappings:
Namespace Name Mixin selector official q
Lffy;q:F
intermediary field_3867
Lnet/minecraft/class_703;field_3867:F
named spacingY
Lnet/minecraft/client/particle/Particle;spacingY:F
-
random
- Mappings:
Namespace Name Mixin selector official r
Lffy;r:Lapo;
intermediary field_3840
Lnet/minecraft/class_703;field_3840:Lnet/minecraft/class_5819;
named random
Lnet/minecraft/client/particle/Particle;random:Lnet/minecraft/util/math/random/Random;
-
age
protected int age- Mappings:
Namespace Name Mixin selector official s
Lffy;s:I
intermediary field_3866
Lnet/minecraft/class_703;field_3866:I
named age
Lnet/minecraft/client/particle/Particle;age:I
-
maxAge
protected int maxAge- Mappings:
Namespace Name Mixin selector official t
Lffy;t:I
intermediary field_3847
Lnet/minecraft/class_703;field_3847:I
named maxAge
Lnet/minecraft/client/particle/Particle;maxAge:I
-
gravityStrength
protected float gravityStrength- Mappings:
Namespace Name Mixin selector official u
Lffy;u:F
intermediary field_3844
Lnet/minecraft/class_703;field_3844:F
named gravityStrength
Lnet/minecraft/client/particle/Particle;gravityStrength:F
-
red
protected float red- Mappings:
Namespace Name Mixin selector official v
Lffy;v:F
intermediary field_3861
Lnet/minecraft/class_703;field_3861:F
named red
Lnet/minecraft/client/particle/Particle;red:F
-
green
protected float green- Mappings:
Namespace Name Mixin selector official w
Lffy;w:F
intermediary field_3842
Lnet/minecraft/class_703;field_3842:F
named green
Lnet/minecraft/client/particle/Particle;green:F
-
blue
protected float blue- Mappings:
Namespace Name Mixin selector official x
Lffy;x:F
intermediary field_3859
Lnet/minecraft/class_703;field_3859:F
named blue
Lnet/minecraft/client/particle/Particle;blue:F
-
alpha
protected float alpha- Mappings:
Namespace Name Mixin selector official y
Lffy;y:F
intermediary field_3841
Lnet/minecraft/class_703;field_3841:F
named alpha
Lnet/minecraft/client/particle/Particle;alpha:F
-
angle
protected float angle- Mappings:
Namespace Name Mixin selector official z
Lffy;z:F
intermediary field_3839
Lnet/minecraft/class_703;field_3839:F
named angle
Lnet/minecraft/client/particle/Particle;angle:F
-
prevAngle
protected float prevAngle- Mappings:
Namespace Name Mixin selector official A
Lffy;A:F
intermediary field_3857
Lnet/minecraft/class_703;field_3857:F
named prevAngle
Lnet/minecraft/client/particle/Particle;prevAngle:F
-
velocityMultiplier
protected float velocityMultiplier- Mappings:
Namespace Name Mixin selector official B
Lffy;B:F
intermediary field_28786
Lnet/minecraft/class_703;field_28786:F
named velocityMultiplier
Lnet/minecraft/client/particle/Particle;velocityMultiplier:F
-
field_28787
protected boolean field_28787- Mappings:
Namespace Name Mixin selector official C
Lffy;C:Z
intermediary field_28787
Lnet/minecraft/class_703;field_28787:Z
named field_28787
Lnet/minecraft/client/particle/Particle;field_28787:Z
-
-
Constructor Details
-
Particle
- Mappings:
Namespace Name Mixin selector official <init>
Lffy;<init>(Lfdj;DDD)V
intermediary <init>
Lnet/minecraft/class_703;<init>(Lnet/minecraft/class_638;DDD)V
named <init>
Lnet/minecraft/client/particle/Particle;<init>(Lnet/minecraft/client/world/ClientWorld;DDD)V
-
Particle
public Particle(ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ) - Mappings:
Namespace Name Mixin selector official <init>
Lffy;<init>(Lfdj;DDDDDD)V
intermediary <init>
Lnet/minecraft/class_703;<init>(Lnet/minecraft/class_638;DDDDDD)V
named <init>
Lnet/minecraft/client/particle/Particle;<init>(Lnet/minecraft/client/world/ClientWorld;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 official c
Lffy;c(F)Lffy;
intermediary method_3075
Lnet/minecraft/class_703;method_3075(F)Lnet/minecraft/class_703;
named move
Lnet/minecraft/client/particle/Particle;move(F)Lnet/minecraft/client/particle/Particle;
-
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 official b
Lffy;b(DDD)V
intermediary method_34753
Lnet/minecraft/class_703;method_34753(DDD)V
named setVelocity
Lnet/minecraft/client/particle/Particle;setVelocity(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 official d
Lffy;d(F)Lffy;
intermediary method_3087
Lnet/minecraft/class_703;method_3087(F)Lnet/minecraft/class_703;
named scale
Lnet/minecraft/client/particle/Particle;scale(F)Lnet/minecraft/client/particle/Particle;
-
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 official a
Lffy;a(FFF)V
intermediary method_3084
Lnet/minecraft/class_703;method_3084(FFF)V
named setColor
Lnet/minecraft/client/particle/Particle;setColor(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 official e
Lffy;e(F)V
intermediary method_3083
Lnet/minecraft/class_703;method_3083(F)V
named setAlpha
Lnet/minecraft/client/particle/Particle;setAlpha(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 official a
Lffy;a(I)V
intermediary method_3077
Lnet/minecraft/class_703;method_3077(I)V
named setMaxAge
Lnet/minecraft/client/particle/Particle;setMaxAge(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 official j
Lffy;j()I
intermediary method_3082
Lnet/minecraft/class_703;method_3082()I
named getMaxAge
Lnet/minecraft/client/particle/Particle;getMaxAge()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 official a
Lffy;a()V
intermediary method_3070
Lnet/minecraft/class_703;method_3070()V
named tick
Lnet/minecraft/client/particle/Particle;tick()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 official a
Lffy;a(Lehi;Lelt;F)V
intermediary method_3074
Lnet/minecraft/class_703;method_3074(Lnet/minecraft/class_4588;Lnet/minecraft/class_4184;F)V
named buildGeometry
Lnet/minecraft/client/particle/Particle;buildGeometry(Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/client/render/Camera;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 official b
Lffy;b()Lfgc;
intermediary method_18122
Lnet/minecraft/class_703;method_18122()Lnet/minecraft/class_3999;
named getType
Lnet/minecraft/client/particle/Particle;getType()Lnet/minecraft/client/particle/ParticleTextureSheet;
-
toString
-
markDead
public void markDead()Marks this particle as ready to be removed from the containingClientWorld
.- Mappings:
Namespace Name Mixin selector official k
Lffy;k()V
intermediary method_3085
Lnet/minecraft/class_703;method_3085()V
named markDead
Lnet/minecraft/client/particle/Particle;markDead()V
-
setBoundingBoxSpacing
protected void setBoundingBoxSpacing(float spacingXZ, float spacingY) - Mappings:
Namespace Name Mixin selector official b
Lffy;b(FF)V
intermediary method_3080
Lnet/minecraft/class_703;method_3080(FF)V
named setBoundingBoxSpacing
Lnet/minecraft/client/particle/Particle;setBoundingBoxSpacing(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 official c
Lffy;c(DDD)V
intermediary method_3063
Lnet/minecraft/class_703;method_3063(DDD)V
named setPos
Lnet/minecraft/client/particle/Particle;setPos(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 official a
Lffy;a(DDD)V
intermediary method_3069
Lnet/minecraft/class_703;method_3069(DDD)V
named move
Lnet/minecraft/client/particle/Particle;move(DDD)V
-
repositionFromBoundingBox
protected void repositionFromBoundingBox()- Mappings:
Namespace Name Mixin selector official l
Lffy;l()V
intermediary method_3072
Lnet/minecraft/class_703;method_3072()V
named repositionFromBoundingBox
Lnet/minecraft/client/particle/Particle;repositionFromBoundingBox()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 official a
Lffy;a(F)I
intermediary method_3068
Lnet/minecraft/class_703;method_3068(F)I
named getBrightness
Lnet/minecraft/client/particle/Particle;getBrightness(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 official m
Lffy;m()Z
intermediary method_3086
Lnet/minecraft/class_703;method_3086()Z
named isAlive
Lnet/minecraft/client/particle/Particle;isAlive()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 official n
Lffy;n()Lecz;
intermediary method_3064
Lnet/minecraft/class_703;method_3064()Lnet/minecraft/class_238;
named getBoundingBox
Lnet/minecraft/client/particle/Particle;getBoundingBox()Lnet/minecraft/util/math/Box;
-
setBoundingBox
- Mappings:
Namespace Name Mixin selector official a
Lffy;a(Lecz;)V
intermediary method_3067
Lnet/minecraft/class_703;method_3067(Lnet/minecraft/class_238;)V
named setBoundingBox
Lnet/minecraft/client/particle/Particle;setBoundingBox(Lnet/minecraft/util/math/Box;)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 official o
Lffy;o()Ljava/util/Optional;
intermediary method_34019
Lnet/minecraft/class_703;method_34019()Ljava/util/Optional;
named getGroup
Lnet/minecraft/client/particle/Particle;getGroup()Ljava/util/Optional;
-