alright i'm tired

This commit is contained in:
Bob 2025-03-05 21:58:20 +01:00
parent 23928d3d7b
commit a78dae4a8e
15 changed files with 148 additions and 7 deletions

View File

@ -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<PowerProvider> {
public interface IEnergyProviderMK2 extends IEnergyHandlerMK2, IGenProvider<PowerNetProvider> {
/** 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) {

View File

@ -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<PowerProvider> {
public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2, IGenReceiver<PowerNetProvider> {
public default long transferPower(long power) {
if(power + this.getPower() <= this.getMaxPower()) {

View File

@ -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);

View File

@ -0,0 +1,11 @@
package api.hbm.fluidmk2;
import com.hbm.uninos.NodeNet;
public class FluidNetMK2 extends NodeNet {
@Override
public void update() {
}
}

View File

@ -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<FluidNetMK2> {
public FluidNode(INetworkProvider<FluidNetMK2> provider, BlockPos... positions) {
super(provider, positions);
}
@Override
public FluidNode setConnections(DirPos... connections) {
super.setConnections(connections);
return this;
}
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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)
);
}
}

View File

@ -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<FluidNetProvider> {
public void useUpFluid(FluidType type, int pressure, long amount);
public long getProviderSpeed(FluidType type, int pressure);
}

View File

@ -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<FluidNetProvider> {
/** 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);
}

View File

@ -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?
*/

View File

@ -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<FluidNetMK2> getNetworkProvider() {
return null; //TBI
}
}

View File

@ -10,6 +10,7 @@ public class GenNode<N extends NodeNet> {
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<N> provider, BlockPos... positions) {

View File

@ -0,0 +1,13 @@
package com.hbm.uninos.networkproviders;
import com.hbm.uninos.INetworkProvider;
import api.hbm.fluidmk2.FluidNetMK2;
public class FluidNetProvider implements INetworkProvider<FluidNetMK2> {
@Override
public FluidNetMK2 provideNetwork() {
return new FluidNetMK2();
}
}

View File

@ -4,7 +4,7 @@ import com.hbm.uninos.INetworkProvider;
import api.hbm.energymk2.PowerNetMK2;
public class PowerProvider implements INetworkProvider<PowerNetMK2> {
public class PowerNetProvider implements INetworkProvider<PowerNetMK2> {
@Override
public PowerNetMK2 provideNetwork() {