59 lines
971 B
Java
59 lines
971 B
Java
package mekanism.client.sound;
|
|
|
|
import mekanism.api.Pos3D;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.world.World;
|
|
|
|
public abstract class PlayerSound extends Sound
|
|
{
|
|
/** The TileEntity this sound is associated with. */
|
|
public EntityPlayer player;
|
|
|
|
public int ticksSincePlay = 0;
|
|
|
|
public PlayerSound(String id, String sound, EntityPlayer entity)
|
|
{
|
|
super(id, sound, entity, new Pos3D(entity));
|
|
|
|
player = entity;
|
|
}
|
|
|
|
@Override
|
|
public float getMultiplier()
|
|
{
|
|
return Math.min(1, ((float)ticksSincePlay/20F))*0.3F;
|
|
}
|
|
|
|
@Override
|
|
public boolean update(World world)
|
|
{
|
|
if(player.isDead)
|
|
{
|
|
return false;
|
|
}
|
|
else if(player.worldObj != world)
|
|
{
|
|
return false;
|
|
}
|
|
else if(!world.loadedEntityList.contains(player))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public Pos3D getLocation()
|
|
{
|
|
return new Pos3D(player);
|
|
}
|
|
|
|
@Override
|
|
public void play()
|
|
{
|
|
super.play();
|
|
|
|
ticksSincePlay = 0;
|
|
}
|
|
}
|