From 7d8ef33d788547c40505d6462e23badf2f147d9b Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Mon, 22 Jun 2020 12:07:56 +0200 Subject: [PATCH] Changed the texture for the Nuclear Reactor --- CHANGELOG.md | 1 + .../core/services/github/Contributor.java | 5 +- .../localization/SlimefunLocalization.java | 4 +- ...edLanguage.java => SupportedLanguage.java} | 11 +- .../services/localization/Translators.java | 165 +++++++++--------- .../implementation/SlimefunItems.java | 2 +- .../items/electric/machines/FluidPump.java | 26 +-- .../items/electric/reactors/Reactor.java | 4 +- .../listeners/DebugFishListener.java | 2 +- .../slimefun4/utils/HeadTexture.java | 4 +- .../slimefun4/utils/SlimefunUtils.java | 21 ++- 11 files changed, 133 insertions(+), 112 deletions(-) rename src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/{EmbeddedLanguage.java => SupportedLanguage.java} (94%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38decbb2d..ade83db78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ * Coolant Cells now last twice as long * Ticking blocks will now catch more errors caused by addons * Massive performance improvements +* Changed the texture for the Nuclear Reactor #### Fixes * Fixed #2005 diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/Contributor.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/Contributor.java index 4aaf4b3bb..58251cb7c 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/Contributor.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/github/Contributor.java @@ -13,6 +13,7 @@ import org.apache.commons.lang.Validate; import org.bukkit.ChatColor; import io.github.thebusybiscuit.cscorelib2.data.ComputedOptional; +import io.github.thebusybiscuit.slimefun4.utils.HeadTexture; /** * Represents a {@link Contributor} who contributed to a GitHub repository. @@ -25,8 +26,6 @@ import io.github.thebusybiscuit.cscorelib2.data.ComputedOptional; */ public class Contributor { - private static final String PLACEHOLDER_HEAD = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDZiYTYzMzQ0ZjQ5ZGQxYzRmNTQ4OGU5MjZiZjNkOWUyYjI5OTE2YTZjNTBkNjEwYmI0MGE1MjczZGM4YzgyIn19fQ=="; - private final String githubUsername; private final String minecraftUsername; private final String profileLink; @@ -133,7 +132,7 @@ public class Contributor { */ public String getTexture() { if (!headTexture.isComputed() || !headTexture.isPresent()) { - return PLACEHOLDER_HEAD; + return HeadTexture.UNKNOWN.getTexture(); } else { return headTexture.get(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java index ecdc1eb0e..0a491bcf4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java @@ -78,9 +78,9 @@ public abstract class SlimefunLocalization extends Localization implements Keyed protected abstract void addLanguage(String id, String texture); protected void loadEmbeddedLanguages() { - for (EmbeddedLanguage lang : EmbeddedLanguage.values()) { + for (SupportedLanguage lang : SupportedLanguage.values()) { if (lang.isReadyForRelease() || SlimefunPlugin.getUpdater().getBranch() != SlimefunBranch.STABLE) { - addLanguage(lang.getId(), lang.getTexture()); + addLanguage(lang.getLanguageId(), lang.getTexture()); } } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/EmbeddedLanguage.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java similarity index 94% rename from src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/EmbeddedLanguage.java rename to src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java index 33c6bf2da..cfbeed21f 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/EmbeddedLanguage.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java @@ -12,7 +12,7 @@ import org.bukkit.inventory.ItemStack; * @see Language * */ -enum EmbeddedLanguage { +enum SupportedLanguage { ENGLISH("en", true, "a1701f21835a898b20759fb30a583a38b994abf60d3912ab4ce9f2311e74f72"), GERMAN("de", true, "5e7899b4806858697e283f084d9173fe487886453774626b24bd8cfecc77b3f"), @@ -52,22 +52,23 @@ enum EmbeddedLanguage { AFRIKAANS("af", false, "961a1eacc10524d1f45f23b0e487bb2fc33948d9676b418b19a3da0b109d0e3c"), MALAY("ms", false, "754b9041dea6db6db44750f1385a743adf653767b4b8802cad4c585dd3f5be46"), THAI("th", true, "2a7916e4a852f7e6f3f3de19c7fb57686a37bce834bd54684a7dbef8d53fb"), - MACEDONIAN("mk", false, "a0e0b0b5d87a855466980a101a757bcdb5f77d9f7287889f3efa998ee0472fc0"); + MACEDONIAN("mk", false, "a0e0b0b5d87a855466980a101a757bcdb5f77d9f7287889f3efa998ee0472fc0"), + TAGALOG("tl", false, "9306c0c1ce6a9c61bb42a572c49e6d0ed20e0e6b3d122cc64c339cbf78e9e937"); private final String id; private final boolean releaseReady; private final String textureHash; - EmbeddedLanguage(String id, boolean releaseReady, String textureHash) { + SupportedLanguage(String id, boolean releaseReady, String textureHash) { this.id = id; this.releaseReady = releaseReady; this.textureHash = textureHash; } - public String getId() { + public String getLanguageId() { return id; } - + public boolean isReadyForRelease() { return releaseReady; } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Translators.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Translators.java index e27667a19..e9afa3edb 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Translators.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Translators.java @@ -21,144 +21,147 @@ public class Translators { this.github = github; // Translators - German - addTranslator("TheBusyBiscuit", EmbeddedLanguage.GERMAN, false); - addTranslator("MeerBiene", EmbeddedLanguage.GERMAN, true); - addTranslator("daro2404", EmbeddedLanguage.GERMAN, true); + addTranslator("TheBusyBiscuit", SupportedLanguage.GERMAN, false); + addTranslator("MeerBiene", SupportedLanguage.GERMAN, true); + addTranslator("daro2404", SupportedLanguage.GERMAN, true); // Translators - French - addTranslator("JustDams", "D4ms_", EmbeddedLanguage.FRENCH, true); - addTranslator("edkerforne", EmbeddedLanguage.FRENCH, true); - addTranslator("tnthomastn", EmbeddedLanguage.FRENCH, true); - addTranslator("Noumaa", EmbeddedLanguage.FRENCH, true); - addTranslator("ishi-sama", EmbeddedLanguage.FRENCH, true); + addTranslator("JustDams", "D4ms_", SupportedLanguage.FRENCH, true); + addTranslator("edkerforne", SupportedLanguage.FRENCH, true); + addTranslator("tnthomastn", SupportedLanguage.FRENCH, true); + addTranslator("Noumaa", SupportedLanguage.FRENCH, true); + addTranslator("ishi-sama", SupportedLanguage.FRENCH, true); // Translators - Italian - addTranslator("xXDOTTORXx", EmbeddedLanguage.ITALIAN, true); - addTranslator("Sfiguz7", EmbeddedLanguage.ITALIAN, false); - addTranslator("ThatsCube", EmbeddedLanguage.ITALIAN, true); - addTranslator("alessandrobasi", EmbeddedLanguage.ITALIAN, true); - addTranslator("dracrus", EmbeddedLanguage.ITALIAN, true); + addTranslator("xXDOTTORXx", SupportedLanguage.ITALIAN, true); + addTranslator("Sfiguz7", SupportedLanguage.ITALIAN, false); + addTranslator("ThatsCube", SupportedLanguage.ITALIAN, true); + addTranslator("alessandrobasi", SupportedLanguage.ITALIAN, true); + addTranslator("dracrus", SupportedLanguage.ITALIAN, true); // Translators - Latvian - addTranslator("AgnisT", "NIKNAIZ", EmbeddedLanguage.LATVIAN, true); + addTranslator("AgnisT", "NIKNAIZ", SupportedLanguage.LATVIAN, true); // Translators - Hungarian - addTranslator("andris155", EmbeddedLanguage.HUNGARIAN, true); + addTranslator("andris155", SupportedLanguage.HUNGARIAN, true); // Translators - Vietnamese - addTranslator("HSGamer", EmbeddedLanguage.VIETNAMESE, false); - addTranslator("JustMangoT", "JFF_JustMango", EmbeddedLanguage.VIETNAMESE, true); - addTranslator("Julie-Sigtuna", EmbeddedLanguage.VIETNAMESE, true); - addTranslator("nahkd123", EmbeddedLanguage.VIETNAMESE, true); - addTranslator("JustAPieOP", EmbeddedLanguage.VIETNAMESE, true); - addTranslator("that4life", EmbeddedLanguage.VIETNAMESE, true); + addTranslator("HSGamer", SupportedLanguage.VIETNAMESE, false); + addTranslator("JustMangoT", "JFF_JustMango", SupportedLanguage.VIETNAMESE, true); + addTranslator("Julie-Sigtuna", SupportedLanguage.VIETNAMESE, true); + addTranslator("nahkd123", SupportedLanguage.VIETNAMESE, true); + addTranslator("JustAPieOP", SupportedLanguage.VIETNAMESE, true); + addTranslator("that4life", SupportedLanguage.VIETNAMESE, true); // Translators - Slovak - addTranslator("KillerXCoder", EmbeddedLanguage.SLOVAK, true); - addTranslator("PixelHotDog", EmbeddedLanguage.SLOVAK, true); + addTranslator("KillerXCoder", SupportedLanguage.SLOVAK, true); + addTranslator("PixelHotDog", SupportedLanguage.SLOVAK, true); // Translators - Czech - addTranslator("Nekomitsuki", EmbeddedLanguage.CZECH, true); - addTranslator("GGGEDR", EmbeddedLanguage.CZECH, true); - addTranslator("jakmanda05", EmbeddedLanguage.CZECH, true); - addTranslator("Aile-Minicraftcz", EmbeddedLanguage.CZECH, true); - addTranslator("Tengoblinekcz", EmbeddedLanguage.CZECH, true); - addTranslator("sirhCCC", EmbeddedLanguage.CZECH, true); - addTranslator("Thezerix", EmbeddedLanguage.CZECH, true); - addTranslator("IsLineCZ", EmbeddedLanguage.CZECH, true); - addTranslator("MrFriggo", EmbeddedLanguage.CZECH, true); - addTranslator("100petr", EmbeddedLanguage.CZECH, true); - addTranslator("frfole", EmbeddedLanguage.CZECH, true); + addTranslator("Nekomitsuki", SupportedLanguage.CZECH, true); + addTranslator("GGGEDR", SupportedLanguage.CZECH, true); + addTranslator("jakmanda05", SupportedLanguage.CZECH, true); + addTranslator("Aile-Minicraftcz", SupportedLanguage.CZECH, true); + addTranslator("Tengoblinekcz", SupportedLanguage.CZECH, true); + addTranslator("sirhCCC", SupportedLanguage.CZECH, true); + addTranslator("Thezerix", SupportedLanguage.CZECH, true); + addTranslator("IsLineCZ", SupportedLanguage.CZECH, true); + addTranslator("MrFriggo", SupportedLanguage.CZECH, true); + addTranslator("100petr", SupportedLanguage.CZECH, true); + addTranslator("frfole", SupportedLanguage.CZECH, true); // Translators - Russian - addTranslator("SoSeDiK", EmbeddedLanguage.RUSSIAN, false); - addTranslator("KostaTV", EmbeddedLanguage.RUSSIAN, true); - addTranslator("TomWiskis", "MrWiskis", EmbeddedLanguage.RUSSIAN, true); - addTranslator("cyb3rm4n", "GP_CyberMan", EmbeddedLanguage.RUSSIAN, true); + addTranslator("SoSeDiK", SupportedLanguage.RUSSIAN, false); + addTranslator("KostaTV", SupportedLanguage.RUSSIAN, true); + addTranslator("TomWiskis", "MrWiskis", SupportedLanguage.RUSSIAN, true); + addTranslator("cyb3rm4n", "GP_CyberMan", SupportedLanguage.RUSSIAN, true); // Translators - Ukrainian - addTranslator("SoSeDiK", EmbeddedLanguage.UKRAINIAN, false); + addTranslator("SoSeDiK", SupportedLanguage.UKRAINIAN, false); // Translators - Spanish - addTranslator("Luu7", "_Luu", EmbeddedLanguage.SPANISH, true); - addTranslator("Vravinite", EmbeddedLanguage.SPANISH, true); - addTranslator("NotUmBr4", EmbeddedLanguage.SPANISH, true); - addTranslator("dbzjjoe", EmbeddedLanguage.SPANISH, true); + addTranslator("Luu7", "_Luu", SupportedLanguage.SPANISH, true); + addTranslator("Vravinite", SupportedLanguage.SPANISH, true); + addTranslator("NotUmBr4", SupportedLanguage.SPANISH, true); + addTranslator("dbzjjoe", SupportedLanguage.SPANISH, true); // Translators - Swedish - addTranslator("NihilistBrew", "ma1yang2", EmbeddedLanguage.SWEDISH, false); - addTranslator("Tra-sh", "TurretTrash", EmbeddedLanguage.SWEDISH, true); + addTranslator("NihilistBrew", "ma1yang2", SupportedLanguage.SWEDISH, false); + addTranslator("Tra-sh", "TurretTrash", SupportedLanguage.SWEDISH, true); // Translators - Dutch - addTranslator("Dr4gonD", "DragonD", EmbeddedLanguage.DUTCH, true); - addTranslator("svr333", EmbeddedLanguage.DUTCH, false); - addTranslator("PabloMarcendo", EmbeddedLanguage.DUTCH, true); + addTranslator("Dr4gonD", "DragonD", SupportedLanguage.DUTCH, true); + addTranslator("svr333", SupportedLanguage.DUTCH, false); + addTranslator("PabloMarcendo", SupportedLanguage.DUTCH, true); // Translators - Danish - addTranslator("Mini-kun", EmbeddedLanguage.DANISH, true); + addTranslator("Mini-kun", SupportedLanguage.DANISH, true); // Translators - Polish - addTranslator("ascpixel", "kbartek_", EmbeddedLanguage.POLISH, true); - addTranslator("Xylitus", EmbeddedLanguage.POLISH, true); - addTranslator("Wirusiu", EmbeddedLanguage.POLISH, true); - addTranslator("koloksk", EmbeddedLanguage.POLISH, true); + addTranslator("ascpixel", "kbartek_", SupportedLanguage.POLISH, true); + addTranslator("Xylitus", SupportedLanguage.POLISH, true); + addTranslator("Wirusiu", SupportedLanguage.POLISH, true); + addTranslator("koloksk", SupportedLanguage.POLISH, true); // Translators - Chinese (China) - addTranslator("StarWishsama", "StarWish_Sama", EmbeddedLanguage.CHINESE_CHINA, false); - addTranslator("Rothes", EmbeddedLanguage.CHINESE_CHINA, true); - addTranslator("Chihsiao", EmbeddedLanguage.CHINESE_CHINA, true); + addTranslator("StarWishsama", "StarWish_Sama", SupportedLanguage.CHINESE_CHINA, false); + addTranslator("Rothes", SupportedLanguage.CHINESE_CHINA, true); + addTranslator("Chihsiao", SupportedLanguage.CHINESE_CHINA, true); // Translators - Chinese (Taiwan) - addTranslator("BrineYT", "HeroBrineKing", EmbeddedLanguage.CHINESE_TAIWAN, true); - addTranslator("mio9", EmbeddedLanguage.CHINESE_TAIWAN, true); + addTranslator("BrineYT", "HeroBrineKing", SupportedLanguage.CHINESE_TAIWAN, true); + addTranslator("mio9", SupportedLanguage.CHINESE_TAIWAN, true); // Translators - Arabic - addTranslator("mohkamfer", "AgentBabbie", EmbeddedLanguage.ARABIC, false); + addTranslator("mohkamfer", "AgentBabbie", SupportedLanguage.ARABIC, false); // Translators - Hebrew - addTranslator("dhtdht020", EmbeddedLanguage.HEBREW, false); - addTranslator("Eylonnn", EmbeddedLanguage.HEBREW, false); + addTranslator("dhtdht020", SupportedLanguage.HEBREW, false); + addTranslator("Eylonnn", SupportedLanguage.HEBREW, false); // Translators - Japanese - addTranslator("bito-blosh", "Bloshop", EmbeddedLanguage.JAPANESE, false); + addTranslator("bito-blosh", "Bloshop", SupportedLanguage.JAPANESE, false); // Translators - Korean - addTranslator("kwonms871", EmbeddedLanguage.KOREAN, true); - addTranslator("yumjunstar", EmbeddedLanguage.KOREAN, true); - addTranslator("BlWon", EmbeddedLanguage.KOREAN, true); - addTranslator("20181241", EmbeddedLanguage.KOREAN, true); + addTranslator("kwonms871", SupportedLanguage.KOREAN, true); + addTranslator("yumjunstar", SupportedLanguage.KOREAN, true); + addTranslator("BlWon", SupportedLanguage.KOREAN, true); + addTranslator("20181241", SupportedLanguage.KOREAN, true); // Translators - Indonesian - addTranslator("diradho", EmbeddedLanguage.INDONESIAN, false); + addTranslator("diradho", SupportedLanguage.INDONESIAN, false); // Translators - Thai - addTranslator("phoomin2012", EmbeddedLanguage.THAI, false); - addTranslator("film2860", EmbeddedLanguage.THAI, false); - addTranslator("Rafrael17k", EmbeddedLanguage.THAI, false); - addTranslator("Cupjok", EmbeddedLanguage.THAI, false); + addTranslator("phoomin2012", SupportedLanguage.THAI, false); + addTranslator("film2860", SupportedLanguage.THAI, false); + addTranslator("Rafrael17k", SupportedLanguage.THAI, false); + addTranslator("Cupjok", SupportedLanguage.THAI, false); // Translators - Turkish - addTranslator("Yunuskrn", EmbeddedLanguage.TURKISH, true); - addTranslator("LinoxGH", "ajan_12", EmbeddedLanguage.TURKISH, false); + addTranslator("Yunuskrn", SupportedLanguage.TURKISH, true); + addTranslator("LinoxGH", "ajan_12", SupportedLanguage.TURKISH, false); // Translators - Macedonian - addTranslator("TheSilentPro", EmbeddedLanguage.MACEDONIAN, true); + addTranslator("TheSilentPro", SupportedLanguage.MACEDONIAN, true); // Translators - Bulgarian - addTranslator("DNBGlol", EmbeddedLanguage.BULGARIAN, true); + addTranslator("DNBGlol", SupportedLanguage.BULGARIAN, true); + + // Translators - Tagalog + addTranslator("sccooottttie", SupportedLanguage.TAGALOG, true); // Translators - Portuguese (Brazil) - addTranslator("G4stavoM1ster", EmbeddedLanguage.PORTUGUESE_BRAZIL, true); - addTranslator("yurinogueira", EmbeddedLanguage.PORTUGUESE_BRAZIL, true); - addTranslator("Sakanas", EmbeddedLanguage.PORTUGUESE_BRAZIL, true); + addTranslator("G4stavoM1ster", SupportedLanguage.PORTUGUESE_BRAZIL, true); + addTranslator("yurinogueira", SupportedLanguage.PORTUGUESE_BRAZIL, true); + addTranslator("Sakanas", SupportedLanguage.PORTUGUESE_BRAZIL, true); } - private void addTranslator(String name, EmbeddedLanguage lang, boolean lock) { + private void addTranslator(String name, SupportedLanguage lang, boolean lock) { addTranslator(name, name, lang, lock); } - private void addTranslator(String username, String minecraftName, EmbeddedLanguage lang, boolean lock) { - Contributor contributor = github.addContributor(minecraftName, "https://github.com/" + username, "translator," + lang.getId(), 0); + private void addTranslator(String username, String minecraftName, SupportedLanguage lang, boolean lock) { + Contributor contributor = github.addContributor(minecraftName, "https://github.com/" + username, "translator," + lang.getLanguageId(), 0); if (lock) { contributor.lock(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunItems.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunItems.java index a298bded8..905d7cb19 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunItems.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunItems.java @@ -756,7 +756,7 @@ public final class SlimefunItems { public static final SlimefunItemStack EXP_COLLECTOR = new SlimefunItemStack("XP_COLLECTOR", HeadTexture.EXP_COLLECTOR, "&aEXP Collector", "", "&rCollects nearby Exp and stores it", "", LoreBuilder.machine(MachineTier.END_GAME, MachineType.MACHINE), LoreBuilder.powerBuffer(1024), LoreBuilder.powerPerSecond(20)); public static final SlimefunItemStack REACTOR_COOLANT_CELL = new SlimefunItemStack("REACTOR_COLLANT_CELL", HeadTexture.COOLANT_CELL, "&bReactor Coolant Cell"); - public static final SlimefunItemStack NUCLEAR_REACTOR = new SlimefunItemStack("NUCLEAR_REACTOR", HeadTexture.GENERATOR, "&2Nuclear Reactor", "", "&rRequires Cooling!", "&8\u21E8 &bMust be surrounded by Water", "&8\u21E8 &bMust be supplied with Reactor Coolant Cells", "", LoreBuilder.machine(MachineTier.END_GAME, MachineType.GENERATOR), LoreBuilder.powerBuffer(16384), LoreBuilder.powerPerSecond(500)); + public static final SlimefunItemStack NUCLEAR_REACTOR = new SlimefunItemStack("NUCLEAR_REACTOR", HeadTexture.NUCLEAR_REACTOR, "&2Nuclear Reactor", "", "&rRequires Cooling!", "&8\u21E8 &bMust be surrounded by Water", "&8\u21E8 &bMust be supplied with Reactor Coolant Cells", "", LoreBuilder.machine(MachineTier.END_GAME, MachineType.GENERATOR), LoreBuilder.powerBuffer(16384), LoreBuilder.powerPerSecond(500)); public static final SlimefunItemStack NETHER_STAR_REACTOR = new SlimefunItemStack("NETHERSTAR_REACTOR", HeadTexture.GENERATOR, "&fNether Star Reactor", "", "&fRuns on Nether Stars", "&8\u21E8 &bMust be surrounded by Water", "&8\u21E8 &bMust be supplied with Nether Ice Coolant Cells", "", LoreBuilder.machine(MachineTier.END_GAME, MachineType.GENERATOR), LoreBuilder.powerBuffer(32768), LoreBuilder.powerPerSecond(1024), "&8\u21E8 &4Causes nearby Entities to get Withered"); public static final SlimefunItemStack REACTOR_ACCESS_PORT = new SlimefunItemStack("REACTOR_ACCESS_PORT", Material.CYAN_TERRACOTTA, "&2Reactor Access Port", "", "&rAllows you to interact with a Reactor", "&rvia Cargo Nodes, can also be used", "&ras a Buffer", "", "&8\u21E8 &eMust be placed &a3 Blocks &eabove the Reactor"); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/FluidPump.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/FluidPump.java index 76cfe2051..c405cb0f4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/FluidPump.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/FluidPump.java @@ -34,6 +34,7 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; public class FluidPump extends SimpleSlimefunItem implements InventoryBlock, EnergyNetComponent { private static final int ENERGY_CONSUMPTION = 32; + private static final int RANGE = 42; private final int[] border = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 13, 31, 36, 37, 38, 39, 40, 41, 42, 43, 44, 22 }; private final int[] inputBorder = { 9, 10, 11, 12, 18, 21, 27, 28, 29, 30 }; @@ -95,7 +96,7 @@ public class FluidPump extends SimpleSlimefunItem implements Invent protected void tick(Block b) { Block fluid = b.getRelative(BlockFace.DOWN); - Optional bucket = getBucket(fluid); + Optional bucket = getFilledBucket(fluid); if (bucket.isPresent() && ChargableBlock.getCharge(b) >= ENERGY_CONSUMPTION) { BlockMenu menu = BlockStorage.getInventory(b); @@ -108,15 +109,8 @@ public class FluidPump extends SimpleSlimefunItem implements Invent ChargableBlock.addCharge(b, -ENERGY_CONSUMPTION); menu.consumeItem(slot); - menu.pushItem(bucket.get(), getOutputSlots()); - - if (fluid.getType() == Material.WATER) { - fluid.setType(Material.AIR); - } - else { - List list = Vein.find(fluid, 50, block -> block.isLiquid() && block.getType() == fluid.getType()); - list.get(list.size() - 1).setType(Material.AIR); - } + menu.pushItem(bucket.get().clone(), getOutputSlots()); + consumeFluid(fluid); return; } @@ -124,7 +118,17 @@ public class FluidPump extends SimpleSlimefunItem implements Invent } } - private Optional getBucket(Block fluid) { + private void consumeFluid(Block fluid) { + if (fluid.getType() == Material.WATER) { + fluid.setType(Material.AIR); + return; + } + + List list = Vein.find(fluid, RANGE, block -> block.isLiquid() && block.getType() == fluid.getType()); + list.get(list.size() - 1).setType(Material.AIR); + } + + private Optional getFilledBucket(Block fluid) { if (fluid.getType() == Material.LAVA) { return Optional.of(new ItemStack(Material.LAVA_BUCKET)); } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/reactors/Reactor.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/reactors/Reactor.java index 6e4f335fe..c6a1e11f4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/reactors/Reactor.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/reactors/Reactor.java @@ -89,7 +89,7 @@ public abstract class Reactor extends AbstractEnergyProvider { } if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getLocationInfo(b.getLocation(), MODE).equals(ReactorMode.GENERATOR.toString())) { - menu.replaceExistingItem(4, new CustomItem(SlimefunItems.NUCLEAR_REACTOR, "&7Focus: &eElectricity", "", "&6Your Reactor will focus on Power Generation", "&6If your Energy Network doesn't need Power", "&6it will not produce any either", "", "&7> Click to change the Focus to &eProduction")); + menu.replaceExistingItem(4, new CustomItem(SlimefunItems.NUCLEAR_REACTOR, "&7Focus: &eElectricity", "", "&6Your Reactor will focus on Power Generation", "&6If your Energy Network doesn't need Power", "&6it will not produce any either", "", "&7\u21E8 Click to change the Focus to &eProduction")); menu.addMenuClickHandler(4, (p, slot, item, action) -> { BlockStorage.addBlockInfo(b, MODE, ReactorMode.PRODUCTION.toString()); newInstance(menu, b); @@ -97,7 +97,7 @@ public abstract class Reactor extends AbstractEnergyProvider { }); } else { - menu.replaceExistingItem(4, new CustomItem(SlimefunItems.PLUTONIUM, "&7Focus: &eProduction", "", "&6Your Reactor will focus on producing goods", "&6If your Energy Network doesn't need Power", "&6it will continue to run and simply will", "&6not generate any Power in the mean time", "", "&7> Click to change the Focus to &ePower Generation")); + menu.replaceExistingItem(4, new CustomItem(SlimefunItems.PLUTONIUM, "&7Focus: &eProduction", "", "&6Your Reactor will focus on producing goods", "&6If your Energy Network doesn't need Power", "&6it will continue to run and simply will", "&6not generate any Power in the mean time", "", "&7\u21E8 Click to change the Focus to &ePower Generation")); menu.addMenuClickHandler(4, (p, slot, item, action) -> { BlockStorage.addBlockInfo(b, MODE, ReactorMode.GENERATOR.toString()); newInstance(menu, b); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java index 63f8ad91d..0036ddf53 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java @@ -63,7 +63,7 @@ public class DebugFishListener implements Listener { if (p.isSneaking()) { Block b = e.getClickedBlock().getRelative(e.getBlockFace()); b.setType(Material.PLAYER_HEAD); - SkullBlock.setFromHash(b, HeadTexture.UNKNOWN.getTexture()); + SkullBlock.setFromHash(b, HeadTexture.MISSING_TEXTURE.getTexture()); } else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) { sendInfo(p, e.getClickedBlock()); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java index 0e1d4030a..b050e86e5 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java @@ -92,7 +92,9 @@ public enum HeadTexture { GLOBE_NETHER("d83571ff589f1a59bb02b80800fc736116e27c3dcf9efebede8cf1fdde"), GLOBE_THE_END("c6cac59b2aae489aa0687b5d802b2555eb14a40bd62b21eb116fa569cdb756"), DEATHPOINT("1ae3855f952cd4a03c148a946e3f812a5955ad35cbcb52627ea4acd47d3081"), - UNKNOWN("e9eb9da26cf2d3341397a7f4913ba3d37d1ad10eae30ab25fa39ceb84bc"); + NUCLEAR_REACTOR("fa5de0bc2bfb5cc2d23eb72f96402ada479524dd0de404bc23b6dacee3ffd080"), + UNKNOWN("46ba63344f49dd1c4f5488e926bf3d9e2b29916a6c50d610bb40a5273dc8c82"), + MISSING_TEXTURE("e9eb9da26cf2d3341397a7f4913ba3d37d1ad10eae30ab25fa39ceb84bc"); private final String texture; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java index 23483765b..2e93ca6aa 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java @@ -24,6 +24,7 @@ import io.github.thebusybiscuit.slimefun4.api.exceptions.PrematureCodeException; import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactive; import io.github.thebusybiscuit.slimefun4.core.attributes.Soulbound; import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientPedestal; +import io.github.thebusybiscuit.slimefun4.utils.itemstack.ItemStackWrapper; import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants; import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment; import me.mrCookieSlime.Slimefun.SlimefunPlugin; @@ -205,12 +206,22 @@ public final class SlimefunUtils { return SkullItem.fromBase64(base64); } - public static boolean containsSimilarItem(Inventory inventory, ItemStack itemStack, boolean checkLore) { - if (inventory == null || itemStack == null) return false; + public static boolean containsSimilarItem(Inventory inventory, ItemStack item, boolean checkLore) { + if (inventory == null || item == null) { + return false; + } - for (ItemStack is : inventory.getStorageContents()) { - if (is == null || is.getType() == Material.AIR) continue; - if (isItemSimilar(is, itemStack, checkLore)) return true; + // Performance optimization + ItemStackWrapper wrapper = new ItemStackWrapper(item); + + for (ItemStack stack : inventory.getStorageContents()) { + if (stack == null || stack.getType() == Material.AIR) { + continue; + } + + if (isItemSimilar(stack, wrapper, checkLore)) { + return true; + } } return false;