BloodMagic/src/main/java/WayofTime/bloodmagic/compress/BaseCompressionHandler.java

52 lines
1.4 KiB
Java
Raw Normal View History

2015-12-28 19:09:51 -05:00
package WayofTime.bloodmagic.compress;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
2017-08-15 21:30:48 -07:00
public class BaseCompressionHandler extends CompressionHandler {
2015-12-28 19:09:51 -05:00
private final ItemStack required;
private final ItemStack result;
private final int leftover;
2018-08-26 22:05:30 +02:00
public BaseCompressionHandler(ItemStack input, ItemStack output, int remainder) {
2015-12-28 19:09:51 -05:00
super();
2018-08-26 22:05:30 +02:00
this.required = input;
this.result = output;
this.leftover = remainder;
2015-12-28 19:09:51 -05:00
}
2017-08-15 21:30:48 -07:00
public ItemStack getResultStack() {
2015-12-28 19:09:51 -05:00
return this.result.copy();
}
2017-08-15 21:30:48 -07:00
public ItemStack getRequiredStack() {
2015-12-28 19:09:51 -05:00
return this.required.copy();
}
@Override
2017-08-15 21:30:48 -07:00
public ItemStack compressInventory(ItemStack[] inv, World world) {
2015-12-28 19:09:51 -05:00
int remaining = this.getRemainingNeeded(inv);
2017-08-15 21:30:48 -07:00
if (remaining <= 0) {
2015-12-28 19:09:51 -05:00
this.drainInventory(inv);
return this.getResultStack();
}
2016-12-12 19:56:36 -08:00
return ItemStack.EMPTY;
2015-12-28 19:09:51 -05:00
}
2017-08-15 21:30:48 -07:00
public int getRemainingNeeded(ItemStack[] inv) {
2018-08-26 22:05:30 +02:00
int needed = this.required.getCount();
int kept = this.getLeftover();
return iterateThroughInventory(this.required, kept, inv, needed, true);
2015-12-28 19:09:51 -05:00
}
2017-08-15 21:30:48 -07:00
public int drainInventory(ItemStack[] inv) {
2016-12-12 19:56:36 -08:00
int needed = this.required.getCount();
2015-12-28 19:09:51 -05:00
int kept = this.getLeftover();
2018-08-26 22:05:30 +02:00
return iterateThroughInventory(this.required, kept, inv, needed, true);
2015-12-28 19:09:51 -05:00
}
2017-08-15 21:30:48 -07:00
public int getLeftover() {
2015-12-28 19:09:51 -05:00
return this.leftover;
}
2018-08-26 22:05:30 +02:00
}