From a5671717446bf455c3b4f18fb9ecaaa97bc0d47e Mon Sep 17 00:00:00 2001 From: AterAnimAvis Date: Sat, 26 Dec 2020 12:41:35 +0000 Subject: [PATCH] feat: Ability to group the bulk render output by Item Tab or Block/Item split --- Signed-off-by: AterAnimAvis --- .../assets/block_renderer/lang/en_us.json | 5 ++ .../item/DefaultPngItemStackHandler.java | 25 +++++++ .../client/render/item/ItemRenderer.java | 4 +- .../screens/item/EnterNamespaceScreen.java | 46 ++++++++++++- .../widgets/ItemButtonMultiWidget.java | 68 +++++++++++++++++++ .../fabric/client/varia/Registries.java | 6 +- .../item/DefaultPngItemStackHandler.java | 25 +++++++ .../client/render/item/ItemRenderer.java | 4 +- .../screens/item/EnterNamespaceScreen.java | 45 +++++++++++- .../widgets/ItemButtonMultiWidget.java | 68 +++++++++++++++++++ .../forge/client/varia/Registries.java | 6 +- gradle.properties | 2 +- 12 files changed, 292 insertions(+), 12 deletions(-) create mode 100644 fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/widgets/ItemButtonMultiWidget.java create mode 100644 forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/widgets/ItemButtonMultiWidget.java diff --git a/common/src/main/resources/assets/block_renderer/lang/en_us.json b/common/src/main/resources/assets/block_renderer/lang/en_us.json index 256ec8b..20df685 100644 --- a/common/src/main/resources/assets/block_renderer/lang/en_us.json +++ b/common/src/main/resources/assets/block_renderer/lang/en_us.json @@ -55,6 +55,11 @@ "block_renderer.gui.switch.bulk": "Bulk Render", "block_renderer.gui.switch.bulk.tooltip": "Switch to Bulk Render", + "block_renderer.gui.group": "Group Bulk Renders", + "block_renderer.gui.group.tooltip.0": "No Grouping", + "block_renderer.gui.group.tooltip.1": "Group by Tab", + "block_renderer.gui.group.tooltip.2": "Group by Item / Block", + "block_renderer.gui.rendering":"Rendering %1$s entries from %2$s", "block_renderer.gui.rendered":"Rendered %1$s entries from %2$s", "block_renderer.gui.renderCancelled":"Operation cancelled", diff --git a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/DefaultPngItemStackHandler.java b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/DefaultPngItemStackHandler.java index fd4b225..0953467 100644 --- a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/DefaultPngItemStackHandler.java +++ b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/DefaultPngItemStackHandler.java @@ -3,6 +3,8 @@ import com.unascribed.blockrenderer.fabric.client.varia.StringUtils; import com.unascribed.blockrenderer.render.request.lambda.ImageHandler; import com.unascribed.blockrenderer.varia.Files; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.text.ClickEvent; import net.minecraft.text.LiteralText; @@ -14,8 +16,15 @@ public class DefaultPngItemStackHandler extends BaseItemStackHandler implements ImageHandler, Runnable { + private final int grouped; + public DefaultPngItemStackHandler(File folder, int size, boolean useIdentifier, boolean addSize, boolean addDate) { + this(folder, size, useIdentifier, addSize, addDate, 0); + } + + public DefaultPngItemStackHandler(File folder, int size, boolean useIdentifier, boolean addSize, boolean addDate, int grouped) { super(folder, size, useIdentifier, addSize, addDate); + this.grouped = grouped; } @Override @@ -37,4 +46,20 @@ public void run() { StringUtils.addMessage(new LiteralText("> Finished Rendering").setStyle(open)); } + @Override + protected String getFilename(ItemStack value) { + String result = super.getFilename(value); + + switch (grouped) { + case 1: + ItemGroup group = value.getItem().getGroup(); + if (group == null) return result; + return StringUtils.sanitize(group.getName()) + "/" + result; + case 2: + return (value.getItem() instanceof BlockItem ? "blocks" : "items") + "/" + result; + } + + return result; + } + } diff --git a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/ItemRenderer.java b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/ItemRenderer.java index fb08ec4..21b0fa3 100644 --- a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/ItemRenderer.java +++ b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/render/item/ItemRenderer.java @@ -45,7 +45,7 @@ public static IRequest single(ItemStack stack, MapState data, int size, boolean ); } - public static IRequest bulk(String spec, int size, boolean useId, boolean addSize) { + public static IRequest bulk(String spec, int size, boolean useId, boolean addSize, int grouped) { Set namespaces = StringUtils.getNamespaces(spec); List renders = MiscUtils.collectStacks(namespaces); String joined = Joiner.on(", ").join(namespaces); @@ -54,7 +54,7 @@ public static IRequest bulk(String spec, int size, boolean useId, boolean addSiz File folder = new File(Files.DEFAULT_FOLDER, StringUtils.dateTime() + "_" + sizeString + StringUtils.sanitize(joined) + "/"); //TODO: Split out into BulkPngItemStackHandler - DefaultPngItemStackHandler handler = new DefaultPngItemStackHandler(folder, size, useId, false, false); + DefaultPngItemStackHandler handler = new DefaultPngItemStackHandler(folder, size, useId, false, false, grouped); return new BulkRenderingRequest<>( new ItemStackRenderer(), diff --git a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/item/EnterNamespaceScreen.java b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/item/EnterNamespaceScreen.java index 310852c..4d4fa9f 100644 --- a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/item/EnterNamespaceScreen.java +++ b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/item/EnterNamespaceScreen.java @@ -1,24 +1,33 @@ package com.unascribed.blockrenderer.fabric.client.screens.item; - import com.unascribed.blockrenderer.fabric.client.render.RenderManager; import com.unascribed.blockrenderer.fabric.client.render.item.ItemRenderer; import com.unascribed.blockrenderer.fabric.client.screens.widgets.HoverableTinyButtonWidget; +import com.unascribed.blockrenderer.fabric.client.screens.widgets.ItemButtonMultiWidget; +import com.unascribed.blockrenderer.fabric.client.varia.Registries; import com.unascribed.blockrenderer.fabric.client.varia.StringUtils; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.Nullable; +import java.util.Collections; +import java.util.function.Supplier; + /* * Note: Screen's get initialized in init */ @SuppressWarnings("NotNullFieldNotInitialized") public class EnterNamespaceScreen extends BaseItemScreen { + private static final int UN_GROUPED = 0; // Empty Map + private static final int GROUP_BY_TAB = 1; // Banner Pattern + private static final int GROUP_BY_TYPE = 2; // Block + private static final TranslatableText TITLE = new TranslatableText("block_renderer.gui.namespace"); private boolean emptySpec = false; @@ -26,6 +35,7 @@ public class EnterNamespaceScreen extends BaseItemScreen { private final String prefill; private TextFieldWidget text; + private ItemButtonMultiWidget grouped; private final @Nullable ItemStack stack; @@ -69,6 +79,38 @@ public void init() { ); } + final Supplier EMPTY_MAP = Registries.mapLazy(Registries.EMPTY_MAP, Item::getDefaultStack); + final Supplier PATTERN = Registries.mapLazy(Registries.PATTERN, Item::getDefaultStack); + final Supplier DISPENSER = Registries.mapLazy(Registries.DISPENSER, Item::getDefaultStack); + + grouped = addButton(new ItemButtonMultiWidget( + this, + itemRenderer, + (state) -> { + switch (state) { + case UN_GROUPED: + return EMPTY_MAP.get(); + case GROUP_BY_TAB: + return PATTERN.get(); + case GROUP_BY_TYPE: + return DISPENSER.get(); + default: + throw new RuntimeException("Unsupported Group Type"); + } + }, + 12, + height - 32, + new TranslatableText("block_renderer.gui.group"), + (state) -> { + if (state < 0 || state > 2) throw new RuntimeException("Unsupported Group Type"); + return Collections.singletonList(new TranslatableText("block_renderer.gui.group.tooltip." + state)); + }, + button -> { + grouped.state += 1; + if (grouped.state > GROUP_BY_TYPE) grouped.state = UN_GROUPED; + } + ), enabled); + super.init(); renderButton.visible = !emptySpec; @@ -120,6 +162,6 @@ public void onRender(ButtonWidget button) { client.openScreen(old); if (client.world == null) return; - RenderManager.push(ItemRenderer.bulk(text.getText(), round(size), useId.isChecked(), addSize.isChecked())); + RenderManager.push(ItemRenderer.bulk(text.getText(), round(size), useId.isChecked(), addSize.isChecked(), grouped.state)); } } diff --git a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/widgets/ItemButtonMultiWidget.java b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/widgets/ItemButtonMultiWidget.java new file mode 100644 index 0000000..a4ee2bf --- /dev/null +++ b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/screens/widgets/ItemButtonMultiWidget.java @@ -0,0 +1,68 @@ +package com.unascribed.blockrenderer.fabric.client.screens.widgets; + +import com.unascribed.blockrenderer.fabric.client.varia.rendering.Display; +import com.unascribed.blockrenderer.fabric.client.varia.rendering.GL; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.render.item.ItemRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; + +import java.util.Collections; +import java.util.List; +import java.util.function.Function; + +public class ItemButtonMultiWidget extends ButtonWidget { + + private final Screen owner; + private final Function> tooltip; + private final ItemRenderer renderer; + private final Function stack; + public int state = 0; + + public ItemButtonMultiWidget(Screen owner, ItemRenderer renderer, Function stack, int x, int y, Text message, Text tooltip, PressAction onPress) { + this(owner, renderer, stack, x, y, message, (state) -> Collections.singletonList(tooltip), onPress); + } + + public ItemButtonMultiWidget(Screen owner, ItemRenderer renderer, Function stack, int x, int y, Text message, Function> tooltip, PressAction onPress) { + super(x, y, 20, 20, message, onPress); + this.tooltip = tooltip; + this.owner = owner; + this.renderer = renderer; + this.stack = stack; + } + + @Override + public void renderButton(MatrixStack matrix, int mouseX, int mouseY, float partialTicks) { + + if (isHovered() && active) + Display.drawRect(matrix, x, y, x + width, y + height, 0x33FFFFFF); + + renderItemStack(stack.apply(state), x, y, 1.25f); + + if (isHovered()) + renderToolTip(matrix, mouseX, mouseY); + } + + private void renderItemStack(ItemStack stack, int x, int y, float scale) { + int BASE_Z_LEVEL = 100; + + GL.pushMatrix(); + + GL.translate(x, y, 32.0f); + GL.scaleFixedZLevel(scale, -BASE_Z_LEVEL); + + renderer.zOffset = -BASE_Z_LEVEL / 2f; + renderer.renderInGuiWithOverrides(stack, 0, 0); + renderer.zOffset = 0.0F; + GL.popMatrix(); + + } + + @Override + public void renderToolTip(MatrixStack stack, int mouseX, int mouseY) { + Display.renderTooltip(owner, stack, tooltip.apply(state), mouseX, mouseY); + } + +} diff --git a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/varia/Registries.java b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/varia/Registries.java index adb14f6..0df68a8 100644 --- a/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/varia/Registries.java +++ b/fabric/src/main/java/com/unascribed/blockrenderer/fabric/client/varia/Registries.java @@ -10,9 +10,11 @@ public interface Registries { - Lazy MAP = new Lazy<>(() -> lookupItem(new Identifier("minecraft:filled_map"))); - Lazy DISPENSER = new Lazy<>(() -> lookupItem(new Identifier("minecraft:dispenser"))); Lazy CUTTER = new Lazy<>(() -> lookupItem(new Identifier("minecraft:stonecutter"))); + Lazy DISPENSER = new Lazy<>(() -> lookupItem(new Identifier("minecraft:dispenser"))); + Lazy EMPTY_MAP = new Lazy<>(() -> lookupItem(new Identifier("minecraft:map"))); + Lazy MAP = new Lazy<>(() -> lookupItem(new Identifier("minecraft:filled_map"))); + Lazy PATTERN = new Lazy<>(() -> lookupItem(new Identifier("minecraft:mojang_banner_pattern"))); static Item lookupItem(Identifier identifier) { return Registry.ITEM.get(identifier); diff --git a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/DefaultPngItemStackHandler.java b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/DefaultPngItemStackHandler.java index 6420d5a..1116913 100644 --- a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/DefaultPngItemStackHandler.java +++ b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/DefaultPngItemStackHandler.java @@ -3,6 +3,8 @@ import com.unascribed.blockrenderer.forge.client.varia.StringUtils; import com.unascribed.blockrenderer.render.request.lambda.ImageHandler; import com.unascribed.blockrenderer.varia.Files; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.Style; @@ -14,8 +16,15 @@ public class DefaultPngItemStackHandler extends BaseItemStackHandler implements ImageHandler, Runnable { + private final int grouped; + public DefaultPngItemStackHandler(File folder, int size, boolean useIdentifier, boolean addSize, boolean addDate) { + this(folder, size, useIdentifier, addSize, addDate, 0); + } + + public DefaultPngItemStackHandler(File folder, int size, boolean useIdentifier, boolean addSize, boolean addDate, int grouped) { super(folder, size, useIdentifier, addSize, addDate); + this.grouped = grouped; } @Override @@ -37,4 +46,20 @@ public void run() { StringUtils.addMessage(new StringTextComponent("> Finished Rendering").setStyle(open)); } + @Override + protected String getFilename(ItemStack value) { + String result = super.getFilename(value); + + switch (grouped) { + case 1: + ItemGroup group = value.getItem().getGroup(); + if (group == null) return result; + return StringUtils.sanitize(group.getPath()) + "/" + result; + case 2: + return (value.getItem() instanceof BlockItem ? "blocks" : "items") + "/" + result; + } + + return result; + } + } diff --git a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/ItemRenderer.java b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/ItemRenderer.java index 0d047bd..fb7343a 100644 --- a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/ItemRenderer.java +++ b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/render/item/ItemRenderer.java @@ -45,7 +45,7 @@ public static IRequest single(ItemStack stack, MapData data, int size, boolean u ); } - public static IRequest bulk(String spec, int size, boolean useId, boolean addSize) { + public static IRequest bulk(String spec, int size, boolean useId, boolean addSize, int grouped) { Set namespaces = StringUtils.getNamespaces(spec); List renders = MiscUtils.collectStacks(namespaces); String joined = Joiner.on(", ").join(namespaces); @@ -54,7 +54,7 @@ public static IRequest bulk(String spec, int size, boolean useId, boolean addSiz File folder = new File(Files.DEFAULT_FOLDER, StringUtils.dateTime() + "_" + sizeString + StringUtils.sanitize(joined) + "/"); //TODO: Split out into BulkPngItemStackHandler - DefaultPngItemStackHandler handler = new DefaultPngItemStackHandler(folder, size, useId, false, false); + DefaultPngItemStackHandler handler = new DefaultPngItemStackHandler(folder, size, useId, false, false, grouped); return new BulkRenderingRequest<>( new ItemStackRenderer(), diff --git a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/item/EnterNamespaceScreen.java b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/item/EnterNamespaceScreen.java index 1968c39..715edf3 100644 --- a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/item/EnterNamespaceScreen.java +++ b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/item/EnterNamespaceScreen.java @@ -4,20 +4,30 @@ import com.unascribed.blockrenderer.forge.client.render.RenderManager; import com.unascribed.blockrenderer.forge.client.render.item.ItemRenderer; import com.unascribed.blockrenderer.forge.client.screens.widgets.HoverableTinyButtonWidget; +import com.unascribed.blockrenderer.forge.client.screens.widgets.ItemButtonMultiWidget; +import com.unascribed.blockrenderer.forge.client.varia.Registries; import com.unascribed.blockrenderer.forge.client.varia.StringUtils; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.gui.widget.button.Button; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TranslationTextComponent; import org.jetbrains.annotations.Nullable; +import java.util.Collections; +import java.util.function.Supplier; + /* * Note: Screen's get initialized in init */ @SuppressWarnings("NotNullFieldNotInitialized") public class EnterNamespaceScreen extends BaseItemScreen { + private static final int UN_GROUPED = 0; // Empty Map + private static final int GROUP_BY_TAB = 1; // Banner Pattern + private static final int GROUP_BY_TYPE = 2; // Block + private static final TranslationTextComponent TITLE = new TranslationTextComponent("block_renderer.gui.namespace"); private boolean emptySpec = false; @@ -25,6 +35,7 @@ public class EnterNamespaceScreen extends BaseItemScreen { private final String prefill; private TextFieldWidget text; + private ItemButtonMultiWidget grouped; private final @Nullable ItemStack stack; @@ -68,6 +79,38 @@ public void init() { ); } + final Supplier EMPTY_MAP = Registries.EMPTY_MAP.lazyMap(Item::getDefaultInstance); + final Supplier PATTERN = Registries.PATTERN.lazyMap(Item::getDefaultInstance); + final Supplier DISPENSER = Registries.DISPENSER.lazyMap(Item::getDefaultInstance); + + grouped = addButton(new ItemButtonMultiWidget( + this, + itemRenderer, + (state) -> { + switch (state) { + case UN_GROUPED: + return EMPTY_MAP.get(); + case GROUP_BY_TAB: + return PATTERN.get(); + case GROUP_BY_TYPE: + return DISPENSER.get(); + default: + throw new RuntimeException("Unsupported Group Type"); + } + }, + 12, + height - 32, + new TranslationTextComponent("block_renderer.gui.group"), + (state) -> { + if (state < 0 || state > 2) throw new RuntimeException("Unsupported Group Type"); + return Collections.singletonList(new TranslationTextComponent("block_renderer.gui.group.tooltip." + state)); + }, + button -> { + grouped.state += 1; + if (grouped.state > GROUP_BY_TYPE) grouped.state = UN_GROUPED; + } + ), enabled); + super.init(); renderButton.visible = !emptySpec; @@ -119,6 +162,6 @@ public void onRender(Button button) { minecraft.displayGuiScreen(old); if (minecraft.world == null) return; - RenderManager.push(ItemRenderer.bulk(text.getText(), round(size), useId.isChecked(), addSize.isChecked())); + RenderManager.push(ItemRenderer.bulk(text.getText(), round(size), useId.isChecked(), addSize.isChecked(), grouped.state)); } } diff --git a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/widgets/ItemButtonMultiWidget.java b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/widgets/ItemButtonMultiWidget.java new file mode 100644 index 0000000..16d1462 --- /dev/null +++ b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/screens/widgets/ItemButtonMultiWidget.java @@ -0,0 +1,68 @@ +package com.unascribed.blockrenderer.forge.client.screens.widgets; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.unascribed.blockrenderer.forge.client.varia.rendering.Display; +import com.unascribed.blockrenderer.forge.client.varia.rendering.GL; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.button.Button; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; + +import java.util.Collections; +import java.util.List; +import java.util.function.Function; + +public class ItemButtonMultiWidget extends Button { + + private final Screen owner; + private final Function> tooltip; + private final ItemRenderer renderer; + private final Function stack; + public int state = 0; + + public ItemButtonMultiWidget(Screen owner, ItemRenderer renderer, Function stack, int x, int y, ITextComponent message, ITextComponent tooltip, IPressable onPress) { + this(owner, renderer, stack, x, y, message, (state) -> Collections.singletonList(tooltip), onPress); + } + + public ItemButtonMultiWidget(Screen owner, ItemRenderer renderer, Function stack, int x, int y, ITextComponent message, Function> tooltip, IPressable onPress) { + super(x, y, 20, 20, message, onPress); + this.tooltip = tooltip; + this.owner = owner; + this.renderer = renderer; + this.stack = stack; + } + + @Override + public void renderButton(MatrixStack matrix, int mouseX, int mouseY, float partialTicks) { + + if (isHovered() && active) + Display.drawRect(matrix, x, y, x + width, y + height, 0x33FFFFFF); + + renderItemStack(stack.apply(state), x, y, 1.25f); + + if (isHovered()) + renderToolTip(matrix, mouseX, mouseY); + } + + private void renderItemStack(ItemStack stack, int x, int y, float scale) { + int BASE_Z_LEVEL = 100; + + GL.pushMatrix(); + + GL.translate(x, y, 32.0f); + GL.scaleFixedZLevel(scale, -BASE_Z_LEVEL); + + renderer.zLevel = -BASE_Z_LEVEL / 2f; + renderer.renderItemAndEffectIntoGUI(stack, 0, 0); + renderer.zLevel = 0.0F; + GL.popMatrix(); + + } + + @Override + public void renderToolTip(MatrixStack stack, int mouseX, int mouseY) { + Display.renderTooltip(owner, stack, tooltip.apply(state), mouseX, mouseY); + } + +} diff --git a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/varia/Registries.java b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/varia/Registries.java index 96c11bd..824924a 100644 --- a/forge/src/main/java/com/unascribed/blockrenderer/forge/client/varia/Registries.java +++ b/forge/src/main/java/com/unascribed/blockrenderer/forge/client/varia/Registries.java @@ -7,9 +7,11 @@ public interface Registries { - RegistryObject MAP = RegistryObject.of(new ResourceLocation("minecraft:filled_map"), ForgeRegistries.ITEMS); - RegistryObject DISPENSER = RegistryObject.of(new ResourceLocation("minecraft:dispenser"), ForgeRegistries.ITEMS); RegistryObject CUTTER = RegistryObject.of(new ResourceLocation("minecraft:stonecutter"), ForgeRegistries.ITEMS); + RegistryObject DISPENSER = RegistryObject.of(new ResourceLocation("minecraft:dispenser"), ForgeRegistries.ITEMS); + RegistryObject EMPTY_MAP = RegistryObject.of(new ResourceLocation("minecraft:map"), ForgeRegistries.ITEMS); + RegistryObject MAP = RegistryObject.of(new ResourceLocation("minecraft:filled_map"), ForgeRegistries.ITEMS); + RegistryObject PATTERN = RegistryObject.of(new ResourceLocation("minecraft:mojang_banner_pattern"), ForgeRegistries.ITEMS); static void clazzLoad() { // INTENTIONAL LEFT BLANK diff --git a/gradle.properties b/gradle.properties index 52fa351..defd6be 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ yarnBuild =47 ##################################### Mod ##################################### modId =block_renderer -modVersion =1.4.1 +modVersion =1.4.2 modGroup =com.unascribed vendor =AterAnimAvis