From a78dae4a8e106e3ab7f980a197b3bdcd59f8d625 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 5 Mar 2025 21:58:20 +0100 Subject: [PATCH] alright i'm tired --- .../api/hbm/energymk2/IEnergyProviderMK2.java | 4 ++-- .../api/hbm/energymk2/IEnergyReceiverMK2.java | 4 ++-- .../java/api/hbm/energymk2/Nodespace.java | 4 ++-- .../java/api/hbm/fluidmk2/FluidNetMK2.java | 11 +++++++++ src/main/java/api/hbm/fluidmk2/FluidNode.java | 19 +++++++++++++++ .../hbm/fluidmk2/IFluidConnectorBlockMK2.java | 12 ++++++++++ .../api/hbm/fluidmk2/IFluidConnectorMK2.java | 17 ++++++++++++++ .../java/api/hbm/fluidmk2/IFluidPipeMK2.java | 23 +++++++++++++++++++ .../api/hbm/fluidmk2/IFluidProviderMK2.java | 11 +++++++++ .../api/hbm/fluidmk2/IFluidReceiverMK2.java | 12 ++++++++++ .../java/api/hbm/fluidmk2/package-info.java | 16 +++++++++++++ .../com/hbm/inventory/fluid/FluidType.java | 6 +++++ src/main/java/com/hbm/uninos/GenNode.java | 1 + .../networkproviders/FluidNetProvider.java | 13 +++++++++++ ...werProvider.java => PowerNetProvider.java} | 2 +- 15 files changed, 148 insertions(+), 7 deletions(-) create mode 100644 src/main/java/api/hbm/fluidmk2/FluidNetMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/FluidNode.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidConnectorBlockMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidConnectorMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidPipeMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java create mode 100644 src/main/java/api/hbm/fluidmk2/package-info.java create mode 100644 src/main/java/com/hbm/uninos/networkproviders/FluidNetProvider.java rename src/main/java/com/hbm/uninos/networkproviders/{PowerProvider.java => PowerNetProvider.java} (73%) diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index e933cdf22..291f7954c 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -3,7 +3,7 @@ package api.hbm.energymk2; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.uninos.IGenProvider; -import com.hbm.uninos.networkproviders.PowerProvider; +import com.hbm.uninos.networkproviders.PowerNetProvider; import com.hbm.util.Compat; import api.hbm.energymk2.Nodespace.PowerNode; @@ -14,7 +14,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; /** If it sends energy, use this */ -public interface IEnergyProviderMK2 extends IEnergyHandlerMK2, IGenProvider { +public interface IEnergyProviderMK2 extends IEnergyHandlerMK2, IGenProvider { /** Uses up available power, default implementation has no sanity checking, make sure that the requested power is lequal to the current power */ public default void usePower(long power) { diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 47fb07a89..ec50abd98 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -4,7 +4,7 @@ import com.hbm.interfaces.NotableComments; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.uninos.IGenReceiver; -import com.hbm.uninos.networkproviders.PowerProvider; +import com.hbm.uninos.networkproviders.PowerNetProvider; import com.hbm.util.Compat; import api.hbm.energymk2.Nodespace.PowerNode; @@ -16,7 +16,7 @@ import net.minecraftforge.common.util.ForgeDirection; /** If it receives energy, use this */ @NotableComments -public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2, IGenReceiver { +public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2, IGenReceiver { public default long transferPower(long power) { if(power + this.getPower() <= this.getMaxPower()) { diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java index 8fadb9745..114c4dd75 100644 --- a/src/main/java/api/hbm/energymk2/Nodespace.java +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -3,7 +3,7 @@ package api.hbm.energymk2; import com.hbm.interfaces.NotableComments; import com.hbm.uninos.GenNode; import com.hbm.uninos.UniNodespace; -import com.hbm.uninos.networkproviders.PowerProvider; +import com.hbm.uninos.networkproviders.PowerNetProvider; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -18,7 +18,7 @@ import net.minecraft.world.World; */ public class Nodespace { - public static final PowerProvider THE_POWER_PROVIDER = new PowerProvider(); + public static final PowerNetProvider THE_POWER_PROVIDER = new PowerNetProvider(); @Deprecated public static PowerNode getNode(World world, int x, int y, int z) { return (PowerNode) UniNodespace.getNode(world, x, y, z, THE_POWER_PROVIDER); diff --git a/src/main/java/api/hbm/fluidmk2/FluidNetMK2.java b/src/main/java/api/hbm/fluidmk2/FluidNetMK2.java new file mode 100644 index 000000000..14052452d --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/FluidNetMK2.java @@ -0,0 +1,11 @@ +package api.hbm.fluidmk2; + +import com.hbm.uninos.NodeNet; + +public class FluidNetMK2 extends NodeNet { + + @Override + public void update() { + + } +} diff --git a/src/main/java/api/hbm/fluidmk2/FluidNode.java b/src/main/java/api/hbm/fluidmk2/FluidNode.java new file mode 100644 index 000000000..a4c0c3141 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/FluidNode.java @@ -0,0 +1,19 @@ +package api.hbm.fluidmk2; + +import com.hbm.uninos.GenNode; +import com.hbm.uninos.INetworkProvider; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +public class FluidNode extends GenNode { + + public FluidNode(INetworkProvider provider, BlockPos... positions) { + super(provider, positions); + } + + @Override + public FluidNode setConnections(DirPos... connections) { + super.setConnections(connections); + return this; + } +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidConnectorBlockMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidConnectorBlockMK2.java new file mode 100644 index 000000000..f7a1a47a7 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidConnectorBlockMK2.java @@ -0,0 +1,12 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; + +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IFluidConnectorBlockMK2 { + + /** dir is the face that is connected to, the direction going outwards from the block */ + public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir); +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidConnectorMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidConnectorMK2.java new file mode 100644 index 000000000..dc0a3dbf3 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidConnectorMK2.java @@ -0,0 +1,17 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; + +import net.minecraftforge.common.util.ForgeDirection; + +public interface IFluidConnectorMK2 { + + /** + * Whether the given side can be connected to + * @param dir + * @return + */ + public default boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN; + } +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidPipeMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidPipeMK2.java new file mode 100644 index 000000000..d95fb2998 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidPipeMK2.java @@ -0,0 +1,23 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.tileentity.TileEntity; + +public interface IFluidPipeMK2 { + + public default FluidNode createNode(FluidType type) { + TileEntity tile = (TileEntity) this; + return new FluidNode(type.getNetworkProvider(), new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(tile.xCoord + 1, tile.yCoord, tile.zCoord, Library.POS_X), + new DirPos(tile.xCoord - 1, tile.yCoord, tile.zCoord, Library.NEG_X), + new DirPos(tile.xCoord, tile.yCoord + 1, tile.zCoord, Library.POS_Y), + new DirPos(tile.xCoord, tile.yCoord - 1, tile.zCoord, Library.NEG_Y), + new DirPos(tile.xCoord, tile.yCoord, tile.zCoord + 1, Library.POS_Z), + new DirPos(tile.xCoord, tile.yCoord, tile.zCoord - 1, Library.NEG_Z) + ); + } +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java new file mode 100644 index 000000000..c5316a0be --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidProviderMK2.java @@ -0,0 +1,11 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.uninos.IGenProvider; +import com.hbm.uninos.networkproviders.FluidNetProvider; + +public interface IFluidProviderMK2 extends IGenProvider { + + public void useUpFluid(FluidType type, int pressure, long amount); + public long getProviderSpeed(FluidType type, int pressure); +} diff --git a/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java new file mode 100644 index 000000000..f20fba01e --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidReceiverMK2.java @@ -0,0 +1,12 @@ +package api.hbm.fluidmk2; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.uninos.IGenReceiver; +import com.hbm.uninos.networkproviders.FluidNetProvider; + +public interface IFluidReceiverMK2 extends IGenReceiver { + + /** Sends fluid of the desired type and pressure to the receiver, returns the remainder */ + public long transferFluid(FluidType type, int pressure, long amount); + public long getReceiverSpeed(FluidType type, int pressure); +} diff --git a/src/main/java/api/hbm/fluidmk2/package-info.java b/src/main/java/api/hbm/fluidmk2/package-info.java new file mode 100644 index 000000000..b948336d8 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/package-info.java @@ -0,0 +1,16 @@ +/** + * + */ +/** + * @author hbm + * + */ +package api.hbm.fluidmk2; + +/* + +It's rather shrimple: the shiny new energy system using universal nodespace, but hit with a hammer until it works with fluids. +Has a few extra bits and pieces for handling, but the concept is basically the same. +Sounds good? + +*/ \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index f08ae979a..a0175fbd9 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -13,8 +13,10 @@ import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.RefStrings; import com.hbm.render.util.EnumSymbol; +import com.hbm.uninos.INetworkProvider; import com.hbm.util.I18nUtil; +import api.hbm.fluidmk2.FluidNetMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.tileentity.TileEntity; @@ -252,4 +254,8 @@ public class FluidType { public String name() { return this.stringId; } + + public INetworkProvider getNetworkProvider() { + return null; //TBI + } } diff --git a/src/main/java/com/hbm/uninos/GenNode.java b/src/main/java/com/hbm/uninos/GenNode.java index d65f163c1..3e4b0925b 100644 --- a/src/main/java/com/hbm/uninos/GenNode.java +++ b/src/main/java/com/hbm/uninos/GenNode.java @@ -10,6 +10,7 @@ public class GenNode { public N net; public boolean expired = false; public boolean recentlyChanged = true; + /** Used for distinguishing the node type when saving it to UNINOS' node map */ public INetworkProvider networkProvider; public GenNode(INetworkProvider provider, BlockPos... positions) { diff --git a/src/main/java/com/hbm/uninos/networkproviders/FluidNetProvider.java b/src/main/java/com/hbm/uninos/networkproviders/FluidNetProvider.java new file mode 100644 index 000000000..95fa480a8 --- /dev/null +++ b/src/main/java/com/hbm/uninos/networkproviders/FluidNetProvider.java @@ -0,0 +1,13 @@ +package com.hbm.uninos.networkproviders; + +import com.hbm.uninos.INetworkProvider; + +import api.hbm.fluidmk2.FluidNetMK2; + +public class FluidNetProvider implements INetworkProvider { + + @Override + public FluidNetMK2 provideNetwork() { + return new FluidNetMK2(); + } +} diff --git a/src/main/java/com/hbm/uninos/networkproviders/PowerProvider.java b/src/main/java/com/hbm/uninos/networkproviders/PowerNetProvider.java similarity index 73% rename from src/main/java/com/hbm/uninos/networkproviders/PowerProvider.java rename to src/main/java/com/hbm/uninos/networkproviders/PowerNetProvider.java index 0c1218991..da4502e24 100644 --- a/src/main/java/com/hbm/uninos/networkproviders/PowerProvider.java +++ b/src/main/java/com/hbm/uninos/networkproviders/PowerNetProvider.java @@ -4,7 +4,7 @@ import com.hbm.uninos.INetworkProvider; import api.hbm.energymk2.PowerNetMK2; -public class PowerProvider implements INetworkProvider { +public class PowerNetProvider implements INetworkProvider { @Override public PowerNetMK2 provideNetwork() {