Files
Binnie/src/main/java/binnie/extratrees/block/ModuleBlocks.java
T
Alexander Kornilov 2f683650c0 [1.7.10] Added some localization (#86)
* Added some localization
us_GB lang files cleanup

* Fix compile errors

* Some refactoring

* Added some localization
Some refactoring
2017-06-02 22:50:03 -07:00

143 lines
7.1 KiB
Java

package binnie.extratrees.block;
import binnie.core.BinnieCore;
import binnie.core.IInitializable;
import binnie.core.Mods;
import binnie.core.block.ItemMetadata;
import binnie.core.block.ItemMetadataRenderer;
import binnie.core.block.TileEntityMetadata;
import binnie.core.liquid.ILiquidType;
import binnie.extratrees.ExtraTrees;
import binnie.extratrees.block.decor.BlockFence;
import binnie.extratrees.block.decor.BlockGate;
import binnie.extratrees.block.decor.BlockMultiFence;
import binnie.extratrees.block.decor.FenceRenderer;
import binnie.extratrees.block.decor.FenceType;
import binnie.extratrees.block.decor.HedgeRenderer;
import binnie.extratrees.block.decor.MultiFenceRecipeEmbedded;
import binnie.extratrees.block.decor.MultiFenceRecipeSize;
import binnie.extratrees.block.decor.MultiFenceRecipeSolid;
import binnie.extratrees.item.ExtraTreeLiquid;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.GameRegistry;
import forestry.api.recipes.RecipeManagers;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.ShapedOreRecipe;
public class ModuleBlocks implements IInitializable {
public static int hedgeRenderID;
@Override
public void preInit() {
PlankType.setup();
ExtraTrees.blockPlanks = new BlockETPlanks();
ExtraTrees.blockFence = new BlockFence();
ExtraTrees.blockLog = new BlockETLog();
ExtraTrees.blockGate = new BlockGate();
ExtraTrees.blockDoor = new BlockETDoor();
ExtraTrees.blockMultiFence = new BlockMultiFence();
ExtraTrees.blockSlab = new BlockETSlab(false);
ExtraTrees.blockDoubleSlab = new BlockETSlab(true);
ExtraTrees.blockStairs = new BlockETStairs(ExtraTrees.blockPlanks);
GameRegistry.registerBlock(ExtraTrees.blockPlanks, ItemMetadata.class, "planks");
GameRegistry.registerBlock(ExtraTrees.blockFence, ItemMetadata.class, "fence");
GameRegistry.registerBlock(ExtraTrees.blockMultiFence, ItemMetadata.class, "multifence");
BinnieCore.proxy.registerCustomItemRenderer(Item.getItemFromBlock(ExtraTrees.blockMultiFence), new ItemMetadataRenderer());
GameRegistry.registerBlock(ExtraTrees.blockLog, ItemMetadata.class, "log");
GameRegistry.registerBlock(ExtraTrees.blockGate, ItemMetadata.class, "gate");
GameRegistry.registerBlock(ExtraTrees.blockSlab, ItemETSlab.class, "slab");
GameRegistry.registerBlock(ExtraTrees.blockDoubleSlab, ItemETSlab.class, "doubleSlab");
GameRegistry.registerBlock(ExtraTrees.blockDoor, ItemETDoor.class, "door");
GameRegistry.registerBlock(ExtraTrees.blockStairs, ItemETStairs.class, "stairs");
BinnieCore.proxy.registerCustomItemRenderer(Item.getItemFromBlock(ExtraTrees.blockStairs), new StairItemRenderer());
BinnieCore.proxy.registerCustomItemRenderer(Item.getItemFromBlock(ExtraTrees.blockGate), new GateItemRenderer());
for (ILogType plank : ILogType.ExtraTreeLog.values()) {
OreDictionary.registerOre("logWood", plank.getItemStack());
}
GameRegistry.addSmelting(ExtraTrees.blockLog, new ItemStack(Items.coal, 1, 1), 0.15f);
for (IPlankType plank2 : PlankType.ExtraTreePlanks.values()) {
OreDictionary.registerOre("plankWood", plank2.getStack());
}
FMLInterModComms.sendMessage("FORESTRY", "add-fence-block", "ExtraTrees:fence");
FMLInterModComms.sendMessage("FORESTRY", "add-fence-block", "ExtraTrees:gate");
// FMLInterModComms.sendMessage("FORESTRY", "add-alveary-slab",
// "ExtraTrees:slab");
FMLInterModComms.sendMessage("FORESTRY", "add-fence-block", "ExtraTrees:multifence");
ModuleBlocks.hedgeRenderID = BinnieCore.proxy.getUniqueRenderID();
}
@Override
public void init() {
ExtraTrees.fenceID = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new FenceRenderer());
ExtraTrees.stairsID = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new StairsRenderer());
ExtraTrees.doorRenderId = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new DoorBlockRenderer());
ExtraTrees.branchRenderId = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new BranchBlockRenderer());
RenderingRegistry.registerBlockHandler(new HedgeRenderer());
RecipeSorter.register("extratrees:multifence", MultiFenceRecipeSize.class, RecipeSorter.Category.SHAPED, "");
RecipeSorter.register("extratrees:multifence2", MultiFenceRecipeEmbedded.class, RecipeSorter.Category.SHAPED, "");
RecipeSorter.register("extratrees:multifence3", MultiFenceRecipeSolid.class, RecipeSorter.Category.SHAPED, "");
}
@Override
public void postInit() {
for (PlankType.ExtraTreePlanks plank : PlankType.ExtraTreePlanks.values()) {
ItemStack planks = plank.getStack();
ItemStack slabs = TileEntityMetadata.getItemStack(ExtraTrees.blockSlab, plank.ordinal());
ItemStack stairs = TileEntityMetadata.getItemStack(ExtraTrees.blockStairs, plank.ordinal());
stairs.stackSize = 4;
GameRegistry.addRecipe(stairs.copy(), "# ", "## ", "###", '#', planks.copy());
slabs.stackSize = 6;
CraftingManager.getInstance().getRecipeList().add(0, new ShapedOreRecipe(slabs.copy(), "###", '#', planks.copy()));
}
GameRegistry.addRecipe(new MultiFenceRecipeSize());
GameRegistry.addRecipe(new MultiFenceRecipeEmbedded());
GameRegistry.addRecipe(new MultiFenceRecipeSolid());
for (IPlankType plank2 : WoodManager.getAllPlankTypes()) {
ItemStack planks2 = plank2.getStack();
ItemStack fenceNormal = WoodManager.getFence(plank2, new FenceType(0), 1);
ItemStack gate = WoodManager.getGate(plank2);
ItemStack doorStandard = WoodManager.getDoor(plank2, DoorType.Standard);
ItemStack doorSolid = WoodManager.getDoor(plank2, DoorType.Solid);
ItemStack doorSplit = WoodManager.getDoor(plank2, DoorType.Double);
ItemStack doorFull = WoodManager.getDoor(plank2, DoorType.Full);
if (planks2 != null) {
if (gate == null) {
continue;
}
gate.stackSize = 1;
GameRegistry.addRecipe(gate.copy(), "fpf", 'f', fenceNormal.copy(), 'p', planks2.copy());
fenceNormal.stackSize = 4;
GameRegistry.addRecipe(fenceNormal.copy(), "###", "# #", '#', planks2.copy());
GameRegistry.addRecipe(doorSolid.copy(), "###", "###", "###", '#', planks2.copy());
GameRegistry.addRecipe(doorStandard.copy(), "# #", "###", "###", '#', planks2.copy());
GameRegistry.addRecipe(doorSplit.copy(), "# #", "###", "# #", '#', planks2.copy());
GameRegistry.addRecipe(doorFull.copy(), "# #", "# #", "# #", '#', planks2.copy());
}
}
addSqueezer(ILogType.VanillaLog.Spruce, ExtraTreeLiquid.Resin, 50);
}
public void addSqueezer(ILogType log, ILiquidType liquid, int amount, float pulpChance) {
FluidStack liquidStack = liquid.get(amount);
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[]{log.getItemStack()}, liquidStack, Mods.forestry.stack("woodPulp"), (int) (100.0f * pulpChance));
}
public void addSqueezer(ILogType log, ILiquidType liquid, int amount) {
addSqueezer(log, liquid, amount, 0.5f);
}
}