From 05b815ac9778a3c1c161794a2d02220658f906b4 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 7 Jul 2023 19:54:52 +0200 Subject: [PATCH] compiles --- .../java/de/ellpeck/prettypipes/Registry.java | 15 ++-- .../java/de/ellpeck/prettypipes/Utility.java | 2 +- .../jei/CraftingTerminalTransferHandler.java | 2 +- .../compat/jei/JEIPrettyPipesPlugin.java | 6 +- .../prettypipes/entities/PipeFrameEntity.java | 17 ++-- .../entities/PipeFrameRenderer.java | 13 +-- .../ellpeck/prettypipes/items/ModuleItem.java | 3 +- .../prettypipes/items/PipeFrameItem.java | 4 +- .../ellpeck/prettypipes/items/WrenchItem.java | 3 +- .../de/ellpeck/prettypipes/misc/Events.java | 6 +- .../prettypipes/misc/ItemEquality.java | 5 +- .../ellpeck/prettypipes/misc/ItemFilter.java | 18 +--- .../prettypipes/misc/ItemTerminalWidget.java | 34 ++++---- .../ellpeck/prettypipes/network/PipeItem.java | 8 +- .../prettypipes/packets/PacketButton.java | 6 +- .../prettypipes/packets/PacketGhostSlot.java | 19 +++-- .../prettypipes/packets/PacketRequest.java | 2 +- .../ellpeck/prettypipes/pipe/PipeBlock.java | 8 +- .../prettypipes/pipe/PipeBlockEntity.java | 3 +- .../containers/AbstractPipeContainer.java | 2 +- .../pipe/containers/AbstractPipeGui.java | 49 +++++------ .../pipe/modules/craft/CraftingModuleGui.java | 12 +-- .../modifier/FilterModifierModuleGui.java | 18 ++-- .../modules/stacksize/StackSizeModuleGui.java | 12 +-- .../pressurizer/PressurizerBlock.java | 3 +- .../pressurizer/PressurizerContainer.java | 2 +- .../pressurizer/PressurizerGui.java | 28 +++--- .../terminal/CraftingTerminalBlockEntity.java | 4 +- .../terminal/ItemTerminalBlock.java | 3 +- .../containers/CraftingTerminalContainer.java | 6 +- .../containers/CraftingTerminalGui.java | 15 ++-- .../containers/ItemTerminalContainer.java | 2 +- .../terminal/containers/ItemTerminalGui.java | 85 +++++++++---------- .../containers/WrappedCraftingInventory.java | 4 +- 34 files changed, 193 insertions(+), 226 deletions(-) diff --git a/src/main/java/de/ellpeck/prettypipes/Registry.java b/src/main/java/de/ellpeck/prettypipes/Registry.java index 98def9e..533ec6e 100644 --- a/src/main/java/de/ellpeck/prettypipes/Registry.java +++ b/src/main/java/de/ellpeck/prettypipes/Registry.java @@ -48,8 +48,6 @@ import de.ellpeck.prettypipes.terminal.containers.CraftingTerminalGui; import de.ellpeck.prettypipes.terminal.containers.ItemTerminalContainer; import de.ellpeck.prettypipes.terminal.containers.ItemTerminalGui; import net.minecraft.client.gui.screens.MenuScreens; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.client.renderer.entity.EntityRenderers; import net.minecraft.resources.ResourceLocation; @@ -57,9 +55,7 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.common.capabilities.Capability; @@ -80,12 +76,13 @@ import java.util.function.BiFunction; @Mod.EventBusSubscriber(bus = Bus.MOD) public final class Registry { - public static final CreativeModeTab TAB = new CreativeModeTab(PrettyPipes.ID) { + // TODO creative tab bleh +/* public static final CreativeModeTab TAB = new CreativeModeTab(PrettyPipes.ID) { @Override public ItemStack makeIcon() { return new ItemStack(Registry.wrenchItem); } - }; + };*/ public static Capability pipeNetworkCapability = CapabilityManager.get(new CapabilityToken<>() { }); @@ -132,7 +129,7 @@ public final class Registry { event.register(ForgeRegistries.Keys.ITEMS, h -> { h.register(new ResourceLocation(PrettyPipes.ID, "wrench"), Registry.wrenchItem = new WrenchItem()); - h.register(new ResourceLocation(PrettyPipes.ID, "blank_module"), new Item(new Item.Properties().tab(Registry.TAB))); + h.register(new ResourceLocation(PrettyPipes.ID, "blank_module"), new Item(new Item.Properties())); h.register(new ResourceLocation(PrettyPipes.ID, "pipe_frame"), Registry.pipeFrameItem = new PipeFrameItem()); h.register(new ResourceLocation(PrettyPipes.ID, "stack_size_module"), new StackSizeModuleItem()); h.register(new ResourceLocation(PrettyPipes.ID, "redstone_module"), new RedstoneModuleItem()); @@ -157,7 +154,7 @@ public final class Registry { ForgeRegistries.BLOCKS.getEntries().stream() .filter(b -> b.getKey().location().getNamespace().equals(PrettyPipes.ID)) - .forEach(b -> h.register(b.getKey().location(), new BlockItem(b.getValue(), new Item.Properties().tab(Registry.TAB)))); + .forEach(b -> h.register(b.getKey().location(), new BlockItem(b.getValue(), new Item.Properties()))); }); event.register(ForgeRegistries.Keys.BLOCK_ENTITY_TYPES, h -> { @@ -188,7 +185,7 @@ public final class Registry { private static > MenuType registerPipeContainer(RegisterEvent.RegisterHelper> helper, String name) { var type = (MenuType) IForgeMenuType.create((windowId, inv, data) -> { - var tile = Utility.getBlockEntity(PipeBlockEntity.class, inv.player.level, data.readBlockPos()); + var tile = Utility.getBlockEntity(PipeBlockEntity.class, inv.player.level(), data.readBlockPos()); var moduleIndex = data.readInt(); var moduleStack = tile.modules.getStackInSlot(moduleIndex); return ((IModule) moduleStack.getItem()).getContainer(moduleStack, tile, windowId, inv, inv.player, moduleIndex); diff --git a/src/main/java/de/ellpeck/prettypipes/Utility.java b/src/main/java/de/ellpeck/prettypipes/Utility.java index c030cf0..6ad0e09 100644 --- a/src/main/java/de/ellpeck/prettypipes/Utility.java +++ b/src/main/java/de/ellpeck/prettypipes/Utility.java @@ -48,7 +48,7 @@ public final class Utility { public static Direction getDirectionFromOffset(BlockPos pos, BlockPos other) { var diff = pos.subtract(other); - return Direction.fromNormal(diff.getX(), diff.getY(), diff.getZ()); + return Direction.fromDelta(diff.getX(), diff.getY(), diff.getZ()); } public static void addTooltip(String name, List tooltip) { diff --git a/src/main/java/de/ellpeck/prettypipes/compat/jei/CraftingTerminalTransferHandler.java b/src/main/java/de/ellpeck/prettypipes/compat/jei/CraftingTerminalTransferHandler.java index 3e8f70e..d71a9f3 100644 --- a/src/main/java/de/ellpeck/prettypipes/compat/jei/CraftingTerminalTransferHandler.java +++ b/src/main/java/de/ellpeck/prettypipes/compat/jei/CraftingTerminalTransferHandler.java @@ -45,7 +45,7 @@ public class CraftingTerminalTransferHandler implements IRecipeTransferHandler stacks = new ArrayList<>(); var ingredients = slots.getSlotViews(RecipeIngredientRole.INPUT); for (var entry : ingredients) - stacks.add(new PacketGhostSlot.Entry(entry.getIngredients(VanillaTypes.ITEM_STACK).collect(Collectors.toList()))); + stacks.add(new PacketGhostSlot.Entry(player.level(), entry.getIngredients(VanillaTypes.ITEM_STACK).collect(Collectors.toList()))); PacketHandler.sendToServer(new PacketGhostSlot(container.getTile().getBlockPos(), stacks)); return null; } diff --git a/src/main/java/de/ellpeck/prettypipes/compat/jei/JEIPrettyPipesPlugin.java b/src/main/java/de/ellpeck/prettypipes/compat/jei/JEIPrettyPipesPlugin.java index a28684a..9b36946 100644 --- a/src/main/java/de/ellpeck/prettypipes/compat/jei/JEIPrettyPipesPlugin.java +++ b/src/main/java/de/ellpeck/prettypipes/compat/jei/JEIPrettyPipesPlugin.java @@ -73,12 +73,12 @@ public class JEIPrettyPipesPlugin implements IModPlugin { var screen = event.getScreen(); if (!(screen instanceof ItemTerminalGui terminal)) return; - terminal.addRenderableWidget(this.jeiSyncButton = new Button(terminal.getGuiLeft() - 22, terminal.getGuiTop() + 44, 20, 20, Component.literal(""), button -> { + terminal.addRenderableWidget(this.jeiSyncButton = Button.builder(Component.literal(""), button -> { var preferences = PlayerPrefs.get(); preferences.syncJei = !preferences.syncJei; preferences.save(); terminal.updateWidgets(); - })); + }).bounds(terminal.getGuiLeft() - 22, terminal.getGuiTop() + 44, 20, 20).build()); if (PlayerPrefs.get().syncJei) terminal.search.setValue(this.runtime.getIngredientFilter().getFilterText()); } @@ -91,7 +91,7 @@ public class JEIPrettyPipesPlugin implements IModPlugin { var sync = PlayerPrefs.get().syncJei; if (event instanceof ScreenEvent.Render.Post) { if (this.jeiSyncButton.isHoveredOrFocused()) - terminal.renderTooltip(event.getPoseStack(), Component.translatable("info." + PrettyPipes.ID + ".sync_jei." + (sync ? "on" : "off")), event.getMouseX(), event.getMouseY()); + event.getGuiGraphics().renderTooltip(terminal.getMinecraft().font, Component.translatable("info." + PrettyPipes.ID + ".sync_jei." + (sync ? "on" : "off")), event.getMouseX(), event.getMouseY()); } else if (event instanceof ScreenEvent.Render.Pre) { this.jeiSyncButton.setMessage(Component.literal((sync ? ChatFormatting.GREEN : ChatFormatting.RED) + "J")); } diff --git a/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameEntity.java b/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameEntity.java index 0481cd8..b0f0489 100644 --- a/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameEntity.java @@ -10,6 +10,7 @@ import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.sounds.SoundEvents; +import net.minecraft.tags.DamageTypeTags; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.damagesource.DamageSource; @@ -48,19 +49,19 @@ public class PipeFrameEntity extends ItemFrame implements IEntityAdditionalSpawn @Override public void tick() { super.tick(); - if (this.level.isClientSide) + if (this.level().isClientSide) return; if (this.tickCount % 40 != 0) return; - var network = PipeNetwork.get(this.level); - var attached = PipeFrameEntity.getAttachedPipe(this.level, this.pos, this.direction); + var network = PipeNetwork.get(this.level()); + var attached = PipeFrameEntity.getAttachedPipe(this.level(), this.pos, this.direction); if (attached != null) { var node = network.getNodeFromPipe(attached); if (node != null) { var stack = this.getItem(); if (!stack.isEmpty()) { var items = network.getOrderedNetworkItems(node); - var amount = items.stream().mapToInt(i -> i.getItemAmount(this.level, stack)).sum(); + var amount = items.stream().mapToInt(i -> i.getItemAmount(this.level(), stack)).sum(); this.entityData.set(PipeFrameEntity.AMOUNT, amount); return; } @@ -71,7 +72,7 @@ public class PipeFrameEntity extends ItemFrame implements IEntityAdditionalSpawn @Override public boolean survives() { - return super.survives() && PipeFrameEntity.canPlace(this.level, this.pos, this.direction); + return super.survives() && PipeFrameEntity.canPlace(this.level(), this.pos, this.direction); } private static BlockPos getAttachedPipe(Level world, BlockPos pos, Direction direction) { @@ -96,8 +97,8 @@ public class PipeFrameEntity extends ItemFrame implements IEntityAdditionalSpawn public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { return false; - } else if (!source.isExplosion() && !this.getItem().isEmpty()) { - if (!this.level.isClientSide) { + } else if (!source.is(DamageTypeTags.IS_EXPLOSION) && !this.getItem().isEmpty()) { + if (!this.level().isClientSide) { this.dropItemOrSelf(source.getDirectEntity(), false); this.playSound(SoundEvents.ITEM_FRAME_REMOVE_ITEM, 1.0F, 1.0F); } @@ -115,7 +116,7 @@ public class PipeFrameEntity extends ItemFrame implements IEntityAdditionalSpawn } private void dropItemOrSelf(@Nullable Entity entityIn, boolean b) { - if (!this.level.getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { + if (!this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { if (entityIn == null) this.getItem().setEntityRepresentation(null); } else { diff --git a/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameRenderer.java b/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameRenderer.java index 05f1e86..3c61576 100644 --- a/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameRenderer.java +++ b/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameRenderer.java @@ -1,7 +1,8 @@ package de.ellpeck.prettypipes.entities; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Vector3f; +import com.mojang.math.Axis; +import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.ItemFrameRenderer; @@ -20,17 +21,17 @@ public class PipeFrameRenderer extends ItemFrameRenderer { var vec3d = this.getRenderOffset(entityIn, partialTicks); matrixStackIn.translate(-vec3d.x, -vec3d.y, -vec3d.z); matrixStackIn.translate(direction.getStepX() * 0.46875, direction.getStepY() * 0.46875, direction.getStepZ() * 0.46875); - matrixStackIn.mulPose(Vector3f.XP.rotationDegrees(entityIn.getXRot())); - matrixStackIn.mulPose(Vector3f.YP.rotationDegrees(180.0F - entityIn.getYRot())); + matrixStackIn.mulPose(Axis.XP.rotationDegrees(entityIn.getXRot())); + matrixStackIn.mulPose(Axis.YP.rotationDegrees(180.0F - entityIn.getYRot())); var font = this.getFont(); var amount = entityIn.getAmount(); - var ammountStrg = amount < 0 ? "?" : String.valueOf(amount); - var x = 0.5F - font.width(ammountStrg) / 2F; + var amountStrg = amount < 0 ? "?" : String.valueOf(amount); + var x = 0.5F - font.width(amountStrg) / 2F; var matrix4f = matrixStackIn.last().pose(); matrixStackIn.translate(0, 0.285F, 0.415F); matrixStackIn.scale(-0.02F, -0.02F, 0.02F); - font.drawInBatch(ammountStrg, x, 0, 0xFFFFFF, true, matrix4f, bufferIn, false, 0, packedLightIn); + font.drawInBatch(amountStrg, x, 0, 0xFFFFFF, true, matrix4f, bufferIn, Font.DisplayMode.NORMAL, 0, packedLightIn); matrixStackIn.popPose(); } diff --git a/src/main/java/de/ellpeck/prettypipes/items/ModuleItem.java b/src/main/java/de/ellpeck/prettypipes/items/ModuleItem.java index b2d0bec..025a218 100644 --- a/src/main/java/de/ellpeck/prettypipes/items/ModuleItem.java +++ b/src/main/java/de/ellpeck/prettypipes/items/ModuleItem.java @@ -1,6 +1,5 @@ package de.ellpeck.prettypipes.items; -import de.ellpeck.prettypipes.Registry; import de.ellpeck.prettypipes.Utility; import de.ellpeck.prettypipes.misc.DirectionSelector; import de.ellpeck.prettypipes.misc.ItemFilter; @@ -30,7 +29,7 @@ public abstract class ModuleItem extends Item implements IModule { private final String name; public ModuleItem(String name) { - super(new Properties().tab(Registry.TAB).stacksTo(16)); + super(new Properties().stacksTo(16)); this.name = name; } diff --git a/src/main/java/de/ellpeck/prettypipes/items/PipeFrameItem.java b/src/main/java/de/ellpeck/prettypipes/items/PipeFrameItem.java index 7ec9bec..83c9671 100644 --- a/src/main/java/de/ellpeck/prettypipes/items/PipeFrameItem.java +++ b/src/main/java/de/ellpeck/prettypipes/items/PipeFrameItem.java @@ -23,7 +23,7 @@ import java.util.List; public class PipeFrameItem extends Item { public PipeFrameItem() { - super(new Properties().tab(Registry.TAB)); + super(new Properties()); } // HangingEntityItem copypasta mostly, since it hardcodes the entities bleh @@ -60,7 +60,7 @@ public class PipeFrameItem extends Item { } protected boolean canPlace(Player playerIn, Direction directionIn, ItemStack itemStackIn, BlockPos posIn) { - return !directionIn.getAxis().isVertical() && playerIn.mayUseItemAt(posIn, directionIn, itemStackIn) && PipeFrameEntity.canPlace(playerIn.level, posIn, directionIn); + return !directionIn.getAxis().isVertical() && playerIn.mayUseItemAt(posIn, directionIn, itemStackIn) && PipeFrameEntity.canPlace(playerIn.level(), posIn, directionIn); } @Override diff --git a/src/main/java/de/ellpeck/prettypipes/items/WrenchItem.java b/src/main/java/de/ellpeck/prettypipes/items/WrenchItem.java index d081dcf..8bca635 100644 --- a/src/main/java/de/ellpeck/prettypipes/items/WrenchItem.java +++ b/src/main/java/de/ellpeck/prettypipes/items/WrenchItem.java @@ -1,6 +1,5 @@ package de.ellpeck.prettypipes.items; -import de.ellpeck.prettypipes.Registry; import de.ellpeck.prettypipes.Utility; import de.ellpeck.prettypipes.pipe.ConnectionType; import de.ellpeck.prettypipes.pipe.PipeBlock; @@ -27,7 +26,7 @@ import java.util.List; public class WrenchItem extends Item { public WrenchItem() { - super(new Item.Properties().stacksTo(1).tab(Registry.TAB)); + super(new Item.Properties().stacksTo(1)); } @Override diff --git a/src/main/java/de/ellpeck/prettypipes/misc/Events.java b/src/main/java/de/ellpeck/prettypipes/misc/Events.java index 404e930..c6af821 100644 --- a/src/main/java/de/ellpeck/prettypipes/misc/Events.java +++ b/src/main/java/de/ellpeck/prettypipes/misc/Events.java @@ -33,7 +33,7 @@ public final class Events { var dump = PipeNetwork.get(source.getLevel()).toString(); try { Files.writeString(file, dump, StandardCharsets.UTF_8); - source.sendSuccess(Component.literal("Wrote network dump to file " + file.toAbsolutePath()), true); + source.sendSuccess(() -> Component.literal("Wrote network dump to file " + file.toAbsolutePath()), true); } catch (IOException e) { source.sendFailure(Component.literal("Failed to write network dump to file " + file.toAbsolutePath())); return -1; @@ -43,13 +43,13 @@ public final class Events { .then(Commands.literal("uncache").executes(c -> { var source = c.getSource(); PipeNetwork.get(source.getLevel()).clearCaches(); - source.sendSuccess(Component.literal("Cleared all pipe caches in the world"), true); + source.sendSuccess(() -> Component.literal("Cleared all pipe caches in the world"), true); return 0; })) .then(Commands.literal("unlock").executes(c -> { var source = c.getSource(); PipeNetwork.get(source.getLevel()).unlock(); - source.sendSuccess(Component.literal("Resolved all network locks in the world"), true); + source.sendSuccess(() -> Component.literal("Resolved all network locks in the world"), true); return 0; }))); } diff --git a/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java b/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java index 25e8688..3a801d6 100644 --- a/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java +++ b/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java @@ -10,7 +10,8 @@ import java.util.function.Supplier; public class ItemEquality { public static final ItemEquality DAMAGE = new ItemEquality((stack, filter) -> stack.getDamageValue() == filter.getDamageValue(), false, Type.DAMAGE); - public static final ItemEquality NBT = new ItemEquality(ItemStack::tagMatches, false, Type.NBT); + // TODO see if this tagMatches replacement is good enough? + public static final ItemEquality NBT = new ItemEquality(ItemStack::areShareTagsEqual, false, Type.NBT); public static final ItemEquality MOD = new ItemEquality((stack, filter) -> stack.getItem().getCreatorModId(stack).equals(filter.getItem().getCreatorModId(filter)), true, Type.MOD); public final Type type; @@ -28,7 +29,7 @@ public class ItemEquality { } public static boolean compareItems(ItemStack stack, ItemStack filter, ItemEquality... types) { - var equal = ItemStack.isSameIgnoreDurability(stack, filter); + var equal = ItemStack.isSameItem(stack, filter); if (types.length <= 0) return equal; for (var type : types) { diff --git a/src/main/java/de/ellpeck/prettypipes/misc/ItemFilter.java b/src/main/java/de/ellpeck/prettypipes/misc/ItemFilter.java index 4ed2b6b..acf49aa 100644 --- a/src/main/java/de/ellpeck/prettypipes/misc/ItemFilter.java +++ b/src/main/java/de/ellpeck/prettypipes/misc/ItemFilter.java @@ -1,6 +1,5 @@ package de.ellpeck.prettypipes.misc; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.PrettyPipes; import de.ellpeck.prettypipes.packets.PacketButton; import de.ellpeck.prettypipes.pipe.PipeBlockEntity; @@ -8,6 +7,7 @@ import de.ellpeck.prettypipes.pipe.modules.modifier.FilterModifierModuleItem; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.Tooltip; import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -52,23 +52,13 @@ public class ItemFilter extends ItemStackHandler { List buttons = new ArrayList<>(); if (this.canModifyWhitelist) { var whitelistText = (Supplier) () -> "info." + PrettyPipes.ID + "." + (this.isWhitelist ? "whitelist" : "blacklist"); - buttons.add(new Button(x - 20, y, 20, 20, Component.translatable(whitelistText.get()), button -> { + buttons.add(Button.builder(Component.translatable(whitelistText.get()), button -> { PacketButton.sendAndExecute(this.pipe.getBlockPos(), PacketButton.ButtonResult.FILTER_CHANGE, 0); button.setMessage(Component.translatable(whitelistText.get())); - }) { - @Override - public void renderToolTip(PoseStack matrix, int x, int y) { - gui.renderTooltip(matrix, Component.translatable(whitelistText.get() + ".description").withStyle(ChatFormatting.GRAY), x, y); - } - }); + }).bounds(x - 20, y, 20, 20).tooltip(Tooltip.create(Component.translatable(whitelistText.get() + ".description").withStyle(ChatFormatting.GRAY))).build()); } if (this.canPopulateFromInventories) { - buttons.add(new Button(x - 42, y, 20, 20, Component.translatable("info." + PrettyPipes.ID + ".populate"), button -> PacketButton.sendAndExecute(this.pipe.getBlockPos(), PacketButton.ButtonResult.FILTER_CHANGE, 1)) { - @Override - public void renderToolTip(PoseStack matrix, int x, int y) { - gui.renderTooltip(matrix, Component.translatable("info." + PrettyPipes.ID + ".populate.description").withStyle(ChatFormatting.GRAY), x, y); - } - }); + buttons.add(Button.builder(Component.translatable("info." + PrettyPipes.ID + ".populate"), button -> PacketButton.sendAndExecute(this.pipe.getBlockPos(), PacketButton.ButtonResult.FILTER_CHANGE, 1)).bounds(x - 42, y, 20, 20).tooltip(Tooltip.create(Component.translatable("info." + PrettyPipes.ID + ".populate.description").withStyle(ChatFormatting.GRAY))).build()); } return buttons; } diff --git a/src/main/java/de/ellpeck/prettypipes/misc/ItemTerminalWidget.java b/src/main/java/de/ellpeck/prettypipes/misc/ItemTerminalWidget.java index 5b703c1..1ba853d 100644 --- a/src/main/java/de/ellpeck/prettypipes/misc/ItemTerminalWidget.java +++ b/src/main/java/de/ellpeck/prettypipes/misc/ItemTerminalWidget.java @@ -1,12 +1,12 @@ package de.ellpeck.prettypipes.misc; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.terminal.containers.ItemTerminalGui; import net.minecraft.ChatFormatting; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.narration.NarrationElementOutput; +import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.item.ItemStack; @@ -37,46 +37,44 @@ public class ItemTerminalWidget extends AbstractWidget { } @Override - public void renderButton(PoseStack matrix, int mouseX, int mouseY, float partialTicks) { + protected void renderWidget(GuiGraphics graphics, int p_268034_, int p_268009_, float p_268085_) { var mc = this.screen.getMinecraft(); var renderer = mc.getItemRenderer(); - this.setBlitOffset(100); - renderer.blitOffset = 100; + // TODO test this new blit offset replacement? + graphics.pose().translate(0, 0, 100); if (this.selected) - GuiComponent.fill(matrix, this.x, this.y, this.x + 16, this.y + 16, -2130706433); + graphics.fill(this.getX(), this.getY(), this.getX() + 16, this.getY() + 16, -2130706433); RenderSystem.enableDepthTest(); - renderer.renderGuiItem(this.stack, this.x, this.y); + graphics.renderItem(this.stack, this.getX(), this.getY()); var amount = !this.craftable ? this.stack.getCount() : 0; var amountStrg = this.stack.getCount() >= 1000 ? amount / 1000 + "k" : String.valueOf(amount); - renderer.renderGuiItemDecorations(mc.font, this.stack, this.x, this.y, amountStrg); - renderer.blitOffset = 0; - this.setBlitOffset(0); + graphics.renderItemDecorations(mc.font, this.stack, this.getX(), this.getY(), amountStrg); + graphics.pose().translate(0, 0, -100); if (this.isHoveredOrFocused()) { RenderSystem.disableDepthTest(); RenderSystem.colorMask(true, true, true, false); - this.fillGradient(matrix, this.x, this.y, this.x + 16, this.y + 16, -2130706433, -2130706433); + graphics.fillGradient(this.getX(), this.getY(), this.getX() + 16, this.getY() + 16, -2130706433, -2130706433); RenderSystem.colorMask(true, true, true, true); RenderSystem.enableDepthTest(); } } - @Override - public void renderToolTip(PoseStack matrix, int mouseX, int mouseY) { + public void renderToolTip(GuiGraphics graphics, int mouseX, int mouseY) { if (this.visible && this.isHoveredOrFocused()) { - var tooltip = this.screen.getTooltipFromItem(this.stack); + var tooltip = Screen.getTooltipFromItem(this.screen.getMinecraft(), this.stack); if (this.stack.getCount() >= 1000) { var comp = tooltip.get(0); - if (comp instanceof MutableComponent m) { + if (comp instanceof MutableComponent m) tooltip.set(0, m.append(Component.literal(" (" + this.stack.getCount() + ')').withStyle(ChatFormatting.BOLD))); - } } - this.screen.renderTooltip(matrix, tooltip, Optional.empty(), mouseX, mouseY); + graphics.renderTooltip(this.screen.getMinecraft().font, tooltip, Optional.empty(), mouseX, mouseY); } } @Override - public void updateNarration(NarrationElementOutput output) { + public void updateWidgetNarration(NarrationElementOutput output) { this.defaultButtonNarrationText(output); } + } diff --git a/src/main/java/de/ellpeck/prettypipes/network/PipeItem.java b/src/main/java/de/ellpeck/prettypipes/network/PipeItem.java index 5ee484f..83c7b36 100644 --- a/src/main/java/de/ellpeck/prettypipes/network/PipeItem.java +++ b/src/main/java/de/ellpeck/prettypipes/network/PipeItem.java @@ -7,7 +7,6 @@ import de.ellpeck.prettypipes.pipe.IPipeItem; import de.ellpeck.prettypipes.pipe.PipeBlockEntity; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; @@ -18,6 +17,7 @@ import net.minecraft.util.Mth; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; @@ -104,7 +104,7 @@ public class PipeItem implements IPipeItem { var currSpeed = Math.min(0.25F, motionLeft); motionLeft -= currSpeed; - var myPos = new BlockPos(this.x, this.y, this.z); + var myPos = BlockPos.containing(this.x, this.y, this.z); if (!myPos.equals(currPipe.getBlockPos()) && (currPipe.getBlockPos().equals(this.getDestPipe()) || !myPos.equals(this.startInventory))) { // we're done with the current pipe, so switch to the next one currPipe.getItems().remove(this); @@ -196,7 +196,7 @@ public class PipeItem implements IPipeItem { @Override public void drop(Level world, ItemStack stack) { var item = new ItemEntity(world, this.x, this.y, this.z, stack.copy()); - item.level.addFreshEntity(item); + item.level().addFreshEntity(item); } protected ItemStack store(PipeBlockEntity currPipe) { @@ -312,7 +312,7 @@ public class PipeItem implements IPipeItem { (random.nextFloat() * 2.0F - 1.0F) * 0.25F * 0.5F, (random.nextFloat() * 2.0F - 1.0F) * 0.25F * 0.5F); } - Minecraft.getInstance().getItemRenderer().renderStatic(this.stack, ItemTransforms.TransformType.GROUND, light, overlay, matrixStack, source, 0); + Minecraft.getInstance().getItemRenderer().renderStatic(this.stack, ItemDisplayContext.GROUND, light, overlay, matrixStack, source, tile.getLevel(), 0); matrixStack.popPose(); } } diff --git a/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java b/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java index 3e995b3..3f83b77 100644 --- a/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java +++ b/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java @@ -77,7 +77,7 @@ public class PacketButton { public enum ButtonResult { PIPE_TAB((pos, data, player) -> { - var tile = Utility.getBlockEntity(PipeBlockEntity.class, player.level, pos); + var tile = Utility.getBlockEntity(PipeBlockEntity.class, player.level(), pos); if (data[0] < 0) { NetworkHooks.openScreen((ServerPlayer) player, tile, pos); } else { @@ -113,11 +113,11 @@ public class PacketButton { StackSizeModuleItem.setMaxStackSize(container.moduleStack, data[0]); }), CRAFT_TERMINAL_REQUEST((pos, data, player) -> { - var tile = Utility.getBlockEntity(CraftingTerminalBlockEntity.class, player.level, pos); + var tile = Utility.getBlockEntity(CraftingTerminalBlockEntity.class, player.level(), pos); tile.requestCraftingItems(player, data[0], data[1] > 0); }), CANCEL_CRAFTING((pos, data, player) -> { - var tile = Utility.getBlockEntity(ItemTerminalBlockEntity.class, player.level, pos); + var tile = Utility.getBlockEntity(ItemTerminalBlockEntity.class, player.level(), pos); tile.cancelCrafting(); }), TAG_FILTER((pos, data, player) -> { diff --git a/src/main/java/de/ellpeck/prettypipes/packets/PacketGhostSlot.java b/src/main/java/de/ellpeck/prettypipes/packets/PacketGhostSlot.java index ebc1c24..0e4c6de 100644 --- a/src/main/java/de/ellpeck/prettypipes/packets/PacketGhostSlot.java +++ b/src/main/java/de/ellpeck/prettypipes/packets/PacketGhostSlot.java @@ -6,7 +6,7 @@ import de.ellpeck.prettypipes.Utility; import de.ellpeck.prettypipes.terminal.CraftingTerminalBlockEntity; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; -import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; @@ -14,6 +14,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; import net.minecraftforge.network.NetworkEvent; import java.util.ArrayList; @@ -55,7 +56,7 @@ public class PacketGhostSlot { @SuppressWarnings("Convert2Lambda") public static void onMessage(PacketGhostSlot message, Supplier ctx) { var doIt = (Consumer) p -> { - var tile = Utility.getBlockEntity(CraftingTerminalBlockEntity.class, p.level, message.pos); + var tile = Utility.getBlockEntity(CraftingTerminalBlockEntity.class, p.level(), message.pos); if (tile != null) tile.setGhostItems(message.stacks); }; @@ -88,8 +89,8 @@ public class PacketGhostSlot { private final List stacks; private final TagKey tag; - public Entry(List stacks) { - var tag = Entry.getTagForStacks(stacks); + public Entry(Level level, List stacks) { + var tag = Entry.getTagForStacks(level, stacks); if (tag != null) { this.stacks = null; this.tag = tag; @@ -107,14 +108,14 @@ public class PacketGhostSlot { this.stacks.add(buf.readItem()); } else { this.stacks = null; - this.tag = TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation(buf.readUtf())); + this.tag = TagKey.create(Registries.ITEM, new ResourceLocation(buf.readUtf())); } } - public List getStacks() { + public List getStacks(Level level) { if (this.stacks != null) return this.stacks; - return Streams.stream(Registry.ITEM.getTagOrEmpty(this.tag).iterator()) + return Streams.stream(level.registryAccess().registry(Registries.ITEM).get().getTagOrEmpty(this.tag).iterator()) .filter(h -> h.value() != null & h.value() != Items.AIR) .map(h -> new ItemStack(h.value())).collect(Collectors.toList()); } @@ -132,8 +133,8 @@ public class PacketGhostSlot { return buf; } - private static TagKey getTagForStacks(List stacks) { - return Registry.ITEM.getTags().filter(e -> { + private static TagKey getTagForStacks(Level level, List stacks) { + return level.registryAccess().registry(Registries.ITEM).get().getTags().filter(e -> { var tag = e.getSecond(); if (tag.size() != stacks.size()) return false; diff --git a/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java b/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java index 03bc0c9..cf9ce0c 100644 --- a/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java +++ b/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java @@ -51,7 +51,7 @@ public class PacketRequest { @Override public void run() { Player player = ctx.get().getSender(); - var tile = Utility.getBlockEntity(ItemTerminalBlockEntity.class, player.level, message.pos); + var tile = Utility.getBlockEntity(ItemTerminalBlockEntity.class, player.level(), message.pos); message.stack.setCount(message.amount); tile.requestItem(player, message.stack, message.nbtHash); } diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java index d017b47..38bdbc3 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java @@ -28,7 +28,6 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; -import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; @@ -66,7 +65,7 @@ public class PipeBlock extends BaseEntityBlock { } public PipeBlock() { - super(Block.Properties.of(Material.STONE).strength(2).sound(SoundType.STONE).noOcclusion()); + super(Block.Properties.of().strength(2).sound(SoundType.STONE).noOcclusion()); var state = this.defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false); for (var prop : PipeBlock.DIRECTIONS.values()) @@ -225,8 +224,9 @@ public class PipeBlock extends BaseEntityBlock { protected static boolean hasLegsTo(Level world, BlockState state, BlockPos pos, Direction direction) { if (state.getBlock() instanceof WallBlock || state.getBlock() instanceof FenceBlock) return direction == Direction.DOWN; - if (state.getMaterial() == Material.STONE || state.getMaterial() == Material.METAL) - return Block.canSupportCenter(world, pos, direction.getOpposite()); + // TODO figure out new condition for legs now that materials are gone +/* if (state.getMaterial() == Material.STONE || state.getMaterial() == Material.METAL) + return Block.canSupportCenter(world, pos, direction.getOpposite());*/ return false; } diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java index 657c5b1..fc59e5d 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlockEntity.java @@ -11,6 +11,7 @@ import de.ellpeck.prettypipes.pipe.containers.MainPipeContainer; import de.ellpeck.prettypipes.pressurizer.PressurizerBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtUtils; @@ -116,7 +117,7 @@ public class PipeBlockEntity extends BlockEntity implements MenuProvider, IPipeC public void load(CompoundTag compound) { this.modules.deserializeNBT(compound.getCompound("modules")); this.moduleDropCheck = compound.getInt("module_drop_check"); - this.cover = compound.contains("cover") ? NbtUtils.readBlockState(compound.getCompound("cover")) : null; + this.cover = compound.contains("cover") ? NbtUtils.readBlockState(this.level.holderLookup(Registries.BLOCK), compound.getCompound("cover")) : null; this.craftIngredientRequests.clear(); this.craftIngredientRequests.addAll(Utility.deserializeAll(compound.getList("requests", Tag.TAG_COMPOUND), NetworkLock::new)); this.craftResultRequests.clear(); diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeContainer.java b/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeContainer.java index c5597a2..a180e45 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeContainer.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeContainer.java @@ -24,7 +24,7 @@ public abstract class AbstractPipeContainer extends AbstractC public AbstractPipeContainer(@Nullable MenuType type, int id, Player player, BlockPos pos, int moduleIndex) { super(type, id); - this.tile = Utility.getBlockEntity(PipeBlockEntity.class, player.level, pos); + this.tile = Utility.getBlockEntity(PipeBlockEntity.class, player.level(), pos); this.moduleStack = moduleIndex < 0 ? null : this.tile.modules.getStackInSlot(moduleIndex); this.module = moduleIndex < 0 ? null : (T) this.moduleStack.getItem(); this.moduleIndex = moduleIndex; diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeGui.java b/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeGui.java index 21f1058..16e2c95 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeGui.java @@ -1,15 +1,12 @@ package de.ellpeck.prettypipes.pipe.containers; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.PrettyPipes; import de.ellpeck.prettypipes.Registry; import de.ellpeck.prettypipes.items.IModule; import de.ellpeck.prettypipes.packets.PacketButton; import de.ellpeck.prettypipes.packets.PacketHandler; -import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -56,39 +53,38 @@ public abstract class AbstractPipeGui> extend } @Override - public void render(PoseStack matrix, int mouseX, int mouseY, float partialTicks) { - this.renderBackground(matrix); - super.render(matrix, mouseX, mouseY, partialTicks); + public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + this.renderBackground(graphics); + super.render(graphics, mouseX, mouseY, partialTicks); for (var widget : this.renderables) { - if (widget instanceof AbstractWidget abstractWidget) { + // TDOO render widget tooltips? + /* if (widget instanceof AbstractWidget abstractWidget) { if (abstractWidget.isHoveredOrFocused()) abstractWidget.renderToolTip(matrix, mouseX, mouseY); - } + }*/ } - this.renderTooltip(matrix, mouseX, mouseY); + this.renderTooltip(graphics, mouseX, mouseY); } @Override - protected void renderLabels(PoseStack matrix, int mouseX, int mouseY) { - this.font.draw(matrix, this.playerInventoryTitle.getString(), 8, this.imageHeight - 96 + 2, 4210752); - this.font.draw(matrix, this.title.getString(), 8, 6 + 32, 4210752); + protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { + graphics.drawString(this.font, this.playerInventoryTitle.getString(), 8, this.imageHeight - 96 + 2, 4210752); + graphics.drawString(this.font, this.title.getString(), 8, 6 + 32, 4210752); for (var tab : this.tabs) - tab.drawForeground(matrix, mouseX, mouseY); + tab.drawForeground(graphics, mouseX, mouseY); } @Override - protected void renderBg(PoseStack matrix, float partialTicks, int mouseX, int mouseY) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, AbstractPipeGui.TEXTURE); - this.blit(matrix, this.leftPos, this.topPos + 32, 0, 0, 176, 171); + protected void renderBg(GuiGraphics graphics, float partialTicks, int mouseX, int mouseY) { + graphics.blit(AbstractPipeGui.TEXTURE, this.leftPos, this.topPos + 32, 0, 0, 176, 171); for (var tab : this.tabs) - tab.draw(matrix); + tab.draw(graphics); // draw the slots since we're using a blank ui for (var slot : this.menu.slots) { if (slot instanceof SlotItemHandler) - this.blit(matrix, this.leftPos + slot.x - 1, this.topPos + slot.y - 1, 176, 62, 18, 18); + graphics.blit(AbstractPipeGui.TEXTURE, this.leftPos + slot.x - 1, this.topPos + slot.y - 1, 176, 62, 18, 18); } } @@ -128,7 +124,7 @@ public abstract class AbstractPipeGui> extend this.y = AbstractPipeGui.this.topPos; } - private void draw(PoseStack matrix) { + private void draw(GuiGraphics graphics) { var y = 2; var v = 0; var height = 30; @@ -139,17 +135,14 @@ public abstract class AbstractPipeGui> extend height = 32; itemOffset = 7; } - AbstractPipeGui.this.blit(matrix, this.x, this.y + y, 176, v, 28, height); - - AbstractPipeGui.this.itemRenderer.renderGuiItem(this.moduleStack, this.x + 6, this.y + itemOffset); - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, AbstractPipeGui.TEXTURE); + graphics.blit(AbstractPipeGui.TEXTURE, this.x, this.y + y, 176, v, 28, height); + graphics.renderItem(this.moduleStack, this.x + 6, this.y + itemOffset); } - private void drawForeground(PoseStack matrix, int mouseX, int mouseY) { + private void drawForeground(GuiGraphics graphics, int mouseX, int mouseY) { if (mouseX < this.x || mouseY < this.y || mouseX >= this.x + 28 || mouseY >= this.y + 32) return; - AbstractPipeGui.this.renderTooltip(matrix, this.moduleStack.getHoverName(), mouseX - AbstractPipeGui.this.leftPos, mouseY - AbstractPipeGui.this.topPos); + graphics.renderTooltip(AbstractPipeGui.this.font, this.moduleStack.getHoverName(), mouseX - AbstractPipeGui.this.leftPos, mouseY - AbstractPipeGui.this.topPos); } private boolean onClicked(double mouseX, double mouseY, int button) { diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleGui.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleGui.java index a373f5f..c4e0b5f 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleGui.java @@ -1,9 +1,7 @@ package de.ellpeck.prettypipes.pipe.modules.craft; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.pipe.containers.AbstractPipeGui; -import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; @@ -14,10 +12,8 @@ public class CraftingModuleGui extends AbstractPipeGui } @Override - protected void renderBg(PoseStack matrix, float partialTicks, int mouseX, int mouseY) { - super.renderBg(matrix, partialTicks, mouseX, mouseY); - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, AbstractPipeGui.TEXTURE); - this.blit(matrix, this.leftPos + 176 / 2 - 16 / 2, this.topPos + 32 + 18 * 2, 176, 80, 16, 16); + protected void renderBg(GuiGraphics graphics, float partialTicks, int mouseX, int mouseY) { + super.renderBg(graphics, partialTicks, mouseX, mouseY); + graphics.blit(AbstractPipeGui.TEXTURE, this.leftPos + 176 / 2 - 16 / 2, this.topPos + 32 + 18 * 2, 176, 80, 16, 16); } } diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/modifier/FilterModifierModuleGui.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/modifier/FilterModifierModuleGui.java index c117c22..dc8c03b 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/modules/modifier/FilterModifierModuleGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/modifier/FilterModifierModuleGui.java @@ -1,10 +1,10 @@ package de.ellpeck.prettypipes.pipe.modules.modifier; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.packets.PacketButton; import de.ellpeck.prettypipes.pipe.containers.AbstractPipeGui; import net.minecraft.ChatFormatting; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; @@ -28,18 +28,18 @@ public class FilterModifierModuleGui extends AbstractPipeGui= 6) { var percentage = this.scrollOffset / (float) (this.tags.size() - 5); - this.blit(matrix, this.leftPos + 156, this.topPos + 32 + 16 + (int) (percentage * (58 - 15)), 232, 241, 12, 15); + graphics.blit(AbstractPipeGui.TEXTURE, this.leftPos + 156, this.topPos + 32 + 16 + (int) (percentage * (58 - 15)), 232, 241, 12, 15); } else { - this.blit(matrix, this.leftPos + 156, this.topPos + 32 + 16, 244, 241, 12, 15); + graphics.blit(AbstractPipeGui.TEXTURE, this.leftPos + 156, this.topPos + 32 + 16, 244, 241, 12, 15); } } @@ -117,14 +117,14 @@ public class FilterModifierModuleGui extends AbstractPipeGui= this.x && mouseY >= this.y && mouseX < this.x + 140 && mouseY < this.y + 12) color = 0xFFFFFF; if (this.tag.equals(FilterModifierModuleItem.getFilterTag(FilterModifierModuleGui.this.menu.moduleStack))) text = ChatFormatting.BOLD + text; - FilterModifierModuleGui.this.font.draw(matrix, text, this.x, this.y, color); + graphics.drawString(FilterModifierModuleGui.this.font, text, this.x, this.y, color); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, AbstractPipeGui.TEXTURE); } diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/stacksize/StackSizeModuleGui.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/stacksize/StackSizeModuleGui.java index e9165ae..5805ce1 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/modules/stacksize/StackSizeModuleGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/stacksize/StackSizeModuleGui.java @@ -1,10 +1,10 @@ package de.ellpeck.prettypipes.pipe.modules.stacksize; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.PrettyPipes; import de.ellpeck.prettypipes.packets.PacketButton; import de.ellpeck.prettypipes.packets.PacketButton.ButtonResult; import de.ellpeck.prettypipes.pipe.containers.AbstractPipeGui; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.resources.language.I18n; @@ -43,16 +43,16 @@ public class StackSizeModuleGui extends AbstractPipeGui buttonText = () -> Component.translatable("info." + PrettyPipes.ID + ".limit_to_max_" + (StackSizeModuleItem.getLimitToMaxStackSize(this.menu.moduleStack) ? "on" : "off")); - this.addRenderableWidget(new Button(this.leftPos + 7, this.topPos + 17 + 32 + 10 + 22, 120, 20, buttonText.get(), b -> { + this.addRenderableWidget(Button.builder(buttonText.get(), b -> { PacketButton.sendAndExecute(this.menu.tile.getBlockPos(), ButtonResult.STACK_SIZE_MODULE_BUTTON); b.setMessage(buttonText.get()); - })); + }).bounds(this.leftPos + 7, this.topPos + 17 + 32 + 10 + 22, 120, 20).build()); } @Override - protected void renderLabels(PoseStack matrix, int mouseX, int mouseY) { - super.renderLabels(matrix, mouseX, mouseY); - this.font.draw(matrix, I18n.get("info." + PrettyPipes.ID + ".max_stack_size") + ":", 7, 17 + 32, 4210752); + protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { + super.renderLabels(graphics, mouseX, mouseY); + graphics.drawString(this.font, I18n.get("info." + PrettyPipes.ID + ".max_stack_size") + ":", 7, 17 + 32, 4210752); } } diff --git a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerBlock.java b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerBlock.java index 9ecefa8..c655d2e 100644 --- a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerBlock.java +++ b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerBlock.java @@ -20,7 +20,6 @@ import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.registries.ForgeRegistries; @@ -31,7 +30,7 @@ import java.util.List; public class PressurizerBlock extends BaseEntityBlock { public PressurizerBlock() { - super(BlockBehaviour.Properties.of(Material.STONE).strength(3).sound(SoundType.STONE)); + super(BlockBehaviour.Properties.of().strength(3).sound(SoundType.STONE)); } @Override diff --git a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerContainer.java b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerContainer.java index 5bcedbb..4026b48 100644 --- a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerContainer.java +++ b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerContainer.java @@ -16,7 +16,7 @@ public class PressurizerContainer extends AbstractContainerMenu { public PressurizerContainer(@Nullable MenuType type, int id, Player player, BlockPos pos) { super(type, id); - this.tile = Utility.getBlockEntity(PressurizerBlockEntity.class, player.level, pos); + this.tile = Utility.getBlockEntity(PressurizerBlockEntity.class, player.level(), pos); for (var l = 0; l < 3; ++l) for (var j1 = 0; j1 < 9; ++j1) diff --git a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java index 68c0449..2439d09 100644 --- a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java @@ -1,10 +1,8 @@ package de.ellpeck.prettypipes.pressurizer; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.PrettyPipes; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Inventory; @@ -20,26 +18,24 @@ public class PressurizerGui extends AbstractContainerScreen= this.leftPos + 26 && mouseY >= this.topPos + 22 && mouseX < this.leftPos + 26 + 124 && mouseY < this.topPos + 22 + 12) - this.renderTooltip(matrix, Component.translatable("info." + PrettyPipes.ID + ".energy", this.menu.tile.getEnergy(), this.menu.tile.getMaxEnergy()), mouseX, mouseY); + graphics.renderTooltip(this.font, Component.translatable("info." + PrettyPipes.ID + ".energy", this.menu.tile.getEnergy(), this.menu.tile.getMaxEnergy()), mouseX, mouseY); } @Override - protected void renderLabels(PoseStack matrix, int mouseX, int mouseY) { - this.font.draw(matrix, this.playerInventoryTitle.getString(), 8, this.imageHeight - 96 + 2, 4210752); - this.font.draw(matrix, this.title.getString(), 8, 6, 4210752); + protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { + graphics.drawString(this.font, this.playerInventoryTitle.getString(), 8, this.imageHeight - 96 + 2, 4210752); + graphics.drawString(this.font, this.title.getString(), 8, 6, 4210752); } @Override - protected void renderBg(PoseStack matrixStack, float partialTicks, int x, int y) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, PressurizerGui.TEXTURE); - this.blit(matrixStack, this.leftPos, this.topPos, 0, 0, 176, 137); + protected void renderBg(GuiGraphics graphics, float partialTicks, int x, int y) { + graphics.blit(PressurizerGui.TEXTURE, this.leftPos, this.topPos, 0, 0, 176, 137); var energy = (int) (this.menu.tile.getEnergyPercentage() * 124); - this.blit(matrixStack, this.leftPos + 26, this.topPos + 22, 0, 137, energy, 12); + graphics.blit(PressurizerGui.TEXTURE, this.leftPos + 26, this.topPos + 22, 0, 137, energy, 12); } } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalBlockEntity.java b/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalBlockEntity.java index 87ecb0b..486ac4c 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalBlockEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalBlockEntity.java @@ -61,7 +61,7 @@ public class CraftingTerminalBlockEntity extends ItemTerminalBlockEntity { public void setGhostItems(List stacks) { this.updateItems(); for (var i = 0; i < this.ghostItems.getSlots(); i++) { - var items = stacks.get(i).getStacks(); + var items = stacks.get(i).getStacks(this.level); if (items.isEmpty()) { this.ghostItems.setStackInSlot(i, ItemStack.EMPTY); continue; @@ -97,7 +97,7 @@ public class CraftingTerminalBlockEntity extends ItemTerminalBlockEntity { if (!this.level.isClientSide) { List clients = new ArrayList<>(); for (var i = 0; i < this.ghostItems.getSlots(); i++) - clients.add(new PacketGhostSlot.Entry(Collections.singletonList(this.ghostItems.getStackInSlot(i)))); + clients.add(new PacketGhostSlot.Entry(this.level, Collections.singletonList(this.ghostItems.getStackInSlot(i)))); PacketHandler.sendToAllLoaded(this.level, this.getBlockPos(), new PacketGhostSlot(this.getBlockPos(), clients)); } } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalBlock.java b/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalBlock.java index 5f617a6..ff216f0 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalBlock.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalBlock.java @@ -20,7 +20,6 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.registries.ForgeRegistries; @@ -31,7 +30,7 @@ import java.util.List; public class ItemTerminalBlock extends BaseEntityBlock { public ItemTerminalBlock() { - super(Properties.of(Material.STONE).strength(3).sound(SoundType.STONE)); + super(Properties.of().strength(3).sound(SoundType.STONE)); } @Override diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalContainer.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalContainer.java index 2d7287f..362f3f6 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalContainer.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalContainer.java @@ -46,11 +46,11 @@ public class CraftingTerminalContainer extends ItemTerminalContainer { @Override public void slotsChanged(Container inventoryIn) { super.slotsChanged(inventoryIn); - if (!this.player.level.isClientSide) { + if (!this.player.level().isClientSide) { var ret = ItemStack.EMPTY; - var optional = this.player.level.getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, this.craftInventory, this.player.level); + var optional = this.player.level().getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, this.craftInventory, this.player.level()); if (optional.isPresent()) - ret = optional.get().assemble(this.craftInventory); + ret = optional.get().assemble(this.craftInventory, this.player.level().registryAccess()); this.craftResult.setItem(0, ret); ((ServerPlayer) this.player).connection.send(new ClientboundContainerSetSlotPacket(this.containerId, 0, 0, ret)); } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java index a02671b..02e7a51 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java @@ -1,10 +1,10 @@ package de.ellpeck.prettypipes.terminal.containers; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.PrettyPipes; import de.ellpeck.prettypipes.packets.PacketButton; import de.ellpeck.prettypipes.packets.PacketHandler; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; @@ -24,12 +24,12 @@ public class CraftingTerminalGui extends ItemTerminalGui { @Override protected void init() { super.init(); - this.requestButton = this.addRenderableWidget(new Button(this.leftPos + 8, this.topPos + 100, 50, 20, Component.translatable("info." + PrettyPipes.ID + ".request"), button -> { + this.requestButton = this.addRenderableWidget(Button.builder(Component.translatable("info." + PrettyPipes.ID + ".request"), button -> { var amount = ItemTerminalGui.requestModifier(); // also allow holding backspace instead of alt for people whose alt key is inaccessible (linux?) var force = Screen.hasAltDown() || InputConstants.isKeyDown(this.minecraft.getWindow().getWindow(), 259) ? 1 : 0; PacketHandler.sendToServer(new PacketButton(this.menu.tile.getBlockPos(), PacketButton.ButtonResult.CRAFT_TERMINAL_REQUEST, amount, force)); - })); + }).bounds(this.leftPos + 8, this.topPos + 100, 50, 20).build()); this.tick(); } @@ -47,9 +47,10 @@ public class CraftingTerminalGui extends ItemTerminalGui { } } + @Override - protected void renderLabels(PoseStack matrix, int mouseX, int mouseY) { - super.renderLabels(matrix, mouseX, mouseY); + protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { + super.renderLabels(graphics, mouseX, mouseY); var container = this.getCraftingContainer(); var tile = container.getTile(); @@ -63,8 +64,8 @@ public class CraftingTerminalGui extends ItemTerminalGui { var slot = container.slots.stream().filter(s -> s.container == container.craftInventory && s.getSlotIndex() == finalI).findFirst().orElse(null); if (slot == null) continue; - this.minecraft.getItemRenderer().renderGuiItem(ghost, slot.x, slot.y); - this.minecraft.getItemRenderer().renderGuiItemDecorations(this.font, ghost, slot.x, slot.y, "0"); + graphics.renderItem(ghost, slot.x, slot.y); + graphics.renderItemDecorations(this.font, ghost, slot.x, slot.y, "0"); } } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalContainer.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalContainer.java index bbb9249..cd3935e 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalContainer.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalContainer.java @@ -19,7 +19,7 @@ public class ItemTerminalContainer extends AbstractContainerMenu { public ItemTerminalContainer(@Nullable MenuType type, int id, Player player, BlockPos pos) { super(type, id); - this.tile = Utility.getBlockEntity(ItemTerminalBlockEntity.class, player.level, pos); + this.tile = Utility.getBlockEntity(ItemTerminalBlockEntity.class, player.level(), pos); this.addOwnSlots(player); diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java index fd9f968..4481ee6 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java @@ -1,8 +1,6 @@ package de.ellpeck.prettypipes.terminal.containers; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import de.ellpeck.prettypipes.PrettyPipes; import de.ellpeck.prettypipes.misc.ItemTerminalWidget; import de.ellpeck.prettypipes.misc.PlayerPrefs; @@ -10,14 +8,14 @@ import de.ellpeck.prettypipes.packets.PacketButton; import de.ellpeck.prettypipes.packets.PacketHandler; import de.ellpeck.prettypipes.packets.PacketRequest; import joptsimple.internal.Strings; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; -import net.minecraft.client.gui.components.Widget; +import net.minecraft.client.gui.components.Renderable; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -70,7 +68,7 @@ public class ItemTerminalGui extends AbstractContainerScreen { + this.plusButton = this.addRenderableWidget(Button.builder(Component.literal("+"), button -> { var modifier = ItemTerminalGui.requestModifier(); if (modifier > 1 && this.requestAmount == 1) { this.requestAmount = modifier; @@ -80,14 +78,14 @@ public class ItemTerminalGui extends AbstractContainerScreen 384) this.requestAmount = 384; - })); - this.minusButton = this.addRenderableWidget(new Button(this.leftPos + this.getXOffset() + 95 - 7 - 24, this.topPos + 103, 12, 12, Component.literal("-"), button -> { + }).bounds(this.leftPos + this.getXOffset() + 95 - 7 + 12, this.topPos + 103, 12, 12).build()); + this.minusButton = this.addRenderableWidget(Button.builder(Component.literal("-"), button -> { this.requestAmount -= ItemTerminalGui.requestModifier(); if (this.requestAmount < 1) this.requestAmount = 1; - })); + }).bounds(this.leftPos + this.getXOffset() + 95 - 7 - 24, this.topPos + 103, 12, 12).build()); this.minusButton.active = false; - this.requestButton = this.addRenderableWidget(new Button(this.leftPos + this.getXOffset() + 95 - 7 - 25, this.topPos + 115, 50, 20, Component.translatable("info." + PrettyPipes.ID + ".request"), button -> { + this.requestButton = this.addRenderableWidget(Button.builder(Component.translatable("info." + PrettyPipes.ID + ".request"), button -> { var widget = this.streamWidgets().filter(w -> w.selected).findFirst(); if (!widget.isPresent()) return; @@ -95,26 +93,25 @@ public class ItemTerminalGui extends AbstractContainerScreen { + this.orderButton = this.addRenderableWidget(Button.builder(Component.literal(""), button -> { if (this.sortedItems == null) return; var prefs = PlayerPrefs.get(); prefs.terminalItemOrder = prefs.terminalItemOrder.next(); prefs.save(); this.updateWidgets(); - })); - this.ascendingButton = this.addRenderableWidget(new Button(this.leftPos - 22, this.topPos + 22, 20, 20, Component.literal(""), button -> { + }).bounds(this.leftPos - 22, this.topPos, 20, 20).build()); + this.ascendingButton = this.addRenderableWidget(Button.builder(Component.literal(""), button -> { if (this.sortedItems == null) return; var prefs = PlayerPrefs.get(); prefs.terminalAscending = !prefs.terminalAscending; prefs.save(); this.updateWidgets(); - })); - this.cancelCraftingButton = this.addRenderableWidget(new Button(this.leftPos + this.imageWidth + 4, this.topPos + 4 + 64, 54, 20, Component.translatable("info." + PrettyPipes.ID + ".cancel_all"), b -> { - })); + }).bounds(this.leftPos - 22, this.topPos + 22, 20, 20).build()); + this.cancelCraftingButton = this.addRenderableWidget(Button.builder(Component.translatable("info." + PrettyPipes.ID + ".cancel_all"), b -> {}).bounds(this.leftPos + this.imageWidth + 4, this.topPos + 4 + 64, 54, 20).build()); this.cancelCraftingButton.visible = false; for (var y = 0; y < 4; y++) { for (var x = 0; x < 9; x++) @@ -148,9 +145,9 @@ public class ItemTerminalGui extends AbstractContainerScreen= this.leftPos + this.getXOffset() + 172 && this.topPos + mouseY >= 18 && mouseX < this.leftPos + this.getXOffset() + 172 + 12 && mouseY < this.topPos + 18 + 70) { this.isScrolling = true; return true; - } else if (button == 1 && mouseX >= this.search.x && mouseX <= this.search.x + this.search.getWidth() && mouseY >= this.search.y && mouseY <= this.search.y + 8) { + } else if (button == 1 && mouseX >= this.search.getX() && mouseX <= this.search.getX() + this.search.getWidth() && mouseY >= this.search.getY() && mouseY <= this.search.getY() + 8) { this.search.setValue(""); - this.search.setFocus(true); + this.search.setFocused(true); this.setFocused(this.search); return true; } @@ -268,72 +265,70 @@ public class ItemTerminalGui extends AbstractContainerScreen 6) - this.font.draw(matrix, ". . .", this.imageWidth + 24, 4 + 51, 4210752); + graphics.drawString(this.font, ". . .", this.imageWidth + 24, 4 + 51, 4210752); } } @Override - protected void renderBg(PoseStack matrix, float partialTicks, int mouseX, int mouseY) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, this.getTexture()); - this.blit(matrix, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight); + protected void renderBg(GuiGraphics graphics, float partialTicks, int mouseX, int mouseY) { + graphics.blit(this.getTexture(), this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight); if (this.sortedItems != null && this.sortedItems.size() >= 9 * 4) { var percentage = this.scrollOffset / (float) (this.sortedItems.size() / 9 - 3); - this.blit(matrix, this.leftPos + this.getXOffset() + 172, this.topPos + 18 + (int) (percentage * (70 - 15)), 232, 241, 12, 15); + graphics.blit(this.getTexture(), this.leftPos + this.getXOffset() + 172, this.topPos + 18 + (int) (percentage * (70 - 15)), 232, 241, 12, 15); } else { - this.blit(matrix, this.leftPos + this.getXOffset() + 172, this.topPos + 18, 244, 241, 12, 15); + graphics.blit(this.getTexture(), this.leftPos + this.getXOffset() + 172, this.topPos + 18, 244, 241, 12, 15); } // draw the items that are currently crafting this.hoveredCrafting = ItemStack.EMPTY; if (this.currentlyCrafting != null && !this.currentlyCrafting.isEmpty()) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, ItemTerminalGui.TEXTURE); - this.blit(matrix, this.leftPos + this.imageWidth, this.topPos + 4, 191, 0, 65, 89); + graphics.blit(ItemTerminalGui.TEXTURE, this.leftPos + this.imageWidth, this.topPos + 4, 191, 0, 65, 89); var x = 0; var y = 0; for (var stack : this.currentlyCrafting) { var itemX = this.leftPos + this.imageWidth + 4 + x * 18; var itemY = this.topPos + 4 + 16 + y * 18; - this.itemRenderer.renderGuiItem(stack, itemX, itemY); - this.itemRenderer.renderGuiItemDecorations(this.font, stack, itemX, itemY, String.valueOf(stack.getCount())); + graphics.renderItem(stack, itemX, itemY); + graphics.renderItemDecorations(this.font, stack, itemX, itemY, String.valueOf(stack.getCount())); if (mouseX >= itemX && mouseY >= itemY && mouseX < itemX + 16 && mouseY < itemY + 18) this.hoveredCrafting = stack; x++; @@ -364,7 +359,7 @@ public class ItemTerminalGui extends AbstractContainerScreen T addRenderableWidget(T p_169406_) { + public T addRenderableWidget(T p_169406_) { // overriding to public for JEIPrettyPipesPlugin return super.addRenderableWidget(p_169406_); } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/WrappedCraftingInventory.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/WrappedCraftingInventory.java index 78908b3..5fbb71d 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/WrappedCraftingInventory.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/WrappedCraftingInventory.java @@ -1,11 +1,11 @@ package de.ellpeck.prettypipes.terminal.containers; import net.minecraft.world.entity.player.StackedContents; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.inventory.TransientCraftingContainer; import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemStackHandler; -public class WrappedCraftingInventory extends CraftingContainer { +public class WrappedCraftingInventory extends TransientCraftingContainer { private final ItemStackHandler items; private final CraftingTerminalContainer eventHandler;