/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.common.blocks; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.util.IStringSerializable; import com.shinoow.abyssalcraft.lib.ACTabs; public class BlockACBasic extends Block { /** * Ultra-generic AbyssalCraft block * @param material Block material * @param tooltype Tool to harvest with * @param harvestlevel Harvest level required * @param hardness Block hardness * @param resistance Block resistance * @param stepsound Block step sound */ public BlockACBasic(Material material, String tooltype, int harvestlevel, float hardness, float resistance, SoundType stepsound) { this(material, tooltype, harvestlevel, hardness, resistance, stepsound, material.getMaterialMapColor()); } /** * Ultra-generic AbyssalCraft block * @param material Block material * @param hardness Block hardness * @param resistance Block resistance * @param stepsound Block step sound */ public BlockACBasic(Material material, float hardness, float resistance, SoundType stepsound) { this(material, hardness, resistance, stepsound, material.getMaterialMapColor()); } /** * Ultra-generic AbyssalCraft block * @param material Block material * @param tooltype Tool to harvest with * @param harvestlevel Harvest level required * @param hardness Block hardness * @param resistance Block resistance * @param stepsound Block step sound * @param mapColor Map Color */ public BlockACBasic(Material material, String tooltype, int harvestlevel, float hardness, float resistance, SoundType stepsound, MapColor mapColor) { this(material, hardness, resistance, stepsound, mapColor); setHarvestLevel(tooltype, harvestlevel); } /** * Ultra-generic AbyssalCraft block * @param material Block material * @param hardness Block hardness * @param resistance Block resistance * @param stepsound Block step sound * @param mapColor Map Color */ public BlockACBasic(Material material, float hardness, float resistance, SoundType stepsound, MapColor mapColor) { super(material, mapColor); setHardness(hardness); setResistance(resistance); setSoundType(stepsound); setCreativeTab(ACTabs.tabBlock); if(getHarvestTool(getDefaultState()) == null) if(material == Material.ROCK || material == Material.IRON || material == Material.ANVIL) setHarvestLevel("pickaxe", 0); else if(material == Material.GROUND || material == Material.GRASS || material == Material.SAND || material == Material.SNOW || material == Material.CRAFTED_SNOW) setHarvestLevel("shovel", 0); } public static enum EnumType implements IStringSerializable { GENERIC(0, "generic", MapColor.AIR); private static final EnumType[] META_LOOKUP = new EnumType[values().length]; private final int meta; private final String name; private final String unlocalizedName; private final MapColor mapColor; private EnumType(int meta, String name, MapColor mapColor) { this(meta, name, name, mapColor); } private EnumType(int meta, String name, String unlocalizedName, MapColor mapColor) { this.meta = meta; this.name = name; this.unlocalizedName = unlocalizedName; this.mapColor = mapColor; } public int getMetadata() { return meta; } public MapColor func_181070_c() { return mapColor; } @Override public String toString() { return name; } public static EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) meta = 0; return META_LOOKUP[meta]; } @Override public String getName() { return name; } public String getUnlocalizedName() { return unlocalizedName; } static { for (EnumType enumtype : values()) META_LOOKUP[enumtype.getMetadata()] = enumtype; } } }