aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-07-09 14:30:54 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-07-09 14:30:54 +1000
commit3c36dfcc0bb42b74ac918bb514e2cde9ff785a40 (patch)
treed8e6c0ea6115f001a1415cee6c9a4d79b9cdd6de /src/Java/miscutil
parent09dcd640faa85d48413a11fe34e853c59720ebcf (diff)
downloadGT5-Unofficial-3c36dfcc0bb42b74ac918bb514e2cde9ff785a40.tar.gz
GT5-Unofficial-3c36dfcc0bb42b74ac918bb514e2cde9ff785a40.tar.bz2
GT5-Unofficial-3c36dfcc0bb42b74ac918bb514e2cde9ff785a40.zip
+ Added in a IC2 Kinetic gearbox rotor made from Iridium.
+ Added Framework for adding in future Windmill rotors.
Diffstat (limited to 'src/Java/miscutil')
-rw-r--r--src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java6
-rw-r--r--src/Java/miscutil/core/item/ModItems.java2
-rw-r--r--src/Java/miscutil/core/item/base/CoreItem.java10
-rw-r--r--src/Java/miscutil/core/util/BaseHandler.java11
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java764
-rw-r--r--src/Java/miscutil/core/xmod/growthcraft/HANDLER_GC.java18
-rw-r--r--src/Java/miscutil/core/xmod/ic2/HANDLER_IC2.java26
-rw-r--r--src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradual.java41
-rw-r--r--src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradualInteger.java53
-rw-r--r--src/Java/miscutil/core/xmod/ic2/item/IC2_ItemIC2.java104
-rw-r--r--src/Java/miscutil/core/xmod/ic2/item/IC2_Items.java27
-rw-r--r--src/Java/miscutil/core/xmod/ic2/item/RotorBase.java99
-rw-r--r--src/Java/miscutil/core/xmod/ic2/item/RotorCustom.java94
-rw-r--r--src/Java/miscutil/core/xmod/thermalfoundation/HANDLER_TF.java2
14 files changed, 866 insertions, 391 deletions
diff --git a/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java b/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java
index 6681e8264a..12cb385604 100644
--- a/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java
+++ b/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java
@@ -3,6 +3,7 @@ package miscutil.core.handler;
import miscutil.core.xmod.forestry.HANDLER_FR;
import miscutil.core.xmod.gregtech.HANDLER_GT;
import miscutil.core.xmod.growthcraft.HANDLER_GC;
+import miscutil.core.xmod.ic2.HANDLER_IC2;
import miscutil.core.xmod.psychedelicraft.HANDLER_Psych;
import miscutil.core.xmod.thermalfoundation.HANDLER_TF;
@@ -14,21 +15,26 @@ public class COMPAT_IntermodStaging {
HANDLER_TF.preInit();
HANDLER_FR.preInit();
HANDLER_Psych.preInit();
+ HANDLER_IC2.preInit();
}
public static void init(){
HANDLER_GT.init();
+ HANDLER_GC.init();
HANDLER_TF.init();
HANDLER_FR.Init();
HANDLER_Psych.init();
+ HANDLER_IC2.init();
}
public static void postInit(){
HANDLER_GT.postInit();
+ HANDLER_GC.postInit();
HANDLER_TF.postInit();
HANDLER_FR.postInit();
HANDLER_Psych.postInit();
+ HANDLER_IC2.postInit();
}
diff --git a/src/Java/miscutil/core/item/ModItems.java b/src/Java/miscutil/core/item/ModItems.java
index ca10950d94..b02cc79676 100644
--- a/src/Java/miscutil/core/item/ModItems.java
+++ b/src/Java/miscutil/core/item/ModItems.java
@@ -277,7 +277,7 @@ Gold Tool: 22*/
GameRegistry.registerItem(itemPlateBatteryAlloy, "itemPlateBatteryAlloy");
itemHeliumBlob = new CoreItem("itemHeliumBlob", tabMisc).setTextureName(CORE.MODID + ":itemHeliumBlob");
- GameRegistry.registerItem(itemHeliumBlob, "itemHeliumBlob");
+ //GameRegistry.registerItem(itemHeliumBlob, "itemHeliumBlob");
itemPLACEHOLDER_Circuit = new Item().setUnlocalizedName("itemPLACEHOLDER_Circuit").setTextureName(CORE.MODID + ":itemPLACEHOLDER_Circuit");
GameRegistry.registerItem(itemPLACEHOLDER_Circuit, "itemPLACEHOLDER_Circuit");
diff --git a/src/Java/miscutil/core/item/base/CoreItem.java b/src/Java/miscutil/core/item/base/CoreItem.java
index 7d481e3515..06f29dffaa 100644
--- a/src/Java/miscutil/core/item/base/CoreItem.java
+++ b/src/Java/miscutil/core/item/base/CoreItem.java
@@ -9,6 +9,7 @@ import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
+import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -43,22 +44,22 @@ public class CoreItem extends Item
//4 //Not Rare + basic tooltip
public CoreItem(String unlocalizedName, CreativeTabs creativeTab, int stackSize, int maxDmg, String description)
{
- this(unlocalizedName, creativeTab, stackSize, maxDmg, EnumRarity.common, description, EnumChatFormatting.GRAY, false); //Calls 4.5
+ this(unlocalizedName, creativeTab, stackSize, maxDmg, description, EnumRarity.common, EnumChatFormatting.GRAY, false); //Calls 4.5
}
//4.5
public CoreItem(String unlocalizedName, CreativeTabs creativeTab, int stackSize, int maxDmg, String description, EnumChatFormatting colour)
{
- this(unlocalizedName, creativeTab, stackSize, maxDmg, EnumRarity.common, description, colour, false); //Calls 5
+ this(unlocalizedName, creativeTab, stackSize, maxDmg, description, EnumRarity.common, colour, false); //Calls 5
}
//4.75
public CoreItem(String unlocalizedName, CreativeTabs creativeTab, int stackSize, int maxDmg, String description, EnumRarity rarity)
{
- this(unlocalizedName, creativeTab, stackSize, maxDmg, rarity, description, EnumChatFormatting.GRAY, false); //Calls 5
+ this(unlocalizedName, creativeTab, stackSize, maxDmg, description, rarity, EnumChatFormatting.GRAY, false); //Calls 5
}
//5
- public CoreItem(String unlocalizedName, CreativeTabs creativeTab, int stackSize, int maxDmg, EnumRarity regRarity, String description, EnumChatFormatting colour, boolean Effect)
+ public CoreItem(String unlocalizedName, CreativeTabs creativeTab, int stackSize, int maxDmg, String description, EnumRarity regRarity, EnumChatFormatting colour, boolean Effect)
{
setUnlocalizedName(unlocalizedName);
setTextureName(CORE.MODID + ":" + unlocalizedName);
@@ -69,6 +70,7 @@ public class CoreItem extends Item
this.itemDescription = description;
this.descColour = colour;
this.hasEffect = Effect;
+ GameRegistry.registerItem(this, unlocalizedName);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
diff --git a/src/Java/miscutil/core/util/BaseHandler.java b/src/Java/miscutil/core/util/BaseHandler.java
new file mode 100644
index 0000000000..ac613f043e
--- /dev/null
+++ b/src/Java/miscutil/core/util/BaseHandler.java
@@ -0,0 +1,11 @@
+package miscutil.core.util;
+
+public abstract class BaseHandler {
+
+ public abstract void preInit();
+
+ public abstract void init();
+
+ public abstract void postInit();
+
+}
diff --git a/src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java b/src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java
index 9dde1a7319..592b649fb4 100644
--- a/src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java
+++ b/src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java
@@ -1,383 +1,383 @@
-package miscutil.core.xmod.gregtech.common.tileentities.machines.multi;
-
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import miscutil.core.block.ModBlocks;
-import miscutil.core.util.Utils;
-import miscutil.core.xmod.gregtech.api.gui.GUI_MultiMachine;
-import miscutil.core.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
-import miscutil.core.xmod.gregtech.api.objects.GregtechRenderedTexture;
-import net.minecraft.block.Block;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-
-import org.apache.commons.lang3.ArrayUtils;
-
-public class GregtechMetaTileEntityIndustrialCentrifuge
-extends GregtechMeta_MultiBlockBase {
- private static boolean controller;
- //public static double recipesComplete = 0;
-
- public GregtechMetaTileEntityIndustrialCentrifuge(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- public GregtechMetaTileEntityIndustrialCentrifuge(String aName) {
- super(aName);
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GregtechMetaTileEntityIndustrialCentrifuge(this.mName);
- }
-
- @Override
- public String[] getDescription() {
- return new String[]{
- "Controller Block for the Industrial Centrifuge",
- "Size: 3x3x3 (Hollow)",
- "Controller (Front Center) [Orange]",
- "1x Maintenance Hatch (Rear Center) [Green]",
- "The rest can be placed anywhere except the Front [Red]",
- "1x Input Hatch",
- "1x Output Hatch",
- "1x Input Bus",
- "1x Output Bus",
- "1x [EV] Energy Hatch (Can be higher Tier) [Blue]",
- "Needs a Turbine Item (inside controller GUI)",
- "Centrifuge Casings for the rest (16 at least)",};
- }
-
- /*@Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- if (aSide == aFacing) {
- return new ITexture[]{GregtechTextures.BlockIcons.GT_CASING_BLOCKS[0], new GT_RenderedTexture(aActive ? Textures.BlockIcons.LARGETURBINE_ACTIVE5 : Textures.BlockIcons.LARGETURBINE5)};
- }
- return new ITexture[]{GregtechTextures.BlockIcons.GT_CASING_BLOCKS[0]};
- }*/
-
- @Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex + 1], aFacing == aSide ? aActive ? new GregtechRenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5) : new GregtechRenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]};
- }
-
- @Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GUI_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "IndustrialCentrifuge.png");
- }
-
- @Override
- public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes;
- }
-
- @Override
- public boolean isFacingValid(byte aFacing) {
- return aFacing > 1;
- }
-
- ArrayList<ItemStack> tInputList = getStoredInputs();
- GT_Recipe mLastRecipe;
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- long tVoltage = getMaxInputVoltage();
- byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
-
- GT_Recipe.GT_Recipe_Map map = getRecipeMap();
- for (int i = 0; i < tInputList.size() - 1; i++) {
- for (int j = i + 1; j < tInputList.size(); j++) {
- if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) {
- if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) {
- tInputList.remove(j--);
- } else {
- tInputList.remove(i--);
- break;
- }
- }
- }
- }
- ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2);
-
- ArrayList<FluidStack> tFluidList = getStoredFluids();
- for (int i = 0; i < tFluidList.size() - 1; i++) {
- for (int j = i + 1; j < tFluidList.size(); j++) {
- if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) {
- if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) {
- tFluidList.remove(j--);
- } else {
- tFluidList.remove(i--);
- break;
- }
- }
- }
- }
- FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tInputList.size()]), 0, 1);
- if (tInputList.size() > 0 || tFluids.length > 0) {
- GT_Recipe tRecipe = map.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs);
- if (tRecipe != null) {
- if (tRecipe.mFluidInputs != null) {
-
- }
- mLastRecipe = tRecipe;
- this.mEUt = 0;
- this.mOutputItems = null;
- this.mOutputFluids = null;
- int machines = Math.min(16, mInventory[1].stackSize);
- int i = 0;
- for (; i < machines; i++) {
- if (!tRecipe.isRecipeInputEqual(true, tFluids, tInputs)) {
- if (i == 0) {
- return false;
- }
- break;
- }
- }
- this.mMaxProgresstime = tRecipe.mDuration;
- this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
- this.mEfficiencyIncrease = 10000;
- if (tRecipe.mEUt <= 16) {
- this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
- this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1));
- } else {
- this.mEUt = tRecipe.mEUt;
- this.mMaxProgresstime = tRecipe.mDuration;
- while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) {
- this.mEUt *= 4;
- this.mMaxProgresstime /= 4;
- }
- }
- this.mEUt *= i;
- if (this.mEUt > 0) {
- this.mEUt = (-this.mEUt);
- }
- ItemStack[] tOut = new ItemStack[tRecipe.mOutputs.length];
- for (int h = 0; h < tRecipe.mOutputs.length; h++) {
- tOut[h] = tRecipe.getOutput(h).copy();
- tOut[h].stackSize = 0;
- }
- FluidStack tFOut = null;
- if (tRecipe.getFluidOutput(0) != null) tFOut = tRecipe.getFluidOutput(0).copy();
- for (int f = 0; f < tOut.length; f++) {
- if (tRecipe.mOutputs[f] != null && tOut[f] != null) {
- for (int g = 0; g < i; g++) {
- if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(f))
- tOut[f].stackSize += tRecipe.mOutputs[f].stackSize;
- }
- }
- }
- if (tFOut != null) {
- int tSize = tFOut.amount;
- tFOut.amount = tSize * i;
- }
- this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
- List<ItemStack> overStacks = new ArrayList<ItemStack>();
- for (int f = 0; f < tOut.length; f++) {
- if (tOut[f].getMaxStackSize() < tOut[f].stackSize) {
- while (tOut[f].getMaxStackSize() < tOut[f].stackSize) {
- ItemStack tmp = tOut[f].copy();
- tmp.stackSize = tmp.getMaxStackSize();
- tOut[f].stackSize = tOut[f].stackSize - tOut[f].getMaxStackSize();
- overStacks.add(tmp);
- }
- }
- }
- if (overStacks.size() > 0) {
- ItemStack[] tmp = new ItemStack[overStacks.size()];
- tmp = overStacks.toArray(tmp);
- tOut = ArrayUtils.addAll(tOut, tmp);
- }
- List<ItemStack> tSList = new ArrayList<ItemStack>();
- for (ItemStack tS : tOut) {
- if (tS.stackSize > 0) tSList.add(tS);
- }
- tOut = tSList.toArray(new ItemStack[tSList.size()]);
- this.mOutputItems = tOut;
- this.mOutputFluids = new FluidStack[]{tFOut};
- updateSlots();
- //recipesComplete++;
- return true;
- }
- }
- return false;
- }
-
- @SuppressWarnings("static-method")
- public Block getCasingBlock() {
- return ModBlocks.blockCasingsMisc;
- }
-
- @SuppressWarnings("static-method")
- public byte getCasingMeta() {
- return 0;
- }
-
- @SuppressWarnings("static-method")
- public byte getCasingTextureIndex() {
- return 0;
- }
-
- @Override
- public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
- int yDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetY;
- int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
- //Utils.LOG_WARNING("X:"+xDir+" Y:"+yDir+" Z:"+zDir);
- if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) {
- return false;
- }
- int tAmount = 0;
- for (int i = -1; i < 2; i++) { //X-Dir
- for (int j = -1; j < 2; j++) { //Z-Dir
- for (int h = -1; h < 2; h++) { //Y-Dir
- if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) {
-
- IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j);
- //Utils.LOG_INFO("X:"+tTileEntity.getXCoord()+" Y:"+tTileEntity.getYCoord()+" Z:"+tTileEntity.getZCoord());
- if ((!addMaintenanceToMachineList(tTileEntity, 57)) && (!addInputToMachineList(tTileEntity, 57)) && (!addOutputToMachineList(tTileEntity, 57)) && (!addEnergyInputToMachineList(tTileEntity, 57))) {
-
- //Maintenance Hatch
- if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) {
- if (tTileEntity.getXCoord() == aBaseMetaTileEntity.getXCoord() && tTileEntity.getYCoord() == aBaseMetaTileEntity.getYCoord() && tTileEntity.getZCoord() == (aBaseMetaTileEntity.getZCoord()+2)) {
- if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Maintenance)) {
- Utils.LOG_INFO("MAINT HATCH IN CORRECT PLACE");
- this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntity.getMetaTileEntity());
- ((GT_MetaTileEntity_Hatch) tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
- } else {
- return false;
- }
- }
- else {
- Utils.LOG_INFO("MAINT HATCH IN WRONG PLACE");
- }
- }
-
- if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasingsMisc) {
- return false;
- }
- if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 0) {
- return false;
- }
- tAmount++;
-
- }
- }
- }
- }
- }
- return tAmount >= 16;
- }
-
- @SuppressWarnings("static-method")
- public boolean ignoreController(Block tTileEntity) {
- if (!controller && tTileEntity == GregTech_API.sBlockMachines) {
- return true;
- }
- return false;
- }
-
- @Override
- public int getMaxEfficiency(ItemStack aStack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack aStack) {
- return 0;
- }
-
- @Override
- public int getAmountOfOutputs() {
- return 1;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack aStack) {
- return false;
- }
-
- private boolean checkStructure(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack){
-
- Utils.LOG_INFO("structure checking");
- int x = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
- int y = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetY;
- int z = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
- Utils.LOG_INFO("X:"+x+" Y:"+y+" Z:"+z);
-
- //North case
- int hatchMaintainence[] = {x, y, z+2};
- int hatchInputBus[] = {x+1, y, z+1};
- int hatchOutputBus[] = {x-1, y, z+1};
- int hatchInput[] = {x+1, y+1, z+1};
- int hatchOutput[] = {x-1, y+1, z+1};
- int hatchEnergy[] = {x, y+1, z+2};
-
- //South case
- int hatchMaintainence0[] = {x, y, z-2};
- int hatchInputBus0[] = {x-1, y, z-1};
- int hatchOutputBus0[] = {x+1, y, z-1};
- int hatchInput0[] = {x-1, y+1, z-1};
- int hatchOutput0[] = {x+1, y+1, z-1};
- int hatchEnergy0[] = {x, y+1, z-2};
-
-
- //East case
- int hatchMaintainence1[] = {x+2, y, z};
- int hatchInputBus1[] = {x+1, y, z+1};
- int hatchOutputBus1[] = {x+1, y, z-1};
- int hatchInput1[] = {x+1, y+1, z+1};
- int hatchOutput1[] = {x+1, y+1, z-1};
- int hatchEnergy1[] = {x+2, y+1, z};
-
- //West case
- int hatchMaintainence2[] = {x-2, y, z};
- int hatchInputBus2[] = {x-1, y, z-1};
- int hatchOutputBus2[] = {x-1, y, z+1};
- int hatchInput2[] = {x-1, y+1, z-1};
- int hatchOutput2[] = {x-1, y+1, z+1};
- int hatchEnergy2[] = {x-2, y+1, z};
-
-
-
- /*//Maintenance Hatch
- IGregTechTileEntity tTileEntityMaintenanceHatch = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 2);
- if ((tTileEntityMaintenanceHatch != null) && (tTileEntityMaintenanceHatch.getMetaTileEntity() != null)) {
- if ((tTileEntityMaintenanceHatch.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Maintenance)) {
- this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntityMaintenanceHatch.getMetaTileEntity());
- ((GT_MetaTileEntity_Hatch) tTileEntityMaintenanceHatch.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
- } else {
- return false;
- }
- }*/
-
- /*//Energy Hatch
- IGregTechTileEntity tTileEntityEnergyHatch = getBaseMetaTileEntity().getIGregTechTileEntity(i, h+1, j+2);
- if ((tTileEntityEnergyHatch != null) && (tTileEntityEnergyHatch.getMetaTileEntity() != null)) {
- if ((tTileEntityEnergyHatch.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Energy)) {
- this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntityEnergyHatch.getMetaTileEntity());
- ((GT_MetaTileEntity_Hatch) tTileEntityEnergyHatch.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
- } else {
- return false;
- }
- }*/
-
-
-
-
- return false;
- }
+package miscutil.core.xmod.gregtech.common.tileentities.machines.multi;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import miscutil.core.block.ModBlocks;
+import miscutil.core.util.Utils;
+import miscutil.core.xmod.gregtech.api.gui.GUI_MultiMachine;
+import miscutil.core.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
+import miscutil.core.xmod.gregtech.api.objects.GregtechRenderedTexture;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.FluidStack;
+
+import org.apache.commons.lang3.ArrayUtils;
+
+public class GregtechMetaTileEntityIndustrialCentrifuge
+extends GregtechMeta_MultiBlockBase {
+ private static boolean controller;
+ //public static double recipesComplete = 0;
+
+ public GregtechMetaTileEntityIndustrialCentrifuge(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GregtechMetaTileEntityIndustrialCentrifuge(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GregtechMetaTileEntityIndustrialCentrifuge(this.mName);
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Industrial Centrifuge",
+ "Size: 3x3x3 (Hollow)",
+ "Controller (Front Center) [Orange]",
+ "1x Maintenance Hatch (Rear Center) [Green]",
+ "The rest can be placed anywhere except the Front [Red]",
+ "1x Input Hatch",
+ "1x Output Hatch",
+ "1x Input Bus",
+ "1x Output Bus",
+ "1x [EV] Energy Hatch (Can be higher Tier) [Blue]",
+ "Needs a Turbine Item (inside controller GUI)",
+ "Centrifuge Casings for the rest (16 at least)",};
+ }
+
+ /*@Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{GregtechTextures.BlockIcons.GT_CASING_BLOCKS[0], new GT_RenderedTexture(aActive ? Textures.BlockIcons.LARGETURBINE_ACTIVE5 : Textures.BlockIcons.LARGETURBINE5)};
+ }
+ return new ITexture[]{GregtechTextures.BlockIcons.GT_CASING_BLOCKS[0]};
+ }*/
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex + 1], aFacing == aSide ? aActive ? new GregtechRenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5) : new GregtechRenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]};
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GUI_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "IndustrialCentrifuge.png");
+ }
+
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes;
+ }
+
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return aFacing > 1;
+ }
+
+ ArrayList<ItemStack> tInputList = getStoredInputs();
+ GT_Recipe mLastRecipe;
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+
+ GT_Recipe.GT_Recipe_Map map = getRecipeMap();
+ for (int i = 0; i < tInputList.size() - 1; i++) {
+ for (int j = i + 1; j < tInputList.size(); j++) {
+ if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) {
+ if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) {
+ tInputList.remove(j--);
+ } else {
+ tInputList.remove(i--);
+ break;
+ }
+ }
+ }
+ }
+ ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2);
+
+ ArrayList<FluidStack> tFluidList = getStoredFluids();
+ for (int i = 0; i < tFluidList.size() - 1; i++) {
+ for (int j = i + 1; j < tFluidList.size(); j++) {
+ if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) {
+ if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) {
+ tFluidList.remove(j--);
+ } else {
+ tFluidList.remove(i--);
+ break;
+ }
+ }
+ }
+ }
+ FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tInputList.size()]), 0, 1);
+ if (tInputList.size() > 0 || tFluids.length > 0) {
+ GT_Recipe tRecipe = map.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs);
+ if (tRecipe != null) {
+ if (tRecipe.mFluidInputs != null) {
+
+ }
+ mLastRecipe = tRecipe;
+ this.mEUt = 0;
+ this.mOutputItems = null;
+ this.mOutputFluids = null;
+ int machines = Math.min(16, mInventory[1].stackSize);
+ int i = 0;
+ for (; i < machines; i++) {
+ if (!tRecipe.isRecipeInputEqual(true, tFluids, tInputs)) {
+ if (i == 0) {
+ return false;
+ }
+ break;
+ }
+ }
+ this.mMaxProgresstime = tRecipe.mDuration;
+ this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+ if (tRecipe.mEUt <= 16) {
+ this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
+ this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1));
+ } else {
+ this.mEUt = tRecipe.mEUt;
+ this.mMaxProgresstime = tRecipe.mDuration;
+ while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) {
+ this.mEUt *= 4;
+ this.mMaxProgresstime /= 4;
+ }
+ }
+ this.mEUt *= i;
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+ ItemStack[] tOut = new ItemStack[tRecipe.mOutputs.length];
+ for (int h = 0; h < tRecipe.mOutputs.length; h++) {
+ tOut[h] = tRecipe.getOutput(h).copy();
+ tOut[h].stackSize = 0;
+ }
+ FluidStack tFOut = null;
+ if (tRecipe.getFluidOutput(0) != null) tFOut = tRecipe.getFluidOutput(0).copy();
+ for (int f = 0; f < tOut.length; f++) {
+ if (tRecipe.mOutputs[f] != null && tOut[f] != null) {
+ for (int g = 0; g < i; g++) {
+ if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(f))
+ tOut[f].stackSize += tRecipe.mOutputs[f].stackSize;
+ }
+ }
+ }
+ if (tFOut != null) {
+ int tSize = tFOut.amount;
+ tFOut.amount = tSize * i;
+ }
+ this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ List<ItemStack> overStacks = new ArrayList<ItemStack>();
+ for (int f = 0; f < tOut.length; f++) {
+ if (tOut[f].getMaxStackSize() < tOut[f].stackSize) {
+ while (tOut[f].getMaxStackSize() < tOut[f].stackSize) {
+ ItemStack tmp = tOut[f].copy();
+ tmp.stackSize = tmp.getMaxStackSize();
+ tOut[f].stackSize = tOut[f].stackSize - tOut[f].getMaxStackSize();
+ overStacks.add(tmp);
+ }
+ }
+ }
+ if (overStacks.size() > 0) {
+ ItemStack[] tmp = new ItemStack[overStacks.size()];
+ tmp = overStacks.toArray(tmp);
+ tOut = ArrayUtils.addAll(tOut, tmp);
+ }
+ List<ItemStack> tSList = new ArrayList<ItemStack>();
+ for (ItemStack tS : tOut) {
+ if (tS.stackSize > 0) tSList.add(tS);
+ }
+ tOut = tSList.toArray(new ItemStack[tSList.size()]);
+ this.mOutputItems = tOut;
+ this.mOutputFluids = new FluidStack[]{tFOut};
+ updateSlots();
+ //recipesComplete++;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @SuppressWarnings("static-method")
+ public Block getCasingBlock() {
+ return ModBlocks.blockCasingsMisc;
+ }
+
+ @SuppressWarnings("static-method")
+ public byte getCasingMeta() {
+ return 0;
+ }
+
+ @SuppressWarnings("static-method")
+ public byte getCasingTextureIndex() {
+ return 0;
+ }
+
+ @Override
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
+ int yDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetY;
+ int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
+ //Utils.LOG_WARNING("X:"+xDir+" Y:"+yDir+" Z:"+zDir);
+ if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) {
+ return false;
+ }
+ int tAmount = 0;
+ for (int i = -1; i < 2; i++) { //X-Dir
+ for (int j = -1; j < 2; j++) { //Z-Dir
+ for (int h = -1; h < 2; h++) { //Y-Dir
+ if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) {
+
+ IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j);
+ //Utils.LOG_INFO("X:"+tTileEntity.getXCoord()+" Y:"+tTileEntity.getYCoord()+" Z:"+tTileEntity.getZCoord());
+ if ((!addMaintenanceToMachineList(tTileEntity, 57)) && (!addInputToMachineList(tTileEntity, 57)) && (!addOutputToMachineList(tTileEntity, 57)) && (!addEnergyInputToMachineList(tTileEntity, 57))) {
+
+ //Maintenance Hatch
+ if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) {
+ if (tTileEntity.getXCoord() == aBaseMetaTileEntity.getXCoord() && tTileEntity.getYCoord() == aBaseMetaTileEntity.getYCoord() && tTileEntity.getZCoord() == (aBaseMetaTileEntity.getZCoord()+2)) {
+ if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Maintenance)) {
+ Utils.LOG_INFO("MAINT HATCH IN CORRECT PLACE");
+ this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntity.getMetaTileEntity());
+ ((GT_MetaTileEntity_Hatch) tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
+ } else {
+ return false;
+ }
+ }
+ else {
+ Utils.LOG_INFO("MAINT HATCH IN WRONG PLACE");
+ }
+ }
+
+ if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasingsMisc) {
+ return false;
+ }
+ if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 0) {
+ return false;
+ }
+ tAmount++;
+
+ }
+ }
+ }
+ }
+ }
+ return tAmount >= 16;
+ }
+
+ @SuppressWarnings("static-method")
+ public boolean ignoreController(Block tTileEntity) {
+ if (!controller && tTileEntity == GregTech_API.sBlockMachines) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public int getAmountOfOutputs() {
+ return 1;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+
+ private boolean checkStructure(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack){
+
+ Utils.LOG_INFO("structure checking");
+ int x = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
+ int y = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetY;
+ int z = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
+ Utils.LOG_INFO("X:"+x+" Y:"+y+" Z:"+z);
+
+ //North case
+ int hatchMaintainence[] = {x, y, z+2};
+ int hatchInputBus[] = {x+1, y, z+1};
+ int hatchOutputBus[] = {x-1, y, z+1};
+ int hatchInput[] = {x+1, y+1, z+1};
+ int hatchOutput[] = {x-1, y+1, z+1};
+ int hatchEnergy[] = {x, y+1, z+2};
+
+ //South case
+ int hatchMaintainence0[] = {x, y, z-2};
+ int hatchInputBus0[] = {x-1, y, z-1};
+ int hatchOutputBus0[] = {x+1, y, z-1};
+ int hatchInput0[] = {x-1, y+1, z-1};
+ int hatchOutput0[] = {x+1, y+1, z-1};
+ int hatchEnergy0[] = {x, y+1, z-2};
+
+
+ //East case
+ int hatchMaintainence1[] = {x+2, y, z};
+ int hatchInputBus1[] = {x+1, y, z+1};
+ int hatchOutputBus1[] = {x+1, y, z-1};
+ int hatchInput1[] = {x+1, y+1, z+1};
+ int hatchOutput1[] = {x+1, y+1, z-1};
+ int hatchEnergy1[] = {x+2, y+1, z};
+
+ //West case
+ int hatchMaintainence2[] = {x-2, y, z};
+ int hatchInputBus2[] = {x-1, y, z-1};
+ int hatchOutputBus2[] = {x-1, y, z+1};
+ int hatchInput2[] = {x-1, y+1, z-1};
+ int hatchOutput2[] = {x-1, y+1, z+1};
+ int hatchEnergy2[] = {x-2, y+1, z};
+
+
+
+ /*//Maintenance Hatch
+ IGregTechTileEntity tTileEntityMaintenanceHatch = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 2);
+ if ((tTileEntityMaintenanceHatch != null) && (tTileEntityMaintenanceHatch.getMetaTileEntity() != null)) {
+ if ((tTileEntityMaintenanceHatch.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Maintenance)) {
+ this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntityMaintenanceHatch.getMetaTileEntity());
+ ((GT_MetaTileEntity_Hatch) tTileEntityMaintenanceHatch.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
+ } else {
+ return false;
+ }
+ }*/
+
+ /*//Energy Hatch
+ IGregTechTileEntity tTileEntityEnergyHatch = getBaseMetaTileEntity().getIGregTechTileEntity(i, h+1, j+2);
+ if ((tTileEntityEnergyHatch != null) && (tTileEntityEnergyHatch.getMetaTileEntity() != null)) {
+ if ((tTileEntityEnergyHatch.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Energy)) {
+ this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntityEnergyHatch.getMetaTileEntity());
+ ((GT_MetaTileEntity_Hatch) tTileEntityEnergyHatch.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
+ } else {
+ return false;
+ }
+ }*/
+
+
+
+
+ return false;
+ }
} \ No newline at end of file
diff --git a/src/Java/miscutil/core/xmod/growthcraft/HANDLER_GC.java b/src/Java/miscutil/core/xmod/growthcraft/HANDLER_GC.java
index b0c82406d3..78f416e514 100644
--- a/src/Java/miscutil/core/xmod/growthcraft/HANDLER_GC.java
+++ b/src/Java/miscutil/core/xmod/growthcraft/HANDLER_GC.java
@@ -4,13 +4,25 @@ import miscutil.core.lib.LoadedMods;
import miscutil.core.xmod.growthcraft.booze.Register_Booze;
public class HANDLER_GC {
-
- //Run me during Pre-Init
+
+ //Run me during Pre-Init
public static void preInit(){
if (LoadedMods.Growthcraft){
Register_Booze.preInit();
}
}
-
+
+ public static void init(){
+ if (LoadedMods.Growthcraft){
+
+ }
+ }
+
+ public static void postInit(){
+ if (LoadedMods.Growthcraft){
+
+ }
+ }
+
}
diff --git a/src/Java/miscutil/core/xmod/ic2/HANDLER_IC2.java b/src/Java/miscutil/core/xmod/ic2/HANDLER_IC2.java
new file mode 100644
index 0000000000..433d165a54
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/HANDLER_IC2.java
@@ -0,0 +1,26 @@
+package miscutil.core.xmod.ic2;
+
+import miscutil.core.lib.LoadedMods;
+import miscutil.core.xmod.ic2.item.IC2_Items;
+
+public class HANDLER_IC2{
+
+ public static void preInit() {
+ if (LoadedMods.IndustrialCraft2){
+ IC2_Items.register();
+ }
+ }
+
+ public static void init() {
+ if (LoadedMods.IndustrialCraft2){
+
+ }
+ }
+
+ public static void postInit() {
+ if (LoadedMods.IndustrialCraft2){
+
+ }
+ }
+
+}
diff --git a/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradual.java b/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradual.java
new file mode 100644
index 0000000000..cf4b23f9eb
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradual.java
@@ -0,0 +1,41 @@
+package miscutil.core.xmod.ic2.item;
+
+import java.util.List;
+
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.item.base.CoreItem;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+public class IC2_ItemGradual
+extends CoreItem
+{
+ public IC2_ItemGradual(String internalName)
+ {
+ super(internalName, AddToCreativeTab.tabMachines, 1, 10000, "", EnumRarity.uncommon);
+ setNoRepair();
+ }
+
+ @Override
+ public boolean isDamaged(ItemStack stack)
+ {
+ return getDamage(stack) > 1;
+ }
+
+ @Override
+ public boolean showDurabilityBar(ItemStack stack)
+ {
+ return true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List itemList)
+ {
+ itemList.add(new ItemStack(this, 1, 1));
+ }
+}
diff --git a/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradualInteger.java b/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradualInteger.java
new file mode 100644
index 0000000000..b39c80e5ed
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemGradualInteger.java
@@ -0,0 +1,53 @@
+package miscutil.core.xmod.ic2.item;
+
+import ic2.api.item.ICustomDamageItem;
+import ic2.core.util.StackUtil;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class IC2_ItemGradualInteger
+ extends IC2_ItemGradual
+ implements ICustomDamageItem
+{
+ private final int maxDmg;
+
+ public IC2_ItemGradualInteger(String internalName, int maxdmg)
+ {
+ super(internalName);
+
+ this.maxDmg = maxdmg;
+ }
+
+ @Override
+public int getCustomDamage(ItemStack stack)
+ {
+ NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack);
+ return nbt.getInteger("advDmg");
+ }
+
+ @Override
+public int getMaxCustomDamage(ItemStack stack)
+ {
+ return this.maxDmg;
+ }
+
+ @Override
+public void setCustomDamage(ItemStack stack, int damage)
+ {
+ NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack);
+ nbt.setInteger("advDmg", 0);
+
+ int maxStackDamage = stack.getMaxDamage();
+ if (maxStackDamage > 2) {
+ //stack.setItemDamage(1 + (int)Util.map(damage, this.maxDmg, maxStackDamage - 2));
+ }
+ }
+
+ @Override
+public boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src)
+ {
+ setCustomDamage(stack, getCustomDamage(stack) + damage);
+ return true;
+ }
+}
diff --git a/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemIC2.java b/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemIC2.java
new file mode 100644
index 0000000000..fa7f73169c
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/item/IC2_ItemIC2.java
@@ -0,0 +1,104 @@
+package miscutil.core.xmod.ic2.item;
+
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.lib.CORE;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+public class IC2_ItemIC2
+extends Item
+{
+ public IC2_ItemIC2(String internalName)
+ {
+ setUnlocalizedName(internalName);
+ setCreativeTab(AddToCreativeTab.tabMachines);
+ setTextureName(CORE.MODID + ":" + internalName);
+
+ GameRegistry.registerItem(this, internalName);
+ }
+
+ public String getTextureFolder()
+ {
+ return null;
+ }
+
+ /* public String getTextureName(int index)
+ {
+ if ((!this.hasSubtypes) && (index > 0)) {
+ return null;
+ }
+ String name = getUnlocalizedName(new ItemStack(this, 1, index));
+ if ((name != null) && (name.length() > 4)) {
+ return name.substring(4);
+ }
+ return name;
+ }
+
+ @Override
+@SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister)
+ {
+ int indexCount = 0;
+ while (getTextureName(indexCount) != null)
+ {
+ indexCount++;
+ if (indexCount > 32767) {
+ throw new RuntimeException("More Item Icons than actually possible @ " + getUnlocalizedName());
+ }
+ }
+ this.textures = new IIcon[indexCount];
+ for (int index = 0; index < indexCount; index++) {
+ this.textures[index] = iconRegister.registerIcon(CORE.MODID + ":" + getUnlocalizedName());
+ }
+ }
+
+ @Override
+@SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int meta)
+ {
+ if (meta < this.textures.length) {
+ return this.textures[meta];
+ }
+ return this.textures.length < 1 ? null : this.textures[0];
+ }*/
+
+ @Override
+ public String getUnlocalizedName()
+ {
+ return super.getUnlocalizedName();
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack itemStack)
+ {
+ return getUnlocalizedName();
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack itemStack)
+ {
+ return StatCollector.translateToLocal(getUnlocalizedName(itemStack));
+ }
+
+ public IC2_ItemIC2 setRarity(int aRarity)
+ {
+ this.rarity = aRarity;
+ return this;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public EnumRarity getRarity(ItemStack stack)
+ {
+ return EnumRarity.values()[this.rarity];
+ }
+
+ private int rarity = 0;
+ protected IIcon[] textures;
+}
diff --git a/src/Java/miscutil/core/xmod/ic2/item/IC2_Items.java b/src/Java/miscutil/core/xmod/ic2/item/IC2_Items.java
new file mode 100644
index 0000000000..7d3fd5506c
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/item/IC2_Items.java
@@ -0,0 +1,27 @@
+package miscutil.core.xmod.ic2.item;
+
+import ic2.core.init.InternalName;
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.lib.CORE;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+
+public class IC2_Items {
+
+ public static ItemStack woodrotor;
+ public static ItemStack ironrotor;
+ public static ItemStack steelrotor;
+ public static ItemStack carbonrotor;
+ public static ItemStack woodrotorblade;
+ public static ItemStack ironrotorblade;
+ public static ItemStack steelrotorblade;
+ public static ItemStack carbonrotorblade;
+
+ public static void register(){
+ //woodrotor = new ItemStack(new ItemWindRotor(InternalName.itemwoodrotor, 5, 10800, 0.25F, 10, 60, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorWoodmodel.png")));
+ //ironrotor = new ItemStack(new ItemWindRotor(InternalName.itemironrotor, 7, 86400, 0.5F, 14, 75, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorIronmodel.png")));
+ steelrotor = new ItemStack(new RotorBase(InternalName.itemsteelrotor, 13, 172800, 1.5F, 15, 320, new ResourceLocation(CORE.MODID, "textures/items/rotorIridiumModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("Kinetic Gearbox Rotor (Iridium)"));
+ carbonrotor = new ItemStack(new RotorCustom("itemIridiumRotor", 13, 320000, 1.5F, 15, 320, new ResourceLocation(CORE.MODID, "textures/items/rotorIridiumModel.png")));
+ }
+
+}
diff --git a/src/Java/miscutil/core/xmod/ic2/item/RotorBase.java b/src/Java/miscutil/core/xmod/ic2/item/RotorBase.java
new file mode 100644
index 0000000000..e49f3415c8
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/item/RotorBase.java
@@ -0,0 +1,99 @@
+package miscutil.core.xmod.ic2.item;
+
+import ic2.api.item.IKineticRotor;
+import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator;
+import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator;
+import ic2.core.init.InternalName;
+import ic2.core.item.resources.ItemWindRotor;
+
+import java.util.List;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+
+public class RotorBase extends ItemWindRotor{
+
+ private final int maxWindStrength;
+ private final int minWindStrength;
+ private final int radius;
+ private final float efficiency;
+ private final ResourceLocation renderTexture;
+ private final boolean water;
+
+ public RotorBase(InternalName internalName, int Radius, int durability, float efficiency, int minWindStrength, int maxWindStrength, ResourceLocation RenderTexture)
+ {
+ super(internalName, Radius, durability, efficiency, minWindStrength, maxWindStrength, RenderTexture);
+
+
+
+ setMaxStackSize(1);
+ setMaxDamage(Integer.MAX_VALUE);
+
+ this.radius = Radius;
+ this.efficiency = efficiency;
+ this.renderTexture = RenderTexture;
+ this.minWindStrength = minWindStrength;
+ this.maxWindStrength = maxWindStrength;
+ this.water = (internalName != InternalName.itemwoodrotor);
+ }
+
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean b)
+ {
+ info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", new Object[] { Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength) }));
+ IKineticRotor.GearboxType type = null;
+ if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator))) {
+ type = IKineticRotor.GearboxType.WATER;
+ } else if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator))) {
+ type = IKineticRotor.GearboxType.WIND;
+ }
+ if (type != null) {
+ info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + isAcceptedType(itemStack, type)));
+ }
+ }
+
+ @Override
+ public String getTextureFolder()
+ {
+ return "rotors";
+ }
+
+ @Override
+ public int getDiameter(ItemStack stack)
+ {
+ return this.radius;
+ }
+
+ @Override
+ public ResourceLocation getRotorRenderTexture(ItemStack stack)
+ {
+ return this.renderTexture;
+ }
+
+ @Override
+ public float getEfficiency(ItemStack stack)
+ {
+ return this.efficiency;
+ }
+
+ @Override
+ public int getMinWindStrength(ItemStack stack)
+ {
+ return this.minWindStrength;
+ }
+
+ @Override
+ public int getMaxWindStrength(ItemStack stack)
+ {
+ return this.maxWindStrength;
+ }
+
+ public boolean isAcceptedType(ItemStack stack, IKineticRotor.GearboxType type)
+ {
+ return (type == IKineticRotor.GearboxType.WIND) || (this.water);
+ }
+ }
+
diff --git a/src/Java/miscutil/core/xmod/ic2/item/RotorCustom.java b/src/Java/miscutil/core/xmod/ic2/item/RotorCustom.java
new file mode 100644
index 0000000000..f29efbd024
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/ic2/item/RotorCustom.java
@@ -0,0 +1,94 @@
+package miscutil.core.xmod.ic2.item;
+
+import ic2.api.item.IKineticRotor;
+
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+
+public class RotorCustom extends IC2_ItemGradualInteger implements IKineticRotor
+{
+ private final int maxWindStrength;
+ private final int minWindStrength;
+ private final int radius;
+ private final float efficiency;
+ private final ResourceLocation renderTexture;
+ private final boolean water;
+ private final int durability;
+
+ public RotorCustom(String internalName, int Radius, int durability, float efficiency, int minWindStrength, int maxWindStrength, ResourceLocation RenderTexture)
+ {
+ super(internalName, durability);
+
+ setMaxStackSize(1);
+ setMaxDamage(durability);
+
+ this.radius = Radius;
+ this.efficiency = efficiency;
+ this.renderTexture = RenderTexture;
+ this.minWindStrength = minWindStrength;
+ this.maxWindStrength = maxWindStrength;
+ this.durability = durability;
+ this.water = (internalName != "itemwoodrotor");
+ }
+
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean b)
+ {
+ info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", new Object[] { Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength) }));
+
+ /*IKineticRotor.GearboxType type = null;
+ if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator))) {
+ type = IKineticRotor.GearboxType.WATER;
+ } else if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator))) {
+ type = IKineticRotor.GearboxType.WIND;
+ }
+ if (type != null) {
+ info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + isAcceptedType(itemStack, type)));
+ }*/
+ }
+
+ public String getTextureFolder()
+ {
+ return "rotors";
+ }
+
+ @Override
+ public int getDiameter(ItemStack stack)
+ {
+ return this.radius;
+ }
+
+ @Override
+ public ResourceLocation getRotorRenderTexture(ItemStack stack)
+ {
+ return this.renderTexture;
+ }
+
+ @Override
+ public float getEfficiency(ItemStack stack)
+ {
+ return this.efficiency;
+ }
+
+ @Override
+ public int getMinWindStrength(ItemStack stack)
+ {
+ return this.minWindStrength;
+ }
+
+ @Override
+ public int getMaxWindStrength(ItemStack stack)
+ {
+ return this.maxWindStrength;
+ }
+
+ @Override
+ public boolean isAcceptedType(ItemStack stack, IKineticRotor.GearboxType type)
+ {
+ return true;
+ }
+}
diff --git a/src/Java/miscutil/core/xmod/thermalfoundation/HANDLER_TF.java b/src/Java/miscutil/core/xmod/thermalfoundation/HANDLER_TF.java
index 30c16860ba..a9662a221a 100644
--- a/src/Java/miscutil/core/xmod/thermalfoundation/HANDLER_TF.java
+++ b/src/Java/miscutil/core/xmod/thermalfoundation/HANDLER_TF.java
@@ -6,7 +6,7 @@ import miscutil.core.xmod.thermalfoundation.fluid.TF_Fluids;
import miscutil.core.xmod.thermalfoundation.item.TF_Items;
import miscutil.core.xmod.thermalfoundation.recipe.TF_Gregtech_Recipes;
-public class HANDLER_TF {
+public class HANDLER_TF{
public static void preInit(){
if (LoadedMods.CoFHCore){