OreDict now alive

But laggy
Closes #15, closes #19, closes #20
This commit is contained in:
TheDarkDnKTv 2020-08-17 17:34:52 +03:00
parent d9d0340a65
commit cb9a983efa
39 changed files with 284 additions and 709 deletions

View file

@ -486,14 +486,15 @@ public class GT_Mod implements IGT_Mod {
GT_Log.log.error("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft."); GT_Log.log.error("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft.");
throw new RuntimeException(""); throw new RuntimeException("");
} else { } else {
new GT_OreProcessingLoader().run();
new GT_MetaTileEntityLoader().run(); new GT_MetaTileEntityLoader().run();
new GT_ItemLoader().run(); new GT_ItemLoader().run();
new GT_OreProcessingLoader().run();
new GT_DictRegistratorPreItem().run(); new GT_DictRegistratorPreItem().run();
new GT_DictRegistratorPostItem().run(); new GT_DictRegistratorPostItem().run();
new GT_CircuitBehaviorLoader().run(); new GT_CircuitBehaviorLoader().run();
new GT_CoverBehaviorLoader().run(); new GT_CoverBehaviorLoader().run();
new GT_SonictronLoader().run(); new GT_SonictronLoader().run();
GT_OreDictUnificator.activateUnificator();
gregtechproxy.registerRenderers(); gregtechproxy.registerRenderers();
for (FluidContainerData tGregTech : FluidContainerRegistry.getRegisteredFluidContainerData()) { for (FluidContainerData tGregTech : FluidContainerRegistry.getRegisteredFluidContainerData()) {
@ -562,6 +563,12 @@ public class GT_Mod implements IGT_Mod {
GT_Log.log.info("GT_Mod: Beginning Load-Phase."); GT_Log.log.info("GT_Mod: Beginning Load-Phase.");
GregTech_API.sLoadStarted = true; GregTech_API.sLoadStarted = true;
if (sSortToTheEnd) {
new GT_ItemIterator().run();
GT_OreDictHandler.instance.registerUnificationEntries();
new GT_LiquidAndFuelLoader().run();
}
for (FluidContainerData tGregTech : FluidContainerRegistry.getRegisteredFluidContainerData()) { for (FluidContainerData tGregTech : FluidContainerRegistry.getRegisteredFluidContainerData()) {
if (tGregTech.filledContainer.getItem() == Items.potionitem) { if (tGregTech.filledContainer.getItem() == Items.potionitem) {
tGregTech.fluid.amount = 0; tGregTech.fluid.amount = 0;

View file

@ -1,10 +1,7 @@
package gregtechmod.api.enums; package gregtechmod.api.enums;
import java.util.Objects;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.interfaces.IItemContainer; import gregtechmod.api.interfaces.IItemContainer;
import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
@ -330,28 +327,28 @@ public enum GT_Items implements IItemContainer {
@Override @Override
public ItemStack get(long aAmount, Object... aReplacements) { public ItemStack get(long aAmount, Object... aReplacements) {
if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!");
if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements));
return GT_Utility.copyAmount(aAmount, GT_OreDictUnificator.get(mStack)); return GT_Utility.copyAmount(aAmount, GT_OreDictUnificator.get(mStack));
} }
@Override @Override
public ItemStack getWildcard(long aAmount, Object... aReplacements) { public ItemStack getWildcard(long aAmount, Object... aReplacements) {
if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!");
if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements));
return GT_Utility.copyAmountAndMetaData(aAmount, GregTech_API.ITEM_WILDCARD_DAMAGE, GT_OreDictUnificator.get(mStack)); return GT_Utility.copyAmountAndMetaData(aAmount, GregTech_API.ITEM_WILDCARD_DAMAGE, GT_OreDictUnificator.get(mStack));
} }
@Override @Override
public ItemStack getUndamaged(long aAmount, Object... aReplacements) { public ItemStack getUndamaged(long aAmount, Object... aReplacements) {
if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!");
if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements));
return GT_Utility.copyAmountAndMetaData(aAmount, 0, GT_OreDictUnificator.get(mStack)); return GT_Utility.copyAmountAndMetaData(aAmount, 0, GT_OreDictUnificator.get(mStack));
} }
@Override @Override
public ItemStack getAlmostBroken(long aAmount, Object... aReplacements) { public ItemStack getAlmostBroken(long aAmount, Object... aReplacements) {
if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!");
if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements));
return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage()-1, GT_OreDictUnificator.get(mStack)); return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage()-1, GT_OreDictUnificator.get(mStack));
} }
@ -366,7 +363,7 @@ public enum GT_Items implements IItemContainer {
@Override @Override
public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements) { public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements) {
if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!");
if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements));
return GT_Utility.copyAmountAndMetaData(aAmount, aMetaValue, GT_OreDictUnificator.get(mStack)); return GT_Utility.copyAmountAndMetaData(aAmount, aMetaValue, GT_OreDictUnificator.get(mStack));
} }
@ -383,18 +380,4 @@ public enum GT_Items implements IItemContainer {
for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1)); for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1));
return this; return this;
} }
private ItemStack[] cast(Object...objects) {
Objects.requireNonNull(objects);
ItemStack[] result = new ItemStack[objects.length];
try {
for (int i = 0; i < objects.length; i++)
result[i] = (ItemStack) objects[i];
} catch (ClassCastException e) {
GT_Log.log.throwing(e);
throw new IllegalArgumentException("Array can not contain not ItemStacks!");
}
return result;
}
} }

View file

@ -291,7 +291,11 @@ public enum OrePrefixes {
} }
public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {
if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) for (IOreRecipeRegistrator tRegistrator : mOreProcessing) tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack)); if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) {
for (IOreRecipeRegistrator tRegistrator : mOreProcessing) {
tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack));
}
}
} }
public final String mLocalizedMaterialPre, mLocalizedMaterialPost; public final String mLocalizedMaterialPre, mLocalizedMaterialPost;

View file

