package eiteam.esteemedinnovation.transport; import eiteam.esteemedinnovation.api.book.*; import eiteam.esteemedinnovation.api.crucible.CrucibleRegistry; import eiteam.esteemedinnovation.commons.Config; import eiteam.esteemedinnovation.commons.init.ContentModule; import eiteam.esteemedinnovation.transport.block.BlockPlonker; import eiteam.esteemedinnovation.transport.block.TileEntityPlonker; import eiteam.esteemedinnovation.transport.entity.*; import eiteam.esteemedinnovation.transport.fluid.funnel.BlockFunnel; import eiteam.esteemedinnovation.transport.fluid.funnel.TileEntityFunnel; import eiteam.esteemedinnovation.transport.fluid.pipes.BlockColdFluidPipe; import eiteam.esteemedinnovation.transport.fluid.pipes.TileEntityColdFluidPipe; import eiteam.esteemedinnovation.transport.fluid.screw.BlockPump; import eiteam.esteemedinnovation.transport.fluid.screw.TileEntityPump; import eiteam.esteemedinnovation.transport.fluid.screw.TileEntityPumpRenderer; import eiteam.esteemedinnovation.transport.item.*; import eiteam.esteemedinnovation.transport.steam.*; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.registry.EntityRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.oredict.ShapedOreRecipe; import static eiteam.esteemedinnovation.commons.EsteemedInnovation.*; import static eiteam.esteemedinnovation.commons.OreDictEntries.*; import static eiteam.esteemedinnovation.materials.MaterialsModule.COPPER_LIQUID; import static eiteam.esteemedinnovation.misc.ItemCraftingComponent.Types.BRASS_PISTON; import static eiteam.esteemedinnovation.misc.ItemCraftingComponent.Types.BRASS_TURBINE; import static eiteam.esteemedinnovation.misc.MiscellaneousModule.COMPONENT; import static eiteam.esteemedinnovation.woodcone.WoodenConeModule.WOODEN_CONE; import static net.minecraft.init.Blocks.IRON_BARS; public class TransportationModule extends ContentModule { public static Block ARCHIMEDES_SCREW; public static Block VACUUM; public static Block FAN; public static Block PLONKER; public static Block ITEM_MORTAR; public static Item ASTROLABE; public static Block FUNNEL; public static Block BRASS_PIPE; public static Block COPPER_PIPE; public static Block VALVE_PIPE; @Override public void create(Side side) { ARCHIMEDES_SCREW = setup(new BlockPump(), "pump"); FAN = setup(new BlockFan(), "fan"); VACUUM = setup(new BlockVacuum(), "vacuum"); PLONKER = setup(new BlockPlonker(), "plonker"); ITEM_MORTAR = setup(new BlockItemMortar(), "item_mortar"); ASTROLABE = setup(new ItemAstrolabe(), "astrolabe"); FUNNEL = setup(new BlockFunnel(), "funnel"); BRASS_PIPE = setup(new BlockSteamPipe(), "brass_pipe"); COPPER_PIPE = setup(new BlockColdFluidPipe(), "copper_pipe"); VALVE_PIPE = setup(new BlockValvePipe(), "valve_pipe"); channel.registerMessage(ConnectPacketHandler.class, ConnectPacket.class, 2, Side.SERVER); EntityRegistry.registerModEntity(EntityMortarItem.class, "MortarItem", 1, instance, 64, 20, true); registerTileEntity(TileEntitySteamPipe.class, "brass_pipe"); registerTileEntity(TileEntityColdFluidPipe.class, "copper_pipe"); registerTileEntity(TileEntityValvePipe.class, "valvePipe"); registerTileEntity(TileEntityItemMortar.class, "itemMortar"); registerTileEntity(TileEntityPump.class, "pump"); registerTileEntity(TileEntityFan.class, "fan"); registerTileEntity(TileEntityVacuum.class, "vacuum"); registerTileEntity(TileEntityFunnel.class, "funnel"); registerTileEntity(TileEntityPlonker.class, "plonker"); } @Override public void recipes(Side side) { if (Config.enablePump) { BookRecipeRegistry.addRecipe("pump1", new ShapedOreRecipe(ARCHIMEDES_SCREW, "gng", "iii", "ngn", 'i', PLATE_THIN_BRASS, 'n', NUGGET_BRASS, 'g', PANE_GLASS_COLORLESS )); BookRecipeRegistry.addRecipe("pump2", new ShapedOreRecipe(ARCHIMEDES_SCREW, "gng", "iii", "ngn", 'i', INGOT_BRASS, 'n', NUGGET_BRASS, 'g', PANE_GLASS_COLORLESS )); } if (Config.enableFan) { BookRecipeRegistry.addRecipe("fan1", new ShapedOreRecipe(FAN, "xxx", "btb", "xxx", 'x', INGOT_BRASS, 'b', IRON_BARS, 't', new ItemStack(COMPONENT, 1, BRASS_TURBINE.getMetadata()) )); BookRecipeRegistry.addRecipe("fan2", new ShapedOreRecipe(FAN, "xxx", "btb", "xxx", 'x', PLATE_THIN_BRASS, 'b', IRON_BARS, 't', new ItemStack(COMPONENT, 1, BRASS_TURBINE.getMetadata()) )); if (Config.enableVacuum) { BookRecipeRegistry.addRecipe("vacuum1", new ShapedOreRecipe(VACUUM, " x ", "pfx", " x ", 'x', INGOT_BRASS, 'p', BRASS_PIPE, 'f', FAN )); BookRecipeRegistry.addRecipe("vacuum2", new ShapedOreRecipe(VACUUM, " x ", "pfx", " x ", 'x', PLATE_THIN_BRASS, 'p', BRASS_PIPE, 'f', FAN )); } } if (Config.enablePlonker) { BookRecipeRegistry.addRecipe("plonker", new ShapedOreRecipe(PLONKER, "ccb", "c r", "ccb", 'c', COBBLESTONE_ORE, 'b', PLATE_THIN_BRASS, 'r', DUST_REDSTONE )); } if (Config.enableMortar) { BookRecipeRegistry.addRecipe("itemMortar1", new ShapedOreRecipe(ITEM_MORTAR, "p p", "pbp", "ccc", 'p', PLATE_THIN_BRASS, 'c', PLATE_THIN_COPPER, 'b', new ItemStack(COMPONENT, 1, BRASS_PISTON.getMetadata() ))); BookRecipeRegistry.addRecipe("itemMortar2", new ShapedOreRecipe(ITEM_MORTAR, "p p", "pbp", "ccc", 'p', INGOT_BRASS, 'c', PLATE_THIN_COPPER, 'b', new ItemStack(COMPONENT, 1, BRASS_PISTON.getMetadata() ))); BookRecipeRegistry.addRecipe("itemMortar3", new ShapedOreRecipe(ITEM_MORTAR, "p p", "pbp", "ccc", 'p', PLATE_THIN_BRASS, 'c', INGOT_COPPER, 'b', new ItemStack(COMPONENT, 1, BRASS_PISTON.getMetadata() ))); BookRecipeRegistry.addRecipe("itemMortar4", new ShapedOreRecipe(ITEM_MORTAR, "p p", "pbp", "ccc", 'p', INGOT_BRASS, 'c', INGOT_COPPER, 'b', new ItemStack(COMPONENT, 1, BRASS_PISTON.getMetadata() ))); } if (Config.enableAstrolabe) { BookRecipeRegistry.addRecipe("astrolabe", new ShapedOreRecipe(ASTROLABE, " x ", "xrx", " x ", 'x', INGOT_BRASS, 'r', DUST_REDSTONE )); } if (Config.enableFunnel) { CrucibleRegistry.registerDunkRecipe( Item.getItemFromBlock(WOODEN_CONE), COPPER_LIQUID, 45, new ItemStack(FUNNEL)); } } @Override public void finish(Side side) { if (Config.enablePipe) { MinecraftForge.EVENT_BUS.register(BRASS_PIPE); } BookPageRegistry.addCategoryToSection(BASICS_SECTION, 4, new BookCategory("category.Camouflage.name", new BookEntry("research.Camouflage.name", new BookPageItem("research.Camouflage.name", "research.Camouflage.0", new ItemStack(BRASS_PIPE), new ItemStack(Blocks.STONEBRICK)), new BookPageText("research.Camouflage.name", "research.Camouflage.1")))); BookPageRegistry.addCategoryToSection(STEAMPOWER_SECTION, 1, new BookCategory("category.Pipe.name", new BookEntry("research.Pipe.name", new BookPageItem("research.Pipe.name", "research.Pipe.0", new ItemStack(BRASS_PIPE), new ItemStack(VALVE_PIPE)), new BookPageText("research.Pipe.name", "research.Pipe.1")))); if (Config.enableMortar && Config.enableAstrolabe) { BookPageRegistry.addCategoryToSection(STEAMPOWER_SECTION, 9, new BookCategory("category.ItemMortar.name", new BookEntry("research.ItemMortar.name", new BookPageItem("research.ItemMortar.name", "research.ItemMortar.0", new ItemStack(ITEM_MORTAR)), new BookPageText("research.ItemMortar.name", "research.ItemMortar.1"), new BookPageCrafting("", "astrolabe"), new BookPageCrafting("", "itemMortar2", "itemMortar3")))); } if (Config.enablePump) { BookPageRegistry.addCategoryToSection(STEAMPOWER_SECTION, 11, new BookCategory("category.Screw.name", new BookEntry("research.Screw.name", new BookPageItem("research.Screw.name", "research.Screw.0", new ItemStack(ARCHIMEDES_SCREW)), new BookPageCrafting("", "pump1", "pump2")))); } if (Config.enableFan) { BookPageRegistry.addCategoryToSection(STEAMPOWER_SECTION, 14, new BookCategory("category.Fan.name", new BookEntry("research.Fan.name", new BookPageItem("research.Fan.name", "research.Fan.0", new ItemStack(FAN)), new BookPageCrafting("", "fan1", "fan2")))); if (Config.enableVacuum) { BookPageRegistry.addCategoryToSection(STEAMPOWER_SECTION, 15, new BookCategory("category.Vacuum.name", new BookEntry("research.Vacuum.name", new BookPageItem("research.Vacuum.name", "research.Vacuum.0", new ItemStack(VACUUM)), new BookPageCrafting("", "vacuum1", "vacuum2")))); } } if (Config.enableFunnel) { BookPageRegistry.addCategoryToSection(MISC_SECTION, new BookCategory("category.Funnel.name", new BookEntry("research.Funnel.name", new BookPageItem("research.Funnel.name", "research.Funnel.0", true, new ItemStack(FUNNEL)), new BookPageDip("", COPPER_LIQUID, 45, new ItemStack(WOODEN_CONE), new ItemStack(FUNNEL))))); } } @SideOnly(Side.CLIENT) @Override public void preInitClient() { registerModel(BRASS_PIPE); ModelLoader.setCustomStateMapper(VALVE_PIPE, new StateMapperValvePipe()); registerModel(VALVE_PIPE); registerModel(FAN); registerModel(VACUUM); registerModel(ITEM_MORTAR); registerModel(FUNNEL); registerModel(ASTROLABE); } @SideOnly(Side.CLIENT) @Override public void initClient() { RenderingRegistry.registerEntityRenderingHandler(EntityMortarItem.class, RenderMortarItem::new); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityItemMortar.class, new TileEntityItemMortarRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPump.class, new TileEntityPumpRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityValvePipe.class, new TileEntityValvePipeRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new TileEntityFanRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVacuum.class, new TileEntityVacuumRenderer()); } }