package com.flansmod.client;
import com.flansmod.common.driveables.EntityDriveable;
import com.flansmod.common.vector.Vector3f;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class EntityCamera extends EntityLivingBase
{
public EntityDriveable driveable;
public EntityCamera(World world)
{
super(world);
setSize(0F, 0F);
}
public EntityCamera(World world, EntityDriveable d)
{
this(world);
driveable = d;
setPosition(d.posX, d.posY, d.posZ);
}
@Override
public void onUpdate()
{
//super.onUpdate();
prevPosX = posX;
prevPosY = posY;
prevPosZ = posZ;
Vector3f cameraPosition = new Vector3f();//-1F, 0.5F, 0F);
//cameraPosition.scale(driveable.getDriveableType().cameraDistance);
cameraPosition = driveable.axes.findLocalVectorGlobally(cameraPosition);
//Lerp it
double dX = driveable.posX + cameraPosition.x - posX;
double dY = driveable.posY + cameraPosition.y - posY;
double dZ = driveable.posZ + cameraPosition.z - posZ;
float lerpAmount = 0.1F;
setPosition(posX + dX * lerpAmount, posY + dY * lerpAmount, posZ + dZ * lerpAmount);
rotationYaw = driveable.axes.getYaw() - 90F;
rotationPitch = driveable.axes.getPitch();
for(; rotationYaw - prevRotationYaw >= 180F; rotationYaw -= 360F) ;
for(; rotationYaw - prevRotationYaw < -180F; rotationYaw += 360F) ;
}
@Override
public ItemStack getHeldItem()
{
return null;
}
@Override
public ItemStack getEquipmentInSlot(int p_71124_1_)
{
return null;
}
@Override
public void setCurrentItemOrArmor(int p_70062_1_, ItemStack p_70062_2_)
{
}
@Override
public ItemStack getCurrentArmor(int slotIn)
{
return null;
}
@Override
public ItemStack[] getInventory()
{
return null;
}
}