@ -3,7 +3,6 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
import java.util.List; import java.util.List;
@ -19,7 +18,7 @@ public class GT_Crowbar_Item extends GT_Tool_Item {
public GT_Crowbar_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { public GT_Crowbar_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) {
super(aUnlocalized, "item.GT_Crowbar.tooltip_main", aMaxDamage, aEntityDamage, true, -1, -1, 5, 20.0F); super(aUnlocalized, "item.GT_Crowbar.tooltip_main", aMaxDamage, aEntityDamage, true, -1, -1, 5, 20.0F);
GregTech_API.registerCrowbar(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerCrowbar(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolCrowbar, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDict(GT_ToolDictNames.craftingToolCrowbar, GregTech_API.ITEM_WILDCARD_DAMAGE);
addToBlockList(Blocks.rail); addToBlockList(Blocks.rail);
addToBlockList(Blocks.golden_rail); addToBlockList(Blocks.golden_rail);
addToBlockList(Blocks.detector_rail); addToBlockList(Blocks.detector_rail);

View file

@ -2,14 +2,12 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_OreDictUnificator;
import net.minecraft.item.ItemStack;
public class GT_File_Item extends GT_Tool_Item { public class GT_File_Item extends GT_Tool_Item {
public GT_File_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { public GT_File_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) {
super(aUnlocalized, "item.GT_File_Item.tooltip_main", aMaxDamage, aEntityDamage, true); super(aUnlocalized, "item.GT_File_Item.tooltip_main", aMaxDamage, aEntityDamage, true);
//GregTech_API.registerFile(new ItemStack(itemID, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); //GregTech_API.registerFile(new ItemStack(itemID, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolFile, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDict(GT_ToolDictNames.craftingToolFile, GregTech_API.ITEM_WILDCARD_DAMAGE);
setUsageAmounts(1, 3, 2); setUsageAmounts(1, 3, 2);
} }
} }

View file

@ -30,11 +30,15 @@ public class GT_Generic_Item extends Item {
// if (GT_Utility.isStringValid(aEnglishTooltip)) GT_LanguageManager.addStringLocalization(mTooltip = getUnlocalizedName() + ".tooltip_main", aEnglishTooltip, aWriteToolTipIntoLangFile); else mTooltip = null; // if (GT_Utility.isStringValid(aEnglishTooltip)) GT_LanguageManager.addStringLocalization(mTooltip = getUnlocalizedName() + ".tooltip_main", aEnglishTooltip, aWriteToolTipIntoLangFile); else mTooltip = null;
} }
public final GT_Generic_Item registerAtOreDict(String aName, short aDamage) { public final GT_Generic_Item registerAtOreDict(Object aName, short aDamage) {
GT_OreDictUnificator.registerOre(aName, new ItemStack(this, 1, aDamage)); GT_OreDictUnificator.registerOreLater(aName, new ItemStack(this, 1, aDamage));
return this; return this;
} }
public final GT_Generic_Item registerAtOreDictWildcard(Object aName) {
return registerAtOreDict(aName, GregTech_API.ITEM_WILDCARD_DAMAGE);
}
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister aIconRegister) { public void registerIcons(IIconRegister aIconRegister) {

View file

@ -23,7 +23,7 @@ public class GT_HardHammer_Item extends GT_Tool_Item {
public GT_HardHammer_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { public GT_HardHammer_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) {
super(aUnlocalized, "item.GT_Hammer.tooltip", aMaxDamage, aEntityDamage, true); super(aUnlocalized, "item.GT_Hammer.tooltip", aMaxDamage, aEntityDamage, true);
GregTech_API.registerHardHammer(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerHardHammer(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolHardHammer, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDict(GT_ToolDictNames.craftingToolHardHammer, GregTech_API.ITEM_WILDCARD_DAMAGE);
addToEffectiveList(EntityIronGolem.class.getName()); addToEffectiveList(EntityIronGolem.class.getName());
addToEffectiveList("EntityTFTowerGolem"); addToEffectiveList("EntityTFTowerGolem");
addToEffectiveList("EntityGolemBase"); addToEffectiveList("EntityGolemBase");

View file

@ -88,9 +88,9 @@ public abstract class GT_MetaGenerated_Item extends GT_Generic_Item implements I
String tOreName = getOreDictString(tPrefix, tMaterial); String tOreName = getOreDictString(tPrefix, tMaterial);
tPrefix = OrePrefixes.getOrePrefix(tOreName); tPrefix = OrePrefixes.getOrePrefix(tOreName);
if (tPrefix != null && tPrefix.mIsUnificatable) { if (tPrefix != null && tPrefix.mIsUnificatable) {
GT_OreDictUnificator.set(tOreName, new ItemStack(this, 1, i)); GT_OreDictUnificator.setLater(tOreName, new ItemStack(this, 1, i));
} else { } else {
GT_OreDictUnificator.registerOre(tOreName, new ItemStack(this, 1, i)); registerAtOreDict(tOreName, (short)i);
} }
} }
} }

View file

@ -3,7 +3,6 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -12,7 +11,7 @@ public class GT_Saw_Item extends GT_Tool_Item {
public GT_Saw_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { public GT_Saw_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) {
super(aUnlocalized, "item.GT_Saw_Bronze.tooltip_main", aMaxDamage, aEntityDamage, true, -1, aDisChargedGTID, aToolQuality, aToolStrength); super(aUnlocalized, "item.GT_Saw_Bronze.tooltip_main", aMaxDamage, aEntityDamage, true, -1, aDisChargedGTID, aToolQuality, aToolStrength);
//GregTech_API.registerSaw(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); //GregTech_API.registerSaw(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSaw, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDict(GT_ToolDictNames.craftingToolSaw, GregTech_API.ITEM_WILDCARD_DAMAGE);
if (GT_ModHandler.isElectricItem(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE))) setSilkyness(1); if (GT_ModHandler.isElectricItem(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE))) setSilkyness(1);
addToMaterialList(Material.leaves); addToMaterialList(Material.leaves);
addToMaterialList(Material.plants); addToMaterialList(Material.plants);

View file

@ -1,14 +1,11 @@
package gregtechmod.api.items; package gregtechmod.api.items;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_OreDictUnificator;
import net.minecraft.item.ItemStack;
public class GT_Scoop_Item extends GT_Tool_Item { public class GT_Scoop_Item extends GT_Tool_Item {
public GT_Scoop_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { public GT_Scoop_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) {
super(aUnlocalized, "item.GT_Scoop_Item.tooltip", aMaxDamage, aEntityDamage, true, -1, aDisChargedGTID, aToolQuality, aToolStrength); super(aUnlocalized, "item.GT_Scoop_Item.tooltip", aMaxDamage, aEntityDamage, true, -1, aDisChargedGTID, aToolQuality, aToolStrength);
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolScoop, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDictWildcard(GT_ToolDictNames.craftingToolScoop);
addToOreDictList("beeHive"); addToOreDictList("beeHive");
setToolClasses("scoop"); setToolClasses("scoop");
setUsageAmounts(1, 1, 1); setUsageAmounts(1, 1, 1);

View file

@ -3,7 +3,6 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
import java.util.List; import java.util.List;
@ -21,7 +20,7 @@ public class GT_Screwdriver_Item extends GT_Tool_Item {
public GT_Screwdriver_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { public GT_Screwdriver_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) {
super(aUnlocalized, "item.GT_Screwdriver.tooltip_main", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); super(aUnlocalized, "item.GT_Screwdriver.tooltip_main", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID);
GregTech_API.registerScrewdriver(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerScrewdriver(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolScrewdriver, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDictWildcard(GT_ToolDictNames.craftingToolScrewdriver);
addToEffectiveList(EntityCaveSpider.class.getName()); addToEffectiveList(EntityCaveSpider.class.getName());
addToEffectiveList(EntitySpider.class.getName()); addToEffectiveList(EntitySpider.class.getName());
addToEffectiveList("EntityTFHedgeSpider"); addToEffectiveList("EntityTFHedgeSpider");

View file

@ -3,7 +3,6 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
import java.util.List; import java.util.List;
@ -20,7 +19,7 @@ public class GT_SoftHammer_Item extends GT_Tool_Item {
public GT_SoftHammer_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { public GT_SoftHammer_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) {
super(aUnlocalized, "item.GT_Hammer_Rubber.tooltip_main", aMaxDamage, aEntityDamage, true); super(aUnlocalized, "item.GT_Hammer_Rubber.tooltip_main", aMaxDamage, aEntityDamage, true);
GregTech_API.registerSoftHammer(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerSoftHammer(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSoftHammer, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDictWildcard(GT_ToolDictNames.craftingToolSoftHammer);
setCraftingSound(GregTech_API.sSoundList.get(101)); setCraftingSound(GregTech_API.sSoundList.get(101));
setBreakingSound(GregTech_API.sSoundList.get(101)); setBreakingSound(GregTech_API.sSoundList.get(101));
setEntityHitSound(GregTech_API.sSoundList.get(101)); setEntityHitSound(GregTech_API.sSoundList.get(101));

View file

@ -2,14 +2,13 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_OreDictUnificator;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class GT_SolderingMetal_Item extends GT_Tool_Item { public class GT_SolderingMetal_Item extends GT_Tool_Item {
public GT_SolderingMetal_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { public GT_SolderingMetal_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) {
super(aUnlocalized, "item.GT_SolderingLead.tooltip_main", aMaxDamage, aEntityDamage, false); super(aUnlocalized, "item.GT_SolderingLead.tooltip_main", aMaxDamage, aEntityDamage, false);
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSolderingMetal, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GregTech_API.registerSolderingMetal(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerSolderingMetal(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
registerAtOreDictWildcard(GT_ToolDictNames.craftingToolSolderingMetal);
setUsageAmounts(1, 3, 1); setUsageAmounts(1, 3, 1);
} }
} }

View file

@ -2,8 +2,6 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_OreDictUnificator;
import java.util.List; import java.util.List;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
@ -14,7 +12,7 @@ import net.minecraft.world.World;
public class GT_SolderingTool_Item extends GT_Tool_Item { public class GT_SolderingTool_Item extends GT_Tool_Item {
public GT_SolderingTool_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { public GT_SolderingTool_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) {
super(aUnlocalized, "item.Soldering_Iron.tooltip", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); super(aUnlocalized, "item.Soldering_Iron.tooltip", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID);
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSolderingIron, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDictWildcard(GT_ToolDictNames.craftingToolSolderingIron);
GregTech_API.registerSolderingTool(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerSolderingTool(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
setCraftingSound(GregTech_API.sSoundList.get(103)); setCraftingSound(GregTech_API.sSoundList.get(103));
setBreakingSound(GregTech_API.sSoundList.get(103)); setBreakingSound(GregTech_API.sSoundList.get(103));

View file

@ -4,7 +4,6 @@ import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.Dyes; import gregtechmod.api.enums.Dyes;
import gregtechmod.api.enums.GT_Items; import gregtechmod.api.enums.GT_Items;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
import java.util.List; import java.util.List;
@ -23,7 +22,7 @@ public class GT_Spray_Color_Item extends GT_Tool_Item {
public GT_Spray_Color_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, byte aColorMeta) { public GT_Spray_Color_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, byte aColorMeta) {
super(aUnlocalized, "item.GT_Spray_Color_Item.tooltip_1", aMaxDamage, aEntityDamage, true); super(aUnlocalized, "item.GT_Spray_Color_Item.tooltip_1", aMaxDamage, aEntityDamage, true);
GT_OreDictUnificator.registerOre(Dyes.get(mColorMeta = aColorMeta), new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDictWildcard(Dyes.get(mColorMeta = aColorMeta));
setCraftingSound(GregTech_API.sSoundList.get(102)); setCraftingSound(GregTech_API.sSoundList.get(102));
setBreakingSound(GregTech_API.sSoundList.get(102)); setBreakingSound(GregTech_API.sSoundList.get(102));
setEntityHitSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102));

View file

@ -154,11 +154,6 @@ public class GT_Tool_Item extends GT_Generic_Item {
return this; return this;
} }
public final GT_Tool_Item registerAtOreDict(Object aName) {
GT_OreDictUnificator.registerOre(aName, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
return this;
}
public void setMode(ItemStack aStack, int aMode) { public void setMode(ItemStack aStack, int aMode) {
NBTTagCompound tNBT = aStack.getTagCompound(); NBTTagCompound tNBT = aStack.getTagCompound();
if (tNBT == null) { if (tNBT == null) {

View file

@ -3,7 +3,6 @@ package gregtechmod.api.items;
import gregtechmod.api.GregTech_API; import gregtechmod.api.GregTech_API;
import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.enums.GT_ToolDictNames;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
import java.util.Arrays; import java.util.Arrays;
@ -25,7 +24,7 @@ public class GT_Wrench_Item extends GT_Tool_Item {
public GT_Wrench_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { public GT_Wrench_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) {
super(aUnlocalized, "item.GT_Wrech.tooltip", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); super(aUnlocalized, "item.GT_Wrech.tooltip", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID);
GregTech_API.registerWrench(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerWrench(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE));
GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolWrench, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); registerAtOreDictWildcard(GT_ToolDictNames.craftingToolWrench);
addToEffectiveList(EntityIronGolem.class.getName()); addToEffectiveList(EntityIronGolem.class.getName());
addToEffectiveList("EntityTFTowerGolem"); addToEffectiveList("EntityTFTowerGolem");
addToEffectiveList("EntityGolemBase"); addToEffectiveList("EntityGolemBase");

View file

@ -39,6 +39,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
@Override @Override
public void onPostTick() { public void onPostTick() {
if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) {
List<GT_Recipe> kek = getRecipes();
if (mFluid == null) { if (mFluid == null) {
if (getBaseMetaTileEntity().getUniversalEnergyStored() < getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()) { if (getBaseMetaTileEntity().getUniversalEnergyStored() < getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()) {
mInventory[getStackDisplaySlot()] = null; mInventory[getStackDisplaySlot()] = null;

View file

@ -6,6 +6,7 @@ import gregtechmod.api.enums.OrePrefixes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map.Entry;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -24,11 +25,24 @@ public class GT_OreDictUnificator {
public static volatile int VERSION = 408; public static volatile int VERSION = 408;
private static final HashMap<String, ItemStack> sName2OreMap = new HashMap<String, ItemStack>(); private static final HashMap<String, ItemStack> sName2OreMap = new HashMap<String, ItemStack>();
private static final HashMap<ItemStack, String> sToRegister = new HashMap<ItemStack, String>();
private static final HashMap<Integer, String> sItemhash2NameMap = new HashMap<Integer, String>(); private static final HashMap<Integer, String> sItemhash2NameMap = new HashMap<Integer, String>();
private static final ArrayList<Integer> sBlackList = new ArrayList<Integer>(); private static final ArrayList<Integer> sBlackList = new ArrayList<Integer>();
private static int isRegisteringOre = 0, isAddingOre = 0; private static int isRegisteringOre = 0, isAddingOre = 0;
public static void activateUnificator() {
GT_Log.log.info("Registering oredictionary tags...");
for (Entry<ItemStack, String> entry : sToRegister.entrySet()) {
OreDictionary.registerOre(entry.getValue(), entry.getKey());
if (GregTech_API.DEBUG_MODE) {
GT_Log.log.info("Registering " + entry.getValue() + " ore");
}
}
sToRegister.clear();
}
/** /**
* The Blacklist just prevents the Item from being Unificated into something else. * The Blacklist just prevents the Item from being Unificated into something else.
* Useful if you have things like the Industrial Diamond, which is better than regular Diamond, but also placeable in absolutely all Diamond Recipes. * Useful if you have things like the Industrial Diamond, which is better than regular Diamond, but also placeable in absolutely all Diamond Recipes.
@ -49,6 +63,14 @@ public class GT_OreDictUnificator {
set(aName, aStack, false, false); set(aName, aStack, false, false);
} }
public static void addLater(Object aName, ItemStack aStack) {
setLater(aName, aStack);
}
public static void addLater(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) {
setLater(aPrefix.get(aMaterial), aStack);
}
public static void set(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) { public static void set(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) {
set(aPrefix.get(aMaterial), aStack); set(aPrefix.get(aMaterial), aStack);
} }
@ -69,6 +91,22 @@ public class GT_OreDictUnificator {
isAddingOre--; isAddingOre--;
} }
public static void setLater(Object aName, ItemStack aStack) {
setLater(aName, aStack, true, false);
}
public static void setLater(Object aName, ItemStack aStack, boolean aOverwrite, boolean aAlreadyRegistered) {
if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack) || Items.feather.getDamage(aStack) == GregTech_API.ITEM_WILDCARD_DAMAGE) return;
isAddingOre++;
aStack = GT_Utility.copyAmount(1, aStack);
if (!aAlreadyRegistered) sToRegister.put(aStack, aName.toString());
addAssociation(aName, aStack);
if (aOverwrite || GT_Utility.isStackInvalid(sName2OreMap.get(aName.toString()))) {
sName2OreMap.put(aName.toString(), aStack);
}
isAddingOre--;
}
public static ItemStack getFirstOre(Object aName, long aAmount) { public static ItemStack getFirstOre(Object aName, long aAmount) {
if (GT_Utility.isStringInvalid(aName)) return null; if (GT_Utility.isStringInvalid(aName)) return null;
if (GT_Utility.isStackValid(sName2OreMap.get(aName.toString()))) return GT_Utility.copyAmount(aAmount, sName2OreMap.get(aName.toString())); if (GT_Utility.isStackValid(sName2OreMap.get(aName.toString()))) return GT_Utility.copyAmount(aAmount, sName2OreMap.get(aName.toString()));
@ -181,6 +219,22 @@ public class GT_OreDictUnificator {
return true; return true;
} }
public static boolean registerOreLater(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) {
return registerOreLater(aPrefix.get(aMaterial), aStack);
}
public static boolean registerOreLater(Object aName, ItemStack aStack) {
if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack)) return false;
String tName = aName.toString();
if (tName.equals("")) return false;
ArrayList<ItemStack> tList = getOres(tName);
for (int i = 0; i < tList.size(); i++) if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) return false;
isRegisteringOre++;
sToRegister.put(GT_Utility.copyAmount(1, aStack), tName);
isRegisteringOre--;
return true;
}
public static boolean isRegisteringOres() { public static boolean isRegisteringOres() {
return isRegisteringOre > 0; return isRegisteringOre > 0;
} }

View file

@ -660,7 +660,7 @@ public class GT_Utility {
public static FluidStack getFluidForFilledItem(ItemStack aStack) { public static FluidStack getFluidForFilledItem(ItemStack aStack) {
if (isStackInvalid(aStack)) return null; if (isStackInvalid(aStack)) return null;
if (aStack.getItem() instanceof IFluidContainerItem) return ((IFluidContainerItem)aStack.getItem()).drain(copyAmount(1, aStack), Integer.MAX_VALUE, true); if (aStack.getItem() instanceof IFluidContainerItem) return ((IFluidContainerItem) aStack.getItem()).drain(aStack, Integer.MAX_VALUE, false);
FluidStack rFluid = FluidContainerRegistry.getFluidForFilledItem(aStack); FluidStack rFluid = FluidContainerRegistry.getFluidForFilledItem(aStack);
if (rFluid != null) return rFluid.copy(); if (rFluid != null) return rFluid.copy();
return null; return null;
@ -981,13 +981,28 @@ public class GT_Utility {
} }
public static ItemStack copyAmount(long aAmount, Object... aStacks) { public static ItemStack copyAmount(long aAmount, Object... aStacks) {
ItemStack rStack = copy((ItemStack[])aStacks); ItemStack rStack = copy(GT_Utility.cast(aStacks));
if (isStackInvalid(rStack)) return null; if (isStackInvalid(rStack)) return null;
if (aAmount > 64) aAmount = 64; else if (aAmount == -1) aAmount = 111; else if (aAmount < 0) aAmount = 0; if (aAmount > 64) aAmount = 64; else if (aAmount == -1) aAmount = 111; else if (aAmount < 0) aAmount = 0;
rStack.stackSize = (byte)aAmount; rStack.stackSize = (byte)aAmount;
return rStack; return rStack;
} }
public static ItemStack[] cast(Object...objects) {
Objects.requireNonNull(objects);
ItemStack[] result = new ItemStack[objects.length];
try {
for (int i = 0; i < objects.length; i++)
result[i] = (ItemStack) objects[i];
} catch (ClassCastException e) {
GT_Log.log.throwing(e);
throw new IllegalArgumentException("Array can not contain not ItemStacks!");
}
return result;
}
public static ItemStack copyMetaData(long aMetaData, ItemStack... aStacks) { public static ItemStack copyMetaData(long aMetaData, ItemStack... aStacks) {
ItemStack rStack = copy(aStacks); ItemStack rStack = copy(aStacks);
if (isStackInvalid(rStack)) return null; if (isStackInvalid(rStack)) return null;
@ -1013,7 +1028,7 @@ public class GT_Utility {
} }
public static ItemStack mul(long aMultiplier, Object... aStacks) { public static ItemStack mul(long aMultiplier, Object... aStacks) {
return GT_Utility.mul(aMultiplier, (ItemStack[])aStacks); return GT_Utility.mul(aMultiplier, GT_Utility.cast(aStacks));
} }
/** /**

View file

@ -18,17 +18,13 @@ import gregtechmod.api.util.GT_Utility;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Spliterator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.function.Consumer;
import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
@ -46,7 +42,7 @@ public class GT_OreDictHandler {
public final List<ItemStack> mRegisteredStacks = new ArrayList<>(); public final List<ItemStack> mRegisteredStacks = new ArrayList<>();
private boolean mActivated = false; private boolean mActivated = false;
@EventHandler @SubscribeEvent
public void registerOre(OreRegisterEvent aEvent) { public void registerOre(OreRegisterEvent aEvent) {
if (GT_Mod.mDoNotInit || aEvent == null || aEvent.Ore == null || aEvent.Ore.getItem() == null || aEvent.Name == null || aEvent.Name.equals("") || mIgnoredNames.contains(aEvent.Name)) return; if (GT_Mod.mDoNotInit || aEvent == null || aEvent.Ore == null || aEvent.Ore.getItem() == null || aEvent.Name == null || aEvent.Name.equals("") || mIgnoredNames.contains(aEvent.Name)) return;
@ -511,24 +507,20 @@ public class GT_OreDictHandler {
/** /**
* Gets called during the PostLoad-Phase * Gets called during the PostLoad-Phase
*/ */
public void activateHandler() { public void activateHandler() {
mActivated = true; mActivated = true;
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
Spliterator<Entry<OreRegisterEvent, String>> splt = mEvents.entrySet().spliterator();
Spliterator<Entry<OreRegisterEvent, String>> splt1 = splt.trySplit();
ExecutorService serv = Executors.newFixedThreadPool(2);
Consumer<Spliterator<Entry<OreRegisterEvent, String>>> toExecute = sp -> {
while (sp.tryAdvance(tEvent -> {
this.registerRecipes(tEvent.getKey(), tEvent.getValue());
}));
};
serv.submit(() -> toExecute.accept(splt)); int counter = mEvents.size();
if (splt1 != null) serv.submit(() -> toExecute.accept(splt1)); GT_Log.log.warn("There is " + counter + " events to be registered");
serv.shutdown(); Iterator<Entry<OreRegisterEvent, String>> iter = mEvents.entrySet().iterator();
while (!serv.isTerminated()) try {
Thread.sleep(50); while (iter.hasNext()) {
} catch (InterruptedException ingored) {} if (GregTech_API.DEBUG_MODE) GT_Log.log.warn("Events left: " + counter--);
Entry<OreRegisterEvent, String> temp = iter.next();
this.registerRecipes(temp.getKey(), temp.getValue());
}
GT_Log.log.warn(String.format("Time spent for oredict iterating: %.3f seconds", (System.currentTimeMillis() - time) / 1000.0D)); GT_Log.log.warn(String.format("Time spent for oredict iterating: %.3f seconds", (System.currentTimeMillis() - time) / 1000.0D));
} }

View file

@ -4,7 +4,6 @@ import gregtechmod.api.GregTech_API;
import gregtechmod.api.util.GT_Config; import gregtechmod.api.util.GT_Config;
import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_OreDictUnificator;
import gregtechmod.api.util.GT_Utility; import gregtechmod.api.util.GT_Utility;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;

View file

@ -28,9 +28,9 @@ public class GT_MetaItem_Cell extends GT_MetaItem_Abstract {
GT_ModHandler.addExtractionRecipe(instance.getUnunifiedStack(aMeta, 1), GT_ModHandler.getEmptyCell(1)); GT_ModHandler.addExtractionRecipe(instance.getUnunifiedStack(aMeta, 1), GT_ModHandler.getEmptyCell(1));
if (aPlasma) if (aPlasma)
GT_OreDictUnificator.add(OrePrefixes.cellPlasma, aMaterial, instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.cellPlasma, aMaterial, instance.getUnunifiedStack(aMeta, 1));
else else
GT_OreDictUnificator.add(OrePrefixes.cell, aMaterial, instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.cell, aMaterial, instance.getUnunifiedStack(aMeta, 1));
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);
} }

View file

@ -23,7 +23,7 @@ public class GT_MetaItem_Component extends GT_MetaItem_Abstract {
instance.mToolTipList[aMeta] = aToolTip; instance.mToolTipList[aMeta] = aToolTip;
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null && !aMaterial.equals("")) { if (aMaterial != null && !aMaterial.equals("")) {
GT_OreDictUnificator.registerOre(aMaterial, instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.registerOreLater(aMaterial, instance.getUnunifiedStack(aMeta, 1));
} }
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);

View file

@ -25,7 +25,7 @@ public class GT_MetaItem_DirtyDust extends GT_MetaItem_Abstract {
instance.mGlowList[aMeta] = aGlow; instance.mGlowList[aMeta] = aGlow;
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null) { if (aMaterial != null) {
GT_OreDictUnificator.add(OrePrefixes.dustDirty, aMaterial, instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.dustDirty, aMaterial, instance.getUnunifiedStack(aMeta, 1));
} }
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);
} }

View file

@ -24,7 +24,7 @@ public class GT_MetaItem_Dust extends GT_MetaItem_Abstract {
instance.mGlowList[aMeta] = aGlow; instance.mGlowList[aMeta] = aGlow;
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null) { if (aMaterial != null) {
GT_OreDictUnificator.add(OrePrefixes.dust.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.dust, aMaterial, instance.getUnunifiedStack(aMeta, 1));
} }
GT_MetaItem_SmallDust.addItem(aMeta, aName, aMaterial, aGlow); GT_MetaItem_SmallDust.addItem(aMeta, aName, aMaterial, aGlow);
GT_MetaItem_DirtyDust.addItem(aMeta, aName, aMaterial, aGlow); GT_MetaItem_DirtyDust.addItem(aMeta, aName, aMaterial, aGlow);

View file

@ -26,9 +26,9 @@ public class GT_MetaItem_Material extends GT_MetaItem_Abstract {
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null && aPrefix != null) { if (aMaterial != null && aPrefix != null) {
if (aPrefix.mIsUnificatable) if (aPrefix.mIsUnificatable)
GT_OreDictUnificator.add(aPrefix.get((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(aPrefix, ((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1));
else else
GT_OreDictUnificator.registerOre(aPrefix.get((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.registerOreLater(aPrefix.get((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1));
} }
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);
} }

View file

@ -25,7 +25,7 @@ public class GT_MetaItem_Nugget extends GT_MetaItem_Abstract {
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null) { if (aMaterial != null) {
GT_OreDictUnificator.add(OrePrefixes.nugget.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.nugget, aMaterial, instance.getUnunifiedStack(aMeta, 1));
} }
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);
} }

View file

@ -24,7 +24,7 @@ public class GT_MetaItem_SmallDust extends GT_MetaItem_Abstract {
instance.mGlowList[aMeta] = aGlow; instance.mGlowList[aMeta] = aGlow;
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null) { if (aMaterial != null) {
GT_OreDictUnificator.add(OrePrefixes.dustSmall.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.dustSmall, aMaterial, instance.getUnunifiedStack(aMeta, 1));
} }
GT_MetaItem_TinyDust.addItem(aMeta, aName, aMaterial, aGlow); GT_MetaItem_TinyDust.addItem(aMeta, aName, aMaterial, aGlow);
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);

View file

@ -24,7 +24,7 @@ public class GT_MetaItem_TinyDust extends GT_MetaItem_Abstract {
instance.mGlowList[aMeta] = aGlow; instance.mGlowList[aMeta] = aGlow;
instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta);
if (aMaterial != null) { if (aMaterial != null) {
GT_OreDictUnificator.add(OrePrefixes.dustTiny.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); GT_OreDictUnificator.addLater(OrePrefixes.dustTiny, aMaterial, instance.getUnunifiedStack(aMeta, 1));
} }
return instance.getUnunifiedStack(aMeta, 1); return instance.getUnunifiedStack(aMeta, 1);
} }

View file

@ -1,142 +1,54 @@
package gregtechmod.common.tileentities.energy.production; package gregtechmod.common.tileentities.energy.production;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtechmod.api.enums.GT_Items;
import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.interfaces.IGregTechTileEntity;
import gregtechmod.api.metatileentity.MetaTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity;
import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator;
import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_ModHandler;
import gregtechmod.api.util.GT_Recipe; import gregtechmod.api.util.GT_Recipe;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicTank { public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicGenerator {
public GT_MetaTileEntity_DieselGenerator(int aID, String mName) { public GT_MetaTileEntity_DieselGenerator(int aID, String aName) {
super(aID, mName); super(aID, aName);
} }
public GT_MetaTileEntity_DieselGenerator() { public GT_MetaTileEntity_DieselGenerator() {}
}
@Override public boolean isSimpleMachine() {return false;}
@Override public boolean isValidSlot(int aIndex) {return aIndex < 2;}
@Override public boolean isFacingValid(byte aFacing) {return aFacing > 1;} @Override public boolean isFacingValid(byte aFacing) {return aFacing > 1;}
@Override public boolean isEnetOutput() {return true;} @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 12 : 0;}
@Override public boolean isOutputFacing(byte aSide) {return true;} @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 117);}
@Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?12:0;} @Override public List<GT_Recipe> getRecipes() {return GT_Recipe.sDieselFuels;}
@Override public int maxEUStore() {return 1000000;} @Override public int getEfficiency() {return 100;}
@Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 117);}
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override @Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_DieselGenerator(); return new GT_MetaTileEntity_DieselGenerator();
} }
@Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean displaysItemStack() {return true;}
@Override public boolean displaysStackSize() {return false;}
@Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);}
@Override
public void onPostTick() {
if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) {
if (mFluid == null) {
if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()))
mInventory[2] = null;
else
if (mInventory[2] == null)
mInventory[2] = new ItemStack(Blocks.fire, 1);
} else {
if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--;
}
}
if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) {
for (int i = 0; i < GT_Recipe.sDieselFuels.size(); i++) {
if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sDieselFuels.get(i).mInputs[0])) {
if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) {
if (GT_Recipe.sDieselFuels.get(i).getOutput(0) != null) {
if (mInventory[1] == null) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDieselFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1] = GT_Utility.copy(GT_Recipe.sDieselFuels.get(i).getOutput(0));
}
} else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sDieselFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sDieselFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDieselFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1].stackSize += GT_Recipe.sDieselFuels.get(i).getOutput(0).stackSize;
}
}
} else {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDieselFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
}
}
}
break;
}
}
int tValue = 0;
if (mInventory[0] != null && (mInventory[1] == null || (GT_Utility.areStacksEqual(mInventory[1], GT_ModHandler.getEmptyFuelCan(1)) && mInventory[1].stackSize < 64)) && (tValue = GT_ModHandler.getFuelCanValue(mInventory[0])) > 0) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits((tValue*5)/4, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
if (mInventory[1] == null)
mInventory[1] = GT_ModHandler.getEmptyFuelCan(1);
else
mInventory[1].stackSize++;
}
}
}
}
if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU());
}
public boolean isValidFuel(FluidStack aLiquid) {
return getFuelValue(aLiquid)>0;
}
/**
* @return EU per MB
*/
public int getFuelValue(FluidStack aLiquid) {
if (aLiquid == null) return 0;
FluidStack tLiquid;
for (int i = 0; i < GT_Recipe.sDieselFuels.size(); i++) {
if ((tLiquid = GT_Utility.getFluidForFilledItem(GT_Recipe.sDieselFuels.get(i).getOutput(0))) != null) if (aLiquid.isFluidEqual(tLiquid)) return GT_Recipe.sDieselFuels.get(i).mStartEU;
}
return 0;
}
@Override @Override
public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
if (aSide == 0) return aSide == 0 ? 38
return 38; : (aSide != 1 ? 36 : (aFacing != 2 && aFacing != 3 ? (aActive ? 303 : 302) : (aActive ? 281 : 80)));
else if (aSide == 1)
return aFacing==2||aFacing==3?aActive?281:80:aActive?303:302;
else
return 36;
} }
@Override @Override
public String getDescription() { public String getDescription() {
return "The second most effective Way of burning Fuel"; return "The burning Fuel as " + this.getEfficiency() + "% Efficiency";
} }
@Override @Override
public int getCapacity() { public int getFuelValue(ItemStack aStack) {
return 10000; int rValue = Math.max(GT_ModHandler.getFuelCanValue(aStack) * 6 / 5, super.getFuelValue(aStack));
if (GT_Items.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) {
rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3);
} }
@Override return rValue;
public int getTankPressure() {
return -100;
} }
} }

