aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/sc2/items/ItemCartModuleEx.java
blob: 3da322536074d3c8227d53ee6a543a1e9e2eeb29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package gtPlusPlus.xmod.sc2.items;

import vswe.stevescarts.TileEntities.TileEntityCartAssembler;
import net.minecraft.entity.player.EntityPlayer;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import vswe.stevescarts.ModuleData.ModuleData;
import vswe.stevescarts.ModuleData.ModuleDataLoader;

import net.minecraft.item.ItemStack;
import net.minecraft.creativetab.CreativeTabs;
import vswe.stevescarts.Items.ItemCartModule;

import net.minecraft.util.IIcon;

import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.creative.AddToCreativeTab;

import net.minecraft.item.Item;

public class ItemCartModuleEx extends ItemCartModule {
	IIcon unknownIcon;

	public ItemCartModuleEx() {
		this.setCreativeTab(AddToCreativeTab.tabMisc);
	}

	public String getName(final ItemStack par1ItemStack) {
		final ModuleData data = this.getModuleData(par1ItemStack, true);
		if (data == null) {
			return "Unknown SC2 module";
		}
		return data.getName();
	}

	@SideOnly(Side.CLIENT)
	public IIcon getIconFromDamage(final int dmg) {
		final ModuleData data = ModuleData.getList().get((byte) dmg);
		if (data != null) {
			return data.getIcon();
		}
		return this.unknownIcon;
	}

	@SideOnly(Side.CLIENT)
	public void registerIcons(final IIconRegister register) {
		for (final ModuleData module : ModuleDataLoader.moduleListCustom.values()) {			
			final StringBuilder sb = new StringBuilder();
			String x = (sb.append("stevescarts").append(":").append(module.getRawName()).append("_icon").toString());
			Logger.REFLECTION("Icon Path for Module: "+x);
			module.createIcon(register);
		}
		final StringBuilder sb = new StringBuilder();
		this.unknownIcon = register
				.registerIcon(sb.append("stevescarts").append(":").append("unknown_icon").toString());
	}

	public String getUnlocalizedName() {
		return "item.SC2:unknownexoticmodule";
	}

	public String getUnlocalizedName(final ItemStack item) {
		final ModuleData data = this.getModuleData(item, true);
		if (data != null) {
			return "item.SC2:" + data.getRawName();
		}
		return this.getUnlocalizedName();
	}

	@SideOnly(Side.CLIENT)
	public void getSubItems(final Item item, final CreativeTabs par2CreativeTabs, final List par3List) {
		for (final ModuleData module : ModuleDataLoader.getList().values()) {
			if (module.getIsValid()) {
				par3List.add(module.getItemStack());
			}
		}
	}

	@SideOnly(Side.CLIENT)
	public void addInformation(final ItemStack par1ItemStack, final EntityPlayer par2EntityPlayer, final List par3List,
			final boolean par4) {
		final ModuleData module = this.getModuleData(par1ItemStack, true);
		if (module != null) {
			module.addInformation(par3List, par1ItemStack.getTagCompound());
		} else if (par1ItemStack != null && par1ItemStack.getItem() instanceof ItemCartModuleEx) {
			par3List.add("Module id " + par1ItemStack.getItemDamage());
		} else {
			par3List.add("Unknown exotic module id");
		}
	}

	public ModuleData getModuleData(final ItemStack itemstack, final boolean ignoreSize) {
		if (itemstack != null && itemstack.getItem() instanceof ItemCartModuleEx
				&& (ignoreSize || itemstack.stackSize != TileEntityCartAssembler.getRemovedSize())) {
			return ModuleData.getList().get((byte) itemstack.getItemDamage());
		}
		return null;
	}

}