diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-04-14 19:32:28 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-04-14 19:32:28 +0800 |
| commit | a92c5492155f1bd12853acea98a235d3bb78839e (patch) | |
| tree | a8cb71de497f732265b7c1567f8e9393bb92eb87 /runtime/src/main/java/me/shedaniel/rei/impl | |
| parent | 76b81a28284a8bcfb073b4386d823a73d605b971 (diff) | |
| parent | d892547a9b8a8ae85655900c08b6cc97c6aa2050 (diff) | |
| download | RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.tar.gz RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.tar.bz2 RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.zip | |
Merge remote-tracking branch 'origin/6.x' into 6.x-1.17
# Conflicts:
# api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
# runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java
# runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/impl')
8 files changed, 21 insertions, 18 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java index e8dfa574f..ed0aaf717 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java @@ -43,7 +43,7 @@ import org.jetbrains.annotations.Nullable; @ApiStatus.Internal @Environment(EnvType.CLIENT) public class RenderingEntryDefinition { - public static final EntryDefinition<Renderer> RENDERING = new BuiltinEntryDefinition<Renderer>(Renderer.class, BuiltinClientEntryTypes.RENDERING, false, RenderingEntryDefinition::throwRendering, DeferredRenderer.INSTANCE) { + public static final EntryDefinition<Renderer> RENDERING = new BuiltinEntryDefinition<Renderer>(Renderer.class, BuiltinClientEntryTypes.RENDERING, false, RenderingEntryDefinition::throwRendering, () -> () -> DeferredRenderer.INSTANCE) { @Override public Component asFormattedText(EntryStack<Renderer> entry, Renderer value) { Tooltip tooltip = value.getTooltip(PointHelper.ofMouse()); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/category/CategoryRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/category/CategoryRegistryImpl.java index 3fac9255f..f2acf7bdc 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/category/CategoryRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/category/CategoryRegistryImpl.java @@ -67,7 +67,7 @@ public class CategoryRegistryImpl implements CategoryRegistry { } @Override - public <T extends Display> void register(DisplayCategory<T> category, Consumer<CategoryConfiguration<T>> configurator) { + public <T extends Display> void add(DisplayCategory<T> category, Consumer<CategoryConfiguration<T>> configurator) { Configuration<T> configuration = new Configuration<>(category); this.categories.put(category.getCategoryIdentifier(), configuration); configurator.accept(configuration); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java index 04f44839f..c08e2ac38 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java @@ -65,7 +65,7 @@ public class DisplayRegistryImpl extends RecipeManagerContextImpl<REIClientPlugi } @Override - public void registerDisplay(Display display) { + public void add(Display display) { displays.computeIfAbsent(display.getCategoryIdentifier(), location -> new ArrayList<>()) .add(display); displayCount.increment(); @@ -78,7 +78,7 @@ public class DisplayRegistryImpl extends RecipeManagerContextImpl<REIClientPlugi } @Override - public Map<CategoryIdentifier<?>, List<Display>> getAllDisplays() { + public Map<CategoryIdentifier<?>, List<Display>> getAll() { return Collections.unmodifiableMap(displays); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java index fe0fd0453..31a667a34 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java @@ -60,7 +60,7 @@ public class ViewsImpl implements Views { for (CategoryRegistry.CategoryConfiguration<?> categoryConfiguration : CategoryRegistry.getInstance()) { DisplayCategory<?> category = categoryConfiguration.getCategory(); CategoryIdentifier<?> categoryId = categoryConfiguration.getCategoryIdentifier(); - List<Display> allRecipesFromCategory = DisplayRegistry.getInstance().getDisplays((CategoryIdentifier<Display>) categoryId); + List<Display> allRecipesFromCategory = DisplayRegistry.getInstance().get((CategoryIdentifier<Display>) categoryId); Set<Display> set = Sets.newLinkedHashSet(); if (categories.contains(categoryId)) { @@ -184,7 +184,7 @@ public class ViewsImpl implements Views { @Override public Collection<EntryStack<?>> findCraftableEntriesByMaterials(Iterable<? extends EntryStack<?>> inventoryItems) { Set<EntryStack<?>> craftables = new HashSet<>(); - for (List<Display> displays : DisplayRegistry.getInstance().getAllDisplays().values()) { + for (List<Display> displays : DisplayRegistry.getInstance().getAll().values()) { for (Display display : displays) { int slotsCraftable = 0; List<EntryIngredient> requiredInput = display.getRequiredEntries(); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java index 0275db9a4..38a0403d7 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java @@ -87,6 +87,7 @@ public class EntryRegistryImpl implements EntryRegistry { entries.clear(); entries.addAll(CollectionUtils.map(reloadingRegistry, HashedEntryStackWrapper::unwrap)); reloadingRegistry = null; + refilter(); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java index fb7590a82..48f5fc293 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java @@ -23,6 +23,8 @@ package me.shedaniel.rei.impl.common.entry.type.types; +import me.shedaniel.architectury.utils.Env; +import me.shedaniel.architectury.utils.EnvExecutor; import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer; import me.shedaniel.rei.api.common.entry.EntrySerializer; import me.shedaniel.rei.api.common.entry.EntryStack; @@ -30,6 +32,8 @@ import me.shedaniel.rei.api.common.entry.comparison.ComparisonContext; import me.shedaniel.rei.api.common.entry.type.EntryDefinition; import me.shedaniel.rei.api.common.entry.type.EntryType; import me.shedaniel.rei.api.common.util.ImmutableTextComponent; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -48,14 +52,15 @@ public class BuiltinEntryDefinition<T> implements EntryDefinition<T>, EntrySeria private final EntryType<T> type; private final boolean empty; private final Supplier<T> defaultValue; - private final EntryRenderer<T> renderer; + @Environment(EnvType.CLIENT) + private EntryRenderer<T> renderer; - protected BuiltinEntryDefinition(Class<T> clazz, EntryType<T> type, boolean empty, Supplier<T> defaultValue, EntryRenderer<T> renderer) { + protected BuiltinEntryDefinition(Class<T> clazz, EntryType<T> type, boolean empty, Supplier<T> defaultValue, Supplier<Supplier<EntryRenderer<T>>> renderer) { this.clazz = clazz; this.type = type; this.empty = empty; this.defaultValue = defaultValue; - this.renderer = renderer; + EnvExecutor.runInEnv(Env.CLIENT, () -> () -> this.renderer = renderer.get().get()); } @Override @@ -69,6 +74,7 @@ public class BuiltinEntryDefinition<T> implements EntryDefinition<T>, EntrySeria } @Override + @Environment(EnvType.CLIENT) public EntryRenderer<T> getRenderer() { return renderer; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/EmptyEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/EmptyEntryDefinition.java index 8c82b02d5..31a951bdc 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/EmptyEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/EmptyEntryDefinition.java @@ -31,17 +31,18 @@ import me.shedaniel.rei.api.client.gui.widgets.Tooltip; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.type.BuiltinEntryTypes; import me.shedaniel.rei.api.common.entry.type.EntryDefinition; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.util.Unit; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @ApiStatus.Internal public class EmptyEntryDefinition { - public static final EntryDefinition<Unit> EMPTY = new BuiltinEntryDefinition<>(Unit.class, BuiltinEntryTypes.EMPTY, true, () -> Unit.INSTANCE, EmptyRenderer.INSTANCE); + public static final EntryDefinition<Unit> EMPTY = new BuiltinEntryDefinition<>(Unit.class, BuiltinEntryTypes.EMPTY, true, () -> Unit.INSTANCE, () -> () -> new EmptyRenderer()); - public enum EmptyRenderer implements EntryRenderer<Unit> { - INSTANCE; - + @Environment(EnvType.CLIENT) + public static class EmptyRenderer implements EntryRenderer<Unit> { @Override public void render(EntryStack<Unit> entry, PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java index a9ac12590..d90ece572 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java @@ -49,7 +49,6 @@ import java.util.function.LongConsumer; import java.util.function.UnaryOperator; @ApiStatus.Internal -@Environment(EnvType.CLIENT) public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager<P>, PluginView<P> { private final List<Reloadable<P>> reloadables = new ArrayList<>(); private final Map<Class<? extends Reloadable<P>>, Reloadable<? super P>> cache = new ConcurrentHashMap<>(); @@ -189,10 +188,6 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager< } } - try (SectionClosable refilter = section(sectionData, "entry-registry-refilter")) { - EntryRegistry.getInstance().refilter(); - } - long usedTime = Util.getMillis() - startTime; reloadDoneListener.accept(usedTime); } catch (Throwable throwable) { |
