setup shoeBot to do basic harvesting
This commit is contained in:
parent
728095f8ba
commit
965e482e13
1 changed files with 33 additions and 58 deletions
|
@ -2,74 +2,46 @@ package net.minecraft.src.eui.robotics;
|
|||
import java.util.List;
|
||||
|
||||
import net.minecraft.src.*;
|
||||
import net.minecraft.src.universalelectricity.Vector3;
|
||||
public class EntityShoeBot extends EntityRobot {
|
||||
|
||||
EntityItem targetItem = null;
|
||||
public EntityShoeBot(World par1World) {
|
||||
super(par1World);
|
||||
this.setSize(0.6F, 0.5F);
|
||||
this.moveSpeed = 0.23F;
|
||||
// this.tasks.addTask(1, new EntityAIWander(this, this.moveSpeed));
|
||||
this.texture = "/mobs/char.png";
|
||||
}
|
||||
public float getBlockPathWeight(int par1, int par2, int par3)
|
||||
{
|
||||
return 0.5F + this.worldObj.getLightBrightness(par1, par2, par3);
|
||||
}
|
||||
@Override
|
||||
public void onEntityUpdate()
|
||||
public void botUpdate()
|
||||
{
|
||||
super.onEntityUpdate();
|
||||
|
||||
if(targetItem == null)
|
||||
{
|
||||
targetItem = findClosestItem(this.posX, this.posY, this.posZ,30);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!targetItem.isEntityAlive())
|
||||
{
|
||||
targetItem = null;
|
||||
}
|
||||
}
|
||||
if(targetItem != null)
|
||||
{
|
||||
|
||||
PathEntity PathToItem = this.worldObj.getPathEntityToEntity(this, targetItem, 30, true, false, false, true);
|
||||
if(hasPath()){
|
||||
this.setPathToEntity(PathToItem);
|
||||
this.moveSpeed = 1.0F;
|
||||
if(targetItem.getDistanceSq(this.posX,this.posY,this.posZ) < 1.5)
|
||||
{
|
||||
targetItem.setDead();
|
||||
targetItem = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.moveSpeed = 0.23F;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public EntityItem findClosestItem(double par1, double par3, double par5, double par7)
|
||||
{
|
||||
double var9 = -1.0D;
|
||||
EntityItem var11 = null;
|
||||
List itemList = worldObj.getEntitiesWithinAABB(EntityItem.class, this.boundingBox.expand(par7, 4.0D, par7));
|
||||
for (int var12 = 0; var12 < itemList.size(); ++var12)
|
||||
{
|
||||
EntityItem var13 = (EntityItem)itemList.get(var12);
|
||||
double var14 = var13.getDistanceSq(par1, par3, par5);
|
||||
|
||||
if ((par7 < 0.0D || var14 < par7 * par7) && (var9 == -1.0D || var14 < var9))
|
||||
{
|
||||
var9 = var14;
|
||||
var11 = var13;
|
||||
}
|
||||
}
|
||||
|
||||
return var11;
|
||||
super.botUpdate();
|
||||
ModLoader.getMinecraftInstance().thePlayer.addChatMessage("CC");
|
||||
if(hasTask)
|
||||
{
|
||||
ModLoader.getMinecraftInstance().thePlayer.addChatMessage("resuming task");
|
||||
if(this.currentTask == this.getTaskType() && this.taskLocation != null)
|
||||
{
|
||||
boolean harDone = harvest(this.taskLocation);
|
||||
if(harDone)
|
||||
{
|
||||
clearTask();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
clearTask();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//requestTask
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getMaxHealth() {
|
||||
// TODO Auto-generated method stub
|
||||
|
@ -80,5 +52,8 @@ public class EntityShoeBot extends EntityRobot {
|
|||
// TODO Auto-generated method stub
|
||||
return "BlockEater";
|
||||
}
|
||||
|
||||
public String getTaskType() {
|
||||
return "harvest";
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue