package micdoodle8.mods.galacticraft.core.entities.player;
import com.mojang.authlib.GameProfile;
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
import micdoodle8.mods.galacticraft.core.tile.TileEntityTelemetry;
import micdoodle8.mods.galacticraft.core.util.WorldUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.management.ItemInWorldManager;
import net.minecraft.util.DamageSource;
import net.minecraft.world.WorldServer;
/**
* Do not reference this or test 'intance of' this in your code:
* if PlayerAPI is installed, GCEntityPlayerMP will not be used.
*/
public class GCEntityPlayerMP extends EntityPlayerMP
{
public GCEntityPlayerMP(MinecraftServer server, WorldServer world, GameProfile profile, ItemInWorldManager itemInWorldManager)
{
super(server, WorldUtil.getStartWorld(world), profile, itemInWorldManager);
if (this.worldObj != world)
{
GCPlayerStats.get(this).setStartDimension(WorldUtil.getDimensionName(this.worldObj.provider));
}
}
//Server-only method
@Override
public void clonePlayer(EntityPlayer oldPlayer, boolean keepInv)
{
super.clonePlayer(oldPlayer, keepInv);
GalacticraftCore.proxy.player.clonePlayer(this, oldPlayer, keepInv);
TileEntityTelemetry.updateLinkedPlayer((EntityPlayerMP) oldPlayer, this);
}
@Override
public void updateRidden()
{
GalacticraftCore.proxy.player.updateRiddenPre(this);
super.updateRidden();
GalacticraftCore.proxy.player.updateRiddenPost(this);
}
@Override
public void mountEntity(Entity par1Entity)
{
if (!GalacticraftCore.proxy.player.mountEntity(this, par1Entity))
{
super.mountEntity(par1Entity);
}
}
@Override
public void moveEntity(double par1, double par3, double par5)
{
super.moveEntity(par1, par3, par5);
GalacticraftCore.proxy.player.moveEntity(this, par1, par3, par5);
}
@Override
public void wakeUpPlayer(boolean par1, boolean par2, boolean par3)
{
if (!GalacticraftCore.proxy.player.wakeUpPlayer(this, par1, par2, par3))
{
super.wakeUpPlayer(par1, par2, par3);
}
}
@Override
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2)
{
par2 = GalacticraftCore.proxy.player.attackEntityFrom(this, par1DamageSource, par2);
if (par2 == -1)
{
return false;
}
return super.attackEntityFrom(par1DamageSource, par2);
}
@Override
public void knockBack(Entity p_70653_1_, float p_70653_2_, double impulseX, double impulseZ)
{
GalacticraftCore.proxy.player.knockBack(this, p_70653_1_, p_70653_2_, impulseX, impulseZ);
}
/*@Override
public void setInPortal()
{
if (!(this.worldObj.provider instanceof IGalacticraftWorldProvider))
{
super.setInPortal();
}
} TODO Fix disable of portal */
}