mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Added Magnesium Salt and Magnesium-powered Generator
This commit is contained in:
parent
59fb83e871
commit
33adb7e79a
@ -828,6 +828,9 @@ public final class SlimefunItems {
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -16,9 +16,9 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayIt
|
||||
|
||||
public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem {
|
||||
|
||||
protected List<ItemStack[]> recipes;
|
||||
protected List<ItemStack> shownRecipes;
|
||||
private BlockFace trigger;
|
||||
protected final List<ItemStack[]> recipes;
|
||||
protected final List<ItemStack> 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<Material> 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()]);
|
||||
|
@ -224,8 +224,8 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
||||
}
|
||||
|
||||
private MachineFuel findRecipe(BlockMenu menu, Map<Integer, Integer> 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<ItemStack> getDisplayRecipes() {
|
||||
List<ItemStack> list = new ArrayList<>();
|
||||
|
||||
for (MachineFuel fuel: recipes) {
|
||||
for (MachineFuel fuel : recipes) {
|
||||
ItemStack item = fuel.getInput().clone();
|
||||
ItemMeta im = item.getItemMeta();
|
||||
List<String> lore = new ArrayList<>();
|
||||
|
@ -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;
|
||||
|
@ -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<AutonomousMachineHandler> {
|
||||
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<AutonomousMachineHandler> {
|
||||
|
||||
}
|
||||
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<AutonomousMachineHandler> {
|
||||
@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]);
|
||||
}
|
||||
}
|
||||
|
@ -34,12 +34,12 @@ public class Composter extends SlimefunGadget {
|
||||
private static ItemStack[] getMachineRecipes() {
|
||||
List<ItemStack> 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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ public class InfusedHopper extends SimpleSlimefunItem<BlockTicker> {
|
||||
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<BlockTicker> {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -33,7 +33,7 @@ public abstract class Freezer extends AContainer implements RecipeDisplayItem {
|
||||
public List<ItemStack> getDisplayRecipes() {
|
||||
List<ItemStack> 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]);
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public abstract class HeatedPressureChamber extends AContainer {
|
||||
|
||||
List<Integer> 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<Integer, Integer> entry: found.entrySet()) {
|
||||
for (Map.Entry<Integer, Integer> 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<Integer, Integer> 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;
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
}
|
||||
|
||||
}
|
@ -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);
|
||||
|
@ -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<ItemStack> 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)];
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
@ -2093,6 +2094,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})
|
||||
.registerChargeableBlock(true, 128);
|
||||
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user