diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java index da7713b81..ec26b1d4e 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -1,12 +1,14 @@ package com.hbm.items.special; import static com.hbm.inventory.OreDictManager.*; +import static com.hbm.items.special.ItemBedrockOreNew.ProcessingTrait.*; import java.util.List; import java.util.Locale; import com.hbm.items.ModItems; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -23,6 +25,7 @@ import com.hbm.render.icon.TextureAtlasSpriteMutatable; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; @@ -30,8 +33,9 @@ import net.minecraft.util.StatCollector; import net.minecraftforge.oredict.OreDictionary; public class ItemBedrockOreNew extends Item { - + public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length]; + public IIcon[] overlays = new IIcon[ProcessingTrait.values().length]; public ItemBedrockOreNew() { this.setHasSubtypes(true); @@ -55,6 +59,11 @@ public class ItemBedrockOreNew extends Item { } } } + + for(int i = 0; i < overlays.length; i++) { + ProcessingTrait trait = ProcessingTrait.values()[i]; + overlays[i] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_overlay." + trait.name().toLowerCase(Locale.US)); + } } @Override @@ -68,6 +77,23 @@ public class ItemBedrockOreNew extends Item { } } + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int metadata) { + return 1 + this.getGrade(metadata).traits.length; + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + if(pass == 0) return this.getIconFromDamage(meta); + return this.overlays[this.getGrade(meta).traits[pass - 1].ordinal()]; + } + @Override @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int meta) { @@ -81,6 +107,14 @@ public class ItemBedrockOreNew extends Item { String type = StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".type." + this.getType(meta).suffix + ".name"); return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".grade." + this.getGrade(meta).name().toLowerCase(Locale.US) + ".name", type); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + for(ProcessingTrait trait : this.getGrade(stack.getItemDamage()).traits) { + list.add(I18nUtil.resolveKey(this.getUnlocalizedNameInefficiently(stack) + ".trait." + trait.name().toLowerCase(Locale.US))); + } + } public static enum BedrockOreType { // primary sulfuric solvent radsolvent @@ -147,6 +181,7 @@ public class ItemBedrockOreNew extends Item { @Override @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass != 0) return 0xFFFFFF; BedrockOreGrade grade = this.getGrade(stack.getItemDamage()); return grade.tint; } @@ -156,43 +191,55 @@ public class ItemBedrockOreNew extends Item { public static final int arc = 0xC3A2A2; public static final int washed = 0xDBE2CB; + public static enum ProcessingTrait { + ROASTED, + ARC, + WASHED, + CENTRIFUGED, + SULFURIC, + SOLVENT, + RAD + } + public static enum BedrockOreGrade { - BASE(none, "base"), //from the slopper - BASE_ROASTED(roasted, "base"), //optional combination oven step, yields vitriol - BASE_WASHED(washed, "base"), //primitive-ass acidizer with water - PRIMARY(none, "primary"), //centrifuging for more primary - PRIMARY_ROASTED(roasted, "primary"), //optional comboven - PRIMARY_SULFURIC(0xFFFFD3, "primary"), //sulfuric acid - PRIMARY_NOSULFURIC(0xD3D4FF, "primary"),//from centrifuging, sulfuric byproduct removed - PRIMARY_SOLVENT(0xD3F0FF, "primary"), //solvent - PRIMARY_NOSOLVENT(0xFFDED3, "primary"), //solvent byproduct removed - PRIMARY_RAD(0xECFFD3, "primary"), //radsolvent - PRIMARY_NORAD(0xEBD3FF, "primary"), //radsolvent byproduct removed - PRIMARY_FIRST(0xFFD3D4, "primary"), //higher first material yield - PRIMARY_SECOND(0xD3FFEB, "primary"), //higher second material yield - CRUMBS(none, "crumbs"), //endpoint for primary, recycling + BASE(none, "base"), //from the slopper + BASE_ROASTED(roasted, "base", ROASTED), //optional combination oven step, yields vitriol + BASE_WASHED(washed, "base", WASHED), //primitive-ass acidizer with water + PRIMARY(none, "primary", CENTRIFUGED), //centrifuging for more primary + PRIMARY_ROASTED(roasted, "primary", ROASTED), //optional comboven + PRIMARY_SULFURIC(0xFFFFD3, "primary", SULFURIC), //sulfuric acid + PRIMARY_NOSULFURIC(0xD3D4FF, "primary", CENTRIFUGED, SULFURIC), //from centrifuging, sulfuric byproduct removed + PRIMARY_SOLVENT(0xD3F0FF, "primary", SOLVENT), //solvent + PRIMARY_NOSOLVENT(0xFFDED3, "primary", CENTRIFUGED, SOLVENT), //solvent byproduct removed + PRIMARY_RAD(0xECFFD3, "primary", RAD), //radsolvent + PRIMARY_NORAD(0xEBD3FF, "primary", CENTRIFUGED, RAD), //radsolvent byproduct removed + PRIMARY_FIRST(0xFFD3D4, "primary", CENTRIFUGED), //higher first material yield + PRIMARY_SECOND(0xD3FFEB, "primary", CENTRIFUGED), //higher second material yield + CRUMBS(none, "crumbs", CENTRIFUGED), //endpoint for primary, recycling - SULFURIC_BYPRODUCT(none, "sulfuric"), //from centrifuging - SULFURIC_ROASTED(roasted, "sulfuric"), //comboven again - SULFURIC_ARC(arc, "sulfuric"), //alternate step - SULFURIC_WASHED(washed, "sulfuric"), //sulfuric endpoint + SULFURIC_BYPRODUCT(none, "sulfuric", CENTRIFUGED, SULFURIC), //from centrifuging + SULFURIC_ROASTED(roasted, "sulfuric", ROASTED, SULFURIC), //comboven again + SULFURIC_ARC(arc, "sulfuric", ARC, SULFURIC), //alternate step + SULFURIC_WASHED(washed, "sulfuric", WASHED, SULFURIC), //sulfuric endpoint - SOLVENT_BYPRODUCT(none, "solvent"), //from centrifuging - SOLVENT_ROASTED(roasted, "solvent"), //comboven again - SOLVENT_ARC(arc, "solvent"), //alternate step - SOLVENT_WASHED(washed, "solvent"), //solvent endpoint + SOLVENT_BYPRODUCT(none, "solvent", CENTRIFUGED, SOLVENT), //from centrifuging + SOLVENT_ROASTED(roasted, "solvent", ROASTED, SOLVENT), //comboven again + SOLVENT_ARC(arc, "solvent", ARC, SOLVENT), //alternate step + SOLVENT_WASHED(washed, "solvent", WASHED, SOLVENT), //solvent endpoint - RAD_BYPRODUCT(none, "rad"), //from centrifuging - RAD_ROASTED(roasted, "rad"), //comboven again - RAD_ARC(arc, "rad"), //alternate step - RAD_WASHED(washed, "rad"); //rad endpoint + RAD_BYPRODUCT(none, "rad", CENTRIFUGED, RAD), //from centrifuging + RAD_ROASTED(roasted, "rad", ROASTED, RAD), //comboven again + RAD_ARC(arc, "rad", ARC, RAD), //alternate step + RAD_WASHED(washed, "rad", WASHED, RAD); //rad endpoint public int tint; public String prefix; + public ProcessingTrait[] traits; - private BedrockOreGrade(int tint, String prefix) { + private BedrockOreGrade(int tint, String prefix, ProcessingTrait... traits) { this.tint = tint; this.prefix = prefix; + this.traits = traits; } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7c6fd6b3a..8e784c2b7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1999,6 +1999,13 @@ item.bedrock_ore.grade.rad_byproduct.name=%s Bedrock Ore, Cleaned Byproduct item.bedrock_ore.grade.rad_roasted.name=%s Bedrock Ore, Roasted Cleaned Byproduct item.bedrock_ore.grade.rad_arc.name=%s Bedrock Ore, Seared Cleaned Byproduct item.bedrock_ore.grade.rad_washed.name=%s Bedrock Ore, Washed Cleaned Byproduct +item.bedrock_ore.trait.arc=§6Arc Smelted +item.bedrock_ore.trait.centrifuged=§9Centrifuged +item.bedrock_ore.trait.rad=§aTreated with High-Performance Solvent +item.bedrock_ore.trait.roasted=§eCombination Oven Roasted +item.bedrock_ore.trait.solvent=§fTreated with Solvent +item.bedrock_ore.trait.sulfuric=§6Treated with Sulfuric Acid +item.bedrock_ore.trait.washed=§bWashed item.bedrock_ore.type.actinide.name=Actinide item.bedrock_ore.type.crystal.name=Crystalline item.bedrock_ore.type.heavy.name=Heavy Metal diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.arc.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.arc.png new file mode 100644 index 000000000..77aba4494 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.arc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.centrifuged.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.centrifuged.png new file mode 100644 index 000000000..a739ce09c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.centrifuged.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.rad.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.rad.png new file mode 100644 index 000000000..86e67e437 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.rad.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.roasted.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.roasted.png new file mode 100644 index 000000000..3c1ec46ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.roasted.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.solvent.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.solvent.png new file mode 100644 index 000000000..95f45567c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.solvent.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.sulfuric.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.sulfuric.png new file mode 100644 index 000000000..5eaa9ba1b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.sulfuric.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.washed.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.washed.png new file mode 100644 index 000000000..14b860e0c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.washed.png differ