aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/tileentity/TeaStorageTile.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kubatech/tileentity/TeaStorageTile.java')
-rw-r--r--src/main/java/kubatech/tileentity/TeaStorageTile.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/main/java/kubatech/tileentity/TeaStorageTile.java b/src/main/java/kubatech/tileentity/TeaStorageTile.java
new file mode 100644
index 0000000000..46278e9853
--- /dev/null
+++ b/src/main/java/kubatech/tileentity/TeaStorageTile.java
@@ -0,0 +1,83 @@
+/*
+ * spotless:off
+ * KubaTech - Gregtech Addon
+ * Copyright (C) 2022 - 2024 kuba6000
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <https://www.gnu.org/licenses/>.
+ * spotless:on
+ */
+
+package kubatech.tileentity;
+
+import java.math.BigInteger;
+import java.util.UUID;
+
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+
+import kubatech.api.tea.TeaNetwork;
+
+public class TeaStorageTile extends TileEntity {
+
+ public TeaStorageTile() {
+ super();
+ }
+
+ private UUID tileOwner = null;
+ private TeaNetwork teaNetwork = null;
+
+ public void setTeaOwner(UUID teaOwner) {
+ if (tileOwner == null) {
+ tileOwner = teaOwner;
+ teaNetwork = TeaNetwork.getNetwork(tileOwner);
+ markDirty();
+ teaNetwork.registerTeaStorageExtender(this);
+ }
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound NBTData) {
+ super.readFromNBT(NBTData);
+ try {
+ tileOwner = UUID.fromString(NBTData.getString("tileOwner"));
+ teaNetwork = TeaNetwork.getNetwork(tileOwner);
+ teaNetwork.registerTeaStorageExtender(this);
+ } catch (Exception ignored) {}
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound NBTData) {
+ super.writeToNBT(NBTData);
+ NBTData.setString("tileOwner", tileOwner.toString());
+ }
+
+ @Override
+ public boolean canUpdate() {
+ return false;
+ }
+
+ public BigInteger teaExtendAmount() {
+ return BigInteger.valueOf(Long.MAX_VALUE);
+ }
+
+ @Override
+ public void onChunkUnload() {
+ if (teaNetwork != null) teaNetwork.unregisterTeaStorageExtender(this);
+ }
+
+ @Override
+ public void invalidate() {
+ if (teaNetwork != null) teaNetwork.unregisterTeaStorageExtender(this);
+ }
+}