Hbm-s-Nuclear-Tech-GIT/src/main/java/com/hbm/inventory/SlotCraftingOutput.java
2023-04-07 18:17:03 +02:00

92 lines
3.6 KiB
Java

package com.hbm.inventory;
import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class SlotCraftingOutput extends Slot {
private EntityPlayer player;
private int craftBuffer;
public SlotCraftingOutput(EntityPlayer player, IInventory inventory, int i, int j, int k) {
super(inventory, i, j, k);
this.player = player;
}
@Override
public boolean isItemValid(ItemStack stack) {
return false;
}
//ugly but nothing to be done
public static void checkAchievements(EntityPlayer player, ItemStack stack) {
Item item = stack.getItem();
if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant))
player.triggerAchievement(MainRegistry.achChemplant);
if(item == Item.getItemFromBlock(ModBlocks.concrete_smooth) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos))
player.triggerAchievement(MainRegistry.achConcrete);
if(item == ModItems.ingot_polymer)
player.triggerAchievement(MainRegistry.achPolymer);
if(item == ModItems.ingot_desh)
player.triggerAchievement(MainRegistry.achDesh);
if(item == ModItems.gem_tantalium)
player.triggerAchievement(MainRegistry.achTantalum);
if(item == Item.getItemFromBlock(ModBlocks.machine_gascent))
player.triggerAchievement(MainRegistry.achGasCent);
if(item == Item.getItemFromBlock(ModBlocks.machine_centrifuge))
player.triggerAchievement(MainRegistry.achCentrifuge);
if(item == ModItems.ingot_schrabidium || item == ModItems.nugget_schrabidium)
player.triggerAchievement(MainRegistry.achSchrab);
if(item == Item.getItemFromBlock(ModBlocks.machine_crystallizer))
player.triggerAchievement(MainRegistry.achAcidizer);
if(item == Item.getItemFromBlock(ModBlocks.machine_silex))
player.triggerAchievement(MainRegistry.achSILEX);
if(item == ModItems.nugget_technetium)
player.triggerAchievement(MainRegistry.achTechnetium);
if(item == Item.getItemFromBlock(ModBlocks.watz_core))
player.triggerAchievement(MainRegistry.achWatz);
if(item == ModItems.nugget_bismuth)
player.triggerAchievement(MainRegistry.achBismuth);
if(item == ModItems.nugget_am241 || item == ModItems.nugget_am242)
player.triggerAchievement(MainRegistry.achBreeding);
if(item == ModItems.missile_nuclear || item == ModItems.missile_nuclear_cluster || item == ModItems.missile_doomsday || item == ModItems.mp_warhead_10_nuclear || item == ModItems.mp_warhead_10_nuclear_large || item == ModItems.mp_warhead_15_nuclear || item == ModItems.mp_warhead_15_nuclear_shark || item == ModItems.mp_warhead_15_boxcar)
player.triggerAchievement(MainRegistry.achRedBalloons);
if(item == Item.getItemFromBlock(ModBlocks.struct_iter_core))
player.triggerAchievement(MainRegistry.achFusion);
}
@Override
public ItemStack decrStackSize(int amount) {
if(this.getHasStack()) {
this.craftBuffer += Math.min(amount, this.getStack().stackSize);
}
return super.decrStackSize(amount);
}
@Override
public void onPickupFromSlot(EntityPlayer player, ItemStack stack) {
this.onCrafting(stack);
super.onPickupFromSlot(player, stack);
}
@Override
protected void onCrafting(ItemStack stack, int amount) {
this.craftBuffer += amount;
this.onCrafting(stack);
}
@Override
protected void onCrafting(ItemStack stack) {
stack.onCrafting(this.player.worldObj, this.player, this.craftBuffer);
checkAchievements(this.player, stack);
this.craftBuffer = 0;
}
}