Package org.spoutcraft.client.entity

Source Code of org.spoutcraft.client.entity.CraftLivingEntity

/*
* This file is part of Spoutcraft.
*
* Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org/>
* Spoutcraft is licensed under the GNU Lesser General Public License.
*
* Spoutcraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Spoutcraft is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.spoutcraft.client.entity;

import net.minecraft.src.EntityLiving;
import net.minecraft.src.EntityLivingBase;
import net.minecraft.src.EntityPlayer;

import org.spoutcraft.api.entity.EntitySkinType;
import org.spoutcraft.api.util.FixedLocation;
import org.spoutcraft.api.util.MutableLocation;

public class CraftLivingEntity extends CraftEntity {
  public CraftLivingEntity(EntityLivingBase living) {
    super(living);
  }

  public EntityLivingBase getEntityLiving() {
    return (EntityLivingBase) handle;
  }

  public float getHealth() {   
    return getEntityLiving().getHealth();
  }

  public void setHealth(float health) {
    getEntityLiving().setHealth(health);
  }

  public double getEyeHeight() {
    return getEntityLiving().getEyeHeight();
  }

  public double getEyeHeight(boolean ignoreSneaking) {
    if (ignoreSneaking) {
      return getEntityLiving().height;
    }
    return getEyeHeight();
  }

  public FixedLocation getEyeLocation() {
    return new MutableLocation(handle.posX, handle.posY + getEyeHeight(), handle.posZ);
  }

  public boolean isInsideVehicle() {
    return handle.ridingEntity != null;
  }

  public boolean leaveVehicle() {
    if (isInsideVehicle()) {
      handle.mountEntity(null);
      return true;
    }
    return false;
  }

  public int getRemainingAir() {
    return getEntityLiving().getAir();
  }

  public void setRemainingAir(int ticks) {
    if (ticks < 0) {
      throw new IllegalArgumentException("The Remaining Air can not be below 0");
    }
    getEntityLiving().setAir(ticks);
  }

  public int getMaximumAir() {
    return getEntityLiving().maxAir;
  }

  public void setMaximumAir(int ticks) {
    if (ticks <= 0) {
      throw new IllegalArgumentException("The Maximum Air can not be below 1");
    }
    getEntityLiving().maxAir = ticks;
  }

  public void damage(float amount) {
    getEntityLiving().damageEntity(net.minecraft.src.DamageSource.generic, amount);
  }

  public void damage(int amount, CraftEntity source) {
    net.minecraft.src.DamageSource reason = net.minecraft.src.DamageSource.generic;

    if (source instanceof CraftHumanEntity) {
      reason = net.minecraft.src.DamageSource.causePlayerDamage(((CraftHumanEntity)source).getMCPlayer());
    } else if (source instanceof CraftLivingEntity) {
      reason = net.minecraft.src.DamageSource.causeMobDamage(((CraftLivingEntity)source).getEntityLiving());
    }

    getEntityLiving().damageEntity(reason, amount);
  }

  public int getMaximumNoDamageTicks() {
    return getEntityLiving().maxHurtResistantTime;
  }

  public void setMaximumNoDamageTicks(int ticks) {
    getEntityLiving().maxHurtResistantTime = ticks;
  }

  public float getLastDamage() {   
    return getEntityLiving().lastDamage;
  }

  public void setLastDamage(float damage) {
    getEntityLiving().lastDamage = damage;
  }

  public int getNoDamageTicks() {
    return getEntityLiving().hurtResistantTime;
  }

  public void setNoDamageTicks(int ticks) {
    getEntityLiving().hurtResistantTime = ticks;
  }

  public String getTitle() {   
    return getEntityLiving().displayName;
  }

  public void setTitle(String title) {
    getEntityLiving().displayName = title;
  }

  public void resetTitle() {
    getEntityLiving().displayName = null;
    if (handle instanceof EntityPlayer) {
      getEntityLiving().displayName = ((EntityPlayer)handle).username;
    }
  }

  @Override
  public void setSkin(String skinURI, EntitySkinType type) {
    getEntityLiving().setCustomTexture(skinURI, type.getId());
  }
}
TOP

Related Classes of org.spoutcraft.client.entity.CraftLivingEntity

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.