diff options
Diffstat (limited to 'src/main/java/GoodGenerator/Blocks')
3 files changed, 129 insertions, 1 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java b/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java index 1f856da921..271079a590 100644 --- a/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java +++ b/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java @@ -1,5 +1,6 @@ package GoodGenerator.Blocks.RegularBlock; +import GoodGenerator.Main.GoodGenerator; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; @@ -9,10 +10,14 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureType; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; + public class Casing extends Block { @SideOnly(Side.CLIENT) @@ -27,6 +32,7 @@ public class Casing extends Block { this.name = name; this.textureNames = texture; this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); GregTech_API.registerMachineBlock(this, -1); } @@ -37,6 +43,7 @@ public class Casing extends Block { this.name = name; this.textureNames = texture; this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); GregTech_API.registerMachineBlock(this, -1); } @@ -47,6 +54,7 @@ public class Casing extends Block { this.name = name; this.textureNames = texture; this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); GregTech_API.registerMachineBlock(this, -1); } @@ -71,6 +79,15 @@ public class Casing extends Block { } @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < this.textureNames.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); diff --git a/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java new file mode 100644 index 0000000000..5c2a76170e --- /dev/null +++ b/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java @@ -0,0 +1,111 @@ +package GoodGenerator.Blocks.TEs; + +import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; +import com.github.technus.tectech.mechanics.constructable.IConstructable; +import com.github.technus.tectech.mechanics.structure.IStructureDefinition; +import com.github.technus.tectech.mechanics.structure.StructureDefinition; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectSourceHelper; + +import java.util.ArrayList; +import java.util.List; + +import static com.github.technus.tectech.mechanics.structure.StructureUtility.transpose; + +public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { + + private IStructureDefinition<LargeEssentiaGenerator> multiDefinition = null; + protected List<Aspect> mAvailableAspects; + protected final int MAX_RANGE = 20; + protected final int ENERGY_PER_ESSENTIA = 512; + + public LargeEssentiaGenerator(String name){ + super(name); + } + + public LargeEssentiaGenerator(int id, String name, String nameRegional){ + super(id,name,nameRegional); + } + + @Override + public List<GT_MetaTileEntity_Hatch_Energy> getVanillaEnergyHatches() { + return this.mEnergyHatches; + } + + @Override + public List<GT_MetaTileEntity_Hatch_EnergyTunnel> getTecTechEnergyTunnels() { + return new ArrayList<>(); + } + + @Override + public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() { + return new ArrayList<>(); + } + + @Override + public void construct(ItemStack itemStack, boolean b) { + + } + + @Override + public IStructureDefinition<LargeEssentiaGenerator> getStructure_EM() { + if(multiDefinition == null) { + multiDefinition = StructureDefinition + .<LargeEssentiaGenerator>builder() + .addShape(mName, + transpose(new String[][]{ + {}, + {}, + {}, + {}, + {}, + {}, + {} + }) + ) + .build(); + } + return multiDefinition; + } + + List<Aspect> getAvailableAspects() { + return mAvailableAspects; + } + + private long absorbFromEssentiaContainers() { + long tEU = 0; + + long tEUtoGen = getBaseMetaTileEntity().getEUCapacity() - getBaseMetaTileEntity().getUniversalEnergyStored(); + List<Aspect> mAvailableEssentiaAspects = getAvailableAspects(); + + for (int i = mAvailableEssentiaAspects.size() - 1; i >= 0 && tEUtoGen > 0; i--) { + Aspect aspect = mAvailableEssentiaAspects.get(i); + long tAspectEU = (ENERGY_PER_ESSENTIA * mEfficiency) / 100; + if (tAspectEU <= tEUtoGen + && AspectSourceHelper.drainEssentia((TileEntity) getBaseMetaTileEntity(), aspect, ForgeDirection.UNKNOWN, MAX_RANGE)) { + tEUtoGen -= tAspectEU; + tEU += tAspectEU; + } + } + return tEU; + } + + @Override + public String[] getStructureDescription(ItemStack itemStack) { + return new String[0]; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new LargeEssentiaGenerator(this.mName); + } +} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java index f5aa0af2e0..f2f9279b37 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java @@ -275,7 +275,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implem else this.mOutputFluids = null; if (tFluids.contains(Materials.LiquidAir.getFluid(120)) && tFluids.get(tFluids.indexOf(Materials.LiquidAir.getFluid(120))).amount >= 120){ depleteInput(Materials.LiquidAir.getFluid(120)); - addAutoEnergy((long)(outputEU*times*booster)); + addAutoEnergy((long)(((long)outputEU)*(times*booster))); this.mEUt = (int)(outputEU*times*booster); } else{ |