package com.xcompwiz.lookingglass.apiimpl;
import net.minecraft.util.ChunkCoordinates;
import com.xcompwiz.lookingglass.api.hook.WorldViewAPI2;
import com.xcompwiz.lookingglass.api.view.IWorldView;
import com.xcompwiz.lookingglass.client.proxyworld.ProxyWorldManager;
import com.xcompwiz.lookingglass.client.proxyworld.WorldView;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* This is the API wrapper (instance) class for the WorldView API at version 2.
* @author xcompwiz
*/
public class LookingGlassAPI2Wrapper extends APIWrapper implements WorldViewAPI2 {
public LookingGlassAPI2Wrapper(String modname) {
super(modname);
}
@Override
@SideOnly(Side.CLIENT)
public IWorldView createWorldView(Integer dimid, ChunkCoordinates spawn, int width, int height) {
return ProxyWorldManager.createWorldView(dimid, (spawn != null ? new ChunkCoordinates(spawn) : null), width, height);
}
@Override
public void cleanupWorldView(IWorldView worldview) {
if (worldview == null) return;
if (!(worldview instanceof WorldView)) throw new RuntimeException("[%s] is misusing the LookingGlass API. Cannot cleanup custom IWorldView objects.");
ProxyWorldManager.destroyWorldView((WorldView) worldview);
}
}