From 33adb7e79a1fb46d0d86faffa7fd476c7fed2672 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Tue, 17 Dec 2019 01:37:09 +0100 Subject: [PATCH] Added Magnesium Salt and Magnesium-powered Generator --- .../Slimefun/Lists/SlimefunItems.java | 3 ++ .../Objects/SlimefunItem/SlimefunMachine.java | 22 ++++++------ .../abstractItems/AGenerator.java | 6 ++-- .../abstractItems/MachineFuel.java | 6 ++-- .../SlimefunItem/machines/BlockPlacer.java | 15 ++++---- .../SlimefunItem/machines/Composter.java | 11 +++--- .../SlimefunItem/machines/Crucible.java | 14 +++++--- .../SlimefunItem/machines/InfusedHopper.java | 8 ++--- .../machines/ReactorAccessPort.java | 2 +- .../SlimefunItem/machines/TrashCan.java | 3 +- .../machines/electric/ElectricSmeltery.java | 13 ++++--- .../machines/electric/Freezer.java | 2 +- .../electric/HeatedPressureChamber.java | 20 +++++------ .../machines/electric/Refinery.java | 19 +++++++---- .../machines/electric/WitherAssembler.java | 25 ++++++++------ .../machines/electric/XPCollector.java | 13 +++---- .../generators/MagnesiumGenerator.java | 34 +++++++++++++++++++ .../SlimefunItem/multiblocks/GrindStone.java | 4 +-- .../SlimefunItem/multiblocks/OreWasher.java | 9 ++++- .../Slimefun/Setup/ResearchSetup.java | 1 + .../Slimefun/Setup/SlimefunSetup.java | 24 ++++++++++--- 21 files changed, 167 insertions(+), 87 deletions(-) create mode 100644 src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index 912ffbfb8..3a57b0005 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -827,6 +827,9 @@ public final class SlimefunItems { public static final ItemStack SOULBOUND_ELYTRA = new SlimefunItemStack("SOULBOUND_ELYTRA", ELYTRA, "&cSoulbound Elytra"); public static final ItemStack TOTEM_OF_UNDYING = new ItemStack(Material.TOTEM_OF_UNDYING); + + public static final ItemStack MAGNESIUM_SALT = new SlimefunItemStack("MAGNESIUM_SALT", Material.SUGAR, "&cMagnesium Salt", "", "&7A special type of fuel that can be", "&7used in a Magnesium-powered Generator"); + public static final ItemStack MAGNESIUM_GENERATOR = new SlimefunItemStack("MAGNESIUM_GENERATOR", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ==", "&cMagnesium-powered Generator", "", MachineTier.MEDIUM.and(MachineType.GENERATOR), "&8\u21E8 &e\u26A1 &7128 J Buffer", "&8\u21E8 &e\u26A1 &736 J/s"); static { INFUSED_ELYTRA.addUnsafeEnchantment(Enchantment.MENDING, 1); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java index 99f3431df..0aa563ae5 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java @@ -16,9 +16,9 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayIt public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { - protected List recipes; - protected List shownRecipes; - private BlockFace trigger; + protected final List recipes; + protected final List shownRecipes; + protected final BlockFace trigger; @Deprecated public SlimefunMachine(Category category, ItemStack item, String id, ItemStack[] recipe, ItemStack[] machineRecipes, Material trigger) { @@ -80,20 +80,20 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { @Override public void install() { - for (ItemStack i: shownRecipes) { - SlimefunItem item = SlimefunItem.getByItem(i); - if (item == null || !SlimefunItem.isDisabled(i)) { - this.recipes.add(new ItemStack[] {i}); + for (ItemStack recipeItem : shownRecipes) { + SlimefunItem item = SlimefunItem.getByItem(recipeItem); + if (item == null || !SlimefunItem.isDisabled(recipeItem)) { + this.recipes.add(new ItemStack[] {recipeItem}); } } } private static Material[] convertItemStacksToMaterial(ItemStack[] items) { List mats = new ArrayList<>(); - 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()); + for (ItemStack item : items) { + if (item == null) mats.add(null); + else if (item.getType() == Material.FLINT_AND_STEEL) mats.add(Material.FIRE); + else mats.add(item.getType()); } return mats.toArray(new Material[mats.size()]); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java index 2ebd7a84b..7ff66c2f4 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java @@ -224,8 +224,8 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt } private MachineFuel findRecipe(BlockMenu menu, Map found) { - for (MachineFuel recipe: recipes) { - for (int slot: getInputSlots()) { + for (MachineFuel recipe : recipes) { + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), recipe.getInput(), true)) { found.put(slot, recipe.getInput().getAmount()); return recipe; @@ -249,7 +249,7 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt public List getDisplayRecipes() { List list = new ArrayList<>(); - for (MachineFuel fuel: recipes) { + for (MachineFuel fuel : recipes) { ItemStack item = fuel.getInput().clone(); ItemMeta im = item.getItemMeta(); List lore = new ArrayList<>(); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.java index 5e05b4e3e..ed36b026a 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineFuel.java @@ -4,9 +4,9 @@ import org.bukkit.inventory.ItemStack; public class MachineFuel { - private int ticks; - private ItemStack fuel; - private ItemStack output; + private final int ticks; + private final ItemStack fuel; + private final ItemStack output; public MachineFuel(int seconds, ItemStack fuel) { this.ticks = seconds * 2; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java index 7be395d9f..0b8f67514 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/BlockPlacer.java @@ -2,7 +2,6 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; import java.util.List; -import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.Material; import org.bukkit.Nameable; @@ -54,9 +53,11 @@ public class BlockPlacer extends SimpleSlimefunItem { block.setType(e.getItem().getType()); BlockStorage.store(block, sfItem.getID()); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, e.getItem().getType()); - if (d.getInventory().containsAtLeast(e.getItem(), 2)) d.getInventory().removeItem(new CustomItem(e.getItem(), 1)); + if (d.getInventory().containsAtLeast(e.getItem(), 2)) { + d.getInventory().removeItem(new CustomItem(e.getItem(), 1)); + } else { - Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> d.getInventory().removeItem(e.getItem()), 2L); + Slimefun.runSync(() -> d.getInventory().removeItem(e.getItem()), 2L); } } } @@ -81,9 +82,11 @@ public class BlockPlacer extends SimpleSlimefunItem { } block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, e.getItem().getType()); - if (d.getInventory().containsAtLeast(e.getItem(), 2)) d.getInventory().removeItem(new CustomItem(e.getItem(), 1)); + if (d.getInventory().containsAtLeast(e.getItem(), 2)) { + d.getInventory().removeItem(new CustomItem(e.getItem(), 1)); + } else { - Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> d.getInventory().removeItem(e.getItem()), 2L); + Slimefun.runSync(() -> d.getInventory().removeItem(e.getItem()), 2L); } } } @@ -96,6 +99,6 @@ public class BlockPlacer extends SimpleSlimefunItem { @Override public void postRegister() { List list = (List) Slimefun.getItemValue(getID(), "unplaceable-blocks"); - blacklist = list.toArray(new String[list.size()]); + blacklist = list.toArray(new String[0]); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java index 27537be0b..449a5680c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java @@ -34,12 +34,12 @@ public class Composter extends SlimefunGadget { private static ItemStack[] getMachineRecipes() { List items = new LinkedList<>(); - for (Material leave: MaterialCollections.getAllLeaves()) { + for (Material leave : MaterialCollections.getAllLeaves()) { items.add(new ItemStack(leave, 8)); items.add(new ItemStack(Material.DIRT)); } - for (Material sapling: MaterialCollections.getAllSaplings()) { + for (Material sapling : MaterialCollections.getAllSaplings()) { items.add(new ItemStack(sapling, 8)); items.add(new ItemStack(Material.DIRT)); } @@ -66,11 +66,11 @@ public class Composter extends SlimefunGadget { String id = BlockStorage.checkID(e.getClickedBlock()); if (id != null && id.equals(getID())) { if (p.hasPermission("slimefun.inventory.bypass") || SlimefunPlugin.getProtectionManager().hasPermission(p, e.getClickedBlock().getLocation(), ProtectableAction.ACCESS_INVENTORIES)) { - final ItemStack input = p.getInventory().getItemInMainHand(); - final Block b = e.getClickedBlock(); + ItemStack input = p.getInventory().getItemInMainHand(); + Block b = e.getClickedBlock(); SlimefunItem machine = SlimefunItem.getByID(id); - for (ItemStack convert: RecipeType.getRecipeInputs(machine)) { + for (ItemStack convert : RecipeType.getRecipeInputs(machine)) { if (convert != null && SlimefunManager.isItemSimilar(input, convert, true)) { ItemStack removing = input.clone(); removing.setAmount(convert.getAmount()); @@ -79,6 +79,7 @@ public class Composter extends SlimefunGadget { for (int i = 1; i < 12; i++) { int j = i; + Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> { if (j < 11) { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType().isBlock() ? input.getType() : Material.HAY_BLOCK); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java index 3fb9dc79e..70b92d65e 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java @@ -46,12 +46,12 @@ public class Crucible extends SlimefunGadget { items.add(new ItemStack(Material.OBSIDIAN, 1)); items.add(new ItemStack(Material.LAVA_BUCKET)); - for (Material leave: MaterialCollections.getAllLeaves()) { + for (Material leave : MaterialCollections.getAllLeaves()) { items.add(new ItemStack(leave, 16)); items.add(new ItemStack(Material.WATER_BUCKET)); } - for (Material sapling: MaterialCollections.getAllTerracottaColors()) { + for (Material sapling : MaterialCollections.getAllTerracottaColors()) { items.add(new ItemStack(sapling, 12)); items.add(new ItemStack(Material.LAVA_BUCKET)); } @@ -70,7 +70,7 @@ public class Crucible extends SlimefunGadget { final Block block = e.getClickedBlock().getRelative(BlockFace.UP); SlimefunItem machine = SlimefunItem.getByID(id); - for (ItemStack convert: RecipeType.getRecipeInputs(machine)) { + for (ItemStack convert : RecipeType.getRecipeInputs(machine)) { if (SlimefunManager.isItemSimilar(input, convert, true)) { e.setCancelled(true); @@ -85,12 +85,14 @@ public class Crucible extends SlimefunGadget { level -= 8; if (level == 0) { block.getWorld().playSound(block.getLocation(), water ? Sound.ENTITY_PLAYER_SPLASH : Sound.BLOCK_LAVA_POP, 1F, 1F); - } else { + } + else { int finalLevel = 7 - level; Slimefun.runSync(() -> runPostTask(block, water ? Sound.ENTITY_PLAYER_SPLASH : Sound.BLOCK_LAVA_POP, finalLevel), 50L); } return true; - } else if (block.getType() == (water ? Material.LAVA : Material.WATER)) { + } + else if (block.getType() == (water ? Material.LAVA : Material.WATER)) { int level = ((Levelled) block.getBlockData()).getLevel(); block.setType(level == 0 || level == 8 ? Material.OBSIDIAN : Material.STONE); block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_EXTINGUISH, 1F, 1F); @@ -136,11 +138,13 @@ public class Crucible extends SlimefunGadget { block.getWorld().playSound(block.getLocation(), Sound.BLOCK_METAL_BREAK, 1F, 1F); return; } + block.getWorld().playSound(block.getLocation(), sound, 1F, 1F); int level = 8 - times; Levelled le = (Levelled) block.getBlockData(); le.setLevel(level); block.setBlockData(le, false); + if (times < 8) Slimefun.runSync(() -> runPostTask(block, sound, times + 1), 50L); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java index 94cc4c537..62447d966 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java @@ -34,7 +34,7 @@ public class InfusedHopper extends SimpleSlimefunItem { return new BlockTicker() { @Override - public void tick(Block b, SlimefunItem item, Config data) { + public void tick(Block b, SlimefunItem sfItem, Config data) { if (b.getType() != Material.HOPPER) { // we're no longer a hopper, we were probably destroyed. skipping this tick. BlockStorage.clearBlockInfo(b); @@ -44,9 +44,9 @@ public class InfusedHopper extends SimpleSlimefunItem { Location l = b.getLocation().add(0.5, 1.2, 0.5); boolean sound = false; - for (Entity n: b.getWorld().getNearbyEntities(l, 3.5D, 3.5D, 3.5D, n -> n instanceof Item && n.isValid() && !n.hasMetadata("no_pickup") && n.getLocation().distanceSquared(l) > 0.1)) { - n.setVelocity(new Vector(0, 0.1, 0)); - n.teleport(l); + for (Entity item : b.getWorld().getNearbyEntities(l, 3.5D, 3.5D, 3.5D, n -> n instanceof Item && n.isValid() && !n.hasMetadata("no_pickup") && n.getLocation().distanceSquared(l) > 0.1)) { + item.setVelocity(new Vector(0, 0.1, 0)); + item.teleport(l); sound = true; } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java index 8f6f0f02e..0b310deb2 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java @@ -50,7 +50,7 @@ public class ReactorAccessPort extends SlimefunItem { if (reactor != null) { menu.replaceExistingItem(INFO_SLOT, new CustomItem(new ItemStack(Material.GREEN_WOOL), "&7Reactor", "", "&6Detected", "", "&7> Click to view Reactor")); menu.addMenuClickHandler(INFO_SLOT, (p, slot, item, action) -> { - if(reactor != null) { + if (reactor != null) { reactor.open(p); } newInstance(menu, b); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java index 7960257cb..c9c1a2128 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java @@ -48,7 +48,8 @@ public class TrashCan extends SlimefunItem implements InventoryBlock { @Override public void tick(Block b, SlimefunItem item, Config data) { BlockMenu menu = BlockStorage.getInventory(b); - for (int slot: getInputSlots()) { + + for (int slot : getInputSlots()) { menu.replaceExistingItem(slot, null); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricSmeltery.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricSmeltery.java index 293597d5b..e09e8237a 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricSmeltery.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricSmeltery.java @@ -20,6 +20,7 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; @@ -31,10 +32,10 @@ public abstract class ElectricSmeltery extends AContainer { private static final int[] border_in = {0, 1, 2, 3, 9, 12, 18, 21, 27, 30, 36, 37, 38, 39}; private static final int[] border_out = {14, 15, 16, 17, 23, 26, 32, 33, 34, 35}; - public ElectricSmeltery(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, name, recipeType, recipe); + public ElectricSmeltery(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); - new BlockMenuPreset(name, getInventoryTitle()) { + new BlockMenuPreset(getID(), getInventoryTitle()) { @Override public void init() { @@ -68,7 +69,6 @@ public abstract class ElectricSmeltery extends AContainer { } else { Collections.sort(slots, new RecipeSorter(menu)); - int[] array = new int[slots.size()]; for (int i = 0; i < slots.size(); i++) { @@ -80,8 +80,9 @@ public abstract class ElectricSmeltery extends AContainer { } }; - registerBlockHandler(name, (p, b, tool, reason) -> { + registerBlockHandler(getID(), (p, b, tool, reason) -> { BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { for (int slot : getInputSlots()) { if (inv.getItemInSlot(slot) != null) { @@ -89,6 +90,7 @@ public abstract class ElectricSmeltery extends AContainer { inv.replaceExistingItem(slot, null); } } + for (int slot : getOutputSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); @@ -96,6 +98,7 @@ public abstract class ElectricSmeltery extends AContainer { } } } + progress.remove(b); processing.remove(b); return true; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java index d856e1e25..5bd3cba76 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java @@ -33,7 +33,7 @@ public abstract class Freezer extends AContainer implements RecipeDisplayItem { public List getDisplayRecipes() { List displayRecipes = new ArrayList<>(recipes.size() * 2); - for (MachineRecipe recipe: recipes) { + for (MachineRecipe recipe : recipes) { displayRecipes.add(recipe.getInput()[0]); displayRecipes.add(recipe.getOutput()[recipe.getOutput().length - 1]); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java index a56ce33d4..73a48e86f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/HeatedPressureChamber.java @@ -61,7 +61,7 @@ public abstract class HeatedPressureChamber extends AContainer { List slots = new ArrayList<>(); - for (int slot: getInputSlots()) { + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), item, true)) { slots.add(slot); } @@ -72,7 +72,6 @@ public abstract class HeatedPressureChamber extends AContainer { } else { Collections.sort(slots, new RecipeSorter(menu)); - int[] array = new int[slots.size()]; for (int i = 0; i < slots.size(); i++) { @@ -94,8 +93,9 @@ public abstract class HeatedPressureChamber extends AContainer { registerRecipe(30, new ItemStack[] {SlimefunItems.BLISTERING_INGOT, SlimefunItems.CARBONADO}, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_2}); registerRecipe(60, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_2, new ItemStack(Material.NETHER_STAR)}, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_3}); registerRecipe(90, new ItemStack[] {SlimefunItems.PLUTONIUM, SlimefunItems.URANIUM}, new ItemStack[] {SlimefunItems.BOOSTED_URANIUM}); - registerRecipe(60, new ItemStack[] {SlimefunItems.NETHER_ICE, SlimefunItems.PLUTONIUM}, new ItemStack[]{new CustomItem(SlimefunItems.ENRICHED_NETHER_ICE, 4)}); - registerRecipe(45, new ItemStack[] {SlimefunItems.ENRICHED_NETHER_ICE}, new ItemStack[]{new CustomItem(SlimefunItems.NETHER_ICE_COOLANT_CELL, 8)}); + registerRecipe(60, new ItemStack[] {SlimefunItems.NETHER_ICE, SlimefunItems.PLUTONIUM}, new ItemStack[] {new CustomItem(SlimefunItems.ENRICHED_NETHER_ICE, 4)}); + registerRecipe(45, new ItemStack[] {SlimefunItems.ENRICHED_NETHER_ICE}, new ItemStack[] {new CustomItem(SlimefunItems.NETHER_ICE_COOLANT_CELL, 8)}); + registerRecipe(12, new ItemStack[] {SlimefunItems.MAGNESIUM_DUST, SlimefunItems.SALT}, new ItemStack[] {SlimefunItems.MAGNESIUM_SALT}); } @Override @@ -153,7 +153,7 @@ public abstract class HeatedPressureChamber extends AContainer { } else { menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " ")); - pushItems(b, processing.get(b).getOutput()); + menu.pushItem(processing.get(b).getOutput()[0], getOutputSlots()); progress.remove(b); processing.remove(b); @@ -164,9 +164,9 @@ public abstract class HeatedPressureChamber extends AContainer { MachineRecipe recipe = findRecipe(menu, found); if (recipe != null) { - if (!fits(b, recipe.getOutput())) return; + if (!menu.fits(recipe.getOutput()[0], getOutputSlots())) return; - for (Map.Entry entry: found.entrySet()) { + for (Map.Entry entry : found.entrySet()) { menu.replaceExistingItem(entry.getKey(), InvUtils.decreaseItem(menu.getItemInSlot(entry.getKey()), entry.getValue())); } @@ -177,9 +177,9 @@ public abstract class HeatedPressureChamber extends AContainer { } private MachineRecipe findRecipe(BlockMenu menu, Map found) { - for (MachineRecipe recipe: recipes) { - for (ItemStack input: recipe.getInput()) { - for (int slot: getInputSlots()) { + for (MachineRecipe recipe : recipes) { + for (ItemStack input : recipe.getInput()) { + for (int slot : getInputSlots()) { if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), input, true)) { found.put(slot, input.getAmount()); break; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java index 1d582210a..0e1f33053 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java @@ -19,6 +19,7 @@ import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; +import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.utils.MachineHelper; public abstract class Refinery extends AContainer implements RecipeDisplayItem { @@ -49,32 +50,36 @@ public abstract class Refinery extends AContainer implements RecipeDisplayItem { @Override protected void tick(Block b) { + BlockMenu menu = BlockStorage.getInventory(b); + if (isProcessing(b)) { int timeleft = progress.get(b); + if (timeleft > 0) { - MachineHelper.updateProgressbar(BlockStorage.getInventory(b), 22, timeleft, processing.get(b).getTicks(), getProgressBar()); + MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar()); if (ChargableBlock.isChargable(b)) { if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return; + ChargableBlock.addCharge(b, -getEnergyConsumption()); progress.put(b, timeleft - 1); } else progress.put(b, timeleft - 1); } else { - BlockStorage.getInventory(b).replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " ")); - pushItems(b, processing.get(b).getOutput()); + menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " ")); + menu.pushItem(processing.get(b).getOutput()[0], getOutputSlots()); progress.remove(b); processing.remove(b); } } else { - for (int slot: getInputSlots()) { - if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.BUCKET_OF_OIL, true)) { + for (int slot : getInputSlots()) { + if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.BUCKET_OF_OIL, true)) { MachineRecipe r = new MachineRecipe(40, new ItemStack[0], new ItemStack[] {SlimefunItems.BUCKET_OF_FUEL}); - if (!fits(b, r.getOutput())) return; - BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), 1)); + if (!menu.fits(SlimefunItems.BUCKET_OF_FUEL, getOutputSlots())) return; + menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1)); processing.put(b, r); progress.put(b, r.getTicks()); break; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java index 19000c38b..ab3a5140a 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/WitherAssembler.java @@ -2,7 +2,6 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; import java.util.logging.Level; -import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -25,6 +24,7 @@ import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; @@ -40,10 +40,10 @@ public class WitherAssembler extends SlimefunItem { protected int energyConsumption = 4096; - public WitherAssembler(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, name, recipeType, recipe); + public WitherAssembler(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); - new BlockMenuPreset(name, "&5Wither Assembler") { + new BlockMenuPreset(getID(), "&5Wither Assembler") { @Override public void init() { @@ -105,7 +105,7 @@ public class WitherAssembler extends SlimefunItem { } }; - registerBlockHandler(name, new SlimefunBlockHandler() { + registerBlockHandler(getID(), new SlimefunBlockHandler() { @Override public void onPlace(Player p, Block b, SlimefunItem item) { @@ -117,13 +117,15 @@ public class WitherAssembler extends SlimefunItem { public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { if (reason == UnregisterReason.EXPLODE) return false; BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { - for (int slot: getSoulSandSlots()) { + for (int slot : getSoulSandSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); inv.replaceExistingItem(slot, null); } } + for (int slot : getWitherSkullSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); @@ -216,7 +218,8 @@ public class WitherAssembler extends SlimefunItem { if (soulsand > 3 && skulls > 2) { for (int slot : getSoulSandSlots()) { if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) { - final int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount(); + int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount(); + if (amount >= soulsand) { BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), soulsand)); break; @@ -230,7 +233,8 @@ public class WitherAssembler extends SlimefunItem { for (int slot : getWitherSkullSlots()) { if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) { - final int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount(); + int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount(); + if (amount >= skulls) { BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), skulls)); break; @@ -243,10 +247,9 @@ public class WitherAssembler extends SlimefunItem { } ChargableBlock.addCharge(b, -energyConsumption); + double offset = Double.parseDouble(BlockStorage.getLocationInfo(b.getLocation(), "offset")); - final double offset = Double.parseDouble(BlockStorage.getLocationInfo(b.getLocation(), "offset")); - - Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, () -> b.getWorld().spawnEntity(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + offset, b.getZ() + 0.5D), EntityType.WITHER)); + Slimefun.runSync(() -> b.getWorld().spawnEntity(new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + offset, b.getZ() + 0.5D), EntityType.WITHER)); } } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java index 2f7a62312..48f878cee 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/XPCollector.java @@ -47,7 +47,7 @@ public class XPCollector extends SlimefunItem implements InventoryBlock { public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { BlockMenu inv = BlockStorage.getInventory(b); if (inv != null) { - for (int slot: getOutputSlots()) { + for (int slot : getOutputSlots()) { if (inv.getItemInSlot(slot) != null) { b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); inv.replaceExistingItem(slot, null); @@ -70,10 +70,8 @@ public class XPCollector extends SlimefunItem implements InventoryBlock { } protected void constructMenu(BlockMenuPreset preset) { - for (int i : border) { - preset.addItem(i, new CustomItem(new ItemStack(Material.PURPLE_STAINED_GLASS_PANE), " "), - (p, slot, item, action) -> false - ); + for (int slot : border) { + preset.addItem(slot, new CustomItem(new ItemStack(Material.PURPLE_STAINED_GLASS_PANE), " "), (p, s, item, action) -> false); } } @@ -112,6 +110,7 @@ public class XPCollector extends SlimefunItem implements InventoryBlock { int withdrawn = 0; BlockMenu menu = BlockStorage.getInventory(b); + for (int level = 0; level < getEXP(b); level = level + 10) { if (menu.fits(new CustomItem(Material.EXPERIENCE_BOTTLE, "&aFlask of Knowledge"), getOutputSlots())) { withdrawn = withdrawn + 10; @@ -124,7 +123,9 @@ public class XPCollector extends SlimefunItem implements InventoryBlock { private int getEXP(Block b) { Config cfg = BlockStorage.getLocationInfo(b.getLocation()); - if (cfg.contains("stored-exp")) return Integer.parseInt(cfg.getString("stored-exp")); + if (cfg.contains("stored-exp")) { + return Integer.parseInt(cfg.getString("stored-exp")); + } else { BlockStorage.addBlockInfo(b, "stored-exp", "0"); return 0; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java new file mode 100644 index 000000000..40cb1ed87 --- /dev/null +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/MagnesiumGenerator.java @@ -0,0 +1,34 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators; + +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AGenerator; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + +public abstract class MagnesiumGenerator extends AGenerator { + + public MagnesiumGenerator(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + } + + @Override + public void registerDefaultRecipes() { + registerFuel(new MachineFuel(10, SlimefunItems.MAGNESIUM_SALT)); + } + + @Override + public ItemStack getProgressBar() { + return new ItemStack(Material.FLINT_AND_STEEL); + } + + @Override + public String getInventoryTitle() { + return "&cMagnesium-powered Generator"; + } + +} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java index 22402962f..f0d14dbe5 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java @@ -55,8 +55,8 @@ public class GrindStone extends MultiBlockMachine { Dispenser disp = (Dispenser) dispBlock.getState(); Inventory inv = disp.getInventory(); - for (ItemStack current: inv.getContents()) { - for (ItemStack convert: RecipeType.getRecipeInputs(this)) { + for (ItemStack current : inv.getContents()) { + for (ItemStack convert : RecipeType.getRecipeInputs(this)) { if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) { ItemStack output = RecipeType.getRecipeOutput(this, convert); Inventory outputInv = findOutputInventory(output, dispBlock, inv); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java index 56b055c4e..428120ebe 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreWasher.java @@ -1,6 +1,8 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks; +import java.util.List; import java.util.Random; +import java.util.stream.Collectors; import org.bukkit.Effect; import org.bukkit.Material; @@ -41,6 +43,11 @@ public class OreWasher extends MultiBlockMachine { ); } + @Override + public List getDisplayRecipes() { + return recipes.stream().map(items -> items[0]).collect(Collectors.toList()); + } + @Override public void onInteract(Player p, Block b) { Block dispBlock = b.getRelative(BlockFace.UP); @@ -48,7 +55,7 @@ public class OreWasher extends MultiBlockMachine { Inventory inv = disp.getInventory(); ItemStack[] items = SlimefunPlugin.getUtilities().oreWasherOutputs; - for (ItemStack current: inv.getContents()) { + for (ItemStack current : inv.getContents()) { if (current != null) { if (SlimefunManager.isItemSimilar(current, SlimefunItems.SIFTED_ORE, true)) { ItemStack adding = items[new Random().nextInt(items.length)]; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java index 91bcb4254..040099b6f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java @@ -248,5 +248,6 @@ public final class ResearchSetup { Slimefun.registerResearch(new Research(250, "Charging Bench", 8), SlimefunItems.CHARGING_BENCH); Slimefun.registerResearch(new Research(251, "Nether Gold Pan", 8), SlimefunItems.NETHER_GOLD_PAN); Slimefun.registerResearch(new Research(252, "Electric Press", 16), SlimefunItems.ELECTRIC_PRESS, SlimefunItems.ELECTRIC_PRESS_2); + Slimefun.registerResearch(new Research(253, "Power from Magnesium", 20), SlimefunItems.MAGNESIUM_SALT, SlimefunItems.MAGNESIUM_GENERATOR); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 6396d922c..64f2ec24d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -146,6 +146,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generato import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.CoalGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.CombustionGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.LavaGenerator; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.MagnesiumGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOMiner; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOScannerBlock; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.NetherDrill; @@ -2092,6 +2093,20 @@ public final class SlimefunSetup { } }.registerChargeableBlock(true, 1024); + + new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.MAGNESIUM_SALT, RecipeType.HEATED_PRESSURE_CHAMBER, + new ItemStack[] {SlimefunItems.MAGNESIUM_DUST, SlimefunItems.SALT, null, null, null, null, null, null, null}) + .register(true); + + new MagnesiumGenerator(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.MAGNESIUM_GENERATOR, RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {null, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.COMPRESSED_CARBON, new ItemStack(Material.WATER_BUCKET), SlimefunItems.COMPRESSED_CARBON, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.DURALUMIN_INGOT, SlimefunItems.DURALUMIN_INGOT}) { + + @Override + public int getEnergyProduction() { + return 18; + } + + }.registerUnrechargeableBlock(true, 128); new AutoEnchanter(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.AUTO_ENCHANTER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.ENCHANTING_TABLE), null, SlimefunItems.CARBONADO, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.CARBONADO, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN}) @@ -2789,7 +2804,7 @@ public final class SlimefunSetup { .register(true); new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BLISTERING_INGOT_3, RecipeType.HEATED_PRESSURE_CHAMBER, - new ItemStack[] {SlimefunItems.BLISTERING_INGOT_2,new ItemStack(Material.NETHER_STAR), null, null, null, null, null, null, null}) + new ItemStack[] {SlimefunItems.BLISTERING_INGOT_2, new ItemStack(Material.NETHER_STAR), null, null, null, null, null, null, null}) .register(true); new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.ENRICHED_NETHER_ICE, RecipeType.HEATED_PRESSURE_CHAMBER, @@ -3225,7 +3240,7 @@ public final class SlimefunSetup { }.registerChargeableBlock(true, 512); - new ElectricSmeltery(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_SMELTERY, "ELECTRIC_SMELTERY", RecipeType.ENHANCED_CRAFTING_TABLE, + new ElectricSmeltery(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.ELECTRIC_SMELTERY, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {new ItemStack(Material.NETHER_BRICKS), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.NETHER_BRICKS), SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_INGOT_FACTORY, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { @Override @@ -3240,7 +3255,7 @@ public final class SlimefunSetup { }.registerChargeableBlock(true, 512); - new ElectricSmeltery(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_SMELTERY_2, "ELECTRIC_SMELTERY_2", RecipeType.ENHANCED_CRAFTING_TABLE, + new ElectricSmeltery(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.ELECTRIC_SMELTERY_2, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.HEATING_COIL, SlimefunItems.ELECTRIC_SMELTERY, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { @Override @@ -3255,10 +3270,9 @@ public final class SlimefunSetup { }.registerChargeableBlock(true, 1024); - new WitherAssembler(Categories.ELECTRICITY, SlimefunItems.WITHER_ASSEMBLER, "WITHER_ASSEMBLER", RecipeType.ENHANCED_CRAFTING_TABLE, + new WitherAssembler(Categories.ELECTRICITY, (SlimefunItemStack) SlimefunItems.WITHER_ASSEMBLER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.BLISTERING_INGOT_3, new ItemStack(Material.NETHER_STAR), SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.CARBONADO_EDGED_CAPACITOR}) .registerChargeableBlock(true, 4096); - } public static void registerPostHandler(PostSlimefunLoadingHandler handler) {