org.getspout.spoutapi.material.CustomBlock block = getCustomBlock(world, x, y, z);
if (block != null && human instanceof EntityPlayer) {
return block.onBlockInteract(world.getWorld(), x, y, z, ((SpoutPlayer) human.getBukkitEntity()));
}
} else if (method.getName().equals("getDamage")) {
EntityHuman human = (EntityHuman) args[0];
World world = (World) args[1];
int x = (Integer) args[2];
int y = (Integer) args[3];
int z = (Integer) args[4];
org.getspout.spoutapi.material.CustomBlock block = getCustomBlock(world, x, y, z);
if (block != null) {
if (block instanceof org.getspout.spoutapi.material.CustomBlock) {
SpoutPlayer player = (SpoutPlayer) human.getBukkitEntity();
float def;
SpoutItemStack inHand = player.getItemInHand() == null ? null : new SpoutItemStack(player.getItemInHand());
org.getspout.spoutapi.material.Material item = inHand.getMaterial();
float hardness = block.getHardness();
if (hardness <= 0F) {
return m.invoke(wrapped, args);
}
def = (!human.a(wrapped) ? 1.0F / hardness / 100.0F : human.a(wrapped, false) / hardness / 30.0F); //TODO EntityHuman.a(Block, boolean) appears to not make any use of the flag variable...
if (!(item instanceof CustomItem)) {
return def;
}