1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Added Deprecated Compatibility Constructors

This commit is contained in:
Liruxo 2019-09-26 18:42:47 +02:00
parent 2e340be7ff
commit b7ec184364
3 changed files with 62 additions and 26 deletions

View File

@ -20,24 +20,7 @@ public class MultiBlock {
public MultiBlock(Material[] build, Material trigger) { public MultiBlock(Material[] build, Material trigger) {
this.blocks = build; this.blocks = build;
this.isSymmetric = isSymmetric(build); this.isSymmetric = isSymmetric(build);
//Hacky, the other constructor should be used this.trigger = convertTriggerMaterialToBlockFace(build, trigger);
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;
}
}
}
} }
public MultiBlock(Material[] build, BlockFace trigger) { public MultiBlock(Material[] build, BlockFace trigger) {
@ -107,4 +90,24 @@ public class MultiBlock {
return this.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;
}
} }

View File

@ -21,6 +21,21 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem {
protected List<ItemStack> shownRecipes; protected List<ItemStack> 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) { public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) {
super(category, item, id, RecipeType.MULTIBLOCK, recipe); super(category, item, id, RecipeType.MULTIBLOCK, recipe);
this.recipes = new ArrayList<>(); this.recipes = new ArrayList<>();
@ -74,20 +89,27 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem {
} }
} }
public MultiBlock toMultiBlock() { private static Material[] convertItemStacksToMaterial(ItemStack[] items) {
List<Material> mats = new ArrayList<>(); List<Material> mats = new ArrayList<>();
for (ItemStack i: this.getRecipe()) { for (ItemStack i: items) {
if (i == null) mats.add(null); if (i == null) mats.add(null);
else if (i.getType() == Material.FLINT_AND_STEEL) mats.add(Material.FIRE); else if (i.getType() == Material.FLINT_AND_STEEL) mats.add(Material.FIRE);
else mats.add(i.getType()); else mats.add(i.getType());
} }
Material[] build = mats.toArray(new Material[mats.size()]); return mats.toArray(new Material[mats.size()]);
return new MultiBlock(build, this.trigger); }
public MultiBlock toMultiBlock() {
return new MultiBlock(convertItemStacksToMaterial(this.getRecipe()), this.trigger);
} }
public Iterator<ItemStack[]> recipeIterator() { public Iterator<ItemStack[]> recipeIterator() {
return this.recipes.iterator(); return this.recipes.iterator();
} }
@Deprecated
private static BlockFace convertTriggerMaterial(ItemStack[] recipe, Material trigger) {
return MultiBlock.convertTriggerMaterialToBlockFace(convertItemStacksToMaterial(recipe), trigger);
}
} }

View File

@ -1,5 +1,6 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks; package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks;
import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.block.Container; import org.bukkit.block.Container;
@ -26,6 +27,16 @@ public abstract class MultiBlockMachine extends SlimefunMachine {
BlockFace.WEST 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) { public MultiBlockMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, BlockFace trigger) {
super(category, item, id, recipe, machineRecipes, trigger); super(category, item, id, recipe, machineRecipes, trigger);
} }