assemblyline/src/main/java/assemblyline/common/machine/command/CommandBreak.java
2022-10-26 19:42:44 +02:00

45 lines
1.8 KiB
Java

package assemblyline.common.machine.command;
import assemblyline.common.machine.command.Command;
import assemblyline.common.machine.command.CommandRotateTo;
import dark.library.helpers.ItemFindingHelper;
import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import universalelectricity.core.vector.Vector3;
public class CommandBreak
extends Command {
private CommandRotateTo rotateToCommand;
int BREAK_TIME = 30;
boolean keep = false;
@Override
protected boolean doTask() {
super.doTask();
Vector3 serachPosition = this.tileEntity.getHandPosition();
Block block = serachPosition.getBlock(this.world);
if (block != null && this.BREAK_TIME <= this.ticks) {
ArrayList items = block.getDrops(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), serachPosition.getBlockMetadata((IBlockAccess)this.world), 0);
if (!this.keep || items.size() > 1) {
ItemFindingHelper.dropBlockAsItem(this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ());
} else {
this.tileEntity.grabEntity((Entity)new EntityItem(this.world, (double)serachPosition.intX() + 0.5, (double)serachPosition.intY() + 0.5, (double)serachPosition.intZ() + 0.5, (ItemStack)items.get(0)));
}
this.world.setBlock(serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), Blocks.air, 0, 3);
return false;
}
return true;
}
@Override
public String toString() {
return "BREAK";
}
}