Fixed errors with Domain and recipe loader
This commit is contained in:
parent
18cd9b1319
commit
533fef288e
11 changed files with 159 additions and 82 deletions
|
@ -57,38 +57,35 @@ public class DarkMain extends ModPrefab
|
|||
public static ModMetadata meta;
|
||||
|
||||
/** Main config file */
|
||||
public static final Configuration CONFIGURATION = new Configuration(new File(Loader.instance().getConfigDir(), "Dark/General.cfg"));
|
||||
public static final Configuration CONFIGURATION = new Configuration(new File(Loader.instance().getConfigDir(), "Dark/TheDarkMachine.cfg"));
|
||||
private static final String[] LANGUAGES_SUPPORTED = new String[] { "en_US" };
|
||||
/** Can over pressure of devices do area damage */
|
||||
public static boolean overPressureDamage;
|
||||
/** Main mod output to console */
|
||||
public static final Logger LOGGER = Logger.getLogger("DarkCore");
|
||||
|
||||
public static BlockMulti blockMulti;
|
||||
|
||||
public static DarkMain instance;
|
||||
private static DarkMain instance;
|
||||
public static CoreRecipeLoader recipeLoader;
|
||||
|
||||
public DarkMain()
|
||||
public static DarkMain getInstance()
|
||||
{
|
||||
super("dark");
|
||||
if(instance == null)
|
||||
{
|
||||
instance = new DarkMain();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@Override
|
||||
public void preInit(FMLPreInitializationEvent event)
|
||||
{
|
||||
super.preInit(event);
|
||||
LOGGER.setParent(FMLLog.getLogger());
|
||||
LOGGER.info("Initializing...");
|
||||
recipeLoader = new CoreRecipeLoader();
|
||||
instance = this;
|
||||
super.preInit(event);
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
MinecraftForge.EVENT_BUS.register(new FluidRestrictionHandler());
|
||||
|
||||
proxy.preInit();
|
||||
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -133,10 +130,14 @@ public class DarkMain extends ModPrefab
|
|||
@Override
|
||||
public void loadConfig()
|
||||
{
|
||||
if (recipeLoader == null)
|
||||
{
|
||||
recipeLoader = new CoreRecipeLoader();
|
||||
}
|
||||
/* CONFIGS */
|
||||
CONFIGURATION.load();
|
||||
/* BLOCKS */
|
||||
DarkMain.blockMulti = new BlockMulti(DarkMain.CONFIGURATION.getBlock("RestrictedPipes", BLOCK_ID_PREFIX++).getInt());
|
||||
DarkMain.blockMulti = new BlockMulti(DarkMain.CONFIGURATION.getBlock("MultiBlock", BLOCK_ID_PREFIX++).getInt());
|
||||
if (CONFIGURATION.get("general", "LoadOre", true).getBoolean(true))
|
||||
{
|
||||
recipeLoader.blockOre = new BlockOre(BLOCK_ID_PREFIX++, CONFIGURATION);
|
||||
|
@ -181,5 +182,11 @@ public class DarkMain extends ModPrefab
|
|||
{
|
||||
SaveManager.save(true);
|
||||
}
|
||||
@Override
|
||||
public String getDomain()
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
return "dark";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,15 +2,17 @@ package dark.core;
|
|||
|
||||
import org.modstats.Modstats;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
||||
public abstract class ModPrefab
|
||||
{
|
||||
|
||||
public String DOMAIN = "dark";
|
||||
public String DOMAIN = this.getDomain();
|
||||
public String PREFIX = DOMAIN + ":";
|
||||
|
||||
public String DIRECTORY_NO_SLASH = "assets/" + DOMAIN + "/";
|
||||
|
@ -28,10 +30,7 @@ public abstract class ModPrefab
|
|||
public static int BLOCK_ID_PREFIX = 3100;
|
||||
public static int ITEM_ID_PREFIX = 13200;
|
||||
|
||||
public ModPrefab(String domain)
|
||||
{
|
||||
DOMAIN = domain;
|
||||
}
|
||||
public abstract String getDomain();
|
||||
|
||||
@EventHandler
|
||||
public void preInit(FMLPreInitializationEvent event)
|
||||
|
@ -53,6 +52,12 @@ public abstract class ModPrefab
|
|||
|
||||
}
|
||||
|
||||
public static void printSidedData(String data)
|
||||
{
|
||||
System.out.print(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? "[C]" : "[S]");
|
||||
System.out.println(" " + data);
|
||||
}
|
||||
|
||||
public abstract void loadConfig();
|
||||
|
||||
public abstract void loadModMeta();
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package dark.core;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import dark.core.helpers.Pair;
|
||||
import dark.core.helpers.Triple;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import dark.core.helpers.Pair;
|
||||
import dark.core.helpers.Triple;
|
||||
|
||||
public abstract class RecipeLoader
|
||||
{
|
||||
|
@ -51,6 +51,15 @@ public abstract class RecipeLoader
|
|||
}
|
||||
}
|
||||
|
||||
public ItemStack setStackSize(ItemStack stack, int amount)
|
||||
{
|
||||
if (stack != null)
|
||||
{
|
||||
return new ItemStack(stack.itemID, amount, stack.getItemDamage());
|
||||
}
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static class RecipeGrid
|
||||
{
|
||||
Object A, B, C, D, E, F, G, H, I;
|
||||
|
@ -58,10 +67,15 @@ public abstract class RecipeLoader
|
|||
int width = 3;
|
||||
int hight = 3;
|
||||
|
||||
public RecipeGrid(int width, int hight)
|
||||
public RecipeGrid(Object stack)
|
||||
{
|
||||
this.width = Math.max(Math.min(width, 3), 1);
|
||||
this.hight = Math.max(Math.min(hight, 3), 1);;
|
||||
out = stack;
|
||||
}
|
||||
|
||||
public RecipeGrid(Object stack, int w, int h)
|
||||
{
|
||||
this(stack);
|
||||
this.setSize(w, h);
|
||||
}
|
||||
|
||||
/** 3x3 Crafting grid. Each Triple is a row. Input for the triples should be any of { Item,
|
||||
|
@ -70,8 +84,9 @@ public abstract class RecipeLoader
|
|||
* @param one - top row
|
||||
* @param two - middle row
|
||||
* @param three - bottom row */
|
||||
public RecipeGrid(Triple one, Triple two, Triple three)
|
||||
public RecipeGrid(Object stack, Triple one, Triple two, Triple three)
|
||||
{
|
||||
this(stack);
|
||||
this.setRowOne(one.getA(), one.getB(), one.getC());
|
||||
this.setRowTwo(two.getA(), two.getB(), two.getC());
|
||||
this.setRowThree(three.getA(), three.getB(), three.getC());
|
||||
|
@ -82,19 +97,34 @@ public abstract class RecipeLoader
|
|||
*
|
||||
* @param one - top row
|
||||
* @param two - middle row */
|
||||
public RecipeGrid(Pair one, Pair two)
|
||||
public RecipeGrid(Object stack, Pair one, Pair two)
|
||||
{
|
||||
this(stack);
|
||||
this.setRowOne(one.getKey(), one.getValue());
|
||||
this.setRowTwo(two.getKey(), two.getValue());
|
||||
this.hight = 2;
|
||||
this.width = 2;
|
||||
}
|
||||
|
||||
/** Sets the grid size */
|
||||
public RecipeGrid setSize(int w, int h)
|
||||
{
|
||||
this.width = Math.max(Math.min(w, 3), 1);
|
||||
this.hight = Math.max(Math.min(h, 3), 1);
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Sets the grid recipe output */
|
||||
public RecipeGrid setOutput(Object stack)
|
||||
{
|
||||
out = stack;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RecipeGrid setRowOne(Object... objects)
|
||||
{
|
||||
if (objects != null)
|
||||
{
|
||||
|
||||
this.A = objects[0];
|
||||
if (objects.length > 1)
|
||||
{
|
||||
|
@ -112,7 +142,6 @@ public abstract class RecipeLoader
|
|||
{
|
||||
if (objects != null)
|
||||
{
|
||||
|
||||
this.D = objects[0];
|
||||
if (objects.length > 1)
|
||||
{
|
||||
|
@ -130,7 +159,6 @@ public abstract class RecipeLoader
|
|||
{
|
||||
if (objects != null)
|
||||
{
|
||||
|
||||
this.G = objects[0];
|
||||
if (objects.length > 1)
|
||||
{
|
||||
|
@ -144,27 +172,13 @@ public abstract class RecipeLoader
|
|||
return this;
|
||||
}
|
||||
|
||||
public void norm()
|
||||
public String getOreName(ItemStack stack)
|
||||
{
|
||||
Object[] list = new Object[] { A, B, C, D, E, F, G, H, I };
|
||||
for (int i = 0; i < list.length; i++)
|
||||
if (stack != null)
|
||||
{
|
||||
if (list[i] == null || (!(list[i] instanceof Item) && !(list[i] instanceof Block) && !(list[i] instanceof ItemStack) && !(list[i] instanceof String)))
|
||||
{
|
||||
list[i] = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (list[i] instanceof ItemStack)
|
||||
{
|
||||
String name = OreDictionary.getOreName(OreDictionary.getOreID((ItemStack) list[i]));
|
||||
if (name != null)
|
||||
{
|
||||
list[i] = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
return OreDictionary.getOreName(OreDictionary.getOreID(stack));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void RegisterRecipe()
|
||||
|
@ -180,43 +194,96 @@ public abstract class RecipeLoader
|
|||
{
|
||||
ShapedOreRecipe re = null;
|
||||
Object[] recipe = null;
|
||||
String AA = "A";
|
||||
String BB = "B";
|
||||
String CC = "C";
|
||||
String DD = "D";
|
||||
String EE = "E";
|
||||
String FF = "F";
|
||||
String GG = "G";
|
||||
String HH = "H";
|
||||
String II = "I";
|
||||
if (A == null)
|
||||
{
|
||||
AA = " ";
|
||||
A = "";
|
||||
}
|
||||
if (B == null)
|
||||
{
|
||||
BB = " ";
|
||||
B = "";
|
||||
}
|
||||
if (C == null)
|
||||
{
|
||||
CC = " ";
|
||||
C = "";
|
||||
}
|
||||
if (D == null)
|
||||
{
|
||||
DD = " ";
|
||||
D = "";
|
||||
}
|
||||
if (E == null)
|
||||
{
|
||||
EE = " ";
|
||||
E = "";
|
||||
}
|
||||
if (F == null)
|
||||
{
|
||||
FF = " ";
|
||||
F = "";
|
||||
}
|
||||
if (G == null)
|
||||
{
|
||||
GG = " ";
|
||||
G = "";
|
||||
}
|
||||
if (H == null)
|
||||
{
|
||||
HH = " ";
|
||||
H = "";
|
||||
}
|
||||
if (I == null)
|
||||
{
|
||||
II = " ";
|
||||
I = "";
|
||||
}
|
||||
|
||||
this.norm();
|
||||
if (width == 3 && hight == 3)
|
||||
{
|
||||
recipe = new Object[] { "ABC", "DEF", "GHI", 'A', A, 'B', B, 'C', C, 'D', D, 'E', E, 'F', F, 'G', G, 'H', H, 'I', I };
|
||||
recipe = new Object[] { AA + BB + CC, DD + EE + FF, GG + HH + II, 'A', A, 'B', B, 'C', C, 'D', D, 'E', E, 'F', F, 'G', G, 'H', H, 'I', I };
|
||||
}
|
||||
else if (width == 2 && hight == 3)
|
||||
{
|
||||
recipe = new Object[] { "AB", "DE", "GH", 'A', A, 'B', B, 'D', D, 'E', E, 'G', G, 'H', H };
|
||||
recipe = new Object[] { AA + BB, DD + EE, GG + HH, 'A', A, 'B', B, 'D', D, 'E', E, 'G', G, 'H', H };
|
||||
}
|
||||
else if (width == 3 && hight == 2)
|
||||
{
|
||||
recipe = new Object[] { "ABC", "DEF", 'A', A, 'B', B, 'C', C, 'D', D, 'E', E, 'F', F };
|
||||
recipe = new Object[] { AA + BB + CC, DD + EE + FF, 'A', A, 'B', B, 'C', C, 'D', D, 'E', E, 'F', F };
|
||||
}
|
||||
else if (width == 1 && hight == 3)
|
||||
{
|
||||
recipe = new Object[] { "A", "D", "G", 'A', A, 'D', D, 'G', G };
|
||||
recipe = new Object[] { AA, DD, GG, 'A', A, 'D', D, 'G', G };
|
||||
}
|
||||
else if (width == 3 && hight == 1)
|
||||
{
|
||||
recipe = new Object[] { "ABC", 'A', A, 'B', B, 'C', C };
|
||||
recipe = new Object[] { AA + BB + CC, 'A', A, 'B', B, 'C', C };
|
||||
}
|
||||
else if (width == 2 && hight == 2)
|
||||
{
|
||||
recipe = new Object[] { "AB", "DE", 'A', A, 'B', B, 'D', D, 'E', E };
|
||||
recipe = new Object[] { AA + BB, DD + EE, 'A', A, 'B', B, 'D', D, 'E', E };
|
||||
}
|
||||
else if (width == 1 && hight == 2)
|
||||
{
|
||||
recipe = new Object[] { "A", "D", 'A', A, 'D', D, };
|
||||
recipe = new Object[] { AA, DD, 'A', A, 'D', D, };
|
||||
}
|
||||
else if (width == 2 && hight == 1)
|
||||
{
|
||||
recipe = new Object[] { "AB", 'A', A, 'B', B, };
|
||||
recipe = new Object[] { AA + BB, 'A', A, 'B', B, };
|
||||
}
|
||||
else if (width == 1 && hight == 1)
|
||||
{
|
||||
recipe = new Object[] { "A", 'A', A };
|
||||
recipe = new Object[] { AA, 'A', A };
|
||||
}
|
||||
if (recipe != null)
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@ public abstract class BlockMachine extends BlockAdvanced implements ITileEntityP
|
|||
@Override
|
||||
public void registerIcons(IconRegister iconReg)
|
||||
{
|
||||
this.blockIcon = iconReg.registerIcon(DarkMain.instance.PREFIX + "machine");
|
||||
this.blockIcon = iconReg.registerIcon(DarkMain.getInstance().PREFIX + "machine");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -21,7 +21,7 @@ public class BlockOre extends Block
|
|||
{
|
||||
super(config.getBlock("Ore", par1).getInt(), Material.rock);
|
||||
this.setCreativeTab(CreativeTabs.tabBlock);
|
||||
this.setUnlocalizedName(DarkMain.instance.PREFIX + "Ore");
|
||||
this.setUnlocalizedName(DarkMain.getInstance().PREFIX + "Ore");
|
||||
}
|
||||
|
||||
public static void regiserOreNames()
|
||||
|
@ -54,7 +54,7 @@ public class BlockOre extends Block
|
|||
{
|
||||
if (EnumMeterials.values()[i].doWorldGen)
|
||||
{
|
||||
this.icons[i] = par1IconRegister.registerIcon(DarkMain.instance.PREFIX + EnumMeterials.values()[i].name + "Ore");
|
||||
this.icons[i] = par1IconRegister.registerIcon(DarkMain.getInstance().PREFIX + EnumMeterials.values()[i].name + "Ore");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ public enum EnumMeterials
|
|||
if (this.doWorldGen)
|
||||
{
|
||||
ItemStack stack = new ItemStack(DarkMain.recipeLoader.blockOre, 1, this.ordinal());
|
||||
return (OreGenReplaceStone) new OreGenReplaceStone(this.name, this.name + "Ore", stack, this.maxY, this.ammount, this.branch).enable(DarkMain.instance.CONFIGURATION);
|
||||
return (OreGenReplaceStone) new OreGenReplaceStone(this.name, this.name + "Ore", stack, this.maxY, this.ammount, this.branch).enable(DarkMain.getInstance().CONFIGURATION);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ public class ItemBasic extends Item
|
|||
public ItemBasic(int itemID, String name, Configuration config)
|
||||
{
|
||||
super(config.getItem(name, itemID).getInt());
|
||||
this.setUnlocalizedName(DarkMain.instance.PREFIX + name);
|
||||
this.setUnlocalizedName(DarkMain.getInstance().PREFIX + name);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ public class ItemBattery extends ItemElectric
|
|||
public ItemBattery(String name, int id)
|
||||
{
|
||||
super(DarkMain.CONFIGURATION.getItem(name, id).getInt(id));
|
||||
this.setUnlocalizedName(DarkMain.instance.PREFIX + name);
|
||||
this.setUnlocalizedName(DarkMain.getInstance().PREFIX + name);
|
||||
this.setCreativeTab(CreativeTabs.tabRedstone);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public class ItemOre extends ItemBlock
|
|||
@Override
|
||||
public String getUnlocalizedName(ItemStack par1ItemStack)
|
||||
{
|
||||
return "tile." + DarkMain.instance.PREFIX + EnumMeterials.values()[par1ItemStack.getItemDamage()].name + "Ore";
|
||||
return "tile." + DarkMain.getInstance().PREFIX + EnumMeterials.values()[par1ItemStack.getItemDamage()].name + "Ore";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ public class ItemOreDirv extends ItemBasic
|
|||
if (itemStack != null)
|
||||
{
|
||||
int meta = itemStack.getItemDamage();
|
||||
return "item." + DarkMain.instance.PREFIX + EnumOreParts.getFullName(meta);
|
||||
return "item." + DarkMain.getInstance().PREFIX + EnumOreParts.getFullName(meta);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -58,7 +58,7 @@ public class ItemOreDirv extends ItemBasic
|
|||
int meta = EnumOreParts.values()[j].meta;
|
||||
for (int i = 0; i < EnumMeterials.values().length; i++)
|
||||
{
|
||||
ICONS[i + meta] = iconRegister.registerIcon(DarkMain.instance.PREFIX + EnumMeterials.values()[i].name + suf);
|
||||
ICONS[i + meta] = iconRegister.registerIcon(DarkMain.getInstance().PREFIX + EnumMeterials.values()[i].name + suf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,14 +131,12 @@ public abstract class NetworkTileEntities
|
|||
* merge process itself
|
||||
*
|
||||
* @param network
|
||||
* @param part */
|
||||
public void merge(NetworkTileEntities network, INetworkPart part)
|
||||
* @param mergePoint */
|
||||
public void merge(NetworkTileEntities network, INetworkPart mergePoint)
|
||||
{
|
||||
if (network != null && network != this && network.getClass().equals(this.getClass()))
|
||||
{
|
||||
this.refresh();
|
||||
network.refresh();
|
||||
if (this.preMergeProcessing(network, part))
|
||||
if (this.preMergeProcessing(network, mergePoint))
|
||||
{
|
||||
this.mergeDo(network);
|
||||
}
|
||||
|
@ -171,7 +169,7 @@ public abstract class NetworkTileEntities
|
|||
newNetwork.getNetworkMemebers().addAll(this.getNetworkMemebers());
|
||||
newNetwork.getNetworkMemebers().addAll(network.getNetworkMemebers());
|
||||
|
||||
newNetwork.cleanUpMembers();
|
||||
newNetwork.refresh();
|
||||
}
|
||||
|
||||
/** Called when a peace of the network is remove from the network. Will split the network if it
|
||||
|
|
Loading…
Reference in a new issue