diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-16 21:09:24 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-16 21:09:24 +0800 |
| commit | f5c23d37adb57c4428a8a58e4cc892a6b2e83c30 (patch) | |
| tree | e76cf50adb579adbc337de3fdbc3b63b00686469 /api/src | |
| parent | d60fd316cc872c8e2d6500f071598ebf79364d4a (diff) | |
| download | RoughlyEnoughItems-f5c23d37adb57c4428a8a58e4cc892a6b2e83c30.tar.gz RoughlyEnoughItems-f5c23d37adb57c4428a8a58e4cc892a6b2e83c30.tar.bz2 RoughlyEnoughItems-f5c23d37adb57c4428a8a58e4cc892a6b2e83c30.zip | |
Implement IIngredientFilter, IRecipeManagerPlugin and IGuiIngredientGroup#set, fix IDrawableBuilder with padding
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'api/src')
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java | 2 | ||||
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/api/registry/display/DisplayRegistry.java | 31 |
2 files changed, 24 insertions, 9 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java b/api/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java index 65116400e..323b8d810 100644 --- a/api/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java +++ b/api/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java @@ -31,7 +31,7 @@ import me.shedaniel.math.Rectangle; @FunctionalInterface public interface ButtonAreaSupplier { static ButtonAreaSupplier defaultArea() { - return bounds -> new Rectangle(bounds.getMaxX() - 16, bounds.getMaxY() - 16, 10, 10); + return bounds -> new Rectangle(bounds.getMaxX() + 2, bounds.getMaxY() - 16, 10, 10); } /** diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/display/DisplayRegistry.java b/api/src/main/java/me/shedaniel/rei/api/registry/display/DisplayRegistry.java index 9451eac96..4b970ebd5 100644 --- a/api/src/main/java/me/shedaniel/rei/api/registry/display/DisplayRegistry.java +++ b/api/src/main/java/me/shedaniel/rei/api/registry/display/DisplayRegistry.java @@ -31,9 +31,8 @@ import me.shedaniel.rei.api.registry.Reloadable; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.Container; -import net.minecraft.world.item.crafting.Recipe; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; @@ -82,6 +81,13 @@ public interface DisplayRegistry extends RecipeManagerContext, Reloadable { } /** + * Registers a global category-less display generator + * + * @param generator the generator to register + */ + <A extends Display> void registerGlobalDisplayGenerator(LiveDisplayGenerator<A> generator); + + /** * Registers a display generator * * @param categoryId the identifier of the category @@ -94,15 +100,22 @@ public interface DisplayRegistry extends RecipeManagerContext, Reloadable { * * @return an unmodifiable map of display generators */ - Map<ResourceLocation, List<LiveDisplayGenerator<?>>> getAllDisplayGenerators(); + Map<ResourceLocation, List<LiveDisplayGenerator<?>>> getCategoryDisplayGenerators(); + + /** + * Returns an unmodifiable list of category-less display generators + * + * @return an unmodifiable list of category-less display generators + */ + List<LiveDisplayGenerator<?>> getGlobalDisplayGenerators(); /** * Returns the list of display generators for a category * * @return the list of display generators */ - default List<LiveDisplayGenerator<?>> getDisplayGenerators(ResourceLocation categoryId) { - return getAllDisplayGenerators().getOrDefault(categoryId, Collections.emptyList()); + default List<LiveDisplayGenerator<?>> getCategoryDisplayGenerators(ResourceLocation categoryId) { + return getCategoryDisplayGenerators().getOrDefault(categoryId, Collections.emptyList()); } /** @@ -137,9 +150,11 @@ public interface DisplayRegistry extends RecipeManagerContext, Reloadable { */ List<DisplayVisibilityPredicate> getVisibilityPredicates(); - default <A extends Container, T extends Recipe<A>, D extends Display> void registerRecipes(Class<T> recipeClass, Function<T, D> mappingFunction) { - registerRecipes(recipe -> recipeClass.isAssignableFrom(recipe.getClass()), mappingFunction); + default <T, D extends Display> void registerFiller(Class<T> typeClass, Function<T, D> mappingFunction) { + registerFiller(typeClass, typeClass::isInstance, mappingFunction); } - <A extends Container, T extends Recipe<A>, D extends Display> void registerRecipes(Predicate<? extends T> recipeFilter, Function<T, D> mappingFunction); + <T, D extends Display> void registerFiller(Class<T> typeClass, Predicate<? extends T> predicate, Function<T, D> mappingFunction); + + @Nullable <T> Display tryFillDisplay(T value); } |
