Even more modularization

This commit is contained in:
Aidan Brady 2013-08-18 16:51:47 -04:00
parent b2f20185e4
commit f64ea42e43
14 changed files with 176 additions and 340 deletions

View file

@ -13,7 +13,7 @@ import mekanism.common.EnergyNetwork;
import mekanism.common.IMechanicalPipe;
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>();
@ -30,6 +30,7 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
transmitters.addAll(newTransmitters);
}
@Override
public void removeTransmitter(T transmitter)
{
transmitters.remove(transmitter);
@ -40,6 +41,7 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
}
}
@Override
public void register()
{
try {
@ -52,6 +54,7 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
} catch(NoSuchElementException e) {}
}
@Override
public void deregister()
{
transmitters.clear();
@ -63,4 +66,19 @@ public abstract class DynamicNetwork<T, A> implements ITransmitterNetwork
{
return transmitters.size();
}
@Override
public void tick()
{
if(!fixed)
{
++ticksSinceCreate;
if(ticksSinceCreate > 1200)
{
ticksSinceCreate = 0;
fixMessedUpNetwork(transmitters.iterator().next());
}
}
}
}

View file

@ -20,7 +20,7 @@ import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.world.ChunkEvent;
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)
{
@ -45,7 +45,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
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);
@ -84,8 +84,10 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
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>();
for(IGasAcceptor acceptor : possibleAcceptors)
@ -102,6 +104,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
return toReturn;
}
@Override
public void refresh()
{
Set<IPressurizedTube> iterTubes = (Set<IPressurizedTube>) transmitters.clone();
@ -139,6 +142,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
}
}
@Override
public void merge(GasNetwork network)
{
if(network != null && network != this)
@ -151,6 +155,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
}
}
@Override
public void split(IPressurizedTube splitPoint)
{
if(splitPoint instanceof TileEntity)
@ -215,6 +220,7 @@ public class GasNetwork extends DynamicNetwork<IPressurizedTube, IGasAcceptor>
}
}
@Override
public void fixMessedUpNetwork(IPressurizedTube tube)
{
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
public String toString()
{
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());
}
}
}
}

View file

@ -5,7 +5,6 @@ import java.util.Set;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.MinecraftForge;
/**
* A handy class containing several utilities for efficient gas transfer.
@ -14,23 +13,6 @@ import net.minecraftforge.common.MinecraftForge;
*/
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.
* @param tileEntity - center tile entity

View file

@ -2,7 +2,7 @@ package mekanism.api;
import net.minecraft.tileentity.TileEntity;
public interface IPressurizedTube
public interface IPressurizedTube extends ITransmitter<GasNetwork>
{
/**
* Whether or not this tube can transfer gas.
@ -22,41 +22,4 @@ public interface IPressurizedTube
* @param type - the type of gas transferred
*/
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();
}

View 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();
}

View file

@ -1,8 +1,28 @@
package mekanism.api;
public interface ITransmitterNetwork
import java.util.Set;
import mekanism.common.IUniversalCable;
public interface ITransmitterNetwork<T, A, N>
{
public void tick();
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();
}

View file

@ -4,6 +4,10 @@ import java.util.EnumSet;
import java.util.HashSet;
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.TickType;
import cpw.mods.fml.common.registry.TickRegistry;
@ -12,6 +16,8 @@ import cpw.mods.fml.relauncher.Side;
public class TransmitterNetworkRegistry implements ITickHandler
{
private static TransmitterNetworkRegistry INSTANCE = new TransmitterNetworkRegistry();
private static boolean loaderRegistered = false;
private HashSet<ITransmitterNetwork> networks = new HashSet<ITransmitterNetwork>();
public TransmitterNetworkRegistry()
@ -19,6 +25,16 @@ public class TransmitterNetworkRegistry implements ITickHandler
TickRegistry.registerTickHandler(this, Side.SERVER);
}
public static void initiate()
{
if(!loaderRegistered)
{
loaderRegistered = true;
MinecraftForge.EVENT_BUS.register(getInstance());
}
}
public static TransmitterNetworkRegistry getInstance()
{
return INSTANCE;
@ -85,4 +101,27 @@ public class TransmitterNetworkRegistry implements ITickHandler
{
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();
}
}
}
}
}
}
}

View file

