diff --git a/README.txt b/README.txt index 7a7cf39..86172da 100644 --- a/README.txt +++ b/README.txt @@ -1,3 +1,5 @@ Nether Noah's Paradise Mod is a mod I decided to make for the heck of it! I started from the idea of me adding my own custom things to minecraft just like I can create my own custom textures for it in my resource pack! My friends and I currently use it in our Minecraft worlds. I even restored some old features like glowing obsidian from Minecraft Pocket Edition and the brick pyramid from Indev! Hopefully, having created this mod could help me get a high paying job in future since my brother told me that java programmers make about $100K USD per year! + +Feel free to use of this code for your needs. But I would really appreciate it if you gave me some credit for my work. \ No newline at end of file diff --git a/build.gradle b/build.gradle index 88115f3..115e7f9 100644 --- a/build.gradle +++ b/build.gradle @@ -11,13 +11,13 @@ apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "0.12A" +version = "0.12A (The Structures Update)" group = "com.NetherNoah.ParadiseMod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = "modid" +archivesBaseName = "nnparadisemod" -sourceCompatibility = targetCompatibility = "1.6" // Need this here so eclipse task generates correctly. +sourceCompatibility = targetCompatibility = "1.8" // Need this here so eclipse task generates correctly. compileJava { - sourceCompatibility = targetCompatibility = "1.6" + sourceCompatibility = targetCompatibility = "1.8" } minecraft { diff --git a/changelog.txt b/changelog.txt index da92ac3..9638811 100644 --- a/changelog.txt +++ b/changelog.txt @@ -121,3 +121,4 @@ Fixed a texture error for the Brown Redstone Lamp item (it had the same texture as the Blue Redstone Lamp) Fixed a block model bug with the cactus trapdoor when it had "half=top" as its metadata Added Dirt, Sand, and Clay to the ocean floor + The resource blocks (the ones made of silver, ruby, sugar, salt, and blaze powder) and glowing obsidian can now be used in beacon pyramids diff --git a/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java b/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java index 37035de..b2a76e5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java @@ -73,7 +73,11 @@ public void preInit(FMLPreInitializationEvent event) { //This is NOT a coremod! Blocks.REDSTONE_BLOCK.setResistance(2000F); Blocks.WOODEN_BUTTON.setUnlocalizedName("oak_button"); - + Blocks.STRUCTURE_BLOCK.setCreativeTab(CreativeTabs.REDSTONE); + Blocks.COMMAND_BLOCK.setCreativeTab(CreativeTabs.REDSTONE); + Blocks.REPEATING_COMMAND_BLOCK.setCreativeTab(CreativeTabs.REDSTONE); + Blocks.CHAIN_COMMAND_BLOCK.setCreativeTab(CreativeTabs.REDSTONE); + Blocks.BARRIER.setCreativeTab(CreativeTabs.BUILDING_BLOCKS); //liquids LiquidRedstone.register(); FluidRegistry.addBucketForFluid(LiquidRedstone.FluidLiquidRedstone.instance); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java index 0ee34d2..c4b4881 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java @@ -23,4 +23,9 @@ public glowingObsidian() { setHarvestLevel("pickaxe",3); setLightLevel(.46666667F); } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java index 1033b82..d19b2ed 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java @@ -3,6 +3,8 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; public class BlockRuby extends Block { public BlockRuby() { @@ -15,4 +17,9 @@ public BlockRuby() { setSoundType(blockSoundType.METAL); setHarvestLevel("pickaxe", 2); } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java index 1d68dd7..fb3a6b8 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java @@ -2,6 +2,8 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; public class SaltBlock extends Block{ public SaltBlock() { super(Material.IRON); @@ -12,4 +14,9 @@ public SaltBlock() { setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setHarvestLevel("pickaxe", 0); } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java index 9d7ac1e..462c807 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java @@ -3,6 +3,8 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; public class SilverBlock extends Block { public SilverBlock() { @@ -15,4 +17,9 @@ public SilverBlock() { setSoundType(blockSoundType.METAL); setHarvestLevel("pickaxe", 2); } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java index 520faae..9cf8807 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java @@ -2,6 +2,8 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; public class blazeBlock extends Block{ public blazeBlock() { super(Material.IRON); @@ -14,4 +16,9 @@ public blazeBlock() { setHarvestLevel("pickaxe", 0); setLightLevel(1F); } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java index d21737b..40b9aed 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java @@ -3,6 +3,8 @@ import net.minecraft.block.BlockFalling; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; public class sugarBlock extends BlockFalling{ public sugarBlock() { @@ -14,4 +16,9 @@ public sugarBlock() { setSoundType(blockSoundType.SAND); setCreativeTab(CreativeTabs.BUILDING_BLOCKS); } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModCrafting.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModCrafting.java index 636737f..88f7f76 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModCrafting.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModCrafting.java @@ -1,6 +1,7 @@ package com.NetherNoah.ParadiseMod.init; import java.util.Arrays; +import java.util.List; import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; @@ -10,18 +11,21 @@ import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; -import java.util.List; public class ModCrafting { //crafting and smelting recipes public static void register() { + //globals variables for all recipes + List blocks=Arrays.asList(Blocks.OBSIDIAN,ModBlocks.glowingObsidian,Blocks.END_STONE,ModBlocks.CompressedCactus); + List dyes = Arrays.asList("dyeBlack","dyeRed","dyeGreen","dyeBrown","dyeBlue","dyePurple","dyeCyan","dyeLightGray","dyeGray","dyePink","dyeLime","dyeYellow","dyeLightBlue","dyeMagenta","dyeOrange","dyeWhite"); + List materials=Arrays.asList(new ItemStack(Blocks.END_STONE),new ItemStack(Blocks.GLASS),new ItemStack(Items.DIAMOND),new ItemStack(Items.GOLD_INGOT),new ItemStack(Items.EMERALD),new ItemStack(Blocks.STONE,1,5),new ItemStack(Blocks.STONE,1,3),new ItemStack(Blocks.STONE,1,1),new ItemStack(Blocks.STONE,1,0),new ItemStack(Blocks.MOSSY_COBBLESTONE),new ItemStack(Blocks.COBBLESTONE),new ItemStack(ModBlocks.glowingObsidian),new ItemStack(Blocks.OBSIDIAN)); + //the rs sword comes pre-enchanted with Fire Aspect II ItemStack RSSword = new ItemStack(ModItems.redstoneSword); RSSword.addEnchantment(Enchantment.getEnchantmentByID(20), 2); //colored RS Lamps List lamps = Arrays.asList(ModBlocks.BlackRSLamp,ModBlocks.RedRSLamp,ModBlocks.GreenRSLamp,ModBlocks.BrownRSLamp,ModBlocks.BlueRSLamp,ModBlocks.PurpleRSLamp,ModBlocks.CyanRSLamp,ModBlocks.SilverRSLamp,ModBlocks.GrayRSLamp,ModBlocks.PinkRSLamp,ModBlocks.LimeRSLamp,ModBlocks.YellowRSLamp,ModBlocks.LightBlueRSLamp,ModBlocks.MagentaRSLamp,ModBlocks.OrangeRSLamp,ModBlocks.WhiteRSLamp); - List dyes = Arrays.asList("dyeBlack","dyeRed","dyeGreen","dyeBrown","dyeBlue","dyePurple","dyeCyan","dyeLightGray","dyeGray","dyePink","dyeLime","dyeYellow","dyeLightBlue","dyeMagenta","dyeOrange","dyeWhite"); for (int i=0;i<16;i++) { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(lamps.get(i),8), new Object[] {"xxx","xyx","xxx",'x',Blocks.REDSTONE_LAMP,'y',dyes.get(i)})); } @@ -50,16 +54,18 @@ public static void register() { GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.ChristmasSapling), new ItemStack(Blocks.STAINED_GLASS_PANE,1,13), new ItemStack(Blocks.STAINED_GLASS_PANE,1,14),new ItemStack(Blocks.SAPLING,1,1),Blocks.GLOWSTONE); GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.ChristmasTopper,2), "axa","xxx","axa",'x',Items.GOLD_INGOT,'a',Blocks.AIR); + //stairs - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CactusStairs,8),"E ","EE ","EEE",'E',ModBlocks.CompressedCactus); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.EndStairs,8),"E ","EE ","EEE",'E',Blocks.END_STONE); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.ObsidianStairs,8),"E ","EE ","EEE",'E',Blocks.OBSIDIAN); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.GlowingObsidianStairs,8),"E ","EE ","EEE",'E',ModBlocks.glowingObsidian); + List stairs=Arrays.asList(ModBlocks.ObsidianStairs,ModBlocks.GlowingObsidianStairs,ModBlocks.EndStairs,ModBlocks.CactusStairs); + for (int i=0; i<4; i++) { + GameRegistry.addShapedRecipe(new ItemStack(stairs.get(i),8), "X ","XX ","XX",'X',blocks.get(i)); + } //walls - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.ObsidianWall,6), "OOO","OOO",'O',Blocks.OBSIDIAN); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.GlowingObsidianWall,6), "OOO","OOO",'O',ModBlocks.glowingObsidian); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.EndWall,6), "OOO","OOO",'O',Blocks.END_STONE); + List walls= Arrays.asList(ModBlocks.ObsidianWall,ModBlocks.GlowingObsidianWall,ModBlocks.EndWall); + for (int i=0; i<3; i++) { + GameRegistry.addShapedRecipe(new ItemStack(walls.get(i),6), "XXX","XXX",'X',blocks.get(i)); + } //tools //cactus @@ -139,7 +145,7 @@ public static void register() { GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.GoldBars,16), "GGG","GGG",'G',Items.GOLD_INGOT); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.SilverBars,16), new Object[] {"GGG","GGG",'G',"ingotSilver"})); GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.MossyFurnace), "MMM","M M","MMM",'M',Blocks.MOSSY_COBBLESTONE); - + //pressure plates GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CactusPlate), "SS",'S',ModBlocks.CompressedCactus); GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.DiamondPlate), "SS",'S',Items.DIAMOND); @@ -157,8 +163,13 @@ public static void register() { GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.JunglePlate),"SS",'S',new ItemStack(Blocks.PLANKS,1,3)); GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.AcaciaPlate),"SS",'S',new ItemStack(Blocks.PLANKS,1,4)); GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.DarkOakPlate),"SS",'S',new ItemStack(Blocks.PLANKS,1,5)); + GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CactusPlate), "SS",'S',ModBlocks.CompressedCactus); + GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.DiamondPlate), "SS",'S',Items.DIAMOND); //buttons + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.RubyPlate), new Object[] {"SS",'S',"gemRuby"}));//oredict definition + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.SilverPlate), new Object[] {"SS",'S',"ingotSilver"}));//oredict definition + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.CactusButton), ModBlocks.CompressedCactus); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.EndButton), Blocks.END_STONE); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.ObsidianButton), Blocks.OBSIDIAN); @@ -178,28 +189,19 @@ public static void register() { GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.DarkOakButton,2),new ItemStack(Blocks.PLANKS,1,5),new ItemStack(Blocks.PLANKS,1,5)); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.JungleButton,2),new ItemStack(Blocks.PLANKS,1,3),new ItemStack(Blocks.PLANKS,1,3)); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.SpruceButton,2),new ItemStack(Blocks.PLANKS,1,1),new ItemStack(Blocks.PLANKS,1,1)); - + //the workbenches - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CustomWorkbenchSpruce), "SS","SS",'S',new ItemStack(Blocks.PLANKS,1,1)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CustomWorkbenchBirch), "SS","SS",'S',new ItemStack(Blocks.PLANKS,1,2)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CustomWorkbenchJungle), "SS","SS",'S',new ItemStack(Blocks.PLANKS,1,3)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CustomWorkbenchAcacia), "SS","SS",'S',new ItemStack(Blocks.PLANKS,1,4)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.CustomWorkbenchDarkOak), "SS","SS",'S',new ItemStack(Blocks.PLANKS,1,5)); + List tables=Arrays.asList(ModBlocks.CustomWorkbenchSpruce,ModBlocks.CustomWorkbenchBirch,ModBlocks.CustomWorkbenchJungle,ModBlocks.CustomWorkbenchAcacia,ModBlocks.CustomWorkbenchDarkOak); + for (int i=0;i<5;i++) { + GameRegistry.addShapedRecipe(new ItemStack(tables.get(i)), "SS","SS",'S',new ItemStack(Blocks.PLANKS,1,i+1)); + } //the doors - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemEndDoor,3),"GG","GG","GG",'G',Blocks.END_STONE); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemGlassDoor,3),"GG","GG","GG",'G',Blocks.GLASS); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemDiamondDoor,3),"DD","DD","DD",'D',Items.DIAMOND); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemGoldDoor,3),"GG","GG","GG",'G',Items.GOLD_INGOT); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemEmeraldDoor,3),"EE","EE","EE",'E',Items.EMERALD); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemAndesiteDoor,3),"aa","aa","aa",'a',new ItemStack(Blocks.STONE,1,5)); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemDioriteDoor,3),"DD","DD","DD",'D',new ItemStack(Blocks.STONE,1,3)); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemGraniteDoor,3),"GG","GG","GG",'G',new ItemStack(Blocks.STONE,1,1)); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemStoneDoor,3),"SS","SS","SS",'S',new ItemStack(Blocks.STONE,1,0)); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemMossStoneDoor,3),"MM","MM","MM",'M',Blocks.MOSSY_COBBLESTONE); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemCobblestoneDoor,3),"CC","CC","CC",'C',Blocks.COBBLESTONE); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemGlowingObsidianDoor,3),"OO","OO","OO",'O',ModBlocks.glowingObsidian); - GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemObsidianDoor,3),"OO","OO","OO",'O',Blocks.OBSIDIAN); + List doors=Arrays.asList(new ItemStack(ModItems.ItemEndDoor,3),new ItemStack(ModItems.ItemGlassDoor,3),new ItemStack(ModItems.ItemDiamondDoor,3),new ItemStack(ModItems.ItemGoldDoor,3),new ItemStack(ModItems.ItemEmeraldDoor,3),new ItemStack(ModItems.ItemAndesiteDoor,3),new ItemStack(ModItems.ItemDioriteDoor,3),new ItemStack(ModItems.ItemGraniteDoor,3),new ItemStack(ModItems.ItemStoneDoor,3),new ItemStack(ModItems.ItemMossStoneDoor,3),new ItemStack(ModItems.ItemCobblestoneDoor,3),new ItemStack(ModItems.ItemGlowingObsidianDoor,3),new ItemStack(ModItems.ItemObsidianDoor,3)); + for(int i=0;i<13;i++) { + GameRegistry.addShapedRecipe(doors.get(i),"XX","XX","XX",'X',materials.get(i)); + } + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ItemRubyDoor,3), new Object[] {"RR","RR","RR",'R',"gemRuby"}));//oredict definition GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ItemSilverDoor,3), new Object[] {"RR","RR","RR",'R',"ingotSilver"}));//oredict definition @@ -208,18 +210,20 @@ public static void register() { GameRegistry.addShapedRecipe(new ItemStack(ModItems.ItemRedstoneDoor,9),"RR","RR","RR",'R',Blocks.REDSTONE_BLOCK); //the trapdoors - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockEndTrapDoor,5)," G ","GGG"," G ",'G',Blocks.END_STONE); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockGlassTrapDoor,6),"GGG","GGG",'G',Blocks.GLASS); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockGoldTrapdoor,4),"GG","GG",'G',Items.GOLD_INGOT); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockDiamondTrapdoor,6),"DDD","DDD",'D',Items.DIAMOND); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockEmeraldTrapdoor,6),"EEE","EEE",'E',Items.EMERALD); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockAndesiteTrapDoor,4),"aa","aa",'a',new ItemStack(Blocks.STONE,1,5)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockDioriteTrapdoor,4),"DD","DD",'D',new ItemStack(Blocks.STONE,1,3)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockGraniteTrapdoor,4),"GG","GG",'G',new ItemStack(Blocks.STONE,1,1)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockStoneTrapdoor,5)," O ","OOO"," O ",'O',new ItemStack(Blocks.STONE,1,0)); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockMossStoneTrapdoor,4),"MM","MM",'M',Blocks.MOSSY_COBBLESTONE); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockCobblestoneTrapdoor,4),"CC","CC",'C',Blocks.COBBLESTONE); - GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.BlockObsidianTrapdoor,5)," O ","OOO"," O ",'O',Blocks.OBSIDIAN); + List trapdoors=Arrays.asList(new ItemStack(ModBlocks.BlockEndTrapDoor,5),new ItemStack(ModBlocks.BlockGlassTrapDoor,6),new ItemStack(ModBlocks.BlockGoldTrapdoor,4),new ItemStack(ModBlocks.BlockDiamondTrapdoor,6),new ItemStack(ModBlocks.BlockEmeraldTrapdoor,6),new ItemStack(ModBlocks.BlockAndesiteTrapDoor,4),new ItemStack(ModBlocks.BlockDioriteTrapdoor,5),new ItemStack(ModBlocks.BlockGraniteTrapdoor,5),new ItemStack(ModBlocks.BlockStoneTrapdoor,5),new ItemStack(ModBlocks.BlockMossStoneTrapdoor,5),new ItemStack(ModBlocks.BlockCobblestoneTrapdoor,5),new ItemStack(ModBlocks.BlockGlowingObsidianTrapdoor,5),new ItemStack(ModBlocks.BlockObsidianTrapdoor,5)); + for(int i=0;i<13;i++) { + if(trapdoors.get(i).getCount()==6) { + GameRegistry.addShapedRecipe(trapdoors.get(i),"XXX","XXX",'X',materials.get(i)); + } + else if(trapdoors.get(i).getCount()==4) { + GameRegistry.addShapedRecipe(trapdoors.get(i),"XX","XX",'X',materials.get(i)); + + } + else { + GameRegistry.addShapedRecipe(trapdoors.get(i)," X ","XXX"," X ",'X',materials.get(i)); + } + } + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.BlockRubyTrapdoor,6),new Object[] {"RRR","RRR",'R',"gemRuby"}));//oredict definition GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.BlockSilverTrapDoor,4),new Object[] {"RR","RR",'R',"ingotSilver"}));//oredict definition