diff options
| author | MadMan310 <66886359+MadMan310@users.noreply.github.com> | 2022-11-29 01:50:58 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-29 10:50:58 +0100 |
| commit | f985e28ae553428945f3ce3841ac036c98266128 (patch) | |
| tree | 278c857c13493a8d0fdaebfb9a3d9cb90d07a774 | |
| parent | 766af258761d0cc88d44169d06ae47198218078e (diff) | |
| download | GT5-Unofficial-f985e28ae553428945f3ce3841ac036c98266128.tar.gz GT5-Unofficial-f985e28ae553428945f3ce3841ac036c98266128.tar.bz2 GT5-Unofficial-f985e28ae553428945f3ce3841ac036c98266128.zip | |
Component Assembly Line (#102)
* Initial Commit
* Added recipe generator for components LV-IV
* Added recipe generator for components LuV and beyond
This one took a LONG time to make work...
* Added structure and recipe processing
* Added Recipes for Controller and Casings
* Cleanup
* Assline gives proper amount same as assembler
* tooltip fix
* add support for BW glass and warded glass
* Added proper NEI handler
* spotless
* Spotless apply for branch componentAssemblyLine for #102 (#103)
* Update build-and-test.yml
* fix missing hatch element (#92)
* fix missing hatch element
* spotlessApply (#93)
Co-authored-by: Yang Xizhi <60341015+GlodBlock@users.noreply.github.com>
Co-authored-by: GitHub GTNH Actions <>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix bunch of yottank issues (#94)
* yot tank/hatch fix
* dep
* Add better naq fuel recipes to combat fusion spam (#91)
* Add higher tier naq fuel recipes
* Fix Hypogen (hopefully)
* Spotless >:(
* Slightly change tooltip on the Precise Assembler (#95)
0.03 mm changed to 7nm
* fix 0 stack of nuclear rod (#98)
* naq fuel change (#96)
* naq fuel change
* Spotless apply for branch naqfuel for #96 (#97)
* Slightly change tooltip on the Precise Assembler (#95)
0.03 mm changed to 7nm
* spotlessApply
Co-authored-by: MadMan310 <66886359+MadMan310@users.noreply.github.com>
Co-authored-by: Yang Xizhi <60341015+GlodBlock@users.noreply.github.com>
Co-authored-by: GitHub GTNH Actions <>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: MadMan310 <66886359+MadMan310@users.noreply.github.com>
* Naq Fuel 1,2,3 Changes (#99)
* Naq Emulsion line changes
* Mk1 recipe change
* Fuel value changes
* Mk2 fuel recipe changes
* Radiation proof plate recipe changes
* Fix sludge dust centrifuge amounts
* Remove Hafnium recipe for now
* Spotless
* thorium balance change (#76)
* Add implementation for tank info getter (#101)
* Add void excess option to yotta fluid tank (#100)
* Add void excess option to yotta fluid tank
* derp
* Added own localization of void excess toggle messages
* Update build.gradle
* update bc
* spotlessApply
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Co-authored-by: Yang Xizhi <60341015+GlodBlock@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GDCloud <93287602+GDCloudstrike@users.noreply.github.com>
Co-authored-by: MadMan310 <66886359+MadMan310@users.noreply.github.com>
Co-authored-by: xSkewer <43712386+xSkewer@users.noreply.github.com>
Co-authored-by: Maxim <maxim235@gmx.de>
Co-authored-by: GitHub GTNH Actions <>
* cleanup handler
* Overhauled recipe generator, added circuit wraps, buffed output efficiency
* Structure re-tiering
* Gravi -> Nuclear for UHV components (due to overflowing)
* spotless
* added new casings
* removed some debug info and added dep
* Fixed magnetic samarium fluid and other autogenerations
* fixed recipe tiering
* Removed Nuclear Star, to be replaced by the GT5U version
* spotless
* fixed recipe handling
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Co-authored-by: Yang Xizhi <60341015+GlodBlock@users.noreply.github.com>
Co-authored-by: GDCloud <93287602+GDCloudstrike@users.noreply.github.com>
Co-authored-by: xSkewer <43712386+xSkewer@users.noreply.github.com>
Co-authored-by: Maxim <maxim235@gmx.de>
44 files changed, 1923 insertions, 22 deletions
diff --git a/build.gradle b/build.gradle index 9298d9e5a9..89350b8a35 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1667597057 +//version: 1669411416 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -338,10 +338,10 @@ dependencies { annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') annotationProcessor('com.google.guava:guava:24.1.1-jre') annotationProcessor('com.google.code.gson:gson:2.8.6') - annotationProcessor('org.spongepowered:mixin:0.8.5-GTNH:processor') + annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.1:processor') } if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - compile('com.gtnewhorizon:gtnhmixins:2.0.1') + compile('com.gtnewhorizon:gtnhmixins:2.1.1') } } diff --git a/dependencies.gradle b/dependencies.gradle index ffcd89b25d..57e7036f58 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,30 +2,34 @@ dependencies { - compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.141:dev') - compile('com.github.GTNewHorizons:StructureLib:1.1.7:dev') - compile('com.github.GTNewHorizons:bartworks:0.5.94:dev') - compile('com.github.GTNewHorizons:NotEnoughItems:2.2.28-GTNH:dev') - compile('com.github.GTNewHorizons:TecTech:5.0.37:dev') + compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.148:dev') + compile('com.github.GTNewHorizons:StructureLib:1.1.7:dev') + compile('com.github.GTNewHorizons:bartworks:0.5.94:dev') { + exclude group:"com.github.GTNewHorizons", module:"SpongePoweredMixin" + exclude group:"com.github.GTNewHorizons", module:"SpongeMixins" + } + compile('com.github.GTNewHorizons:NotEnoughItems:2.2.28-GTNH:dev') + compile('com.github.GTNewHorizons:TecTech:5.0.37:dev') - compile('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') - compile('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev') + compile('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') + compile('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev') - compileOnly('com.github.GTNewHorizons:EnderCore:0.2.6:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:EnderCore:0.2.6:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-97-GTNH:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.76:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:AppleCore:3.1.9:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:ForestryMC:4.4.12:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:Railcraft:9.13.9:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:EnderIO:2.3.1.43:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.76:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:AppleCore:3.1.9:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:ForestryMC:4.4.12:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:Railcraft:9.13.9:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:EnderIO:2.3.1.43:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:ExtraCells2:2.5.19:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.27:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.3.19-GTNH:dev') {transitive = false} + + compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.27:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.3.19-GTNH:dev') {transitive = false} compileOnly("com.github.GTNewHorizons:ProjectRed:4.7.7-GTNH:dev") {transitive = false} runtime('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.106:dev') runtime('com.github.GTNewHorizons:ForestryMC:4.4.12:dev') runtime('com.github.GTNewHorizons:GTplusplus:1.7.76:dev') - //compileOnly('com.github.GTNewHorizons:Avaritia:1.28) + //compileOnly('com.github.GTNewHorizons:Avaritia:1.28) } diff --git a/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java new file mode 100644 index 0000000000..1a9d1b245f --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java @@ -0,0 +1,744 @@ +package goodgenerator.blocks.tileEntity; + +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.enums.GT_HatchElement.*; +import static gregtech.api.enums.GT_Values.VN; +import static gregtech.api.enums.Textures.BlockIcons.*; + +import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import goodgenerator.loader.Loaders; +import goodgenerator.util.MyRecipeAdder; +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidStack; +import org.apache.commons.lang3.tuple.Pair; + +public class ComponentAssemblyLine extends GT_MetaTileEntity_EnhancedMultiBlockBase<ComponentAssemblyLine> + implements ISurvivalConstructable { + + private int casingTier; + private final double log4 = Math.log(4); + private long EU_per_tick = 0; + protected static final String STRUCTURE_PIECE_MAIN = "main"; + private static final IStructureDefinition<ComponentAssemblyLine> STRUCTURE_DEFINITION = + StructureDefinition.<ComponentAssemblyLine>builder() + .addShape(STRUCTURE_PIECE_MAIN, new String[][] { + { + " ", + " III ", + " HHI~IHH ", + "HH III HH", + "H H", + "H H", + "H JJJ H", + "H N N H", + "H N N H", + "HHHHHHHHH" + }, + { + " ", + " EHHHHHE ", + "E E", + "H H", + "A A", + "A A", + "A HHH A", + "A A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "AG C GA", + "AG GA", + "AG GA", + "AG HHH GA", + "AG GA", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "HG C GH", + "HG GH", + "HG GH", + "HG HHH GH", + "HG GH", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "AG C GA", + "AG GA", + "AG GA", + "AG HHH GA", + "AG GA", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "HG C GH", + "HG GH", + "HG GH", + "HG HHH GH", + "HG GH", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "AG C GA", + "AG GA", + "AG GA", + "AG HHH GA", + "AG GA", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "HG C GH", + "HG GH", + "HG GH", + "HG HHH GH", + "HG GH", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " BBB ", + " EL LE ", + "E GGDGG E", + "HGG D GGH", + "AG C GA", + "AG GA", + "AG GA", + "AG HHH GA", + "AG GA", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A N N A", + "MHHHHHHHM" + }, + { + " HBH ", + " EL LE ", + "E E", + "HC CH", + "AC CA", + "AC CA", + "A D D A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " ", + " EHHHHHE ", + "E E", + "H H", + "A A", + "A A", + "A A", + "A HHH A", + "A A", + "MHHHHHHHM" + }, + { + " ", + " ", + " HHHHHHH ", + "HH HH", + "H H", + "H H", + "H H", + "H H", + "H KKK H", + "HHHHHHHHH" + } + }) + .addElement( + 'A', + ofChain( + ofBlockUnlocalizedName("bartworks", "BW_GlasBlocks", 5), + ofBlockUnlocalizedName("bartworks", "BW_GlasBlocks", 13), + ofBlockUnlocalizedName("bartworks", "BW_GlasBlocks", 14), + ofBlockUnlocalizedName("bartworks", "BW_GlasBlocks", 15), + ofBlockUnlocalizedName("bartworks", "BW_GlasBlocks2", 0))) + .addElement('H', ofBlock(GregTech_API.sBlockCasings8, 7)) + .addElement('C', ofBlock(GregTech_API.sBlockCasings2, 5)) + .addElement('D', ofBlock(GregTech_API.sBlockCasings2, 9)) + .addElement('G', ofBlock(GregTech_API.sBlockCasings9, 0)) + .addElement('E', ofBlock(GregTech_API.sBlockCasings9, 1)) + .addElement('F', ofBlock(GregTech_API.sBlockCasings4, 1)) + .addElement( + 'B', + ofBlocksTiered( + (block, meta) -> block == Loaders.componentAssemblylineCasing ? meta : -1, + IntStream.range(0, 14) + .mapToObj(i -> Pair.of(Loaders.componentAssemblylineCasing, i)) + .collect(Collectors.toList()), + -1, + (t, meta) -> t.casingTier = meta, + t -> t.casingTier)) + .addElement( + 'J', + GT_StructureUtility.buildHatchAdder(ComponentAssemblyLine.class) + .atLeast(InputBus) + .dot(1) + .casingIndex(183) + .buildAndChain(GregTech_API.sBlockCasings8, 7)) + .addElement( + 'K', + GT_StructureUtility.buildHatchAdder(ComponentAssemblyLine.class) + .atLeast(OutputBus) + .dot(2) + .casingIndex(183) + .buildAndChain(GregTech_API.sBlockCasings8, 7)) + .addElement( + 'L', + GT_StructureUtility.buildHatchAdder(ComponentAssemblyLine.class) + .atLeast(Energy, ExoticEnergy) + .dot(3) + .casingIndex(183) + .buildAndChain(GregTech_API.sBlockCasings8, 7)) + .addElement( + 'I', + |
