package joshie.progression.gui.core;
import joshie.progression.api.special.DisplayMode;
import joshie.progression.gui.editors.*;
import joshie.progression.gui.editors.insert.FeatureNewCondition;
import joshie.progression.gui.editors.insert.FeatureNewFilter;
import joshie.progression.gui.editors.insert.FeatureNewReward;
import joshie.progression.gui.editors.insert.FeatureNewTrigger;
import joshie.progression.gui.filters.FeatureItemPreview;
import joshie.progression.json.JSONLoader;
import joshie.progression.json.Theme;
import joshie.progression.lib.PInfo;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IResource;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side;
import org.apache.commons.io.IOUtils;
import java.io.IOException;
import java.io.InputStream;
import static joshie.progression.api.special.DisplayMode.DISPLAY;
public class GuiList {
//Mode - > Default to Display
public static DisplayMode MODE = DISPLAY;
//Theme -> :O
protected static final ResourceLocation resource = new ResourceLocation(PInfo.MODPATH, "config.json");
public static Theme THEME = null;
static {
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
IResourceManager manager = Minecraft.getMinecraft().getResourceManager();
InputStream inputstream = null;
try {
IResource iresource = manager.getResource(resource);
inputstream = iresource.getInputStream();
THEME = JSONLoader.getGson().fromJson(IOUtils.toString(inputstream, "UTF-8"), Theme.class);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputstream != null) {
try {
inputstream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
//Features -> Rules -> Create
public static final FeatureNewTrigger NEW_TRIGGER = new FeatureNewTrigger();
public static final FeatureNewCondition NEW_CONDITION = new FeatureNewCondition();
public static final FeatureNewReward NEW_REWARD = new FeatureNewReward();
public static final FeatureNewFilter NEW_FILTER = new FeatureNewFilter();
//Features -> Rules -> List
public static final FeatureTrigger TRIGGERS = new FeatureTrigger();
public static final FeatureCondition CONDITIONS = new FeatureCondition();
public static final FeatureReward REWARDS = new FeatureReward();
public static final FeatureFilter FILTERS = new FeatureFilter();
public static final FeatureItemSelectorTree TREE_ELEMENT = new FeatureItemSelectorTree();
public static final FeatureTemplateSelectorTab TEMPLATE_SELECTOR_TAB = new FeatureTemplateSelectorTab();
public static final FeatureTemplateSelectorCriteria TEMPLATE_SELECTOR_CRITERIA = new FeatureTemplateSelectorCriteria();
//Features -> Editors
public static final TextEditor TEXT_EDITOR_SIMPLE = new TextEditor();
public static final FeatureFullTextEditor TEXT_EDITOR_FULL = new FeatureFullTextEditor();
public static final FeatureItemSelector ITEM_EDITOR = new FeatureItemSelector();
public static final FeatureItemPreview PREVIEW = new FeatureItemPreview();
//Features -> Core
public static final FeatureBackground BACKGROUND = new FeatureBackground();
public static final FeatureBarsX2 FILTER_BG = new FeatureBarsX2("filter", "preview");
public static final FeatureBarsX2 CRITERIA_BG = new FeatureBarsX2("trigger", "reward");
public static final FeatureBarsX1 CONDITION_BG = new FeatureBarsX1("condition");
public static final FeatureBarsFull GROUP_BG = new FeatureBarsFull("group");
public static final FeatureFooter FOOTER = new FeatureFooter();
public static final FeatureTooltip TOOLTIP = new FeatureTooltip();
public static final FeatureLastDraw LAST = new FeatureLastDraw();
//GUIs
public static final GuiCore CORE = new GuiCore();
public static final GuiGroupEditor GROUP_EDITOR = new GuiGroupEditor();
public static final GuiTreeEditor TREE_EDITOR = new GuiTreeEditor();
public static final GuiCriteriaEditor CRITERIA_EDITOR = new GuiCriteriaEditor();
public static final GuiConditionEditor CONDITION_EDITOR = new GuiConditionEditor();
public static final GuiFilterEditor FILTER_EDITOR = new GuiFilterEditor();
}