// Path: src/main/java/eureka/api/BasicEurekaCategory.java
// public class BasicEurekaCategory implements ICategory {
// 	private final String name;
// 	private final ItemStack displayStack;
// 
// 	public BasicEurekaCategory(String name, ItemStack displayStack) {
// 		this.name = name;
// 		this.displayStack = displayStack;
// 	}
// 
// 	public BasicEurekaCategory(String name, Block block) {
// 		this(name, new ItemStack(block));
// 	}
// 
// 	public BasicEurekaCategory(String name, Item item) {
// 		this(name, new ItemStack(item));
// 	}
// 
// 	@Override
// 	public String getName() {
// 		return name;
// 	}
// 
// 	@Override
// 	public ItemStack getDisplayStack() {
// 		return displayStack;
// 	}
// }
// 
// Path: src/main/java/eureka/api/BasicEurekaInfo.java
// public class BasicEurekaInfo implements IEurekaInfo {
// 	private final String category, name;
// 	private final int maxProgress;
// 	private final ItemStack displayStack;
// 	private final List<String> requiredResearch;
// 
// 	public BasicEurekaInfo(String name, String category, int maxProgress, ItemStack displayStack, String... requiredResearch) {
// 		this.name = name;
// 		this.category = category;
// 		this.maxProgress = maxProgress;
// 		this.displayStack = displayStack;
// 		List<String> research = new ArrayList<String>();
// 		research.addAll(Arrays.asList(requiredResearch));
// 		this.requiredResearch = research;
// 	}
// 
// 	public BasicEurekaInfo(String name, String category, int maxProgress, Item item, String... requiredResearch) {
// 		this(name, category, maxProgress, new ItemStack(item), requiredResearch);
// 	}
// 
// 	public BasicEurekaInfo(String name, String category, int maxProgress, Block block, String... requiredResearch) {
// 		this(name, category, maxProgress, new ItemStack(block), requiredResearch);
// 	}
// 
// 	@Override
// 	public String getCategory() {
// 		return category;
// 	}
// 
// 	@Override
// 	public int getMaxProgress() {
// 		return maxProgress;
// 	}
// 
// 	@Override
// 	public ItemStack getDisplayStack() {
// 		return displayStack;
// 	}
// 
// 	@Override
// 	public String getName() {
// 		return name;
// 	}
// 
// 	@Override
// 	public List<String> getRequiredResearch() {
// 		return requiredResearch;
// 	}
// }
// 
// Path: src/main/java/eureka/api/EurekaAPI.java
// public class EurekaAPI {
// 
// 	public static IEurekAPI API;
// }
// 
// Path: src/main/java/eureka/core/Logger.java
// public class Logger {
// 
// 	public static final org.apache.logging.log4j.Logger logger = LogManager.getLogger("Eureka");
// 
// 	public static void info(String message) {
// 		logger.info(message);
// 	}
// 
// 	public static void error(String message) {
// 		logger.error(message);
// 	}
// }


import java.io.File;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.registry.GameRegistry;
import eureka.api.BasicEurekaCategory;
import eureka.api.BasicEurekaInfo;
import eureka.api.EurekaAPI;
import eureka.core.Logger;
package eureka.json;





/**
 * Copyright (c) 2014-2015, AEnterprise
 * http://buildcraftadditions.wordpress.com/
 * Buildcraft Additions is distributed under the terms of GNU GPL v3.0
 * Please check the contents of the license located in
 * http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
 */
public class ConfigReader {
	public static File mainfolder, catagoryFolder, keyFolder, localizations;
	private static Gson gson = new GsonBuilder().setPrettyPrinting().create();

