Hbm-s-Nuclear-Tech-GIT/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java

52 lines
1.4 KiB
Java

package com.hbm.entity.logic;
import com.hbm.main.MainRegistry;
import net.minecraft.entity.Entity;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.common.ForgeChunkManager.Type;
public abstract class EntityExplosionChunkloading extends Entity implements IChunkLoader {
private Ticket loaderTicket;
private ChunkCoordIntPair loadedChunk;
public EntityExplosionChunkloading(World world) {
super(world);
}
@Override
protected void entityInit() {
init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY));
}
@Override
public void init(Ticket ticket) {
if(!worldObj.isRemote && ticket != null) {
if(loaderTicket == null) {
loaderTicket = ticket;
loaderTicket.bindEntity(this);
loaderTicket.getModData();
}
ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ));
}
}
public void loadChunk(int x, int z) {
if(this.loadedChunk == null) {
this.loadedChunk = new ChunkCoordIntPair(x, z);
ForgeChunkManager.forceChunk(loaderTicket, loadedChunk);
}
}
public void clearChunkLoader() {
if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) {
ForgeChunkManager.releaseTicket(loaderTicket);
}
}
}