View file

@ -15,36 +15,24 @@ public class GT_MetaTileEntity_GasTurbine extends GT_MetaTileEntity_BasicGenerat
public GT_MetaTileEntity_GasTurbine() {} public GT_MetaTileEntity_GasTurbine() {}
public boolean isFacingValid(byte aFacing) { @Override public boolean isFacingValid(byte aFacing) {return true;}
return true; @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 16 : 0;}
} @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 118);}
@Override public List<GT_Recipe> getRecipes() {return GT_Recipe.sTurbineFuels;}
public int maxEUOutput() { @Override public int getEfficiency() {return 75;}
return this.getBaseMetaTileEntity().isAllowedToWork()?16:0;
}
public void onRightclick(EntityPlayer aPlayer) {
this.getBaseMetaTileEntity().openGUI(aPlayer, 118);
}
@Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_GasTurbine(); return new GT_MetaTileEntity_GasTurbine();
} }
@Override
public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
return aSide == 0 ? 82 : (aSide == 1 ? 81 : 40); return aSide == 0 ? 82 : (aSide == 1 ? 81 : 40);
} }
@Override
public String getDescription() { public String getDescription() {
return "Generate Power from Flatulence, uhh I mean Methane (" + this.getEfficiency() + "%)"; return "Generate Power from Flatulence, uhh I mean Methane (" + this.getEfficiency() + "%)";
} }
@Override
public List<GT_Recipe> getRecipes() {
return GT_Recipe.sTurbineFuels;
}
public int getEfficiency() {
return 75;
}
} }

