From c07281fac9bbd1b4af99680efe19ff9e2082cf14 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 16 Mar 2021 22:44:45 +0800 Subject: Wrap click areas, implement createTickTimer Signed-off-by: shedaniel --- .../java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java | 8 ++++---- forge/build.gradle | 1 + .../src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java | 4 ++-- .../java/me/shedaniel/rei/impl/registry/CategoryRegistryImpl.java | 2 +- .../src/main/java/me/shedaniel/rei/impl/widgets/ArrowWidget.java | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java index b0b8270e2..7284c01c3 100644 --- a/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java +++ b/api/src/main/java/me/shedaniel/rei/api/registry/screen/ScreenRegistry.java @@ -95,7 +95,7 @@ public interface ScreenRegistry extends Reloadable { * @param categories The categories of result. * @param The screen type to be registered to. */ - default > void registerContainerClickArea(Rectangle area, Class screenClass, ResourceLocation... categories) { + default > void registerContainerClickArea(Rectangle area, Class screenClass, ResourceLocation... categories) { registerContainerClickArea(screen -> area, screenClass, categories); } @@ -107,7 +107,7 @@ public interface ScreenRegistry extends Reloadable { * @param categories The categories of result. * @param The screen type to be registered to. */ - > void registerContainerClickArea(ScreenClickAreaProvider provider, Class screenClass, ResourceLocation... categories); + > void registerContainerClickArea(ScreenClickAreaProvider provider, Class screenClass, ResourceLocation... categories); /** * Registers a click area for a screen. @@ -117,7 +117,7 @@ public interface ScreenRegistry extends Reloadable { * @param categories The categories of result. * @param The screen type to be registered to. */ - default void registerClickArea(ScreenClickAreaProvider provider, Class screenClass, ResourceLocation... categories) { + default void registerClickArea(ScreenClickAreaProvider provider, Class screenClass, ResourceLocation... categories) { registerClickArea(screenClass, provider.toHandler(() -> categories)); } @@ -129,7 +129,7 @@ public interface ScreenRegistry extends Reloadable { * @param The screen type to be registered to. * @see #registerClickArea(ScreenClickAreaProvider, Class, ResourceLocation...) for a simpler way to handle areas without custom categories. */ - void registerClickArea(Class screenClass, ClickArea area); + void registerClickArea(Class screenClass, ClickArea area); @Nullable Set handleClickArea(Class screenClass, ClickArea.ClickAreaContext context); } diff --git a/forge/build.gradle b/forge/build.gradle index e19ea7a63..338ecaa99 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -41,5 +41,6 @@ dependencies { modRuntime("curse.maven:chiselsbits-231095:3176033") modRuntime("curse.maven:jumbofurnace-390880:3120970") modRuntime("curse.maven:cyclic-239286:3221427") + modRuntime("curse.maven:mekanism-268560:3206392") modRuntime("appeng:appliedenergistics2:8.2.0") } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java index a2f933723..2c76b3876 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/ScreenRegistryImpl.java @@ -149,7 +149,7 @@ public class ScreenRegistryImpl implements ScreenRegistry { } @Override - public > void registerContainerClickArea(ScreenClickAreaProvider provider, Class screenClass, ResourceLocation... categories) { + public > void registerContainerClickArea(ScreenClickAreaProvider provider, Class screenClass, ResourceLocation... categories) { registerClickArea(screen -> { Rectangle rectangle = provider.provide(screen).clone(); rectangle.translate(screen.leftPos, screen.topPos); @@ -158,7 +158,7 @@ public class ScreenRegistryImpl implements ScreenRegistry { } @Override - public void registerClickArea(Class screenClass, ClickArea area) { + public void registerClickArea(Class screenClass, ClickArea area) { clickAreas.put(screenClass, area); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/registry/CategoryRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/registry/CategoryRegistryImpl.java index 4766a26b5..9dd07f1eb 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/registry/CategoryRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/registry/CategoryRegistryImpl.java @@ -69,7 +69,7 @@ public class CategoryRegistryImpl implements CategoryRegistry, Reloadable { @Override public CategoryConfiguration get(ResourceLocation category) { - return (CategoryConfiguration) this.categories.get(category); + return (CategoryConfiguration) Objects.requireNonNull(this.categories.get(category), category.toString()); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/widgets/ArrowWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/widgets/ArrowWidget.java index 10eaf6e58..e08ca7956 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/widgets/ArrowWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/widgets/ArrowWidget.java @@ -68,7 +68,7 @@ public final class ArrowWidget extends Arrow { Minecraft.getInstance().getTextureManager().bind(REIHelper.getInstance().getDefaultDisplayTexture()); blit(matrices, getX(), getY(), 106, 91, 24, 17); if (getAnimationDuration() > 0) { - int width = Mth.ceil((System.currentTimeMillis() / (animationDuration / 24) % 24d) / 1f); + int width = Mth.ceil((System.currentTimeMillis() / (animationDuration / 24) % 24d)); blit(matrices, getX(), getY(), 82, 91, width, 17); } } -- cgit