package de.maxgb.minecraft.second_screen.world_observer;
/*
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import org.json.JSONArray;
import org.json.JSONObject;
import de.maxgb.minecraft.second_screen.util.Logger;
//@formatter:off
/*
* JSONStructure:
* <"rf_es":JSONArray>
* contains one JSONArray for each block
* Array contains:
* <0=label:String>
* <1=energystored:int>
* <2=maxenergystored:int>
*
//@formatter:on
/**
* Observer class which is designed to observe redstone flux energy storage container which implement IEnergyStorage or IEngeryHandler
* @author Max
*
*
public class RFEnergyStorageObserver implements ObservedBlock.ObservingType {
private final int ID = 4;
private JSONArray info;
@Override
public boolean addInfoForBlock(World world, ObservedBlock block) {
if (info == null) {
info = new JSONArray();
}
if (block.side == -1) {
return false;
}
JSONArray es = new JSONArray();
es.put(block.label);
TileEntity storage = world.getTileEntity(block.x, block.y, block.z);
if (storage != null && storage instanceof IEnergyHandler) {
IEnergyHandler s = (IEnergyHandler) storage;
es.put(s.getEnergyStored(ForgeDirection.getOrientation(block.side))).put(
s.getMaxEnergyStored(ForgeDirection.getOrientation(block.side)));
info.put(es);
return true;
} else if (storage != null && storage instanceof IEnergyStorage) {
IEnergyStorage s = (IEnergyStorage) storage;
es.put(s.getEnergyStored()).put(s.getMaxEnergyStored());
info.put(es);
return true;
} else {
Logger.w("RF_Energy_Storage Observer", "Observed Block is no energy storage");
return false;
}
}
@Override
public boolean canObserve(Block block, TileEntity tile) {
if (tile != null && (tile instanceof IEnergyHandler || tile instanceof IEnergyStorage)) {
return true;
}
return false;
}
@Override
public void finishInfoCreation(JSONObject parent) {
if (info != null && info.length() > 0) {
parent.put("rf_es", info);
info = null;
}
}
@Override
public int getId() {
return ID;
}
@Override
public String getIdentifier() {
return "RF_energy_storage";
}
@Override
public String getShortIndentifier() {
return "rf_es";
}
}
*/