diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a3263327..f7d6321c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -92,6 +92,7 @@ * Fixed #2257 * Fixed #2260 * Fixed #2263 +* Fixed #2269 ## Release Candidate 15 (01 Aug 2020) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/energy/EnergyNet.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/energy/EnergyNet.java index 9e4c65991..b0ca332ed 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/energy/EnergyNet.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/energy/EnergyNet.java @@ -116,6 +116,7 @@ public class EnergyNet extends Network { if (!regulator.equals(b.getLocation())) { SimpleHologram.update(b, "&4Multiple Energy Regulators connected"); + SlimefunPlugin.getProfiler().closeEntry(b.getLocation(), SlimefunItems.ENERGY_REGULATOR.getItem(), timestamp.get()); return; } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/profiler/PerformanceSummary.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/profiler/PerformanceSummary.java index af5cb695e..fd5a785d1 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/profiler/PerformanceSummary.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/profiler/PerformanceSummary.java @@ -23,9 +23,9 @@ import net.md_5.bungee.api.chat.hover.content.Text; class PerformanceSummary { // The threshold at which a Block or Chunk is significant enough to appear in /sf timings - private static final int VISIBILITY_THRESHOLD = 300_000; - private static final int MIN_ITEMS = 4; - private static final int MAX_ITEMS = 12; + private static final int VISIBILITY_THRESHOLD = 260_000; + private static final int MIN_ITEMS = 6; + private static final int MAX_ITEMS = 20; private final SlimefunProfiler profiler; private final PerformanceRating rating; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/AbstractCargoNode.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/AbstractCargoNode.java index fac303f2f..606302b13 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/AbstractCargoNode.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/cargo/AbstractCargoNode.java @@ -77,27 +77,26 @@ abstract class AbstractCargoNode extends SlimefunItem { protected void addChannelSelector(Block b, BlockMenu menu, int slotPrev, int slotCurrent, int slotNext) { boolean isChestTerminalInstalled = SlimefunPlugin.getThirdPartySupportService().isChestTerminalInstalled(); + int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), FREQUENCY) == null) ? 0 : (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), FREQUENCY)))); menu.replaceExistingItem(slotPrev, new CustomItem(SlimefunUtils.getCustomHead(HeadTexture.CARGO_ARROW_LEFT.getTexture()), "&bPrevious Channel", "", "&e> Click to decrease the Channel ID by 1")); menu.addMenuClickHandler(slotPrev, (p, slot, item, action) -> { - int channel = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), FREQUENCY)) - 1; + int newChannel = channel + 1; if (channel < 0) { if (isChestTerminalInstalled) { - channel = 16; + newChannel = 16; } else { - channel = 15; + newChannel = 15; } } - BlockStorage.addBlockInfo(b, FREQUENCY, String.valueOf(channel)); + BlockStorage.addBlockInfo(b, FREQUENCY, String.valueOf(newChannel)); updateBlockMenu(menu, b); return false; }); - int channel = ((!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), FREQUENCY) == null) ? 0 : (Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), FREQUENCY)))); - if (channel == 16) { menu.replaceExistingItem(slotCurrent, new CustomItem(SlimefunUtils.getCustomHead(HeadTexture.CHEST_TERMINAL.getTexture()), "&bChannel ID: &3" + (channel + 1))); menu.addMenuClickHandler(slotCurrent, ChestMenuUtils.getEmptyClickHandler()); @@ -109,18 +108,18 @@ abstract class AbstractCargoNode extends SlimefunItem { menu.replaceExistingItem(slotNext, new CustomItem(SlimefunUtils.getCustomHead(HeadTexture.CARGO_ARROW_RIGHT.getTexture()), "&bNext Channel", "", "&e> Click to increase the Channel ID by 1")); menu.addMenuClickHandler(slotNext, (p, slot, item, action) -> { - int channeln = Integer.parseInt(BlockStorage.getLocationInfo(b.getLocation(), FREQUENCY)) + 1; + int newChannel = channel + 1; if (isChestTerminalInstalled) { - if (channeln > 16) { - channeln = 0; + if (newChannel > 16) { + newChannel = 0; } } - else if (channeln > 15) { - channeln = 0; + else if (newChannel > 15) { + newChannel = 0; } - BlockStorage.addBlockInfo(b, FREQUENCY, String.valueOf(channeln)); + BlockStorage.addBlockInfo(b, FREQUENCY, String.valueOf(newChannel)); updateBlockMenu(menu, b); return false; }); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/generators/SolarGenerator.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/generators/SolarGenerator.java index 5513058bc..14103d05b 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/generators/SolarGenerator.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/generators/SolarGenerator.java @@ -8,13 +8,26 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; import io.github.thebusybiscuit.slimefun4.core.attributes.EnergyNetProvider; import io.github.thebusybiscuit.slimefun4.core.handlers.BlockUseHandler; -import io.github.thebusybiscuit.slimefun4.core.networks.energy.EnergyNetComponentType; +import io.github.thebusybiscuit.slimefun4.core.networks.energy.EnergyNet; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; +/** + * The {@link SolarGenerator} is a simple {@link EnergyNetProvider} which generates energy if + * it has direct contact with sunlight. + * + * Some versions of the {@link SolarGenerator} will even generate energy at night, this is determined by + * {@link #getNightEnergy()}. + * + * @author TheBusyBiscuit + * + * @see EnergyNet + * @see EnergyNetProvider + * + */ public class SolarGenerator extends SlimefunItem implements EnergyNetProvider { private final int dayEnergy; @@ -47,11 +60,6 @@ public class SolarGenerator extends SlimefunItem implements EnergyNetProvider { return nightEnergy; } - @Override - public EnergyNetComponentType getEnergyComponentType() { - return EnergyNetComponentType.GENERATOR; - } - @Override public int getCapacity() { return 0; @@ -64,23 +72,20 @@ public class SolarGenerator extends SlimefunItem implements EnergyNetProvider { if (world.getEnvironment() != Environment.NORMAL) { return 0; } + else { + boolean isDaytime = isDaytime(world); - boolean isDaytime = isDaytime(world); - - // Performance optimization for daytime-only solar generators - if (!isDaytime && getNightEnergy() < 0.1) { - return 0; + // Performance optimization for daytime-only solar generators + if (!isDaytime && getNightEnergy() < 1) { + return 0; + } + else if (!world.isChunkLoaded(l.getBlockX() >> 4, l.getBlockZ() >> 4) || l.getBlock().getLightFromSky() < 15) { + return 0; + } + else { + return isDaytime ? getDayEnergy() : getNightEnergy(); + } } - - if (!world.isChunkLoaded(l.getBlockX() >> 4, l.getBlockZ() >> 4) || l.getBlock().getLightFromSky() != 15) { - return 0; - } - - if (isDaytime) { - return getDayEnergy(); - } - - return getNightEnergy(); } /** @@ -93,7 +98,8 @@ public class SolarGenerator extends SlimefunItem implements EnergyNetProvider { * @return Whether the given {@link World} has daytime and no active thunderstorm */ private boolean isDaytime(World world) { - return !world.hasStorm() && !world.isThundering() && (world.getTime() < 12300 || world.getTime() > 23850); + long time = world.getTime(); + return !world.hasStorm() && !world.isThundering() && (time < 12300 || time > 23850); } @Override diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoAnvil.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoAnvil.java index 2e15e23dd..408e07519 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoAnvil.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/AutoAnvil.java @@ -1,32 +1,34 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines; import org.bukkit.Material; -import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; -import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; -import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; +/** + * The {@link AutoAnvil} is an electric machine which can repair any {@link ItemStack} using + * Duct tape. + * + * @author TheBusyBiscuit + * + */ public abstract class AutoAnvil extends AContainer { - public AutoAnvil(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { - super(category, item, recipeType, recipe); - } + private final int repairFactor; - @Override - public String getInventoryTitle() { - return "Auto-Anvil"; + public AutoAnvil(Category category, int repairFactor, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + + this.repairFactor = repairFactor; } @Override @@ -44,61 +46,32 @@ public abstract class AutoAnvil extends AContainer { return "AUTO_ANVIL"; } - public abstract int getRepairFactor(); - @Override - protected void tick(Block b) { - BlockMenu menu = BlockStorage.getInventory(b); + protected MachineRecipe findNextRecipe(BlockMenu menu) { + for (int slot : getInputSlots()) { + ItemStack ductTape = menu.getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1] : getInputSlots()[0]); + ItemStack item = menu.getItemInSlot(slot); - if (isProcessing(b)) { - int timeleft = progress.get(b); + if (item != null && item.getType().getMaxDurability() > 0 && ((Damageable) item.getItemMeta()).getDamage() > 0) { + if (SlimefunUtils.isItemSimilar(ductTape, SlimefunItems.DUCT_TAPE, true, false)) { + ItemStack repairedItem = repair(item); - if (timeleft > 0) { - ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar()); - - if (getCharge(b.getLocation()) < getEnergyConsumption()) { - return; - } - - removeCharge(b.getLocation(), getEnergyConsumption()); - progress.put(b, timeleft - 1); - } - else { - menu.replaceExistingItem(22, new CustomItem(Material.BLACK_STAINED_GLASS_PANE, " ")); - menu.pushItem(processing.get(b).getOutput()[0].clone(), getOutputSlots()); - - progress.remove(b); - processing.remove(b); - } - } - else { - MachineRecipe recipe = null; - - for (int slot : getInputSlots()) { - ItemStack target = menu.getItemInSlot(slot == getInputSlots()[0] ? getInputSlots()[1] : getInputSlots()[0]); - ItemStack item = menu.getItemInSlot(slot); - - if (item != null && item.getType().getMaxDurability() > 0 && ((Damageable) item.getItemMeta()).getDamage() > 0) { - if (SlimefunUtils.isItemSimilar(target, SlimefunItems.DUCT_TAPE, true)) { - ItemStack repaired = repair(item); - recipe = new MachineRecipe(30, new ItemStack[] { target, item }, new ItemStack[] { repaired }); + if (!menu.fits(repairedItem, getOutputSlots())) { + return null; } - break; - } - } + for (int inputSlot : getInputSlots()) { + menu.consumeItem(inputSlot); + } - if (recipe != null) { - if (!menu.fits(recipe.getOutput()[0], getOutputSlots())) return; - - for (int slot : getInputSlots()) { - menu.consumeItem(slot); + return new MachineRecipe(30, new ItemStack[] { ductTape, item }, new ItemStack[] { repairedItem }); } - processing.put(b, recipe); - progress.put(b, recipe.getTicks()); + break; } } + + return null; } private ItemStack repair(ItemStack item) { @@ -106,7 +79,8 @@ public abstract class AutoAnvil extends AContainer { ItemMeta meta = repaired.getItemMeta(); short maxDurability = item.getType().getMaxDurability(); - short durability = (short) (((Damageable) meta).getDamage() - (maxDurability / getRepairFactor())); + int repairPercentage = 100 / repairFactor; + short durability = (short) (((Damageable) meta).getDamage() - (maxDurability / repairPercentage)); if (durability < 0) { durability = 0; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.java index b68ba0e83..594dde304 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/gps/GPSTransmitter.java @@ -21,8 +21,11 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class GPSTransmitter extends SimpleSlimefunItem implements EnergyNetComponent { - public GPSTransmitter(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + private final int capacity; + + public GPSTransmitter(Category category, int tier, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); + this.capacity = 4 << (2 * tier); addItemHandler(onPlace()); registerBlockHandler(getID(), (p, b, stack, reason) -> { @@ -32,6 +35,11 @@ public abstract class GPSTransmitter extends SimpleSlimefunItem imp }); } + @Override + public int getCapacity() { + return capacity; + } + private BlockPlaceHandler onPlace() { return new BlockPlaceHandler(false) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/NetherIceResource.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/NetherIceResource.java index 994b20290..eef7c7e85 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/NetherIceResource.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/NetherIceResource.java @@ -1,46 +1,19 @@ package io.github.thebusybiscuit.slimefun4.implementation.resources; -import org.bukkit.NamespacedKey; import org.bukkit.World.Environment; import org.bukkit.block.Biome; -import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; -import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; -class NetherIceResource implements GEOResource { +class NetherIceResource extends SlimefunResource { - private final NamespacedKey key = new NamespacedKey(SlimefunPlugin.instance(), "nether_ice"); + NetherIceResource() { + super("nether_ice", "Nether Ice", SlimefunItems.NETHER_ICE, 6, true); + } @Override public int getDefaultSupply(Environment environment, Biome biome) { return environment == Environment.NETHER ? 32 : 0; } - @Override - public NamespacedKey getKey() { - return key; - } - - @Override - public int getMaxDeviation() { - return 6; - } - - @Override - public String getName() { - return "Nether Ice"; - } - - @Override - public ItemStack getItem() { - return SlimefunItems.NETHER_ICE.clone(); - } - - @Override - public boolean isObtainableFromGEOMiner() { - return true; - } - } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/OilResource.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/OilResource.java index f40777c83..551af133b 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/OilResource.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/OilResource.java @@ -1,17 +1,15 @@ package io.github.thebusybiscuit.slimefun4.implementation.resources; -import org.bukkit.NamespacedKey; import org.bukkit.World.Environment; import org.bukkit.block.Biome; -import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; -import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; -class OilResource implements GEOResource { +class OilResource extends SlimefunResource { - private final NamespacedKey key = new NamespacedKey(SlimefunPlugin.instance(), "oil"); + OilResource() { + super("oil", "Oil", SlimefunItems.OIL_BUCKET, 8, false); + } @Override public int getDefaultSupply(Environment environment, Biome biome) { @@ -74,29 +72,4 @@ class OilResource implements GEOResource { } } - @Override - public NamespacedKey getKey() { - return key; - } - - @Override - public int getMaxDeviation() { - return 8; - } - - @Override - public String getName() { - return "Oil"; - } - - @Override - public ItemStack getItem() { - return SlimefunItems.OIL_BUCKET.clone(); - } - - @Override - public boolean isObtainableFromGEOMiner() { - return false; - } - } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SaltResource.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SaltResource.java index a93014bab..a75ad23c5 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SaltResource.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SaltResource.java @@ -1,17 +1,15 @@ package io.github.thebusybiscuit.slimefun4.implementation.resources; -import org.bukkit.NamespacedKey; import org.bukkit.World.Environment; import org.bukkit.block.Biome; -import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; -import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; -class SaltResource implements GEOResource { +class SaltResource extends SlimefunResource { - private final NamespacedKey key = new NamespacedKey(SlimefunPlugin.instance(), "salt"); + SaltResource() { + super("salt", "Salt", SlimefunItems.SALT, 18, true); + } @Override public int getDefaultSupply(Environment environment, Biome biome) { @@ -51,29 +49,4 @@ class SaltResource implements GEOResource { } } - @Override - public int getMaxDeviation() { - return 18; - } - - @Override - public NamespacedKey getKey() { - return key; - } - - @Override - public String getName() { - return "Salt"; - } - - @Override - public ItemStack getItem() { - return SlimefunItems.SALT.clone(); - } - - @Override - public boolean isObtainableFromGEOMiner() { - return true; - } - } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SlimefunResource.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SlimefunResource.java new file mode 100644 index 000000000..e09b82b58 --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/SlimefunResource.java @@ -0,0 +1,55 @@ +package io.github.thebusybiscuit.slimefun4.implementation.resources; + +import org.apache.commons.lang.Validate; +import org.bukkit.NamespacedKey; +import org.bukkit.inventory.ItemStack; + +import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; +import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; + +abstract class SlimefunResource implements GEOResource { + + private final NamespacedKey key; + private final String defaultName; + private final ItemStack item; + private final int maxDeviation; + private final boolean geoMiner; + + SlimefunResource(String key, String defaultName, ItemStack item, int maxDeviation, boolean geoMiner) { + Validate.notNull(key, "NamespacedKey cannot be null!"); + Validate.notNull(defaultName, "The default name cannot be null!"); + Validate.notNull(item, "item cannot be null!"); + + this.key = new NamespacedKey(SlimefunPlugin.instance(), key); + this.defaultName = defaultName; + this.item = item; + this.maxDeviation = maxDeviation; + this.geoMiner = geoMiner; + } + + @Override + public NamespacedKey getKey() { + return key; + } + + @Override + public String getName() { + return defaultName; + } + + @Override + public ItemStack getItem() { + return item.clone(); + } + + @Override + public int getMaxDeviation() { + return maxDeviation; + } + + @Override + public boolean isObtainableFromGEOMiner() { + return geoMiner; + } + +} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/UraniumResource.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/UraniumResource.java index b85528480..57324b8ae 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/UraniumResource.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/resources/UraniumResource.java @@ -1,17 +1,15 @@ package io.github.thebusybiscuit.slimefun4.implementation.resources; -import org.bukkit.NamespacedKey; import org.bukkit.World.Environment; import org.bukkit.block.Biome; -import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; -import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; -class UraniumResource implements GEOResource { +class UraniumResource extends SlimefunResource { - private final NamespacedKey key = new NamespacedKey(SlimefunPlugin.instance(), "uranium"); + UraniumResource() { + super("uranium", "Small Chunks of Uranium", SlimefunItems.SMALL_URANIUM, 2, true); + } @Override public int getDefaultSupply(Environment envionment, Biome biome) { @@ -22,29 +20,4 @@ class UraniumResource implements GEOResource { return 0; } - @Override - public NamespacedKey getKey() { - return key; - } - - @Override - public int getMaxDeviation() { - return 2; - } - - @Override - public String getName() { - return "Small Chunks of Uranium"; - } - - @Override - public ItemStack getItem() { - return SlimefunItems.SMALL_URANIUM.clone(); - } - - @Override - public boolean isObtainableFromGEOMiner() { - return true; - } - } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java index f44798589..998540777 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java @@ -2047,14 +2047,9 @@ public final class SlimefunItemSetup { new ItemStack[] {new ItemStack(Material.REDSTONE), new ItemStack(Material.ANVIL), new ItemStack(Material.REDSTONE), SlimefunItems.CARBONADO, SlimefunItems.AUTO_ENCHANTER, SlimefunItems.CARBONADO, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN, SlimefunItems.WITHER_PROOF_OBSIDIAN}) .register(plugin); - new AutoAnvil(categories.electricity, SlimefunItems.AUTO_ANVIL, RecipeType.ENHANCED_CRAFTING_TABLE, + new AutoAnvil(categories.electricity, 10, SlimefunItems.AUTO_ANVIL, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.ANVIL), null, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.REINFORCED_ALLOY_INGOT, new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK)}) { - @Override - public int getRepairFactor() { - return 10; - } - @Override public int getCapacity() { return 128; @@ -2067,14 +2062,9 @@ public final class SlimefunItemSetup { }.register(plugin); - new AutoAnvil(categories.electricity, SlimefunItems.AUTO_ANVIL_2, RecipeType.ENHANCED_CRAFTING_TABLE, + new AutoAnvil(categories.electricity, 25, SlimefunItems.AUTO_ANVIL_2, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.AUTO_ANVIL, null, SlimefunItems.STEEL_PLATE, SlimefunItems.HEATING_COIL, SlimefunItems.STEEL_PLATE, new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK), new ItemStack(Material.IRON_BLOCK)}) { - @Override - public int getRepairFactor() { - return 4; - } - @Override public int getCapacity() { return 256; @@ -2100,7 +2090,7 @@ public final class SlimefunItemSetup { new ItemStack[] {SlimefunItems.BRASS_INGOT, new ItemStack(Material.ORANGE_STAINED_GLASS), SlimefunItems.BRASS_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.TIN_DUST, SlimefunItems.POWER_CRYSTAL, SlimefunItems.BRASS_INGOT, new ItemStack(Material.ORANGE_STAINED_GLASS), SlimefunItems.BRASS_INGOT}) .register(plugin); - new GPSTransmitter(categories.gps, SlimefunItems.GPS_TRANSMITTER, RecipeType.ENHANCED_CRAFTING_TABLE, + new GPSTransmitter(categories.gps, 1, SlimefunItems.GPS_TRANSMITTER, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.STEEL_INGOT, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_INGOT}) { @Override @@ -2108,11 +2098,6 @@ public final class SlimefunItemSetup { return y; } - @Override - public int getCapacity() { - return 16; - } - @Override public int getEnergyConsumption() { return 1; @@ -2120,7 +2105,7 @@ public final class SlimefunItemSetup { }.register(plugin); - new GPSTransmitter(categories.gps, SlimefunItems.GPS_TRANSMITTER_2, RecipeType.ENHANCED_CRAFTING_TABLE, + new GPSTransmitter(categories.gps, 2, SlimefunItems.GPS_TRANSMITTER_2, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.CARBON, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER}) { @Override @@ -2128,11 +2113,6 @@ public final class SlimefunItemSetup { return y * 4 + 100; } - @Override - public int getCapacity() { - return 64; - } - @Override public int getEnergyConsumption() { return 3; @@ -2140,7 +2120,7 @@ public final class SlimefunItemSetup { }.register(plugin); - new GPSTransmitter(categories.gps, SlimefunItems.GPS_TRANSMITTER_3, RecipeType.ENHANCED_CRAFTING_TABLE, + new GPSTransmitter(categories.gps, 3, SlimefunItems.GPS_TRANSMITTER_3, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.CARBONADO, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2}) { @Override @@ -2148,11 +2128,6 @@ public final class SlimefunItemSetup { return y * 16 + 500; } - @Override - public int getCapacity() { - return 256; - } - @Override public int getEnergyConsumption() { return 11; @@ -2160,7 +2135,7 @@ public final class SlimefunItemSetup { }.register(plugin); - new GPSTransmitter(categories.gps, SlimefunItems.GPS_TRANSMITTER_4, RecipeType.ENHANCED_CRAFTING_TABLE, + new GPSTransmitter(categories.gps, 4, SlimefunItems.GPS_TRANSMITTER_4, RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.NICKEL_INGOT, SlimefunItems.CARBONADO, SlimefunItems.NICKEL_INGOT, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3}) { @Override @@ -2168,11 +2143,6 @@ public final class SlimefunItemSetup { return y * 64 + 600; } - @Override - public int getCapacity() { - return 1024; - } - @Override public int getEnergyConsumption() { return 46;