@ -32,7 +32,7 @@ import buildcraft.api.power.PowerHandler.PowerReceiver;
import buildcraft.api.power.PowerHandler.Type;
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 joulesTransmitted = 0;
@ -63,7 +63,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
{
double totalNeeded = 0;
for(TileEntity acceptor : getEnergyAcceptors())
for(TileEntity acceptor : getAcceptors())
{
if(!ignored.contains(acceptor))
{
@ -94,7 +94,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
double energyAvailable = energyToSend;
double sent;
List availableAcceptors = Arrays.asList(getEnergyAcceptors().toArray());
List availableAcceptors = Arrays.asList(getAcceptors().toArray());
Collections.shuffle(availableAcceptors);
@ -146,7 +146,8 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
return energyToSend;
}
public Set<TileEntity> getEnergyAcceptors()
@Override
public Set<TileEntity> getAcceptors(Object... data)
{
Set<TileEntity> toReturn = new HashSet<TileEntity>();
@ -197,6 +198,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
return toReturn;
}
@Override
public void refresh()
{
Set<IUniversalCable> iterCables = (Set<IUniversalCable>) transmitters.clone();
@ -242,6 +244,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
}
}
@Override
public void merge(EnergyNetwork network)
{
if(network != null && network != this)
@ -254,6 +257,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
}
}
@Override
public void split(IUniversalCable splitPoint)
{
if(splitPoint instanceof TileEntity)
@ -318,6 +322,7 @@ public class EnergyNetwork extends DynamicNetwork<IUniversalCable, TileEntity>
}
}
@Override
public void fixMessedUpNetwork(IUniversalCable cable)
{
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
public String toString()
{
return "[EnergyNetwork] " + transmitters.size() + " transmitters, " + possibleAcceptors.size() + " acceptors.";
}
@Override
public void tick()
{
clearJoulesTransmitted();
//Fix weird behaviour periodically.
if(!fixed)
{
++ticksSinceCreate;
if(ticksSinceCreate > 1200)
{
ticksSinceCreate = 0;
fixMessedUpNetwork(transmitters.iterator().next());
}
}
super.tick();
double currentPowerScale = getPowerScale();
if(currentPowerScale != lastPowerScale && FMLCommonHandler.instance().getEffectiveSide().isServer())
{
lastPowerScale = currentPowerScale;

View file

@ -3,30 +3,23 @@ package mekanism.common;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import mekanism.api.DynamicNetwork;
import mekanism.api.ITransmitterNetwork;
import mekanism.api.Object3D;
import mekanism.api.TransmitterNetworkRegistry;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.MinecraftForge;
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.IFluidHandler;
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)
{
@ -51,7 +44,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
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);
@ -91,8 +84,10 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
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>();
for(IFluidHandler acceptor : possibleAcceptors)
@ -106,6 +101,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
return toReturn;
}
@Override
public void refresh()
{
Set<IMechanicalPipe> iterPipes = (Set<IMechanicalPipe>) transmitters.clone();
@ -143,6 +139,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
}
}
@Override
public void merge(FluidNetwork network)
{
if(network != null && network != this)
@ -155,6 +152,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
}
}
@Override
public void split(IMechanicalPipe splitPoint)
{
if(splitPoint instanceof TileEntity)
@ -219,6 +217,7 @@ public class FluidNetwork extends DynamicNetwork<IMechanicalPipe, IFluidHandler>
}
}
@Override
public void fixMessedUpNetwork(IMechanicalPipe pipe)
{
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
public String toString()
{

View file

@ -1,41 +1,8 @@
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();
}

View file

@ -1,5 +1,6 @@
package mekanism.common;
import mekanism.api.ITransmitter;
import net.minecraftforge.fluids.FluidStack;
/**
@ -7,48 +8,11 @@ import net.minecraftforge.fluids.FluidStack;
* @author AidanBrady
*
*/
public interface IMechanicalPipe
public interface IMechanicalPipe extends ITransmitter<FluidNetwork>
{
/**
* Called when fluid is transferred through this pipe.
* @param fluidStack - the fluid transferred
*/
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();
}

View file

@ -1,50 +1,14 @@
package mekanism.common;
import mekanism.api.ITransmitter;
/**
* Implement this in your TileEntity class if the block can transfer energy as a Universal Cable.
* @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.
* @param energyScale - energy scale to set

View file

@ -21,7 +21,7 @@ import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.event.ForgeSubscribe;
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)
{
@ -44,6 +44,13 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
register();
}
@Override
public Set<IInventory> getAcceptors(Object... data)
{
return null;
}
@Override
public void refresh()
{
Set<ILogisticalTransporter> iterPipes = (Set<ILogisticalTransporter>)transmitters.clone();
@ -81,6 +88,7 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
}
}
@Override
public void merge(InventoryNetwork network)
{
if(network != null && network != this)
@ -93,6 +101,7 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
}
}
@Override
public void split(ILogisticalTransporter splitPoint)
{
if(splitPoint instanceof TileEntity)
@ -158,6 +167,7 @@ public class InventoryNetwork extends DynamicNetwork<ILogisticalTransporter, IIn
}
}
@Override
public void fixMessedUpNetwork(ILogisticalTransporter pipe)
{
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
public String toString()
{

View file

@ -16,6 +16,7 @@ import mekanism.api.InfuseRegistry;
import mekanism.api.InfuseType;
import mekanism.api.InfusionInput;
import mekanism.api.Object3D;
import mekanism.api.TransmitterNetworkRegistry;
import mekanism.client.SoundHandler;
import mekanism.common.EnergyNetwork.EnergyTransferEvent;
import mekanism.common.FluidNetwork.FluidTransferEvent;
@ -1168,11 +1169,9 @@ public class Mekanism
//Register to receive subscribed events
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new IC2EnergyHandler());
MinecraftForge.EVENT_BUS.register(new EnergyNetwork.NetworkLoader());
MinecraftForge.EVENT_BUS.register(new FluidNetwork.NetworkLoader());
//Register with GasTransmission
GasTransmission.register();
//Register with TransmitterNetworkRegistry
TransmitterNetworkRegistry.initiate();
//Load configuration
proxy.loadConfiguration();