package com.bioxx.tfc2;
import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fml.common.registry.GameRegistry;
import com.bioxx.tfc2.api.types.WoodType;
import com.bioxx.tfc2.blocks.*;
import com.bioxx.tfc2.blocks.terrain.*;
import com.bioxx.tfc2.blocks.vanilla.BlockTorchTFC;
import com.bioxx.tfc2.items.itemblocks.*;
import com.bioxx.tfc2.tileentities.TileAnvil;
import com.bioxx.tfc2.tileentities.TileCrop;
import com.bioxx.tfc2.tileentities.TileFarmland;
import com.bioxx.tfc2.tileentities.TileTorch;
public class TFCBlocks
{
public static ArrayList<Block> stairsList;
public static Block Dirt;
public static Block Grass;
public static Block Stone;
public static Block Rubble;
public static Block Sand;
public static Block Gravel;
public static Block Planks;
public static Block Planks2;
public static Block Effect;
public static Block Vegetation;
public static Block LooseRocks;
public static Block Sapling;
public static Block Sapling2;
public static Block LogNatural;
public static Block LogNatural2;
public static Block LogNaturalPalm;
public static Block LogVertical;
public static Block LogVertical2;
public static Block LogHorizontal;
public static Block LogHorizontal2;
public static Block LogHorizontal3;
public static Block Leaves;
public static Block Leaves2;
public static Block Ore;
public static Block ClimbingRocks;
public static Block StoneBrick;
public static Block StoneSmooth;
public static Block Portal;
public static Block PortalStone;
public static Block TorchOn;
public static Block TorchOff;
public static Block Crop;
public static Block Farmland;
public static Block SupportBeam;
public static Block SupportBeam2;
public static Block SupportBeam3;
public static Block StairsAsh;
public static Block StairsAspen;
public static Block StairsBirch;
public static Block StairsChestnut;
public static Block StairsDouglasFir;
public static Block StairsHickory;
public static Block StairsMaple;
public static Block StairsOak;
public static Block StairsPine;
public static Block StairsSequoia;
public static Block StairsSpruce;
public static Block StairsSycamore;
public static Block StairsWhiteCedar;
public static Block StairsWillow;
public static Block StairsKapok;
public static Block StairsAcacia;
public static Block StairsRosewood;
public static Block StairsBlackwood;
public static Block StairsPalm;
public static Block Anvil;
public static Block StoneStalag;
public static Block StoneStalac;
public static void LoadBlocks()
{
TFC.log.info(new StringBuilder().append("[TFC2] Loading Blocks").toString());
// Unlocalized names should be lowercase, and separated by underscores. "this_is_an_example"
Dirt = new BlockDirt().setHardness(2F).setUnlocalizedName("dirt");
Grass = new BlockGrass().setHardness(2F).setUnlocalizedName("grass");
Stone = new BlockStone().setHardness(5F).setUnlocalizedName("stone");
Rubble = new BlockRubble().setHardness(6F).setUnlocalizedName("rubble");
Sand = new BlockSand().setRegistryName("sand").setHardness(1F).setUnlocalizedName("sand");
Gravel = new BlockGravel().setHardness(1F).setUnlocalizedName("gravel");
Planks = new BlockPlanks().setHardness(4F).setUnlocalizedName("planks");
Planks2 = new BlockPlanks2().setHardness(4F).setUnlocalizedName("planks2");
Effect = new BlockEffect().setHardness(0.1F).setUnlocalizedName("effect");
Vegetation = new BlockVegetation().setHardness(0.1F).setUnlocalizedName("vegetation");
LooseRocks = new BlockLooseRocks().setHardness(0.2F).setUnlocalizedName("loose_rock");
Sapling = new BlockSapling().setHardness(0.1F).setUnlocalizedName("sapling");
Sapling2 = new BlockSapling2().setHardness(0.1F).setUnlocalizedName("sapling2");
LogNatural = new BlockLogNatural().setHardness(6F).setUnlocalizedName("log_natural");
LogNatural2 = new BlockLogNatural2().setHardness(6F).setUnlocalizedName("log_natural2");
LogNaturalPalm = new BlockLogNaturalPalm().setHardness(6F).setUnlocalizedName("log_naturalpalm");
LogVertical = new BlockLogVertical().setHardness(2F).setUnlocalizedName("log_vertical");
LogVertical2 = new BlockLogVertical2().setHardness(2F).setUnlocalizedName("log_vertical2");
LogHorizontal = new BlockLogHorizontal().setHardness(2F).setUnlocalizedName("log_horizontal");
LogHorizontal2 = new BlockLogHorizontal2().setHardness(2F).setUnlocalizedName("log_horizontal2");
LogHorizontal3 = new BlockLogHorizontal3().setHardness(2F).setUnlocalizedName("log_horizontal3");
Leaves = new BlockLeaves().setHardness(0.1F).setUnlocalizedName("leaves");
Leaves2 = new BlockLeaves2().setHardness(0.1F).setUnlocalizedName("leaves2");
Ore = new BlockOre().setHardness(5F).setUnlocalizedName("ore");
ClimbingRocks = new BlockClimbingRocks().setHardness(0.2F).setUnlocalizedName("climbing_rock");
StoneBrick = new BlockStoneBrick().setHardness(5F).setResistance(5f).setUnlocalizedName("stonebrick");
StoneSmooth = new BlockStoneSmooth().setHardness(5F).setResistance(5f).setUnlocalizedName("stonesmooth");
Portal = new BlockPortal().setHardness(-1F).setResistance(6000000f).setUnlocalizedName("portal").setLightOpacity(3).setLightLevel(0.5f);
PortalStone = new BlockPortalStone().setHardness(-1F).setResistance(6000000f).setUnlocalizedName("portalstone");
TorchOn = new BlockTorchTFC(true).setHardness(0.0F).setUnlocalizedName("torch_on");
TorchOff = new BlockTorchTFC(false).setHardness(0.0F).setUnlocalizedName("torch_off");
Crop = new BlockCrop().setRegistryName("crop").setHardness(0.1F).setUnlocalizedName("crop");
Farmland = new BlockFarmland().setHardness(2F).setUnlocalizedName("farmland");
SupportBeam = new BlockWoodSupport().setHardness(2F).setUnlocalizedName("wood_support");
SupportBeam2 = new BlockWoodSupport2().setHardness(2F).setUnlocalizedName("wood_support2");
SupportBeam3 = new BlockWoodSupport3().setHardness(2F).setUnlocalizedName("wood_support3");
StairsAsh = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Ash)).setUnlocalizedName("stairs_ash");
StairsAspen = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Aspen)).setUnlocalizedName("stairs_aspen");
StairsBirch = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Birch)).setUnlocalizedName("stairs_birch");
StairsChestnut = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Chestnut)).setUnlocalizedName("stairs_chestnut");
StairsDouglasFir = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.DouglasFir)).setUnlocalizedName("stairs_douglasfir");
StairsHickory = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Hickory)).setUnlocalizedName("stairs_hickory");
StairsMaple = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Maple)).setUnlocalizedName("stairs_maple");
StairsOak = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Oak)).setUnlocalizedName("stairs_oak");
StairsPine = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Pine)).setUnlocalizedName("stairs_pine");
StairsSequoia = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Sequoia)).setUnlocalizedName("stairs_sequoia");
StairsSpruce = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Spruce)).setUnlocalizedName("stairs_spruce");
StairsSycamore = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Sycamore)).setUnlocalizedName("stairs_sycamore");
StairsWhiteCedar = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.WhiteCedar)).setUnlocalizedName("stairs_whitecedar");
StairsWillow = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Willow)).setUnlocalizedName("stairs_willow");
StairsKapok = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Kapok)).setUnlocalizedName("stairs_kapok");
StairsAcacia = new BlockStairsTFC(Planks.getDefaultState().withProperty(BlockPlanks.META_PROPERTY, WoodType.Acacia)).setUnlocalizedName("stairs_acacia");
StairsRosewood = new BlockStairsTFC(Planks2.getDefaultState().withProperty(BlockPlanks2.META_PROPERTY, WoodType.Rosewood)).setUnlocalizedName("stairs_rosewood");
StairsBlackwood = new BlockStairsTFC(Planks2.getDefaultState().withProperty(BlockPlanks2.META_PROPERTY, WoodType.Blackwood)).setUnlocalizedName("stairs_blackwood");
StairsPalm = new BlockStairsTFC(Planks2.getDefaultState().withProperty(BlockPlanks2.META_PROPERTY, WoodType.Palm)).setUnlocalizedName("stairs_palm");
Anvil = new BlockAnvil().setHardness(4F).setUnlocalizedName("anvil");
StoneStalag = new BlockStoneStalag().setHardness(5F).setUnlocalizedName("stoneStalag");
StoneStalac = new BlockStoneStalac().setHardness(5F).setUnlocalizedName("stoneStalac");
}
public static void RegisterBlocks()
{
TFC.log.info(new StringBuilder().append("[TFC2] Registering Blocks").toString());
// Block registration strings should be lowercase, and separated by underscores. "this_is_an_example"
// Preferably these strings should be identical to the corresponding unlocalized name.
register(Dirt, ItemSoil.class);
register(Grass, ItemSoil.class);
register(Stone, ItemStone.class);
register(Rubble, ItemStone.class);
register(Sand, ItemStone.class);
register(Gravel, ItemStone.class);
register(Planks, ItemWood.class);
register(Planks2, ItemWood.class);
register(Effect, ItemOre.class);
register(Vegetation);
register(LooseRocks, ItemStone.class);
register(Sapling, ItemWood.class);
register(Sapling2, ItemWood.class);
register(LogNatural, ItemWood.class);
register(LogNatural2, ItemWood.class);
register(LogNaturalPalm, ItemWood.class);
register(LogVertical, ItemWood.class);
register(LogVertical2, ItemWood.class);
register(LogHorizontal, ItemWood.class);
register(LogHorizontal2, ItemWood.class);
register(LogHorizontal3, ItemWood.class);
register(Leaves, ItemWood.class);
register(Leaves2, ItemWood.class);
register(Ore, ItemOre.class);
register(ClimbingRocks);
register(StoneBrick, ItemStone.class);
register(StoneSmooth, ItemStone.class);
register(Portal);
register(PortalStone);
register(TorchOn, ItemBlock.class);
register(TorchOff, ItemBlock.class);
register(Crop);
register(Farmland);
register(SupportBeam, ItemWoodSupport.class);
register(SupportBeam2, ItemWoodSupport.class);
register(SupportBeam3, ItemWoodSupport.class);
register(Anvil, ItemBlock.class);
register(StoneStalag, ItemStone.class);
register(StoneStalac, ItemStone.class);
stairsList = new ArrayList<Block>();
stairsList.add(register(StairsAsh, ItemBlock.class));
stairsList.add(register(StairsAspen, ItemBlock.class));
stairsList.add(register(StairsBirch, ItemBlock.class));
stairsList.add(register(StairsChestnut, ItemBlock.class));
stairsList.add(register(StairsDouglasFir, ItemBlock.class));
stairsList.add(register(StairsHickory, ItemBlock.class));
stairsList.add(register(StairsMaple, ItemBlock.class));
stairsList.add(register(StairsOak, ItemBlock.class));
stairsList.add(register(StairsPine, ItemBlock.class));
stairsList.add(register(StairsSequoia, ItemBlock.class));
stairsList.add(register(StairsSpruce, ItemBlock.class));
stairsList.add(register(StairsSycamore, ItemBlock.class));
stairsList.add(register(StairsWhiteCedar, ItemBlock.class));
stairsList.add(register(StairsWillow, ItemBlock.class));
stairsList.add(register(StairsKapok, ItemBlock.class));
stairsList.add(register(StairsAcacia, ItemBlock.class));
stairsList.add(register(StairsRosewood, ItemBlock.class));
stairsList.add(register(StairsBlackwood, ItemBlock.class));
stairsList.add(register(StairsPalm, ItemBlock.class));
Stone.setHarvestLevel("pickaxe", 1);
StoneStalag.setHarvestLevel("pickaxe", 1);
StoneStalac.setHarvestLevel("pickaxe", 1);
LogNatural.setHarvestLevel("axe", 1);
LogNatural2.setHarvestLevel("axe", 1);
LogNaturalPalm.setHarvestLevel("axe", 1);
LogVertical.setHarvestLevel("axe", 1);
LogVertical2.setHarvestLevel("axe", 1);
LogHorizontal.setHarvestLevel("axe", 1);
LogHorizontal2.setHarvestLevel("axe", 1);
LogHorizontal3.setHarvestLevel("axe", 1);
SupportBeam.setHarvestLevel("axe", 1);
SupportBeam2.setHarvestLevel("axe", 1);
SupportBeam3.setHarvestLevel("axe", 1);
}
private static Block register(Block b, Class<? extends ItemBlock> i)
{
try
{
GameRegistry.register(b);
ItemBlock ib = i.getDeclaredConstructor(Block.class).newInstance(b);
GameRegistry.register(ib, b.getRegistryName());
}
catch (Exception e)
{
e.printStackTrace();
}
return b;
}
private static Block register(Block b)
{
return (Block) GameRegistry.register(b);
}
public static void RegisterTileEntites()
{
registerTileEntity(TileTorch.class, "torch");
registerTileEntity(TileCrop.class, "crop");
registerTileEntity(TileFarmland.class, "farmland");
registerTileEntity(TileAnvil.class, "anvil");
}
private static void registerTileEntity(Class<? extends TileEntity> c, String id)
{
GameRegistry.registerTileEntity(c, Reference.ModID+":"+id);
}
}