diff options
Diffstat (limited to 'src/main/java/gregtech/api/util')
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() { |