aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build-and-test.yml2
-rw-r--r--build.gradle43
-rw-r--r--dependencies.gradle32
-rw-r--r--src/main/java/kubatech/ClientProxy.java10
-rw-r--r--src/main/java/kubatech/CommonProxy.java16
-rw-r--r--src/main/java/kubatech/api/utils/GSONUtils.java8
-rw-r--r--src/main/java/kubatech/api/utils/ModUtils.java6
-rw-r--r--src/main/java/kubatech/client/effect/EntityRenderer.java5
-rw-r--r--src/main/java/kubatech/client/effect/MegaApiaryBeesRenderer.java4
-rw-r--r--src/main/java/kubatech/commands/CommandConfig.java4
-rw-r--r--src/main/java/kubatech/commands/CommandHandler.java12
-rw-r--r--src/main/java/kubatech/commands/CommandTea.java7
-rw-r--r--src/main/java/kubatech/kubatech.java10
-rw-r--r--src/main/java/kubatech/loaders/ItemLoader.java44
-rw-r--r--src/main/java/kubatech/loaders/MobRecipeLoader.java13
-rw-r--r--src/main/java/kubatech/loaders/RecipeLoader.java30
-rw-r--r--src/main/java/kubatech/loaders/item/items/TeaUltimate.java8
-rw-r--r--src/main/java/kubatech/nei/Mob_Handler.java24
-rw-r--r--src/main/java/kubatech/nei/NEI_Config.java14
-rw-r--r--src/main/java/kubatech/tileentity/TeaAcceptorTile.java4
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java34
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java44
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java102
23 files changed, 405 insertions, 71 deletions
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index 3ee2f686fd..d33f352e71 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -11,3 +11,5 @@ jobs:
build-and-test:
uses: GTNewHorizons/GTNH-Actions-Workflows/.github/workflows/build-and-test.yml@master
secrets: inherit
+ with:
+ timeout: 150
diff --git a/build.gradle b/build.gradle
index 17e7501a27..3930990407 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,4 @@
-//version: 1682616243
+//version: 1685785062
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
@@ -69,8 +69,11 @@ plugins {
id 'com.diffplug.spotless' version '6.13.0' apply false // 6.13.0 is the last jvm8 supporting version
id 'com.modrinth.minotaur' version '2.+' apply false
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
- id 'com.gtnewhorizons.retrofuturagradle' version '1.3.7'
+ id 'com.gtnewhorizons.retrofuturagradle' version '1.3.14'
}
+
+print("You might want to check out './gradlew :faq' if your build fails.\n")
+
boolean settingsupdated = verifySettingsGradle()
settingsupdated = verifyGitAttributes() || settingsupdated
if (settingsupdated)
@@ -219,6 +222,8 @@ if (enableModernJavaSyntax.toBoolean()) {
dependencies {
annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0'
+ // workaround for https://github.com/bsideup/jabel/issues/174
+ annotationProcessor 'net.java.dev.jna:jna-platform:5.13.0'
compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') {
transitive = false // We only care about the 1 annotation class
}
@@ -564,9 +569,10 @@ repositories {
def mixinProviderGroup = "io.github.legacymoddingmc"
def mixinProviderModule = "unimixins"
-def mixinProviderVersion = "0.1.6"
+def mixinProviderVersion = "0.1.7.1"
def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule}:${mixinProviderVersion}"
def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev"
+ext.mixinProviderSpec = mixinProviderSpec
dependencies {
if (usesMixins.toBoolean()) {
@@ -724,7 +730,7 @@ dependencies {
java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}")
}
if (modId != 'hodgepodge') {
- java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.8')
+ java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.13')
}
java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false}
@@ -817,6 +823,18 @@ public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask {
}
this.classpath(project.java17DependenciesCfg)
}
+
+ public void setup(Project project) {
+ super.setup(project)
+ if (project.usesMixins.toBoolean()) {
+ this.extraJvmArgs.addAll(project.provider(() -> {
+ def mixinCfg = project.configurations.detachedConfiguration(project.dependencies.create(project.mixinProviderSpec))
+ mixinCfg.canBeConsumed = false
+ mixinCfg.transitive = false
+ enableHotswap ? ["-javaagent:" + mixinCfg.singleFile.absolutePath] : []
+ }))
+ }
+ }
}
def runClient17Task = tasks.register("runClient17", RunHotswappableMinecraftTask, Distribution.CLIENT, "runClient")
@@ -1252,6 +1270,23 @@ if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISA
}
}
+// If you want to add more cases to this task, implement them as arguments if total amount to print gets too large
+tasks.register('faq') {
+ group = 'GTNH Buildscript'
+ description = 'Prints frequently asked questions about building a project'
+
+ doLast {
+ print("If your build fails to fetch dependencies, run './gradlew updateDependencies'. " +
+ "Or you can manually check if the versions are still on the distributing sites - " +
+ "the links can be found in repositories.gradle and build.gradle:repositories, " +
+ "but not build.gradle:buildscript.repositories - those ones are for gradle plugin metadata.\n\n" +
+ "If your build fails to recognize the syntax of new Java versions, enable Jabel in your " +
+ "gradle.properties. See how it's done in GTNH ExampleMod/gradle.properties. " +
+ "However, keep in mind that Jabel enables only syntax features, but not APIs that were introduced in " +
+ "Java 9 or later.")
+ }
+}
+
static URL availableBuildScriptUrl() {
new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/build.gradle")
}
diff --git a/dependencies.gradle b/dependencies.gradle
index 538634832d..54717f7e1f 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -1,16 +1,16 @@
// Add your dependencies here
dependencies {
- api('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.07:dev')
- api("com.github.GTNewHorizons:EnderCore:0.2.13:dev")
- api("com.github.GTNewHorizons:EnderIO:2.4.11:dev")
+ api('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.82:dev')
+ api("com.github.GTNewHorizons:EnderCore:0.2.16:dev")
+ api("com.github.GTNewHorizons:EnderIO:2.4.18:dev")
api("com.github.GTNewHorizons:Infernal-Mobs:1.7.8-GTNH:dev")
api("com.github.GTNewHorizons:ForestryMC:4.6.7:dev")
- api("com.github.GTNewHorizons:ModularUI:1.1.2:dev")
+ api("com.github.GTNewHorizons:ModularUI:1.1.10:dev")
//compileOnly("curse.maven:extrautilities-225561:2264384") {
// transitive = false
//}
- compileOnly("com.github.GTNewHorizons:GTplusplus:1.9.1:dev")
+ compileOnly("com.github.GTNewHorizons:GTplusplus:1.9.38:dev")
{
transitive = false
}
@@ -26,11 +26,11 @@ dependencies {
{
transitive = false
}
- compileOnly("com.github.GTNewHorizons:bartworks:0.7.1:dev")
+ compileOnly("com.github.GTNewHorizons:bartworks:0.7.17:dev")
{
transitive = false
}
- compileOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.0:dev")
+ compileOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.50:dev")
{
transitive = false
}
@@ -49,17 +49,17 @@ dependencies {
// For testing
//runtimeOnly("com.github.GTNewHorizons:BetterLoadingScreen:1.4.1-GTNH:dev")
- //runtimeOnly("com.github.GTNewHorizons:GTplusplus:1.8.40:dev")
- //runtimeOnly("com.github.GTNewHorizons:harvestcraft:1.0.18-GTNH:dev")
- //runtimeOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.0.35:dev")
- //runtimeOnly("com.github.GTNewHorizons:OpenBlocks:1.6.9-GTNH:dev")
- //runtimeOnly("com.github.GTNewHorizons:bartworks:0.6.15:dev")
+ //runtimeOnly("com.github.GTNewHorizons:GTplusplus:1.9.38:dev")
+ //runtimeOnly("com.github.GTNewHorizons:harvestcraft:1.1.0-GTNH:dev")
+ //runtimeOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.50:dev")
+ //runtimeOnly("com.github.GTNewHorizons:OpenBlocks:1.7.0-GTNH:dev")
+ //runtimeOnly("com.github.GTNewHorizons:bartworks:0.7.17:dev")
//runtimeOnly("com.github.GTNewHorizons:CraftTweaker:3.2.12:dev")
- //api("com.github.GTNewHorizons:SpecialMobs:3.3.13:dev")
- //api("com.github.GTNewHorizons:twilightforest:2.3.8.17:dev")
+ //api("com.github.GTNewHorizons:SpecialMobs:3.4.0:dev")
+ //api("com.github.GTNewHorizons:twilightforest:2.4.3:dev")
//api("com.github.GTNewHorizons:EnderZoo:1.0.23:dev")
- //runtimeOnly("com.github.GTNewHorizons:Draconic-Evolution:1.1.15-GTNH:dev")
+ //runtimeOnly("com.github.GTNewHorizons:Draconic-Evolution:1.1.16-GTNH:dev")
//runtimeOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev")
- //runtimeOnly("com.github.GTNewHorizons:BloodMagic:1.4.0:dev")
+ //runtimeOnly("com.github.GTNewHorizons:BloodMagic:1.4.1:dev")
//api("curse.maven:witchery-69673:2234410")
}
diff --git a/src/main/java/kubatech/ClientProxy.java b/src/main/java/kubatech/ClientProxy.java
index 3b5b68ec4e..99e9661e33 100644
--- a/src/main/java/kubatech/ClientProxy.java
+++ b/src/main/java/kubatech/ClientProxy.java
@@ -20,7 +20,15 @@
package kubatech;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerAboutToStartEvent;
+import cpw.mods.fml.common.event.FMLServerStartedEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
+import cpw.mods.fml.common.event.FMLServerStoppedEvent;
+import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import kubatech.api.utils.ModUtils;
import kubatech.loaders.MobRecipeLoader;
import kubatech.nei.IMCForNEI;
diff --git a/src/main/java/kubatech/CommonProxy.java b/src/main/java/kubatech/CommonProxy.java
index a2ce560669..b0d8446211 100644
--- a/src/main/java/kubatech/CommonProxy.java
+++ b/src/main/java/kubatech/CommonProxy.java
@@ -26,9 +26,21 @@ import static kubatech.loaders.ItemLoader.registerItems;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerAboutToStartEvent;
+import cpw.mods.fml.common.event.FMLServerStartedEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
+import cpw.mods.fml.common.event.FMLServerStoppedEvent;
+import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import kubatech.api.LoaderReference;
-import kubatech.commands.*;
+import kubatech.commands.CommandBees;
+import kubatech.commands.CommandConfig;
+import kubatech.commands.CommandHandler;
+import kubatech.commands.CommandHelp;
+import kubatech.commands.CommandTea;
import kubatech.config.Config;
import kubatech.loaders.MTLoader;
import kubatech.loaders.RecipeLoader;
diff --git a/src/main/java/kubatech/api/utils/GSONUtils.java b/src/main/java/kubatech/api/utils/GSONUtils.java
index 71d12d9e0a..90dd70f0df 100644
--- a/src/main/java/kubatech/api/utils/GSONUtils.java
+++ b/src/main/java/kubatech/api/utils/GSONUtils.java
@@ -30,7 +30,13 @@ import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTSizeTracker;
import net.minecraft.nbt.NBTTagCompound;
-import com.google.gson.*;
+import com.google.gson.ExclusionStrategy;
+import com.google.gson.FieldAttributes;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializer;
public class GSONUtils {
diff --git a/src/main/java/kubatech/api/utils/ModUtils.java b/src/main/java/kubatech/api/utils/ModUtils.java
index a6cceecdeb..cd02d28dba 100644
--- a/src/main/java/kubatech/api/utils/ModUtils.java
+++ b/src/main/java/kubatech/api/utils/ModUtils.java
@@ -22,7 +22,11 @@ package kubatech.api.utils;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
-import java.util.*;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
import javax.xml.bind.DatatypeConverter;
diff --git a/src/main/java/kubatech/client/effect/EntityRenderer.java b/src/main/java/kubatech/client/effect/EntityRenderer.java
index 1db113c563..0691dc07ce 100644
--- a/src/main/java/kubatech/client/effect/EntityRenderer.java
+++ b/src/main/java/kubatech/client/effect/EntityRenderer.java
@@ -20,7 +20,10 @@
package kubatech.client.effect;
-import static net.minecraft.client.renderer.entity.RenderManager.*;
+import static net.minecraft.client.renderer.entity.RenderManager.instance;
+import static net.minecraft.client.renderer.entity.RenderManager.renderPosX;
+import static net.minecraft.client.renderer.entity.RenderManager.renderPosY;
+import static net.minecraft.client.renderer.entity.RenderManager.renderPosZ;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.EntityFX;
diff --git a/src/main/java/kubatech/client/effect/MegaApiaryBeesRenderer.java b/src/main/java/kubatech/client/effect/MegaApiaryBeesRenderer.java
index 40079f3fed..9ac093b6f6 100644
--- a/src/main/java/kubatech/client/effect/MegaApiaryBeesRenderer.java
+++ b/src/main/java/kubatech/client/effect/MegaApiaryBeesRenderer.java
@@ -20,7 +20,9 @@
package kubatech.client.effect;
-import static net.minecraft.client.renderer.entity.RenderManager.*;
+import static net.minecraft.client.renderer.entity.RenderManager.renderPosX;
+import static net.minecraft.client.renderer.entity.RenderManager.renderPosY;
+import static net.minecraft.client.renderer.entity.RenderManager.renderPosZ;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.EntityFX;
diff --git a/src/main/java/kubatech/commands/CommandConfig.java b/src/main/java/kubatech/commands/CommandConfig.java
index 6b61a4ca30..e4ffe9753d 100644
--- a/src/main/java/kubatech/commands/CommandConfig.java
+++ b/src/main/java/kubatech/commands/CommandConfig.java
@@ -20,7 +20,9 @@
package kubatech.commands;
-import static kubatech.commands.CommandConfig.Translations.*;
+import static kubatech.commands.CommandConfig.Translations.INVALID_OPTION;
+import static kubatech.commands.CommandConfig.Translations.SUCCESS;
+import static kubatech.commands.CommandConfig.Translations.USAGE;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
diff --git a/src/main/java/kubatech/commands/CommandHandler.java b/src/main/java/kubatech/commands/CommandHandler.java
index 8003ac39ad..0daea862ca 100644
--- a/src/main/java/kubatech/commands/CommandHandler.java
+++ b/src/main/java/kubatech/commands/CommandHandler.java
@@ -20,9 +20,15 @@
package kubatech.commands;
-import static kubatech.commands.CommandHandler.Translations.*;
-
-import java.util.*;
+import static kubatech.commands.CommandHandler.Translations.CANT_FIND;
+import static kubatech.commands.CommandHandler.Translations.GENERIC_HELP;
+import static kubatech.commands.CommandHandler.Translations.INVALID;
+import static kubatech.commands.CommandHandler.Translations.USAGE;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommand;
diff --git a/src/main/java/kubatech/commands/CommandTea.java b/src/main/java/kubatech/commands/CommandTea.java
index 48e1b110b5..70a924d9c7 100644
--- a/src/main/java/kubatech/commands/CommandTea.java
+++ b/src/main/java/kubatech/commands/CommandTea.java
@@ -20,7 +20,12 @@
package kubatech.commands;
-import static kubatech.commands.CommandTea.Translations.*;
+import static kubatech.commands.CommandTea.Translations.INVALID_OPTION;
+import static kubatech.commands.CommandTea.Translations.PLAYER_NOT_FOUND;
+import static kubatech.commands.CommandTea.Translations.SUCCESS_ADD;
+import static kubatech.commands.CommandTea.Translations.SUCCESS_GET;
+import static kubatech.commands.CommandTea.Translations.SUCCESS_SET;
+import static kubatech.commands.CommandTea.Translations.USAGE;
import java.math.BigInteger;
import java.util.UUID;
diff --git a/src/main/java/kubatech/kubatech.java b/src/main/java/kubatech/kubatech.java
index 929165d075..e13f1c36e0 100644
--- a/src/main/java/kubatech/kubatech.java
+++ b/src/main/java/kubatech/kubatech.java
@@ -33,7 +33,15 @@ import org.apache.logging.log4j.Logger;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerAboutToStartEvent;
+import cpw.mods.fml.common.event.FMLServerStartedEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
+import cpw.mods.fml.common.event.FMLServerStoppedEvent;
+import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import kubatech.api.enums.ItemList;
diff --git a/src/main/java/kubatech/loaders/ItemLoader.java b/src/main/java/kubatech/loaders/ItemLoader.java
index 03af96a406..5c3ec6cc02 100644
--- a/src/main/java/kubatech/loaders/ItemLoader.java
+++ b/src/main/java/kubatech/loaders/ItemLoader.java
@@ -20,12 +20,52 @@
package kubatech.loaders;
-import static kubatech.api.enums.ItemList.*;
+import static kubatech.api.enums.ItemList.Beeeeee;
+import static kubatech.api.enums.ItemList.BlackTea;
+import static kubatech.api.enums.ItemList.BlackTeaLeaf;
+import static kubatech.api.enums.ItemList.BruisedTeaLeaf;
+import static kubatech.api.enums.ItemList.EarlGrayTea;
+import static kubatech.api.enums.ItemList.FermentedTeaLeaf;
+import static kubatech.api.enums.ItemList.GreenTea;
+import static kubatech.api.enums.ItemList.GreenTeaLeaf;
+import static kubatech.api.enums.ItemList.LegendaryBlackTea;
+import static kubatech.api.enums.ItemList.LegendaryButterflyTea;
+import static kubatech.api.enums.ItemList.LegendaryEarlGrayTea;
+import static kubatech.api.enums.ItemList.LegendaryGreenTea;
+import static kubatech.api.enums.ItemList.LegendaryLemonTea;
+import static kubatech.api.enums.ItemList.LegendaryMilkTea;
+import static kubatech.api.enums.ItemList.LegendaryOolongTea;
+import static kubatech.api.enums.ItemList.LegendaryPeppermintTea;
+import static kubatech.api.enums.ItemList.LegendaryPuerhTea;
+import static kubatech.api.enums.ItemList.LegendaryRedTea;
+import static kubatech.api.enums.ItemList.LegendaryUltimateTea;
+import static kubatech.api.enums.ItemList.LegendaryWhiteTea;
+import static kubatech.api.enums.ItemList.LegendaryYellowTea;
+import static kubatech.api.enums.ItemList.LemonTea;
+import static kubatech.api.enums.ItemList.MilkTea;
+import static kubatech.api.enums.ItemList.OolongTea;
+import static kubatech.api.enums.ItemList.OolongTeaLeaf;
+import static kubatech.api.enums.ItemList.OxidizedTeaLeaf;
+import static kubatech.api.enums.ItemList.PartiallyOxidizedTeaLeaf;
+import static kubatech.api.enums.ItemList.PeppermintTea;
+import static kubatech.api.enums.ItemList.PuerhTea;
+import static kubatech.api.enums.ItemList.PuerhTeaLeaf;
+import static kubatech.api.enums.ItemList.RolledTeaLeaf;
+import static kubatech.api.enums.ItemList.SteamedTeaLeaf;
+import static kubatech.api.enums.ItemList.TeaAcceptorResearchNote;
+import static kubatech.api.enums.ItemList.TeaLeafDehydrated;
+import static kubatech.api.enums.ItemList.WhiteTea;
+import static kubatech.api.enums.ItemList.WhiteTeaLeaf;
+import static kubatech.api.enums.ItemList.YellowTea;
+import static kubatech.api.enums.ItemList.YellowTeaLeaf;
import cpw.mods.fml.common.registry.GameRegistry;
import kubatech.loaders.item.ItemProxy;
import kubatech.loaders.item.KubaItems;
-import kubatech.loaders.item.items.*;
+import kubatech.loaders.item.items.Tea;
+import kubatech.loaders.item.items.TeaCollection;
+import kubatech.loaders.item.items.TeaIngredient;
+import kubatech.loaders.item.items.TeaUltimate;
public class ItemLoader {
diff --git a/src/main/java/kubatech/loaders/MobRecipeLoader.java b/src/main/java/kubatech/loaders/MobRecipeLoader.java
index 2c0bbf464f..ebb1a2a906 100644
--- a/src/main/java/kubatech/loaders/MobRecipeLoader.java
+++ b/src/main/java/kubatech/loaders/MobRecipeLoader.java
@@ -22,7 +22,9 @@ package kubatech.loaders;
import static kubatech.api.utils.ModUtils.isClientSided;
import static kubatech.api.utils.ModUtils.isDeobfuscatedEnvironment;
-import static kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber.*;
+import static kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber.DIAMOND_SPIKES_DAMAGE;
+import static kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber.MOB_SPAWN_INTERVAL;
+import static kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber.MobNameToRecipeMap;
import java.io.File;
import java.io.Reader;
@@ -31,7 +33,14 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
import java.util.stream.Collectors;
import net.minecraft.block.Block;
diff --git a/src/main/java/kubatech/loaders/RecipeLoader.java b/src/main/java/kubatech/loaders/RecipeLoader.java
index 4eb196a94e..acc2f89b1b 100644
--- a/src/main/java/kubatech/loaders/RecipeLoader.java
+++ b/src/main/java/kubatech/loaders/RecipeLoader.java
@@ -20,7 +20,35 @@
package kubatech.loaders;
-import static kubatech.api.enums.ItemList.*;
+import static kubatech.api.enums.ItemList.BlackTea;
+import static kubatech.api.enums.ItemList.BlackTeaLeaf;
+import static kubatech.api.enums.ItemList.BruisedTeaLeaf;
+import static kubatech.api.enums.ItemList.EarlGrayTea;
+import static kubatech.api.enums.ItemList.ExtremeExterminationChamber;
+import static kubatech.api.enums.ItemList.ExtremeIndustrialApiary;
+import static kubatech.api.enums.ItemList.ExtremeIndustrialGreenhouse;
+import static kubatech.api.enums.ItemList.FermentedTeaLeaf;
+import static kubatech.api.enums.ItemList.GreenTea;
+import static kubatech.api.enums.ItemList.GreenTeaLeaf;
+import static kubatech.api.enums.ItemList.LegendaryUltimateTea;
+import static kubatech.api.enums.ItemList.LemonTea;
+import static kubatech.api.enums.ItemList.MilkTea;
+import static kubatech.api.enums.ItemList.OolongTea;
+import static kubatech.api.enums.ItemList.OolongTeaLeaf;
+import static kubatech.api.enums.ItemList.OxidizedTeaLeaf;
+import static kubatech.api.enums.ItemList.PartiallyOxidizedTeaLeaf;
+import static kubatech.api.enums.ItemList.PeppermintTea;
+import static kubatech.api.enums.ItemList.PuerhTea;
+import static kubatech.api.enums.ItemList.PuerhTeaLeaf;
+import static kubatech.api.enums.ItemList.RolledTeaLeaf;
+import static kubatech.api.enums.ItemList.SteamedTeaLeaf;
+import static kubatech.api.enums.ItemList.TeaAcceptor;
+import static kubatech.api.enums.ItemList.TeaAcceptorResearchNote;
+import static kubatech.api.enums.ItemList.TeaLeafDehydrated;
+import static kubatech.api.enums.ItemList.WhiteTea;
+import static kubatech.api.enums.ItemList.WhiteTeaLeaf;
+import static kubatech.api.enums.ItemList.YellowTea;
+import static kubatech.api.enums.ItemList.YellowTeaLeaf;
import java.lang.reflect.InvocationTargetException;
diff --git a/src/main/java/kubatech/loaders/item/items/TeaUltimate.java b/src/main/java/kubatech/loaders/item/items/TeaUltimate.java
index db34f9e105..bad26bdb66 100644
--- a/src/main/java/kubatech/loaders/item/items/TeaUltimate.java
+++ b/src/main/java/kubatech/loaders/item/items/TeaUltimate.java
@@ -44,7 +44,13 @@ import com.gtnewhorizons.modularui.api.drawable.Text;
import com.gtnewhorizons.modularui.api.math.Color;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.widget.Widget;
-import com.gtnewhorizons.modularui.common.widget.*;
+import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.DynamicTextWidget;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.MultiChildWidget;
+import com.gtnewhorizons.modularui.common.widget.TabButton;
+import com.gtnewhorizons.modularui.common.widget.TabContainer;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import codechicken.nei.NEIClientUtils;
import kubatech.api.enums.ItemList;
diff --git a/src/main/java/kubatech/nei/Mob_Handler.java b/src/main/java/kubatech/nei/Mob_Handler.java
index 3dd9bb5e7b..f6e859eceb 100644
--- a/src/main/java/kubatech/nei/Mob_Handler.java
+++ b/src/main/java/kubatech/nei/Mob_Handler.java
@@ -20,7 +20,22 @@
package kubatech.nei;
-import static kubatech.nei.Mob_Handler.Translations.*;
+import static kubatech.nei.Mob_Handler.Translations.ADDITIONAL_DROPS;
+import static kubatech.nei.Mob_Handler.Translations.AVERAGE_REMINDER;
+import static kubatech.nei.Mob_Handler.Translations.BOSS;
+import static kubatech.nei.Mob_Handler.Translations.CANNOT_USE_VIAL;
+import static kubatech.nei.Mob_Handler.Translations.CHANCE;
+import static kubatech.nei.Mob_Handler.Translations.EEC_CHANCE;
+import static kubatech.nei.Mob_Handler.Translations.INFERNAL_ALWAYS;
+import static kubatech.nei.Mob_Handler.Translations.INFERNAL_CAN;
+import static kubatech.nei.Mob_Handler.Translations.INFERNAL_CANNOT;
+import static kubatech.nei.Mob_Handler.Translations.INFERNAL_DROPS;
+import static kubatech.nei.Mob_Handler.Translations.LOOTABLE;
+import static kubatech.nei.Mob_Handler.Translations.MAX_HEALTH;
+import static kubatech.nei.Mob_Handler.Translations.MOD;
+import static kubatech.nei.Mob_Handler.Translations.NORMAL_DROPS;
+import static kubatech.nei.Mob_Handler.Translations.PLAYER_ONLY;
+import static kubatech.nei.Mob_Handler.Translations.RARE_DROPS;
import java.awt.*;
import java.lang.reflect.Field;
@@ -58,7 +73,12 @@ import org.lwjgl.util.glu.GLU;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.NEIClientUtils;
import codechicken.nei.PositionedStack;
-import codechicken.nei.recipe.*;
+import codechicken.nei.recipe.GuiCraftingRecipe;
+import codechicken.nei.recipe.GuiRecipe;
+import codechicken.nei.recipe.GuiUsageRecipe;
+import codechicken.nei.recipe.IUsageHandler;
+import codechicken.nei.recipe.RecipeCatalysts;
+import codechicken.nei.recipe.TemplateRecipeHandler;
import cpw.mods.fml.common.event.FMLInterModComms;
import crazypants.enderio.EnderIO;
import crazypants.enderio.machine.spawner.BlockPoweredSpawner;
diff --git a/src/main/java/kubatech/nei/NEI_Config.java b/src/main/java/kubatech/nei/NEI_Config.java
index 4854053475..3836c05461 100644
--- a/src/main/java/kubatech/nei/NEI_Config.java
+++ b/src/main/java/kubatech/nei/NEI_Config.java
@@ -20,7 +20,19 @@
package kubatech.nei;
-import static kubatech.api.enums.ItemList.*;
+import static kubatech.api.enums.ItemList.LegendaryBlackTea;
+import static kubatech.api.enums.ItemList.LegendaryButterflyTea;
+import static kubatech.api.enums.ItemList.LegendaryEarlGrayTea;
+import static kubatech.api.enums.ItemList.LegendaryGreenTea;
+import static kubatech.api.enums.ItemList.LegendaryLemonTea;
+import static kubatech.api.enums.ItemList.LegendaryMilkTea;
+import static kubatech.api.enums.ItemList.LegendaryOolongTea;
+import static kubatech.api.enums.ItemList.LegendaryPeppermintTea;
+import static kubatech.api.enums.ItemList.LegendaryPuerhTea;
+import static kubatech.api.enums.ItemList.LegendaryRedTea;
+import static kubatech.api.enums.ItemList.LegendaryUltimateTea;
+import static kubatech.api.enums.ItemList.LegendaryWhiteTea;
+import static kubatech.api.enums.ItemList.LegendaryYellowTea;
import codechicken.nei.api.API;
import codechicken.nei.api.IConfigureNEI;
diff --git a/src/main/java/kubatech/tileentity/TeaAcceptorTile.java b/src/main/java/kubatech/tileentity/TeaAcceptorTile.java
index 8ba7401b0d..a2952117ea 100644
--- a/src/main/java/kubatech/tileentity/TeaAcceptorTile.java
+++ b/src/main/java/kubatech/tileentity/TeaAcceptorTile.java
@@ -39,7 +39,9 @@ import com.gtnewhorizons.modularui.api.ModularUITextures;
import com.gtnewhorizons.modularui.api.drawable.Text;
import com.gtnewhorizons.modularui.api.math.Color;
import com.gtnewhorizons.modularui.api.math.Pos2d;
-import com.gtnewhorizons.modularui.api.screen.*;
+import com.gtnewhorizons.modularui.api.screen.ITileWithModularUI;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
import com.gtnewhorizons.modularui.api.widget.Widget;
import com.gtnewhorizons.modularui.common.builder.UIInfo;
import com.gtnewhorizons.modularui.common.internal.wrapper.ModularUIContainer;
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
index 19ca563a79..fcaf2a833e 100644
--- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
+++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
@@ -20,15 +20,30 @@
package kubatech.tileentity.gregtech.multiblock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
-import static gregtech.api.enums.GT_HatchElement.*;
-import static gregtech.api.enums.Textures.BlockIcons.*;
-import static gregtech.api.util.GT_StructureUtility.*;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.isAir;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
+import static gregtech.api.enums.GT_HatchElement.Energy;
+import static gregtech.api.enums.GT_HatchElement.InputBus;
+import static gregtech.api.enums.GT_HatchElement.Maintenance;
+import static gregtech.api.enums.GT_HatchElement.OutputBus;
+import static gregtech.api.enums.GT_HatchElement.OutputHatch;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_GLOW;
+import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_StructureUtility.ofFrame;
import static kubatech.api.Variables.Author;
import static kubatech.api.Variables.StructureHologram;
import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Random;
+import java.util.UUID;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
@@ -69,7 +84,14 @@ import com.gtnewhorizons.modularui.api.math.Color;
import com.gtnewhorizons.modularui.api.math.Pos2d;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
-import com.gtnewhorizons.modularui.common.widget.*;
+import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow;
+import com.gtnewhorizons.modularui.common.widget.DynamicTextWidget;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import com.mojang.authlib.GameProfile;
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java
index de23f01795..4b86cda1e7 100644
--- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java
+++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java
@@ -20,15 +20,29 @@
package kubatech.tileentity.gregtech.multiblock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
-import static gregtech.api.enums.Textures.BlockIcons.*;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_GLOW;
import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
import static kubatech.api.Variables.Author;
import static kubatech.api.Variables.StructureHologram;
import java.io.IOException;
import java.lang.ref.WeakReference;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -42,7 +56,11 @@ import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.inventory.Slot;
-import net.minecraft.item.*;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemSeedFood;
+import net.minecraft.item.ItemSeeds;
+import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
@@ -73,7 +91,18 @@ import com.gtnewhorizons.modularui.api.widget.IWidgetParent;
import com.gtnewhorizons.modularui.api.widget.Widget;
import com.gtnewhorizons.modularui.common.builder.UIInfo;
import com.gtnewhorizons.modularui.common.internal.wrapper.ModularUIContainer;
-import com.gtnewhorizons.modularui.common.widget.*;
+import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.ChangeableWidget;
+import com.gtnewhorizons.modularui.common.widget.Column;
+import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow;
+import com.gtnewhorizons.modularui.common.widget.DynamicTextWidget;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.Scrollable;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
@@ -87,7 +116,10 @@ import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.*;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_Utility;
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java
index c42250dfdf..baabda3211 100644
--- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java
+++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java
@@ -20,16 +20,34 @@
package kubatech.tileentity.gregtech.multiblock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAnyMeta;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksMap;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
import static forestry.api.apiculture.BeeManager.beeRoot;
-import static gregtech.api.enums.GT_HatchElement.*;
-import static gregtech.api.enums.Textures.BlockIcons.*;
+import static gregtech.api.enums.GT_HatchElement.Energy;
+import static gregtech.api.enums.GT_HatchElement.InputBus;
+import static gregtech.api.enums.GT_HatchElement.Maintenance;
+import static gregtech.api.enums.GT_HatchElement.OutputBus;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_DISTILLATION_TOWER_GLOW;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
-import static kubatech.api.Variables.*;
+import static kubatech.api.Variables.StructureHologram;
+import static kubatech.api.Variables.buildAuthorList;
import java.io.IOException;
import java.lang.ref.WeakReference;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -66,11 +84,28 @@ import com.gtnewhorizons.modularui.api.widget.IWidgetParent;
import com.gtnewhorizons.modularui.api.widget.Widget;
import com.gtnewhorizons.modularui.common.builder.UIInfo;
import com.gtnewhorizons.modularui.common.internal.wrapper.ModularUIContainer;
-import com.gtnewhorizons.modularui.common.widget.*;
+import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.ChangeableWidget;
+import com.gtnewhorizons.modularui.common.widget.Column;
+import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow;
+import com.gtnewhorizons.modularui.common.widget.DynamicTextWidget;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.Scrollable;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-import forestry.api.apiculture.*;
+import forestry.api.apiculture.EnumBeeType;
+import forestry.api.apiculture.FlowerManager;
+import forestry.api.apiculture.IAlleleBeeSpecies;
+import forestry.api.apiculture.IBee;
+import forestry.api.apiculture.IBeeGenome;
+import forestry.api.apiculture.IBeeModifier;
+import forestry.api.apiculture.IBeekeepingMode;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.apiculture.blocks.BlockApicultureType;
import forestry.apiculture.genetics.Bee;
@@ -209,7 +244,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
}
private boolean isCacheDirty = true;
- private final HashSet<String> flowersCache = new HashSet<>();
+ private final HashMap<String, String> flowersCache = new HashMap<>();
private final HashSet<String> flowersCheck = new HashSet<>();
private boolean flowersError = false;
private boolean needsTVarUpdate = false;
@@ -324,7 +359,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
mStorage.add(new BeeSimulator(aNBT.getCompoundTag("mStorage." + i)));
megaApiaryStorageVersion = aNBT.getInteger("MEGA_APIARY_STORAGE_VERSION");
flowersCache.clear();
- mStorage.forEach(s -> flowersCache.add(s.flowerType));
+ mStorage.forEach(s -> flowersCache.put(s.flowerType, s.flowerTypeDescription));
flowersCache.remove("");
isCacheDirty = false;
}
@@ -541,11 +576,12 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
mCasing = 0;
if (isCacheDirty) {
flowersCache.clear();
- mStorage.forEach(s -> flowersCache.add(s.flowerType));
+ mStorage.forEach(s -> flowersCache.put(s.flowerType, s.flowerTypeDescription));
flowersCache.remove("");
isCacheDirty = false;
}
- flowersCheck.addAll(flowersCache);
+ flowersCheck.clear();
+ flowersCheck.addAll(flowersCache.keySet());
if (!checkPiece(STRUCTURE_PIECE_MAIN, 7, 8, 0)) return false;
if (this.mGlassTier < 10 && !this.mEnergyHatches.isEmpty())
for (GT_MetaTileEntity_Hatch_Energy hatchEnergy : this.mEnergyHatches)
@@ -758,7 +794,30 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
throw new RuntimeException(e);
}
}),
- builder));
+ builder)
+ .attachSyncer(new FakeSyncWidget.ListSyncer<>(() -> {
+ if (flowersError) {
+ List<String> s = flowersCheck.stream()
+ .map(flowersCache::get)
+ .filter(Objects::nonNull)
+ .sorted()
+ .collect(Collectors.toList());
+ s.add(0, "Missing flower types:");
+ return s;
+ } else return Collections.emptyList();
+ }, f -> flowersGUI = f, (b, e) -> {
+ try {
+ b.writeStringToBuffer(e);
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }, b -> {
+ try {
+ return b.readStringFromBuffer(999);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }), builder));
final DynamicPositionedColumn screenElements = new DynamicPositionedColumn();
drawTexts(screenElements, null);
@@ -958,6 +1017,8 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
return builder.build();
}
+ private List<String> flowersGUI = Collections.emptyList();
+
@Override
protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) {
screenElements.setSynced(false)
@@ -968,14 +1029,15 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
new DynamicPositionedRow().setSynced(false)
.widget(new TextWidget("Status: ").setDefaultColor(COLOR_TEXT_GRAY.get()))
.widget(new DynamicTextWidget(() -> {
- if (flowersError) return new Text("No flowers !").color(Color.RED.dark(3));
+ if (flowersError) return new Text("Missing flowers!").color(Color.RED.dark(3));
if (getBaseMetaTileEntity().isActive()) return new Text("Working !").color(Color.GREEN.dark(3));
else if (getBaseMetaTileEntity().isAllowedToWork())
return new Text("Enabled").color(Color.GREEN.dark(3));
else if (getBaseMetaTileEntity().wasShutdown())
return new Text("Shutdown (CRITICAL)").color(Color.RED.dark(3));
else return new Text("Disabled").color(Color.RED.dark(3));
- }))
+ }).dynamicTooltip(() -> flowersGUI)
+ .setUpdateTooltipEveryTick(true))
.setEnabled(isFixed));
screenElements
@@ -1026,6 +1088,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
float maxBeeCycles;
String flowerType;
+ String flowerTypeDescription;
public BeeSimulator(ItemStack queenStack, World world, float t) {
isValid = false;
@@ -1048,6 +1111,8 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
IBeeGenome genome = queen.getGenome();
this.flowerType = genome.getFlowerProvider()
.getFlowerType();
+ this.flowerTypeDescription = genome.getFlowerProvider()
+ .getDescription();
IAlleleBeeSpecies primary = genome.getPrimary();
beeSpeed = genome.getSpeed() * beeModifier.getProductionModifier(null, 1.f);
genome.getPrimary()
@@ -1071,12 +1136,16 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
specialDrops.add(new BeeDrop(tag.getCompoundTag("specialDrops" + i)));
beeSpeed = tag.getFloat("beeSpeed");
maxBeeCycles = tag.getFloat("maxBeeCycles");
- if (tag.hasKey("flowerType")) flowerType = tag.getString("flowerType");
- else {
+ if (tag.hasKey("flowerType") && tag.hasKey("flowerTypeDescription")) {
+ flowerType = tag.getString("flowerType");
+ flowerTypeDescription = tag.getString("flowerTypeDescription");
+ } else {
IBee queen = beeRoot.getMember(this.queenStack);
IBeeGenome genome = queen.getGenome();
this.flowerType = genome.getFlowerProvider()
.getFlowerType();
+ this.flowerTypeDescription = genome.getFlowerProvider()
+ .getDescription();
}
}
@@ -1097,6 +1166,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary
tag.setFloat("beeSpeed", beeSpeed);
tag.setFloat("maxBeeCycles", maxBeeCycles);
tag.setString("flowerType", flowerType);
+ tag.setString("flowerTypeDescription", flowerTypeDescription);
return tag;
}