Applied-Energistics-2-tiler.../debug/TileChunkLoader.java

71 lines
1.7 KiB
Java
Raw Normal View History

2014-01-20 17:41:37 +01:00
package appeng.debug;
import java.util.List;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
2014-02-09 02:34:52 +01:00
import net.minecraft.util.ChatComponentText;
2014-01-20 17:41:37 +01:00
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.common.ForgeChunkManager.Type;
import appeng.core.AELog;
import appeng.core.AppEng;
import appeng.tile.AEBaseTile;
2014-08-28 09:39:52 +02:00
import appeng.tile.TileEvent;
2014-01-20 17:41:37 +01:00
import appeng.tile.events.TileEventType;
import appeng.util.Platform;
import cpw.mods.fml.common.FMLCommonHandler;
public class TileChunkLoader extends AEBaseTile
{
boolean requestTicket = true;
Ticket ct;
2014-08-28 09:39:52 +02:00
@TileEvent(TileEventType.TICK)
public void Tick_TileChunkLoader()
2014-01-20 17:41:37 +01:00
{
2014-08-28 09:39:52 +02:00
if ( requestTicket )
2014-01-20 17:41:37 +01:00
{
2014-08-28 09:39:52 +02:00
requestTicket = false;
initTicket();
2014-01-20 17:41:37 +01:00
}
}
void initTicket()
{
if ( Platform.isClient() )
return;
ct = ForgeChunkManager.requestTicket( AppEng.instance, worldObj, Type.NORMAL );
if ( ct == null )
{
MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
if ( server != null )
{
List<EntityPlayerMP> pl = server.getConfigurationManager().playerEntityList;
for (EntityPlayerMP p : pl)
{
2014-02-09 02:34:52 +01:00
p.addChatMessage( new ChatComponentText( "Can't chunk load.." ) );
2014-01-20 17:41:37 +01:00
}
}
return;
}
AELog.info( "New Ticket " + ct.toString() );
ForgeChunkManager.forceChunk( ct, new ChunkCoordIntPair( xCoord >> 4, zCoord >> 4 ) );
}
@Override
public void invalidate()
{
if ( Platform.isClient() )
return;
AELog.info( "Released Ticket " + ct.toString() );
ForgeChunkManager.releaseTicket( ct );
}
}