diff --git a/build.gradle b/build.gradle index 3fa2a79..229b873 100644 --- a/build.gradle +++ b/build.gradle @@ -47,6 +47,12 @@ runs { systemProperty 'forge.logging.console.level', 'info' modSource project.sourceSets.main + + dependencies { + runtime "org.jgrapht:jgrapht-core:${jgt_version}" + runtime "org.jheaps:jheaps:${jheaps_version}" + runtime "org.apfloat:apfloat:${apfloat_version}" + } } client { @@ -88,15 +94,14 @@ dependencies { implementation "org.jgrapht:jgrapht-core:${jgt_version}" jarJar(group: "org.jgrapht", name: "jgrapht-core", version: "[${jgt_version}]") - // for some reason jgrapht dependencies aren't auto-included in the metadata and i can't figure out how to make that happen jarJar(group: "org.jheaps", name: "jheaps", version: "[${jheaps_version}]") jarJar(group: "org.apfloat", name: "apfloat", version: "[${apfloat_version}]") // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}" - compileOnly "mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}" - runtimeOnly "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" + compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}" + runtimeOnly "mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}" // Example mod dependency using a mod jar from ./libs with a flat dir repository // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar @@ -148,4 +153,4 @@ publishing { tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} \ No newline at end of file +} diff --git a/gradle.properties b/gradle.properties index ef59c47..37426ae 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,13 +10,13 @@ neogradle.subsystems.parchment.mappingsVersion=2023.12.31 minecraft_version=1.20.4 minecraft_version_range=[1.20.4,1.21) # The Neo version must agree with the Minecraft version to get a valid artifact -neo_version=20.4.80-beta +neo_version=20.4.195 # The Neo version range can use any version of Neo as bounds neo_version_range=[20.4,) # The loader version range can only use the major version of FML as bounds loader_version_range=[2,) -jei_version=17.3.0.48 +jei_version=17.3.0.49 jgt_version=1.5.2 jheaps_version=0.14 apfloat_version=1.10.1 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 0979dce..05e9ded 100644 --- a/src/main/java/de/ellpeck/prettypipes/compat/jei/JEIPrettyPipesPlugin.java +++ b/src/main/java/de/ellpeck/prettypipes/compat/jei/JEIPrettyPipesPlugin.java @@ -84,17 +84,22 @@ public class JEIPrettyPipesPlugin implements IModPlugin { } @SubscribeEvent - public void onRenderGui(ScreenEvent.Render event) { + public void onRenderGuiPre(ScreenEvent.Render.Pre event) { + var screen = event.getScreen(); + if (!(screen instanceof ItemTerminalGui)) + return; + var sync = PlayerPrefs.get().syncJei; + this.jeiSyncButton.setMessage(Component.literal((sync ? ChatFormatting.GREEN : ChatFormatting.RED) + "J")); + } + + @SubscribeEvent + public void onRenderGuiPost(ScreenEvent.Render.Post event) { var screen = event.getScreen(); if (!(screen instanceof ItemTerminalGui terminal)) return; var sync = PlayerPrefs.get().syncJei; - if (event instanceof ScreenEvent.Render.Post) { - if (this.jeiSyncButton.isHovered()) - 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")); - } + if (this.jeiSyncButton.isHovered()) + event.getGuiGraphics().renderTooltip(terminal.getMinecraft().font, Component.translatable("info." + PrettyPipes.ID + ".sync_jei." + (sync ? "on" : "off")), event.getMouseX(), event.getMouseY()); } @SubscribeEvent @@ -122,4 +127,5 @@ public class JEIPrettyPipesPlugin implements IModPlugin { filter.setFilterText(terminalText); } } + } diff --git a/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java b/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java index 1dee423..08fab16 100644 --- a/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java +++ b/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java @@ -39,6 +39,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; +// TODO it appears that this doesn't save properly yet :( public class PipeNetwork extends SavedData implements GraphListener { private static final Factory FACTORY = new Factory<>(PipeNetwork::new, PipeNetwork::new); @@ -61,7 +62,16 @@ public class PipeNetwork extends SavedData implements GraphListener(this.graph.vertexSet())); - this.pipeItems.clear(); - this.networkLocks.clear(); - - var nodes = nbt.getList("nodes", Tag.TAG_COMPOUND); - for (var i = 0; i < nodes.size(); i++) - this.graph.addVertex(NbtUtils.readBlockPos(nodes.getCompound(i))); - var edges = nbt.getList("edges", Tag.TAG_COMPOUND); - for (var i = 0; i < edges.size(); i++) - this.addEdge(new NetworkEdge(edges.getCompound(i))); - for (var item : Utility.deserializeAll(nbt.getList("items", Tag.TAG_COMPOUND), IPipeItem::load)) - this.pipeItems.put(item.getCurrentPipe(), item); - for (var lock : Utility.deserializeAll(nbt.getList("locks", Tag.TAG_COMPOUND), NetworkLock::new)) - this.createNetworkLock(lock); - } - public void addNode(BlockPos pos, BlockState state) { if (!this.isNode(pos)) { this.graph.addVertex(pos); diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java index 4e2146b..afb7d25 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeBlock.java @@ -206,10 +206,10 @@ public class PipeBlock extends BaseEntityBlock { var opposite = direction.getOpposite(); var tile = world.getBlockEntity(offset); if (tile != null) { - var connectable = world.getCapability(Registry.pipeConnectableCapability, pos, state, tile, opposite); + var connectable = world.getCapability(Registry.pipeConnectableCapability, offset, tile.getBlockState(), tile, opposite); if (connectable != null) return connectable.getConnectionType(pos, direction); - var handler = world.getCapability(Capabilities.ItemHandler.BLOCK, pos, state, tile, opposite); + var handler = world.getCapability(Capabilities.ItemHandler.BLOCK, offset, tile.getBlockState(), tile, opposite); if (handler != null) return ConnectionType.CONNECTED; } 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 8133da0..2ac8025 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/containers/AbstractPipeGui.java @@ -54,15 +54,7 @@ public abstract class AbstractPipeGui> extend @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - this.renderBackground(graphics, mouseX, mouseY, partialTicks); super.render(graphics, mouseX, mouseY, partialTicks); - for (var widget : this.renderables) { - // TODO render widget tooltips? - /* if (widget instanceof AbstractWidget abstractWidget) { - if (abstractWidget.isHoveredOrFocused()) - abstractWidget.renderToolTip(matrix, mouseX, mouseY); - }*/ - } this.renderTooltip(graphics, mouseX, mouseY); } diff --git a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java index caa5457..4d07821 100644 --- a/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java +++ b/src/main/java/de/ellpeck/prettypipes/pressurizer/PressurizerGui.java @@ -19,7 +19,6 @@ public class PressurizerGui extends AbstractContainerScreen= this.leftPos + 26 && mouseY >= this.topPos + 22 && mouseX < this.leftPos + 26 + 124 && mouseY < this.topPos + 22 + 12) 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 4d3d3a1..466b7db 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java @@ -266,7 +266,6 @@ public class ItemTerminalGui extends AbstractContainerScreen