2024-01-15 15:51:26 +01:00

138 lines
3.8 KiB
Java

package com.hbm.items.machine;
import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.tileentity.IUpgradeInfoProvider;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemMachineUpgrade extends Item {
public UpgradeType type;
public int tier = 0;
public ItemMachineUpgrade() {
this.setMaxStackSize(1);
this.type = UpgradeType.SPECIAL;
}
public ItemMachineUpgrade(UpgradeType type) {
this.setMaxStackSize(1);
this.type = type;
}
public ItemMachineUpgrade(UpgradeType type, int tier) {
this(type);
this.tier = tier;
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
GuiScreen open = Minecraft.getMinecraft().currentScreen;
if(open != null && open instanceof GuiContainer) {
GuiContainer guiContainer = (GuiContainer) open;
Container container = guiContainer.inventorySlots;
if(container.inventorySlots.size() > 0) {
Slot first = container.getSlot(0);
IInventory inv = (IInventory) first.inventory;
if(inv instanceof IUpgradeInfoProvider) {
IUpgradeInfoProvider provider = (IUpgradeInfoProvider) inv;
if(provider.canProvideInfo(this.type, this.tier, bool)) {
provider.provideInfo(this.type, this.tier, list, bool);
return;
}
}
}
}
if(this == ModItems.upgrade_radius) {
list.add(EnumChatFormatting.RED + "Forcefield Range Upgrade");
list.add("Radius +16 / Consumption +500");
list.add("Stacks to 16");
}
if(this == ModItems.upgrade_health) {
list.add(EnumChatFormatting.RED + "Forcefield Health Upgrade");
list.add("Max. Health +50 / Consumption +250");
list.add("Stacks to 16");
}
if(this == ModItems.upgrade_smelter) {
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Smelts blocks. Easy enough.");
}
if(this == ModItems.upgrade_shredder) {
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Crunches ores");
}
if(this == ModItems.upgrade_centrifuge) {
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Hopefully self-explanatory");
}
if(this == ModItems.upgrade_crystallizer) {
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("Your new best friend");
}
if(this == ModItems.upgrade_screm) {
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("It's like in Super Mario where all blocks are");
list.add("actually Toads, but here it's Half-Life scientists");
list.add("and they scream. A lot.");
}
if(this == ModItems.upgrade_nullifier) {
list.add(EnumChatFormatting.RED + "Mining Laser Upgrade");
list.add("50% chance to override worthless items with /dev/zero");
list.add("50% chance to move worthless items to /dev/null");
}
if(this == ModItems.upgrade_gc_speed) {
list.add(EnumChatFormatting.RED + "Gas Centrifuge Upgrade");
list.add("Allows for total isotopic separation of HEUF6");
list.add(EnumChatFormatting.YELLOW + "also your centrifuge goes sicko mode");
}
}
public static enum UpgradeType {
SPEED,
EFFECT,
POWER,
FORTUNE,
AFTERBURN,
OVERDRIVE,
SPECIAL,
LM_DESROYER,
LM_SCREM,
LM_SMELTER(true),
LM_SHREDDER(true),
LM_CENTRIFUGE(true),
LM_CRYSTALLIZER(true),
GS_SPEED;
public boolean mutex = false;
private UpgradeType() { }
private UpgradeType(boolean mutex) {
this.mutex = mutex;
}
}
}