Skip to content

Commit

Permalink
Merge pull request #2180 from Vexatos/fuzzy-compare
Browse files Browse the repository at this point in the history
Added metadata-ignoring fuzzy option to robot.compare.
  • Loading branch information
fnuecke authored Dec 17, 2016
2 parents 648a289 + db0a67e commit ffc6561
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ 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 {
case Some(stack) => Option(stack.getItem) match {
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 _ =>
}
Expand Down

0 comments on commit ffc6561

Please sign in to comment.