bypass unnecessary fuzzy checks if we're ignoring durability anyway
This commit is contained in:
@@ -38,7 +38,6 @@ import java.util.Map;
|
|||||||
* {@link #findFuzzy(IAEItemStack, FuzzyMode)}.
|
* {@link #findFuzzy(IAEItemStack, FuzzyMode)}.
|
||||||
*/
|
*/
|
||||||
class FuzzyItemVariantList extends ItemVariantList {
|
class FuzzyItemVariantList extends ItemVariantList {
|
||||||
|
|
||||||
static final SharedStackComparator COMPARATOR = new SharedStackComparator();
|
static final SharedStackComparator COMPARATOR = new SharedStackComparator();
|
||||||
|
|
||||||
// NOTE: We only use Object as they key here so we can pass our special DamageBounds to the subMap method.
|
// NOTE: We only use Object as they key here so we can pass our special DamageBounds to the subMap method.
|
||||||
@@ -47,6 +46,10 @@ class FuzzyItemVariantList extends ItemVariantList {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<IAEItemStack> findFuzzy(final IAEItemStack filter, final FuzzyMode fuzzy) {
|
public Collection<IAEItemStack> findFuzzy(final IAEItemStack filter, final FuzzyMode fuzzy) {
|
||||||
|
if (fuzzy == FuzzyMode.IGNORE_ALL) {
|
||||||
|
return this.records.values();
|
||||||
|
}
|
||||||
|
|
||||||
ItemStack itemStack = filter.getDefinition();
|
ItemStack itemStack = filter.getDefinition();
|
||||||
|
|
||||||
ItemDamageBound lowerBound = makeLowerBound(itemStack, fuzzy);
|
ItemDamageBound lowerBound = makeLowerBound(itemStack, fuzzy);
|
||||||
@@ -161,14 +164,8 @@ class FuzzyItemVariantList extends ItemVariantList {
|
|||||||
damage = stack.getItemDamage();
|
damage = stack.getItemDamage();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fuzzy == FuzzyMode.IGNORE_ALL) {
|
final int breakpoint = fuzzy.calculateBreakPoint(maxDamage);
|
||||||
if (maxDamage != 0) {
|
damage = damage <= breakpoint ? breakpoint : maxDamage;
|
||||||
damage = maxDamage;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
final int breakpoint = fuzzy.calculateBreakPoint(maxDamage);
|
|
||||||
damage = damage <= breakpoint ? breakpoint : maxDamage;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ItemDamageBound(damage);
|
return new ItemDamageBound(damage);
|
||||||
}
|
}
|
||||||
@@ -181,26 +178,19 @@ class FuzzyItemVariantList extends ItemVariantList {
|
|||||||
Preconditions.checkState(stack.getItem().isDamageable() || (Platform.isGTDamageableItem(stack.getItem())), "Item#isDamageable() has to be true");
|
Preconditions.checkState(stack.getItem().isDamageable() || (Platform.isGTDamageableItem(stack.getItem())), "Item#isDamageable() has to be true");
|
||||||
|
|
||||||
int damage;
|
int damage;
|
||||||
if (fuzzy == FuzzyMode.IGNORE_ALL) {
|
int maxDamage;
|
||||||
damage = MIN_DAMAGE_VALUE;
|
if (Platform.isIC2DamageableItem(stack.getItem())) {
|
||||||
|
maxDamage = ((ICustomDamageItem) stack.getItem()).getMaxCustomDamage(stack);
|
||||||
|
damage = ((ICustomDamageItem) stack.getItem()).getCustomDamage(stack);
|
||||||
|
} else if (Platform.isGTDamageableItem(stack.getItem())) {
|
||||||
|
maxDamage = ToolClass.getGTMaxDamage(stack);
|
||||||
|
damage = ToolClass.getGTitemDamage(stack);
|
||||||
} else {
|
} else {
|
||||||
int maxDamage;
|
maxDamage = stack.getMaxDamage();
|
||||||
if (Platform.isIC2DamageableItem(stack.getItem())) {
|
damage = stack.getItemDamage();
|
||||||
maxDamage = ((ICustomDamageItem) stack.getItem()).getMaxCustomDamage(stack);
|
|
||||||
damage = ((ICustomDamageItem) stack.getItem()).getCustomDamage(stack);
|
|
||||||
} else if (Platform.isGTDamageableItem(stack.getItem())) {
|
|
||||||
maxDamage = ToolClass.getGTMaxDamage(stack);
|
|
||||||
damage = ToolClass.getGTitemDamage(stack);
|
|
||||||
} else {
|
|
||||||
maxDamage = stack.getMaxDamage();
|
|
||||||
damage = stack.getItemDamage();
|
|
||||||
}
|
|
||||||
|
|
||||||
final int breakpoint = fuzzy.calculateBreakPoint(maxDamage);
|
|
||||||
damage = damage <= breakpoint ? MIN_DAMAGE_VALUE : breakpoint;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ItemDamageBound(damage);
|
final int breakpoint = fuzzy.calculateBreakPoint(maxDamage);
|
||||||
|
return new ItemDamageBound(damage <= breakpoint ? MIN_DAMAGE_VALUE : breakpoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user