TechReborn/src/main/java/techreborn/tiles/TileMachineBase.java

85 lines
2.3 KiB
Java
Raw Normal View History

package techreborn.tiles;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import techreborn.packets.PacketHandler;
2015-05-27 13:19:11 +02:00
import techreborn.packets.PacketSync;
import techreborn.packets.SimplePacket;
import java.util.List;
public class TileMachineBase extends TileEntity {
public boolean needsSync = false;
public int ticksSinceLastSync = 0;
2015-05-12 20:26:23 +02:00
@Override
public void updateEntity() {
super.updateEntity();
//Force a sync evey 10 seconds
if(needsSync && !worldObj.isRemote){
syncWithAll();
}
ticksSinceLastSync ++;
2015-05-12 20:26:23 +02:00
}
@SideOnly(Side.CLIENT)
public void addWailaInfo(List<String> info) {
}
public void syncWithAll() {
if (!worldObj.isRemote) {
2015-05-27 13:19:11 +02:00
//PacketHandler.sendPacketToAllPlayers(getSyncPacket());
PacketHandler.sendPacketToAllPlayers(getDescriptionPacket2(),
2015-05-12 20:26:23 +02:00
worldObj);
} else {
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
needsSync = false;
ticksSinceLastSync = 0;
2015-05-12 20:26:23 +02:00
}
2015-05-27 13:19:11 +02:00
public Packet getDescriptionPacket2() {
NBTTagCompound nbtTag = new NBTTagCompound();
writeSyncToNBT(nbtTag);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord,
this.zCoord, 1, nbtTag);
}
public SimplePacket getSyncPacket() {
NBTTagCompound nbtTag = new NBTTagCompound();
writeSyncToNBT(nbtTag);
return new PacketSync(nbtTag, xCoord, yCoord, zCoord);
}
2015-05-12 20:26:23 +02:00
public Packet getDescriptionPacket() {
NBTTagCompound nbtTag = new NBTTagCompound();
writeToNBT(nbtTag);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord,
this.zCoord, 1, nbtTag);
}
@Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) {
2015-05-12 20:26:23 +02:00
worldObj.markBlockRangeForRenderUpdate(xCoord, yCoord, zCoord, xCoord,
yCoord, zCoord);
readFromNBT(packet.func_148857_g());
}
2015-05-27 13:19:11 +02:00
public void readSyncFromNBT(NBTTagCompound tagCompound) {
}
public void writeSyncToNBT(NBTTagCompound tagCompound) {
}
}