diff --git a/src/me/mrCookieSlime/Slimefun/Objects/MultiBlock.java b/src/me/mrCookieSlime/Slimefun/Objects/MultiBlock.java index 0532b95f7..f59e27628 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/MultiBlock.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/MultiBlock.java @@ -20,24 +20,7 @@ public class MultiBlock { public MultiBlock(Material[] build, Material trigger) { this.blocks = build; this.isSymmetric = isSymmetric(build); - //Hacky, the other constructor should be used - for (int i = 1; i < 9; i +=3) { - if (trigger == build[i]) { - switch (i) { - case 1: - this.trigger = BlockFace.DOWN; - return; - case 4: - this.trigger = BlockFace.SELF; - return; - case 7: - this.trigger = BlockFace.UP; - return; - default: - break; - } - } - } + this.trigger = convertTriggerMaterialToBlockFace(build, trigger); } public MultiBlock(Material[] build, BlockFace trigger) { @@ -106,5 +89,25 @@ public class MultiBlock { public boolean isSymmetric() { return this.isSymmetric; } - + + @Deprecated + public static BlockFace convertTriggerMaterialToBlockFace(Material[] build, Material trigger) + { + //Hacky + for (int i = 1; i < 9; i +=3) { + if (trigger == build[i]) { + switch (i) { + case 1: + return BlockFace.DOWN; + case 4: + return BlockFace.SELF; + case 7: + return BlockFace.UP; + default: + break; + } + } + } + return null; + } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java index 7bd2b9823..718fb7808 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java @@ -20,7 +20,22 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { private BlockFace trigger; protected List shownRecipes; - + + @Deprecated + public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, Material trigger) { + this(category, item, id, recipe, machineRecipes, convertTriggerMaterial(recipe, trigger)); + } + + @Deprecated + public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, Material trigger, boolean ghost) { + this(category, item, id, recipe, machineRecipes, convertTriggerMaterial(recipe, trigger), ghost); + } + + @Deprecated + public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, Material trigger, String[] keys, Object[] values) { + this(category, item, id, recipe, machineRecipes, convertTriggerMaterial(recipe, trigger), keys, values); + } + public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { super(category, item, id, RecipeType.MULTIBLOCK, recipe); this.recipes = new ArrayList<>(); @@ -73,21 +88,28 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { } } } - - public MultiBlock toMultiBlock() { + + private static Material[] convertItemStacksToMaterial(ItemStack[] items) { List mats = new ArrayList<>(); - for (ItemStack i: this.getRecipe()) { + for (ItemStack i: items) { if (i == null) mats.add(null); else if (i.getType() == Material.FLINT_AND_STEEL) mats.add(Material.FIRE); else mats.add(i.getType()); } - Material[] build = mats.toArray(new Material[mats.size()]); - return new MultiBlock(build, this.trigger); + return mats.toArray(new Material[mats.size()]); + } + + public MultiBlock toMultiBlock() { + return new MultiBlock(convertItemStacksToMaterial(this.getRecipe()), this.trigger); } public Iterator recipeIterator() { return this.recipes.iterator(); } + @Deprecated + private static BlockFace convertTriggerMaterial(ItemStack[] recipe, Material trigger) { + return MultiBlock.convertTriggerMaterialToBlockFace(convertItemStacksToMaterial(recipe), trigger); + } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java index 076d347fe..f177e030b 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/MultiBlockMachine.java @@ -1,5 +1,6 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Container; @@ -25,7 +26,17 @@ public abstract class MultiBlockMachine extends SlimefunMachine { BlockFace.SOUTH, BlockFace.WEST }; - + + @Deprecated + public MultiBlockMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, Material trigger) { + super(category, item, id, recipe, machineRecipes, trigger); + } + + @Deprecated + public MultiBlockMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, Material trigger, String[] keys, Object[] values) { + super(category, item, id, recipe, machineRecipes, trigger, keys, values); + } + public MultiBlockMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) { super(category, item, id, recipe, machineRecipes, trigger); }