aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/render
diff options
context:
space:
mode:
authorRecursivePineapple <recursive_pineapple@proton.me>2024-08-08 09:16:57 -0400
committerGitHub <noreply@github.com>2024-08-08 20:16:57 +0700
commit89156d0d8485753e0cea91637fced1b66897a6df (patch)
treec5f8fb72aa0e30822cad8f015fd8a25021915466 /src/main/java/gregtech/common/tileentities/render
parent3c228c3bab6b2fd731063e59b029f98882fc25e6 (diff)
downloadGT5-Unofficial-89156d0d8485753e0cea91637fced1b66897a6df.tar.gz
GT5-Unofficial-89156d0d8485753e0cea91637fced1b66897a6df.tar.bz2
GT5-Unofficial-89156d0d8485753e0cea91637fced1b66897a6df.zip
Added the miniature wormhole generator (#2800)
* Added the miniature wormhole generator * Updated structure & tooltip and added hatch hask * Fixed controller promotion not working * Initial work wormhole render + spotless + git strangeness * Fix wildcard imports * Removed redundant code + added more reasonable defaults * fix * sa * Remove debug print statements --------- Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: CookieBrigade <138534411+cookiebrigade@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/render')
-rw-r--r--src/main/java/gregtech/common/tileentities/render/TileWormhole.java98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/tileentities/render/TileWormhole.java b/src/main/java/gregtech/common/tileentities/render/TileWormhole.java
new file mode 100644
index 0000000000..f219cfe989
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/render/TileWormhole.java
@@ -0,0 +1,98 @@
+package gregtech.common.tileentities.render;
+
+import java.util.List;
+import java.util.Optional;
+
+import net.minecraft.block.Block;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import net.minecraft.world.WorldProvider;
+
+import cpw.mods.fml.relauncher.Side;
+import micdoodle8.mods.galacticraft.core.tile.TileEntityAdvanced;
+import micdoodle8.mods.galacticraft.core.util.Annotations;
+import pers.gwyog.gtneioreplugin.plugin.block.ModBlocks;
+import pers.gwyog.gtneioreplugin.util.DimensionHelper;
+
+public class TileWormhole extends TileEntityAdvanced {
+
+ @Annotations.NetworkedField(targetSide = Side.CLIENT)
+ public boolean shouldRender = false;
+ @Annotations.NetworkedField(targetSide = Side.CLIENT)
+ public int dimID = 0;
+
+ @Annotations.NetworkedField(targetSide = Side.CLIENT)
+ public double targetRadius = 0;
+
+ @Override
+ public void addExtraNetworkedData(List<Object> networkedList) {
+ super.addExtraNetworkedData(networkedList);
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound compound) {
+ super.writeToNBT(compound);
+ compound.setInteger("dimID", dimID);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound compound) {
+ super.readFromNBT(compound);
+ dimID = compound.getInteger("dimID");
+ }
+
+ public int getDimFromWorld(World target) {
+ if (target == null) return 0;
+ String dimName = Optional.ofNullable(target.provider)
+ .map(WorldProvider::getDimensionName)
+ .orElse(null);
+ if (dimName == null) return 0;
+ for (int i = 0; i < DimensionHelper.DimName.length; i++) {
+ if (dimName.equals(DimensionHelper.DimName[i])) return i;
+ }
+ return 0;
+ }
+
+ public void setDimFromWorld(World target) {
+ int newName = getDimFromWorld(target);
+ if (target != null & dimID != newName) {
+ dimID = newName;
+ }
+ }
+
+ public void setRadius(double target) {
+ targetRadius = target;
+ }
+
+ public Block getBlock() {
+ return ModBlocks.getBlock(DimensionHelper.DimNameDisplayed[dimID]);
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+ if (worldObj != null && worldObj.isRemote) {
+ worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
+ }
+ }
+
+ @Override
+ public double getMaxRenderDistanceSquared() {
+ return 65536;
+ }
+
+ @Override
+ public double getPacketRange() {
+ return 128;
+ }
+
+ @Override
+ public int getPacketCooldown() {
+ return 20;
+ }
+
+ @Override
+ public boolean isNetworkedTile() {
+ return true;
+ }
+}