Class ParticleManager

java.lang.Object
net.minecraft.client.particle.ParticleManager
All Implemented Interfaces:
ResourceReloader

@Environment(CLIENT) public class ParticleManager extends Object implements ResourceReloader
Mappings:
Namespace Name
named net/minecraft/client/particle/ParticleManager
intermediary net/minecraft/class_702
official gcp
  • Field Details

    • LOGGER

      private static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      named LOGGER Lnet/minecraft/client/particle/ParticleManager;LOGGER:Lorg/slf4j/Logger;
      intermediary field_40505 Lnet/minecraft/class_702;field_40505:Lorg/slf4j/Logger;
      official b Lgcp;b:Lorg/slf4j/Logger;
    • FINDER

      private static final ResourceFinder FINDER
      Mappings:
      Namespace Name Mixin selector
      named FINDER Lnet/minecraft/client/particle/ParticleManager;FINDER:Lnet/minecraft/resource/ResourceFinder;
      intermediary field_40506 Lnet/minecraft/class_702;field_40506:Lnet/minecraft/class_7654;
      official c Lgcp;c:Lakk;
    • PARTICLES_PATH

      private static final Identifier PARTICLES_PATH
      Mappings:
      Namespace Name Mixin selector
      named PARTICLES_PATH Lnet/minecraft/client/particle/ParticleManager;PARTICLES_PATH:Lnet/minecraft/util/Identifier;
      intermediary field_41385 Lnet/minecraft/class_702;field_41385:Lnet/minecraft/class_2960;
      official d Lgcp;d:Lakr;
    • MAX_PARTICLE_COUNT

      private static final int MAX_PARTICLE_COUNT
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named MAX_PARTICLE_COUNT Lnet/minecraft/client/particle/ParticleManager;MAX_PARTICLE_COUNT:I
      intermediary field_32657 Lnet/minecraft/class_702;field_32657:I
      official e Lgcp;e:I
    • PARTICLE_TEXTURE_SHEETS

      private static final List<ParticleTextureSheet> PARTICLE_TEXTURE_SHEETS
      Mappings:
      Namespace Name Mixin selector
      named PARTICLE_TEXTURE_SHEETS Lnet/minecraft/client/particle/ParticleManager;PARTICLE_TEXTURE_SHEETS:Ljava/util/List;
      intermediary field_17820 Lnet/minecraft/class_702;field_17820:Ljava/util/List;
      official f Lgcp;f:Ljava/util/List;
    • world

      protected ClientWorld world
      Mappings:
      Namespace Name Mixin selector
      named world Lnet/minecraft/client/particle/ParticleManager;world:Lnet/minecraft/client/world/ClientWorld;
      intermediary field_3834 Lnet/minecraft/class_702;field_3834:Lnet/minecraft/class_638;
      official a Lgcp;a:Lfzf;
    • particles

      private final Map<ParticleTextureSheet,Queue<Particle>> particles
      Mappings:
      Namespace Name Mixin selector
      named particles Lnet/minecraft/client/particle/ParticleManager;particles:Ljava/util/Map;
      intermediary field_3830 Lnet/minecraft/class_702;field_3830:Ljava/util/Map;
      official g Lgcp;g:Ljava/util/Map;
    • newEmitterParticles

      private final Queue<EmitterParticle> newEmitterParticles
      Mappings:
      Namespace Name Mixin selector
      named newEmitterParticles Lnet/minecraft/client/particle/ParticleManager;newEmitterParticles:Ljava/util/Queue;
      intermediary field_3837 Lnet/minecraft/class_702;field_3837:Ljava/util/Queue;
      official h Lgcp;h:Ljava/util/Queue;
    • textureManager

      private final TextureManager textureManager
      Mappings:
      Namespace Name Mixin selector
      named textureManager Lnet/minecraft/client/particle/ParticleManager;textureManager:Lnet/minecraft/client/texture/TextureManager;
      intermediary field_3831 Lnet/minecraft/class_702;field_3831:Lnet/minecraft/class_1060;
      official i Lgcp;i:Lgqm;
    • random

      private final Random random
      Mappings:
      Namespace Name Mixin selector
      named random Lnet/minecraft/client/particle/ParticleManager;random:Lnet/minecraft/util/math/random/Random;
      intermediary field_3832 Lnet/minecraft/class_702;field_3832:Lnet/minecraft/class_5819;
      official j Lgcp;j:Layw;
    • factories

      private final Int2ObjectMap<ParticleFactory<?>> factories
      Mappings:
      Namespace Name Mixin selector
      named factories Lnet/minecraft/client/particle/ParticleManager;factories:Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;
      intermediary field_3835 Lnet/minecraft/class_702;field_3835:Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;
      official k Lgcp;k:Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;
    • newParticles

      private final Queue<Particle> newParticles
      Mappings:
      Namespace Name Mixin selector
      named newParticles Lnet/minecraft/client/particle/ParticleManager;newParticles:Ljava/util/Queue;
      intermediary field_3836 Lnet/minecraft/class_702;field_3836:Ljava/util/Queue;
      official l Lgcp;l:Ljava/util/Queue;
    • spriteAwareFactories

      private final Map<Identifier,ParticleManager.SimpleSpriteProvider> spriteAwareFactories
      Mappings:
      Namespace Name Mixin selector
      named spriteAwareFactories Lnet/minecraft/client/particle/ParticleManager;spriteAwareFactories:Ljava/util/Map;
      intermediary field_18300 Lnet/minecraft/class_702;field_18300:Ljava/util/Map;
      official m Lgcp;m:Ljava/util/Map;
    • particleAtlasTexture

      private final SpriteAtlasTexture particleAtlasTexture
      Mappings:
      Namespace Name Mixin selector
      named particleAtlasTexture Lnet/minecraft/client/particle/ParticleManager;particleAtlasTexture:Lnet/minecraft/client/texture/SpriteAtlasTexture;
      intermediary field_18301 Lnet/minecraft/class_702;field_18301:Lnet/minecraft/class_1059;
      official n Lgcp;n:Lgqk;
    • groupCounts

      private final Object2IntOpenHashMap<ParticleGroup> groupCounts
      Mappings:
      Namespace Name Mixin selector
      named groupCounts Lnet/minecraft/client/particle/ParticleManager;groupCounts:Lit/unimi/dsi/fastutil/objects/Object2IntOpenHashMap;
      intermediary field_29072 Lnet/minecraft/class_702;field_29072:Lit/unimi/dsi/fastutil/objects/Object2IntOpenHashMap;
      official o Lgcp;o:Lit/unimi/dsi/fastutil/objects/Object2IntOpenHashMap;
  • Constructor Details

    • ParticleManager

      public ParticleManager(ClientWorld world, TextureManager textureManager)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/client/particle/ParticleManager;<init>(Lnet/minecraft/client/world/ClientWorld;Lnet/minecraft/client/texture/TextureManager;)V
      intermediary <init> Lnet/minecraft/class_702;<init>(Lnet/minecraft/class_638;Lnet/minecraft/class_1060;)V
      official <init> Lgcp;<init>(Lfzf;Lgqm;)V
  • Method Details

    • registerDefaultFactories

      private void registerDefaultFactories()
      Mappings:
      Namespace Name Mixin selector
      named registerDefaultFactories Lnet/minecraft/client/particle/ParticleManager;registerDefaultFactories()V
      intermediary method_3062 Lnet/minecraft/class_702;method_3062()V
      official e Lgcp;e()V
    • registerFactory

      private <T extends ParticleEffect> void registerFactory(ParticleType<T> type, ParticleFactory<T> factory)
      Mappings:
      Namespace Name Mixin selector
      named registerFactory Lnet/minecraft/client/particle/ParticleManager;registerFactory(Lnet/minecraft/particle/ParticleType;Lnet/minecraft/client/particle/ParticleFactory;)V
      intermediary method_3043 Lnet/minecraft/class_702;method_3043(Lnet/minecraft/class_2396;Lnet/minecraft/class_707;)V
      official a Lgcp;a(Lll;Lgcq;)V
    • registerBlockLeakFactory

      private <T extends ParticleEffect> void registerBlockLeakFactory(ParticleType<T> type, ParticleFactory.BlockLeakParticleFactory<T> factory)
      Mappings:
      Namespace Name Mixin selector
      named registerBlockLeakFactory Lnet/minecraft/client/particle/ParticleManager;registerBlockLeakFactory(Lnet/minecraft/particle/ParticleType;Lnet/minecraft/client/particle/ParticleFactory$BlockLeakParticleFactory;)V
      intermediary method_49338 Lnet/minecraft/class_702;method_49338(Lnet/minecraft/class_2396;Lnet/minecraft/class_707$class_8187;)V
      official a Lgcp;a(Lll;Lgcq$a;)V
    • registerFactory

      private <T extends ParticleEffect> void registerFactory(ParticleType<T> type, ParticleManager.SpriteAwareFactory<T> factory)
      Mappings:
      Namespace Name Mixin selector
      named registerFactory Lnet/minecraft/client/particle/ParticleManager;registerFactory(Lnet/minecraft/particle/ParticleType;Lnet/minecraft/client/particle/ParticleManager$SpriteAwareFactory;)V
      intermediary method_18834 Lnet/minecraft/class_702;method_18834(Lnet/minecraft/class_2396;Lnet/minecraft/class_702$class_4091;)V
      official a Lgcp;a(Lll;Lgcp$c;)V
    • reload

      public CompletableFuture<Void> reload(ResourceReloader.Synchronizer synchronizer, ResourceManager manager, Profiler prepareProfiler, Profiler applyProfiler, Executor prepareExecutor, Executor applyExecutor)
      Performs a reload. Returns a future that is completed when the reload is completed.

      In a reload, there is a prepare stage and an apply stage. For the prepare stage, you should create completable futures with CompletableFuture.supplyAsync(..., prepareExecutor) to ensure the prepare actions are done with the prepare executor. Then, you should have a completable future for all the prepared actions, and call combinedPrepare.thenCompose(synchronizer::waitFor) to notify the synchronizer. Finally, you should run CompletableFuture.thenAcceptAsync(..., applyExecutor) for apply actions. In the end, returns the result of thenAcceptAsync.

      Specified by:
      reload in interface ResourceReloader
      Parameters:
      synchronizer - the synchronizer
      manager - the resource manager
      prepareProfiler - the profiler for prepare stage
      applyProfiler - the profiler for apply stage
      prepareExecutor - the executor for prepare stage
      applyExecutor - the executor for apply stage
      Returns:
      a future for the reload
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named reload Lnet/minecraft/resource/ResourceReloader;reload(Lnet/minecraft/resource/ResourceReloader$Synchronizer;Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/util/profiler/Profiler;Lnet/minecraft/util/profiler/Profiler;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
      intermediary method_25931 Lnet/minecraft/class_3302;method_25931(Lnet/minecraft/class_3302$class_4045;Lnet/minecraft/class_3300;Lnet/minecraft/class_3695;Lnet/minecraft/class_3695;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
      official a Laty;a(Laty$a;Laue;Lbnf;Lbnf;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
    • clearAtlas

      public void clearAtlas()
      Mappings:
      Namespace Name Mixin selector
      named clearAtlas Lnet/minecraft/client/particle/ParticleManager;clearAtlas()V
      intermediary method_18829 Lnet/minecraft/class_702;method_18829()V
      official a Lgcp;a()V
    • loadTextureList

      private Optional<List<Identifier>> loadTextureList(Identifier id, Resource resource)
      Mappings:
      Namespace Name Mixin selector
      named loadTextureList Lnet/minecraft/client/particle/ParticleManager;loadTextureList(Lnet/minecraft/util/Identifier;Lnet/minecraft/resource/Resource;)Ljava/util/Optional;
      intermediary method_18836 Lnet/minecraft/class_702;method_18836(Lnet/minecraft/class_2960;Lnet/minecraft/class_3298;)Ljava/util/Optional;
      official a Lgcp;a(Lakr;Lauc;)Ljava/util/Optional;
    • addEmitter

      public void addEmitter(Entity entity, ParticleEffect parameters)
      Mappings:
      Namespace Name Mixin selector
      named addEmitter Lnet/minecraft/client/particle/ParticleManager;addEmitter(Lnet/minecraft/entity/Entity;Lnet/minecraft/particle/ParticleEffect;)V
      intermediary method_3061 Lnet/minecraft/class_702;method_3061(Lnet/minecraft/class_1297;Lnet/minecraft/class_2394;)V
      official a Lgcp;a(Lbsr;Llk;)V
    • addEmitter

      public void addEmitter(Entity entity, ParticleEffect parameters, int maxAge)
      Mappings:
      Namespace Name Mixin selector
      named addEmitter Lnet/minecraft/client/particle/ParticleManager;addEmitter(Lnet/minecraft/entity/Entity;Lnet/minecraft/particle/ParticleEffect;I)V
      intermediary method_3051 Lnet/minecraft/class_702;method_3051(Lnet/minecraft/class_1297;Lnet/minecraft/class_2394;I)V
      official a Lgcp;a(Lbsr;Llk;I)V
    • addParticle

      @Nullable public @Nullable Particle addParticle(ParticleEffect parameters, double x, double y, double z, double velocityX, double velocityY, double velocityZ)
      Mappings:
      Namespace Name Mixin selector
      named addParticle Lnet/minecraft/client/particle/ParticleManager;addParticle(Lnet/minecraft/particle/ParticleEffect;DDDDDD)Lnet/minecraft/client/particle/Particle;
      intermediary method_3056 Lnet/minecraft/class_702;method_3056(Lnet/minecraft/class_2394;DDDDDD)Lnet/minecraft/class_703;
      official a Lgcp;a(Llk;DDDDDD)Lgcn;
    • createParticle

      @Nullable private <T extends ParticleEffect> @Nullable Particle createParticle(T parameters, double x, double y, double z, double velocityX, double velocityY, double velocityZ)
      Mappings:
      Namespace Name Mixin selector
      named createParticle Lnet/minecraft/client/particle/ParticleManager;createParticle(Lnet/minecraft/particle/ParticleEffect;DDDDDD)Lnet/minecraft/client/particle/Particle;
      intermediary method_3055 Lnet/minecraft/class_702;method_3055(Lnet/minecraft/class_2394;DDDDDD)Lnet/minecraft/class_703;
      official b Lgcp;b(Llk;DDDDDD)Lgcn;
    • addParticle

      public void addParticle(Particle particle)
      Mappings:
      Namespace Name Mixin selector
      named addParticle Lnet/minecraft/client/particle/ParticleManager;addParticle(Lnet/minecraft/client/particle/Particle;)V
      intermediary method_3058 Lnet/minecraft/class_702;method_3058(Lnet/minecraft/class_703;)V
      official a Lgcp;a(Lgcn;)V
    • tick

      public void tick()
      Mappings:
      Namespace Name Mixin selector
      named tick Lnet/minecraft/client/particle/ParticleManager;tick()V
      intermediary method_3057 Lnet/minecraft/class_702;method_3057()V
      official b Lgcp;b()V
    • tickParticles

      private void tickParticles(Collection<Particle> particles)
      Ticks all particles belonging to the same texture sheet.
      Parameters:
      particles - a collection of particles from the same sheet
      Mappings:
      Namespace Name Mixin selector
      named tickParticles Lnet/minecraft/client/particle/ParticleManager;tickParticles(Ljava/util/Collection;)V
      intermediary method_3048 Lnet/minecraft/class_702;method_3048(Ljava/util/Collection;)V
      official a Lgcp;a(Ljava/util/Collection;)V
    • addTo

      private void addTo(ParticleGroup group, int count)
      Mappings:
      Namespace Name Mixin selector
      named addTo Lnet/minecraft/client/particle/ParticleManager;addTo(Lnet/minecraft/particle/ParticleGroup;I)V
      intermediary method_34022 Lnet/minecraft/class_702;method_34022(Lnet/minecraft/class_5878;I)V
      official a Lgcp;a(Llj;I)V
    • tickParticle

      private void tickParticle(Particle particle)
      Mappings:
      Namespace Name Mixin selector
      named tickParticle Lnet/minecraft/client/particle/ParticleManager;tickParticle(Lnet/minecraft/client/particle/Particle;)V
      intermediary method_3059 Lnet/minecraft/class_702;method_3059(Lnet/minecraft/class_703;)V
      official b Lgcp;b(Lgcn;)V
    • renderParticles

      public void renderParticles(LightmapTextureManager lightmapTextureManager, Camera camera, float tickDelta)
      Mappings:
      Namespace Name Mixin selector
      named renderParticles Lnet/minecraft/client/particle/ParticleManager;renderParticles(Lnet/minecraft/client/render/LightmapTextureManager;Lnet/minecraft/client/render/Camera;F)V
      intermediary method_3049 Lnet/minecraft/class_702;method_3049(Lnet/minecraft/class_765;Lnet/minecraft/class_4184;F)V
      official a Lgcp;a(Lgey;Lffy;F)V
    • setWorld

      public void setWorld(@Nullable @Nullable ClientWorld world)
      Mappings:
      Namespace Name Mixin selector
      named setWorld Lnet/minecraft/client/particle/ParticleManager;setWorld(Lnet/minecraft/client/world/ClientWorld;)V
      intermediary method_3045 Lnet/minecraft/class_702;method_3045(Lnet/minecraft/class_638;)V
      official a Lgcp;a(Lfzf;)V
    • addBlockBreakParticles

      public void addBlockBreakParticles(BlockPos pos, BlockState state)
      Mappings:
      Namespace Name Mixin selector
      named addBlockBreakParticles Lnet/minecraft/client/particle/ParticleManager;addBlockBreakParticles(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V
      intermediary method_3046 Lnet/minecraft/class_702;method_3046(Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;)V
      official a Lgcp;a(Ljd;Ldtc;)V
    • addBlockBreakingParticles

      public void addBlockBreakingParticles(BlockPos pos, Direction direction)
      Mappings:
      Namespace Name Mixin selector
      named addBlockBreakingParticles Lnet/minecraft/client/particle/ParticleManager;addBlockBreakingParticles(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;)V
      intermediary method_3054 Lnet/minecraft/class_702;method_3054(Lnet/minecraft/class_2338;Lnet/minecraft/class_2350;)V
      official a Lgcp;a(Ljd;Lji;)V
    • getDebugString

      public String getDebugString()
      Mappings:
      Namespace Name Mixin selector
      named getDebugString Lnet/minecraft/client/particle/ParticleManager;getDebugString()Ljava/lang/String;
      intermediary method_3052 Lnet/minecraft/class_702;method_3052()Ljava/lang/String;
      official d Lgcp;d()Ljava/lang/String;
    • canAdd

      private boolean canAdd(ParticleGroup group)
      Returns whether another particle from group can be rendered by this manager.
      Returns:
      whether another particle from group can be rendered by this manager
      Mappings:
      Namespace Name Mixin selector
      named canAdd Lnet/minecraft/client/particle/ParticleManager;canAdd(Lnet/minecraft/particle/ParticleGroup;)Z
      intermediary method_34021 Lnet/minecraft/class_702;method_34021(Lnet/minecraft/class_5878;)Z
      official a Lgcp;a(Llj;)Z
    • clearParticles

      private void clearParticles()
      Mappings:
      Namespace Name Mixin selector
      named clearParticles Lnet/minecraft/client/particle/ParticleManager;clearParticles()V
      intermediary method_48015 Lnet/minecraft/class_702;method_48015()V
      official f Lgcp;f()V