Package mods.railcraft.common.modules

Source Code of mods.railcraft.common.modules.ModuleStructures

/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.modules;

import net.minecraft.block.Block;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.ShapedOreRecipe;
import mods.railcraft.api.crafting.RailcraftCraftingManager;
import mods.railcraft.common.blocks.RailcraftBlocks;


import mods.railcraft.common.blocks.aesthetics.brick.BlockBrick;
import mods.railcraft.common.blocks.aesthetics.cube.BlockCube;
import mods.railcraft.common.blocks.aesthetics.cube.EnumCube;
import mods.railcraft.common.blocks.aesthetics.glass.BlockStrengthGlass;
import mods.railcraft.common.blocks.aesthetics.post.BlockPost;
import mods.railcraft.common.blocks.machine.alpha.EnumMachineAlpha;
import mods.railcraft.common.blocks.aesthetics.post.BlockPostMetal;
import mods.railcraft.common.blocks.aesthetics.post.EnumPost;
import mods.railcraft.common.blocks.aesthetics.slab.BlockRailcraftSlab;
import mods.railcraft.common.blocks.aesthetics.EnumBlockMaterial;
import mods.railcraft.common.blocks.aesthetics.lamp.BlockFactoryLantern;
import mods.railcraft.common.blocks.aesthetics.slab.BlockFactorySlab;
import mods.railcraft.common.blocks.aesthetics.stairs.BlockFactoryStairs;
import mods.railcraft.common.blocks.aesthetics.wall.BlockRailcraftWall;
import mods.railcraft.common.core.RailcraftConfig;
import mods.railcraft.common.fluids.Fluids;
import mods.railcraft.common.fluids.FluidHelper;
import mods.railcraft.common.items.ItemTie;
import mods.railcraft.common.items.RailcraftItem;
import mods.railcraft.common.modules.ModuleManager.Module;
import mods.railcraft.common.plugins.forestry.ForestryPlugin;
import mods.railcraft.common.plugins.forge.CraftingPlugin;
import mods.railcraft.common.util.crafting.RollingMachineCraftingManager;
import mods.railcraft.common.util.misc.EnumColor;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;

public class ModuleStructures extends RailcraftModule {

    @Override
    public void preInit() {
        addBlockFactory(new BlockFactoryStairs());
        addBlockFactory(new BlockFactorySlab());
        addBlockFactory(new BlockFactoryLantern());
    }

