Commit
aeec65fa23948af734557a1535d8a148c6a3c388
by KnightMinerCleanup throws declarations on loadable
Moved them to the Javadocs so they are not automatically added to every override, the goal is just to tell the implementer what exception is expected there.
|
| src/main/java/slimeknights/mantle/data/loadable/common/IngredientLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/predicate/FallbackPredicateRegistry.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/DirectRegistryField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/CollectionLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/MappedLoadable.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/FluidIngredient.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/CompactLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/ColorLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/DirectField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/CodecLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/RequiredField.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/GenericLoaderRegistry.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/Loadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/NullableField.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/NamedComponentRegistry.java (diff) |
| src/main/java/slimeknights/mantle/recipe/helper/ItemOutput.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/DefaultingLoaderRegistry.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/NBTLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/DefaultingField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/LoadableField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/primitive/EnumLoadable.java (diff) |
|
| src/main/java/slimeknights/mantle/util/typed/TypedMap.java |
| src/main/java/slimeknights/mantle/util/typed/MutableTypedMap.java |
| src/main/java/slimeknights/mantle/util/typed/TypedMapBuilder.java |
| src/main/java/slimeknights/mantle/util/typed/package-info.java |
| src/main/java/slimeknights/mantle/util/typed/BackedTypedMap.java |
Commit
b79c3d73e3c282403c93e6bb0c50e915c1dcb636
by KnightMinerImplement LoadableRecipeSerializer
To minimize additional boilerplate, I opted to add a context to record loadables where additional data can be passed to the root record. LoadableField now has a superclass RecordField, which has context aware methods. Idea here being LoadableField works when there is no context (and has impls passing in empty context), while RecordField is only usable in a record builder. LoadableRecord got context parameters, but still has the method headers with no context for IGenericLoader and non-loadable usage compact. They just pass in empty, which means context does not currently propigate to nested loaders unless you use a direct field. I don't think there is any justification for including context in all loader usage unless I start including other stuff in context. ContextKey allows creating keys for said data, by default there are two - the recipe ID, and the recipe serializer. In addition AbstractRecipeBuilder has a finished recipe using loadables Finally, added TypeAwareRecipeSerializer for the sake of recipes that use the serializer to swap types, lets them reuse a loadable instance.
|
| src/main/java/slimeknights/mantle/data/loadable/common/NBTLoadable.java (diff) |
| src/main/java/slimeknights/mantle/recipe/helper/LoadableRecipeSerializer.java |
| src/main/java/slimeknights/mantle/data/loadable/field/DirectField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/predicate/block/BlockPropertiesPredicate.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable6.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable1.java (diff) |
| src/main/java/slimeknights/mantle/recipe/data/AbstractRecipeBuilder.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable11.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable4.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable16.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable9.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/LoadableField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/BlockStateLoadable.java (diff) |
| src/main/java/slimeknights/mantle/recipe/helper/TypeAwareRecipeSerializer.java |
| src/main/java/slimeknights/mantle/data/loadable/common/ItemStackLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable13.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/ContextField.java |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable8.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/ContextKey.java |
| src/main/java/slimeknights/mantle/data/loadable/field/RecordField.java |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable5.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable10.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable2.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable14.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable3.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable12.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/CompactLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable15.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable7.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/MappedLoadable.java (diff) |
Commit
1fdf5d22584f1a8d459ec1d1d3d4ec85e2c5d9da
by KnightMinerMake collection loadable error during datagen if given too many elements
We never want to datagen a combination that is illegal to parse, defeats the whole purpose of datagen Does not currently validate network in the same way, partly as if you got that far you should be valid, partly as a vew casees with custom networking can get weird behavior, like empty tags syncing as an empty set
|
| src/main/java/slimeknights/mantle/data/loadable/mapping/CollectionLoadable.java (diff) |
Commit
a33309837c6d17fc88ab87768aebf692dd505a2c
by KnightMinerImplement EitherLoadable
This is designed for things like FluidIngredient and EntityIngredient that have multiple forms controlled by subclasses. USing this let me much simplify the impl for both getting loadables I did not use it for ItemOutput as that one wants 4 different loadable variants, which conflicts with how the either internals work. Only way to deal with this breaks the datagen only ingredients so I figured I'd stick with what works.
|
| src/main/java/slimeknights/mantle/recipe/ingredient/FluidContainerIngredient.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/EntityIngredient.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/FluidIngredient.java (diff) |
| src/main/java/slimeknights/mantle/fluid/tooltip/FluidTooltipHandler.java (diff) |
| src/main/java/slimeknights/mantle/recipe/data/FluidNameIngredient.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/IAmLoadable.java |
| src/main/java/slimeknights/mantle/data/loadable/mapping/EitherLoadable.java |
| src/main/java/slimeknights/mantle/data/loadable/Loadables.java (diff) |
|
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/SizedIngredient.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/Loadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/TryDirectField.java |
|
| src/main/java/slimeknights/mantle/data/loadable/common/ItemStackLoadable.java (diff) |
Commit
92f453ec79528af8397ae412b93fd4e12e2c231d
by KnightMinerExpand debug info on logging recipe serializer
On serialization, print the recipe ID, type, and class. On deserialization, print the recipe ID, and in loadable serializers print the type (if type aware) and the loadable. Makes it easier ot identify which recipe is failing.
|
| src/main/java/slimeknights/mantle/recipe/helper/LoadableRecipeSerializer.java (diff) |
| src/main/java/slimeknights/mantle/recipe/helper/LoggingRecipeSerializer.java (diff) |
Commit
c536ba21ae5f411609a7f967f9274461dbd8ee58
by KnightMinerRename FriendlyByteBuffer methods on Loadable to match StreamCodec
Saves me from doing a refactor later making it less effort for addons to update that directly call the methods. As part of implementation, created Streamable, which is a less generic version of StreamCodec. I would just use StreamCodec but it has the minor issue of not existing. EitherLoadable now uses streamable instead of loadable for its network logic as that makes it easier to implement a custom variant. GenericLoaderRegistry and GenericNamedComponent both have their methods updated to the new name with the old ones kept around as deprecated. This commit also marks the deprecation of IGenericLoader, come 1.20 I'll be making GenericLoaderRegistry a registry of RecordLoadable.
|
| src/main/java/slimeknights/mantle/data/loadable/primitive/BooleanLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/RecordField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable13.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable12.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable8.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/Streamable.java |
| src/main/java/slimeknights/mantle/data/loadable/primitive/IntLoadable.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/FluidIngredient.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/Loadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/CollectionLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/EitherLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable15.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/NamedComponentRegistry.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/primitive/StringLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/primitive/FloatLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/IngredientLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable5.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable11.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/BlockStateLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable2.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/ItemStackLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/MappedLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/RegistryLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/ContextField.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/EntityIngredient.java (diff) |
| src/main/java/slimeknights/mantle/recipe/helper/LoadableRecipeSerializer.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/NBTLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable7.java (diff) |
| src/main/java/slimeknights/mantle/recipe/ingredient/SizedIngredient.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/LoadableField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable14.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable9.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/common/CodecLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/mapping/CompactLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable4.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/DirectField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/primitive/EnumLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/predicate/block/BlockPropertiesPredicate.java (diff) |
| src/main/java/slimeknights/mantle/recipe/helper/ItemOutput.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable3.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/NullableField.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable10.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable16.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/field/AlwaysPresentLoadableField.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/DefaultingLoaderRegistry.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable6.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/ContextStreamable.java |
| src/main/java/slimeknights/mantle/data/loadable/common/ColorLoadable.java (diff) |
| src/main/java/slimeknights/mantle/data/loadable/record/RecordLoadable1.java (diff) |
| src/main/java/slimeknights/mantle/data/registry/GenericLoaderRegistry.java (diff) |
|
| src/main/java/slimeknights/mantle/data/registry/NamedComponentRegistry.java (diff) |