diff options
Diffstat (limited to 'src/main/java/GoodGenerator/Blocks')
-rw-r--r-- | src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java | 143 |
1 files changed, 137 insertions, 6 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java index 62b544d97e..405acd20f0 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java @@ -1,5 +1,6 @@ package GoodGenerator.Blocks.TEs; +import GoodGenerator.Loader.Loaders; import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; import com.github.technus.tectech.mechanics.constructable.IConstructable; import com.github.technus.tectech.mechanics.structure.IStructureDefinition; @@ -7,15 +8,22 @@ 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.GregTech_API; +import gregtech.api.enums.ItemList; +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_Energy; +import gregtech.api.metatileentity.implementations.*; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.render.TextureFactory; import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.List; -import static com.github.technus.tectech.mechanics.structure.StructureUtility.transpose; +import static com.github.technus.tectech.mechanics.structure.StructureUtility.*; +import static gregtech.api.enums.Textures.BlockIcons.*; public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { @@ -27,6 +35,58 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas super(id,name,nameRegional); } + public final boolean addMaintenance(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); + } + } + return false; + } + + public final boolean addMuffler(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler)aMetaTileEntity); + } + } + return false; + } + + public final boolean addInputHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + } + } + return false; + } + + public final boolean addDynamoHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); + } + } + return false; + } + @Override public IStructureDefinition<UniversalChemicalFuelEngine> getStructure_EM(){ if (multiDefinition == null){ @@ -35,10 +95,59 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas .addShape(mName, transpose(new String[][]{ {"TTTTT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTTTT"}, - {"TTTTT","SPCCI","SPCCI","SPCCI","SPCCI","SPCCI","SPCCI","SPCCI","TTTTT"}, - {"TT~TT","SPGGI","SPGGI","SPGGI","SPGGI","SPGGI","SPGGI","SPGGI","TTETT"}, + {"TTTTT","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","TTTTT"}, + {"TT~TT","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","TTETT"}, {"TTWTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT"} }) + ).addElement( + 'T', + ofBlockAnyMeta( + GregTech_API.sBlockCasings4, 2 + ) + ).addElement( + 'W', + ofHatchAdder( + UniversalChemicalFuelEngine::addMaintenance, 50, + 1 + ) + ).addElement( + 'M', + ofHatchAdder( + UniversalChemicalFuelEngine::addMuffler, 50, + 2 + ) + ).addElement( + 'S', + ofHatchAdder( + UniversalChemicalFuelEngine::addInputHatch, 50, + 3 + ) + ).addElement( + 'E', + ofHatchAdder( + UniversalChemicalFuelEngine::addDynamoHatch, 50, + 4 + ) + ).addElement( + 'P', + ofBlockAnyMeta( + GregTech_API.sBlockCasings2, 14 + ) + ).addElement( + 'C', + ofBlockAnyMeta( + Loaders.titaniumPlatedCylinder + ) + ).addElement( + 'G', + ofBlockAnyMeta( + GregTech_API.sBlockCasings2, 4 + ) + ).addElement( + 'I', + ofBlockAnyMeta( + GregTech_API.sBlockCasings4, 13 + ) ) .build(); } @@ -46,8 +155,13 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas } @Override - public void construct(ItemStack itemStack, boolean b) { + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + return structureCheck_EM(mName, 2, 2, 0); + } + @Override + public void construct(ItemStack itemStack, boolean b) { + structureBuild_EM(mName, 2, 2, 0, b, itemStack); } @Override @@ -61,6 +175,23 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas } @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone){ + if(aSide == aFacing){ + if(aActive) return new ITexture[]{ + casingTexturePages[0][50], + TextureFactory.of(OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE), + TextureFactory.builder().addIcon(OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE_GLOW).glow().build() + }; + return new ITexture[]{ + casingTexturePages[0][50], + TextureFactory.of(OVERLAY_FRONT_DIESEL_ENGINE), + TextureFactory.builder().addIcon(OVERLAY_FRONT_DIESEL_ENGINE_GLOW).glow().build() + }; + } + return new ITexture[]{casingTexturePages[0][50]}; + } + + @Override public List<GT_MetaTileEntity_Hatch_Energy> getVanillaEnergyHatches() { return this.mEnergyHatches; } @@ -77,6 +208,6 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new MultiNqGenerator(this.mName); + return new UniversalChemicalFuelEngine(this.mName); } } |