diff options
| author | GlodBlock <1356392126@qq.com> | 2021-09-18 23:06:44 +0800 |
|---|---|---|
| committer | GlodBlock <1356392126@qq.com> | 2021-09-18 23:06:44 +0800 |
| commit | a991b664f9e70711b5895879a721fb015a48d306 (patch) | |
| tree | 7a72ce61465fb13abec5b72439dd5d6d78d7f97b /src/main/java/GoodGenerator/util | |
| parent | d87ff22b630cf99bb83b23e6a601447cbdc3f87d (diff) | |
| download | GT5-Unofficial-a991b664f9e70711b5895879a721fb015a48d306.tar.gz GT5-Unofficial-a991b664f9e70711b5895879a721fb015a48d306.tar.bz2 GT5-Unofficial-a991b664f9e70711b5895879a721fb015a48d306.zip | |
add Yotta Fluid Tank
Diffstat (limited to 'src/main/java/GoodGenerator/util')
| -rw-r--r-- | src/main/java/GoodGenerator/util/ItemRefer.java | 14 | ||||
| -rw-r--r-- | src/main/java/GoodGenerator/util/StructureHelper.java | 51 |
2 files changed, 65 insertions, 0 deletions
diff --git a/src/main/java/GoodGenerator/util/ItemRefer.java b/src/main/java/GoodGenerator/util/ItemRefer.java index f7a2dde83a..b28416e7d1 100644 --- a/src/main/java/GoodGenerator/util/ItemRefer.java +++ b/src/main/java/GoodGenerator/util/ItemRefer.java @@ -66,6 +66,20 @@ public final class ItemRefer { public static ItemRefer Essentia_Cell_T2 = getItemStack(essentiaCell, 1); public static ItemRefer Essentia_Cell_T3 = getItemStack(essentiaCell, 2); public static ItemRefer Essentia_Hatch = getItemStack(essentiaHatch); + public static ItemRefer YOTTank_Casing = getItemStack(yottaFluidTankCasing); + public static ItemRefer YOTTank_Cell_T1 = getItemStack(yottaFluidTankCell, 0); + public static ItemRefer YOTTank_Cell_T2 = getItemStack(yottaFluidTankCell, 1); + public static ItemRefer YOTTank_Cell_T3 = getItemStack(yottaFluidTankCell, 2); + public static ItemRefer YOTTank_Cell_T4 = getItemStack(yottaFluidTankCell, 3); + public static ItemRefer YOTTank_Cell_T5 = getItemStack(yottaFluidTankCell, 4); + public static ItemRefer YOTTank_Cell_T6 = getItemStack(yottaFluidTankCell, 5); + public static ItemRefer YOTTank_Cell_T7 = getItemStack(yottaFluidTankCell, 6); + public static ItemRefer YOTTank_Cell_T8 = getItemStack(yottaFluidTankCell, 7); + public static ItemRefer YOTTank_Cell_T9 = getItemStack(yottaFluidTankCell, 8); + public static ItemRefer YOTTank_Cell_T10 = getItemStack(yottaFluidTankCell, 9); + public static ItemRefer YOTTank = getItemStack(YFT); + public static ItemRefer YOTTank_Output_Hatch = getItemStack(YFTOutput); + public static ItemRefer Large_Naquadah_Reactor = getItemStack(MAR.copy()); public static ItemRefer Naquadah_Fuel_Refinery = getItemStack(FRF.copy()); diff --git a/src/main/java/GoodGenerator/util/StructureHelper.java b/src/main/java/GoodGenerator/util/StructureHelper.java index ea3b10eeae..d499921319 100644 --- a/src/main/java/GoodGenerator/util/StructureHelper.java +++ b/src/main/java/GoodGenerator/util/StructureHelper.java @@ -1,12 +1,14 @@ package GoodGenerator.util; import com.github.technus.tectech.TecTech; +import com.gtnewhorizon.structurelib.StructureLibAPI; import com.gtnewhorizon.structurelib.structure.IStructureElement; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame; import gregtech.api.util.GT_OreDictUnificator; +import net.minecraft.block.Block; import net.minecraft.init.Items; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -15,6 +17,9 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import java.util.Arrays; +import java.util.function.BiConsumer; +import java.util.function.BiPredicate; +import java.util.function.Function; public class StructureHelper { @@ -58,4 +63,50 @@ public class StructureHelper { }; } + //Only support to use meta to tier + public static <T> IStructureElement<T> addTieredBlock(Block aBlock, BiConsumer<T, Integer> aSetTheFuckingMeta, Function<T, Integer> aGetTheFuckingMeta, int maxMeta) { + return addTieredBlock(aBlock, (t, i) -> { + aSetTheFuckingMeta.accept(t, i); + return true; + }, aGetTheFuckingMeta, maxMeta + ); + } + + public static <T> IStructureElement<T> addTieredBlock(Block aBlock, BiPredicate<T, Integer> aSetTheFuckingMeta, Function<T, Integer> aGetTheFuckingMeta, int maxMeta) { + + return new IStructureElement<T>() { + @Override + public boolean check(T t, World world, int x, int y, int z) { + Block tBlock = world.getBlock(x, y, z); + if (aBlock == tBlock) { + Integer currentMeta = aGetTheFuckingMeta.apply(t); + int newMeta = tBlock.getDamageValue(world, x, y, z) + 1; + if (currentMeta == 0) { + return aSetTheFuckingMeta.test(t, newMeta); + } else { + return currentMeta == newMeta; + } + } + return false; + } + + @Override + public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { + StructureLibAPI.hintParticle(world, x, y, z, aBlock, getMeta(trigger)); + return true; + } + + @Override + public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { + return world.setBlock(x, y, z, aBlock, getMeta(trigger), 3); + } + + private int getMeta(ItemStack trigger) { + int meta = trigger.stackSize; + if (meta <= 0) meta = 0; + if (meta > maxMeta) meta = maxMeta; + return meta; + } + }; + } } |
