2023-08-21 16:04:25 +02:00

113 lines
5.1 KiB
Java

package com.hbm.items.special;
import com.hbm.items.ItemEnumMulti;
import com.hbm.items.special.ItemByproduct.EnumByproduct;
import static com.hbm.items.special.ItemByproduct.EnumByproduct.*;
import java.util.Locale;
import com.hbm.lib.RefStrings;
import com.hbm.util.EnumUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
public class ItemBedrockOre extends ItemEnumMulti {
protected IIcon overlayIcon;
public ItemBedrockOre() {
super(EnumBedrockOre.class, false, false);
}
@Override
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses() {
return true;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister p_94581_1_) {
super.registerIcons(p_94581_1_);
this.overlayIcon = p_94581_1_.registerIcon(RefStrings.MODID + ":ore_overlay");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamageForRenderPass(int meta, int pass) {
return pass == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(meta, pass);
}
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack stack, int pass) {
if(pass == 1) {
EnumBedrockOre ore = EnumUtil.grabEnumSafely(EnumBedrockOre.class, stack.getItemDamage());
return ore.color;
}
return 0xffffff;
}
@Override
public String getItemStackDisplayName(ItemStack stack) {
EnumBedrockOre ore = EnumUtil.grabEnumSafely(EnumBedrockOre.class, stack.getItemDamage());
String oreName = StatCollector.translateToLocal("item.ore." + ore.oreName.toLowerCase(Locale.US));
return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", oreName);
}
/*
* BYPRODUCT TIER 1: NITRIC ACID - CHEMPLANT GATE / NO GATE
* BYPRODUCT TIER 2: ORGANIC SOLVENT - CRACKING OIL GATE
* BYPRODUCT TIER 3: HIPERF SOLVENT - RBMK GATE
* BYPRODUCT TIER 4: SCHRABIDIC ACID - FUSION GATE?
*/
/*
* [BEDROCK x1] -C-> [CENTRIFUGED x4] -(PER)-> [CLEANED x4] -C-> [SEPARATED x16] -(SUL)-> [PURIFIED x16] -C-> [ENRICHED x64]
* \
* \-------(NIT)-> [NITRATED x16] -C-> [NITROCRYSTALLINE x32] -(ORG)-> [DEEP-CLEANED x32] -C-> [ENRICHED x64]
* v \ v
* [BYPRODUCT TIER 1] \ [BYPRODUCT TIER 2]
* \
* \-----------(HPS)-> [SEARED x32] -C-> [ENRICHED x64]
* v
* [BYPRODUCT TIER 3]
*/
public static enum EnumBedrockOre {
//Ore Byproduct 1, 2, 3
IRON("Iron", 0xE2C0AA, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite
COPPER("Copper", 0xEC9A63, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur
BORAX("Borax", 0xE4BE74, B_LITHIUM, B_CALCIUM, B_CALCIUM), //calcium from ulexite, uhhh lithium?
ASBESTOS("Asbestos", 0xBFBFB9, B_SILICON, B_SILICON, B_SILICON), //quartz i guess?
NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite
TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium
TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten
GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide
URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products
THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products
CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess?
FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM); //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings
public String oreName;
public int color;
public EnumByproduct[] byproducts;
/** Byproduct count must be consistent with current tier count, use NULL if no byproduct should be generated! */
private EnumBedrockOre(String name, int color, EnumByproduct... by) {
this.oreName = name;
this.color = color;
this.byproducts = by;
}
}
}