    @Override
    public void initFirst() {
        RailcraftBlocks.registerBlockSignal();
        BlockPost.registerBlock();
        BlockPostMetal.registerPost();
        BlockPostMetal.registerPlatform();
        BlockRailcraftWall.registerBlocks();
        BlockStrengthGlass.registerBlock();
        BlockBrick.setupBlock();

        EnumCube cubeType = EnumCube.CONCRETE_BLOCK;
        if (RailcraftConfig.isSubBlockEnabled(cubeType.getTag())) {
            BlockCube.registerBlock();
            Block cube = BlockCube.getBlock();
            if (cube != null) {
                ItemStack stack = cubeType.getItem();
                if (ModuleManager.isModuleLoaded(Module.FACTORY)
                        && RailcraftBlocks.getBlockMachineAlpha() != null
                        && RailcraftConfig.isSubBlockEnabled(EnumMachineAlpha.ROLLING_MACHINE.getTag())) {
                    stack.stackSize = 8;
                    CraftingPlugin.addShapedRecipe(stack,
                            "SIS",
                            "ISI",
                            "SIS",
                            'I', RailcraftItem.rebar.getRecipeObject(),
                            'S', Blocks.stone);
                } else {
                    stack.stackSize = 4;
                    CraftingPlugin.addShapedRecipe(stack,
                            " S ",
                            "SIS",
                            " S ",
                            'I', Items.iron_ingot,
                            'S', Blocks.stone);
                }
            }
        }

        cubeType = EnumCube.CREOSOTE_BLOCK;
        if (RailcraftConfig.isSubBlockEnabled(cubeType.getTag())) {
            BlockCube.registerBlock();
            Block cube = BlockCube.getBlock();
            if (cube != null) {
                ItemStack stack = cubeType.getItem();
                for (ItemStack container : FluidHelper.getContainersFilledWith(Fluids.CREOSOTE.get(FluidHelper.BUCKET_VOLUME))) {
                    CraftingPlugin.addShapelessRecipe(stack, "logWood", container);
                }
            }
        }

        RailcraftBlocks.registerBlockMachineAlpha();
        EnumMachineAlpha alpha = EnumMachineAlpha.SMOKER;
        if (RailcraftConfig.isSubBlockEnabled(alpha.getTag())) {
            ItemStack stack = alpha.getItem();
            CraftingPlugin.addShapedRecipe(stack,
                    " N ",
                    "RCR",
                    'N', new ItemStack(Blocks.netherrack),
                    'C', new ItemStack(Items.cauldron),
                    'R', new ItemStack(Items.redstone));
        }

//        cubeType = EnumCube.BANDED_PLANKS;
//        if(RailcraftConfig.isSubBlockEnabled(cubeType.getTag())) {
//            RailcraftBlocks.registerBlockCube();
//            Block cube = RailcraftBlocks.getBlockCube();
//            if(cube != null) {
//                ItemStack stack = cubeType.getItem(8);
//                RailcraftLanguage.getInstance().registerItemName(stack, cubeType.getTag());
//                ModLoader.addRecipe(stack, new Object[]{
//                        "WWW",
//                        "III",
//                        "WWW",
//                        'I', new ItemStack(Items.iron_ingot),
//                        'W', Block.planks});
//            }
//        }
        if (BlockStrengthGlass.getBlock() != null)
            for (EnumColor color : EnumColor.VALUES) {
                CraftingPlugin.addShapedRecipe(BlockStrengthGlass.getItem(8, color.inverse().ordinal()),
                        "GGG",
                        "GDG",
                        "GGG",
                        'G', BlockStrengthGlass.getBlock(),
                        'D', color.getDye());
            }
    }

    @Override
    public void initSecond() {
        BlockRailcraftWall.initialize();

        Block blockPost = BlockPost.block;
        if (blockPost != null) {
            CraftingPlugin.addShapelessRecipe(EnumPost.WOOD.getItem(4), RailcraftItem.tie.getRecipeObject(ItemTie.EnumTie.WOOD));
            CraftingPlugin.addShapedRecipe(EnumPost.WOOD_PLATFORM.getItem(),
                    " T ",
                    " I ",
                    'T', BlockRailcraftSlab.getItem(EnumBlockMaterial.CREOSOTE),
                    'I', EnumPost.WOOD.getItem());

            CraftingPlugin.addShapedRecipe(EnumPost.STONE.getItem(8),
                    "SIS",
                    "SIS",
                    "SIS",
                    'I', RailcraftItem.rebar.getRecipeObject(),
                    'S', Blocks.stone);
            CraftingPlugin.addShapedRecipe(EnumPost.STONE_PLATFORM.getItem(),
                    " T ",
                    " I ",
                    'T', BlockRailcraftSlab.getItem(EnumBlockMaterial.CONCRETE),
                    'I', EnumPost.STONE.getItem());

            ItemStack stack = EnumPost.METAL.getItem(16);
            RailcraftCraftingManager.rollingMachine.addRecipe(stack,
                    "III",
                    " I ",
                    "III",
                    'I', Items.iron_ingot);
            RailcraftCraftingManager.rollingMachine.addRecipe(stack,
                    "I I",
                    "III",
                    "I I",
                    'I', Items.iron_ingot);

            CraftingPlugin.addShapedRecipe(EnumPost.METAL_PLATFORM.getItem(4),
                    " T ",
                    " I ",
                    'T', BlockRailcraftSlab.getItem(EnumBlockMaterial.IRON),
                    'I', EnumPost.METAL.getItem());

            stack = EnumPost.METAL.getItem(32);
            IRecipe recipe = new ShapedOreRecipe(stack,
                    "III",
                    " I ",
                    "III",
                    'I', "ingotSteel");
            RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe);
            recipe = new ShapedOreRecipe(stack,
                    "I I",
                    "III",
                    "I I",
                    'I', "ingotSteel");
            RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe);

