Merge pull request #2180 from Vexatos/fuzzy-compare

Added metadata-ignoring fuzzy option to robot.compare.
This commit is contained in:
Florian "Sangar" Nücke 2016-12-17 14:23:19 +01:00 committed by GitHub
commit ffc65616c0
2 changed files with 8 additions and 8 deletions

View File

@ -72,16 +72,16 @@ end
-------------------------------------------------------------------------------
-- Inventory + World
function robot.compare()
return component.robot.compare(sides.front)
function robot.compare(fuzzy)
return component.robot.compare(sides.front, fuzzy)
end
function robot.compareUp()
return component.robot.compare(sides.up)
function robot.compareUp(fuzzy)
return component.robot.compare(sides.up, fuzzy)
end
function robot.compareDown()
return component.robot.compare(sides.down)
function robot.compareDown(fuzzy)
return component.robot.compare(sides.down, fuzzy)
end
function robot.drop(count)

View File

@ -13,7 +13,7 @@ import net.minecraft.item.ItemBlock
import net.minecraftforge.common.util.ForgeDirection
trait InventoryWorldControl extends InventoryAware with WorldAware with SideRestricted {
@Callback(doc = "function(side:number):boolean -- Compare the block on the specified side with the one in the selected slot. Returns true if equal.")
@Callback(doc = "function(side:number[, fuzzy:boolean=false]):boolean -- Compare the block on the specified side with the one in the selected slot. Returns true if equal.")
def compare(context: Context, args: Arguments): Array[AnyRef] = {
val side = checkSideForAction(args, 0)
stackInSlot(selectedSlot) match {
@ -21,7 +21,7 @@ trait InventoryWorldControl extends InventoryAware with WorldAware with SideRest
case Some(item: ItemBlock) =>
val blockPos = position.offset(side)
val idMatches = item.field_150939_a == world.getBlock(blockPos)
val subTypeMatches = !item.getHasSubtypes || item.getMetadata(stack.getItemDamage) == world.getBlockMetadata(blockPos)
val subTypeMatches = args.optBoolean(1, false) || !item.getHasSubtypes || item.getMetadata(stack.getItemDamage) == world.getBlockMetadata(blockPos)
return result(idMatches && subTypeMatches)
case _ =>
}