aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java377
1 files changed, 0 insertions, 377 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
deleted file mode 100644
index 8d1720c8f2..0000000000
--- a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java
+++ /dev/null
@@ -1,377 +0,0 @@
-package goodgenerator.blocks.tileEntity;
-
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
-import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
-import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.StatCollector;
-import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import org.jetbrains.annotations.NotNull;
-
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
-import com.gtnewhorizon.structurelib.StructureLibAPI;
-import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
-import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
-import com.gtnewhorizon.structurelib.structure.AutoPlaceEnvironment;
-import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
-import com.gtnewhorizon.structurelib.structure.IStructureElement;
-import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
-import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import com.gtnewhorizon.structurelib.structure.StructureUtility;
-
-import goodgenerator.api.recipe.GoodGeneratorRecipeMaps;
-import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
-import goodgenerator.loader.Loaders;
-import goodgenerator.util.DescTextLocalization;
-import gregtech.api.enums.GT_HatchElement;
-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.logic.ProcessingLogic;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.recipe.RecipeMap;
-import gregtech.api.recipe.check.CheckRecipeResult;
-import gregtech.api.recipe.check.CheckRecipeResultRegistry;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
-import gregtech.api.util.GT_OverclockCalculator;
-import gregtech.api.util.GT_Recipe;
-
-public class FuelRefineFactory extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
- implements IConstructable, ISurvivalConstructable {
-
- private IStructureDefinition<FuelRefineFactory> multiDefinition = null;
- private int Tier = -1;
- private int[] cnt = new int[] { 0, 0, 0, 0 };
- private static final Block[] coils = new Block[] { Loaders.FRF_Coil_1, Loaders.FRF_Coil_2, Loaders.FRF_Coil_3,
- Loaders.FRF_Coil_4 };
-
- public FuelRefineFactory(String name) {
- super(name);
- useLongPower = true;
- }
-
- public FuelRefineFactory(int id, String name, String nameRegional) {
- super(id, name, nameRegional);
- useLongPower = true;
- }
-
- @Override
- public boolean doRandomMaintenanceDamage() {
- return true;
- }
-
- @Override
- public void construct(ItemStack itemStack, boolean hintsOnly) {
- structureBuild_EM(mName, 7, 12, 1, itemStack, hintsOnly);
- }
-
- @Override
- public IStructureDefinition<FuelRefineFactory> getStructure_EM() {
- if (multiDefinition == null) {
- multiDefinition = StructureDefinition.<FuelRefineFactory>builder()
- .addShape(
- mName,
- transpose(
- new String[][] { { " ", " CCC ", " " },
- { " XGX ", " CCFFFCC ", " XGX " },
- { " CC CC ", " CFFCCCFFC ", " CC CC " },
- { " C C ", " CFCC CCFC ", " C C " },
- { " C C ", " CFC CFC ", " C C " },
- { " C C ", " CFC CFC ", " C C " },
- { " X X ", "CFC CFC", " X X " },
- { " G G ", "CFC CFC", " G G " },
- { " X X ", "CFC CFC", " X X " },
- { " C C ", " CFC CFC ", " C C " },
- { " C C ", " CFC CFC ", " C C " },
- { " C C ", " CFCC CCFC ", " C C " },
- { " CC CC ", " CFFC~CFFC ", " CC CC " },
- { " XGX ", " CCFFFCC ", " XGX " },
- { " ", " CCC ", " " } }))
- .addElement(
- 'X',
- buildHatchAdder(FuelRefineFactory.class)
- .atLeast(
- GT_HatchElement.Maintenance,
- GT_HatchElement.InputHatch,
- GT_HatchElement.InputBus,
- GT_HatchElement.OutputHatch,
- HatchElement.EnergyMulti.or(GT_HatchElement.Energy))
- .casingIndex(179)
- .dot(1)
- .buildAndChain(ofBlock(Loaders.FRF_Casings, 0)))
- .addElement('C', ofBlock(Loaders.FRF_Casings, 0))
- .addElement('G', ofBlock(Loaders.fieldRestrictingGlass, 0))
- .addElement(
- 'F',
- ofChain(
- onElementPass(x -> ++x.cnt[0], ofFieldCoil(0)),
- onElementPass(x -> ++x.cnt[1], ofFieldCoil(1)),
- onElementPass(x -> ++x.cnt[2], ofFieldCoil(2)),
- onElementPass(x -> ++x.cnt[3], ofFieldCoil(3))))
- .build();
- }
- return multiDefinition;
- }
-
- public static <T> IStructureElement<T> ofFieldCoil(int aIndex) {
- 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);
- return block.equals(coils[aIndex]);
- }
-
- @Override
- public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) {
- StructureLibAPI.hintParticle(world, x, y, z, coils[getIndex(trigger)], 0);
- return true;
- }
-
- private int getIndex(ItemStack trigger) {
- int s = trigger.stackSize;
- if (s > 4 || s <= 0) s = 4;
- 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);
- }
-
- @Override
- public BlocksToPlace getBlocksToPlace(T t, World world, int x, int y, int z, ItemStack trigger,
- AutoPlaceEnvironment env) {
- return BlocksToPlace.create(coils[getIndex(trigger)], 0);
- }
-
- @Override
- public PlaceResult survivalPlaceBlock(T t, World world, int x, int y, int z, ItemStack trigger,
- AutoPlaceEnvironment env) {
- if (check(t, world, x, y, z)) return PlaceResult.SKIP;
- return StructureUtility.survivalPlaceBlock(
- coils[getIndex(trigger)],
- 0,
- world,
- x,
- y,
- z,
- env.getSource(),
- env.getActor(),
- env.getChatter());
- }
- };
- }
-
- @Override
- protected GT_Multiblock_Tooltip_Builder createTooltip() {
- final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
- tt.addMachineType("Naquadah Fuel Refinery")
- .addInfo("Controller block for the Naquadah Fuel Refinery")
- .addInfo("But at what cost?")
- .addInfo("Produces naquadah fuels.")
- .addInfo("Needs field restriction coils to control the fatal radiation.")
- .addInfo("Use higher tier coils to unlock more fuel types and reduce the processing times.")
- .addInfo("The structure is too complex!")
- .addInfo(BLUE_PRINT_INFO)
- .addSeparator()
- .beginStructureBlock(3, 15, 15, false)
- .addInputHatch("The casings adjacent to field restriction glass.")
- .addInputBus("The casings adjacent to field restriction glass.", 1)
- .addOutputHatch("The casings adjacent to field restriction glass.", 1)
- .addEnergyHatch("The casings adjacent to field restriction glass.", 1)
- .toolTipFinisher("Good Generator");
- return tt;
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- this.Tier = aNBT.getInteger("mTier");
- super.loadNBTData(aNBT);
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setInteger("mTier", this.Tier);
- super.saveNBTData(aNBT);
- }
-
- @Override
- public String[] getStructureDescription(ItemStack itemStack) {
- return DescTextLocalization.addText("FuelRefineFactory.hint", 8);
- }
-
- @Override
- public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- cnt[0] = 0;
- cnt[1] = 0;
- cnt[2] = 0;
- cnt[3] = 0;
- return structureCheck_EM(mName, 7, 12, 1) && getTier() != -1;
- }
-
- public int getTier() {
- for (int i = 0; i < 4; i++) {
- if (cnt[i] == 32) {
- Tier = i + 1;
- return i;
- }
- }
- Tier = -1;
- return -1;
- }
-
- @Override
- public RecipeMap<?> getRecipeMap() {
- return GoodGeneratorRecipeMaps.naquadahFuelRefineFactoryRecipes;
- }
-
- @Override
- protected ProcessingLogic createProcessingLogic() {
- return new ProcessingLogic() {
-
- @NotNull
- @Override
- protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) {
- if (recipe.mSpecialValue > Tier) {
- return CheckRecipeResultRegistry.insufficientMachineTier(recipe.mSpecialValue);
- }
- return CheckRecipeResultRegistry.SUCCESSFUL;
- }
-
- @NotNull
- @Override
- protected GT_OverclockCalculator createOverclockCalculator(@NotNull GT_Recipe recipe) {
- int overclockAmount = Tier - recipe.mSpecialValue;
- return super.createOverclockCalculator(recipe).limitOverclockCount(overclockAmount);
- }
- }.setOverclock(2.0, 2.0); // Set Overclock to be 2/2
- }
-
- @Override
- protected void setProcessingLogicPower(ProcessingLogic logic) {
- logic.setAvailableVoltage(getMaxInputEu());
- logic.setAvailableAmperage(1);
- }
-
- public final boolean addToFRFList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
- if (aTileEntity == null) {
- return false;
- } else {
- IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
- if (aMetaTileEntity == null) {
- return false;
- } else {
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- }
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) {
- return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) {
- return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) {
- return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) {
- return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti) {
- return this.eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity);
- } else {
- return false;
- }
- }
- }
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new FuelRefineFactory(this.mName);
- }
-
- @Override
- public int getMaxEfficiency(ItemStack aStack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack aStack) {
- return 0;
- }
-
- @Override
- public int getDamageToComponent(ItemStack aStack) {
- return 0;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack aStack) {
- return true;
- }
-
- @Override
- public boolean isCorrectMachinePart(ItemStack aStack) {
- return true;
- }
-
- @Override
- public String[] getInfoData() {
- String[] infoData = new String[super.getInfoData().length + 1];
- System.arraycopy(super.getInfoData(), 0, infoData, 0, super.getInfoData().length);
- infoData[super.getInfoData().length] = StatCollector.translateToLocal("scanner.info.FRF") + " " + this.Tier;
- return infoData;
- }
-
- @Override
- public boolean supportsBatchMode() {
- return true;
- }
-
- @Override
- public boolean supportsVoidProtection() {
- return true;
- }
-
- @Override
- @SuppressWarnings("ALL")
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing,
- int colorIndex, boolean aActive, boolean aRedstone) {
- if (side == facing) {
- if (aActive) return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(179),
- new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE), TextureFactory.builder()
- .addIcon(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE_GLOW)
- .glow()
- .build() };
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(179),
- new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE), TextureFactory.builder()
- .addIcon(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_GLOW)
- .glow()
- .build() };
- }
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(179) };
- }
-
- @Override
- public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) {
- if (mMachine) return -1;
- return survivialBuildPiece(mName, stackSize, 7, 12, 1, elementBudget, env, false, true);
- }
-
- @Override
- public boolean getDefaultHasMaintenanceChecks() {
- return false;
- }
-}