package gtPlusPlus.core.material;
import static gregtech.api.enums.GT_Values.M;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import gregtech.api.enums.*;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.item.base.cell.BaseItemCell;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.data.StringUtils;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_Aspects;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
public class Material {
public static final Set<Material> mMaterialMap = new HashSet<Material>();
private String unlocalizedName;
private String localizedName;
private MaterialState materialState;
private TextureSet textureSet;
private Fluid vMoltenFluid;
private Fluid vPlasma;
private boolean vGenerateCells;
protected Object dataVar = MathUtils.generateSingularRandomHexValue();
private ArrayList<MaterialStack> vMaterialInput = new ArrayList<>();
public long[] vSmallestRatio;
public short vComponentCount;
private short[] RGBA;
private boolean usesBlastFurnace;
public boolean isRadioactive;
public byte vRadiationLevel;
private int meltingPointK;
private int boilingPointK;
private int meltingPointC;
private int boilingPointC;
private long vProtons;
private long vNeutrons;
private long vMass;
public int smallestStackSizeWhenProcessing; //Add a check for <=0 || > 64
public int vTier;
public int vVoltageMultiplier;
public String vChemicalFormula;
public String vChemicalSymbol;
public long vDurability;
public int vToolQuality;
public int vHarvestLevel;
private GTPP_Aspects[] vAspects;
public static AutoMap<Materials> invalidMaterials = new AutoMap<Materials>();
public Material(String materialName, MaterialState defaultState, short[] rgba, int radiationLevel, MaterialStack[] materialStacks) {
this(materialName, defaultState, null, 0, rgba, -1, -1, -1, -1, false, "", radiationLevel, false, materialStacks);
}
public Material(String materialName, MaterialState defaultState, short[] rgba, int j, int k, int l, int m, int radiationLevel, MaterialStack[] materialStacks){
this(materialName, defaultState, null, 0, rgba, j, k, l, m, false, "", radiationLevel, false, materialStacks);
}
public Material(String materialName, MaterialState defaultState, final TextureSet set, short[] rgba, int j, int k, int l, int m, int radiationLevel, MaterialStack[] materialStacks){
this(materialName, defaultState, set, 0, rgba, j, k, l, m, false, "", radiationLevel, false, materialStacks);
}
public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final