View file

@ -1,97 +1,46 @@
package gregtechmod.common.tileentities.energy.production; package gregtechmod.common.tileentities.energy.production;
import java.util.List;
import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.interfaces.IGregTechTileEntity;
import gregtechmod.api.metatileentity.MetaTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity;
import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator;
import gregtechmod.api.util.GT_Recipe; import gregtechmod.api.util.GT_Recipe;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.fluids.FluidStack;
import thaumcraft.common.blocks.BlockTaintFibres; import thaumcraft.common.blocks.BlockTaintFibres;
import thaumcraft.common.lib.utils.Utils; import thaumcraft.common.lib.utils.Utils;
import thaumcraft.common.lib.world.ThaumcraftWorldGenerator; import thaumcraft.common.lib.world.ThaumcraftWorldGenerator;
public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_BasicTank { public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_BasicGenerator {
public GT_MetaTileEntity_MagicEnergyConverter(int aID, String mName) { public GT_MetaTileEntity_MagicEnergyConverter(int aID, String aName) {
super(aID, mName); super(aID, aName);
} }
public GT_MetaTileEntity_MagicEnergyConverter() { public GT_MetaTileEntity_MagicEnergyConverter() {}
}
@Override public boolean isSimpleMachine() {return false;}
@Override public boolean isValidSlot(int aIndex) {return aIndex < 2;}
@Override public boolean isFacingValid(byte aFacing) {return true;} @Override public boolean isFacingValid(byte aFacing) {return true;}
@Override public boolean isEnetOutput() {return true;} @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 24 : 0;}
@Override public boolean isOutputFacing(byte aSide) {return true;} @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 125);}
@Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?24:0;} @Override public List<GT_Recipe> getRecipes() {return GT_Recipe.sMagicFuels;}
@Override public int maxEUStore() {return 1000000000;} @Override public int getEfficiency() {return 100;}
@Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 125);}
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override @Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_MagicEnergyConverter(); return new GT_MetaTileEntity_MagicEnergyConverter();
} }
@Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} @Override
@Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
@Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} return aSide == aFacing ? (aActive ? 86 : 83) : 90;
@Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} }
@Override public boolean displaysItemStack() {return true;}
@Override public boolean displaysStackSize() {return false;}
@Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);}
@Override @Override
public void onPostTick() { public String getDescription() {
if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { return "A Generator running off Magic Fuel (" + this.getEfficiency() + "%)";
if (mFluid == null) {
if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()))
mInventory[2] = null;
else
if (mInventory[2] == null)
mInventory[2] = new ItemStack(Blocks.fire, 1);
} else {
if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--;
}
}
if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) {
for (int i = 0; i < GT_Recipe.sMagicFuels.size(); i++) {
if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sMagicFuels.get(i).mInputs[0])) {
if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) {
if (GT_Recipe.sMagicFuels.get(i).getOutput(0) != null) {
if (mInventory[1] == null) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sMagicFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1] = GT_Utility.copy(GT_Recipe.sMagicFuels.get(i).getOutput(0));
}
} else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sMagicFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sMagicFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sMagicFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1].stackSize += GT_Recipe.sMagicFuels.get(i).getOutput(0).stackSize;
}
}
} else {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sMagicFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
}
}
}
break;
}
}
}
}
if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU());
} }
@Override @Override
@ -120,48 +69,4 @@ public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_Ba
} }
} catch(Throwable e) {} } catch(Throwable e) {}
} }
public boolean isValidFuel(FluidStack aFluid) {
return getFuelValue(aFluid)>0;
}
/**
* @return EU per MB
*/
public int getFuelValue(FluidStack aFluid) {
if (aFluid == null) return 0;
FluidStack tFluid;
for (int i = 0; i < GT_Recipe.sMagicFuels.size(); i++) {
if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sMagicFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return GT_Recipe.sMagicFuels.get(i).mStartEU;
}
return 0;
}
@Override
public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
if (aSide == aFacing)
return aActive?86:83;
else
return 90;
}
@Override
public boolean isGivingInformation() {
return true;
}
@Override
public int getCapacity() {
return 10000;
}
@Override
public String getDescription() {
return "A Generator running off Magic Fuel";
}
@Override
public int getTankPressure() {
return -100;
}
} }

