aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-08-31 01:48:23 +0800
committerGitHub <noreply@github.com>2024-08-30 17:48:23 +0000
commit9fee35c065e197199f57ef1df31ac303e94d1d50 (patch)
tree66437da0c2422d10ddfc9211040ebbd180af5f54 /src/main/java/gregtech/api/util
parent55ebcb3bdf0f54b76642c03b3a58112081138c10 (diff)
downloadGT5-Unofficial-9fee35c065e197199f57ef1df31ac303e94d1d50.tar.gz
GT5-Unofficial-9fee35c065e197199f57ef1df31ac303e94d1d50.tar.bz2
GT5-Unofficial-9fee35c065e197199f57ef1df31ac303e94d1d50.zip
Add duration since last shutdown (#2977)
* machine message * fix & prass channel * machine message * fix & prass channel * fix machines that dont use regular onPostTick * follow error fixes and fix hatch check * oops * sa --------- Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: boubou19 <miisterunknown@gmail.com>
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r--src/main/java/gregtech/api/util/IMachineMessage.java50
-rw-r--r--src/main/java/gregtech/api/util/shutdown/ReasonOutOfFluid.java11
-rw-r--r--src/main/java/gregtech/api/util/shutdown/ReasonOutOfItem.java11
-rw-r--r--src/main/java/gregtech/api/util/shutdown/ReasonOutOfStuff.java14
-rw-r--r--src/main/java/gregtech/api/util/shutdown/ShutDownReason.java34
-rw-r--r--src/main/java/gregtech/api/util/shutdown/SimpleShutDownReason.java14
6 files changed, 102 insertions, 32 deletions
diff --git a/src/main/java/gregtech/api/util/IMachineMessage.java b/src/main/java/gregtech/api/util/IMachineMessage.java
new file mode 100644
index 0000000000..8b5c3e090f
--- /dev/null
+++ b/src/main/java/gregtech/api/util/IMachineMessage.java
@@ -0,0 +1,50 @@
+package gregtech.api.util;
+
+import javax.annotation.Nonnull;
+
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.network.PacketBuffer;
+
+import org.jetbrains.annotations.NotNull;
+
+public interface IMachineMessage<T extends IMachineMessage<T>> {
+
+ /**
+ * @return Unique registry ID
+ */
+ @Nonnull
+ String getID();
+
+ /**
+ * @return Actual text to show on client GUI
+ */
+ @Nonnull
+ String getDisplayString();
+
+ /**
+ * Save info to NBT.
+ */
+ @NotNull
+ NBTTagCompound writeToNBT(@Nonnull NBTTagCompound tag);
+
+ /**
+ * Read info from NBT.
+ */
+ void readFromNBT(@Nonnull NBTTagCompound tag);
+
+ /**
+ * Create new instance to receive packet.
+ */
+ @Nonnull
+ T newInstance();
+
+ /**
+ * Encode value to sync.
+ */
+ void encode(@Nonnull PacketBuffer buffer);
+
+ /**
+ * Decode synced value.
+ */
+ void decode(PacketBuffer buffer);
+}
diff --git a/src/main/java/gregtech/api/util/shutdown/ReasonOutOfFluid.java b/src/main/java/gregtech/api/util/shutdown/ReasonOutOfFluid.java
index 29b99a644a..0194afbc04 100644
--- a/src/main/java/gregtech/api/util/shutdown/ReasonOutOfFluid.java
+++ b/src/main/java/gregtech/api/util/shutdown/ReasonOutOfFluid.java
@@ -5,6 +5,7 @@ import static gregtech.api.util.GT_Utility.formatNumbers;
import java.util.Objects;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.Fluid;
@@ -37,6 +38,16 @@ public class ReasonOutOfFluid implements ShutDownReason {
formatNumbers(requiredFluid.amount)));
}
+ @Override
+ public @NotNull NBTTagCompound writeToNBT(@NotNull NBTTagCompound tag) {
+ return requiredFluid.writeToNBT(tag);
+ }
+
+ @Override
+ public void readFromNBT(@NotNull NBTTagCompound tag) {
+ requiredFluid = FluidStack.loadFluidStackFromNBT(tag);
+ }
+
@NotNull
@Override
public ShutDownReason newInstance() {
diff --git a/src/main/java/gregtech/api/util/shutdown/ReasonOutOfItem.java b/src/main/java/gregtech/api/util/shutdown/ReasonOutOfItem.java
index f4a46f2d30..8f51bd83b2 100644
--- a/src/main/java/gregtech/api/util/shutdown/ReasonOutOfItem.java
+++ b/src/main/java/gregtech/api/util/shutdown/ReasonOutOfItem.java
@@ -6,6 +6,7 @@ import java.util.Objects;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.StatCollector;
@@ -35,6 +36,16 @@ public class ReasonOutOfItem implements ShutDownReason {
formatNumbers(requiredItem.stackSize)));
}
+ @Override
+ public @NotNull NBTTagCompound writeToNBT(@NotNull NBTTagCompound tag) {
+ return requiredItem.writeToNBT(tag);
+ }
+
+ @Override
+ public void readFromNBT(@NotNull NBTTagCompound tag) {
+ requiredItem.readFromNBT(tag);
+ }
+
@NotNull
@Override
public ShutDownReason newInstance() {
diff --git a/src/main/java/gregtech/api/util/shutdown/ReasonOutOfStuff.java b/src/main/java/gregtech/api/util/shutdown/ReasonOutOfStuff.java
index 0c3f7e0b64..72a75b062f 100644
--- a/src/main/java/gregtech/api/util/shutdown/ReasonOutOfStuff.java
+++ b/src/main/java/gregtech/api/util/shutdown/ReasonOutOfStuff.java
@@ -4,6 +4,7 @@ import static gregtech.api.util.GT_Utility.formatNumbers;
import java.util.Objects;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.StatCollector;
@@ -32,6 +33,19 @@ public class ReasonOutOfStuff implements ShutDownReason {
StatCollector.translateToLocalFormatted("GT5U.gui.text.out_of_stuff", required, formatNumbers(amount)));
}
+ @Override
+ public @NotNull NBTTagCompound writeToNBT(@NotNull NBTTagCompound tag) {
+ tag.setString("required", required);
+ tag.setInteger("amount", amount);
+ return tag;
+ }
+
+ @Override
+ public void readFromNBT(@NotNull NBTTagCompound tag) {
+ required = tag.getString("required");
+ tag.setInteger("amount", amount);
+ }
+
@NotNull
@Override
public ShutDownReason newInstance() {
diff --git a/src/main/java/gregtech/api/util/shutdown/ShutDownReason.java b/src/main/java/gregtech/api/util/shutdown/ShutDownReason.java
index 0815936a55..47889583aa 100644
--- a/src/main/java/gregtech/api/util/shutdown/ShutDownReason.java
+++ b/src/main/java/gregtech/api/util/shutdown/ShutDownReason.java
@@ -1,38 +1,8 @@
package gregtech.api.util.shutdown;
-import javax.annotation.Nonnull;
+import gregtech.api.util.IMachineMessage;
-import net.minecraft.network.PacketBuffer;
-
-public interface ShutDownReason {
-
- /**
- * @return Unique registry ID
- */
- @Nonnull
- String getID();
-
- /**
- * @return Actual text to show on client GUI
- */
- @Nonnull
- String getDisplayString();
-
- /**
- * Create new instance to receive packet.
- */
- @Nonnull
- ShutDownReason newInstance();
-
- /**
- * Encode value to sync.
- */
- void encode(@Nonnull PacketBuffer buffer);
-
- /**
- * Decode synced value.
- */
- void decode(PacketBuffer buffer);
+public interface ShutDownReason extends IMachineMessage<ShutDownReason> {
/**
* @return Whether the reason is critical.
diff --git a/src/main/java/gregtech/api/util/shutdown/SimpleShutDownReason.java b/src/main/java/gregtech/api/util/shutdown/SimpleShutDownReason.java
index 92763fa431..772fc203ea 100644
--- a/src/main/java/gregtech/api/util/shutdown/SimpleShutDownReason.java
+++ b/src/main/java/gregtech/api/util/shutdown/SimpleShutDownReason.java
@@ -4,6 +4,7 @@ import java.util.Objects;
import javax.annotation.Nonnull;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.StatCollector;
@@ -36,6 +37,19 @@ public class SimpleShutDownReason implements ShutDownReason {
return Objects.requireNonNull(StatCollector.translateToLocal("GT5U.gui.text." + key));
}
+ @Override
+ public @NotNull NBTTagCompound writeToNBT(@NotNull NBTTagCompound tag) {
+ tag.setString("key", key);
+ tag.setBoolean("wasCritical", wasCritical);
+ return tag;
+ }
+
+ @Override
+ public void readFromNBT(@NotNull NBTTagCompound tag) {
+ key = tag.getString("key");
+ wasCritical = tag.getBoolean("wasCritical");
+ }
+
@NotNull
@Override
public ShutDownReason newInstance() {