package micdoodle8.mods.galacticraft.core.entities;
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
import micdoodle8.mods.galacticraft.core.network.IPacketReceiver;
import micdoodle8.mods.galacticraft.core.network.PacketDynamic;
import micdoodle8.mods.galacticraft.core.util.GCCoreUtil;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
public abstract class NetworkedEntity extends Entity implements IPacketReceiver
{
public NetworkedEntity(World par1World)
{
super(par1World);
if (par1World != null && par1World.isRemote)
{
GalacticraftCore.packetPipeline.sendToServer(new PacketDynamic(this));
}
}
@Override
public void onUpdate()
{
super.onUpdate();
PacketDynamic packet = new PacketDynamic(this);
if (this.networkedDataChanged())
{
if (!this.worldObj.isRemote)
{
GalacticraftCore.packetPipeline.sendToAllAround(packet, new TargetPoint(GCCoreUtil.getDimensionID(this.worldObj), this.posX, this.posY, this.posZ, this.getPacketRange()));
}
else
{
GalacticraftCore.packetPipeline.sendToServer(packet);
}
}
}
public abstract boolean networkedDataChanged();
public abstract double getPacketRange();
}