	public static void read() {
		createFolderIfNeeded(mainfolder);
		if (!mainfolder.exists())
			return;
		catagoryFolder = new File(mainfolder, "Categories");
		keyFolder = new File(mainfolder, "Keys");
// Path: src/main/java/eureka/api/BasicEurekaCategory.java
// public class BasicEurekaCategory implements ICategory {
// 	private final String name;
// 	private final ItemStack displayStack;
// 
// 	public BasicEurekaCategory(String name, ItemStack displayStack) {
// 		this.name = name;
// 		this.displayStack = displayStack;
// 	}
// 
// 	public BasicEurekaCategory(String name, Block block) {
// 		this(name, new ItemStack(block));
// 	}
// 
// 	public BasicEurekaCategory(String name, Item item) {
// 		this(name, new ItemStack(item));
// 	}
// 
// 	@Override
// 	public String getName() {
// 		return name;
// 	}
// 
// 	@Override
// 	public ItemStack getDisplayStack() {
// 		return displayStack;
// 	}
// }
// 
// Path: src/main/java/eureka/api/BasicEurekaInfo.java
// public class BasicEurekaInfo implements IEurekaInfo {
// 	private final String category, name;
// 	private final int maxProgress;
// 	private final ItemStack displayStack;
// 	private final List<String> requiredResearch;
// 
// 	public BasicEurekaInfo(String name, String category, int maxProgress, ItemStack displayStack, String... requiredResearch) {
// 		this.name = name;
// 		this.category = category;
// 		this.maxProgress = maxProgress;
// 		this.displayStack = displayStack;
// 		List<String> research = new ArrayList<String>();
// 		research.addAll(Arrays.asList(requiredResearch));
// 		this.requiredResearch = research;
// 	}
// 
// 	public BasicEurekaInfo(String name, String category, int maxProgress, Item item, String... requiredResearch) {
// 		this(name, category, maxProgress, new ItemStack(item), requiredResearch);
// 	}
// 
// 	public BasicEurekaInfo(String name, String category, int maxProgress, Block block, String... requiredResearch) {
// 		this(name, category, maxProgress, new ItemStack(block), requiredResearch);
// 	}
// 
// 	@Override
// 	public String getCategory() {
// 		return category;
// 	}
// 
// 	@Override
// 	public int getMaxProgress() {
// 		return maxProgress;
// 	}
// 
// 	@Override
// 	public ItemStack getDisplayStack() {
// 		return displayStack;
// 	}
// 
// 	@Override
// 	public String getName() {
// 		return name;
// 	}
// 
// 	@Override
// 	public List<String> getRequiredResearch() {
// 		return requiredResearch;
// 	}
// }
// 
// Path: src/main/java/eureka/api/EurekaAPI.java
// public class EurekaAPI {
// 
// 	public static IEurekAPI API;
// }
// 
// Path: src/main/java/eureka/core/Logger.java
// public class Logger {
// 
// 	public static final org.apache.logging.log4j.Logger logger = LogManager.getLogger("Eureka");
// 
// 	public static void info(String message) {
// 		logger.info(message);
// 	}
// 
// 	public static void error(String message) {
// 		logger.error(message);
// 	}
// }


// Path: src/main/java/eureka/json/ConfigReader.java
import java.io.File;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.registry.GameRegistry;
import eureka.api.BasicEurekaCategory;
import eureka.api.BasicEurekaInfo;
import eureka.api.EurekaAPI;
import eureka.core.Logger;

package eureka.json;





/**
 * Copyright (c) 2014-2015, AEnterprise
 * http://buildcraftadditions.wordpress.com/
 * Buildcraft Additions is distributed under the terms of GNU GPL v3.0
 * Please check the contents of the license located in
 * http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
 */
public class ConfigReader {
	public static File mainfolder, catagoryFolder, keyFolder, localizations;
	private static Gson gson = new GsonBuilder().setPrettyPrinting().create();

	public static void read() {
		createFolderIfNeeded(mainfolder);
		if (!mainfolder.exists())
			return;
		catagoryFolder = new File(mainfolder, "Categories");
		keyFolder = new File(mainfolder, "Keys");
		localizations = new File(mainfolder, "Localizations");