package com.clearlyspam23.GLE.basic.layers.tile.resources;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import com.clearlyspam23.GLE.basic.layers.tile.TilesetHandle;
import com.clearlyspam23.GLE.resources.Resource;
import com.clearlyspam23.GLE.resources.ResourceLoader;
public class ReferenceTilesetHandle extends TilesetHandle implements ResourceLoader<BasicTilesetHandle>{
/**
*
*/
private static final long serialVersionUID = 1L;
private String tilesetFile;
private transient Resource<BasicTilesetHandle> tilesetResource = new Resource<BasicTilesetHandle>(this);
public ReferenceTilesetHandle(String tilesetFile){
this.setTilesetFile(tilesetFile);
}
@Override
public BasicTilesetHandle loadResource(File file) throws IOException {
return null;
}
@Override
public String getName() {
return getTilesetFileHandle().getName();
}
@Override
public String getFilename(){
return getTilesetFileHandle().getFilename();
}
@Override
public Image getTileAt(int x, int y) {
return getTilesetFileHandle().getTileAt(x, y);
}
@Override
public Image getTileByIndex(int index) {
return getTilesetFileHandle().getTileByIndex(index);
}
@Override
public int getXFromIndex(int index) {
return getTilesetFileHandle().getXFromIndex(index);
}
@Override
public int getYFromIndex(int index) {
return getTilesetFileHandle().getYFromIndex(index);
}
@Override
public boolean isValidLocation(int x, int y) {
return getTilesetFileHandle().isValidLocation(x, y);
}
@Override
public int getIndex(int x, int y) {
return getTilesetFileHandle().getIndex(x, y);
}
@Override
public int getTileWidth() {
return getTilesetFileHandle().getTileWidth();
}
@Override
public int getTileHeight() {
return getTilesetFileHandle().getTileHeight();
}
@Override
public int getWidth() {
return getTilesetFileHandle().getWidth();
}
@Override
public int getHeight() {
return getTilesetFileHandle().getHeight();
}
@Override
public int getTileXSpacing() {
return getTilesetFileHandle().getTileXSpacing();
}
@Override
public int getTileYSpacing() {
return getTilesetFileHandle().getTileYSpacing();
}
public boolean isTilesetHandleValid(){
try{
return tilesetResource.getData()!=null;
}
catch(IOException e){
return false;
}
}
private BasicTilesetHandle getTilesetFileHandle(){
try{
return tilesetResource.getData();
}
catch(IOException e){
return null;
}
}
@Override
public void setName(String name) {
getTilesetFileHandle().setName(name);
}
@Override
public BasicTilesetHandle cloneAsBasic() {
return getTilesetFileHandle().cloneAsBasic();
}
public String getTilesetFile() {
return tilesetFile;
}
public void setTilesetFile(String tilesetFile) {
this.tilesetFile = tilesetFile;
tilesetResource.setBackingFile(new File(tilesetFile));
}
@Override
public int getID() {
return getTilesetFileHandle().getID();
}
}