mirror of
https://github.com/GTNewHorizons/Binnie.git
synced 2026-11-15 01:35:08 +00:00
155 lines
8.0 KiB
Java
155 lines
8.0 KiB
Java
package binnie.extratrees.block;
|
|
|
|
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;
|
|
|
|
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;
|
|
|
|
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.blockShrubLeaves = new BlockShrubLeaves();
|
|
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) {
|
|
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);
|
|
}
|
|
}
|