1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

Changed the texture for the Nuclear Reactor

This commit is contained in:
TheBusyBiscuit 2020-06-22 12:07:56 +02:00
parent a06e49cf13
commit 7d8ef33d78
11 changed files with 133 additions and 112 deletions

View File

@ -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

View File

@ -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();

View File

@ -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());
}
}
}

View File

@ -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;
}

View File

@ -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();

View File

@ -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");

View File

@ -34,6 +34,7 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
public class FluidPump extends SimpleSlimefunItem<BlockTicker> 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<BlockTicker> implements Invent
protected void tick(Block b) {
Block fluid = b.getRelative(BlockFace.DOWN);
Optional<ItemStack> bucket = getBucket(fluid);
Optional<ItemStack> 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<BlockTicker> 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<Block> 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<BlockTicker> implements Invent
}
}
private Optional<ItemStack> getBucket(Block fluid) {
private void consumeFluid(Block fluid) {
if (fluid.getType() == Material.WATER) {
fluid.setType(Material.AIR);
return;
}
List<Block> list = Vein.find(fluid, RANGE, block -> block.isLiquid() && block.getType() == fluid.getType());
list.get(list.size() - 1).setType(Material.AIR);
}
private Optional<ItemStack> getFilledBucket(Block fluid) {
if (fluid.getType() == Material.LAVA) {
return Optional.of(new ItemStack(Material.LAVA_BUCKET));
}

View File

@ -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);

View File

@ -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());

View File

@ -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;

View File

@ -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;