mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
82 lines
1.9 KiB
Java
82 lines
1.9 KiB
Java
package com.hbm.crafting.handlers;
|
|
|
|
import com.hbm.items.ModItems;
|
|
|
|
import net.minecraft.inventory.InventoryCrafting;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.item.crafting.IRecipe;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.world.World;
|
|
|
|
public class CargoShellCraftingHandler implements IRecipe {
|
|
|
|
@Override
|
|
public boolean matches(InventoryCrafting inventory, World world) {
|
|
|
|
int itemCount = 0;
|
|
int shellCount = 0;
|
|
|
|
for(int i = 0; i < 9; i++) {
|
|
ItemStack stack = inventory.getStackInRowAndColumn(i % 3, i / 3);
|
|
|
|
if(stack != null) {
|
|
|
|
if(stack.getItem().hasContainerItem(stack) || !stack.getItem().doesContainerItemLeaveCraftingGrid(stack))
|
|
return false;
|
|
|
|
itemCount++;
|
|
|
|
if(stack.getItem() == ModItems.ammo_arty && stack.getItemDamage() == 8 && !stack.hasTagCompound()) {
|
|
shellCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return itemCount == 2 && shellCount == 1;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack getCraftingResult(InventoryCrafting inventory) {
|
|
|
|
ItemStack shell = null;
|
|
ItemStack cargo = null;
|
|
|
|
for(int i = 0; i < 9; i++) {
|
|
ItemStack stack = inventory.getStackInRowAndColumn(i % 3, i / 3);
|
|
|
|
if(stack == null)
|
|
continue;
|
|
|
|
if(stack.getItem() == ModItems.ammo_arty && stack.getItemDamage() == 8 && !stack.hasTagCompound()) {
|
|
ItemStack copy = stack.copy();
|
|
copy.stackSize = 1;
|
|
shell = copy;
|
|
} else {
|
|
ItemStack copy = stack.copy();
|
|
copy.stackSize = 1;
|
|
cargo = copy;
|
|
}
|
|
}
|
|
|
|
if(shell == null || cargo == null)
|
|
return null;
|
|
|
|
if(!shell.hasTagCompound())
|
|
shell.stackTagCompound = new NBTTagCompound();
|
|
|
|
shell.stackTagCompound.setTag("cargo", cargo.writeToNBT(new NBTTagCompound()));
|
|
|
|
return shell;
|
|
}
|
|
|
|
@Override
|
|
public int getRecipeSize() {
|
|
return 9;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack getRecipeOutput() {
|
|
return new ItemStack(ModItems.ammo_shell, 1, 8);
|
|
}
|
|
}
|