## **General**
### **Performance:**
- Raytraced explosions now support multi-threading (this is enabled by default, but can be disabled in the config)
- To allow for further optimization on different devices, we have added some settings to the config for multi-threading
- Even when not multi-threaded, raytraced explosions are still much faster now
- Non-raytraced explosions are much faster now at the cost of omitting block updates (the threshold can be adjusted in the config)
### **Additions:**
- You can now enable explosion profiling to benchmark explosions on your device (this is disabled by default, but can be enabled in the config)
- Explosions can now display particles
### **Changes:**
- The "Explosion Performance Factor" and the "Performant Explosion" config values are no longer used, but remain in place to allow for backwards compatability (they will be removed in future versions)
## **Developers**
### **ImprovedExplosion:**
- All old block explosion methods have been deprecated in favor of the new one
- Multi-threading cannot be enabled / disabled by the developer, only the user can decide whether to use it
- To ensure additional work that should complete after an explosion has concluded is executed at the right time, Improved Explosions now support the option to supply a consumer that executes after an explosion finished (only necessary for explosions that run the risk of being multi-threaded, as blocking the main thread is not possible without a deadlock)
- To support custom effects, Improved Explosions can optionally be given a BlockExplosionEffect, which will leave the finishing of the explosion to your provided effect (Try to use the new rule system where possible instead for the best performance)
### **ExplosionHelper:**
- All old explosion methods have been depreacted in favor of the new ones
- All explosions exist in a slow (performing block updates) and fast version
- Additionally, a custom BlockExplosionEffect can be applied to all shapes (Try to use the new rule system where possible instead for the best performance)
### **Additions (Utility):**
- LightUpdateHelper: Helper class for updating direct and indirect lights when using fast removal operations, which would otherwise not update light at all (They are called in Improved Explosions and the ExplosionHelper)
- HeightmapUpdateHelper: Helper class for updating the height maps when using fast removal operations, which would otherwise not update them (They are called in Improved Explosions and the ExplosionHelper)
- BiomeSetter: Similar to the ExplosionHelper, allowing for the modification of biomes in Cube, Sphere, and Cylinder shapes
- ExplosionRule System: See below for full explanation
### **ExplosionRule System:**
- ExplosionRules were introduced to allow the new fast explosion methods to have customizable results for every block they affect
- ExplosionRules must be registered, as they will have to be synched to the client, making it crucial that their behavior on both logical sides is identical
- Custom ExplosionRules can be created, but this mod already provides a large selection of ExplosionRules that can be used to filter blocks, provide block states for placement, or perform logical operations
- ExplosionRules are purely local, as they can only edit one block at a time, making them not applicable in all situations
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }