Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity.registry.var;
2
3import dev.architectury.registry.registries.DeferredRegister;
4import dev.architectury.registry.registries.RegistrySupplier;
5import net.lerariemann.infinity.block.custom.AltarBlock;
6import net.minecraft.client.particle.ParticleEngine;
7import net.minecraft.core.particles.ParticleType;
8import net.minecraft.core.particles.SimpleParticleType;
9import net.minecraft.core.registries.Registries;
10//? if fabric {
11import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry;
12//?}
13//? if neoforge {
14/*import net.neoforged.neoforge.client.event.RegisterParticleProvidersEvent;
15*///?}
16//? if forge {
17/*import net.minecraftforge.client.event.RegisterParticleProvidersEvent;
18*///?}
19
20//? if <1.21 {
21/*import net.minecraft.client.particle.EnchantmentTableParticle;
22*///?} else {
23import net.minecraft.client.particle.FlyTowardsPositionParticle;
24//?}
25
26import java.util.ArrayList;
27import java.util.List;
28
29import static net.lerariemann.infinity.InfinityMod.MOD_ID;
30
31public class ModParticles {
32 public static final DeferredRegister<ParticleType<?>> PARTICLES =
33 DeferredRegister.create(MOD_ID, Registries.PARTICLE_TYPE);
34 public static final List<RegistrySupplier<SimpleParticleType>> altarParticles = new ArrayList<>();
35
36 static class Type extends SimpleParticleType {
37 protected Type() {
38 super(false);
39 }
40 }
41 private static void register(String key) {
42 RegistrySupplier<SimpleParticleType> v = PARTICLES.register(key, Type::new);
43 altarParticles.add(v);
44 }
45
46 public static void registerServer() {
47 for (int i = 0; i < AltarBlock.numColors; i++) register("altar_" + i);
48 PARTICLES.register();
49 }
50
51 //? if fabric {
52 public static void registerClientFabric() {
53 for (RegistrySupplier<SimpleParticleType> p : altarParticles) {
54 ParticleFactoryRegistry.getInstance().register(
55 //?}
56 //? if neoforge {
57 /*public static void registerClientNeoforge(RegisterParticleProvidersEvent event) {
58 for (RegistrySupplier<SimpleParticleType> p : altarParticles) {
59 event.registerSpriteSet(
60 *///?}
61 //? if forge {
62 /*public static void registerClientForge(RegisterParticleProvidersEvent event) {
63 for (RegistrySupplier<SimpleParticleType> p : altarParticles) {
64 event.registerSpriteSet(
65 *///?}
66 p.get(),
67 //? if <1.21 {
68 /*EnchantmentTableParticle.Provider::new
69 *///?} else {
70 FlyTowardsPositionParticle.EnchantProvider::new
71 //?}
72 );
73 }
74 }
75}