diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2018-11-24 18:37:20 +0100 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2018-11-24 18:37:20 +0100 |
commit | 55e33d2071504bc7bcdfdaef638dc96e4d4ca970 (patch) | |
tree | 06aef8c58be07e813e1ce2e549b722898ef2df7a /src | |
parent | be890c12a3bf60ef8d7802064f9602cb58b06f79 (diff) | |
download | GT5-Unofficial-55e33d2071504bc7bcdfdaef638dc96e4d4ca970.tar.gz GT5-Unofficial-55e33d2071504bc7bcdfdaef638dc96e4d4ca970.tar.bz2 GT5-Unofficial-55e33d2071504bc7bcdfdaef638dc96e4d4ca970.zip |
Update #3
+added Diode
+added WiP stuff
Diffstat (limited to 'src')
9 files changed, 506 insertions, 4 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java index 2c431d3d1d..cb5ab327f3 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java @@ -2,6 +2,7 @@ package com.github.bartimaeusnek.bartworks; import com.github.bartimaeusnek.bartworks.client.creativetabs.GT2Tab; +import com.github.bartimaeusnek.bartworks.client.creativetabs.bartworksTab; import com.github.bartimaeusnek.bartworks.common.ConfigHandler; import com.github.bartimaeusnek.bartworks.common.loaders.LoaderRegistry; import cpw.mods.fml.common.Loader; @@ -11,10 +12,16 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import static com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry.BW_BLOCKS; + @Mod( modid = MainMod.modID, name = MainMod.name, version = MainMod.version, dependencies = "required-after:IC2; " @@ -27,6 +34,7 @@ public final class MainMod { public static final Logger logger = LogManager.getLogger(name); public static boolean GTNH = false; public static final CreativeTabs GT2 = new GT2Tab("GT2C"); + public static final CreativeTabs BWT = new bartworksTab("bartworks"); public static final IGuiHandler GH = new GuiHandler(); @Mod.Instance(modID) public static MainMod instance; @@ -50,6 +58,9 @@ public final class MainMod { @Mod.EventHandler public void postInit(FMLPostInitializationEvent postinit) { NetworkRegistry.INSTANCE.registerGuiHandler(instance,GH); + + + } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/client/creativetabs/bartworksTab.java b/src/main/java/com/github/bartimaeusnek/bartworks/client/creativetabs/bartworksTab.java new file mode 100644 index 0000000000..30449b88de --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/client/creativetabs/bartworksTab.java @@ -0,0 +1,18 @@ +package com.github.bartimaeusnek.bartworks.client.creativetabs; + +import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class bartworksTab extends CreativeTabs { + + public bartworksTab (String lable) { + super(lable); + } + + @Override + public Item getTabIconItem() { + return ItemRegistry.RockcutterHV; + } + +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_Blocks.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_Blocks.java index 983ec42653..a838e52125 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_Blocks.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/blocks/BW_Blocks.java @@ -23,6 +23,14 @@ public class BW_Blocks extends Block { this.textureNames=texture; this.setCreativeTab(MainMod.GT2); } + public BW_Blocks(String name, String[] texture, CreativeTabs tabs) { + super(Material.anvil); + this.setHardness(15.0F); + this.setResistance(30.0F); + this.name = name; + this.textureNames=texture; + this.setCreativeTab(tabs); + } @SideOnly(Side.CLIENT) private IIcon[] texture; diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java index 0ceeb19d1c..ea3d2f27f7 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java @@ -5,8 +5,16 @@ import com.github.bartimaeusnek.bartworks.common.ConfigHandler; import com.github.bartimaeusnek.bartworks.common.blocks.BW_Blocks; import com.github.bartimaeusnek.bartworks.common.items.*; import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; import net.minecraft.block.Block; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import static com.github.bartimaeusnek.bartworks.MainMod.BWT; +import static com.github.bartimaeusnek.bartworks.MainMod.GT2; public class ItemRegistry implements Runnable { @@ -15,17 +23,28 @@ public class ItemRegistry implements Runnable { public static final Item RockcutterLV = new GT_Rockcutter_Item(1); public static final Item RockcutterMV = new GT_Rockcutter_Item(2); public static final Item RockcutterHV = new GT_Rockcutter_Item(3); + public static ItemStack[] Diode2A= new ItemStack[GT_Values.VN.length]; + public static ItemStack[] Diode4A= new ItemStack[GT_Values.VN.length]; + public static ItemStack[] Diode8A= new ItemStack[GT_Values.VN.length]; + public static ItemStack[] Diode12A= new ItemStack[GT_Values.VN.length]; + public static ItemStack[] Diode16A= new ItemStack[GT_Values.VN.length]; public static final Item tab = new SimpleIconItem("GT2Coin"); public static final Block[] BW_BLOCKS = { new BW_Blocks("BW_ItemBlocks", new String[] { MainMod.modID+":EtchedLapisCell", MainMod.modID+":PlatedLapisCell", - }), + },GT2), new BW_Blocks("GT_LESU_CASING", new String[]{ MainMod.modID+":LESU_CELL", - }), + },GT2), + new BW_Blocks("BW_Machinery_Casings",new String[]{ + MainMod.modID+":NickelFerriteBlocks", + MainMod.modID+":TransformerCoil", + MainMod.modID+":DEHP_Casing", + MainMod.modID+":DEHP_Casing_Base" + },BWT), }; @@ -34,8 +53,10 @@ public class ItemRegistry implements Runnable { public void run() { GameRegistry.registerBlock(BW_BLOCKS[0], BW_ItemBlocks.class,"BW_ItemBlocks"); + GameRegistry.registerBlock(BW_BLOCKS[1], BW_ItemBlocks.class,"GT_LESU_CASING"); + GameRegistry.registerBlock(BW_BLOCKS[2], BW_ItemBlocks.class,"BW_Machinery_Casings"); - GameRegistry.registerBlock(BW_BLOCKS[1],BW_ItemBlocks.class,"GT_LESU_CASING"); + GT_OreDictUnificator.registerOre(OrePrefixes.block, Materials.NickelZincFerrite,new ItemStack(BW_BLOCKS[2])); if (ConfigHandler.teslastaff) GameRegistry.registerItem(Teslastaff,Teslastaff.getUnlocalizedName()); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java index 54bcf4fe5c..b7a992f2e5 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java @@ -2,8 +2,10 @@ package com.github.bartimaeusnek.bartworks.common.loaders; import com.github.bartimaeusnek.bartworks.MainMod; import com.github.bartimaeusnek.bartworks.common.ConfigHandler; +import com.github.bartimaeusnek.bartworks.common.tileentities.GT_MetaTileEntity_Diode; import com.github.bartimaeusnek.bartworks.common.tileentities.GT_MetaTileEntity_EnergyDistributor; import com.github.bartimaeusnek.bartworks.common.tileentities.GT_TileEntity_LESU; +import com.github.bartimaeusnek.bartworks.common.tileentities.GT_TileEntity_ManualTrafo; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -164,6 +166,7 @@ public class RecipeLoader implements Runnable { Materials cable = cables[i]; Materials hull = hulls[i]; ItemStack machinehull = ItemList.MACHINE_HULLS[i].get(1L); + GT_ModHandler.addCraftingRecipe( new GT_MetaTileEntity_EnergyDistributor(ConfigHandler.IDOffset+1+i,"Energy Distributor "+GT_Values.VN[i], "Energy Distributor "+GT_Values.VN[i], i, "Splits Amperage into several Sides").getStackForm(1L), bitsd, @@ -175,9 +178,145 @@ public class RecipeLoader implements Runnable { 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), 'C', machinehull }); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode12A[i]=new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset+GT_Values.VN.length*4+1+i,"Cable Diode 12A "+GT_Values.VN[i], "Cable Diode 12A "+GT_Values.VN[i], i,12).getStackForm(1L), + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_Diode.get(1L,ItemList.Circuit_Parts_DiodeSMD.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt12,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode12A[i], + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L,ItemList.Circuit_Parts_Diode.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt12,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode8A[i]=new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset+GT_Values.VN.length*3+1+i,"Cable Diode 8A "+GT_Values.VN[i], "Cable Diode 8A "+GT_Values.VN[i], i,8).getStackForm(1L), + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_Diode.get(1L,ItemList.Circuit_Parts_DiodeSMD.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt08,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode8A[i], + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L,ItemList.Circuit_Parts_Diode.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt08,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode4A[i]=new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset+GT_Values.VN.length*2+1+i,"Cable Diode 4A "+GT_Values.VN[i], "Cable Diode 4A "+GT_Values.VN[i], i,4).getStackForm(1L), + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_Diode.get(1L,ItemList.Circuit_Parts_DiodeSMD.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt04,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode4A[i], + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L,ItemList.Circuit_Parts_Diode.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt04,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode2A[i]=new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset+GT_Values.VN.length+1+i,"Cable Diode 2A "+GT_Values.VN[i], "Cable Diode 2A "+GT_Values.VN[i], i,2).getStackForm(1L), + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_Diode.get(1L,ItemList.Circuit_Parts_DiodeSMD.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt02,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode2A[i], + bitsd, + new Object[]{ + "WDW", + "DCD", + "PDP", + 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L,ItemList.Circuit_Parts_Diode.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt02,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode16A[i]=new GT_MetaTileEntity_Diode(ConfigHandler.IDOffset+GT_Values.VN.length*5+5+i,"Cable Diode 16A "+GT_Values.VN[i], "Cable Diode 16A "+GT_Values.VN[i], i,16).getStackForm(1L), + bitsd, + new Object[]{ + "WHW", + "DCD", + "PDP", + 'H', ItemList.Circuit_Parts_Coil.get(1L), + 'D', ItemList.Circuit_Parts_Diode.get(1L,ItemList.Circuit_Parts_DiodeSMD.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.wireGt16,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + GT_ModHandler.addCraftingRecipe( + ItemRegistry.Diode16A[i], + bitsd, + new Object[]{ + "WHW", + "DCD", + "PDP", + 'H', ItemList.Circuit_Parts_Coil.get(1L), + 'D', ItemList.Circuit_Parts_DiodeSMD.get(1L,ItemList.Circuit_Parts_Diode.get(1L)), + 'W', GT_OreDictUnificator.get(OrePrefixes.wireGt16,cable,1L), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate,hull,1L), + 'C', machinehull + } + ); + }catch(ArrayIndexOutOfBoundsException e){ //e.printStackTrace(); } } + + new GT_TileEntity_ManualTrafo(ConfigHandler.IDOffset+GT_Values.VN.length*6+1,"ManualTravo","ManualTravo"); + //current ID: ConfigHandler.IDOffset+GT_Values.VN.length*6+1 } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_Diode.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_Diode.java new file mode 100644 index 0000000000..0ad4ec3142 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_Diode.java @@ -0,0 +1,40 @@ +package com.github.bartimaeusnek.bartworks.common.tileentities; + +import com.github.bartimaeusnek.bartworks.util.ChatColorHelper; +import gregtech.api.enums.GT_Values; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull; + +public class GT_MetaTileEntity_Diode extends GT_MetaTileEntity_BasicHull { + + private long amps; + + public GT_MetaTileEntity_Diode(int aID, String aName, String aNameRegional, int aTier, int amps) { + super(aID, aName, aNameRegional, aTier, "A Simple diode that will allow Energy Flow in only one direction.", null); + this.amps=amps; + } + + public GT_MetaTileEntity_Diode(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aInvSlotCount, aDescription, aTextures); + } + + @Override + public long maxAmperesOut() { + return amps; + } + + @Override + public long maxAmperesIn() { + return amps; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Diode(this.mName, this.mTier, this.mInventory.length, this.mDescriptionArray, this.mTextures); + } + public String[] getDescription() { + return new String[] {mDescription,"Voltage: "+ ChatColorHelper.YELLOW + GT_Values.V[this.mTier],"Amperage IN: " + ChatColorHelper.YELLOW + maxAmperesIn(),"Amperage OUT: " + ChatColorHelper.YELLOW + maxAmperesOut(), "Added by bartimaeusnek via BartWorks"}; + } +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_EnergyDistributor.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_EnergyDistributor.java index a122310393..239484460e 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_EnergyDistributor.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_MetaTileEntity_EnergyDistributor.java @@ -47,7 +47,7 @@ public class GT_MetaTileEntity_EnergyDistributor extends GT_MetaTileEntity_Trans } public String[] getDescription() { - return new String[] {mDescription,"Voltage: "+ ChatColorHelper.YELLOW +GT_Values.V[this.mTier],"Amperage IN: " + ChatColorHelper.YELLOW + maxAmperesIn(),"Amperage OUT: " + ChatColorHelper.YELLOW + maxAmperesOut()}; + return new String[] {mDescription,"Voltage: "+ ChatColorHelper.YELLOW +GT_Values.V[this.mTier],"Amperage IN: " + ChatColorHelper.YELLOW + maxAmperesIn(),"Amperage OUT: " + ChatColorHelper.YELLOW + maxAmperesOut(), "Added by bartimaeusnek via BartWorks"}; } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_DEHP.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_DEHP.java new file mode 100644 index 0000000000..150678ea23 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_DEHP.java @@ -0,0 +1,65 @@ +package com.github.bartimaeusnek.bartworks.common.tileentities; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.gui.GT_GUIContainer_MultiMachine; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase; +import net.minecraft.entity.player.InventoryPlayer; + +public class GT_TileEntity_DEHP extends GT_MetaTileEntity_DrillerBase { + + public GT_TileEntity_DEHP(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_TileEntity_DEHP(String aName) { + super(aName); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) { + return null; + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "DrillingRig.png"); + } + + @Override + public String[] getDescription() { + return new String[0]; + } + + @Override + protected ItemList getCasingBlockItem() { + return null; + } + + @Override + protected Materials getFrameMaterial() { + return null; + } + + @Override + protected int getCasingTextureIndex() { + return 0; + } + + @Override + protected int getMinTier() { + return 0; + } + + @Override + protected boolean checkHatches() { + return false; + } + + @Override + protected void setElectricityStats() { + + } +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_ManualTrafo.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_ManualTrafo.java new file mode 100644 index 0000000000..2c0c255ce8 --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/GT_TileEntity_ManualTrafo.java @@ -0,0 +1,200 @@ +package com.github.bartimaeusnek.bartworks.common.tileentities; + +import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; +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_Dynamo; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.objects.GT_RenderedTexture; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +import static gregtech.api.enums.GT_Values.V; + +public class GT_TileEntity_ManualTrafo extends GT_MetaTileEntity_MultiBlockBase { + + private byte texid = 2; + private long mCoilWicks = 0; + private boolean upstep = true; + + public GT_TileEntity_ManualTrafo(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GT_TileEntity_ManualTrafo(String aName) { + super(aName); + } + + @Override + public boolean isCorrectMachinePart(ItemStack itemStack) { + return false; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity,aTick); + } + + @Override + public boolean onRunningTick(ItemStack aStack){ + if (this.mEfficiency < this.getMaxEfficiency(null)) + this.mEfficiency += 100; + else + this.mEfficiency = this.getMaxEfficiency(null); + + return this.drainEnergyInput((long)this.mEUt * 2 * this.mEnergyHatches.size()) && this.addEnergyOutput((long)this.mEUt * 2 * this.mEnergyHatches.size() * (long)this.mEfficiency / 10000L); + } + + @Override + public boolean checkRecipe(ItemStack itemStack) { + this.upstep= !(this.mInventory[1] != null && this.mInventory[1].getUnlocalizedName().startsWith("gt.integrated_circuit")); + this.mMaxProgresstime=1; + this.mProgresstime=0; + this.mEfficiency=1000; + this.mEUt= (int) V[this.mEnergyHatches.get(0).mTier]; + return this.upstep ? this.getOutputTier() - this.getInputTier() == mCoilWicks : this.getInputTier() - this.getOutputTier() == mCoilWicks; + } + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack itemStack) { + int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + + //check height + int y = 1; + boolean stillcoil = true; + while (stillcoil) { + for (int x = -1; x <= 1; ++x) { + for (int z = -1; z <= 1; ++z) { + if (x != 0 || z != 0) { + stillcoil = aBaseMetaTileEntity.getBlockOffset(xDir + x, y, zDir + z).equals(ItemRegistry.BW_BLOCKS[2]) && aBaseMetaTileEntity.getMetaIDOffset(xDir + x, y, zDir + z) == 1; + if (stillcoil) { + if (mCoilWicks != 0 && mCoilWicks % 8 == 0) { + ++y; + continue; + } + this.mCoilWicks++; + } else + break; + } + } + if (!stillcoil) + break; + } + } + if (mCoilWicks % 8 != 0) + return false; + + this.mCoilWicks = this.mCoilWicks / 8; + + //check interior (NiFeZn02 Core) + for (int i = 1; i <= this.mCoilWicks; ++i) { + if (!aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).equals(ItemRegistry.BW_BLOCKS[2]) && aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir) == 0) { + return false; + } + } + + //check Bottom + for (int x = -1; x <= 1; ++x) + for (int z = -1; z <= 1; ++z) + if (xDir + x != 0 || zDir + z != 0) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + x, 0, zDir + z); + if (!this.addMaintenanceToMachineList(tTileEntity, texid) && !this.addEnergyInputToMachineList(tTileEntity, texid)) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, 0, zDir + z) != GregTech_API.sBlockCasings1) { + return false; + } + /* + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + x, 0, zDir + z) != 11) { + return false; + } + */ + } + } + + //check Top + for (int x = -1; x <= 1; ++x) + for (int z = -1; z <= 1; ++z) { + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + x, (int) this.mCoilWicks+1, zDir + z); + if (!this.addMaintenanceToMachineList(tTileEntity, texid) && !this.addDynamoToMachineList(tTileEntity, texid)) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + x, (int) this.mCoilWicks+1, zDir + z) != GregTech_API.sBlockCasings1) { + return false; + } + /* + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + x, 0, zDir + z) != 11) { + return false; + } + */ + } + } + + if (this.mDynamoHatches.size() <= 0 || this.mEnergyHatches.size() <= 0 || this.mDynamoHatches.size() > this.mEnergyHatches.size() ) + return false; + + // check dynamos and energy hatches for the same tier + byte outtier = this.mDynamoHatches.get(0).mTier; + for (GT_MetaTileEntity_Hatch_Dynamo out : this.mDynamoHatches){ + if (out.mTier!=outtier) + return false; + } + + byte intier = this.mEnergyHatches.get(0).mTier; + for (GT_MetaTileEntity_Hatch_Energy in : this.mEnergyHatches){ + if (in.mTier!=intier) + return false; + } + + return true; + } + + @Override + public int getMaxEfficiency(ItemStack itemStack) { + return 10000; + } + + @Override + public int getPollutionPerTick(ItemStack itemStack) { + return 0; + } + + @Override + public int getDamageToComponent(ItemStack itemStack) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack itemStack) { + return true; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) { + return new GT_TileEntity_ManualTrafo(mName); + } + + @Override + public String[] getDescription() { + return new String[]{"blalbabla"}; + } + + @Override + public void saveNBTData(NBTTagCompound ntag){ + ntag.setLong("mCoilWicks",mCoilWicks); + super.saveNBTData(ntag); + } + + @Override + public void loadNBTData(NBTTagCompound ntag){ + super.loadNBTData(ntag); + mCoilWicks = ntag.getLong("mCoilWicks"); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return aSide == aFacing ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[texid], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE)} : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[texid]}; + } +} |