aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2018-05-03 12:54:56 +0200
committerTec <daniel112092@gmail.com>2018-05-03 12:54:56 +0200
commit1b55c86a105a4d45cc974b2e4d773cc17e8b89e3 (patch)
tree894665473378f32559e8774dc6f0b26298e7a3fb /src
parentd8255da9a3a06aeb3d396bcdaab28220d932e2c7 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/com/github/technus/tectech/TecTech.java7
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/dreamcraft/NoDreamCraftMachineLoader.java101
-rw-r--r--src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java8
-rw-r--r--src/main/java/com/github/technus/tectech/loader/MachineLoader.java15
-rw-r--r--src/main/java/com/github/technus/tectech/loader/RecipeLoader.java5
-rw-r--r--src/main/java/com/github/technus/tectech/thing/CustomItemList.java3
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_BuckConverter.java208
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_BuckConverter.java151
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_DebugPowerGenerator.java1
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_BuckConverter.java35
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK.pngbin0 -> 351 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK_ACTIVE.pngbin0 -> 351 bytes
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
new file mode 100644
index 0000000000..6aa75eff68
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK.png
Binary files differ
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
new file mode 100644
index 0000000000..b8333cd837
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/BUCK_ACTIVE.png
Binary files differ