Even more modularization
This commit is contained in:
parent
b2f20185e4
commit
f64ea42e43
14 changed files with 176 additions and 340 deletions
|
@ -13,7 +13,7 @@ import mekanism.common.EnergyNetwork;
|
||||||
import mekanism.common.IMechanicalPipe;
|
import mekanism.common.IMechanicalPipe;
|
||||||
import mekanism.common.IUniversalCable;
|
import mekanism.common.IUniversalCable;
|
||||||
|
|
||||||
public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
|
public abstract class DynamicNetwork<T, A, N> implements ITransmitterNetwork<T, A, N>
|
||||||
{
|
{
|
||||||
public HashSet<T> transmitters = new HashSet<T>();
|
public HashSet<T> transmitters = new HashSet<T>();
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
|
||||||
transmitters.addAll(newTransmitters);
|
transmitters.addAll(newTransmitters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void removeTransmitter(T transmitter)
|
public void removeTransmitter(T transmitter)
|
||||||
{
|
{
|
||||||
transmitters.remove(transmitter);
|
transmitters.remove(transmitter);
|
||||||
|
@ -40,6 +41,7 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void register()
|
public void register()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -52,6 +54,7 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
|
||||||
} catch(NoSuchElementException e) {}
|
} catch(NoSuchElementException e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void deregister()
|
public void deregister()
|
||||||
{
|
{
|
||||||
transmitters.clear();
|
transmitters.clear();
|
||||||
|
@ -63,4 +66,19 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
|
||||||
{
|
{
|
||||||
return transmitters.size();
|
return transmitters.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick()
|
||||||
|
{
|
||||||
|
if(!fixed)
|
||||||
|
{
|
||||||
|
++ticksSinceCreate;
|
||||||
|
|
||||||
|
if(ticksSinceCreate > 1200)
|
||||||
|
{
|
||||||
|
ticksSinceCreate = 0;
|
||||||
|
fixMessedUpNetwork(transmitters.iterator().next());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ import net.minecraftforge.event.ForgeSubscribe;
|
||||||
import net.minecraftforge.event.world.ChunkEvent;
|
import net.minecraftforge.event.world.ChunkEvent;
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
|
|
||||||
public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor, GasNetwork>
|
||||||
{
|
{
|
||||||
public GasNetwork(IPressurizedTube... varPipes)
|
public GasNetwork(IPressurizedTube... varPipes)
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
|
|
||||||
public int emit(int gasToSend, EnumGas transferType, TileEntity emitter)
|
public int emit(int gasToSend, EnumGas transferType, TileEntity emitter)
|
||||||
{
|
{
|
||||||
List availableAcceptors = Arrays.asList(getGasAcceptors(transferType).toArray());
|
List availableAcceptors = Arrays.asList(getAcceptors(transferType).toArray());
|
||||||
|
|
||||||
Collections.shuffle(availableAcceptors);
|
Collections.shuffle(availableAcceptors);
|
||||||
|
|
||||||
|
@ -84,8 +84,10 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
return gasToSend;
|
return gasToSend;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<IGasAcceptor> getGasAcceptors(EnumGas transferType)
|
@Override
|
||||||
|
public Set<IGasAcceptor> getAcceptors(Object... data)
|
||||||
{
|
{
|
||||||
|
EnumGas transferType = (EnumGas)data[0];
|
||||||
Set<IGasAcceptor> toReturn = new HashSet<IGasAcceptor>();
|
Set<IGasAcceptor> toReturn = new HashSet<IGasAcceptor>();
|
||||||
|
|
||||||
for(IGasAcceptor acceptor : possibleAcceptors)
|
for(IGasAcceptor acceptor : possibleAcceptors)
|
||||||
|
@ -102,6 +104,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void refresh()
|
public void refresh()
|
||||||
{
|
{
|
||||||
Set<IPressurizedTube> iterTubes = (Set<IPressurizedTube>) transmitters.clone();
|
Set<IPressurizedTube> iterTubes = (Set<IPressurizedTube>) transmitters.clone();
|
||||||
|
@ -139,6 +142,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void merge(GasNetwork network)
|
public void merge(GasNetwork network)
|
||||||
{
|
{
|
||||||
if(network != null && network != this)
|
if(network != null && network != this)
|
||||||
|
@ -151,6 +155,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void split(IPressurizedTube splitPoint)
|
public void split(IPressurizedTube splitPoint)
|
||||||
{
|
{
|
||||||
if(splitPoint instanceof TileEntity)
|
if(splitPoint instanceof TileEntity)
|
||||||
|
@ -215,6 +220,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void fixMessedUpNetwork(IPressurizedTube tube)
|
public void fixMessedUpNetwork(IPressurizedTube tube)
|
||||||
{
|
{
|
||||||
if(tube instanceof TileEntity)
|
if(tube instanceof TileEntity)
|
||||||
|
@ -304,46 +310,9 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class NetworkLoader
|
|
||||||
{
|
|
||||||
@ForgeSubscribe
|
|
||||||
public void onChunkLoad(ChunkEvent.Load event)
|
|
||||||
{
|
|
||||||
if(event.getChunk() != null)
|
|
||||||
{
|
|
||||||
for(Object obj : event.getChunk().chunkTileEntityMap.values())
|
|
||||||
{
|
|
||||||
if(obj instanceof TileEntity)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = (TileEntity)obj;
|
|
||||||
|
|
||||||
if(tileEntity instanceof IPressurizedTube)
|
|
||||||
{
|
|
||||||
((IPressurizedTube)tileEntity).refreshNetwork();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "[GasNetwork] " + transmitters.size() + " transmitters, " + possibleAcceptors.size() + " acceptors.";
|
return "[GasNetwork] " + transmitters.size() + " transmitters, " + possibleAcceptors.size() + " acceptors.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tick()
|
|
||||||
{
|
|
||||||
//Fix weird behaviour periodically.
|
|
||||||
if(!fixed)
|
|
||||||
{
|
|
||||||
++ticksSinceCreate;
|
|
||||||
if(ticksSinceCreate > 1200)
|
|
||||||
{
|
|
||||||
ticksSinceCreate = 0;
|
|
||||||
fixMessedUpNetwork(transmitters.iterator().next());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import java.util.Set;
|
||||||
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A handy class containing several utilities for efficient gas transfer.
|
* A handy class containing several utilities for efficient gas transfer.
|
||||||
|
@ -14,23 +13,6 @@ import net.minecraftforge.common.MinecraftForge;
|
||||||
*/
|
*/
|
||||||
public final class GasTransmission
|
public final class GasTransmission
|
||||||
{
|
{
|
||||||
/** Do not mess with this, used to only register NetworkLoader once. */
|
|
||||||
private static boolean networkLoader_loaded = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method in your mod's init phase in order for the GasNetwork to function properly.
|
|
||||||
*/
|
|
||||||
public static void register()
|
|
||||||
{
|
|
||||||
if(!networkLoader_loaded)
|
|
||||||
{
|
|
||||||
MinecraftForge.EVENT_BUS.register(new GasNetwork.NetworkLoader());
|
|
||||||
networkLoader_loaded = true;
|
|
||||||
|
|
||||||
System.out.println("[Mekanism] Successfully loaded gas transmission NetworkLoader.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets all the tubes around a tile entity.
|
* Gets all the tubes around a tile entity.
|
||||||
* @param tileEntity - center tile entity
|
* @param tileEntity - center tile entity
|
||||||
|
|
|
@ -2,7 +2,7 @@ package mekanism.api;
|
||||||
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
public interface IPressurizedTube
|
public interface IPressurizedTube extends ITransmitter<GasNetwork>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Whether or not this tube can transfer gas.
|
* Whether or not this tube can transfer gas.
|
||||||
|
@ -22,41 +22,4 @@ public interface IPressurizedTube
|
||||||
* @param type - the type of gas transferred
|
* @param type - the type of gas transferred
|
||||||
*/
|
*/
|
||||||
public void onTransfer(EnumGas type);
|
public void onTransfer(EnumGas type);
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the GasNetwork currently in use by this tube segment.
|
|
||||||
* @return GasNetwork this cable is using
|
|
||||||
*/
|
|
||||||
public GasNetwork getNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the GasNetwork currently in use by this tube segment.
|
|
||||||
* @param createIfNull - If true, the tube will try and connect to an
|
|
||||||
* adjacent network, merging several if necessary, or creating a new one
|
|
||||||
* if none is available
|
|
||||||
* @return GasNetwork this cable is using
|
|
||||||
*/
|
|
||||||
public GasNetwork getNetwork(boolean createIfNull);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets this cable segment's GasNetwork to a new value.
|
|
||||||
* @param network - GasNetwork to set to
|
|
||||||
*/
|
|
||||||
public void setNetwork(GasNetwork network);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refreshes the tube's GasNetwork.
|
|
||||||
*/
|
|
||||||
public void refreshNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a tube from its network.
|
|
||||||
*/
|
|
||||||
public void removeFromNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this if you're worried a tube's network is messed up and you want
|
|
||||||
* it to try and fix itself.
|
|
||||||
*/
|
|
||||||
public void fixNetwork();
|
|
||||||
}
|
}
|
||||||
|
|
41
common/mekanism/api/ITransmitter.java
Normal file
41
common/mekanism/api/ITransmitter.java
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
package mekanism.api;
|
||||||
|
|
||||||
|
public interface ITransmitter<N>
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Gets the network currently in use by this transmitter segment.
|
||||||
|
* @return network this transmitter is using
|
||||||
|
*/
|
||||||
|
public N getNetwork();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the network currently in use by this transmitter segment.
|
||||||
|
* @param createIfNull - If true, the transmitter will try and connect to an
|
||||||
|
* adjacent network, merging several if necessary, or creating a new one
|
||||||
|
* if none is available
|
||||||
|
* @return network this transmitter is using
|
||||||
|
*/
|
||||||
|
public N getNetwork(boolean createIfNull);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets this transmitter segment's network to a new value.
|
||||||
|
* @param network - network to set to
|
||||||
|
*/
|
||||||
|
public void setNetwork(N network);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refreshes the transmitter's network.
|
||||||
|
*/
|
||||||
|
public void refreshNetwork();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove this transmitter from its network.
|
||||||
|
*/
|
||||||
|
public void removeFromNetwork();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Call this if you're worried a transmitter's network is messed up and you want
|
||||||
|
* it to try and fix itself.
|
||||||
|
*/
|
||||||
|
public void fixNetwork();
|
||||||
|
}
|
|
@ -1,8 +1,28 @@
|
||||||
package mekanism.api;
|
package mekanism.api;
|
||||||
|
|
||||||
public interface ITransmitterNetwork
|
import java.util.Set;
|
||||||
|
|
||||||
|
import mekanism.common.IUniversalCable;
|
||||||
|
|
||||||
|
public interface ITransmitterNetwork<T, A, N>
|
||||||
{
|
{
|
||||||
public void tick();
|
public void tick();
|
||||||
|
|
||||||
public int getSize();
|
public int getSize();
|
||||||
|
|
||||||
|
public Set<A> getAcceptors(Object... data);
|
||||||
|
|
||||||
|
public void removeTransmitter(T transmitter);
|
||||||
|
|
||||||
|
public void refresh();
|
||||||
|
|
||||||
|
public void split(T splitPoint);
|
||||||
|
|
||||||
|
public void merge(N network);
|
||||||
|
|
||||||
|
public void fixMessedUpNetwork(T transmitter);
|
||||||
|
|
||||||
|
public void register();
|
||||||
|
|
||||||
|
public void deregister();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,10 @@ import java.util.EnumSet;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.event.ForgeSubscribe;
|
||||||
|
import net.minecraftforge.event.world.ChunkEvent;
|
||||||
import cpw.mods.fml.common.ITickHandler;
|
import cpw.mods.fml.common.ITickHandler;
|
||||||
import cpw.mods.fml.common.TickType;
|
import cpw.mods.fml.common.TickType;
|
||||||
import cpw.mods.fml.common.registry.TickRegistry;
|
import cpw.mods.fml.common.registry.TickRegistry;
|
||||||
|
@ -12,6 +16,8 @@ import cpw.mods.fml.relauncher.Side;
|
||||||
public class TransmitterNetworkRegistry implements ITickHandler
|
public class TransmitterNetworkRegistry implements ITickHandler
|
||||||
{
|
{
|
||||||
private static TransmitterNetworkRegistry INSTANCE = new TransmitterNetworkRegistry();
|
private static TransmitterNetworkRegistry INSTANCE = new TransmitterNetworkRegistry();
|
||||||
|
private static boolean loaderRegistered = false;
|
||||||
|
|
||||||
private HashSet<ITransmitterNetwork> networks = new HashSet<ITransmitterNetwork>();
|
private HashSet<ITransmitterNetwork> networks = new HashSet<ITransmitterNetwork>();
|
||||||
|
|
||||||
public TransmitterNetworkRegistry()
|
public TransmitterNetworkRegistry()
|
||||||
|
@ -19,6 +25,16 @@ public class TransmitterNetworkRegistry implements ITickHandler
|
||||||
TickRegistry.registerTickHandler(this, Side.SERVER);
|
TickRegistry.registerTickHandler(this, Side.SERVER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void initiate()
|
||||||
|
{
|
||||||
|
if(!loaderRegistered)
|
||||||
|
{
|
||||||
|
loaderRegistered = true;
|
||||||
|
|
||||||
|
MinecraftForge.EVENT_BUS.register(getInstance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static TransmitterNetworkRegistry getInstance()
|
public static TransmitterNetworkRegistry getInstance()
|
||||||
{
|
{
|
||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
|
@ -85,4 +101,27 @@ public class TransmitterNetworkRegistry implements ITickHandler
|
||||||
{
|
{
|
||||||
return "Network Registry:\n" + networks;
|
return "Network Registry:\n" + networks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class NetworkLoader
|
||||||
|
{
|
||||||
|
@ForgeSubscribe
|
||||||
|
public void onChunkLoad(ChunkEvent.Load event)
|
||||||
|
{
|
||||||
|
if(event.getChunk() != null)
|
||||||
|
{
|
||||||
|
for(Object obj : event.getChunk().chunkTileEntityMap.values())
|
||||||
|
{
|
||||||
|
if(obj instanceof TileEntity)
|
||||||
|
{
|
||||||
|
TileEntity tileEntity = (TileEntity)obj;
|
||||||
|
|
||||||
|
if(tileEntity instanceof ITransmitter)
|
||||||
|
{
|
||||||
|
((ITransmitter)tileEntity).refreshNetwork();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ import buildcraft.api.power.PowerHandler.PowerReceiver;
|
||||||
import buildcraft.api.power.PowerHandler.Type;
|
import buildcraft.api.power.PowerHandler.Type;
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
|
|
||||||
public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity, EnergyNetwork>
|
||||||
{
|
{
|
||||||
private double lastPowerScale = 0;
|
private double lastPowerScale = 0;
|
||||||
private double joulesTransmitted = 0;
|
private double joulesTransmitted = 0;
|
||||||
|
@ -63,7 +63,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
{
|
{
|
||||||
double totalNeeded = 0;
|
double totalNeeded = 0;
|
||||||
|
|
||||||
for(TileEntity acceptor : getEnergyAcceptors())
|
for(TileEntity acceptor : getAcceptors())
|
||||||
{
|
{
|
||||||
if(!ignored.contains(acceptor))
|
if(!ignored.contains(acceptor))
|
||||||
{
|
{
|
||||||
|
@ -94,7 +94,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
double energyAvailable = energyToSend;
|
double energyAvailable = energyToSend;
|
||||||
double sent;
|
double sent;
|
||||||
|
|
||||||
List availableAcceptors = Arrays.asList(getEnergyAcceptors().toArray());
|
List availableAcceptors = Arrays.asList(getAcceptors().toArray());
|
||||||
|
|
||||||
Collections.shuffle(availableAcceptors);
|
Collections.shuffle(availableAcceptors);
|
||||||
|
|
||||||
|
@ -146,7 +146,8 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
return energyToSend;
|
return energyToSend;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<TileEntity> getEnergyAcceptors()
|
@Override
|
||||||
|
public Set<TileEntity> getAcceptors(Object... data)
|
||||||
{
|
{
|
||||||
Set<TileEntity> toReturn = new HashSet<TileEntity>();
|
Set<TileEntity> toReturn = new HashSet<TileEntity>();
|
||||||
|
|
||||||
|
@ -197,6 +198,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void refresh()
|
public void refresh()
|
||||||
{
|
{
|
||||||
Set<IUniversalCable> iterCables = (Set<IUniversalCable>) transmitters.clone();
|
Set<IUniversalCable> iterCables = (Set<IUniversalCable>) transmitters.clone();
|
||||||
|
@ -242,6 +244,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void merge(EnergyNetwork network)
|
public void merge(EnergyNetwork network)
|
||||||
{
|
{
|
||||||
if(network != null && network != this)
|
if(network != null && network != this)
|
||||||
|
@ -254,6 +257,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void split(IUniversalCable splitPoint)
|
public void split(IUniversalCable splitPoint)
|
||||||
{
|
{
|
||||||
if(splitPoint instanceof TileEntity)
|
if(splitPoint instanceof TileEntity)
|
||||||
|
@ -318,6 +322,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void fixMessedUpNetwork(IUniversalCable cable)
|
public void fixMessedUpNetwork(IUniversalCable cable)
|
||||||
{
|
{
|
||||||
if(cable instanceof TileEntity)
|
if(cable instanceof TileEntity)
|
||||||
|
@ -407,51 +412,21 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class NetworkLoader
|
|
||||||
{
|
|
||||||
@ForgeSubscribe
|
|
||||||
public void onChunkLoad(ChunkEvent.Load event)
|
|
||||||
{
|
|
||||||
if(event.getChunk() != null)
|
|
||||||
{
|
|
||||||
for(Object obj : event.getChunk().chunkTileEntityMap.values())
|
|
||||||
{
|
|
||||||
if(obj instanceof TileEntity)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = (TileEntity)obj;
|
|
||||||
|
|
||||||
if(tileEntity instanceof IUniversalCable)
|
|
||||||
{
|
|
||||||
((IUniversalCable)tileEntity).refreshNetwork();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "[EnergyNetwork] " + transmitters.size() + " transmitters, " + possibleAcceptors.size() + " acceptors.";
|
return "[EnergyNetwork] " + transmitters.size() + " transmitters, " + possibleAcceptors.size() + " acceptors.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void tick()
|
public void tick()
|
||||||
{
|
{
|
||||||
clearJoulesTransmitted();
|
clearJoulesTransmitted();
|
||||||
|
|
||||||
//Fix weird behaviour periodically.
|
super.tick();
|
||||||
if(!fixed)
|
|
||||||
{
|
|
||||||
++ticksSinceCreate;
|
|
||||||
if(ticksSinceCreate > 1200)
|
|
||||||
{
|
|
||||||
ticksSinceCreate = 0;
|
|
||||||
fixMessedUpNetwork(transmitters.iterator().next());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
double currentPowerScale = getPowerScale();
|
double currentPowerScale = getPowerScale();
|
||||||
|
|
||||||
if(currentPowerScale != lastPowerScale && FMLCommonHandler.instance().getEffectiveSide().isServer())
|
if(currentPowerScale != lastPowerScale && FMLCommonHandler.instance().getEffectiveSide().isServer())
|
||||||
{
|
{
|
||||||
lastPowerScale = currentPowerScale;
|
lastPowerScale = currentPowerScale;
|
||||||
|
|
|
@ -3,30 +3,23 @@ package mekanism.common;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.NoSuchElementException;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import mekanism.api.DynamicNetwork;
|
import mekanism.api.DynamicNetwork;
|
||||||
import mekanism.api.ITransmitterNetwork;
|
|
||||||
import mekanism.api.Object3D;
|
import mekanism.api.Object3D;
|
||||||
import mekanism.api.TransmitterNetworkRegistry;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.event.Event;
|
import net.minecraftforge.event.Event;
|
||||||
import net.minecraftforge.event.ForgeSubscribe;
|
|
||||||
import net.minecraftforge.event.world.ChunkEvent;
|
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
|
|
||||||
public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler, FluidNetwork>
|
||||||
{
|
{
|
||||||
public FluidNetwork(IMechanicalPipe... varPipes)
|
public FluidNetwork(IMechanicalPipe... varPipes)
|
||||||
{
|
{
|
||||||
|
@ -51,7 +44,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
|
|
||||||
public int emit(FluidStack fluidToSend, boolean doTransfer, TileEntity emitter)
|
public int emit(FluidStack fluidToSend, boolean doTransfer, TileEntity emitter)
|
||||||
{
|
{
|
||||||
List availableAcceptors = Arrays.asList(getFluidAcceptors(fluidToSend).toArray());
|
List availableAcceptors = Arrays.asList(getAcceptors(fluidToSend).toArray());
|
||||||
|
|
||||||
Collections.shuffle(availableAcceptors);
|
Collections.shuffle(availableAcceptors);
|
||||||
|
|
||||||
|
@ -91,8 +84,10 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
return fluidSent;
|
return fluidSent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<IFluidHandler> getFluidAcceptors(FluidStack fluidToSend)
|
@Override
|
||||||
|
public Set<IFluidHandler> getAcceptors(Object... data)
|
||||||
{
|
{
|
||||||
|
FluidStack fluidToSend = (FluidStack)data[0];
|
||||||
Set<IFluidHandler> toReturn = new HashSet<IFluidHandler>();
|
Set<IFluidHandler> toReturn = new HashSet<IFluidHandler>();
|
||||||
|
|
||||||
for(IFluidHandler acceptor : possibleAcceptors)
|
for(IFluidHandler acceptor : possibleAcceptors)
|
||||||
|
@ -106,6 +101,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void refresh()
|
public void refresh()
|
||||||
{
|
{
|
||||||
Set<IMechanicalPipe> iterPipes = (Set<IMechanicalPipe>) transmitters.clone();
|
Set<IMechanicalPipe> iterPipes = (Set<IMechanicalPipe>) transmitters.clone();
|
||||||
|
@ -143,6 +139,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void merge(FluidNetwork network)
|
public void merge(FluidNetwork network)
|
||||||
{
|
{
|
||||||
if(network != null && network != this)
|
if(network != null && network != this)
|
||||||
|
@ -155,6 +152,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void split(IMechanicalPipe splitPoint)
|
public void split(IMechanicalPipe splitPoint)
|
||||||
{
|
{
|
||||||
if(splitPoint instanceof TileEntity)
|
if(splitPoint instanceof TileEntity)
|
||||||
|
@ -219,6 +217,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void fixMessedUpNetwork(IMechanicalPipe pipe)
|
public void fixMessedUpNetwork(IMechanicalPipe pipe)
|
||||||
{
|
{
|
||||||
if(pipe instanceof TileEntity)
|
if(pipe instanceof TileEntity)
|
||||||
|
@ -308,43 +307,6 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class NetworkLoader
|
|
||||||
{
|
|
||||||
@ForgeSubscribe
|
|
||||||
public void onChunkLoad(ChunkEvent.Load event)
|
|
||||||
{
|
|
||||||
if(event.getChunk() != null)
|
|
||||||
{
|
|
||||||
for(Object obj : event.getChunk().chunkTileEntityMap.values())
|
|
||||||
{
|
|
||||||
if(obj instanceof TileEntity)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = (TileEntity)obj;
|
|
||||||
|
|
||||||
if(tileEntity instanceof IMechanicalPipe)
|
|
||||||
{
|
|
||||||
((IMechanicalPipe)tileEntity).refreshNetwork();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void tick()
|
|
||||||
{
|
|
||||||
//Fix weird behaviour periodically.
|
|
||||||
if(!fixed)
|
|
||||||
{
|
|
||||||
++ticksSinceCreate;
|
|
||||||
if(ticksSinceCreate > 1200)
|
|
||||||
{
|
|
||||||
ticksSinceCreate = 0;
|
|
||||||
fixMessedUpNetwork(transmitters.iterator().next());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,41 +1,8 @@
|
||||||
package mekanism.common;
|
package mekanism.common;
|
||||||
|
|
||||||
public interface ILogisticalTransporter
|
import mekanism.api.ITransmitter;
|
||||||
|
|
||||||
|
public interface ILogisticalTransporter extends ITransmitter<InventoryNetwork>
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Gets the InventoryNetwork currently in use by this transporter segment.
|
|
||||||
* @return InventoryNetwork this transporter is using
|
|
||||||
*/
|
|
||||||
public InventoryNetwork getNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the InventoryNetwork currently in use by this transporter segment.
|
|
||||||
* @param createIfNull - If true, the transporter will try and connect to an
|
|
||||||
* adjacent network, merging several if necessary, or creating a new one
|
|
||||||
* if none is available
|
|
||||||
* @return InventoryNetwork this transporter is using
|
|
||||||
*/
|
|
||||||
public InventoryNetwork getNetwork(boolean createIfNull);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets this transporter segment's InventoryNetwork to a new value.
|
|
||||||
* @param network - InventoryNetwork to set to
|
|
||||||
*/
|
|
||||||
public void setNetwork(InventoryNetwork network);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refreshes the transporter's InventoryNetwork.
|
|
||||||
*/
|
|
||||||
public void refreshNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a transporter from its network.
|
|
||||||
*/
|
|
||||||
public void removeFromNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this if you're worried a transporter's network is messed up and you want
|
|
||||||
* it to try and fix itself.
|
|
||||||
*/
|
|
||||||
public void fixNetwork();
|
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package mekanism.common;
|
package mekanism.common;
|
||||||
|
|
||||||
|
import mekanism.api.ITransmitter;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,48 +8,11 @@ import net.minecraftforge.fluids.FluidStack;
|
||||||
* @author AidanBrady
|
* @author AidanBrady
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface IMechanicalPipe
|
public interface IMechanicalPipe extends ITransmitter<FluidNetwork>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Called when fluid is transferred through this pipe.
|
* Called when fluid is transferred through this pipe.
|
||||||
* @param fluidStack - the fluid transferred
|
* @param fluidStack - the fluid transferred
|
||||||
*/
|
*/
|
||||||
public void onTransfer(FluidStack fluidStack);
|
public void onTransfer(FluidStack fluidStack);
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the FluidNetwork currently in use by this pipe segment.
|
|
||||||
* @return FluidNetwork this pipe is using
|
|
||||||
*/
|
|
||||||
public FluidNetwork getNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the FluidNetwork currently in use by this pipe segment.
|
|
||||||
* @param createIfNull - If true, the pipe will try and connect to an
|
|
||||||
* adjacent network, merging several if necessary, or creating a new one
|
|
||||||
* if none is available
|
|
||||||
* @return FluidNetwork this pipe is using
|
|
||||||
*/
|
|
||||||
public FluidNetwork getNetwork(boolean createIfNull);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets this pipe segment's FluidNetwork to a new value.
|
|
||||||
* @param network - FluidNetwork to set to
|
|
||||||
*/
|
|
||||||
public void setNetwork(FluidNetwork network);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refreshes the pipe's FluidNetwork.
|
|
||||||
*/
|
|
||||||
public void refreshNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a pipe from its network.
|
|
||||||
*/
|
|
||||||
public void removeFromNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this if you're worried a pipe's network is messed up and you want
|
|
||||||
* it to try and fix itself.
|
|
||||||
*/
|
|
||||||
public void fixNetwork();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,50 +1,14 @@
|
||||||
package mekanism.common;
|
package mekanism.common;
|
||||||
|
|
||||||
|
import mekanism.api.ITransmitter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implement this in your TileEntity class if the block can transfer energy as a Universal Cable.
|
* Implement this in your TileEntity class if the block can transfer energy as a Universal Cable.
|
||||||
* @author AidanBrady
|
* @author AidanBrady
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface IUniversalCable
|
public interface IUniversalCable extends ITransmitter<EnergyNetwork>
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Gets the EnergyNetwork currently in use by this cable segment.
|
|
||||||
* Will try to connect to adjacent networks or create a new one
|
|
||||||
* @return EnergyNetwork this cable is using
|
|
||||||
*/
|
|
||||||
public EnergyNetwork getNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the EnergyNetwork currently in use by this cable segment.
|
|
||||||
* @param createIfNull - If true, the cable will try and connect to an
|
|
||||||
* adjacent network, merging several if necessary, or creating a new one
|
|
||||||
* if none is available
|
|
||||||
* @return EnergyNetwork this cable is using
|
|
||||||
*/
|
|
||||||
public EnergyNetwork getNetwork(boolean createIfNull);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets this cable segment's EnergyNetwork to a new value.
|
|
||||||
* @param network - EnergyNetwork to set to
|
|
||||||
*/
|
|
||||||
public void setNetwork(EnergyNetwork network);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refreshes the cable's EnergyNetwork.
|
|
||||||
*/
|
|
||||||
public void refreshNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a cable from its network.
|
|
||||||
*/
|
|
||||||
public void removeFromNetwork();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this if you're worried a cable's network is messed up and you want
|
|
||||||
* it to try and fix itself.
|
|
||||||
*/
|
|
||||||
public void fixNetwork();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a Universal Cable's energy scale to a new value.
|
* Sets a Universal Cable's energy scale to a new value.
|
||||||
* @param energyScale - energy scale to set
|
* @param energyScale - energy scale to set
|
||||||
|
|
|
@ -21,7 +21,7 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.event.ForgeSubscribe;
|
import net.minecraftforge.event.ForgeSubscribe;
|
||||||
import net.minecraftforge.event.world.ChunkEvent;
|
import net.minecraftforge.event.world.ChunkEvent;
|
||||||
|
|
||||||
public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IInventory>
|
public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IInventory, InventoryNetwork>
|
||||||
{
|
{
|
||||||
public InventoryNetwork(ILogisticalTransporter... varTransporters)
|
public InventoryNetwork(ILogisticalTransporter... varTransporters)
|
||||||
{
|
{
|
||||||
|
@ -44,6 +44,13 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
|
||||||
register();
|
register();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<IInventory> getAcceptors(Object... data)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void refresh()
|
public void refresh()
|
||||||
{
|
{
|
||||||
Set<ILogisticalTransporter> iterPipes = (Set<ILogisticalTransporter>)transmitters.clone();
|
Set<ILogisticalTransporter> iterPipes = (Set<ILogisticalTransporter>)transmitters.clone();
|
||||||
|
@ -81,6 +88,7 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void merge(InventoryNetwork network)
|
public void merge(InventoryNetwork network)
|
||||||
{
|
{
|
||||||
if(network != null && network != this)
|
if(network != null && network != this)
|
||||||
|
@ -93,6 +101,7 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void split(ILogisticalTransporter splitPoint)
|
public void split(ILogisticalTransporter splitPoint)
|
||||||
{
|
{
|
||||||
if(splitPoint instanceof TileEntity)
|
if(splitPoint instanceof TileEntity)
|
||||||
|
@ -158,6 +167,7 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void fixMessedUpNetwork(ILogisticalTransporter pipe)
|
public void fixMessedUpNetwork(ILogisticalTransporter pipe)
|
||||||
{
|
{
|
||||||
if(pipe instanceof TileEntity)
|
if(pipe instanceof TileEntity)
|
||||||
|
@ -234,43 +244,6 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class NetworkLoader
|
|
||||||
{
|
|
||||||
@ForgeSubscribe
|
|
||||||
public void onChunkLoad(ChunkEvent.Load event)
|
|
||||||
{
|
|
||||||
if(event.getChunk() != null)
|
|
||||||
{
|
|
||||||
for(Object obj : event.getChunk().chunkTileEntityMap.values())
|
|
||||||
{
|
|
||||||
if(obj instanceof TileEntity)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = (TileEntity)obj;
|
|
||||||
|
|
||||||
if(tileEntity instanceof ILogisticalTransporter)
|
|
||||||
{
|
|
||||||
((ILogisticalTransporter)tileEntity).refreshNetwork();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void tick()
|
|
||||||
{
|
|
||||||
//Fix weird behaviour periodically.
|
|
||||||
if(!fixed)
|
|
||||||
{
|
|
||||||
++ticksSinceCreate;
|
|
||||||
if(ticksSinceCreate > 1200)
|
|
||||||
{
|
|
||||||
ticksSinceCreate = 0;
|
|
||||||
fixMessedUpNetwork(transmitters.iterator().next());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,7 @@ import mekanism.api.InfuseRegistry;
|
||||||
import mekanism.api.InfuseType;
|
import mekanism.api.InfuseType;
|
||||||
import mekanism.api.InfusionInput;
|
import mekanism.api.InfusionInput;
|
||||||
import mekanism.api.Object3D;
|
import mekanism.api.Object3D;
|
||||||
|
import mekanism.api.TransmitterNetworkRegistry;
|
||||||
import mekanism.client.SoundHandler;
|
import mekanism.client.SoundHandler;
|
||||||
import mekanism.common.EnergyNetwork.EnergyTransferEvent;
|
import mekanism.common.EnergyNetwork.EnergyTransferEvent;
|
||||||
import mekanism.common.FluidNetwork.FluidTransferEvent;
|
import mekanism.common.FluidNetwork.FluidTransferEvent;
|
||||||
|
@ -1168,11 +1169,9 @@ public class Mekanism
|
||||||
//Register to receive subscribed events
|
//Register to receive subscribed events
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
MinecraftForge.EVENT_BUS.register(new IC2EnergyHandler());
|
MinecraftForge.EVENT_BUS.register(new IC2EnergyHandler());
|
||||||
MinecraftForge.EVENT_BUS.register(new EnergyNetwork.NetworkLoader());
|
|
||||||
MinecraftForge.EVENT_BUS.register(new FluidNetwork.NetworkLoader());
|
|
||||||
|
|
||||||
//Register with GasTransmission
|
//Register with TransmitterNetworkRegistry
|
||||||
GasTransmission.register();
|
TransmitterNetworkRegistry.initiate();
|
||||||
|
|
||||||
//Load configuration
|
//Load configuration
|
||||||
proxy.loadConfiguration();
|
proxy.loadConfiguration();
|
||||||
|
|
Loading…
Reference in a new issue