From 9bd9cfb7004215dca2acc844965983a84a4232e5 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Sun, 22 Dec 2013 16:53:13 -0500 Subject: [PATCH] Fixed rendering, simplified netcode --- .../mod_pocketDim/ServerPacketHandler.java | 26 +++++++++++++++ .../mod_pocketDim/core/NewDimData.java | 2 +- .../mod_pocketDim/core/PocketManager.java | 2 +- .../tileentities/TileEntityDimDoor.java | 23 +++++++++++-- .../tileentities/TileEntityRift.java | 32 ++++++++++--------- 5 files changed, 66 insertions(+), 19 deletions(-) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/ServerPacketHandler.java b/src/main/java/StevenDimDoors/mod_pocketDim/ServerPacketHandler.java index 47357124..ed756a70 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/ServerPacketHandler.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/ServerPacketHandler.java @@ -56,6 +56,32 @@ public class ServerPacketHandler implements IPacketHandler } } + public static Packet250CustomPayload createLinkPacket(ClientLinkData data) + { + try + { + Packet250CustomPayload packet = new Packet250CustomPayload(); + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + DataOutputStream writer = new DataOutputStream(buffer); + writer.writeByte(PacketConstants.CREATE_LINK_PACKET_ID); + data.write(writer); + writer.close(); + packet.channel = PacketConstants.CHANNEL_NAME; + packet.data = buffer.toByteArray(); + packet.length = packet.data.length; + return packet; + } + catch (IOException e) + { + //This shouldn't happen... + e.printStackTrace(); + return null; + } + + + } + + private static void sendDimPacket(byte id, ClientDimData data) { try diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/core/NewDimData.java b/src/main/java/StevenDimDoors/mod_pocketDim/core/NewDimData.java index 2311584f..794f8144 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/core/NewDimData.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/core/NewDimData.java @@ -131,7 +131,7 @@ public abstract class NewDimData protected Point4D origin; protected int orientation; protected DungeonData dungeon; - protected IUpdateWatcher linkWatcher; + public IUpdateWatcher linkWatcher; protected NewDimData(int id, NewDimData parent, boolean isPocket, boolean isDungeon, IUpdateWatcher linkWatcher) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java b/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java index f24e4f34..ae29b94f 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java @@ -212,7 +212,7 @@ public class PocketManager * Set as true if we are a client that has connected to a dedicated server */ public static volatile boolean isConnected = false; - private static final UpdateWatcherProxy linkWatcher = new UpdateWatcherProxy(); + public static final UpdateWatcherProxy linkWatcher = new UpdateWatcherProxy(); private static final UpdateWatcherProxy dimWatcher = new UpdateWatcherProxy(); private static ArrayList rootDimensions = null; diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java index d2d89001..dcf8b0ad 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java @@ -1,9 +1,14 @@ package StevenDimDoors.mod_pocketDim.tileentities; +import StevenDimDoors.mod_pocketDim.ServerPacketHandler; +import StevenDimDoors.mod_pocketDim.core.PocketManager; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.packet.Packet; +import net.minecraft.network.packet.Packet130UpdateSign; +import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; -public class TileEntityDimDoor extends TileEntity +public class TileEntityDimDoor extends TileEntity { public boolean openOrClosed; public int orientation; @@ -18,7 +23,19 @@ public class TileEntityDimDoor extends TileEntity } @Override - public void updateEntity() { } + public void updateEntity() + { + + } + + public Packet getDescriptionPacket() + { + if(PocketManager.getLink(xCoord, yCoord, zCoord, worldObj)!=null) + { + return ServerPacketHandler.createLinkPacket(PocketManager.getLink(xCoord, yCoord, zCoord, worldObj).link()); + } + return null; + } @Override public void readFromNBT(NBTTagCompound nbt) @@ -54,4 +71,6 @@ public class TileEntityDimDoor extends TileEntity nbt.setBoolean("isDungeonChainLink", isDungeonChainLink); nbt.setBoolean("hasGennedPair", hasGennedPair); } + + } diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java index 5f795e61..26dc103d 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java @@ -16,6 +16,7 @@ import net.minecraft.network.packet.Packet132TileEntityData; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import StevenDimDoors.mod_pocketDim.ServerPacketHandler; import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.core.DimLink; import StevenDimDoors.mod_pocketDim.core.NewDimData; @@ -36,6 +37,7 @@ public class TileEntityRift extends TileEntity private int count=200; private int count2 = 0; public int age = 0; + private boolean hasUpdated = false; public HashMap renderingCenters = new HashMap(); @SuppressWarnings("deprecation") @@ -47,7 +49,7 @@ public class TileEntityRift extends TileEntity public void updateEntity() { //Invalidate this tile entity if it shouldn't exist - if (PocketManager.getLink(xCoord, yCoord, zCoord, worldObj.provider.dimensionId) == null) + if (!this.worldObj.isRemote && PocketManager.getLink(xCoord, yCoord, zCoord, worldObj.provider.dimensionId) == null) { this.invalidate(); if (worldObj.getBlockId(xCoord, yCoord, zCoord) == mod_pocketDim.blockRift.blockID) @@ -63,6 +65,10 @@ public class TileEntityRift extends TileEntity this.invalidate(); return; } + + + + //The code for the new rift rendering hooks in here, as well as in the ClientProxy to bind the TESR to the rift. //It is inactive for now. @@ -99,6 +105,8 @@ public class TileEntityRift extends TileEntity { return true; } + + public void clearBlocksOnRift() { @@ -345,20 +353,14 @@ public class TileEntityRift extends TileEntity nbt.setInteger("spawnedEndermenID", this.spawnedEndermenID); } - @Override - public Packet getDescriptionPacket() - { - Packet132TileEntityData packet = new Packet132TileEntityData(); - packet.actionType = 0; - packet.xPosition = xCoord; - packet.yPosition = yCoord; - packet.zPosition = zCoord; - - NBTTagCompound nbt = new NBTTagCompound(); - writeToNBT(nbt); - packet.data = nbt; - return packet; - } + public Packet getDescriptionPacket() + { + if(PocketManager.getLink(xCoord, yCoord, zCoord, worldObj)!=null) + { + return ServerPacketHandler.createLinkPacket(PocketManager.getLink(xCoord, yCoord, zCoord, worldObj).link()); + } + return null; + } @Override public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt)