Advertisement
hassansyyid

EntityWarthogTurret

Jul 5th, 2015
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 20.58 KB | None | 0 0
  1. package halocraft.entities;
  2.  
  3. import halocraft.Main;
  4.  
  5. import java.util.List;
  6.  
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.material.Material;
  9. import net.minecraft.client.model.ModelBase;
  10. import net.minecraft.entity.Entity;
  11. import net.minecraft.entity.EntityLivingBase;
  12. import net.minecraft.entity.player.EntityPlayer;
  13. import net.minecraft.init.Blocks;
  14. import net.minecraft.init.Items;
  15. import net.minecraft.item.Item;
  16. import net.minecraft.nbt.NBTTagCompound;
  17. import net.minecraft.util.AxisAlignedBB;
  18. import net.minecraft.util.BlockPos;
  19. import net.minecraft.util.DamageSource;
  20. import net.minecraft.util.EntityDamageSourceIndirect;
  21. import net.minecraft.util.EnumParticleTypes;
  22. import net.minecraft.util.MathHelper;
  23. import net.minecraft.world.World;
  24. import net.minecraftforge.fml.relauncher.Side;
  25. import net.minecraftforge.fml.relauncher.SideOnly;
  26.  
  27. public class EntityWarthogTurret extends Entity
  28. {
  29.     private boolean isBoatEmpty;
  30.     private double speedMultiplier;
  31.     private int boatPosRotationIncrements;
  32.     private double boatX;
  33.     private double boatY;
  34.     private double boatZ;
  35.     private double boatYaw;
  36.     private double boatPitch;
  37.     @SideOnly(Side.CLIENT)
  38.     private double velocityX;
  39.     @SideOnly(Side.CLIENT)
  40.     private double velocityY;
  41.     @SideOnly(Side.CLIENT)
  42.     private double velocityZ;
  43.     public EntityPlayer secondRider;
  44.     public EntityPlayer thirdRider;
  45.    
  46.     public EntityWarthogTurret(World worldIn)
  47.     {
  48.         super(worldIn);
  49.         this.isBoatEmpty = true;
  50.         this.speedMultiplier = 0.07D;
  51.         this.preventEntitySpawning = true;
  52.         this.setSize(1.5F, 0.6F);
  53.     }
  54.  
  55.     protected boolean canTriggerWalking()
  56.     {
  57.         return false;
  58.     }
  59.  
  60.     protected void entityInit()
  61.     {
  62.         this.dataWatcher.addObject(17, new Integer(0));
  63.         this.dataWatcher.addObject(18, new Integer(1));
  64.         this.dataWatcher.addObject(19, new Float(0.0F));
  65.     }
  66.  
  67.     public AxisAlignedBB getCollisionBox(Entity entityIn)
  68.     {
  69.         return entityIn.getEntityBoundingBox();
  70.     }
  71.  
  72.     public AxisAlignedBB getBoundingBox()
  73.     {
  74.         return this.getEntityBoundingBox();
  75.     }
  76.  
  77.     public boolean canBePushed()
  78.     {
  79.         return true;
  80.     }
  81.  
  82.     public EntityWarthogTurret(World worldIn, double x, double y, double z)
  83.     {
  84.         this(worldIn);
  85.         this.setPosition(x, y, z);
  86.         this.motionX = 0.0D;
  87.         this.motionY = 0.0D;
  88.         this.motionZ = 0.0D;
  89.         this.prevPosX = x;
  90.         this.prevPosY = y;
  91.         this.prevPosZ = z;
  92.     }
  93.  
  94.     public double getMountedYOffset()
  95.     {
  96.         return (double)this.height * 0.0D + 0.8D;
  97.     }
  98.  
  99.     public boolean attackEntityFrom(DamageSource source, float amount)
  100.     {
  101.         if (this.isEntityInvulnerable(source))
  102.         {
  103.             return false;
  104.         }
  105.         else if (!this.worldObj.isRemote && !this.isDead)
  106.         {
  107.             if (this.riddenByEntity != null && this.riddenByEntity == source.getEntity() && source instanceof EntityDamageSourceIndirect)
  108.             {
  109.                 return false;
  110.             }
  111.             else
  112.             {
  113.                 this.setForwardDirection(-this.getForwardDirection());
  114.                 this.setTimeSinceHit(10);
  115.                 this.setDamageTaken(this.getDamageTaken() + amount * 10.0F);
  116.                 this.setBeenAttacked();
  117.                 boolean flag = source.getEntity() instanceof EntityPlayer && ((EntityPlayer)source.getEntity()).capabilities.isCreativeMode;
  118.  
  119.                 if (flag || this.getDamageTaken() > 40.0F)
  120.                 {
  121.                     if (this.riddenByEntity != null)
  122.                     {
  123.                         this.riddenByEntity.mountEntity(this);
  124.                     }
  125.  
  126.                     if (!flag)
  127.                     {
  128.                         this.dropItemWithOffset(halocraft.Main.itemWarthog, 1, 0.0F);
  129.                     }
  130.  
  131.                     this.setDead();
  132.                 }
  133.  
  134.                 return true;
  135.             }
  136.         }
  137.         else
  138.         {
  139.             return true;
  140.         }
  141.     }
  142.  
  143.     @SideOnly(Side.CLIENT)
  144.     public void performHurtAnimation()
  145.     {
  146.         this.setForwardDirection(-this.getForwardDirection());
  147.         this.setTimeSinceHit(10);
  148.         this.setDamageTaken(this.getDamageTaken() * 11.0F);
  149.     }
  150.  
  151.     public boolean canBeCollidedWith()
  152.     {
  153.         return !this.isDead;
  154.     }
  155.    
  156.     public World getWorldObj(){
  157.         return this.worldObj;
  158.     }
  159.    
  160.     @SideOnly(Side.CLIENT)
  161.     public void func_180426_a(double p_180426_1_, double p_180426_3_, double p_180426_5_, float p_180426_7_, float p_180426_8_, int p_180426_9_, boolean p_180426_10_)
  162.     {
  163.         if (p_180426_10_ && this.riddenByEntity != null)
  164.         {
  165.             this.prevPosX = this.posX = p_180426_1_;
  166.             this.prevPosY = this.posY = p_180426_3_;
  167.             this.prevPosZ = this.posZ = p_180426_5_;
  168.             this.rotationYaw = p_180426_7_;
  169.             this.rotationPitch = p_180426_8_;
  170.             this.boatPosRotationIncrements = 0;
  171.             this.setPosition(p_180426_1_, p_180426_3_, p_180426_5_);
  172.             this.motionX = this.velocityX = 0.0D;
  173.             this.motionY = this.velocityY = 0.0D;
  174.             this.motionZ = this.velocityZ = 0.0D;
  175.         }
  176.         else
  177.         {
  178.             if (this.isBoatEmpty)
  179.             {
  180.                 this.boatPosRotationIncrements = p_180426_9_ + 5;
  181.             }
  182.             else
  183.             {
  184.                 double d3 = p_180426_1_ - this.posX;
  185.                 double d4 = p_180426_3_ - this.posY;
  186.                 double d5 = p_180426_5_ - this.posZ;
  187.                 double d6 = d3 * d3 + d4 * d4 + d5 * d5;
  188.  
  189.                 if (d6 <= 1.0D)
  190.                 {
  191.                     return;
  192.                 }
  193.  
  194.                 this.boatPosRotationIncrements = 3;
  195.             }
  196.  
  197.             this.boatX = p_180426_1_;
  198.             this.boatY = p_180426_3_;
  199.             this.boatZ = p_180426_5_;
  200.             this.boatYaw = (double)p_180426_7_;
  201.             this.boatPitch = (double)p_180426_8_;
  202.             this.motionX = this.velocityX;
  203.             this.motionY = this.velocityY;
  204.             this.motionZ = this.velocityZ;
  205.         }
  206.     }
  207.  
  208.     @SideOnly(Side.CLIENT)
  209.     public void setVelocity(double x, double y, double z)
  210.     {
  211.         this.velocityX = this.motionX = x;
  212.         this.velocityY = this.motionY = y;
  213.         this.velocityZ = this.motionZ = z;
  214.     }
  215.  
  216.     public void onUpdate()
  217.     {
  218.         super.onUpdate();
  219.  
  220.         if (this.getTimeSinceHit() > 0)
  221.         {
  222.             this.setTimeSinceHit(this.getTimeSinceHit() - 1);
  223.         }
  224.  
  225.         if (this.getDamageTaken() > 0.0F)
  226.         {
  227.             this.setDamageTaken(this.getDamageTaken() - 1.0F);
  228.         }
  229.        
  230.         if(this.riddenByEntity == null && this.secondRider != null)
  231.         {
  232.             if(!this.getWorldObj().isRemote)
  233.             {
  234.                 this.secondRider.dismountEntity(this);
  235.             }
  236.             this.secondRider = null;
  237.         }
  238.        
  239.         if(this.riddenByEntity == null && this.secondRider == null && this.thirdRider != null)
  240.         {
  241.             if(!this.getWorldObj().isRemote)
  242.             {
  243.                 this.thirdRider.dismountEntity(this);
  244.             }
  245.             this.thirdRider = null;
  246.         }
  247.  
  248.         this.prevPosX = this.posX;
  249.         this.prevPosY = this.posY;
  250.         this.prevPosZ = this.posZ;
  251.         byte b0 = 5;
  252.         double d0 = 0.0D;
  253.  
  254.         for (int i = 0; i < b0; ++i)
  255.         {
  256.             double d1 = this.getEntityBoundingBox().minY + (this.getEntityBoundingBox().maxY - this.getEntityBoundingBox().minY) * (double)(i + 0) / (double)b0 - 0.125D;
  257.             double d3 = this.getEntityBoundingBox().minY + (this.getEntityBoundingBox().maxY - this.getEntityBoundingBox().minY) * (double)(i + 1) / (double)b0 - 0.125D;
  258.             AxisAlignedBB axisalignedbb = new AxisAlignedBB(this.getEntityBoundingBox().minX, d1, this.getEntityBoundingBox().minZ, this.getEntityBoundingBox().maxX, d3, this.getEntityBoundingBox().maxZ);
  259.         }
  260.  
  261.         double d9 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
  262.         double d2;
  263.         double d4;
  264.         int j;
  265.  
  266.         if (d9 > 0.2975D)
  267.         {
  268.             d2 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D);
  269.             d4 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D);
  270.  
  271.             for (j = 0; (double)j < 1.0D + d9 * 60.0D; ++j)
  272.             {
  273.                 double d5 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
  274.                 double d6 = (double)(this.rand.nextInt(2) * 2 - 1) * 0.7D;
  275.                 double d7;
  276.                 double d8;
  277.             }
  278.         }
  279.  
  280.         double d10;
  281.         double d11;
  282.  
  283.         if (this.worldObj.isRemote && this.isBoatEmpty)
  284.         {
  285.             if (this.boatPosRotationIncrements > 0)
  286.             {
  287.                 d2 = this.posX + (this.boatX - this.posX) / (double)this.boatPosRotationIncrements;
  288.                 d4 = this.posY + (this.boatY - this.posY) / (double)this.boatPosRotationIncrements;
  289.                 d10 = this.posZ + (this.boatZ - this.posZ) / (double)this.boatPosRotationIncrements;
  290.                 d11 = MathHelper.wrapAngleTo180_double(this.boatYaw - (double)this.rotationYaw);
  291.                 this.rotationYaw = (float)((double)this.rotationYaw + d11 / (double)this.boatPosRotationIncrements);
  292.                 this.rotationPitch = (float)((double)this.rotationPitch + (this.boatPitch - (double)this.rotationPitch) / (double)this.boatPosRotationIncrements);
  293.                 --this.boatPosRotationIncrements;
  294.                 this.setPosition(d2, d4, d10);
  295.                 this.setRotation(this.rotationYaw, this.rotationPitch);
  296.             }
  297.             else
  298.             {
  299.                 d2 = this.posX + this.motionX;
  300.                 d4 = this.posY + this.motionY;
  301.                 d10 = this.posZ + this.motionZ;
  302.                 this.setPosition(d2, d4, d10);
  303.                 this.motionX *= 0.9900000095367432D;
  304.                 this.motionY *= 0.949999988079071D;
  305.                 this.motionZ *= 0.9900000095367432D;
  306.             }
  307.         }
  308.         else
  309.         {
  310.             if (d0 < 1.0D)
  311.             {
  312.                 d2 = d0 * 2.0D - 1.0D;
  313.                 this.motionY += 0.03999999910593033D * d2;
  314.             }
  315.             else
  316.             {
  317.                 if (this.motionY < 0.0D)
  318.                 {
  319.                     this.motionY /= 2.0D;
  320.                 }
  321.  
  322.                 this.motionY += 0.007000000216066837D;
  323.             }
  324.  
  325.             if (this.riddenByEntity instanceof EntityLivingBase)
  326.             {
  327.                 EntityLivingBase entitylivingbase = (EntityLivingBase)this.riddenByEntity;
  328.                 float f = this.riddenByEntity.rotationYaw + -entitylivingbase.moveStrafing * 90.0F;
  329.                 this.motionX += -Math.sin((double)(f * (float)Math.PI / 180.0F)) * this.speedMultiplier * (double)entitylivingbase.moveForward * 0.05000000074505806D;
  330.                 this.motionZ += Math.cos((double)(f * (float)Math.PI / 180.0F)) * this.speedMultiplier * (double)entitylivingbase.moveForward * 0.05000000074505806D;
  331.             }
  332.  
  333.             d2 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
  334.  
  335.             if (d2 > 0.35D)
  336.             {
  337.                 d4 = 0.35D / d2;
  338.                 this.motionX *= d4;
  339.                 this.motionZ *= d4;
  340.                 d2 = 0.35D;
  341.             }
  342.  
  343.             if (d2 > d9 && this.speedMultiplier < 0.35D)
  344.             {
  345.                 this.speedMultiplier += (0.35D - this.speedMultiplier) / 35.0D;
  346.  
  347.                 if (this.speedMultiplier > 0.35D)
  348.                 {
  349.                     this.speedMultiplier = 0.35D;
  350.                 }
  351.             }
  352.             else
  353.             {
  354.                 this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D;
  355.  
  356.                 if (this.speedMultiplier < 0.07D)
  357.                 {
  358.                     this.speedMultiplier = 0.07D;
  359.                 }
  360.             }
  361.  
  362.             int l;
  363.  
  364.             for (l = 0; l < 4; ++l)
  365.             {
  366.                 int i1 = MathHelper.floor_double(this.posX + ((double)(l % 2) - 0.5D) * 0.8D);
  367.                 j = MathHelper.floor_double(this.posZ + ((double)(l / 2) - 0.5D) * 0.8D);
  368.  
  369.                 for (int j1 = 0; j1 < 2; ++j1)
  370.                 {
  371.                     int k = MathHelper.floor_double(this.posY) + j1;
  372.                     BlockPos blockpos = new BlockPos(i1, k, j);
  373.                     Block block = this.worldObj.getBlockState(blockpos).getBlock();
  374.  
  375.                     if (block == Blocks.snow_layer)
  376.                     {
  377.                         this.worldObj.setBlockToAir(blockpos);
  378.                         this.isCollidedHorizontally = false;
  379.                     }
  380.                     else if (block == Blocks.waterlily)
  381.                     {
  382.                         this.worldObj.destroyBlock(blockpos, true);
  383.                         this.isCollidedHorizontally = false;
  384.                     }
  385.                 }
  386.             }
  387.  
  388.             this.moveEntity(this.motionX, this.motionY, this.motionZ);
  389.  
  390.             if (this.isCollidedHorizontally && d9 > 0.2D)
  391.             {
  392.                 if (!this.worldObj.isRemote && !this.isDead)
  393.                 {
  394.                     this.setDead();
  395.                     for (l = 0; l < 2; ++l)
  396.                     {
  397.                         this.dropItemWithOffset(halocraft.Main.itemWarthog, 2, 0.0F);
  398.                     }
  399.                 }
  400.             }
  401.             else
  402.             {
  403.                 this.motionX *= 0.9900000095367432D;
  404.                 this.motionY *= 0.949999988079071D;
  405.                 this.motionZ *= 0.9900000095367432D;
  406.             }
  407.  
  408.             this.rotationPitch = 0.0F;
  409.             d4 = (double)this.rotationYaw;
  410.             d10 = this.prevPosX - this.posX;
  411.             d11 = this.prevPosZ - this.posZ;
  412.  
  413.             if (d10 * d10 + d11 * d11 > 0.001D)
  414.             {
  415.                 d4 = (double)((float)(Math.atan2(d11, d10) * 180.0D / Math.PI));
  416.             }
  417.  
  418.             double d12 = MathHelper.wrapAngleTo180_double(d4 - (double)this.rotationYaw);
  419.  
  420.             if (d12 > 20.0D)
  421.             {
  422.                 d12 = 20.0D;
  423.             }
  424.  
  425.             if (d12 < -20.0D)
  426.             {
  427.                 d12 = -20.0D;
  428.             }
  429.  
  430.             this.rotationYaw = (float)((double)this.rotationYaw + d12);
  431.             this.setRotation(this.rotationYaw, this.rotationPitch);
  432.  
  433.             if (!this.worldObj.isRemote)
  434.             {
  435.                 List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox().expand(0.20000000298023224D, 0.0D, 0.20000000298023224D));
  436.  
  437.                 if (list != null && !list.isEmpty())
  438.                 {
  439.                     for (int k1 = 0; k1 < list.size(); ++k1)
  440.                     {
  441.                         Entity entity = (Entity)list.get(k1);
  442.  
  443.                         if (entity != this.riddenByEntity && entity.canBePushed() && entity instanceof EntityWarthog)
  444.                         {
  445.                             entity.applyEntityCollision(this);
  446.                         }
  447.                     }
  448.                 }
  449.  
  450.                 if (this.riddenByEntity != null && this.riddenByEntity.isDead)
  451.                 {
  452.                     this.riddenByEntity = null;
  453.                 }
  454.                
  455.                 if (this.secondRider != null && this.secondRider.isDead)
  456.                 {
  457.                     this.secondRider = null;
  458.                 }
  459.                
  460.                 if (this.thirdRider != null && this.thirdRider.isDead)
  461.                 {
  462.                     this.thirdRider = null;
  463.                 }
  464.             }
  465.         }
  466.     }
  467.  
  468.     public void updateRiderPosition()
  469.     {
  470.         if (this.riddenByEntity != null)
  471.         {
  472.             double d0 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
  473.             double d1 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
  474.             this.riddenByEntity.setPosition(this.posX + d0, this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset(), this.posZ + d1);
  475.         }
  476.        
  477.         if(this.secondRider != null)
  478.         {
  479.              double d0 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
  480.              double d1 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
  481.              this.secondRider.setPosition(this.posX + d0 + 1, this.posY + this.getMountedYOffset() + this.secondRider.getYOffset(), this.posZ + d1);
  482.         }
  483.        
  484.         if(this.thirdRider != null)
  485.         {
  486.              double d0 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
  487.              double d1 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D) * 0.4D;
  488.              this.thirdRider.setPosition(this.posX + d0, this.posY + this.getMountedYOffset() + this.thirdRider.getYOffset(), this.posZ + d1 + 1);
  489.         }
  490.     }
  491.  
  492.     protected void writeEntityToNBT(NBTTagCompound tagCompound) {}
  493.  
  494.     protected void readEntityFromNBT(NBTTagCompound tagCompund) {}
  495.  
  496.     public boolean interactFirst(EntityPlayer playerIn)
  497.     {
  498.         if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != playerIn)
  499.         {
  500.             if(this.secondRider != null && this.secondRider instanceof EntityPlayer && this.secondRider != playerIn)
  501.             {
  502.                 if(this.thirdRider != null && this.thirdRider instanceof EntityPlayer && this.thirdRider != playerIn);
  503.                 else
  504.                 {
  505.                     this.thirdRider = playerIn;
  506.                     if (!this.worldObj.isRemote)
  507.                     {
  508.                         this.mountThirdRider(playerIn);
  509.                     }
  510.                 }
  511.             }
  512.             else
  513.             {
  514.                 this.secondRider = playerIn;
  515.                 if (!this.worldObj.isRemote)
  516.                 {
  517.                     this.mountSecondRider(playerIn);
  518.                 }
  519.             }
  520.             return true;
  521.         }
  522.         else
  523.         {
  524.             if (!this.worldObj.isRemote)
  525.             {
  526.                 playerIn.mountEntity(this);
  527.             }
  528.  
  529.             return true;
  530.         }
  531.     }
  532.  
  533.     public void mountThirdRider(EntityPlayer playerIn) {
  534.         if(this.riddenByEntity != null)
  535.         {
  536.             if(this.riddenByEntity instanceof EntityPlayer)
  537.             {
  538.                 EntityPlayer primaryRider = (EntityPlayer) this.riddenByEntity;
  539.                 //if(!this.worldObj.isRemote){
  540.                     playerIn.setPosition(primaryRider.posX, primaryRider.posY, primaryRider.posZ + 1);
  541.                 //}
  542.             }
  543.         }
  544.     }
  545.  
  546.     public void mountSecondRider(EntityPlayer playerIn) {
  547.         if(this.riddenByEntity != null)
  548.         {
  549.             if(this.riddenByEntity instanceof EntityPlayer)
  550.             {
  551.                 EntityPlayer primaryRider = (EntityPlayer) this.riddenByEntity;
  552.                 //if(!this.worldObj.isRemote){
  553.                     playerIn.setPosition(primaryRider.posX + 1, primaryRider.posY, primaryRider.posZ);
  554.                 //}
  555.             }
  556.         }
  557.     }
  558.  
  559.     protected void func_180433_a(double p_180433_1_, boolean p_180433_3_, Block p_180433_4_, BlockPos p_180433_5_)
  560.     {
  561.         if (p_180433_3_)
  562.         {
  563.             if (this.fallDistance > 3.0F)
  564.             {
  565.                 this.fall(this.fallDistance, 1.0F);
  566.  
  567.                 if (!this.worldObj.isRemote && !this.isDead)
  568.                 {
  569.                     this.setDead();
  570.                     int i;
  571.  
  572.                     for (i = 0; i < 2; ++i)
  573.                     {
  574.                         this.dropItemWithOffset(halocraft.Main.HaloIngot, 2, 0.0F);
  575.                     }
  576.                 }
  577.  
  578.                 this.fallDistance = 0.0F;
  579.             }
  580.         }
  581.         else if (this.worldObj.getBlockState((new BlockPos(this)).down()).getBlock().getMaterial() != Material.water && p_180433_1_ < 0.0D)
  582.         {
  583.             this.fallDistance = (float)((double)this.fallDistance - p_180433_1_);
  584.         }
  585.     }
  586.  
  587.     public void setDamageTaken(float p_70266_1_)
  588.     {
  589.         this.dataWatcher.updateObject(19, Float.valueOf(p_70266_1_));
  590.     }
  591.  
  592.     public float getDamageTaken()
  593.     {
  594.         return this.dataWatcher.getWatchableObjectFloat(19);
  595.     }
  596.  
  597.     public void setTimeSinceHit(int p_70265_1_)
  598.     {
  599.         this.dataWatcher.updateObject(17, Integer.valueOf(p_70265_1_));
  600.     }
  601.  
  602.     public int getTimeSinceHit()
  603.     {
  604.         return this.dataWatcher.getWatchableObjectInt(17);
  605.     }
  606.  
  607.     public void setForwardDirection(int p_70269_1_)
  608.     {
  609.         this.dataWatcher.updateObject(18, Integer.valueOf(p_70269_1_));
  610.     }
  611.  
  612.     public int getForwardDirection()
  613.     {
  614.         return this.dataWatcher.getWatchableObjectInt(18);
  615.     }
  616.  
  617.     @SideOnly(Side.CLIENT)
  618.     public void setIsBoatEmpty(boolean isWarthogEmpty)
  619.     {
  620.         this.isBoatEmpty = isWarthogEmpty;
  621.     }
  622. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement