package net.tropicraft.item.scuba; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class ItemScubaFlippers extends ItemScubaGear { public ItemScubaFlippers(ArmorMaterial material, ScubaMaterial scubaMaterial, int renderIndex, int armorType) { super(material, scubaMaterial, renderIndex, armorType); // TODO Auto-generated constructor stub } @Override public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) { // TODO Auto-generated method stub return null; } @Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { // TODO Auto-generated method stub return 0; } @Override public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) { // TODO Auto-generated method stub } @Override public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { if (player.isInWater() || isFullyUnderwater(world, player)) { player.capabilities.isFlying = true; player.setAIMoveSpeed(player.capabilities.getWalkSpeed()); player.moveFlying(1E-4F, 1E-4F, 0.00000000001f); player.motionX /= 1.06999999; player.motionZ /= 1.06999999; player.moveEntityWithHeading(-1E-4F, -1E-4F); } else { player.setAIMoveSpeed((float) (player.getAIMoveSpeed() / 1.33333)); player.capabilities.isFlying = false; } } private boolean isFullyUnderwater(World world, EntityPlayer player) { int x = MathHelper.ceiling_double_int(player.posX); int y = MathHelper.ceiling_double_int(player.posY + player.height - 0.5F); int z = MathHelper.ceiling_double_int(player.posZ); return world.getBlock(x, y, z).getMaterial().isLiquid(); } }