Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.genuineflix.metal.registry;
- import java.util.ArrayList;
- import java.util.List;
- import net.minecraft.block.Block;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemBlock;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.nbt.NBTTagList;
- import com.genuineflix.metal.api.IMetal;
- class Metal implements IMetal {
- private String name;
- private String displayName;
- private Block ore;
- private Block block;
- private Item dust;
- private Item ingot;
- private Item nugget;
- private Generation generation;
- private List<Compound> compounds;
- Metal(final String name) {
- this.name = name;
- displayName = name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase();
- }
- Metal(final String name, final Generation generation, final Compound... compounds) {
- this.name = name;
- displayName = name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase();
- setGeneration(generation);
- setCompounds(compounds);
- }
- @Override
- public String getName() {
- return name;
- }
- @Override
- public String getDisplayName() {
- return displayName;
- }
- @Override
- public List<Compound> getCompounds() {
- return compounds;
- }
- @Override
- public Generation getGeneration() {
- return generation;
- }
- @Override
- public boolean isComposite() {
- return compounds != null && compounds.size() > 0;
- }
- @Override
- public void setCompounds(final Compound... compounds) {
- this.compounds = new ArrayList<Compound>();
- for (int i = 0; i < compounds.length; i++) {
- final Compound compound = compounds[i];
- if (!this.compounds.isEmpty() && this.compounds.contains(compound))
- this.compounds.get(this.compounds.indexOf(compound)).factor++;
- else
- this.compounds.add(compound);
- }
- }
- @Override
- public void setGeneration(final Generation generation) {
- this.generation = generation;
- }
- public void setCompounds(final List<Compound> compounds) {
- this.compounds = compounds;
- }
- void finallize() {
- if (generation == null)
- return;
- ore.setHardness(generation.hardness);
- ore.setResistance(generation.resistance);
- block.setHardness(generation.hardness);
- block.setResistance(generation.resistance);
- }
- @Override
- public Block getOre() {
- return ore;
- }
- @Override
- public Block getBlock() {
- return block;
- }
- @Override
- public Item getDust() {
- return dust;
- }
- @Override
- public Item getIngot() {
- return ingot;
- }
- @Override
- public Item getNugget() {
- return nugget;
- }
- void setOre(final Block ore) {
- this.ore = ore;
- }
- void setBlock(final Block block) {
- this.block = block;
- }
- void setDust(final Item dust) {
- this.dust = dust;
- }
- void setIngot(final Item ingot) {
- this.ingot = ingot;
- }
- void setNugget(final Item nugget) {
- this.nugget = nugget;
- }
- @Override
- public NBTTagCompound save(final NBTTagCompound data) {
- data.setString("class", this.getClass().getName());
- data.setString("name", name);
- data.setString("displayName", displayName);
- data.setTag("ore", new ItemStack(ore).writeToNBT(new NBTTagCompound()));
- data.setTag("block", new ItemStack(block).writeToNBT(new NBTTagCompound()));
- data.setTag("dust", new ItemStack(dust).writeToNBT(new NBTTagCompound()));
- data.setTag("ingot", new ItemStack(ingot).writeToNBT(new NBTTagCompound()));
- data.setTag("nugget", new ItemStack(nugget).writeToNBT(new NBTTagCompound()));
- if (generation != null)
- data.setTag("generation", generation.save(new NBTTagCompound()));
- if (compounds != null && !compounds.isEmpty()) {
- final NBTTagList comps = new NBTTagList();
- for (int i = 0; i < compounds.size(); i++)
- comps.appendTag(compounds.get(i).save(new NBTTagCompound()));
- data.setTag("compounds", comps);
- }
- return data;
- }
- @Override
- public Metal load(final NBTTagCompound data) {
- name = data.getString("name");
- displayName = data.getString("displayName");
- ore = ((ItemBlock) ItemStack.loadItemStackFromNBT(data.getCompoundTag("ore")).getItem()).field_150939_a;
- block = ((ItemBlock) ItemStack.loadItemStackFromNBT(data.getCompoundTag("block")).getItem()).field_150939_a;
- dust = ItemStack.loadItemStackFromNBT(data.getCompoundTag("dust")).getItem();
- ingot = ItemStack.loadItemStackFromNBT(data.getCompoundTag("ingot")).getItem();
- nugget = ItemStack.loadItemStackFromNBT(data.getCompoundTag("nugget")).getItem();
- if (data.hasKey("generation"))
- generation = new Generation().load(data.getCompoundTag("generation"));
- if (data.hasKey("compounds")) {
- final NBTTagList list = data.getTagList("compounds", 10);
- final List<Compound> compounds = new ArrayList<Compound>();
- for (int i = 0; i < list.tagCount(); i++)
- compounds.add(new Compound().load(list.getCompoundTagAt(i)));
- this.compounds = compounds;
- }
- return this;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement