Cobblemon Firework Capsules
Release your Pokemon with a real fireworks display and unique stickers!

Core Features
Ball Capsule Crafting Recipe

Adding Fireworks
Ball capsules can be combined with any number of firework stars.

Capsule Station Crafting Recipe
Special thanks to dogtorbloo for creating the unique block model!

Sticker System
Sticker Crafting
Stickers are crafted using Paper + Gunpowder + an additional ingredient.
Version 1.0.0 includes 18 stickers - one for each Pokemon type, created using corresponding type gems.

Sticker Modification
Stickers can be modified using dyes, Diamond, or Glowstone Dust to alter their properties similar to firework stars (note that most stickers were designed without these properties in mind).

Sticker Combination
Stickers can be combined with ball capsules along with other stickers and firework stars to create various effects.

Addon Support
Firework Capsules uses a custom particle system that expands Minecraft's existing fireworks system, allowing for custom particle integration.
StickerExplosion Class
The StickerExplosion class requires five fields:
ResourceLocation id;
IntList colors;
IntList fadeColors;
boolean hasTrail;
boolean hasTwinkle;
The identifier and colors are immutable and must be set during registration. The other three parameters can optionally be set during initialization and/or by players during gameplay.
Sticker Item Class
The sticker item must be registered with a corresponding StickerExplosion.
new StickerItem(new StickerExplosion(...));
Custom Particle Function
The custom particle function is a consumer that provides parameters for setting up your custom particles. The scale parameter can be used to scale the radius and particle sizes and depends on the Pokemon's size. The scaleFactor parameter is determined by the scale parameter and can be used to adjust the number of generated particles based on the Pokemon's size.
@FunctionalInterface
public interface CustomParticleFunction {
void accept(ClientLevel clientLevel, double x, double y, double z, float rot, ParticleEngine particleEngine, StickerExplosion explosion, float scale, double scaleFactor);
}
Sticker Registration Event
Each StickerExplosion must also be registered in the sticker registration event, which runs on the client side.
Fabric
public class ExampleClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
StickerRegistryEvent.EVENT.register((event) -> {
event.register(StickerExplosion, CustomParticleFunction);
);
}
}
NeoForge
This event runs on the MOD bus.
@EventBusSubscriber(value = Dist.CLIENT, modid = Example.MOD_ID, bus = EventBusSubscriber.Bus.MOD)
public static class ClientEvents {
@SubscribeEvent
public static void registerStickers(StickerRegistryEvent event) {
event.register(StickerExplosion, CustomParticleFunction);
}
}