Package powercrystals.minefactoryreloaded.tile.machine

Source Code of powercrystals.minefactoryreloaded.tile.machine.TileEntityChronotyper

package powercrystals.minefactoryreloaded.tile.machine;

import java.util.List;

import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.nbt.NBTTagCompound;
import powercrystals.core.position.BlockPosition;
import powercrystals.minefactoryreloaded.core.HarvestAreaManager;
import powercrystals.minefactoryreloaded.core.IHarvestAreaContainer;
import powercrystals.minefactoryreloaded.gui.client.GuiChronotyper;
import powercrystals.minefactoryreloaded.gui.client.GuiFactoryInventory;
import powercrystals.minefactoryreloaded.gui.container.ContainerChronotyper;
import powercrystals.minefactoryreloaded.setup.Machine;
import powercrystals.minefactoryreloaded.tile.base.TileEntityFactoryPowered;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class TileEntityChronotyper extends TileEntityFactoryPowered implements IHarvestAreaContainer
{
  private HarvestAreaManager _areaManager;
  private boolean _moveOld;
 
  public TileEntityChronotyper()
  {
    super(Machine.Chronotyper);
    _areaManager = new HarvestAreaManager(this, 2, 2, 1);
  }
 
  @Override
  public String getGuiBackground()
  {
    return "chronotyper.png";
  }
 
  @Override
  @SideOnly(Side.CLIENT)
  public GuiFactoryInventory getGui(InventoryPlayer inventoryPlayer)
  {
    return new GuiChronotyper(getContainer(inventoryPlayer), this);
  }
 
  @Override
  public ContainerChronotyper getContainer(InventoryPlayer inventoryPlayer)
  {
    return new ContainerChronotyper(this, inventoryPlayer);
  }
 
  @Override
  public int getSizeInventory()
  {
    return 0;
  }
 
  @Override
  public HarvestAreaManager getHAM()
  {
    return _areaManager;
  }
 
  @Override
  protected boolean activateMachine()
  {
    List<?> entities = worldObj.getEntitiesWithinAABB(EntityAgeable.class, _areaManager.getHarvestArea().toAxisAlignedBB());
   
    for(Object o : entities)
    {
      if(!(o instanceof EntityAgeable))
      {
        continue;
      }
      EntityAgeable a = (EntityAgeable)o;
      if((a.getGrowingAge() < 0 && !_moveOld) || (a.getGrowingAge() >= 0 && _moveOld))
      {
        BlockPosition bp = BlockPosition.fromFactoryTile(this);
        bp.moveBackwards(1);
        a.setPosition(bp.x + 0.5, bp.y + 0.5, bp.z + 0.5);
       
        return true;
      }
    }
    setIdleTicks(getIdleTicksMax());
    return false;
  }
 
  public boolean getMoveOld()
  {
    return _moveOld;
  }
 
  public void setMoveOld(boolean moveOld)
  {
    _moveOld = moveOld;
  }
 
  @Override
  public int getEnergyStoredMax()
  {
    return 16000;
  }
 
  @Override
  public int getWorkMax()
  {
    return 1;
  }
 
  @Override
  public int getIdleTicksMax()
  {
    return 200;
  }
 
  @Override
  public void writeToNBT(NBTTagCompound nbttagcompound)
  {
    super.writeToNBT(nbttagcompound);
   
    nbttagcompound.setByte("moveOld", (byte)(_moveOld ? 1 : 0));
  }
 
  @Override
  public void readFromNBT(NBTTagCompound nbttagcompound)
  {
    super.readFromNBT(nbttagcompound);
    _moveOld = nbttagcompound.getByte("moveOld") == 0 ? false : true;
  }
 
  @Override
  public boolean canRotate()
  {
    return true;
  }
}
TOP

Related Classes of powercrystals.minefactoryreloaded.tile.machine.TileEntityChronotyper

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.