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

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
coco0325 2019-12-22 01:08:49 +08:00
commit 060051623d
10 changed files with 69 additions and 77 deletions

View File

@ -0,0 +1,55 @@
package io.github.thebusybiscuit.slimefun4.api.chunks;
import java.util.Objects;
import org.bukkit.Chunk;
import org.bukkit.World;
public final class ChunkLocation {
private final World world;
private final int x;
private final int z;
public ChunkLocation(Chunk chunk) {
this(chunk.getWorld(), chunk.getX(), chunk.getZ());
}
public ChunkLocation(World world, int x, int z) {
this.world = world;
this.x = x;
this.z = z;
}
public World getWorld() {
return world;
}
public int getX() {
return x;
}
public int getZ() {
return z;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof ChunkLocation) {
ChunkLocation l = (ChunkLocation) obj;
return world.getUID().equals(l.getWorld().getUID()) && l.getX() == x && l.getZ() == z;
}
else return false;
}
@Override
public int hashCode() {
return Objects.hash(world, x, z);
}
@Override
public String toString() {
return world.getName() + " - Chunk [" + x + " | " + z + "]";
}
}

View File

@ -69,6 +69,7 @@ public final class OreGenSystem {
if (resource == null) return 0; if (resource == null) return 0;
String supply = BlockStorage.getChunkInfo(chunk, "resources_" + resource.getName().toUpperCase()); String supply = BlockStorage.getChunkInfo(chunk, "resources_" + resource.getName().toUpperCase());
if (supply != null) { if (supply != null) {
return Integer.parseInt(supply); return Integer.parseInt(supply);
} }

View File

@ -749,9 +749,6 @@ public final class SlimefunItems {
public static final ItemStack ENRICHED_NETHER_ICE = new SlimefunItemStack("ENRICHED_NETHER_ICE", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2M4MThhYTEzYWFiYzcyOTQ4MzhkMjFjYWFjMDU3ZTk3YmQ4Yzg5NjQxYTBjMGY4YTU1NDQyZmY0ZTI3In19fQ==", "&eEnriched Nether Ice", "", "&2Radiation Level: EXTREMELY HIGH", "&4&oHazmat Suit required"); public static final ItemStack ENRICHED_NETHER_ICE = new SlimefunItemStack("ENRICHED_NETHER_ICE", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2M4MThhYTEzYWFiYzcyOTQ4MzhkMjFjYWFjMDU3ZTk3YmQ4Yzg5NjQxYTBjMGY4YTU1NDQyZmY0ZTI3In19fQ==", "&eEnriched Nether Ice", "", "&2Radiation Level: EXTREMELY HIGH", "&4&oHazmat Suit required");
public static final ItemStack NETHER_ICE_COOLANT_CELL = new SlimefunItemStack("NETHER_ICE_COOLANT_CELL", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGQzY2Q0MTI1NTVmODk3MDE2MjEzZTVkNmM3NDMxYjQ0OGI5ZTU2NDRlMWIxOWVjNTFiNTMxNmYzNTg0MGUwIn19fQ==", "&6Nether Ice Coolant Cell"); public static final ItemStack NETHER_ICE_COOLANT_CELL = new SlimefunItemStack("NETHER_ICE_COOLANT_CELL", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGQzY2Q0MTI1NTVmODk3MDE2MjEzZTVkNmM3NDMxYjQ0OGI5ZTU2NDRlMWIxOWVjNTFiNTMxNmYzNTg0MGUwIn19fQ==", "&6Nether Ice Coolant Cell");
@Deprecated
public static final ItemStack NETHER_DRILL = new CustomItem(Material.RED_TERRACOTTA, "&4Nether Drill", "", "&rAllows you to mine Nether Ice", "", MachineTier.END_GAME.and(MachineType.MACHINE), "&8\u21E8 &7Speed: 1x", "&8\u21E8 &e\u26A1 &7102 J/s", "", "&c&l! &cCan only be used in the Nether!", "&c&l! &cMake sure to Geo-Scan the Chunk first");
// Cargo // Cargo
public static final ItemStack CARGO_MANAGER = new SlimefunItemStack("CARGO_MANAGER", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUxMGJjODUzNjJhMTMwYTZmZjlkOTFmZjExZDZmYTQ2ZDdkMTkxMmEzNDMxZjc1MTU1OGVmM2M0ZDljMiJ9fX0=", "&6Cargo Manager", "", "&rCore Component of an Item Transport Network"); public static final ItemStack CARGO_MANAGER = new SlimefunItemStack("CARGO_MANAGER", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUxMGJjODUzNjJhMTMwYTZmZjlkOTFmZjExZDZmYTQ2ZDdkMTkxMmEzNDMxZjc1MTU1OGVmM2M0ZDljMiJ9fX0=", "&6Cargo Manager", "", "&rCore Component of an Item Transport Network");
public static final ItemStack CARGO_NODE = new SlimefunItemStack("CARGO_NODE", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMDdiN2VmNmZkNzg2NDg2NWMzMWMxZGM4N2JlZDI0YWI1OTczNTc5ZjVjNjYzOGZlY2I4ZGVkZWI0NDNmZjAifX19", "&7Cargo Node &c(Connector)", "", "&rCargo Connector Pipe"); public static final ItemStack CARGO_NODE = new SlimefunItemStack("CARGO_NODE", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMDdiN2VmNmZkNzg2NDg2NWMzMWMxZGM4N2JlZDI0YWI1OTczNTc5ZjVjNjYzOGZlY2I4ZGVkZWI0NDNmZjAifX19", "&7Cargo Node &c(Connector)", "", "&rCargo Connector Pipe");

View File

@ -69,6 +69,8 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem {
} }
public void addRecipe(ItemStack[] input, ItemStack output) { public void addRecipe(ItemStack[] input, ItemStack output) {
if (output == null) throw new IllegalArgumentException("Recipes must have an Output!");
recipes.add(input); recipes.add(input);
recipes.add(new ItemStack[] {output}); recipes.add(new ItemStack[] {output});
} }
@ -82,6 +84,7 @@ public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem {
public void install() { public void install() {
for (ItemStack recipeItem : shownRecipes) { for (ItemStack recipeItem : shownRecipes) {
SlimefunItem item = SlimefunItem.getByItem(recipeItem); SlimefunItem item = SlimefunItem.getByItem(recipeItem);
if (item == null || !SlimefunItem.isDisabled(recipeItem)) { if (item == null || !SlimefunItem.isDisabled(recipeItem)) {
this.recipes.add(new ItemStack[] {recipeItem}); this.recipes.add(new ItemStack[] {recipeItem});
} }

View File

@ -190,7 +190,7 @@ public abstract class GEOMiner extends AContainer implements InventoryBlock, Rec
processing.put(b, r); processing.put(b, r);
progress.put(b, r.getTicks()); progress.put(b, r.getTicks());
OreGenSystem.setSupplies(resource, b.getChunk(), supplies - 1); OreGenSystem.setSupplies(resource, chunk, supplies - 1);
SimpleHologram.update(b, "&7Mining: &r" + resource.getName()); SimpleHologram.update(b, "&7Mining: &r" + resource.getName());
return; return;
} }

View File

@ -1,50 +0,0 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.Slimefun.GEO.OreGenResource;
import me.mrCookieSlime.Slimefun.GEO.OreGenSystem;
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.ADrill;
@Deprecated
public abstract class NetherDrill extends ADrill {
public NetherDrill(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, name, recipeType, recipe);
}
@Override
public OreGenResource getOreGenResource() {
return OreGenSystem.getResource("Nether Ice");
}
@Override
public ItemStack[] getOutputItems() {
return new ItemStack[] {SlimefunItems.NETHER_ICE};
}
@Override
public int getProcessingTime() {
return 24;
}
@Override
public String getInventoryTitle() {
return "&4Nether Drill";
}
@Override
public ItemStack getProgressBar() {
return new ItemStack(Material.DIAMOND_PICKAXE);
}
@Override
public String getMachineIdentifier() {
return "NETHER_DRILL";
}
}

View File

@ -1,5 +1,6 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo; package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo;
import org.bukkit.Chunk;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -97,7 +98,8 @@ public abstract class OilPump extends AContainer {
} }
else { else {
OreGenResource oil = OreGenSystem.getResource("Oil"); OreGenResource oil = OreGenSystem.getResource("Oil");
int supplies = OreGenSystem.getSupplies(oil, b.getChunk(), false); Chunk chunk = b.getChunk();
int supplies = OreGenSystem.getSupplies(oil, chunk, false);
if (supplies > 0) { if (supplies > 0) {
for (int slot : getInputSlots()) { for (int slot : getInputSlots()) {
@ -111,7 +113,7 @@ public abstract class OilPump extends AContainer {
inv.replaceExistingItem(slot, InvUtils.decreaseItem(inv.getItemInSlot(slot), 1)); inv.replaceExistingItem(slot, InvUtils.decreaseItem(inv.getItemInSlot(slot), 1));
processing.put(b, r); processing.put(b, r);
progress.put(b, r.getTicks()); progress.put(b, r.getTicks());
OreGenSystem.setSupplies(oil, b.getChunk(), supplies - 1); OreGenSystem.setSupplies(oil, chunk, supplies - 1);
break; break;
} }
} }

View File

@ -1,7 +1,7 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks; package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.bukkit.Effect; import org.bukkit.Effect;
@ -58,7 +58,7 @@ public class OreWasher extends MultiBlockMachine {
for (ItemStack current : inv.getContents()) { for (ItemStack current : inv.getContents()) {
if (current != null) { if (current != null) {
if (SlimefunManager.isItemSimilar(current, SlimefunItems.SIFTED_ORE, true)) { if (SlimefunManager.isItemSimilar(current, SlimefunItems.SIFTED_ORE, true)) {
ItemStack adding = items[new Random().nextInt(items.length)]; ItemStack adding = items[ThreadLocalRandom.current().nextInt(items.length)];
Inventory outputInv = null; Inventory outputInv = null;
if (!SlimefunPlugin.getSettings().legacyOreWasher) { if (!SlimefunPlugin.getSettings().legacyOreWasher) {

View File

@ -231,7 +231,7 @@ public final class ResearchSetup {
Slimefun.registerResearch(new Research(232, "Advanced Electric Smeltery", 28), SlimefunItems.ELECTRIC_SMELTERY_2); Slimefun.registerResearch(new Research(232, "Advanced Electric Smeltery", 28), SlimefunItems.ELECTRIC_SMELTERY_2);
Slimefun.registerResearch(new Research(233, "Advanced Androids - Farmer", 30), SlimefunItems.PROGRAMMABLE_ANDROID_2_FARMER); Slimefun.registerResearch(new Research(233, "Advanced Androids - Farmer", 30), SlimefunItems.PROGRAMMABLE_ANDROID_2_FARMER);
Slimefun.registerResearch(new Research(234, "Lava Generator", 38), SlimefunItems.LAVA_GENERATOR); Slimefun.registerResearch(new Research(234, "Lava Generator", 38), SlimefunItems.LAVA_GENERATOR);
Slimefun.registerResearch(new Research(235, "Nether Ice Coolant", 45), SlimefunItems.NETHER_ICE, SlimefunItems.ENRICHED_NETHER_ICE, SlimefunItems.NETHER_ICE_COOLANT_CELL, SlimefunItems.NETHER_DRILL); Slimefun.registerResearch(new Research(235, "Nether Ice Coolant", 45), SlimefunItems.NETHER_ICE, SlimefunItems.ENRICHED_NETHER_ICE, SlimefunItems.NETHER_ICE_COOLANT_CELL);
Slimefun.registerResearch(new Research(236, "Nether Star Reactor", 60), SlimefunItems.NETHERSTAR_REACTOR); Slimefun.registerResearch(new Research(236, "Nether Star Reactor", 60), SlimefunItems.NETHERSTAR_REACTOR);
Slimefun.registerResearch(new Research(237, "Blistering Radioactivity", 38), SlimefunItems.BLISTERING_INGOT, SlimefunItems.BLISTERING_INGOT_2, SlimefunItems.BLISTERING_INGOT_3); Slimefun.registerResearch(new Research(237, "Blistering Radioactivity", 38), SlimefunItems.BLISTERING_INGOT, SlimefunItems.BLISTERING_INGOT_2, SlimefunItems.BLISTERING_INGOT_3);
Slimefun.registerResearch(new Research(239, "Automatic Ignition Chamber", 12), SlimefunItems.IGNITION_CHAMBER); Slimefun.registerResearch(new Research(239, "Automatic Ignition Chamber", 12), SlimefunItems.IGNITION_CHAMBER);

View File

@ -148,7 +148,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generato
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.MagnesiumGenerator; 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.GEOMiner;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOScannerBlock; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.GEOScannerBlock;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.NetherDrill;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.OilPump; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.geo.OilPump;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.ElevatorPlate; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.ElevatorPlate;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter;
@ -822,7 +821,7 @@ public final class SlimefunSetup {
.register(true); .register(true);
new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.SALT, RecipeType.ORE_WASHER, new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.SALT, RecipeType.ORE_WASHER,
new ItemStack[] {null, null, null, null, new ItemStack(Material.SAND, 4), null, null, null, null}) new ItemStack[] {new ItemStack(Material.SAND, 4), null, null, null, null, null, null, null, null})
.register(true); .register(true);
new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.HEAVY_CREAM, RecipeType.ENHANCED_CRAFTING_TABLE, new SlimefunItem(Categories.MISC, (SlimefunItemStack) SlimefunItems.HEAVY_CREAM, RecipeType.ENHANCED_CRAFTING_TABLE,
@ -2683,21 +2682,6 @@ public final class SlimefunSetup {
}.registerChargeableBlock(true, 512); }.registerChargeableBlock(true, 512);
new NetherDrill(Categories.GPS, SlimefunItems.NETHER_DRILL, "NETHER_DRILL", RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {null, null, null, null, new CustomItem(Material.BARRIER, "&4DEPRECATED", "", "&cThis Item will soon be removed.", "&cUse the GEO Miner instead."), null, null, null, null}){
@Override
public int getSpeed() {
return 1;
}
@Override
public int getEnergyConsumption() {
return 51;
}
}.registerChargeableBlock(true, 1024);
new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BUCKET_OF_OIL, new RecipeType(SlimefunItems.OIL_PUMP), new SlimefunItem(Categories.RESOURCES, (SlimefunItemStack) SlimefunItems.BUCKET_OF_OIL, new RecipeType(SlimefunItems.OIL_PUMP),
new ItemStack[] {null, null, null, null, new ItemStack(Material.BUCKET), null, null, null, null}) new ItemStack[] {null, null, null, null, new ItemStack(Material.BUCKET), null, null, null, null})
.register(true); .register(true);