View file

@ -1,127 +1,41 @@
package gregtechmod.common.tileentities.energy.production; package gregtechmod.common.tileentities.energy.production;
import java.util.List;
import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.interfaces.IGregTechTileEntity;
import gregtechmod.api.metatileentity.MetaTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity;
import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator;
import gregtechmod.api.util.GT_Recipe; import gregtechmod.api.util.GT_Recipe;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicTank { public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicGenerator {
public GT_MetaTileEntity_PlasmaGenerator(int aID, String mName) { public GT_MetaTileEntity_PlasmaGenerator(int aID, String aName) {
super(aID, mName); super(aID, aName);
} }
public GT_MetaTileEntity_PlasmaGenerator() { public GT_MetaTileEntity_PlasmaGenerator() {}
}
@Override public boolean isSimpleMachine() {return false;}
@Override public boolean isValidSlot(int aIndex) {return aIndex < 2;}
@Override public boolean isFacingValid(byte aFacing) {return true;} @Override public boolean isFacingValid(byte aFacing) {return true;}
@Override public boolean isEnetOutput() {return true;} @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 2048 : 0;}
@Override public boolean isOutputFacing(byte aSide) {return aSide == getBaseMetaTileEntity().getFrontFacing();} @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 121);}
@Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?2048:0;} @Override public List<GT_Recipe> getRecipes() {return GT_Recipe.sPlasmaFuels;}
@Override public int getEfficiency() {return 100;}
@Override public boolean isOutputFacing(byte aSide) {return aSide == this.getBaseMetaTileEntity().getFrontFacing();}
@Override public int maxEUStore() {return 1000000000;} @Override public int maxEUStore() {return 1000000000;}
@Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 121);}
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override @Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_PlasmaGenerator(); return new GT_MetaTileEntity_PlasmaGenerator();
} }
@Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean displaysItemStack() {return true;}
@Override public boolean displaysStackSize() {return false;}
@Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);}
@Override
public void onPostTick() {
if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) {
if (mFluid == null) {
if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()))
mInventory[2] = null;
else
if (mInventory[2] == null)
mInventory[2] = new ItemStack(Blocks.fire, 1);
} else {
if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--;
}
}
if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) {
for (int i = 0; i < GT_Recipe.sPlasmaFuels.size(); i++) {
if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sPlasmaFuels.get(i).mInputs[0])) {
if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) {
if (GT_Recipe.sPlasmaFuels.get(i).getOutput(0) != null) {
if (mInventory[1] == null) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sPlasmaFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1] = GT_Utility.copy(GT_Recipe.sPlasmaFuels.get(i).getOutput(0));
}
} else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sPlasmaFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sPlasmaFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sPlasmaFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1].stackSize += GT_Recipe.sPlasmaFuels.get(i).getOutput(0).stackSize;
}
}
} else {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sPlasmaFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
}
}
}
break;
}
}
}
}
if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU());
}
public boolean isValidFuel(FluidStack aFluid) {
return getFuelValue(aFluid)>0;
}
/**
* @return EU per MB
*/
public int getFuelValue(FluidStack aFluid) {
if (aFluid == null) return 0;
FluidStack tFluid;
for (int i = 0; i < GT_Recipe.sPlasmaFuels.size(); i++) {
if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sPlasmaFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return GT_Recipe.sPlasmaFuels.get(i).mStartEU;
}
return 0;
}
@Override @Override
public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
if (aSide == aFacing) return 18; return aSide == aFacing ? 18 : (aActive ? 20 : 19);
return aActive?20:19;
} }
@Override @Override
public String getDescription() { public String getDescription() {
return "Harness the immense Power of Plasma"; return "Harness " + this.getEfficiency() + "% of the immense Power of Plasma"; // TODO locale
}
@Override
public int getCapacity() {
return 10000;
}
@Override
public int getTankPressure() {
return -100;
} }
} }

