aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/GoodGenerator/util
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-09-18 23:06:44 +0800
committerGlodBlock <1356392126@qq.com>2021-09-18 23:06:44 +0800
commita991b664f9e70711b5895879a721fb015a48d306 (patch)
tree7a72ce61465fb13abec5b72439dd5d6d78d7f97b /src/main/java/GoodGenerator/util
parentd87ff22b630cf99bb83b23e6a601447cbdc3f87d (diff)
downloadGT5-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.java14
-rw-r--r--src/main/java/GoodGenerator/util/StructureHelper.java51
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;
+ }
+ };
+ }
}