diff options
author | Tec <daniel112092@gmail.com> | 2018-05-03 12:54:56 +0200 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2018-05-03 12:54:56 +0200 |
commit | 1b55c86a105a4d45cc974b2e4d773cc17e8b89e3 (patch) | |
tree | 894665473378f32559e8774dc6f0b26298e7a3fb /src | |
parent | d8255da9a3a06aeb3d396bcdaab28220d932e2c7 (diff) | |
download | GT5-Unofficial-1b55c86a105a4d45cc974b2e4d773cc17e8b89e3.tar.gz GT5-Unofficial-1b55c86a105a4d45cc974b2e4d773cc17e8b89e3.tar.bz2 GT5-Unofficial-1b55c86a105a4d45cc974b2e4d773cc17e8b89e3.zip |
Add proper reflection for GT++ hi amp trafos, add adjustable stepdown trafos - buck converters, fix issue when the machine active state was not updateing properly (visual)
Diffstat (limited to 'src')
13 files changed, 507 insertions, 37 deletions
diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java index 7695471327..3dc8d2aed7 100644 --- a/src/main/java/com/github/technus/tectech/TecTech.java +++ b/src/main/java/com/github/technus/tectech/TecTech.java @@ -60,13 +60,16 @@ public class TecTech { } } - @Mod.EventHandler - public void PreLoad(FMLPreInitializationEvent PreEvent) { + static { for(int i=0;i<16;i++){ GT_Values.V[i]=V[i]; GT_Values.VN[i]=VN[i]; GT_Values.VOLTAGE_NAMES[i]=VOLTAGE_NAMES[i]; } + } + + @Mod.EventHandler + public void PreLoad(FMLPreInitializationEvent PreEvent) { Logger.setDebugOutput(true); dyeLightBlue.mRGBa[0]=96; diff --git a/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/NoDreamCraftMachineLoader.java b/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/NoDreamCraftMachineLoader.java index 7f2c9ede64..b36f880b56 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/NoDreamCraftMachineLoader.java +++ b/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/NoDreamCraftMachineLoader.java @@ -1,11 +1,17 @@ package com.github.technus.tectech.compatibility.dreamcraft; +import com.github.technus.tectech.Util; import com.github.technus.tectech.thing.CustomItemList; import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_WetTransformer; import cpw.mods.fml.common.Loader; +import gregtech.api.enums.GT_Values; +import gregtech.api.interfaces.ITexture; import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; public class NoDreamCraftMachineLoader implements Runnable{ @@ -74,31 +80,76 @@ public class NoDreamCraftMachineLoader implements Runnable{ if (Loader.isModLoaded("miscutils")) { try { Class clazz = Class.forName("gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMetaTransformerHiAmp"); - Constructor<MetaTileEntity> constructor=clazz.getConstructor(int.class,String.class,String.class,int.class,String.class); - CustomItemList.Transformer_HA_UEV_UHV.set( - (constructor.newInstance( - 11989, "transformer.ha.tier.09", "Highly Ultimate Hi-Amp Transformer", 9, - "UEV -> UHV (Use Soft Mallet to invert)")).getStackForm(1)); - CustomItemList.Transformer_HA_UIV_UEV.set( - (constructor.newInstance( - 11910, "transformer.ha.tier.10", "Extremely Ultimate Hi-Amp Transformer", 10, - "UIV -> UEV (Use Soft Mallet to invert)")).getStackForm(1)); - CustomItemList.Transformer_HA_UMV_UIV.set( - (constructor.newInstance( - 11911, "transformer.ha.tier.11", "Insanely Ultimate Hi-Amp Transformer", 11, - "UMV -> UIV (Use Soft Mallet to invert)")).getStackForm(1)); - CustomItemList.Transformer_HA_UXV_UMV.set( - (constructor.newInstance( - 11912, "transformer.ha.tier.12", "Mega Ultimate Hi-Amp Transformer", 12, - "UXV -> UMV (Use Soft Mallet to invert)")).getStackForm(1)); - CustomItemList.Transformer_HA_OPV_UXV.set( - (constructor.newInstance( - 11913, "transformer.ha.tier.13", "Extended Mega Ultimate Hi-Amp Transformer", 13, - "OPV -> UXV (Use Soft Mallet to invert)")).getStackForm(1)); - CustomItemList.Transformer_HA_MAXV_OPV.set( - (constructor.newInstance( - 11914, "transformer.ha.tier.14", "Overpowered Hi-Amp Transformer", 14, - "MAX -> OPV (Use Soft Mallet to invert)")).getStackForm(1)); + Constructor<MetaTileEntity> constructor = clazz.getConstructor(int.class, String.class, String.class, int.class, String.class); + + Method method = null; + Field field = null; + Object iTexture=new ITexture[0]; + if (GT_Values.GT.isClientSide()) { + method = GT_MetaTileEntity_TieredMachineBlock.class.getMethod("getTextureSet", ITexture[].class); + field = GT_MetaTileEntity_TieredMachineBlock.class.getField("mTextures"); + field.setAccessible(true); + } + + MetaTileEntity temp = constructor.newInstance( + 11989, "transformer.ha.tier.09", "Highly Ultimate Hi-Amp Transformer", 9, + "UEV -> UHV (Use Soft Mallet to invert)"); + //Util.setTier(9, temp); + //if (GT_Values.GT.isClientSide()) { + // field.set(temp, + // method.invoke(temp, iTexture)); + //} + CustomItemList.Transformer_HA_UEV_UHV.set(temp.getStackForm(1)); + + temp = constructor.newInstance( + 11910, "transformer.ha.tier.10", "Extremely Ultimate Hi-Amp Transformer", 10, + "UIV -> UEV (Use Soft Mallet to invert)"); + Util.setTier(10, temp); + if (GT_Values.GT.isClientSide()) { + field.set(temp, + method.invoke(temp, iTexture)); + } + CustomItemList.Transformer_HA_UIV_UEV.set(temp.getStackForm(1)); + + temp = constructor.newInstance( + 11911, "transformer.ha.tier.11", "Insanely Ultimate Hi-Amp Transformer", 11, + "UMV -> UIV (Use Soft Mallet to invert)"); + Util.setTier(11, temp); + if (GT_Values.GT.isClientSide()) { + field.set(temp, + method.invoke(temp, iTexture)); + } + CustomItemList.Transformer_HA_UMV_UIV.set(temp.getStackForm(1)); + + temp = constructor.newInstance( + 11912, "transformer.ha.tier.12", "Mega Ultimate Hi-Amp Transformer", 12, + "UXV -> UMV (Use Soft Mallet to invert)"); + Util.setTier(12, temp); + if (GT_Values.GT.isClientSide()) { + field.set(temp, + method.invoke(temp, iTexture)); + } + CustomItemList.Transformer_HA_UXV_UMV.set(temp.getStackForm(1)); + + temp = constructor.newInstance( + 11913, "transformer.ha.tier.13", "Extended Mega Ultimate Hi-Amp Transformer", 13, + "OPV -> UXV (Use Soft Mallet to invert)"); + Util.setTier(13, temp); + if (GT_Values.GT.isClientSide()) { + field.set(temp, + method.invoke(temp, iTexture)); + } + CustomItemList.Transformer_HA_OPV_UXV.set(temp.getStackForm(1)); + + temp = constructor.newInstance( + 11914, "transformer.ha.tier.14", "Overpowered Hi-Amp Transformer", 14, + "MAX -> OPV (Use Soft Mallet to invert)"); + Util.setTier(14, temp); + if (GT_Values.GT.isClientSide()) { + field.set(temp, + method.invoke(temp, iTexture)); + } + CustomItemList.Transformer_HA_MAXV_OPV.set(temp.getStackForm(1)); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java b/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java index f95cd04619..66b0d7ffa3 100644 --- a/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java @@ -546,6 +546,14 @@ public class BloodyRecipeLoader implements Runnable { //endregion + //ha trafos + //if(Loader.isModLoaded("miscutils")){ + // GT_Values.RA.addAssemblerRecipe(CustomItemList.HA) + //} + + //power trafos + //GT_Values.RA.addAssemblerRecipe() + register_machine_EM_behaviours(); } diff --git a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java index fdc02c708a..845c1ade65 100644 --- a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java @@ -9,10 +9,7 @@ import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEnt import com.github.technus.tectech.thing.metaTileEntity.multi.em_machine.GT_MetaTileEntity_EM_machine; import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Data; import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_EM; -import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_DataReader; -import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_DebugPowerGenerator; -import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_DebugStructureWriter; -import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_OwnerDetector; +import com.github.technus.tectech.thing.metaTileEntity.single.*; import cpw.mods.fml.common.Loader; import static com.github.technus.tectech.thing.CustomItemList.*; @@ -298,6 +295,16 @@ public class MachineLoader implements Runnable { Machine_OwnerDetector.set(new GT_MetaTileEntity_OwnerDetector(15480, "machine.tt.ownerdetector", "Owner detector", 3).getStackForm(1L)); Machine_DataReader.set(new GT_MetaTileEntity_DataReader(15481, "machine.tt.datareader", "Data Reader", 5).getStackForm(1L)); + Machine_BuckConverter_IV.set(new GT_MetaTileEntity_BuckConverter(15485, "machine.tt.buck", "Insane Buck Converter", 5).getStackForm(1L)); + Machine_BuckConverter_LuV.set(new GT_MetaTileEntity_BuckConverter(15486, "machine.tt.buck", "Ludicrous Buck Converter", 6).getStackForm(1L)); + Machine_BuckConverter_ZPM.set(new GT_MetaTileEntity_BuckConverter(15487, "machine.tt.buck", "ZPM Voltage Buck Converter", 7).getStackForm(1L)); + Machine_BuckConverter_UV.set(new GT_MetaTileEntity_BuckConverter(15488, "machine.tt.buck", "Ultimate Power Buck Converter", 8).getStackForm(1L)); + Machine_BuckConverter_UHV.set(new GT_MetaTileEntity_BuckConverter(15489, "machine.tt.buck", "Highly Ultimate Buck Converter", 9).getStackForm(1L)); + Machine_BuckConverter_UEV.set(new GT_MetaTileEntity_BuckConverter(15490, "machine.tt.buck", "Extremely Ultimate Buck Converter", 10).getStackForm(1L)); + Machine_BuckConverter_UIV.set(new GT_MetaTileEntity_BuckConverter(15491, "machine.tt.buck", "Insanely Ultimate Buck Converter", 11).getStackForm(1L)); + Machine_BuckConverter_UMV.set(new GT_MetaTileEntity_BuckConverter(15492, "machine.tt.buck", "Mega Ultimate Buck Converter", 12).getStackForm(1L)); + Machine_BuckConverter_UXV.set(new GT_MetaTileEntity_BuckConverter(15493, "machine.tt.buck", "Extended Mega Ultimate Buck Converter", 13).getStackForm(1L)); + // =================================================================================================== // Debug Stuff // =================================================================================================== diff --git a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java index 9c7fe1167d..ce27472404 100644 --- a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java @@ -86,7 +86,7 @@ public class RecipeLoader implements Runnable { 'E', ItemList.Hull_IV}); //Data Bank - GT_Values.RA.addAssemblylineRecipe(ItemList.Hatch_DataAccess_EV.get(1), 20000, new ItemStack[]{ + RA.addAssemblylineRecipe(ItemList.Hatch_DataAccess_EV.get(1), 20000, new ItemStack[]{ CustomItemList.Machine_Multi_Switch.get(1), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2), ItemList.Tool_DataOrb.get(1), @@ -97,6 +97,9 @@ public class RecipeLoader implements Runnable { }, CustomItemList.Machine_Multi_DataBank.get(1), 12000, 14000); //CustomItemList.Machine_Multi_DataBank + //Bucks + //RA.addAssemblerRecipe(CustomItemList.) + //recipe for ass line data hatches RA.addAssemblerRecipe(ItemList.Hatch_DataAccess_EV.get(1), CustomItemList.dataIn_Hatch.get(1), CustomItemList.dataInAss_Hatch.get(1), 2048, 12000); RA.addAssemblerRecipe(ItemList.Hatch_DataAccess_EV.get(1), CustomItemList.dataOut_Hatch.get(1), CustomItemList.dataOutAss_Hatch.get(1), 2048, 12000); diff --git a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java index f6d2a63954..254a567bc8 100644 --- a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java +++ b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java @@ -21,6 +21,9 @@ public enum CustomItemList implements IItemContainer { hatch_CreativeMaitenance, Machine_OwnerDetector,Machine_DataReader, + Machine_BuckConverter_IV,Machine_BuckConverter_LuV,Machine_BuckConverter_ZPM, + Machine_BuckConverter_UV,Machine_BuckConverter_UHV,Machine_BuckConverter_UEV, + Machine_BuckConverter_UIV,Machine_BuckConverter_UMV, Machine_BuckConverter_UXV, Machine_DebugWriter,Machine_DebugGenny, EMpipe, DATApipe, rack_Hatch, holder_Hatch, capacitor_Hatch, diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java index 83493e562b..b636fd7e5e 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java @@ -159,11 +159,11 @@ public class Textures { MACHINE_CASINGS_TT[i][j] = new GT_SidedTexture(MACHINECASINGS_BOTTOM_TT[i], MACHINECASINGS_TOP_TT[i], MACHINECASINGS_SIDE_TT[i], Dyes.getModulation(j - 1, MACHINE_METAL.mRGBa)); } } - //for (byte i = 0; i < MACHINE_CASINGS.length; i++) { - // for (byte j = 0; j < MACHINE_CASINGS[i].length; j++) { - // MACHINE_CASINGS_TT[i][j] = MACHINE_CASINGS[i][j]; - // } - //} MACHINE_CASINGS=MACHINE_CASINGS_TT; + + OVERLAYS_ENERGY_IN=OVERLAYS_ENERGY_IN_TT; + OVERLAYS_ENERGY_OUT=OVERLAYS_ENERGY_OUT_TT; + OVERLAYS_ENERGY_IN_MULTI=OVERLAYS_ENERGY_IN_MULTI_TT; + OVERLAYS_ENERGY_OUT_MULTI=OVERLAYS_ENERGY_OUT_MULTI_TT; } }
\ No newline at end of file diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_BuckConverter.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_BuckConverter.java new file mode 100644 index 0000000000..f90e7ef04f --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_BuckConverter.java @@ -0,0 +1,208 @@ +package com.github.technus.tectech.thing.metaTileEntity.single; + +import com.github.technus.tectech.CommonValues; +import com.github.technus.tectech.Util; +import com.github.technus.tectech.thing.metaTileEntity.single.gui.GT_Container_BuckConverter; +import com.github.technus.tectech.thing.metaTileEntity.single.gui.GT_GUIContainer_BuckConverter; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Utility; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; + +import static com.github.technus.tectech.thing.metaTileEntity.Textures.OVERLAYS_ENERGY_IN_POWER_TT; +import static com.github.technus.tectech.thing.metaTileEntity.Textures.OVERLAYS_ENERGY_OUT_POWER_TT; +import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS; + +public class GT_MetaTileEntity_BuckConverter extends GT_MetaTileEntity_TieredMachineBlock { + private static GT_RenderedTexture BUCK,BUCK_ACTIVE; + public int EUT=0,AMP=0; + public boolean enabled = true; + + public GT_MetaTileEntity_BuckConverter(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 0, "Power from nothing"); + Util.setTier(aTier,this); + } + + public GT_MetaTileEntity_BuckConverter(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_BuckConverter(mName, mTier, mDescription, mTextures); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister aBlockIconRegister) { + super.registerIcons(aBlockIconRegister); + BUCK = new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("iconsets/BUCK")); + BUCK_ACTIVE = new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("iconsets/BUCK_ACTIVE")); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{MACHINE_CASINGS[mTier][aColorIndex + 1], aSide == aFacing ? (aActive?BUCK_ACTIVE:BUCK) : + (aSide==GT_Utility.getOppositeSide(aFacing)? + OVERLAYS_ENERGY_IN_POWER_TT[mTier]: + (aActive ? OVERLAYS_ENERGY_OUT_POWER_TT[mTier] : OVERLAYS_ENERGY_IN_POWER_TT[mTier]))}; + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return null; + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_BuckConverter(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_BuckConverter(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public boolean allowPutStack(IGregTechTileEntity iGregTechTileEntity, int i, byte b, ItemStack itemStack) { + return false; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity iGregTechTileEntity, int i, byte b, ItemStack itemStack) { + return false; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("eEUT",EUT); + aNBT.setInteger("eAMP",AMP); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + EUT=aNBT.getInteger("eEUT"); + AMP=aNBT.getInteger("eAMP"); + enabled = (long)AMP*EUT >=0; + getBaseMetaTileEntity().setActive(enabled); + } + + @Override + public boolean isSimpleMachine() { + return false; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) { + return true; + } + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide() && (aTick & 0xF) == 0) { + if(aBaseMetaTileEntity.isActive()) { + aBaseMetaTileEntity.decreaseStoredEnergyUnits(CommonValues.V[mTier] >> 2, true); + } + aBaseMetaTileEntity.setActive(enabled); + } + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public String[] getDescription() { + return new String[]{ + CommonValues.TEC_MARK_GENERAL, mDescription, + EnumChatFormatting.BLUE + "Adjustable step down transformer", + EnumChatFormatting.BLUE + "Switching power supply..." + }; + } + + @Override + public boolean isElectric() { + return true; + } + + @Override + public boolean isEnetOutput() { + return true; + } + + @Override + public boolean isEnetInput() { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getBackFacing(); + } + + @Override + public boolean isOutputFacing(byte aSide) { + return enabled && aSide != getBaseMetaTileEntity().getFrontFacing() && aSide != getBaseMetaTileEntity().getBackFacing(); + } + + @Override + public long maxAmperesIn() { + return 2; + } + + @Override + public long maxAmperesOut() { + return enabled?Math.min(Math.abs(AMP),64):0; + } + + @Override + public long maxEUInput() { + return CommonValues.V[mTier]; + } + + @Override + public long maxEUOutput() { + return enabled?Math.min(Math.abs(EUT),maxEUInput()):0; + } + + @Override + public long maxEUStore() { + return CommonValues.V[mTier]<<4; + } + + @Override + public long getMinimumStoredEU() { + return CommonValues.V[mTier]<<2; + } + + @Override + public int getProgresstime() { + return (int) getBaseMetaTileEntity().getUniversalEnergyStored(); + } + + @Override + public int maxProgresstime() { + return (int) getBaseMetaTileEntity().getUniversalEnergyCapacity(); + } +} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_BuckConverter.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_BuckConverter.java new file mode 100644 index 0000000000..58e87e3990 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_BuckConverter.java @@ -0,0 +1,151 @@ +package com.github.technus.tectech.thing.metaTileEntity.single.gui; + +import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_BuckConverter; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class GT_Container_BuckConverter + extends GT_ContainerMetaTile_Machine { + public int EUT=0,AMP=0; + + public GT_Container_BuckConverter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 59, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 59, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 59, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 59, false, false, 1)); + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + if (aSlotIndex < 0) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + Slot tSlot = (Slot) inventorySlots.get(aSlotIndex); + if (tSlot != null && mTileEntity.getMetaTileEntity() != null) { + GT_MetaTileEntity_BuckConverter buck = (GT_MetaTileEntity_BuckConverter) mTileEntity.getMetaTileEntity(); + switch (aSlotIndex) { + case 0: + buck.EUT -= aShifthold == 1 ? 512 : 64; + break; + case 1: + buck.EUT /= aShifthold == 1 ? 512 : 64; + break; + case 2: + buck.AMP -= aShifthold == 1 ? 512 : 64; + break; + case 3: + buck.AMP /= aShifthold == 1 ? 512 : 64; + break; + case 4: + buck.EUT -= aShifthold == 1 ? 16 : 1; + break; + case 5: + buck.EUT /= aShifthold == 1 ? 16 : 2; + break; + case 6: + buck.AMP -= aShifthold == 1 ? 16 : 1; + break; + case 7: + buck.AMP /= aShifthold == 1 ? 16 : 2; + break; + case 8: + buck.EUT += aShifthold == 1 ? 512 : 64; + break; + case 9: + buck.EUT *= aShifthold == 1 ? 512 : 64; + break; + case 10: + buck.AMP += aShifthold == 1 ? 512 : 64; + break; + case 11: + buck.AMP *= aShifthold == 1 ? 512 : 64; + break; + case 12: + buck.EUT += aShifthold == 1 ? 16 : 1; + break; + case 13: + buck.EUT *= aShifthold == 1 ? 16 : 2; + break; + case 14: + buck.AMP += aShifthold == 1 ? 16 : 1; + break; + case 15: + buck.AMP *= aShifthold == 1 ? 16 : 2; + break; + default: return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + buck.enabled =(long)AMP*EUT>=0; + return null; + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) { + return; + } + + GT_MetaTileEntity_BuckConverter buck = (GT_MetaTileEntity_BuckConverter) mTileEntity.getMetaTileEntity(); + EUT=buck.EUT; + AMP=buck.AMP; + buck.enabled =(long)AMP*EUT>=0; + + for (Object crafter : crafters) { + ICrafting var1 = (ICrafting) crafter; + var1.sendProgressBarUpdate(this, 100, EUT & 0xFFFF); + var1.sendProgressBarUpdate(this, 101, EUT >>> 16); + var1.sendProgressBarUpdate(this, 102, AMP & 0xFFFF); + var1.sendProgressBarUpdate(this, 103, AMP >>> 16); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2) { + super.updateProgressBar(par1, par2); + switch (par1) { + case 100: + EUT = EUT & 0xFFFF0000 | par2; + break; + case 101: + EUT = EUT & 0xFFFF | par2 << 16; + break; + case 102: + AMP = AMP & 0xFFFF0000 | par2; + break; + case 103: + AMP = AMP & 0xFFFF | par2 << 16; + break; + } + } +} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_DebugPowerGenerator.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_DebugPowerGenerator.java index 9d7c5293b3..b4cea250ed 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_DebugPowerGenerator.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_DebugPowerGenerator.java @@ -118,6 +118,7 @@ public class GT_Container_DebugPowerGenerator GT_MetaTileEntity_DebugPowerGenerator dpg = (GT_MetaTileEntity_DebugPowerGenerator) mTileEntity.getMetaTileEntity(); EUT=dpg.EUT; AMP=dpg.AMP; + dpg.producing =(long)AMP*EUT>=0; for (Object crafter : crafters) { ICrafting var1 = (ICrafting) crafter; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_BuckConverter.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_BuckConverter.java new file mode 100644 index 0000000000..946006c8fa --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_BuckConverter.java @@ -0,0 +1,35 @@ +package com.github.technus.tectech.thing.metaTileEntity.single.gui; + +import com.github.technus.tectech.Util; +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; + +import static com.github.technus.tectech.CommonValues.VN; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; + +public class GT_GUIContainer_BuckConverter extends GT_GUIContainerMetaTile_Machine { + public GT_GUIContainer_BuckConverter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new GT_Container_BuckConverter(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "Teleporter.png"); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + fontRendererObj.drawString("Buck Converter", 46, 8, 16448255); + if (mContainer != null) { + GT_Container_BuckConverter buck = (GT_Container_BuckConverter) mContainer; + fontRendererObj.drawString("EUT: " + buck.EUT, 46, 24, 16448255); + fontRendererObj.drawString("TIER: " + VN[Util.getTier(buck.EUT<0?-buck.EUT:buck.EUT)], 46, 32, 16448255); + fontRendererObj.drawString("AMP: " + buck.AMP, 46, 40, 16448255); + fontRendererObj.drawString("SUM: " + (long)buck.AMP*buck.EUT, 46, 48, 16448255); + } + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + super.drawGuiContainerBackgroundLayer(par1, par2, par3); + int x = (width - xSize) / 2; + int y = (height - ySize) / 2; + drawTexturedModalRect(x, y, 0, 0, xSize, ySize); + } +} diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK.png Binary files differnew file mode 100644 index 0000000000..6aa75eff68 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK_ACTIVE.png Binary files differnew file mode 100644 index 0000000000..b8333cd837 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK_ACTIVE.png |