Skip to content

Commit 50c20e9

Browse files
committed
Add ParticleType registrar
1 parent 6018fb8 commit 50c20e9

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

src/main/java/dev/apexstudios/registree/Registree.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import dev.apexstudios.registree.registrar.GameRuleRegistrar;
1313
import dev.apexstudios.registree.registrar.ItemRegistrar;
1414
import dev.apexstudios.registree.registrar.MenuTypeRegistrar;
15+
import dev.apexstudios.registree.registrar.ParticleTypeRegistrar;
1516
import dev.apexstudios.registree.registrar.RecipeBookCategoryRegistrar;
1617
import dev.apexstudios.registree.registrar.RecipeSerializerRegistrar;
1718
import dev.apexstudios.registree.registrar.RecipeTypeRegistrar;
@@ -55,6 +56,7 @@ public Registree(String namespace, Consumer<Registrars> registrarsConsumer) {
5556
registrars.with(Registries.FLUID, FluidRegistrar::new);
5657
registrars.with(Registries.RECIPE_TYPE, RecipeTypeRegistrar::new);
5758
registrars.with(Registries.RECIPE_BOOK_CATEGORY, RecipeBookCategoryRegistrar::new);
59+
registrars.with(Registries.PARTICLE_TYPE, ParticleTypeRegistrar::new);
5860

5961
registrarsConsumer.accept(registrars);
6062
});
@@ -147,6 +149,10 @@ public RecipeBookCategoryRegistrar recipeBookCategories() {
147149
return (RecipeBookCategoryRegistrar) registrarOrThrow(Registries.RECIPE_BOOK_CATEGORY);
148150
}
149151

152+
public ParticleTypeRegistrar particleTypes() {
153+
return (ParticleTypeRegistrar) registrarOrThrow(Registries.PARTICLE_TYPE);
154+
}
155+
150156
public void registerEvents(IEventBus modBus) {
151157
this.modBus.notify(modBus);
152158
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package dev.apexstudios.registree.holder;
2+
3+
import net.minecraft.core.particles.ParticleType;
4+
import net.minecraft.core.registries.Registries;
5+
import net.minecraft.resources.Identifier;
6+
import net.minecraft.resources.ResourceKey;
7+
import net.neoforged.neoforge.registries.DeferredHolder;
8+
9+
public class DeferredParticleType<TParticleType extends ParticleType<?>> extends DeferredHolder<ParticleType<?>, TParticleType> {
10+
protected DeferredParticleType(ResourceKey<ParticleType<?>> registryKey) {
11+
super(registryKey);
12+
}
13+
14+
public static <TParticleType extends ParticleType<?>> DeferredParticleType<TParticleType> createParticleType(ResourceKey<ParticleType<?>> registryKey) {
15+
return new DeferredParticleType<>(registryKey);
16+
}
17+
18+
public static <TParticleType extends ParticleType<?>> DeferredParticleType<TParticleType> createParticleType(Identifier registryName) {
19+
return createParticleType(ResourceKey.create(Registries.PARTICLE_TYPE, registryName));
20+
}
21+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package dev.apexstudios.registree.registrar;
2+
3+
import dev.apexstudios.registree.Registree;
4+
import dev.apexstudios.registree.holder.DeferredParticleType;
5+
import java.util.function.Supplier;
6+
import net.minecraft.core.particles.ParticleType;
7+
import net.minecraft.core.particles.SimpleParticleType;
8+
import net.minecraft.core.registries.Registries;
9+
10+
public class ParticleTypeRegistrar extends Registrar<ParticleType<?>> {
11+
public ParticleTypeRegistrar(Registree registree) {
12+
super(registree, Registries.PARTICLE_TYPE);
13+
}
14+
15+
public <TParticleType extends ParticleType<?>> DeferredParticleType<TParticleType> register(String identifier, Supplier<TParticleType> factory) {
16+
return registerForHolder(identifier, factory, DeferredParticleType::createParticleType);
17+
}
18+
19+
public DeferredParticleType<SimpleParticleType> register(String identifier, boolean overrideLimiter) {
20+
return register(identifier, () -> new SimpleParticleType(overrideLimiter));
21+
}
22+
23+
public DeferredParticleType<SimpleParticleType> register(String identifier) {
24+
return register(identifier, false);
25+
}
26+
}

0 commit comments

Comments
 (0)