diff options
| author | GlodBlock <1356392126@qq.com> | 2021-07-21 23:04:58 +0800 |
|---|---|---|
| committer | GlodBlock <1356392126@qq.com> | 2021-07-21 23:04:58 +0800 |
| commit | 923660facf7b690ccfd20a718e0d9ea8157e865f (patch) | |
| tree | 328d956233a82d8fe756ca909f426ffec7246730 /src/main/java/GoodGenerator/Blocks | |
| parent | fec7c69632f9e1dad46e0471d73fb8be688c5320 (diff) | |
| download | GT5-Unofficial-923660facf7b690ccfd20a718e0d9ea8157e865f.tar.gz GT5-Unofficial-923660facf7b690ccfd20a718e0d9ea8157e865f.tar.bz2 GT5-Unofficial-923660facf7b690ccfd20a718e0d9ea8157e865f.zip | |
fix some check bug
Diffstat (limited to 'src/main/java/GoodGenerator/Blocks')
3 files changed, 65 insertions, 37 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java index 9ec679044a..93e6f0e6f9 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java @@ -5,13 +5,18 @@ import GoodGenerator.util.DescTextLocalization; import GoodGenerator.util.MyRecipeAdder; import com.github.bartimaeusnek.bartworks.util.Coords; import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; +import com.github.technus.tectech.TecTech; import com.github.technus.tectech.mechanics.constructable.IConstructable; import com.github.technus.tectech.mechanics.structure.IStructureDefinition; +import com.github.technus.tectech.mechanics.structure.IStructureElement; 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.HeatingCoilLevel; import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IHeatingCoil; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -21,6 +26,7 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.common.blocks.GT_Block_Casings5; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -41,6 +47,7 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple private IStructureDefinition<FuelRefineFactory> multiDefinition = null; private int Tier = -1; + private static final Block[] coils = new Block[]{Loaders.FRF_Coil_1,Loaders.FRF_Coil_2,Loaders.FRF_Coil_3}; private final HashSet<Coords> vis = new HashSet<>(64); public FuelRefineFactory(String name){super(name);} @@ -105,37 +112,53 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple ) ).addElement( 'C', - ofBlockAnyMeta( - Loaders.FRF_Casings + ofBlock( + Loaders.FRF_Casings,0 ) ).addElement( 'G', - ofBlockAnyMeta( - Loaders.fieldRestrictingGlass + ofBlock( + Loaders.fieldRestrictingGlass,0 ) ).addElement( 'F', - ofChain( - ofBlock( - Loaders.FRF_Coil_1,0 - ), - ofBlock( - Loaders.FRF_Coil_2,0 - ), - ofBlock( - Loaders.FRF_Coil_3,0 - ), - ofBlockHint( - Loaders.FRF_Coil_1,0 - ) - - ) + ofFieldCoil() ) .build(); } return multiDefinition; } + public static <T> IStructureElement<T> ofFieldCoil() { + return new IStructureElement<T>() { + @Override + public boolean check(T t, World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + for (Block tBlock : coils) { + if (tBlock.equals(block)) return true; + } + return false; + } + + @Override + public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { + TecTech.proxy.hint_particle(world, x, y, z, coils[getIndex(trigger)], 0); + return true; + } + + private int getIndex(ItemStack trigger) { + int s = trigger.stackSize; + if (s > 3 || s <= 0) s = 3; + return s - 1; + } + + @Override + public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { + return world.setBlock(x, y, z, coils[getIndex(trigger)], 0, 3); + } + }; + } + //In fact, this check method can't check structure correctly... public boolean checkCoil(){ IGregTechTileEntity aTile = this.getBaseMetaTileEntity(); @@ -212,12 +235,6 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple @Override public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - mWrench = true; - mScrewdriver = true; - mSoftHammer = true; - mHardHammer = true; - mSolderingTool = true; - mCrowbar = true; return structureCheck_EM(mName, 7,12,1) && checkCoil(); } @@ -304,6 +321,17 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple } @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; + } + + @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new FuelRefineFactory(this.mName); } diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java index fdbe5bcdd6..ee0fb9261f 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java @@ -111,22 +111,22 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implem ) ).addElement( 'A', - ofBlockAnyMeta( + ofBlock( GregTech_API.sBlockCasings3, 12 ) ).addElement( 'N', - ofBlockAnyMeta( - Loaders.radiationProtectionSteelFrame + ofBlock( + Loaders.radiationProtectionSteelFrame, 0 ) ).addElement( 'C', - ofBlockAnyMeta( - Loaders.MAR_Casing + ofBlock( + Loaders.MAR_Casing, 0 ) ).addElement( 'P', - ofBlockAnyMeta( + ofBlock( GregTech_API.sBlockCasings2,15 ) ) diff --git a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java index cc689e39e1..0a29bc16c2 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java @@ -113,7 +113,7 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas }) ).addElement( 'T', - ofBlockAnyMeta( + ofBlock( GregTech_API.sBlockCasings4, 2 ) ).addElement( @@ -142,22 +142,22 @@ public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBas ) ).addElement( 'P', - ofBlockAnyMeta( + ofBlock( GregTech_API.sBlockCasings2, 14 ) ).addElement( 'C', - ofBlockAnyMeta( - Loaders.titaniumPlatedCylinder + ofBlock( + Loaders.titaniumPlatedCylinder, 0 ) ).addElement( 'G', - ofBlockAnyMeta( + ofBlock( GregTech_API.sBlockCasings2, 4 ) ).addElement( 'I', - ofBlockAnyMeta( + ofBlock( GregTech_API.sBlockCasings4, 13 ) ) |
