package joshie.progression.plugins.enchiridion.features;
import com.google.gson.JsonObject;
import joshie.progression.api.criteria.ITab;
import joshie.progression.handlers.APICache;
import joshie.progression.helpers.JSONHelper;
import java.util.UUID;
import static joshie.progression.ItemProgression.tab;
public abstract class FeatureTabGeneric extends FeatureProgression {
protected transient UUID uuid = UUID.randomUUID();
protected transient boolean isInit = false;
public String display = "New Criteria";
public FeatureTabGeneric() {}
public FeatureTabGeneric(ITab tab) {
if (tab != null) {
uuid = tab.getUniqueID();
display = tab.getLocalisedName();
}
}
public ITab getTab() {
return APICache.getClientCache().getTab(uuid);
}
@Override
public void onFieldsSet(String field) {
super.onFieldsSet(field);
if (field.equals("")) {
ITab tab = getTab();
if (tab != null) display = tab.getLocalisedName();
} else if (field.equals("display")) {
for (ITab t : APICache.getClientCache().getTabSet()) {
if (t.getLocalisedName().equals(display)) {
uuid = t.getUniqueID();
}
}
}
}
public abstract void drawFeature(int mouseX, int mouseY);
@Override
public void draw(int mouseX, int mouseY) {
if (!isInit) {
isInit = true;
onFieldsSet("");
}
if (tab != null) {
drawFeature(mouseX, mouseY);
}
}
@Override
public void readFromJson(JsonObject object) {
try {
uuid = UUID.fromString(JSONHelper.getString(object, "uuid", "d977334a-a7e9-5e43-b87e-91df8eebfdff"));
} catch (Exception e){}
}
@Override
public void writeToJson(JsonObject object) {
if (uuid != null) {
JSONHelper.setString(object, "uuid", uuid.toString(), "d977334a-a7e9-5e43-b87e-91df8eebfdff");
}
}
}