aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>2022-09-11 19:03:03 +0100
committerGTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>2022-09-11 19:03:03 +0100
commit70f525dfa357d69b807480f8a6607fb90dc9555d (patch)
tree5cca1b8e058209397119a8d76d5b95280a52fefc /src/main/java
parent1919a4b90b753d0c1cdc4b8bd35560849a907460 (diff)
downloadGT5-Unofficial-70f525dfa357d69b807480f8a6607fb90dc9555d.tar.gz
GT5-Unofficial-70f525dfa357d69b807480f8a6607fb90dc9555d.tar.bz2
GT5-Unofficial-70f525dfa357d69b807480f8a6607fb90dc9555d.zip
Quantum chest output system
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java89
1 files changed, 84 insertions, 5 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java
index 8780fbecf9..c3872161c7 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java
@@ -17,6 +17,7 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -24,6 +25,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;
import org.apache.commons.lang3.tuple.Pair;
+import org.lwjgl.Sys;
import java.util.ArrayList;
import java.util.Arrays;
@@ -83,7 +85,7 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
{" ", " ", " ", " C C ", " CCCCC ", " D ", " A ", " ", " ", " ", " ", " ", " ", " ", " C C ", " CC CC ", " CDA ADC ", " CC CC ", " C C ", " ", " ", " ", " ", " ", " ", " ", " A ", " D ", " CCCCC ", " C C ", " ", " ", " "},
{" ", " ", " ", " ", " C C ", " C C ", " D ", " SEEAEES ", " ", " ", " ", " ", " ", " S S ", " E E ", " CC E E CC ", " DA AD ", " CC E E CC ", " E E ", " S S ", " ", " ", " ", " ", " ", " SEEAEES ", " D ", " C C ", " C C ", " ", " ", " ", " "},
{" ", " ", " ", " ", " ", " C C ", " CCCCC ", " D ", " A ", " A ", " ", " ", " ", " ", " C C ", " CC CC ", " CDAA AADC ", " CC CC ", " C C ", " ", " ", " ", " ", " A ", " A ", " D ", " CCCCC ", " C C ", " ", " ", " ", " ", " "},
- {" ", " ", " ", " ", " ", " ", " C C ", " C C ", " D ", " D ", " ", " ", " ", " ", " ", " CC CC ", " DD DD ", " CC CC ", " ", " ", " ", " D ", " D ", " D ", " D ", " C C ", " C C ", " ", " ", " ", " ", " ", " "},
+ {" ", " ", " ", " ", " ", " ", " C C ", " C C ", " D ", " D ", " ", " ", " ", " ", " ", " CC CC ", " DD DD ", " CC CC ", " ", " ", " ", " ", " ", " D ", " D ", " C C ", " C C ", " ", " ", " ", " ", " ", " "},
{" ", " ", " ", " ", " ", " ", " ", " C C ", " C C ", " C C ", " D ", " D ", " DDDDDDD ", " DD DD ", " D EEE D ", " CCC D EAAAE D CCC ", " DDD EAAAE DDD ", " CCC D EAAAE D CCC ", " D EEE D ", " DD DD ", " DDDDDDD ", " D ", " D ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " "},
{" ", " ", " ", " ", " ", " ", " ", " ", " ", " C C ", " C C ", " C C ", " C C ", " DDDDD ", " DDCDCDD ", " CCCCDCCDCCDCCCC ", " DDDDDDD ", " CCCCDCCDCCDCCCC ", " DDCDCDD ", " DDDDD ", " C C ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " "},
{" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " C C ", " C C ", " C C ", " CCCCCCCCC ", " C C ", " CCCCCCCCC ", " C C ", " C C ", " C C ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}
@@ -235,7 +237,7 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
.addInfo("All EU generated is directly deposited into your wireless EU network.")
.addSeparator()
.beginStructureBlock(33, 33, 33, false)
- .toolTipFinisher(CommonValues.TEC_MARK_EM + " & " + AuthorColen.substring(10));
+ .toolTipFinisher(CommonValues.TEC_MARK_EM + " & " + AuthorColen.substring(8));
return tt;
}
@@ -286,26 +288,103 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl
}
}
+ private final static ItemStack[] item_list = {Materials.Iron.getDust(1), Materials.Copper.getDust(1)};
+
@Override
public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
super.onPreTick(aBaseMetaTileEntity, aTick);
if (aTick % ticks_between_hatch_drain == 0) {
drainFluidFromHatchesAndStoreInternally();
+
+ int i = 0;
+ for(GT_MetaTileEntity_Hatch_OutputBus output_bus : mOutputBusses) {
+ if (!outputItemsToQuantumChest(output_bus, item_list[i], 1_000_000)) {
+ continue;
+ }
+ if (i++ >= item_list.length) {
+ break;
+ }
+ }
}
}
+ private void addItemsToQuantumChest(IGregTechTileEntity quantum_chest, long amount) {
+ long stored_quantity = quantum_chest.getProgress();
+ int max_inventory_size = quantum_chest.getMaxItemCount();
+
+ if ((stored_quantity + amount) > max_inventory_size) {
+ quantum_chest.setItemCount(max_inventory_size);
+ } else {
+ quantum_chest.setItemCount((int) (amount + stored_quantity));
+ }
+ }
+
+ private boolean outputItemsToQuantumChest(GT_MetaTileEntity_Hatch_OutputBus output_bus, ItemStack item, int amount) {
+
+ IGregTechTileEntity tile_entity = output_bus.getBaseMetaTileEntity();
+
+ int x = tile_entity.getXCoord();
+ int y = tile_entity.getYCoord();
+ int z = tile_entity.getZCoord();
+
+ // Get direction that the output bus is currently facing.
+ switch (tile_entity.getFrontFacing()) {
+ case 0:
+ y -= 1;
+ case 1:
+ y += 1;
+ case 2:
+ z -= 1;
+ case 3:
+ z += 1;
+ case 4:
+ x -= 1;
+ case 5:
+ x += 1;
+ }
+
+ try {
+ // Get block in front of output bus.
+ IGregTechTileEntity quantum_chest = (IGregTechTileEntity) getBaseMetaTileEntity().getTileEntity(x, y, z);
+
+ // Slot 0 = Top input slot of quantum chest.
+ // Slot 1 = Bottom output slot of quantum chest.
+ // Slot 2 = Stored item slot.
+ ItemStack quantum_chest_stored_item = quantum_chest.getStackInSlot(2);
+
+ // Adjust sizes so no extra items from quantum chest nonsense.
+ amount = amount - 64;
+ item.stackSize = 64;
+
+ // Check if chest contains item already. If not, add it.
+ if (quantum_chest_stored_item == null) {
+ quantum_chest.setInventorySlotContents(0, item);
+ addItemsToQuantumChest(quantum_chest, amount);
+ return true;
+ } else if (quantum_chest_stored_item.isItemEqual(item)) {
+ addItemsToQuantumChest(quantum_chest, amount);
+ return true;
+ }
+ } catch (Exception e) {
+ System.out.println("TEST FAILURE 13214");
+ e.printStackTrace();
+ }
+
+ return false;
+ }
+
@Override
public String[] getInfoData() {
ArrayList<String> str = new ArrayList<>(Arrays.asList(super.getInfoData()));
- str.add(GOLD + "--------------- Control Block Statistics ---------------");
+ str.add(GOLD + "---------------- Control Block Statistics ----------------");
str.add("Spacetime Compression Field Grade: " + BLUE + SpacetimeCompressionFieldMetadata);
str.add("Time Dilation Field Grade: " + BLUE + TimeAccelerationFieldMetadata);
str.add("Stabilisation Field Grade: " + BLUE + TimeAccelerationFieldMetadata);
- str.add(GOLD + "---------------- Internal Fluids Stored ---------------");
+ str.add(GOLD + "----------------- Internal Fluids Stored ----------------");
valid_fluid_map.forEach((key, value) -> str.add(BLUE + key.getLocalizedName() + RESET +
" : " + RED + GT_Utility.formatNumbers(value)));
- str.add(GOLD + "-------------------------------------------------------");
+ str.add(GOLD + "-----------------------------------------------------");
return str.toArray(new String[0]);
}