View file

@ -1,131 +1,39 @@
package gregtechmod.common.tileentities.energy.production; package gregtechmod.common.tileentities.energy.production;
import java.util.List;
import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.interfaces.IGregTechTileEntity;
import gregtechmod.api.metatileentity.MetaTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity;
import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator;
import gregtechmod.api.util.GT_Recipe; import gregtechmod.api.util.GT_Recipe;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class GT_MetaTileEntity_SemifluidGenerator extends GT_MetaTileEntity_BasicTank { public class GT_MetaTileEntity_SemifluidGenerator extends GT_MetaTileEntity_BasicGenerator {
public GT_MetaTileEntity_SemifluidGenerator(int aID, String mName) { public GT_MetaTileEntity_SemifluidGenerator(int aID, String aName) {
super(aID, mName); super(aID, aName);
} }
public GT_MetaTileEntity_SemifluidGenerator() { public GT_MetaTileEntity_SemifluidGenerator() {}
}
@Override public boolean isSimpleMachine() {return false;}
@Override public boolean isValidSlot(int aIndex) {return aIndex < 2;}
@Override public boolean isFacingValid(byte aFacing) {return false;} @Override public boolean isFacingValid(byte aFacing) {return false;}
@Override public boolean isEnetOutput() {return true;} @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 8 : 0;}
@Override public boolean isOutputFacing(byte aSide) {return true;} @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 120);}
@Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?8:0;} @Override public List<GT_Recipe> getRecipes() {return GT_Recipe.sDenseLiquidFuels;}
@Override public int maxEUStore() {return 1000000;} @Override public int getEfficiency() {return 100;}
@Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 120);}
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override @Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_SemifluidGenerator(); return new GT_MetaTileEntity_SemifluidGenerator();
} }
@Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean displaysItemStack() {return true;}
@Override public boolean displaysStackSize() {return false;}
@Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);}
@Override
public void onPostTick() {
if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) {
if (mFluid == null) {
if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()))
mInventory[2] = null;
else
if (mInventory[2] == null)
mInventory[2] = new ItemStack(Blocks.fire, 1);
} else {
if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--;
}
}
if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) {
for (int i = 0; i < GT_Recipe.sDenseLiquidFuels.size(); i++) {
if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sDenseLiquidFuels.get(i).mInputs[0])) {
if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) {
if (GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0) != null) {
if (mInventory[1] == null) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDenseLiquidFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1] = GT_Utility.copy(GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0));
}
} else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDenseLiquidFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1].stackSize += GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0).stackSize;
}
}
} else {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDenseLiquidFuels.get(i).mStartEU*1000, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
}
}
}
break;
}
}
}
}
if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU());
}
public boolean isValidFuel(FluidStack aFluid) {
return getFuelValue(aFluid)>0;
}
/**
* @return EU per MB
*/
public int getFuelValue(FluidStack aFluid) {
if (aFluid == null) return 0;
FluidStack tFluid;
for (int i = 0; i < GT_Recipe.sDenseLiquidFuels.size(); i++) {
if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sDenseLiquidFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return GT_Recipe.sDenseLiquidFuels.get(i).mStartEU;
}
return 0;
}
@Override @Override
public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
if (aSide == 0) return aSide == 0 ? 38 : (aSide == 1 ? 29 : 85);
return 38;
else if (aSide == 1)
return 29;
else
return 85;
} }
@Override @Override
public String getDescription() { public String getDescription() {
return "Makes Energy of more dense Fluids"; return "Makes Energy of more dense Fluids (" + this.getEfficiency() + "%)"; // TODO locale
}
@Override
public int getCapacity() {
return 10000;
}
@Override
public int getTankPressure() {
return -100;
} }
} }

