package micdoodle8.mods.galacticraft.core.energy.grid;
import com.google.common.collect.Lists;
import micdoodle8.mods.galacticraft.api.transmission.tile.INetworkConnection;
import micdoodle8.mods.galacticraft.core.event.EventHandlerGC;
import micdoodle8.mods.galacticraft.core.util.ConfigManagerCore;
import micdoodle8.mods.galacticraft.core.util.GCCoreUtil;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.ChunkEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import java.util.ArrayList;
public class ChunkPowerHandler
{
private static boolean initiated = false;
public static void initiate()
{
if (!ChunkPowerHandler.initiated)
{
ChunkPowerHandler.initiated = true;
MinecraftForge.EVENT_BUS.register(new ChunkPowerHandler());
}
}
@SuppressWarnings("unchecked")
@SubscribeEvent
public void onChunkLoad(ChunkEvent.Load event)
{
if (!event.world.isRemote && event.getChunk() != null)
{
try
{
ArrayList<Object> tileList = Lists.newArrayList();
tileList.addAll(event.getChunk().getTileEntityMap().values());
for (Object o : tileList)
{
if (o instanceof TileEntity)
{
TileEntity tile = (TileEntity) o;
if (tile instanceof INetworkConnection)
{
((INetworkConnection) tile).refresh();
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
if (ConfigManagerCore.retrogenOil && GCCoreUtil.getDimensionID(event.world) == 0)
{
EventHandlerGC.retrogenOil(event.world, event.getChunk());
}
}
}
}