diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/GTCMItemList.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/GTCMItemList.java index 4c49ab03..be966c2a 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/GTCMItemList.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/GTCMItemList.java @@ -185,7 +185,10 @@ public enum GTCMItemList { ParallelismCasing3, ParallelismCasing4, AntiMagneticCasing, - + ReinforcedStoneBrickCasing, + CompositeFarmCasing, + DenseCyclotronOuterCasing, + CompactCyclotronCoil, // endregion // region Machines @@ -245,6 +248,7 @@ public enum GTCMItemList { LightningSpire, ExtremeCraftCenter, MassFabricatorGenesis, + IncompactCyclotron, // endregion diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/BlockRegister.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/BlockRegister.java index 3f005037..8fa6f97e 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/BlockRegister.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/BlockRegister.java @@ -119,7 +119,59 @@ public static void registryBlockContainers() { TextEnums.tr("Tooltip_MetaBlockCasing01.7.name_1") })); GTCMItemList.AntiMagneticCasing.set( - MetaBlockConstructors.initMetaBlockCasing("Anti-Magnetic Casing", (byte) 8, BasicBlocks.MetaBlockCasing01)); + MetaBlockConstructors.initMetaBlockCasing( + "Anti-Magnetic Casing", + // #tr MetaBlockCasing01.8.name + // # Anti-Magnetic Casing + // #zh_CN 抗磁机械方块 + (byte) 8, + BasicBlocks.MetaBlockCasing01)); + + GTCMItemList.ReinforcedStoneBrickCasing.set( + MetaBlockConstructors.initMetaBlockCasing( + "Reinforced Stone Brick Casing", + // #tr MetaBlockCasing01.9.name + // # Reinforced Stone Brick Casing + // #zh_CN 强化石砖机械方块 + (byte) 9, + BasicBlocks.MetaBlockCasing01, + new String[] { TextEnums.tr("Tooltip_ReinforcedStoneBrickCasing") + // #tr Tooltip_ReinforcedStoneBrickCasing + // # Stronger than bedrock! + // #zh_CN 比磐石更坚! + })); + + GTCMItemList.CompositeFarmCasing.set( + MetaBlockConstructors.initMetaBlockCasing( + "Composite Farm Casing", + // #tr MetaBlockCasing01.10.name + // # Composite Farm Casing + // #zh_CN 复合农场机械方块 + (byte) 10, + BasicBlocks.MetaBlockCasing01, + new String[] { TextEnums.tr("Tooltip_CompositeFarmCasing") + // #tr Tooltip_CompositeFarmCasing + // # A force stronger than four combined. + // #zh_CN 一个更比四个强 + })); + + GTCMItemList.DenseCyclotronOuterCasing.set( + MetaBlockConstructors.initMetaBlockCasing( + "Dense Cyclotron Outer Casing", + // #tr MetaBlockCasing01.11.name + // # Dense Cyclotron Outer Casing + // #zh_CN 致密回旋加速器机械方块 + (byte) 11, + BasicBlocks.MetaBlockCasing01)); + + GTCMItemList.CompactCyclotronCoil.set( + MetaBlockConstructors.initMetaBlockCasing( + "Compact Cyclotron Coil", + // #tr MetaBlockCasing01.12.name + // # Compact Cyclotron Coil + // #zh_CN 压缩回旋加速器线圈 + (byte) 12, + BasicBlocks.MetaBlockCasing01)); // region PhotonControllerUpgrade GTCMItemList.PhotonControllerUpgradeLV diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/BlockStaticDataClientOnly.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/BlockStaticDataClientOnly.java index d975317d..2f836835 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/BlockStaticDataClientOnly.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/BlockStaticDataClientOnly.java @@ -21,10 +21,6 @@ public class BlockStaticDataClientOnly { public static Map iconsSpaceStationStructureCasingMap = new HashMap<>(); @SideOnly(Side.CLIENT) public static Map iconsNuclearReactor = new HashMap<>(); - @SideOnly(Side.CLIENT) - public static Map iconsHighPowerRadiationProofCasing = new HashMap<>(); - @SideOnly(Side.CLIENT) - public static Map iconsAdvancedHighPowerCoil = new HashMap<>(); public static Map iconsMetaBlockCasing01 = new HashMap<>(16); } diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/Casings/MetaBlockCasing01.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/Casings/MetaBlockCasing01.java index 628a6619..f49f2a72 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/Casings/MetaBlockCasing01.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/block/blockClass/Casings/MetaBlockCasing01.java @@ -124,6 +124,7 @@ public void registerBlockIcons(IIconRegister reg) { BlockStaticDataClientOnly.iconsMetaBlockCasing01 .put(Meta, reg.registerIcon("gtnhcommunitymod:MetaBlockCasing01/" + Meta)); } + } @Override diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_BallLightning.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_BallLightning.java index 81bce283..662cd8e9 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_BallLightning.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_BallLightning.java @@ -524,7 +524,7 @@ public IStructureDefinition getStructureDefinition() { .atLeast(InputBus, OutputBus, InputHatch, OutputHatch, Energy.or(ExoticEnergy)) .adder(TST_BallLightning::addToMachineList) .casingIndex(BasicBlocks.MetaBlockCasing01.getTextureIndex(1)) - .dot(2) + .dot(1) .buildAndChain(BasicBlocks.MetaBlockCasing01, 1)) .addElement( 'Z', @@ -532,7 +532,7 @@ public IStructureDefinition getStructureDefinition() { .atLeast(Energy.or(ExoticEnergy)) .adder(TST_BallLightning::addToMachineList) .casingIndex(getCasingTextureIndex(GregTech_API.sBlockCasings8, 5)) - .dot(1) + .dot(2) .buildAndChain(GregTech_API.sBlockCasings8, 5)) .build(); } @@ -876,15 +876,15 @@ protected GT_Multiblock_Tooltip_Builder createTooltip() { // #zh_CN 基础结构为等级1 .addInfo(TextEnums.tr("Tooltip_BallLightning.0.12")) // #tr Tooltip_BallLightning.0.13 - // # Gravitational Lens in the control slot unlocks level 2 + // # Gravitational Lens in the control slot unlocks Tier 2 // #zh_CN 在主机内放入引力透镜解锁等级2 .addInfo(TextEnums.tr("Tooltip_BallLightning.0.13")) // #tr Tooltip_BallLightning.0.14 - // # Upgrade Chip in the control slot and utilizing Tier 2 structure unlocks level 3 + // # Upgrade Chip in the control slot and utilizing Tier 2 structure unlocks Tier 3 // #zh_CN 在主机内放入升级芯片且使用2级结构解锁等级3 .addInfo(TextEnums.tr("Tooltip_BallLightning.0.14")) // #tr Tooltip_BallLightning.0.15 - // # Utilizing Advanced High Power Coil unlocks level 4 + // # Utilizing Advanced High Power Coil unlocks Tier 4 // #zh_CN 使用进阶高能线圈解锁等级4 .addInfo(TextEnums.tr("Tooltip_BallLightning.0.15")) // #tr Tooltip_BallLightning.0.16 diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IncompactCyclotron.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IncompactCyclotron.java new file mode 100644 index 00000000..e4e36018 --- /dev/null +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IncompactCyclotron.java @@ -0,0 +1,253 @@ +package com.Nxer.TwistSpaceTechnology.common.machine; + +import static com.Nxer.TwistSpaceTechnology.common.block.BasicBlocks.MetaBlockCasing01; +import static com.Nxer.TwistSpaceTechnology.common.machine.ValueEnum.EnablePerfectOverclock_IncompactCyclotron; +import static com.Nxer.TwistSpaceTechnology.common.machine.ValueEnum.EuModifier_IncompactCyclotron; +import static com.Nxer.TwistSpaceTechnology.common.machine.ValueEnum.MaxParallel_IncompactCyclotron; +import static com.Nxer.TwistSpaceTechnology.common.machine.ValueEnum.SpeedBouns_IncompactCyclotron; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.BLUE_PRINT_INFO; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.ModName; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.StructureTooComplex; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.Text_SeparatingLine; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.Tooltip_DoNotNeedMaintenance; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.textUseBlueprint; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; +import static gregtech.api.enums.GT_HatchElement.Energy; +import static gregtech.api.enums.GT_HatchElement.ExoticEnergy; +import static gregtech.api.enums.GT_HatchElement.InputBus; +import static gregtech.api.enums.GT_HatchElement.InputHatch; +import static gregtech.api.enums.GT_HatchElement.OutputBus; +import static gregtech.api.enums.GT_HatchElement.OutputHatch; +import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; + +import com.Nxer.TwistSpaceTechnology.common.block.BasicBlocks; +import com.Nxer.TwistSpaceTechnology.common.machine.multiMachineClasses.GTCM_MultiMachineBase; +import com.Nxer.TwistSpaceTechnology.util.TextEnums; +import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; + +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.recipe.RecipeMap; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_HatchElementBuilder; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.api.recipe.GTPPRecipeMaps; +import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; + +public class TST_IncompactCyclotron extends GTCM_MultiMachineBase { + + // region Class Constructor + public TST_IncompactCyclotron(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public TST_IncompactCyclotron(String aName) { + super(aName); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new TST_IncompactCyclotron(this.mName); + } + + // endregion + + // region Processing Logic + + @Override + protected float getEuModifier() { + return EuModifier_IncompactCyclotron; + } + + @Override + protected boolean isEnablePerfectOverclock() { + return EnablePerfectOverclock_IncompactCyclotron; + } + + @Override + protected float getSpeedBonus() { + return SpeedBouns_IncompactCyclotron; + } + + @Override + protected int getMaxParallelRecipes() { + return MaxParallel_IncompactCyclotron; + } + + @Override + public RecipeMap getRecipeMap() { + return GTPPRecipeMaps.cyclotronRecipes; + } + + // endregion + + // region Structure + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + repairMachine(); + return checkPiece(STRUCTURE_PIECE_MAIN, horizontalOffSet, verticalOffSet, depthOffSet); + } + + @Override + public void construct(ItemStack stackSize, boolean hintsOnly) { + repairMachine(); + buildPiece(STRUCTURE_PIECE_MAIN, stackSize, hintsOnly, horizontalOffSet, verticalOffSet, depthOffSet); + } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { + return survivialBuildPiece( + STRUCTURE_PIECE_MAIN, + stackSize, + horizontalOffSet, + verticalOffSet, + depthOffSet, + elementBudget, + env, + false, + true); + } + + private final int horizontalOffSet = 23; + private final int verticalOffSet = 3; + private final int depthOffSet = 40; + private static final String STRUCTURE_PIECE_MAIN = "mainIncompactCyclotron"; + private static IStructureDefinition STRUCTURE_DEFINITION = null; + + @Override + public IStructureDefinition getStructureDefinition() { + if (STRUCTURE_DEFINITION == null) { + STRUCTURE_DEFINITION = StructureDefinition.builder() + .addShape(STRUCTURE_PIECE_MAIN, transpose(shapeMain)) + .addElement('A', BorosilicateGlass.ofBoroGlass(10)) + .addElement('B', ofBlock(Block.getBlockFromName("miscutils:blockFrameGtQuantum"), 0)) + .addElement('C', ofBlock(MetaBlockCasing01, 12)) + .addElement('D', ofBlock(MetaBlockCasing01, 11)) + .addElement( + 'E', + ofChain( + BorosilicateGlass.ofBoroGlass(10), + GT_HatchElementBuilder.builder() + .atLeast(InputBus, OutputBus, InputHatch, OutputHatch, Energy.or(ExoticEnergy)) + .adder(TST_IncompactCyclotron::addToMachineList) + .dot(1) + .casingIndex(BasicBlocks.MetaBlockCasing01.getTextureIndex(11)) + .build())) + .addElement( + 'F', + ofChain( + ofBlock(MetaBlockCasing01, 11), + GT_HatchElementBuilder.builder() + .atLeast(Energy.or(ExoticEnergy)) + .adder(TST_IncompactCyclotron::addToMachineList) + .dot(2) + .casingIndex(BasicBlocks.MetaBlockCasing01.getTextureIndex(11)) + .build())) + .build(); + } + return STRUCTURE_DEFINITION; + } + // spotless:off + + /* + * A -> ofBlock...(BW_GlasBlocks, 14, ...); + * B -> ofBlock...(block.Quantum.frame, 0, ...); + * C -> ofBlock...(gtplusplus.blockcasings.2, 9, ...); + * D -> ofBlock...(gtplusplus.blockcasings.2, 10, ...); + * E -> ofBlock...(tile.wood, 0, ...); + * F -> ofBlock...(tile.wood, 1, ...); + */ + + private final String[][] shapeMain = new String[][]{ + {" "," "," BDDDDDB "," BDEAEDB "," BDDDDDB "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," BBB BBB "," DDD DDD "," DED DED "," DAD DAD "," DED DED "," DDD DDD "," BBB BBB "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," BDDDDDB "," BDEAEDB "," BDDDDDB "," "," "}, + {" "," BDEAEDB "," DD DD "," DDDDD DDDDD "," DDDDDDD DDDDDDD "," DDDDDDD BDEAEDB DDDDDDD "," DDDDD DDDDD "," DDDD DDDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," BDDDB BDDDB "," D D D D "," E E E E "," A A A A "," E E E E "," D D D D "," BDDDB BDDDB "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDDD DDDD "," DDDDD DDDDD "," DDDDDDD BDEAEDB DDDDDDD "," DDDDDDD DDDDDDD "," DDDDD DDDDD "," DD DD "," BDEAEDB "," "}, + {" BDDDDDB "," DD DD "," DDDDD DDDDD "," DDDDDCCCCCCCCCDDDDD "," DDDDCCCDD DDCCCDDDD "," DDDCCDDDDD DDDDDCCDDD "," FDCCDDDDD BDDDDDB DDDDDCCDF "," DDCDDDD DDDDCDD "," DDCDDD DDDCDD "," DDCDF FDCDD "," FDCDD DDCDF "," DDCDF FDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD ","BDDCDDB BDDCDDB","D C D D C D","D C D D C D","D C D D C D","D C D D C D","D C D D C D","BDDCDDB BDDCDDB"," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDF FDCDD "," FDCDD DDCDF "," DDCDF FDCDD "," DDCDDD DDDCDD "," DDCDDDD DDDDCDD "," FDCCDDDDD BDDDDDB DDDDDCCDF "," DDDCCDDDDD DDDDDCCDDD "," DDDDCCCDD DDCCCDDDD "," DDDDDCCCCCCCCCDDDDD "," DDDDD DDDDD "," DD DD "," BDDDDDB "}, + {" BDEAEDB "," DD DD "," DDDCCCCCCCCCDDD "," DDCCCCCCCCCCCCCCCDD "," DDCCCCCCCCCCCCCCCCCCCDD "," DCCCCCCCDD DDCCCCCCCD "," DCCCCCDDD BDEAEDB DDDCCCCCD "," DCCCCDD DDCCCCD "," DCCCDD DDCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD ","BDCCCDB BDCCCDB","D CCC D D CCC D","E CCC E E CCC E","A CCC A A CCC A","E CCC E E CCC E","D CCC D D CCC D","BDCCCDB BDCCCDB"," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCD DCCCD "," DCCCDD DDCCCD "," DCCCCDD DDCCCCD "," DCCCCCDDD BDE~EDB DDDCCCCCD "," DCCCCCCCDD DDCCCCCCCD "," DDCCCCCCCCCCCCCCCCCCCDD "," DDCCCCCCCCCCCCCCCDD "," DDDCCCCCCCCCDDD "," DD DD "," BDEAEDB "}, + {" BDDDDDB "," DD DD "," DDDDD DDDDD "," DDDDDCCCCCCCCCDDDDD "," DDDDCCCDD DDCCCDDDD "," DDDCCDDDDD DDDDDCCDDD "," FDCCDDDDD BDDDDDB DDDDDCCDF "," DDCDDDD DDDDCDD "," DDCDDD DDDCDD "," DDCDF FDCDD "," FDCDD DDCDF "," DDCDF FDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD ","BDDCDDB BDDCDDB","D C D D C D","D C D D C D","D C D D C D","D C D D C D","D C D D C D","BDDCDDB BDDCDDB"," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDD DDCDD "," DDCDF FDCDD "," FDCDD DDCDF "," DDCDF FDCDD "," DDCDDD DDDCDD "," DDCDDDD DDDDCDD "," FDCCDDDDD BDDDDDB DDDDDCCDF "," DDDCCDDDDD DDDDDCCDDD "," DDDDCCCDD DDCCCDDDD "," DDDDDCCCCCCCCCDDDDD "," DDDDD DDDDD "," DD DD "," BDDDDDB "}, + {" "," BDEAEDB "," DD DD "," DDDDD DDDDD "," DDDDDDD DDDDDDD "," DDDDDDD BDEAEDB DDDDDDD "," DDDDD DDDDD "," DDDD DDDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," BDDDB BDDDB "," D D D D "," E E E E "," A A A A "," E E E E "," D D D D "," BDDDB BDDDB "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDD DDD "," DDDD DDDD "," DDDDD DDDDD "," DDDDDDD BDEAEDB DDDDDDD "," DDDDDDD DDDDDDD "," DDDDD DDDDD "," DD DD "," BDEAEDB "," "}, + {" "," "," BDDDDDB "," BDEAEDB "," BDDDDDB "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," BBB BBB "," DDD DDD "," DED DED "," DAD DAD "," DED DED "," DDD DDD "," BBB BBB "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," BDDDDDB "," BDEAEDB "," BDDDDDB "," "," "} + }; + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing, + int colorIndex, boolean aActive, boolean aRedstone) { + ITexture base = casingTexturePages[115][MetaBlockCasing01.getTextureIndexInPage(11)]; + if (side == facing) { + if (aActive) return new ITexture[] { base, TextureFactory.builder() + .addIcon(TexturesGtBlock.Overlay_MatterFab_Active_Animated) + .extFacing() + .build() }; + return new ITexture[] { base, TextureFactory.builder() + .addIcon(TexturesGtBlock.Overlay_MatterFab_Animated) + .extFacing() + .build() }; + } + return new ITexture[] { base }; + } + + @Override + protected GT_Multiblock_Tooltip_Builder createTooltip() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + // #tr Tooltip_IncompactCyclotron_MachineType + // # Particle Accelerator + // #zh_CN 粒子加速器 + tt.addMachineType(TextEnums.tr("Tooltip_IncompactCyclotron_MachineType")) + // #tr Tooltip_IncompactCyclotron_Controller + // # Controller block for the Incompact Cyclotron + // #zh_CN 非紧凑式回旋加速器的控制方块 + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_Controller")) + // #tr Tooltip_IncompactCyclotron_01 + // # {\DARK_PURPLE}Pulsed Ultrafast Linear Synchronized Accelerator Ring + // #zh_CN {\DARK_PURPLE}脉冲超快线性同步加速器 + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_01")) + // #tr Tooltip_IncompactCyclotron_02 + // # The particles are accelerated to {\YELLOW}99%%{\GRAY} of the speed of light by the electric field! + // #zh_CN 粒子在电场下被加速到{\YELLOW}99%%{\GRAY}光速! + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_02")) + // #tr Tooltip_IncompactCyclotron_03 + // # But you can extract the accelerated particles at any time. + // #zh_CN 但是你随时可以取出加工的粒子 + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_03")) + // #tr Tooltip_IncompactCyclotron_04 + // # "That's incredible!" + // #zh_CN 这太神奇了! + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_04")) + // #tr Tooltip_IncompactCyclotron_05 + // # Thanks to the upgrade of technology + // #zh_CN 得益于工艺的升级 + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_05")) + // #tr Tooltip_IncompactCyclotron_06 + // # The accelerator upgraded 100%% speedup and 256 parallel + // #zh_CN 加速器拥有了额外100%的额外加速,以及256并行 + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_06")) + // #tr Tooltip_IncompactCyclotron_07 + // # But it requires additional 60%% of power to work + // #zh_CN 但是需要额外60%%的供电来运行 + .addInfo(TextEnums.tr("Tooltip_IncompactCyclotron_07")) + .addSeparator() + .addInfo(StructureTooComplex) + .addInfo(BLUE_PRINT_INFO) + .addController(textUseBlueprint) + .addInputHatch(textUseBlueprint, 1) + .addOutputHatch(textUseBlueprint, 1) + .addInputBus(textUseBlueprint, 1) + .addOutputBus(textUseBlueprint, 1) + .addEnergyHatch(textUseBlueprint, 2) + .addStructureInfo(Text_SeparatingLine) + .addStructureInfo(Tooltip_DoNotNeedMaintenance) + .toolTipFinisher(ModName); + return tt; + } + // spotless:on +} diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IndustrialMagnetarSeparator.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IndustrialMagnetarSeparator.java index 06c4532c..aa080b1d 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IndustrialMagnetarSeparator.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_IndustrialMagnetarSeparator.java @@ -178,8 +178,8 @@ protected GT_Multiblock_Tooltip_Builder createTooltip() { // #zh_CN 只需要使用配方要求功率的80%% .addInfo(TextEnums.tr("Tooltip_IndustrialMagnetarSeparator.02")) // #tr Tooltip_IndustrialMagnetarSeparator.03 - // # Processes eight items per voltage tier - // #zh_CN 每提升一个电压等级,每次运行可以多处理8个物品 + // # Processes 4 items per voltage tier + // #zh_CN 每提升一个电压等级,每次运行可以多处理4个物品 .addInfo(TextEnums.tr("Tooltip_IndustrialMagnetarSeparator.03")) .addPollutionAmount(300) .addSeparator() diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaCraftingCenter.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaCraftingCenter.java index e2e4f08b..8c038c39 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaCraftingCenter.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaCraftingCenter.java @@ -243,14 +243,28 @@ public void securityBreak() { @Override protected boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { + maintenance_EM(); if (structureCheck_EM("MAIN", 3, 3, 0)) { return !mInputBusses.isEmpty() && !mOutputBusses.isEmpty() - && (!mEnergyHatches.isEmpty() || !eEnergyMulti.isEmpty()) - && !mMaintenanceHatches.isEmpty(); + && (!mEnergyHatches.isEmpty() || !eEnergyMulti.isEmpty()); } return false; } + protected void maintenance_EM() { + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; + } + + @Override + public boolean doRandomMaintenanceDamage() { + return true; + } + @NotNull public DimensionalCoord getLocation() { return new DimensionalCoord( @@ -364,15 +378,21 @@ protected GT_Multiblock_Tooltip_Builder createTooltip() { .addInfo(TextEnums.tr("tst.megacraftingcenter.desc.2")) .addInfo(TextEnums.tr("tst.megacraftingcenter.desc.3")) .addInfo(TextEnums.tr("tst.megacraftingcenter.desc.4")) - .addStructureInfo(Text_SeparatingLine) + // #tr tst.megacraftingcenter.desc.5 + // # There is a performance issue when checking pattern. Please use with caution. + // #zh_CN 当前检查样板功能存在性能问题. 谨慎使用. + .addInfo(TextEnums.tr("tst.megacraftingcenter.desc.5")) + .addInfo(Text_SeparatingLine) .toolTipFinisher(ModName); return tt; } public static ItemStack[] convertAEToMC(IAEItemStack[] STACK) { + // TODO use normal code style instead `Stream` return Arrays.stream(STACK) .filter(Objects::nonNull) .map(IAEItemStack::getItemStack) .toArray(ItemStack[]::new); } + } diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaMacerator.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaMacerator.java index d7a1624f..4562c994 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaMacerator.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaMacerator.java @@ -247,6 +247,8 @@ public IStructureDefinition getStructureDefinition() { return STRUCTURE_DEFINITION; } + // spotless:off + /* * Blocks: * A -> ofBlock...(BW_GlasBlocks2, 0, ...); @@ -259,119 +261,38 @@ public IStructureDefinition getStructureDefinition() { * H -> ofSpecialTileAdder(gregtech.api.metatileentity.BaseMetaPipeEntity, ...); * I -> ofSpecialTileAdder(gregtech.api.metatileentity.BaseMetaPipeEntity, ...); */ - private final String[][] shape = new String[][] { - { " ", " ", " ", " ", " ", - " FFFFF ", " FFFFFFF ", " FFFFFFF ", " FFFFFFF ", " FFFFFFF ", - " FFFFFFF ", " FFFFF ", " ", " ", " ", - " ", " " }, - { " ", " ", " FFFFF ", " FFFFFFFFF ", " FFFFFFFFFFF ", - " FFF FFF ", " FFF FFF ", " FFF FFF ", " FFF FFF ", " FFF FFF ", - " FFF FFF ", " FFF FFF ", " FFFFFFFFFFF ", " FFFFFFFFF ", " FFFFF ", - " ", " " }, - { " FFFFF ", " FFFFFFFFF ", " FFFCCCCCFFF ", " FFCC CCFF ", " FFC CFF ", - " FFC CFF ", "FFC CFF", "FFC CFF", "FFC CFF", "FFC CFF", - "FFC CFF", " FFC CFF ", " FFC CFF ", " FFCC CCFF ", " FFFCCCCCFFF ", - " FFFFFFFFF ", " FFFFF " }, - { " ", " DbbbD ", " IbbbbbbbI ", " bbb bbb ", " Ib bI ", - " bb bb ", " bb EEE bb ", " bb ECCCE bb ", " bb ECCCE bb ", " bb ECCCE bb ", - " bb EEE bb ", " bb bb ", " Ib bI ", " bbb bbb ", " IbbbbbbbI ", - " DbbbD ", " " }, - { " DDDDD ", " DDDDDDDDD ", " DDDDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDDDDDD ", - " DDDDDDDDDDDDDDD ", "DDDDDDDDDDDDDDDDD", "DDDDDDDDDDDDDDDDD", "DDDDDDDDCDDDDDDDD", "DDDDDDDDDDDDDDDDD", - "DDDDDDDDDDDDDDDDD", " DDDDDDDDDDDDDDD ", " DDDDDDDDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDD ", - " DDDDDDDDD ", " DDDDD " }, - { " ", " FFFFF ", " FF FF ", " F F ", " F F ", - " F F ", " F F ", " F F ", " F C F ", " F F ", - " F F ", " F F ", " F F ", " F F ", " FF FF ", - " FFFFF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H G H ", " F GG G F ", " A G G A ", " A C A ", " A G G A ", - " F G GG F ", " H G H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D G D ", " F G F ", - " H GG GG H ", " F GGGGG GG F ", " A GGGG A ", " A GCG A ", " A GGGG A ", - " F GG GGGGG F ", " H GG GG H ", " F G F ", " D G D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH GHF ", " D G D ", " F GG F ", - " H GGG GGG H ", " FGGGGGG GGG F ", " A GGGGGG A ", " A GCG A ", " A GGGGGG A ", - " F GGG GGGGGGF ", " H GGG GGG H ", " F GG F ", " D G D ", " FHG HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D G D ", " F G F ", - " H GG GG H ", " F GGGGG GG F ", " A GGGG A ", " A GCG A ", " A GGGG A ", - " F GG GGGGG F ", " H GG GG H ", " F G F ", " D G D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H G H ", " F GG G F ", " A G G A ", " A C A ", " A G G A ", - " F G GG F ", " H G H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H H ", " F F ", " A A ", " A C A ", " A A ", - " F F ", " H H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H G H ", " F GG G F ", " A G G A ", " A C A ", " A G G A ", - " F G GG F ", " H G H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D G D ", " F G F ", - " H GG GG H ", " F GGGGG GG F ", " A GGGG A ", " A GCG A ", " A GGGG A ", - " F GG GGGGG F ", " H GG GG H ", " F G F ", " D G D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH GHF ", " D G D ", " F GG F ", - " H GGG GGG H ", " FGGGGGG GGG F ", " A GGGGGG A ", " A GCG A ", " A GGGGGG A ", - " F GGG GGGGGGF ", " H GGG GGG H ", " F GG F ", " D G D ", " FHG HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D G D ", " F G F ", - " H GG GG H ", " F GGGGG GG F ", " A GGGG A ", " A GCG A ", " A GGGG A ", - " F GG GGGGG F ", " H GG GG H ", " F G F ", " D G D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H G H ", " F GG G F ", " A G G A ", " A C A ", " A G G A ", - " F G GG F ", " H G H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H C C H ", " F F ", " A A ", " A C A ", " A A ", - " F F ", " H C C H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " DGGG GGGD ", " FGGGGG GGGGGF ", - " HGGCGG GGCGGH ", " F GGGGG GGGGG F ", " A GGG GGG A ", " A C A ", " A GGG GGG A ", - " F GGGGG GGGGG F ", " HGGCGG GGCGGH ", " FGGGGG GGGGGF ", " DGGG GGGD ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H C C H ", " F GGG F ", " A GGGGG A ", " A GGCGG A ", " A GGGGG A ", - " F GGG F ", " H C C H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " DGGG GGGD ", " FGGGGG GGGGGF ", - " HGGCGG GGCGGH ", " F GGGGG GGGGG F ", " A GGG GGG A ", " A C A ", " A GGG GGG A ", - " F GGGGG GGGGG F ", " HGGCGG GGCGGH ", " FGGGGG GGGGGF ", " DGGG GGGD ", " FH HF ", - " FAAAF ", " " }, - { " ", " FAAAF ", " FH HF ", " D D ", " F F ", - " H C C H ", " F GGG F ", " A GGGGG A ", " A GGCGG A ", " A GGGGG A ", - " F GGG F ", " H C C H ", " F F ", " D D ", " FH HF ", - " FAAAF ", " " }, - { " ", " FFFFF ", " FF FF ", " DGGG GGGD ", " FGGGGG GGGGGF ", - " FGGCGG GGCGGF ", " F GGGGG GGGGG F ", " F GGG GGG F ", " F C F ", " F GGG GGG F ", - " F GGGGG GGGGG F ", " FGGCGG GGCGGF ", " FGGGGG GGGGGF ", " FGGG GGGF ", " FF FF ", - " FFFFF ", " " }, - { " DDDDD ", " DDDDDDDDD ", " DDDDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDDDDDD ", - " DDDDCDDDDDCDDDD ", "DDDDDDDDDDDDDDDDD", "DDDDDDDDDDDDDDDDD", "DDDDDDDDCDDDDDDDD", "DDDDDDDDDDDDDDDDD", - "DDDDDDDDDDDDDDDDD", " DDDDCDDDDDCDDDD ", " DDDDDDDDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDDD ", - " DDDDDDDDD ", " DDDDD " }, - { " ", " DBBBD ", " HBBBBBBBH ", " BBBEEEEEBBB ", " HBEEEEEEEEEBH ", - " BBECEEEEECEBB ", " DBEEEEEEEEEEEBD ", " BBEEEECCCEEEEBB ", " BEEEECCCEEEEB ", " BBEEEECCCEEEEBB ", - " DBEEEEEEEEEEEBD ", " BBECEEEEECEBB ", " HBEEEEEEEEEBH ", " BBBEEEEEBBB ", " HBBBBBBBH ", - " DB BD ", " " }, - { " ", " DB~BD ", " HBBBBBBBH ", " BBB BBB ", " HBFFF FFFBH ", - " BBFCFFFFFCFBB ", " DB FFFEEEFFF BD ", " BB FEEEEEF BB ", " B FEECEEF B ", " BB FEEEEEF BB ", - " DB FFFEEEFFF BD ", " BBFCFFFFFCFBB ", " HBFFF FFFBH ", " BBB BBB ", " HBBBBBBBH ", - " DB BD ", " " }, - { " ", " DBBBD ", " HBBBBBBBH ", " BBB BBB ", " HBFFF FFFBH ", - " BBFCFFFFFCFBB ", " DB FFFCCCFFF BD ", " BB FCCCCCF BB ", " B FCCCCCF B ", " BB FCCCCCF BB ", - " DB FFFCCCFFF BD ", " BBFCFFFFFCFBB ", " HBFFF FFFBH ", " BBB BBB ", " HBBBBBBBH ", - " DB BD ", " " }, - { " DDDDD ", " DDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDDDDDD ", - " DDDDDDDDDDDDDDD ", "DDDDDDDDDDDDDDDDD", "DDDDDDDDDDDDDDDDD", "DDDDDDDDDDDDDDDDD", "DDDDDDDDDDDDDDDDD", - "DDDDDDDDDDDDDDDDD", " DDDDDDDDDDDDDDD ", " DDDDDDDDDDDDDDD ", " DDDDDDDDDDDDD ", " DDDDDDDDDDDDD ", - " DDDDDDDDD ", " DDDDD " } }; + private final String[][] shape = new String[][]{ + {" "," "," "," "," "," FFFFF "," FFFFFFF "," FFFFFFF "," FFFFFFF "," FFFFFFF "," FFFFFFF "," FFFFF "," "," "," "," "," "}, + {" "," "," FFFFF "," FFFFFFFFF "," FFFFFFFFFFF "," FFF FFF "," FFF FFF "," FFF FFF "," FFF FFF "," FFF FFF "," FFF FFF "," FFF FFF "," FFFFFFFFFFF "," FFFFFFFFF "," FFFFF "," "," "}, + {" FFFFF "," FFFFFFFFF "," FFFCCCCCFFF "," FFCC CCFF "," FFC CFF "," FFC CFF ","FFC CFF","FFC CFF","FFC CFF","FFC CFF","FFC CFF"," FFC CFF "," FFC CFF "," FFCC CCFF "," FFFCCCCCFFF "," FFFFFFFFF "," FFFFF "}, + {" "," DbbbD "," IbbbbbbbI "," bbb bbb "," Ib bI "," bb bb "," bb EEE bb "," bb ECCCE bb "," bb ECCCE bb "," bb ECCCE bb "," bb EEE bb "," bb bb "," Ib bI "," bbb bbb "," IbbbbbbbI "," DbbbD "," "}, + {" DDDDD "," DDDDDDDDD "," DDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDDDD ","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDCDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD"," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDD "," DDDDDDDDD "," DDDDD "}, + {" "," FFFFF "," FF FF "," F F "," F F "," F F "," F F "," F F "," F C F "," F F "," F F "," F F "," F F "," F F "," FF FF "," FFFFF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H G H "," F GG G F "," A G G A "," A C A "," A G G A "," F G GG F "," H G H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D G D "," F G F "," H GG GG H "," F GGGGG GG F "," A GGGG A "," A GCG A "," A GGGG A "," F GG GGGGG F "," H GG GG H "," F G F "," D G D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH GHF "," D G D "," F GG F "," H GGG GGG H "," FGGGGGG GGG F "," A GGGGGG A "," A GCG A "," A GGGGGG A "," F GGG GGGGGGF "," H GGG GGG H "," F GG F "," D G D "," FHG HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D G D "," F G F "," H GG GG H "," F GGGGG GG F "," A GGGG A "," A GCG A "," A GGGG A "," F GG GGGGG F "," H GG GG H "," F G F "," D G D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H G H "," F GG G F "," A G G A "," A C A "," A G G A "," F G GG F "," H G H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H H "," F F "," A A "," A C A "," A A "," F F "," H H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H G H "," F GG G F "," A G G A "," A C A "," A G G A "," F G GG F "," H G H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D G D "," F G F "," H GG GG H "," F GGGGG GG F "," A GGGG A "," A GCG A "," A GGGG A "," F GG GGGGG F "," H GG GG H "," F G F "," D G D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH GHF "," D G D "," F GG F "," H GGG GGG H "," FGGGGGG GGG F "," A GGGGGG A "," A GCG A "," A GGGGGG A "," F GGG GGGGGGF "," H GGG GGG H "," F GG F "," D G D "," FHG HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D G D "," F G F "," H GG GG H "," F GGGGG GG F "," A GGGG A "," A GCG A "," A GGGG A "," F GG GGGGG F "," H GG GG H "," F G F "," D G D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H G H "," F GG G F "," A G G A "," A C A "," A G G A "," F G GG F "," H G H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H C C H "," F F "," A A "," A C A "," A A "," F F "," H C C H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," DGGG GGGD "," FGGGGG GGGGGF "," HGGCGG GGCGGH "," F GGGGG GGGGG F "," A GGG GGG A "," A C A "," A GGG GGG A "," F GGGGG GGGGG F "," HGGCGG GGCGGH "," FGGGGG GGGGGF "," DGGG GGGD "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H C C H "," F GGG F "," A GGGGG A "," A GGCGG A "," A GGGGG A "," F GGG F "," H C C H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," DGGG GGGD "," FGGGGG GGGGGF "," HGGCGG GGCGGH "," F GGGGG GGGGG F "," A GGG GGG A "," A C A "," A GGG GGG A "," F GGGGG GGGGG F "," HGGCGG GGCGGH "," FGGGGG GGGGGF "," DGGG GGGD "," FH HF "," FAAAF "," "}, + {" "," FAAAF "," FH HF "," D D "," F F "," H C C H "," F GGG F "," A GGGGG A "," A GGCGG A "," A GGGGG A "," F GGG F "," H C C H "," F F "," D D "," FH HF "," FAAAF "," "}, + {" "," FFFFF "," FF FF "," DGGG GGGD "," FGGGGG GGGGGF "," FGGCGG GGCGGF "," F GGGGG GGGGG F "," F GGG GGG F "," F C F "," F GGG GGG F "," F GGGGG GGGGG F "," FGGCGG GGCGGF "," FGGGGG GGGGGF "," FGGG GGGF "," FF FF "," FFFFF "," "}, + {" DDDDD "," DDDDDDDDD "," DDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDDDDDD "," DDDDCDDDDDCDDDD ","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDCDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD"," DDDDCDDDDDCDDDD "," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDDD "," DDDDDDDDD "," DDDDD "}, + {" "," DBBBD "," HBBBBBBBH "," BBBEEEEEBBB "," HBEEEEEEEEEBH "," BBECEEEEECEBB "," DBEEEEEEEEEEEBD "," BBEEEECCCEEEEBB "," BEEEECCCEEEEB "," BBEEEECCCEEEEBB "," DBEEEEEEEEEEEBD "," BBECEEEEECEBB "," HBEEEEEEEEEBH "," BBBEEEEEBBB "," HBBBBBBBH "," DB BD "," "}, + {" "," DB~BD "," HBBBBBBBH "," BBB BBB "," HBFFF FFFBH "," BBFCFFFFFCFBB "," DB FFFEEEFFF BD "," BB FEEEEEF BB "," B FEECEEF B "," BB FEEEEEF BB "," DB FFFEEEFFF BD "," BBFCFFFFFCFBB "," HBFFF FFFBH "," BBB BBB "," HBBBBBBBH "," DB BD "," "}, + {" "," DBBBD "," HBBBBBBBH "," BBB BBB "," HBFFF FFFBH "," BBFCFFFFFCFBB "," DB FFFCCCFFF BD "," BB FCCCCCF BB "," B FCCCCCF B "," BB FCCCCCF BB "," DB FFFCCCFFF BD "," BBFCFFFFFCFBB "," HBFFF FFFBH "," BBB BBB "," HBBBBBBBH "," DB BD "," "}, + {" DDDDD "," DDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDDDD ","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD","DDDDDDDDDDDDDDDDD"," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDDDDDD "," DDDDDDDDD "," DDDDD "} + }; + + // spotless:on // endregion diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaTreeFarm.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaTreeFarm.java index 99dfeb85..28e1d827 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaTreeFarm.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_MegaTreeFarm.java @@ -1,4 +1,308 @@ package com.Nxer.TwistSpaceTechnology.common.machine; -public class TST_MegaTreeFarm { +import static com.Nxer.TwistSpaceTechnology.common.block.BasicBlocks.MetaBlockCasing01; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.ModName; +import static com.Nxer.TwistSpaceTechnology.util.TextLocalization.textUseBlueprint; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAnyMeta; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; +import static gregtech.api.enums.GT_HatchElement.Energy; +import static gregtech.api.enums.GT_HatchElement.ExoticEnergy; +import static gregtech.api.enums.GT_HatchElement.InputBus; +import static gregtech.api.enums.GT_HatchElement.OutputBus; +import static gregtech.api.util.GT_StructureUtility.ofFrame; +import static tb.init.TBBlocks.crystalBlock; +import static tuhljin.automagy.blocks.ModBlocks.translucent; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; + +import com.Nxer.TwistSpaceTechnology.common.machine.multiMachineClasses.GTCM_MultiMachineBase; +import com.Nxer.TwistSpaceTechnology.common.recipeMap.GTCMRecipe; +import com.Nxer.TwistSpaceTechnology.util.LoaderReference; +import com.Nxer.TwistSpaceTechnology.util.TextEnums; +import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TAE; +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.recipe.RecipeMap; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_HatchElementBuilder; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; + +public class TST_MegaTreeFarm extends GTCM_MultiMachineBase { + + // region Class Constructor + public TST_MegaTreeFarm(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public TST_MegaTreeFarm(String aName) { + super(aName); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new TST_MegaTreeFarm(this.mName); + } + + // region Structure + + private static final String STRUCTURE_PIECE_MAIN = "mainMegaTreeFarm"; + private static final String STRUCTURE_PIECE_WATER = "waterMegaTreeFarm"; + private static IStructureDefinition STRUCTURE_DEFINITION = null; + + @Override + public void construct(ItemStack stackSize, boolean hintsOnly) { + repairMachine(); + this.buildPiece(STRUCTURE_PIECE_MAIN, stackSize, hintsOnly, 16, 38, 7); + } + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + repairMachine(); + // setDebugEnabled(true); + return checkPiece(STRUCTURE_PIECE_MAIN, 16, 38, 7) & checkPiece(STRUCTURE_PIECE_WATER, 0, 37, -9); + } + + @Override + public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { + return survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 16, 38, 7, elementBudget, env, false, true) + & survivialBuildPiece(STRUCTURE_PIECE_WATER, stackSize, 0, 37, -9, elementBudget, env, false, true); + } + + @Override + public IStructureDefinition getStructureDefinition() { + if (STRUCTURE_DEFINITION == null) { + STRUCTURE_DEFINITION = StructureDefinition.builder() + .addShape(STRUCTURE_PIECE_MAIN, transpose(shape)) + .addShape(STRUCTURE_PIECE_WATER, transpose(water)) + .addElement('A', BorosilicateGlass.ofBoroGlassAnyTier()) + .addElement('B', ofBlock(MetaBlockCasing01, 9)) + .addElement('C', ofBlock(MetaBlockCasing01, 10)) + .addElement('D', ofBlock(GregTech_API.sBlockCasings1, 10)) + .addElement('E', ofBlock(GregTech_API.sBlockCasings8, 5)) + .addElement('F', ofBlock(GregTech_API.sBlockCasings8, 10)) + .addElement('G', ofBlock(GregTech_API.sBlockCasings9, 1)) + .addElement('H', ofBlock(ModBlocks.blockCasings2Misc, 15)) + .addElement('I', ofBlock(ModBlocks.blockCasingsTieredGTPP, 8)) + .addElement('J', ofBlock(translucent, 0)) + .addElement('K', ofBlock(crystalBlock, 0)) + .addElement('L', ofBlock(crystalBlock, 2)) + .addElement('M', ofBlock(crystalBlock, 3)) + .addElement('N', ofBlock(Block.getBlockFromName("Forestry:soil"), 0)) + .addElement('O', ofChain(ofBlock(Blocks.grass, 0), ofBlockAnyMeta(Blocks.dirt, 0))) + .addElement( + 'P', + LoaderReference.ProjRedIllumination + ? ofBlock(Block.getBlockFromName("ProjRed|Illumination:projectred.illumination.lamp"), 10) + : ofBlock(Blocks.redstone_lamp, 0)) + .addElement('Q', ofBlock(Blocks.water, 0)) + .addElement( + 'R', + ofChain( + ofBlock(ModBlocks.blockCasings2Misc, 15), + GT_HatchElementBuilder.builder() + .atLeast(InputBus, OutputBus, Energy.or(ExoticEnergy)) + .adder(TST_MegaTreeFarm::addToMachineList) + .dot(1) + .casingIndex(TAE.getIndexFromPage(1, 15)) + .build())) + .addElement( + 'S', + ofChain( + ofBlock(ModBlocks.blockCasings2Misc, 15), + GT_HatchElementBuilder.builder() + .atLeast(Energy.or(ExoticEnergy)) + .adder(TST_MegaTreeFarm::addToMachineList) + .dot(2) + .casingIndex(TAE.getIndexFromPage(1, 15)) + .build())) + .addElement('T', ofFrame(Materials.Vulcanite)) + .build(); + } + return STRUCTURE_DEFINITION; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, + int colorIndex, boolean aActive, boolean redstoneLevel) { + if (side == aFacing) { + if (aActive) { + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TAE.getIndexFromPage(1, 15)), + TextureFactory.builder() + .addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced) + .extFacing() + .build(), + TextureFactory.builder() + .addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced_Active) + .extFacing() + .glow() + .build() }; + } + + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TAE.getIndexFromPage(1, 15)), + TextureFactory.builder() + .addIcon(TexturesGtBlock.Overlay_Machine_Controller_Advanced) + .extFacing() + .build() }; + } + + return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(TAE.getIndexFromPage(1, 15)) }; + } + + // spotless:off + + /* + A -> ofBlock...(BW_GlasBlocks, 0, ...); + B -> ofBlock...(MetaBlockCasing01, 9, ...); + C -> ofBlock...(MetaBlockCasing01, 10, ...); + D -> ofBlock...(gt.blockcasings, 10, ...); + E -> ofBlock...(gt.blockcasings8, 5, ...); + F -> ofBlock...(gt.blockcasings8, 10, ...); + G -> ofBlock...(gt.blockcasings9, 1, ...); + H -> ofBlock...(gtplusplus.blockcasings.2, 15, ...); + I -> ofBlock...(gtplusplus.blocktieredcasings.1, 8, ...); + J -> ofBlock...(tile.blockTranslucent, 0, ...); + K -> ofBlock...(tile.crystalBlock, 0, ...); + L -> ofBlock...(tile.crystalBlock, 2, ...); + M -> ofBlock...(tile.crystalBlock, 3, ...); + N -> ofBlock...(tile.for.soil, 0, ...); + O -> ofBlock...(tile.grass, 0, ...); + P -> ofBlock...(tile.redstoneLight, 0, ...); + Q -> ofBlock...(tile.water, 0, ...); + R -> ofBlock...(tile.wood, 0, ...); Any Hatch + S -> ofBlock...(tile.wood, 1, ...); Energy Hatch + T -> ofSpecialTileAdder(gregtech.api.metatileentity.BaseMetaPipeEntity, ...); + */ + + private final String[][] shape = new String[][]{ + {" "," "," "," "," "," "," "," "," "," "," "," "," "," DDDDD "," DDDDDDD "," DDDDDDD "," DDDDDDD "," DDDDDDD "," DDDDDDD "," DDDDD "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," D D "," GGD DGG "," GGGD DGGG "," GGGHH HHGGG "," GGHTH HTHGG "," DDDHHH HHHDDD "," "," DDDHHH HHHDDD "," GGHTH HTHGG "," GGGHH HHGGG "," GGGD DGGG "," GGD DGG "," D D "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," GGD DGG "," DGGGTDTGGGD "," DGG TDT GGD "," GG HHDHH GG "," GG HIIDIIH GG "," GG HIIIDIIIH GG "," DTTHIIIDIIIHTTD "," DDDDDDDDDDDDD "," DTTHIIIDIIIHTTD "," GG HIIIDIIIH GG "," GG HIIDIIH GG "," GG HHDHH GG "," DGG TDT GGD "," DGGGTDTGGGD "," GGD DGG "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," D D "," DGGD DGGD "," AD TDT DA "," A T A "," A T A "," DD DDDDD DD "," G DPPPPPD G "," G DPPPPPPPD G "," DDT DPPPPPPPD TDD "," DTTDPPPPPPPDTTD "," DDT DPPPPPPPD TDD "," G DPPPPPPPD G "," G DPPPPPD G "," DD DDDDD DD "," A T A "," A T A "," AD TDT DA "," DGGD DGGD "," D D "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," D D "," ADDTDTDDA "," AA TDT AA "," AA AA "," AA AA "," A A "," A A "," D D "," D D "," DTT TTD "," DD DD "," DTT TTD "," D D "," D D "," A A "," A A "," AA AA "," AA AA "," AA TDT AA "," ADDTDTDDA "," D D "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," AAAD DAAA "," AA TDT AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," DT TD "," D D "," DT TD "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA TDT AA "," AAAD DAAA "," "," "," "," "," "," "}, + {" "," "," "," "," "," AAD DAA "," AA TDT AA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," DT TD "," D D "," DT TD "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AA TDT AA "," AAD DAA "," "," "," "," "," "}, + {" "," "," "," "," D D "," AAAATDTAAAA "," A A "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," DT TD "," D D "," DT TD "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," A A "," AAAATDTAAAA "," D D "," "," "," "," "}, + {" "," "," "," "," DDDD DDDD "," DD T T DD "," DD DD "," D D "," D D "," D D "," D D "," D D "," D D "," D D "," D D "," DT TD "," "," DT TD "," D D "," D D "," D D "," D D "," D D "," D D "," D D "," D D "," DD DD "," DD T T DD "," DDDD DDDD "," "," "," "," "}, + {" "," "," "," "," AAADDDAAA "," AA T T AA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," DT TD "," D D "," DT TD "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AA T T AA "," AAADDDAAA "," "," "," "," "}, + {" "," "," "," AA AA "," AAA TDT AAA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AT TA "," D D "," AT TA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AAA TDT AAA "," AA AA "," "," "," "}, + {" "," "," "," AAADAAA "," AA AA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AA AA "," AAADAAA "," "," "," "}, + {" "," "," "," AAADAAA "," AAA AAA "," A A "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," A A "," AAA AAA "," AAADAAA "," "," "," "}, + {" "," "," "," AAADAAA "," AAA AAA "," A A "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," A A "," AAA AAA "," AAADAAA "," "," "," "}, + {" "," "," "," AAADAAA "," AAA AAA "," A A "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," A A "," AAA AAA "," AAADAAA "," "," "," "}, + {" "," "," "," AAADAAA "," AA AA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AA AA "," AAADAAA "," "," "," "}, + {" "," "," "," AADAA "," AAA AAA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AAA AAA "," AADAA "," "," "," "}, + {" "," "," "," "," AAAADAAAA "," AA AA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AA AA "," AAAADAAAA "," "," "," "," "}, + {" "," "," "," "," AAADAAA "," AAA AAA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AAA AAA "," AAADAAA "," "," "," "," "}, + {" "," "," "," "," ADA "," AAAA AAAA "," A A "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," D D "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," A A "," AAAA AAAA "," ADA "," "," "," "," "}, + {" "," "," "," "," D "," AAAHAAA "," AA AA "," AA AA "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," DH HD "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," A A "," AA AA "," AA AA "," AAAHAAA "," D "," "," "," "," "}, + {" "," "," "," "," "," DDDDDDDDD "," DDHHHHHHHHHDD "," DHHNNNN NNNNHHD "," DHNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DH NNNNNNNNNNNNNNNNN HD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNNNHD "," DHNNNNNNNNNNNNNHD "," DHHNNNN NNNNHHD "," DDHHHHHHHHHDD "," DDDDDDDDD "," "," "," "," "," "}, + {" "," "," "," "," "," D "," TTTDHDTTT "," TTAAAN NAAATT "," TAANNNN NNNNAAT "," TAANNNNN NNNNNAAT "," TAANNNNNNNNNNNNNAAT "," TANNNNNNNNNNNNNNNAT "," TANNNNNNNNNNNNNNNNNAT "," TANNNNNNNNNNNNNNNNNAT "," TANNNNNNNNNNNNNNNNNAT "," DNNNNNNNNNNNNNNNNNNND "," DH NNNNNNNNNNNNN HD "," DNNNNNNNNNNNNNNNNNNND "," TANNNNNNNNNNNNNNNNNAT "," TANNNNNNNNNNNNNNNNNAT "," TANNNNNNNNNNNNNNNNNAT "," TANNNNNNNNNNNNNNNAT "," TAANNNNNNNNNNNNNAAT "," TAANNNNN NNNNNAAT "," TAANNNN NNNNAAT "," TTAAAN NAAATT "," TTTDHDTTT "," D "," "," "," "," "," "}, + {" "," "," "," "," "," "," D "," AHA "," AAAAHAAAA "," AANNN NNNAA "," ANNNNN NNNNNA "," ANNNNNNNNNNNNNA "," AANNNNNNNNNNNNNAA "," ANNNNNNNNNNNNNNNA "," ANNNNNNNNNNNNNNNA "," AANNNNNNNNNNNNNNNAA "," DHH NNNNNNNNNNN HHD "," AANNNNNNNNNNNNNNNAA "," ANNNNNNNNNNNNNNNA "," ANNNNNNNNNNNNNNNA "," AANNNNNNNNNNNNNAA "," ANNNNNNNNNNNNNA "," ANNNNN NNNNNA "," AANNN NNNAA "," AAAAHAAAA "," AHA "," D "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," D "," D "," AAAHAAA "," AAAAN NAAAA "," AAANNN NNNAAA "," AANNNN NNNNAA "," AANNNNN NNNNNAA "," AANNNNNNNNNNNAA "," ANNNNNNNNNNNNNA "," DDH NNNNN HDD "," ANNNNNNNNNNNNNA "," AANNNNNNNNNNNAA "," AANNNNN NNNNNAA "," AANNNN NNNNAA "," AAANNN NNNAAA "," AAAAN NAAAA "," AAAHAAA "," D "," D "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," D "," AHA "," AAAHAAA "," AAAAHAAAA "," AAANN NNAAA "," AANNN NNNAA "," AAANNN NNNAAA "," DHHH HHHD "," AAANNN NNNAAA "," AANNN NNNAA "," AAANN NNAAA "," AAAAHAAAA "," AAAHAAA "," AHA "," D "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," D "," D "," DDDDD "," DHHHHHD "," DHHHHHHHD "," DHHHHHHHD "," DDDHHH HHHDDD "," DHHHHHHHD "," DHHHHHHHD "," DHHHHHD "," DDDDD "," D "," D "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," DDDDD "," DDJDJDD "," DJJDJJD "," DDD DDD "," DJJDJJD "," DDJDJDD "," DDDDD "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," L "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," L "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," L "," LLL "," L "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," L "," LLL "," L "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," "," "," "," "," EEEEE "," E E "," E E "," E L E "," E LLL E "," E L E "," E E "," E E "," EEEEE "," "," "," "," "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," "," "," DDDDDDD "," DDTTTTTDD "," DDTTGGGGGTTDD "," DTGGGGGGGGGTD "," DTGGGEEEEEGGGTD "," DDTGGFBBBBBFGGTDD "," DTGGEBB BBEGGTD "," DTGGEB BEGGTD "," DTGGEB J BEGGTD "," DTGGEB BEGGTD "," DTGGEBB BBEGGTD "," DDTGGFBBBBBFGGTDD "," DTGGGEEEEEGGGTD "," DTGGGGGGGGGTD "," DDTTGGGGGTTDD "," DDTTTTTDD "," DDDDDDD "," "," "," "," "," "," "," "," "}, + {" "," "," "," "," "," "," D D "," DTR~RTD "," TDIIIIIDT "," TTIIIIIIIIITT "," TIIIIIIIIIIIIIT "," TIIIIIIIIIIIIIT "," TIIIIIEEEEEIIIIIT "," DDDIIIIFMMMMMFIIIIDDD "," TIIIIEMMBBBMMEIIIIT "," TIIIIEMBBBBBMEIIIIT "," TIIIIEMBBBBBMEIIIIT "," TIIIIEMBBBBBMEIIIIT "," TIIIIEMMBBBMMEIIIIT "," DDDIIIIFMMMMMFIIIIDDD "," TIIIIIEEEEEIIIIIT "," TIIIIIIIIIIIIIT "," TIIIIIIIIIIIIIT "," TTIIIIIIIIITT "," TDIIIIIDT "," DTTTTTD "," D D "," "," "," "," "," "," "}, + {" "," "," "," "," DDDDDDD "," DDDRRRRRDDD "," DDRRHRRRRRHRRDD "," DRRRRHGHHHGHRRRRD "," DRRRRGHIIIIIHGRRRRD "," DRRRGGIIKKKKKIIGGRRRD "," DRRGIIKKKKKKKKKIIGRRD "," DRRRGIKKKKKKKKKKKIGRRRD "," DRRGIKKKKEEEEEKKKKIGRRD "," DDHHHIKKKFMMMMMFKKKIHHHDD "," DRRGIKKKEMMMMMMMEKKKIGRRD "," DRRGIKKKEMMMMMMMEKKKIGRRD "," DRRGIKKKEMMMMMMMEKKKIGRRD "," DRRGIKKKEMMMMMMMEKKKIGRRD "," DRRGIKKKEMMMMMMMEKKKIGRRD "," DDHHHIKKKFMMMMMFKKKIHHHDD "," DRRGIKKKKEEEEEKKKKIGRRD "," DRRRGIKKKKKKKKKKKIGRRRD "," DRRGIIKKKKKKKKKIIGRRD "," DRRRGGIIKKKKKIIGGRRRD "," DRRRRGHIIIIIHGRRRRD "," DRRRRHGGGGGHRRRRD "," DDRRHRRRRRHRRDD "," DDDRRRRRDDD "," DDDDDDD "," "," "," "," "}, + {" "," "," "," DHHHHHHHD "," HDHHHDHHHDH "," HHHHDDDDDDDHHHH "," HHHDDCCCCCCCDDHHH "," HHDDCCCCCCCCCCCDDHH "," HHDCCCCCDDDDDCCCCCDHH "," HHDCCCCHHCCCCCHHCCCCDHH "," HHDCCHHCCCCCCCCCHHCCDHH "," HHDCCCHCCCCCCCCCCCHCCCDHH "," DDHDCCHCCCCEEEEECCCCHCCDHDD "," HHDCCCHCCCFMMMMMFCCCHCCCDHH "," HHDCCDCCCEMMMMMMMECCCDCCDHH "," HHDCCDCCCEMMMMMMMECCCDCCDHH "," HDDCCDCCCEMMMMMMMECCCDCCDDH "," HHDCCDCCCEMMMMMMMECCCDCCDHH "," HHDCCDCCCEMMMMMMMECCCDCCDHH "," HHDCCCHCCCFMMMMMFCCCHCCCDHH "," DDHDCCHCCCCEEEEECCCCHCCDHDD "," HHDCCCHCCCCCCCCCCCHCCCDHH "," HHDCCHHCCCCCCCCCHHCCDHH "," HHDCCCCHHCCCCCHHCCCCDHH "," HHDCCCCCDDDDDCCCCCDHH "," HHDDCCCCCCCCCCCDDHH "," HHHDDCCCCCCCDDHHH "," HHHHDDDDDDDHHHH "," HDHHHDHHHDH "," DHHHHHHHD "," "," "," "}, + {" "," "," D D "," THHJJJHHT "," HHHHHDHHHHH "," JJHHCCCCCCCHHJJ "," HHHCCCCCCCCCCCHHH "," JHCCCCCCCCCCCCCCCHJ "," HHCCCCCCHHHHHCCCCCCHH "," JHCCCCCHHGGGGGHHCCCCCHJ "," JHCCCHHGGGGGGGGGHHCCCHJ "," HHCCCCHGGGGGGGGGGGHCCCCHH "," DTHHCCCHGGGGEEEEEGGGGHCCCHHTD "," HHCCCCHGGGFMMMMMFGGGHCCCCHH "," HHCCCHGGGEMMMMMMMEGGGHCCCHH "," JHCCCHGGGEMMMMMMMEGGGHCCCHJ "," JDCCCHGGGEMMMMMMMEGGGHCCCDJ "," JHCCCHGGGEMMMMMMMEGGGHCCCHJ "," HHCCCHGGGEMMMMMMMEGGGHCCCHH "," HHCCCCHGGGFMMMMMFGGGHCCCCHH "," DTHHCCCHGGGGEEEEEGGGGHCCCHHTD "," HHCCCCHGGGGGGGGGGGHCCCCHH "," JHCCCHHGGGGGGGGGHHCCCHJ "," JHCCCCCHHGGGGGHHCCCCCHJ "," HHCCCCCCHHHHHCCCCCCHH "," JHCCCCCCCCCCCCCCCHJ "," HHHCCCCCCCCCCCHHH "," JJHHCCCCCCCHHJJ "," HHHHHDHHHHH "," THHJJJHHT "," D D "," "," "}, + {" "," D D "," TT TT "," THSSSSSHT "," HHHHHDHHHHH "," HHHHHHHHHHHHHHH "," HHHSSHHHHHHHSSHHH "," HHSSSJSHHHHHSJSSSHH "," HHSSJSSSHHHHHSSSJSSHH "," HHSSSSSHH HHSSSSSHH "," HHSJSHH HHSJSHH "," HHSSSSH HSSSSHH "," DTTHHSJSH EEEEE HSJSHHTTD "," THHHHSSH FMMMMMF HSSHHHHT "," SHHHHH EMMMMMMME HHHHHS "," SHHHHH EMMMMMMME HHHHHS "," SDHHHH EMMMMMMME HHHHDS "," SHHHHH EMMMMMMME HHHHHS "," SHHHHH EMMMMMMME HHHHHS "," THHHHSSH FMMMMMF HSSHHHHT "," DTTHHSJSH EEEEE HSJSHHTTD "," HHSSSSH HSSSSHH "," HHSJSHH HHSJSHH "," HHSSSSSHH HHSSSSSHH "," HHSSJSSSHHHHHSSSJSSHH "," HHSSSJSHHHHHSJSSSHH "," HHHSSHHHHHHHSSHHH "," HHHHHHHHHHHHHHH "," HHHHHDHHHHH "," THSSSSSHT "," TT TT "," D D "," "}, + {" DDDDDDDDD "," DTTTTTTTD "," DDD DDD "," DDDDDDDDDDD "," DDDDDDDDDDD "," DDDDDDDDDDDDDDD "," DDD DDDDDDD DDD "," DD DDDDD DD "," DD DDDDD DD "," DD DD DD DD "," DD DD DD DD "," DDDD D D DDDD ","DDDDDD D EJJJE D DDDDDD","DTDDDDD D FMMMMMF D DDDDDTD","DT DDDDDD EMMMMMMME DDDDDD TD","DT DDDDDD JMMMMMMMJ DDDDDD TD","DT DDDDDD JMMMMMMMJ DDDDDD TD","DT DDDDDD JMMMMMMMJ DDDDDD TD","DT DDDDDD EMMMMMMME DDDDDD TD","DTDDDDD D FMMMMMF D DDDDDTD","DDDDDD D EJJJE D DDDDDD"," DDDD D D DDDD "," DD DD DD DD "," DD DD DD DD "," DD DDDDD DD "," DD DDDDD DD "," DDD DDDDDDD DDD "," DDDDDDDDDDDDDDD "," DDDDDDDDDDD "," DDDDDDDDDDD "," DDD DDD "," DTTTTTTTD "," DDDDDDDDD "}, + {" BBBBBBBBB "," BBB BBB "," BBOBBB BBBOBB "," BBOOOBBBBBBBBBBBOOOBB "," BOOOOOBBBBBBBBBBBOOOOOB "," BOOOOBBBBBBBBBBBBBBBOOOOB "," BOOOOBBB BBBBBBB BBBOOOOB "," BOOOBB BBBBB BBOOOB "," BOOOBB BBBBB BBOOOB "," BOOBB BB BB BBOOB "," BOOOBB BB BB BBOOOB "," BBBBB B B BBBBB ","BBBBBB B EEEEE B BBBBBB","B BBBBB B EFFFFFE B BBBBB B","B BBBBBB EFFMMMFFE BBBBBB B","B BBBBBB EFMMMMMFE BBBBBB B","B BBBBBB EFMMMMMFE BBBBBB B","B BBBBBB EFMMMMMFE BBBBBB B","B BBBBBB EFFMMMFFE BBBBBB B","B BBBBB B EFFFFFE B BBBBB B","BBBBBB B EEEEE B BBBBBB"," BBBBB B B BBBBB "," BOOOBB BB BB BBOOOB "," BOOBB BB BB BBOOB "," BOOOBB BBBBB BBOOOB "," BOOOBB BBBBB BBOOOB "," BOOOOBBB BBBBBBB BBBOOOOB "," BOOOOBBBBBBBBBBBBBBBOOOOB "," BOOOOOBBBBBBBBBBBOOOOOB "," BBOOOBBBBBBBBBBBOOOBB "," BBOBBB BBBOBB "," BBB BBB "," BBBBBBBBB "} + }; + + private final String[][] water =new String[][]{ + {"Q"} + }; + + @Override + protected GT_Multiblock_Tooltip_Builder createTooltip() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + // #tr Tooltip_MegaTreeFarm_MachineType + // # Tree Farm + // #zh_CN 树厂 + tt.addMachineType(TextEnums.tr("Tooltip_MegaTreeFarm_MachineType")) + // #tr Tooltip_MegaTreeFarm_Controller + // # Controller block for the BioSphere Growth Simulator + // #zh_CN 拟生圈的控制方块 + .addInfo(TextEnums.tr("Tooltip_MegaTreeFarm_Controller")) + .addController(textUseBlueprint) + .addInputBus(textUseBlueprint, 1) + .addOutputBus(textUseBlueprint, 1) + .addEnergyHatch(textUseBlueprint, 2) + .toolTipFinisher(ModName); + return tt; + } + + // spotless:on + // region Processing Logic + + @Override + protected boolean isEnablePerfectOverclock() { + return false; + } + + @Override + protected float getSpeedBonus() { + return 1; + } + + @Override + protected int getMaxParallelRecipes() { + return 1; + } + + @Override + public RecipeMap getRecipeMap() { + return GTCMRecipe.TreeGrowthSimulatorWithoutToolRecipes; + } + + @Override + public boolean supportsInputSeparation() { + return false; + } + + @Override + public boolean supportsBatchMode() { + return false; + } + + @Override + public boolean supportsSingleRecipeLocking() { + return false; + } + + private static int getTierMultiplier(int tier) { + // tentative + return (int) Math.floor( + 0.06 * Math.pow(2, tier * (1 + Math.exp(-0.1 * Math.pow(tier - 14, 2)) - 0.03 * (tier - 14) * (tier - 1))) + + 1.5 * Math.pow(2, tier)); + } + } diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_StarcoreMiner.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_StarcoreMiner.java index eaf78e3a..bc85f258 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_StarcoreMiner.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/TST_StarcoreMiner.java @@ -457,16 +457,16 @@ protected GT_Multiblock_Tooltip_Builder createTooltip() { // #zh_CN 结构中采矿通道部分需要至少延伸至高度20以下. .addInfo(TextEnums.tr("Tooltip_Starcore_08")) // #tr Tooltip_Starcore_Crash_20240606 - // # There is a serious bug in the blueprint automatic construction function of this machine, - // #zh_CN {\RED}{\BOLD}此机器的蓝图自动搭建功能出现严重bug, + // # There is a serious bug in the blueprint automatic construction function of borosilicate glass, + // #zh_CN {\RED}{\BOLD}蓝图自动搭建硼玻璃功能发现严重bug, .addInfo(TextEnums.tr("Tooltip_Starcore_Crash_20240606")) // #tr Tooltip_Starcore_Crash_20240606_02 // # {\RED}{\BOLD}{\SPACE}which may cause the save file to crash and become inaccessible. // #zh_CN {\RED}{\BOLD}{\SPACE}可能导致存档崩溃无法进入. .addInfo(TextEnums.tr("Tooltip_Starcore_Crash_20240606_02")) // #tr Tooltip_Starcore_Crash_20240606_03 - // # In case of emergency, you can install ZeroPointBugFix-0.4.1 mod for temporary fix. - // #zh_CN {\RED}紧急情况可安装 ZeroPointBugFix-0.4.1 mod临时修复. + // # In case of emergency, you can install ZeroPointBugFix mod for temporary fix. + // #zh_CN {\RED}紧急情况可安装 ZeroPointBugFix mod 临时修复. .addInfo(TextEnums.tr("Tooltip_Starcore_Crash_20240606_03")) .addInfo(TextLocalization.Tooltips_JoinWirelessNetWithoutEnergyHatch) .addSeparator() diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/ValueEnum.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/ValueEnum.java index 54900104..27c9d320 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/ValueEnum.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/ValueEnum.java @@ -278,9 +278,15 @@ public final class ValueEnum { public static boolean SpaceApiaryEnableDisplayInfo = Config.SpaceApiaryEnableDisplayInfo; // endregion - // region + // region Industrial Magnetar Separator public static float SpeedBouns_IndustrialMagnetarSeparator = Config.SpeedBouns_IndustrialMagnetarSeparator; public static float EuModifier_IndustrialMagnetarSeparator = Config.EuModifier_IndustrialMagnetarSeparator; public static int ParallelMultiply_IndustrialMagnetarSeparator = Config.ParallelMultiply_IndustrialMagnetarSeparator; // end region + + // region Incompact Cyclotron + public static float EuModifier_IncompactCyclotron = Config.EuModifier_IncompactCyclotron; + public static boolean EnablePerfectOverclock_IncompactCyclotron = Config.EnablePerfectOverclock_IncompactCyclotron; + public static float SpeedBouns_IncompactCyclotron = Config.SpeedBouns_IncompactCyclotron; + public static int MaxParallel_IncompactCyclotron = Config.MaxParallel_IncompactCyclotron; } diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/multiMachineClasses/GTCM_MultiMachineBase.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/multiMachineClasses/GTCM_MultiMachineBase.java index 408556e9..c33fd2a5 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/multiMachineClasses/GTCM_MultiMachineBase.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/machine/multiMachineClasses/GTCM_MultiMachineBase.java @@ -486,5 +486,10 @@ public boolean supportsSingleRecipeLocking() { return true; } + @Override + public int getRecipeCatalystPriority() { + return -1; + } + // endregion } diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/modularizedMachine/MM_IndistinctTentaclePrototypeMK2.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/modularizedMachine/MM_IndistinctTentaclePrototypeMK2.java index 7b3e6ee6..8bfea506 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/modularizedMachine/MM_IndistinctTentaclePrototypeMK2.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/modularizedMachine/MM_IndistinctTentaclePrototypeMK2.java @@ -342,8 +342,14 @@ public IStructureDefinition getStructureDefin .addElement( 'L', GT_HatchElementBuilder.builder() - .atLeast(InputBus, InputHatch, OutputBus) - .adder(MM_IndistinctTentaclePrototypeMK2::addNormalHatchToMachineList) + .atLeast( + InputBus, + InputHatch, + OutputBus, + ExecutionCoreModule, + ParallelController, + PowerConsumptionController) + .adder(MM_IndistinctTentaclePrototypeMK2::addToMachineList) .dot(1) .casingIndex(1024 + 12) .buildAndChain(sBlockCasingsTT, 12)) diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/common/recipeMap/GTCMRecipe.java b/src/main/java/com/Nxer/TwistSpaceTechnology/common/recipeMap/GTCMRecipe.java index ec1424cd..ffb2c3ba 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/common/recipeMap/GTCMRecipe.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/common/recipeMap/GTCMRecipe.java @@ -204,6 +204,9 @@ public class GTCMRecipe { .disableOptimize() .build(); + // #tr tst.recipe.MassFabricatorGenesis + // # Mass Fabricator : Genesis + // #zh_CN 质量发生器 : 创世纪 public static final RecipeMap MassFabricatorGenesis = RecipeMapBuilder .of("tst.recipe.MassFabricatorGenesis", TST_RecipeMapBackend::new) .maxIO(1, 0, 0, 1) @@ -212,4 +215,11 @@ public class GTCMRecipe { .disableOptimize() .build(); + public static final RecipeMap TreeGrowthSimulatorWithoutToolRecipes = RecipeMapBuilder + .of("tst.recipe.TreeGrowthSimulatorWithoutToolRecipes", TST_RecipeMapBackend::new) + .maxIO(1, 4, 1, 0) + .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) + .neiHandlerInfo(builder -> builder.setDisplayStack(GTCMItemList.MegaTreeFarm.get(1))) + .disableOptimize() + .build(); } diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/config/Config.java b/src/main/java/com/Nxer/TwistSpaceTechnology/config/Config.java index 0ee58408..b636b91b 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/config/Config.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/config/Config.java @@ -311,7 +311,7 @@ public class Config { public static boolean Enable_IndustrialMagnetarSeparator = true; public static float SpeedBouns_IndustrialMagnetarSeparator = 0.25F; public static float EuModifier_IndustrialMagnetarSeparator = 0.8F; - public static int ParallelMultiply_IndustrialMagnetarSeparator = 8; + public static int ParallelMultiply_IndustrialMagnetarSeparator = 4; // endregion @@ -362,6 +362,13 @@ public class Config { public static boolean EnableLargeNeutronOscillator = true; // endregion + // region Incompact Cyclotron + public static boolean Enable_IncompactCyclotron =true; + public static float EuModifier_IncompactCyclotron = 1.6F; + public static boolean EnablePerfectOverclock_IncompactCyclotron =false; + public static float SpeedBouns_IncompactCyclotron =0.5F; + public static int MaxParallel_IncompactCyclotron =256; + // region PowerChair BGM public static boolean Enable_PowerChairBGM = true; // endregion diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/loader/MachineLoader.java b/src/main/java/com/Nxer/TwistSpaceTechnology/loader/MachineLoader.java index 23d87daa..41ed2766 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/loader/MachineLoader.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/loader/MachineLoader.java @@ -39,6 +39,7 @@ import com.Nxer.TwistSpaceTechnology.common.machine.TST_DeployedNanoCore; import com.Nxer.TwistSpaceTechnology.common.machine.TST_EyeOfWood; import com.Nxer.TwistSpaceTechnology.common.machine.TST_HephaestusAtelier; +import com.Nxer.TwistSpaceTechnology.common.machine.TST_IncompactCyclotron; import com.Nxer.TwistSpaceTechnology.common.machine.TST_IndistinctTentacle; import com.Nxer.TwistSpaceTechnology.common.machine.TST_IndustrialMagnetarSeparator; import com.Nxer.TwistSpaceTechnology.common.machine.TST_LargeCanner; @@ -47,6 +48,7 @@ import com.Nxer.TwistSpaceTechnology.common.machine.TST_LargeSteamForgeHammer; import com.Nxer.TwistSpaceTechnology.common.machine.TST_MegaCraftingCenter; import com.Nxer.TwistSpaceTechnology.common.machine.TST_MegaMacerator; +import com.Nxer.TwistSpaceTechnology.common.machine.TST_MegaTreeFarm; import com.Nxer.TwistSpaceTechnology.common.machine.TST_MiracleDoor; import com.Nxer.TwistSpaceTechnology.common.machine.TST_Scavenger; import com.Nxer.TwistSpaceTechnology.common.machine.TST_SpaceApiary; @@ -154,6 +156,7 @@ public class MachineLoader { public static ItemStack LargeNeutronOscillator; public static ItemStack IndistinctTentaclePrototypeMK2; public static ItemStack MassFabricatorGenesis; + public static ItemStack IncompactCyclotron; // Single Block public static ItemStack InfiniteAirHatch; @@ -569,13 +572,22 @@ public static void loadMachines() { GTCMItemList.IndustrialMagnetarSeparator.set(IndustrialMagnetarSeparator); } + if (Config.Enable_MegaTreeFarm) { + MegaTreeFarm = new TST_MegaTreeFarm( + 19051, + "NameMegaTreeFarm", + // #tr NameMegaTreeFarm + // # BioSphere Growth Simulator + // #zh_CN 拟生圈 + TextEnums.tr("NameMegaTreeFarm")).getStackForm(1); + GTCMItemList.MegaTreeFarm.set(MegaTreeFarm); + } + ExtremeCraftCenter = new TST_MegaCraftingCenter( 19052, "NameExtremeCraftCenter", TextEnums.tr("NameExtremeCraftCenter")).getStackForm(1); GTCMItemList.ExtremeCraftCenter.set(ExtremeCraftCenter); - // if(Config.Enable_MegaTreeFarm) - // 19051 if (Config.Enable_LightningSpire) { LightningSpire = new GTCM_LightningSpire( @@ -635,6 +647,17 @@ public static void loadMachines() { TextEnums.tr("NameMassFabricatorGenesis")).getStackForm(1); GTCMItemList.MassFabricatorGenesis.set(MassFabricatorGenesis); + if (Config.Enable_IncompactCyclotron) { + // #tr NameIncompactCyclotron + // # PULSAR - Incompact Cyclotron + // #zh_CN PULSAR - 非紧凑式回旋加速器 + IncompactCyclotron = new TST_IncompactCyclotron( + 19058, + "NameIncompactCyclotron", + TextEnums.tr("NameIncompactCyclotron")).getStackForm(1); + GTCMItemList.IncompactCyclotron.set(IncompactCyclotron); + } + } // endregion diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/loader/RecipeLoader.java b/src/main/java/com/Nxer/TwistSpaceTechnology/loader/RecipeLoader.java index 637fb21d..66fdf395 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/loader/RecipeLoader.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/loader/RecipeLoader.java @@ -56,7 +56,7 @@ public static void loadRecipes() { new ShapedCraftRecipePool(), new MixerRecipePool(), new QFTRecipePool(), new NanoForgeRecipePool(), new FluidHeaterRecipePool(), new ParticleColliderRecipePool(), new IndustrialMagicMatrixRecipePool(), new DragonBloodRecipe(), new FusionReactorRecipePool(), new ModularHatchesRecipePool(), - new MassFabricatorGenesisRecipePool() }; + new MassFabricatorGenesisRecipePool(), new TreeGrowthSimulatorWithoutToolRecipe() }; new TCResearches().loadResearches(); for (IRecipePool recipePool : recipePools) { diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/GTCMMachineRecipePool.java b/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/GTCMMachineRecipePool.java index 77864df7..c9f86883 100644 --- a/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/GTCMMachineRecipePool.java +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/GTCMMachineRecipePool.java @@ -9,9 +9,11 @@ import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.BallLightningUpgradeChip; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.BiosphereIII; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.CircuitConverter; +import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.CompactCyclotronCoil; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.CriticalPhoton; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.CrystallineInfinitier; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.DebugUncertaintyHatch; +import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.DenseCyclotronOuterCasing; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.DualInputBuffer_IV; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.DualInputBuffer_LuV; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.DualInputBuffer_UV; @@ -20,6 +22,7 @@ import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.GravitationalLens; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.HighPowerRadiationProofCasing; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.HolySeparator; +import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.IncompactCyclotron; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.IndustrialMagnetarSeparator; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.InfiniteAirHatch; import static com.Nxer.TwistSpaceTechnology.common.GTCMItemList.InfiniteWirelessDynamoHatch; @@ -140,6 +143,10 @@ import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; import static gtPlusPlus.core.item.chemistry.RocketFuels.Liquid_Hydrogen; +import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.COMET_Cyclotron; +import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Casing_AdvancedVacuum; +import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Casing_Cyclotron_Coil; +import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Casing_Cyclotron_External; import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Casing_Industrial_Arc_Furnace; import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.GTPP_Casing_UHV; import static gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Hatch_Air_Intake_Extreme; @@ -2699,6 +2706,89 @@ public void loadRecipes() { .addTo(assembler); } + //region Incompact Cyclotron + if(Config.Enable_IncompactCyclotron){ + GT_Values.RA + .stdBuilder() + .metadata(RESEARCH_ITEM, COMET_Cyclotron.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + CustomItemList.Hull_UEV.get(64), + COMET_Cyclotron.get(64), + ItemList.Casing_Coil_Infinity.get(8), + Laser_Lens_Special.get(4), + + ItemList.Field_Generator_UHV.get(16), + ItemRefer.HiC_T5.get(32), + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 16}, + MyMaterial.enrichedNaquadahAlloy.get(OrePrefixes.plateDense,16), + + GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.NaquadahAlloy,16), + GT_OreDictUnificator.get(OrePrefixes.screw,Materials.NaquadahAlloy,64) + + ) + .fluidInputs( + Materials.NaquadahAlloy.getMolten(144 * 256), + FluidRegistry.getFluidStack("cryotheum", 1_000_000), + ELEMENT.STANDALONE.HYPOGEN.getFluidStack(144 * 2) + ) + .itemOutputs(IncompactCyclotron.get(1)) + .eut(RECIPE_UEV) + .duration(20 * 900) + .addTo(assemblyLine); + + GT_Values.RA + .stdBuilder() + .metadata(RESEARCH_ITEM, Casing_Cyclotron_External.get(1)) + .metadata(RESEARCH_TIME, 2 * HOURS) + .itemInputs( + Casing_Cyclotron_External.get(4), + Casing_AdvancedVacuum.get(4), + ItemUtils.simpleMetaStack("miscutils:itemDehydratorCoilWire", 3, 16), + ItemRefer.Advanced_Radiation_Protection_Plate.get(6), + + ALLOY.ABYSSAL.getLongRod(12), + ALLOY.TITANSTEEL.getScrew(24), + ItemList.Electric_Piston_UV.get(6) + + ) + .fluidInputs( + ALLOY.BLACK_TITANIUM.getFluidStack(144*10), + MyMaterial.enrichedNaquadahAlloy.getMolten(144*4) + ) + .itemOutputs(DenseCyclotronOuterCasing.get(1)) + .eut(RECIPE_UHV) + .duration(20 * 30) + .addTo(assemblyLine); + + GT_Values.RA + .stdBuilder() + .metadata(RESEARCH_ITEM, Casing_Cyclotron_Coil.get(1)) + .metadata(RESEARCH_TIME, 4 * HOURS) + .itemInputs( + Casing_Cyclotron_Coil.get(16), + ItemList.Casing_Coil_Superconductor.get(4), + ItemList.Energy_Cluster.get(1), + ItemList.UHV_Coil.get(64), + + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 2}, + ItemUtils.simpleMetaStack(ModItems.itemStandarParticleBase, 19, 64), + ItemList.Field_Generator_UHV.get(1) + ) + .fluidInputs( + Materials.UUMatter.getFluid(1000 * 64), + new FluidStack(celestialTungsten, 1000 * 16), + Materials.Longasssuperconductornameforuhvwire.getMolten(144 * 8), + MyMaterial.enrichedNaquadahAlloy.getMolten(144 * 2) + ) + .itemOutputs(CompactCyclotronCoil.get(1)) + .eut(RECIPE_UHV) + .duration(20 * 60) + .addTo(assemblyLine); + } + + + if (Config.EnableModularizedMachineSystem) { if (Config.EnableDimensionallyTranscendentMatterPlasmaForgePrototypeMK2) { diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/TreeGrowthSimulatorWithoutToolRecipe.java b/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/TreeGrowthSimulatorWithoutToolRecipe.java new file mode 100644 index 00000000..3eb24141 --- /dev/null +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/recipe/machineRecipe/TreeGrowthSimulatorWithoutToolRecipe.java @@ -0,0 +1,29 @@ +package com.Nxer.TwistSpaceTechnology.recipe.machineRecipe; + +import static com.Nxer.TwistSpaceTechnology.util.enums.TierEU.RECIPE_MAX; +import static gregtech.api.enums.Mods.Minecraft; +import static gregtech.api.util.GT_ModHandler.getModItem; + +import com.Nxer.TwistSpaceTechnology.common.recipeMap.GTCMRecipe; +import com.Nxer.TwistSpaceTechnology.recipe.IRecipePool; + +import gregtech.api.enums.GT_Values; + +public class TreeGrowthSimulatorWithoutToolRecipe implements IRecipePool { + + @Override + public void loadRecipes() { + GT_Values.RA.stdBuilder() + .itemInputs(getModItem(Minecraft.ID, "sapling", 0, 0)) + .itemOutputs( + getModItem(Minecraft.ID, "log", 5, 0), + getModItem(Minecraft.ID, "sapling", 1, 0), + getModItem(Minecraft.ID, "leaves", 2, 0), + getModItem(Minecraft.ID, "apple", 1, 0)) + .noOptimize() + .eut(RECIPE_MAX) + .duration(20 * 10) + .addTo(GTCMRecipe.TreeGrowthSimulatorWithoutToolRecipes); + + } +} diff --git a/src/main/java/com/Nxer/TwistSpaceTechnology/util/LoaderReference.java b/src/main/java/com/Nxer/TwistSpaceTechnology/util/LoaderReference.java new file mode 100644 index 00000000..e425d102 --- /dev/null +++ b/src/main/java/com/Nxer/TwistSpaceTechnology/util/LoaderReference.java @@ -0,0 +1,10 @@ +package com.Nxer.TwistSpaceTechnology.util; + +import cpw.mods.fml.common.Loader; + +public class LoaderReference { + + public static final boolean ProjRedIllumination = Loader.isModLoaded("ProjRed|Illumination"); + public static final boolean EternalSingularity = Loader.isModLoaded("eternalsingularity"); + +} diff --git a/src/main/resources/assets/gtnhcommunitymod/lang/en_US.lang b/src/main/resources/assets/gtnhcommunitymod/lang/en_US.lang index 62e2a225..e3e94b89 100644 --- a/src/main/resources/assets/gtnhcommunitymod/lang/en_US.lang +++ b/src/main/resources/assets/gtnhcommunitymod/lang/en_US.lang @@ -935,9 +935,9 @@ Tooltip_BallLightning.0.09=Comprises four machine levels, each unlocking a diffe Tooltip_BallLightning.0.10=With each machine tier upgrade, the lower-tier modes benefit from a 4x speed multiplier. Tooltip_BallLightning.0.11=§6=== Machine Tier === Tooltip_BallLightning.0.12=The base structure is Tier 1 -Tooltip_BallLightning.0.13=Gravitational Lens in the control slot unlocks level 2 -Tooltip_BallLightning.0.14=Upgrade Chip in the control slot and utilizing Tier 2 structure unlocks level 3 -Tooltip_BallLightning.0.15=Utilizing Advanced High Power Coil unlocks level 4 +Tooltip_BallLightning.0.13=Gravitational Lens in the control slot unlocks Tier 2 +Tooltip_BallLightning.0.14=Upgrade Chip in the control slot and utilizing Tier 2 structure unlocks Tier 3 +Tooltip_BallLightning.0.15=Utilizing Advanced High Power Coil unlocks Tier 4 Tooltip_BallLightning.0.16=§6=== Machine Mode === Tooltip_BallLightning.0.17=§e (Plasma / Electric) Arc Furnace Tooltip_BallLightning.0.18=Parallel number = 2 ^ (Compact Fusion Coil Tier * (Coil Tier - 10)) @@ -1097,7 +1097,7 @@ Tooltip_IndustrialMagnetarSeparator_MachineType=Electromagnetic Separator Tooltip_IndustrialMagnetarSeparator_Controller=Controller block for the Industrial Magnetar Separator Tooltip_IndustrialMagnetarSeparator.01=300% faster than using single block machines of the same voltage Tooltip_IndustrialMagnetarSeparator.02=Only uses 80% of the EU/t normally required -Tooltip_IndustrialMagnetarSeparator.03=Processes eight items per voltage tier +Tooltip_IndustrialMagnetarSeparator.03=Processes 4 items per voltage tier Tooltip_IndustrialMagnetarSeparator.casingAmount=§69x §7Anti-Magnetic Casing (minimum) BlockPowerChair.0.name=PowerChair @@ -1253,11 +1253,32 @@ Tooltip_IndistinctTentaclePrototypeMK2_02_01= Only §cPerfect Execution Core InstallingModuleNearControllerImproveMachine=Installing module hatches near the controller block can significantly improve machine performance. NameIndistinctTentaclePrototypeMK2=§8§lIndistinct Tentacle §rPrototype MK-II Waila.PerfectExecutionCore.ThisExecutionCore=This Execution Core -Tooltip_Starcore_Crash_20240606=There is a serious bug in the blueprint automatic construction function of this machine, +Tooltip_Starcore_Crash_20240606=There is a serious bug in the blueprint automatic construction function of borosilicate glass, Tooltip_Starcore_Crash_20240606_02=§c§l which may cause the save file to crash and become inaccessible. -Tooltip_Starcore_Crash_20240606_03=In case of emergency, you can install ZeroPointBugFix-0.4.1 mod for temporary fix. +Tooltip_Starcore_Crash_20240606_03=In case of emergency, you can install ZeroPointBugFix mod for temporary fix. GTCM_LightningSpire_11=§nOtherwise all internal lightning rods will be lost! Tooltip_MassFabricatorGenesis_MachineType=§fModularized Machine §7- §eNeutron Activator Tooltip_MassFabricatorGenesis_01=§9§o“Even though the future seems far away, it is actually beginning right now.” Tooltip_MassFabricatorGenesis_02=Energy - Mass : Interface. NameMassFabricatorGenesis=Mass Fabricator : Genesis +Tooltip_MegaTreeFarm_MachineType=Tree Farm +Tooltip_MegaTreeFarm_Controller=Controller block for the BioSphere Growth Simulator +NameMegaTreeFarm=BioSphere Growth Simulator +MetaBlockCasing01.9.name=Reinforced Stone Brick Casing +Tooltip_ReinforcedStoneBrickCasing=Stronger than bedrock! +MetaBlockCasing01.10.name=Composite Farm Casing +Tooltip_CompositeFarmCasing=A force stronger than four combined. +MetaBlockCasing01.11.name=Dense Cyclotron Outer Casing +MetaBlockCasing01.12.name=Compact Cyclotron Coil +NameIncompactCyclotron=PULSAR - Incompact Cyclotron +Tooltip_IncompactCyclotron_MachineType=Particle Accelerator +Tooltip_IncompactCyclotron_Controller=Controller block for the Incompact Cyclotron +Tooltip_IncompactCyclotron_01=§5Pulsed Ultrafast Linear Synchronized Accelerator Ring +Tooltip_IncompactCyclotron_02=The particles are accelerated to §e99%%§7 of the speed of light by the electric field! +Tooltip_IncompactCyclotron_03=But you can extract the accelerated particles at any time. +Tooltip_IncompactCyclotron_04="That's incredible!" +Tooltip_IncompactCyclotron_05=Thanks to the upgrade of technology +Tooltip_IncompactCyclotron_06=The accelerator upgraded 100%% speedup and 256 parallel +Tooltip_IncompactCyclotron_07=But it requires additional 60%% of power to work +tst.megacraftingcenter.desc.5=There is a performance issue when checking pattern. Please use with caution. +tst.recipe.MassFabricatorGenesis=Mass Fabricator : Genesis diff --git a/src/main/resources/assets/gtnhcommunitymod/lang/zh_CN.lang b/src/main/resources/assets/gtnhcommunitymod/lang/zh_CN.lang index 1aff8b98..cea6b872 100644 --- a/src/main/resources/assets/gtnhcommunitymod/lang/zh_CN.lang +++ b/src/main/resources/assets/gtnhcommunitymod/lang/zh_CN.lang @@ -700,7 +700,7 @@ NameMegaEggGenerator=抽象之塔 NameAdvancedMegaOilCracker=进阶巨型石油裂化机 Tooltips_AdvancedMegaOilCracker_MachineType=石油裂化机 Tooltips_AdvancedMegaOilCracker_Controller=进阶巨型石油裂化机的控制器方块 -Tooltips_AdvancedMegaOilCracker_01=§o自由是自制之基础. +Tooltips_AdvancedMegaOilCracker_01=§o自由是自治之基础. Tooltips_AdvancedMegaOilCracker_02=就像巨型石油裂化机那样. tst.recipe.AssemblyLineWithoutResearchRecipe=巨型装配线 NameIndistinctTentacle=§8§l不可视之触§r @@ -1097,7 +1097,7 @@ Tooltip_IndustrialMagnetarSeparator_MachineType=电磁离析机 Tooltip_IndustrialMagnetarSeparator_Controller=工业电磁离析机的控制方块 Tooltip_IndustrialMagnetarSeparator.01=比相同电压的单方块机器快300%% Tooltip_IndustrialMagnetarSeparator.02=只需要使用配方要求功率的80%% -Tooltip_IndustrialMagnetarSeparator.03=每提升一个电压等级,每次运行可以多处理8个物品 +Tooltip_IndustrialMagnetarSeparator.03=每提升一个电压等级,每次运行可以多处理4个物品 Tooltip_IndustrialMagnetarSeparator.casingAmount=剩余方块为§7抗磁机械方块§r(至少§69§r个!) BlockPowerChair.0.name=抛瓦椅 @@ -1105,7 +1105,7 @@ NameExtremeCraftCenter=梦魇工业合成中心 tst.megacraftingcenter.machinetype=工作台 | 梦魇合成台 tst.megacraftingcenter.desc.0= 耗电量: ZPM * n, n 是当前并行合成的数量 tst.megacraftingcenter.desc.1= 处理时间: (2 * (1 + log10(1 + n))) Tick -tst.megacraftingcenter.desc.2= 需要输出仓进行物品输出,需要输入仓放置样板 +tst.megacraftingcenter.desc.2= 需要输出总线进行物品输出,需要输入总线放置样板 tst.megacraftingcenter.desc.3= 如果样板不是合法的工作台配方或者终极工作台配方,将不会被处理并展示在ae网络中。 tst.megacraftingcenter.desc.4= 请不要倍增您的样板。数量与展示在NEI中的配方不符的样板将视为不合法。 gtcm.recipe.extremeCraftRecipes= 梦魇工作台配方转换 @@ -1253,11 +1253,32 @@ Tooltip_IndistinctTentaclePrototypeMK2_02_01= 只可安装 §c完美执行核 InstallingModuleNearControllerImproveMachine=在主机附近安装模块仓室可以显著提升机器性能. NameIndistinctTentaclePrototypeMK2=§8§l不可视之触§r原型机MK-II Waila.PerfectExecutionCore.ThisExecutionCore=此执行核心 -Tooltip_Starcore_Crash_20240606=§c§l此机器的蓝图自动搭建功能出现严重bug, +Tooltip_Starcore_Crash_20240606=§c§l蓝图自动搭建硼玻璃功能发现严重bug, Tooltip_Starcore_Crash_20240606_02=§c§l 可能导致存档崩溃无法进入. -Tooltip_Starcore_Crash_20240606_03=§c紧急情况可安装 ZeroPointBugFix-0.4.1 mod临时修复. +Tooltip_Starcore_Crash_20240606_03=§c紧急情况可安装 ZeroPointBugFix mod 临时修复. GTCM_LightningSpire_11=§n否则会丢失所有内部避雷针! Tooltip_MassFabricatorGenesis_MachineType=§f模块化机械 §7- §e质量发生器 Tooltip_MassFabricatorGenesis_01=§9§o“虽然未来似乎很遥远,但其实已经开始了。” Tooltip_MassFabricatorGenesis_02=能量 - 质量 : 接口. NameMassFabricatorGenesis=质量发生器 : 创世纪 +Tooltip_MegaTreeFarm_MachineType=树厂 +Tooltip_MegaTreeFarm_Controller=拟生圈的控制方块 +NameMegaTreeFarm=拟生圈 +MetaBlockCasing01.9.name=强化石砖机械方块 +Tooltip_ReinforcedStoneBrickCasing=比磐石更坚! +MetaBlockCasing01.10.name=复合农场机械方块 +Tooltip_CompositeFarmCasing=一个更比四个强 +MetaBlockCasing01.11.name=致密回旋加速器机械方块 +MetaBlockCasing01.12.name=压缩回旋加速器线圈 +NameIncompactCyclotron=PULSAR - 非紧凑式回旋加速器 +Tooltip_IncompactCyclotron_MachineType=粒子加速器 +Tooltip_IncompactCyclotron_Controller=非紧凑式回旋加速器的控制方块 +Tooltip_IncompactCyclotron_01=§5脉冲超快线性同步加速器 +Tooltip_IncompactCyclotron_02=粒子在电场下被加速到§e99%%§7光速! +Tooltip_IncompactCyclotron_03=但是你随时可以取出加工的粒子 +Tooltip_IncompactCyclotron_04=这太神奇了! +Tooltip_IncompactCyclotron_05=得益于工艺的升级 +Tooltip_IncompactCyclotron_06=加速器拥有了额外100%的额外加速,以及256并行 +Tooltip_IncompactCyclotron_07=但是需要额外60%%的供电来运行 +tst.megacraftingcenter.desc.5=当前检查样板功能存在性能问题. 谨慎使用. +tst.recipe.MassFabricatorGenesis=质量发生器 : 创世纪 diff --git a/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/10.png b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/10.png new file mode 100644 index 00000000..d998ef69 Binary files /dev/null and b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/10.png differ diff --git a/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/11.png b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/11.png new file mode 100644 index 00000000..7b69a877 Binary files /dev/null and b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/11.png differ diff --git a/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/12.png b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/12.png new file mode 100644 index 00000000..dd3e28d0 Binary files /dev/null and b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/12.png differ diff --git a/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/9.png b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/9.png new file mode 100644 index 00000000..543fccc5 Binary files /dev/null and b/src/main/resources/assets/gtnhcommunitymod/textures/blocks/MetaBlockCasing01/9.png differ