View file

@ -1,131 +1,39 @@
package gregtechmod.common.tileentities.energy.production; package gregtechmod.common.tileentities.energy.production;
import java.util.List;
import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.interfaces.IGregTechTileEntity;
import gregtechmod.api.metatileentity.MetaTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity;
import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator;
import gregtechmod.api.util.GT_Recipe; import gregtechmod.api.util.GT_Recipe;
import gregtechmod.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class GT_MetaTileEntity_ThermalGenerator extends GT_MetaTileEntity_BasicTank { public class GT_MetaTileEntity_ThermalGenerator extends GT_MetaTileEntity_BasicGenerator {
public GT_MetaTileEntity_ThermalGenerator(int aID, String mName) { public GT_MetaTileEntity_ThermalGenerator(int aID, String aName) {
super(aID, mName); super(aID, aName);
} }
public GT_MetaTileEntity_ThermalGenerator() { public GT_MetaTileEntity_ThermalGenerator() {}
}
@Override public boolean isSimpleMachine() {return false;}
@Override public boolean isValidSlot(int aIndex) {return aIndex < 2;}
@Override public boolean isFacingValid(byte aFacing) { return false;} @Override public boolean isFacingValid(byte aFacing) { return false;}
@Override public boolean isEnetOutput() {return true;} @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 24 : 0;}
@Override public boolean isOutputFacing(byte aSide) {return true;} @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 119);}
@Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?24:0;} @Override public List<GT_Recipe> getRecipes() {return GT_Recipe.sHotFuels;}
@Override public int maxEUStore() {return 1000000;} @Override public int getEfficiency() {return 80;}
@Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 119);}
@Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;}
@Override @Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GT_MetaTileEntity_ThermalGenerator(); return new GT_MetaTileEntity_ThermalGenerator();
} }
@Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();}
@Override public boolean displaysItemStack() {return true;}
@Override public boolean displaysStackSize() {return false;}
@Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);}
@Override
public void onPostTick() {
if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) {
if (mFluid == null) {
if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()))
mInventory[2] = null;
else
if (mInventory[2] == null)
mInventory[2] = new ItemStack(Blocks.fire, 1);
} else {
if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--;
}
}
if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) {
for (int i = 0; i < GT_Recipe.sHotFuels.size(); i++) {
if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sHotFuels.get(i).mInputs[0])) {
if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) {
if (GT_Recipe.sHotFuels.get(i).getOutput(0) != null) {
if (mInventory[1] == null) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sHotFuels.get(i).mStartEU*800, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1] = GT_Utility.copy(GT_Recipe.sHotFuels.get(i).getOutput(0));
}
} else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sHotFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sHotFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sHotFuels.get(i).mStartEU*800, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
mInventory[1].stackSize += GT_Recipe.sHotFuels.get(i).getOutput(0).stackSize;
}
}
} else {
if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sHotFuels.get(i).mStartEU*800, true)) {
getBaseMetaTileEntity().decrStackSize(0, 1);
}
}
}
break;
}
}
}
}
if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU());
}
public boolean isValidFuel(FluidStack aFluid) {
return getFuelValue(aFluid)>0;
}
/**
* @return EU per MB
*/
public int getFuelValue(FluidStack aFluid) {
if (aFluid == null) return 0;
FluidStack tFluid;
for (int i = 0; i < GT_Recipe.sHotFuels.size(); i++) {
if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sHotFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return (GT_Recipe.sHotFuels.get(i).mStartEU * 4) / 5;
}
return 0;
}
@Override @Override
public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
if (aSide == 0) return aSide == 0 ? 38 : (aSide == 1 ? (aActive ? 84 : 83) : 36);
return 38;
else if (aSide == 1)
return aActive?84:83;
else
return 36;
} }
@Override @Override
public String getDescription() { public String getDescription() {
return "Generates Energy from hot Stuff like Lava"; return "Generates Energy from Lava at " + this.getEfficiency() + "% Efficiency"; // TODO locale
}
@Override
public int getCapacity() {
return 10000;
}
@Override
public int getTankPressure() {
return -100;
} }
} }

View file

