Changes

Summary

  1. Remove type bound on IHaveLoader (details)
  2. Fix default instances without loaders not serializing properly (details)
  3. Rework how boilerplate loader predicates are registered (details)
  4. Give generic loader registries names (details)
Commit 86b871d74fcfaee091410dd51821299115787f3a by KnightMiner
Remove type bound on IHaveLoader

Allows reusing a single loadable for multiple registries, rather than needing to resort to nesting all the time.
Probably still stuck nesting predicates as that is a generic type to get and and or working
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemTagPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/block/BlockPropertiesPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/IJsonPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/damage/SourceMessagePredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/entity/HasEnchantmentEntityPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemSetPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/registry/DirectRegistryField.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/loader/NestedLoader.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/block/BlockPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/entity/EntitySetPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/entity/LivingEntityPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/damage/DamageSourcePredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/damage/SourceAttackerPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/registry/GenericLoaderRegistry.java (diff)
Commit dc252ce1629a6a418b41f95bd818d5bd6b82e945 by KnightMiner
Fix default instances without loaders not serializing properly
The file was modifiedsrc/main/java/slimeknights/mantle/data/registry/GenericLoaderRegistry.java (diff)
Commit bc762479e0233618b94fa0cce36e472de56449a9 by KnightMiner
Rework how boilerplate loader predicates are registered

Instead of having 3 extra fields in the class, they are all registered automatically in PredicateLoader. In addition, we now have RegistrySetLoader and FallbackLoader to handle other common predicate elements
Static methods were added to the interface to construct the common type as its less clear the loader can handle that
Semantic change: all boilerplate loader types are registered under mantle, this makes the fallback registry work better.
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/entity/TagEntityPredicate.java
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/block/BlockPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/damage/DamageSourcePredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/entity/LivingEntityPredicate.java (diff)
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/AndJsonPredicate.java
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/IJsonPredicate.java (diff)
The file was addedsrc/main/java/slimeknights/mantle/data/predicate/RegistryPredicateRegistry.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemSetPredicate.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/block/SetBlockPredicate.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/InvertedJsonPredicate.java
The file was addedsrc/main/java/slimeknights/mantle/data/predicate/FallbackPredicateRegistry.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/entity/EntitySetPredicate.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/block/TagBlockPredicate.java
The file was modifiedsrc/main/java/slimeknights/mantle/data/registry/GenericLoaderRegistry.java (diff)
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemTagPredicate.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/OrJsonPredicate.java
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemPredicate.java (diff)
The file was addedsrc/main/java/slimeknights/mantle/data/predicate/PredicateRegistry.java
The file was removedsrc/main/java/slimeknights/mantle/data/predicate/NestedJsonPredicateLoader.java
The file was modifiedsrc/main/java/slimeknights/mantle/Mantle.java (diff)
Commit 344d4cd2a3a821504634dd07ba7fc7bb1bd06932 by KnightMiner
Give generic loader registries names

Will make debug in the console easier, along with JSON errors
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/block/BlockPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/registry/GenericLoaderRegistry.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/item/ItemPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/PredicateRegistry.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/FallbackPredicateRegistry.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/RegistryPredicateRegistry.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/entity/LivingEntityPredicate.java (diff)
The file was modifiedsrc/main/java/slimeknights/mantle/data/predicate/damage/DamageSourcePredicate.java (diff)