Package de.kumpelblase2.remoteentities.api.thinking.goals

Source Code of de.kumpelblase2.remoteentities.api.thinking.goals.DesireLookRandomly

package de.kumpelblase2.remoteentities.api.thinking.goals;

import net.minecraft.server.v1_7_R1.EntityLiving;
import de.kumpelblase2.remoteentities.api.RemoteEntity;
import de.kumpelblase2.remoteentities.api.thinking.DesireBase;
import de.kumpelblase2.remoteentities.api.thinking.DesireType;
import de.kumpelblase2.remoteentities.utilities.NMSUtil;

/**
* Using this desire the entity will occasionally look around randomly.
*/
public class DesireLookRandomly extends DesireBase
{
  protected double m_xDiff;
  protected double m_zDiff;
  protected int m_lookTick;

  @Deprecated
  public DesireLookRandomly(RemoteEntity inEntity)
  {
    super(inEntity);
    this.m_type = DesireType.FULL_CONCENTRATION;
  }

  public DesireLookRandomly()
  {
    super();
    this.m_type = DesireType.FULL_CONCENTRATION;
  }

  @Override
  public boolean shouldExecute()
  {
    if(this.getEntityHandle() == null)
      return false;

    return this.getEntityHandle().aI().nextFloat() < 0.02F;
  }

  @Override
  public boolean canContinue()
  {
    return this.m_lookTick >= 0;
  }

  @Override
  public void startExecuting()
  {
    double d = 6.283185307179586D * this.getEntityHandle().aI().nextDouble();

    this.m_xDiff = Math.cos(d);
    this.m_zDiff = Math.sin(d);
    this.m_lookTick = 20 + this.getEntityHandle().aI().nextInt(20);
  }

  @Override
  public boolean update()
  {
    this.m_lookTick--;
    EntityLiving entity = this.getEntityHandle();
    NMSUtil.getControllerLook(entity).a(entity.locX + this.m_xDiff, entity.locY + entity.getHeadHeight(), entity.locZ + this.m_zDiff, 10, NMSUtil.getMaxHeadRotation(entity));
    return true;
  }
}
TOP

Related Classes of de.kumpelblase2.remoteentities.api.thinking.goals.DesireLookRandomly

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.