            stack = EnumPost.METAL.getItem(12);
            recipe = new ShapedOreRecipe(stack,
                    "III",
                    " I ",
                    "III",
                    'I', "ingotBronze");
            RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe);
            recipe = new ShapedOreRecipe(stack,
                    "I I",
                    "III",
                    "I I",
                    'I', "ingotBronze");
            RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe);

            stack = EnumPost.METAL.getItem(20);
            recipe = new ShapedOreRecipe(stack,
                    "III",
                    " I ",
                    "III",
                    'I', "ingotRefinedIron");
            RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe);
            recipe = new ShapedOreRecipe(stack,
                    "I I",
                    "III",
                    "I I",
                    'I', "ingotRefinedIron");
            RollingMachineCraftingManager.getInstance().getRecipeList().add(recipe);
        }

        if (blockPost != null && BlockPostMetal.post != null) {
            ItemStack stackColored = BlockPostMetal.post.getItem(1, OreDictionary.WILDCARD_VALUE);
            ItemStack stackRaw = EnumPost.METAL.getItem();

            for (EnumColor color : EnumColor.values()) {
                ItemStack outputStack = new ItemStack(BlockPostMetal.post, 8, color.ordinal());
                CraftingPlugin.addShapedRecipe(outputStack,
                        "III",
                        "IDI",
                        "III",
                        'I', stackRaw,
                        'D', color.getDye());
                CraftingPlugin.addShapedRecipe(outputStack,
                        "III",
                        "IDI",
                        "III",
                        'I', stackColored,
                        'D', color.getDye());
            }
        }

        if (BlockPostMetal.post != null && BlockPostMetal.platform != null) {
            ItemStack stackColored = BlockPostMetal.platform.getItem(1, OreDictionary.WILDCARD_VALUE);
            ItemStack stackRaw = EnumPost.METAL_PLATFORM.getItem();

            for (EnumColor color : EnumColor.values()) {
                ItemStack outputStack = new ItemStack(BlockPostMetal.platform, 8, color.ordinal());
                CraftingPlugin.addShapedRecipe(outputStack,
                        "III",
                        "IDI",
                        "III",
                        'I', stackRaw,
                        'D', color.getDye());
                CraftingPlugin.addShapedRecipe(outputStack,
                        "III",
                        "IDI",
                        "III",
                        'I', stackColored,
                        'D', color.getDye());
            }
        }
    }

    @Override
    public void postInit() {
        if (BlockStrengthGlass.getBlock() != null) {
            Object[] frameTypes = new Object[]{"ingotTin", Items.iron_ingot};
            FluidStack water = Fluids.WATER.get(FluidHelper.BUCKET_VOLUME);
            for (ItemStack container : FluidHelper.getContainersFilledWith(water)) {
                for (Object frame : frameTypes) {
                    CraftingPlugin.addShapedRecipe(BlockStrengthGlass.getItem(6, 0),
                            "GFG",
                            "GSG",
                            "GWG",
                            'G', new ItemStack(Blocks.glass),
                            'F', frame,
                            'S', "dustSaltpeter",
                            'W', container);
                }
            }
        }

        EnumCube cubeType = EnumCube.CREOSOTE_BLOCK;
        if (cubeType.isEnabled()) {
            ItemStack stack = cubeType.getItem();
            for (ItemStack container : FluidHelper.getContainersFilledWith(Fluids.CREOSOTE.get(FluidHelper.BUCKET_VOLUME))) {
                CraftingPlugin.addShapelessRecipe(stack, "logWood", container);
            }
            ForestryPlugin.addCarpenterRecipe("creosote.block", 40, Fluids.CREOSOTE.get(750), null, stack, "L", 'L', "logWood");
        }
    }

}
TOP

Related Classes of mods.railcraft.common.modules.ModuleStructures

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.