@ -18,7 +18,7 @@ import net.minecraft.item.ItemStack;
public class ProcessingCell implements IOreRecipeRegistrator { public class ProcessingCell implements IOreRecipeRegistrator {
public ProcessingCell() { public ProcessingCell() {
OrePrefixes.cell.add((IOreRecipeRegistrator)this); OrePrefixes.cell.add(this);
} }
public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {

View file

@ -29,8 +29,8 @@ public class ProcessingStoneVarious implements IOreRecipeRegistrator {
aStack.getItem().setMaxStackSize(GT_Mod.sBlockStackSize); aStack.getItem().setMaxStackSize(GT_Mod.sBlockStackSize);
} }
int meta = aStack.getItemDamage() < 0 && aStack.getItemDamage() >= 16?0:aStack.getItemDamage(); int meta = (aStack.getItemDamage() < 0 || aStack.getItemDamage() >= 16) ? 0 : aStack.getItemDamage();
int tHarvestLevel = aBlock.getHarvestTool(meta).equals("pickaxe") ? aBlock.getHarvestLevel(meta) : 0; int tHarvestLevel = "pickaxe".equals(aBlock.getHarvestTool(meta)) ? aBlock.getHarvestLevel(meta) : 0;
if(tHarvestLevel <= 3) { if(tHarvestLevel <= 3) {
GregTech_API.sRecipeAdder.addJackHammerMinableBlock(aBlock, tHarvestLevel >= 3); GregTech_API.sRecipeAdder.addJackHammerMinableBlock(aBlock, tHarvestLevel >= 3);
} }

View file

@ -120,7 +120,7 @@ public class GT_ItemLoader implements Runnable {
GT_MetaItem_Material.addItem( 35, "Chunk of Lazurite" , OrePrefixes.block , Materials.Lazurite , false); GT_MetaItem_Material.addItem( 35, "Chunk of Lazurite" , OrePrefixes.block , Materials.Lazurite , false);
GT_MetaItem_Material.addItem( 36, "Silicon Plate" , OrePrefixes.plate , Materials.Silicon , false); GT_MetaItem_Material.addItem( 36, "Silicon Plate" , OrePrefixes.plate , Materials.Silicon , false);
GT_MetaItem_Material.addItem( 37, "Olivine" , OrePrefixes.gem , Materials.Olivine , false); GT_MetaItem_Material.addItem( 37, "Olivine" , OrePrefixes.gem , Materials.Olivine , false);
GT_OreDictUnificator.add("gemPeridot", GT_MetaItem_Material.instance.getUnunifiedStack(37, 1)); GT_OreDictUnificator.addLater("gemPeridot", GT_MetaItem_Material.instance.getUnunifiedStack(37, 1));
GT_MetaItem_Material.addItem( 38, "Thorium Ingot" , OrePrefixes.ingot , Materials.Thorium , true); GT_MetaItem_Material.addItem( 38, "Thorium Ingot" , OrePrefixes.ingot , Materials.Thorium , true);
GT_MetaItem_Material.addItem( 39, "Plutonium Ingot" , OrePrefixes.ingot , Materials.Plutonium , true); GT_MetaItem_Material.addItem( 39, "Plutonium Ingot" , OrePrefixes.ingot , Materials.Plutonium , true);
GT_MetaItem_Material.addItem( 40, "Magnalium Ingot" , OrePrefixes.ingot , Materials.Magnalium , false); GT_MetaItem_Material.addItem( 40, "Magnalium Ingot" , OrePrefixes.ingot , Materials.Magnalium , false);
@ -133,7 +133,7 @@ public class GT_ItemLoader implements Runnable {
GT_MetaItem_Material.addItem( 47, "Kanthal Ingot" , OrePrefixes.ingot , Materials.Kanthal , false); GT_MetaItem_Material.addItem( 47, "Kanthal Ingot" , OrePrefixes.ingot , Materials.Kanthal , false);
GT_MetaItem_Material.addItem( 54, "Red Garnet" , OrePrefixes.gem , Materials.GarnetRed , false); GT_MetaItem_Material.addItem( 54, "Red Garnet" , OrePrefixes.gem , Materials.GarnetRed , false);
GT_OreDictUnificator.add("gemGarnet", GT_MetaItem_Material.instance.getUnunifiedStack(54, 1)); GT_OreDictUnificator.addLater("gemGarnet", GT_MetaItem_Material.instance.getUnunifiedStack(54, 1));
GT_MetaItem_Material.addItem( 55, "Yellow Garnet" , OrePrefixes.gem , Materials.GarnetYellow , false); GT_MetaItem_Material.addItem( 55, "Yellow Garnet" , OrePrefixes.gem , Materials.GarnetYellow , false);
GT_MetaItem_Material.addItem( 58, "Yellow Garnet Plate" , OrePrefixes.plate , Materials.GarnetYellow , false); GT_MetaItem_Material.addItem( 58, "Yellow Garnet Plate" , OrePrefixes.plate , Materials.GarnetYellow , false);
@ -521,19 +521,19 @@ public class GT_ItemLoader implements Runnable {
GT_MetaItem_Component.addItem(89, "Muffler Upgrade" , GT_OreDictNames.craftingMuffler , "Silents a Machine."); GT_MetaItem_Component.addItem(89, "Muffler Upgrade" , GT_OreDictNames.craftingMuffler , "Silents a Machine.");
GT_MetaItem_Component.addItem( 96, "Iron Gear" , "gearGtIron" , "An Iron Gear"); GT_MetaItem_Component.addItem( 96, "Iron Gear" , "gearGtIron" , "An Iron Gear");
GT_OreDictUnificator.registerOre("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 96, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 96, 1));
GT_MetaItem_Component.addItem( 97, "Bronze Gear" , "gearGtBronze" , "A Bronze Gear"); GT_MetaItem_Component.addItem( 97, "Bronze Gear" , "gearGtBronze" , "A Bronze Gear");
GT_OreDictUnificator.registerOre("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 97, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 97, 1));
GT_MetaItem_Component.addItem( 98, "Steel Gear" , "gearGtSteel" , "A Steel Gear"); GT_MetaItem_Component.addItem( 98, "Steel Gear" , "gearGtSteel" , "A Steel Gear");
GT_OreDictUnificator.registerOre("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack( 98, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack( 98, 1));
GT_MetaItem_Component.addItem( 99, "Titanium Gear" , "gearGtTitanium" , "A Titanium Gear"); GT_MetaItem_Component.addItem( 99, "Titanium Gear" , "gearGtTitanium" , "A Titanium Gear");
GT_OreDictUnificator.registerOre("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack( 99, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack( 99, 1));
GT_MetaItem_Component.addItem(100, "Tungstensteel Gear" , "gearGtTungstenSteel" , "A Tungstensteel Gear"); GT_MetaItem_Component.addItem(100, "Tungstensteel Gear" , "gearGtTungstenSteel" , "A Tungstensteel Gear");
GT_OreDictUnificator.registerOre("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack(100, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack(100, 1));
GT_MetaItem_Component.addItem(101, "Iridium Gear" , "gearGtIridium" , "An Iridium Gear"); GT_MetaItem_Component.addItem(101, "Iridium Gear" , "gearGtIridium" , "An Iridium Gear");
GT_OreDictUnificator.registerOre("craftingGearTier04" , GT_MetaItem_Component.instance.getUnunifiedStack(101, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier04" , GT_MetaItem_Component.instance.getUnunifiedStack(101, 1));
GT_MetaItem_Component.addItem(102, "Stainless Steel Gear" , "gearGtStainlessSteel" , "A Stainless Steel Gear"); GT_MetaItem_Component.addItem(102, "Stainless Steel Gear" , "gearGtStainlessSteel" , "A Stainless Steel Gear");
GT_OreDictUnificator.registerOre("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack(102, 1)); GT_OreDictUnificator.registerOreLater("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack(102, 1));
GT_MetaGenerated_Item_01 tMetaGenerated; GT_MetaGenerated_Item_01 tMetaGenerated;
GregTech_API.sItemList[8] = tMetaGenerated = new GT_MetaGenerated_Item_01(); GregTech_API.sItemList[8] = tMetaGenerated = new GT_MetaGenerated_Item_01();