diff options
author | RecursivePineapple <recursive_pineapple@proton.me> | 2024-08-08 09:16:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-08 20:16:57 +0700 |
commit | 89156d0d8485753e0cea91637fced1b66897a6df (patch) | |
tree | c5f8fb72aa0e30822cad8f015fd8a25021915466 /src/main/java/gregtech/common/tileentities/render | |
parent | 3c228c3bab6b2fd731063e59b029f98882fc25e6 (diff) | |
download | GT5-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.java | 98 |
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; + } +} |