aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java10
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java4
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java30
-rw-r--r--src/main/java/gregtech/api/util/GT_ApiaryUpgrade.java108
-rw-r--r--src/main/java/gregtech/api/util/GT_TooltipDataCache.java16
5 files changed, 151 insertions, 17 deletions
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index b5898618f3..285d1fd542 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1403,6 +1403,16 @@ public enum ItemList implements IItemContainer {
Machine_MV_Miner,
Machine_HV_Miner,
+ Machine_IndustrialApiary,
+ IndustrialApiary_Upgrade_Acceleration_1,
+ IndustrialApiary_Upgrade_Acceleration_2,
+ IndustrialApiary_Upgrade_Acceleration_3,
+ IndustrialApiary_Upgrade_Acceleration_4,
+ IndustrialApiary_Upgrade_Acceleration_5,
+ IndustrialApiary_Upgrade_Acceleration_6,
+ IndustrialApiary_Upgrade_Acceleration_7,
+ IndustrialApiary_Upgrade_Acceleration_8,
+
Neutron_Reflector,
Reactor_Coolant_He_1,
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index fa8bb0b2cb..7b480ea995 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -331,7 +331,9 @@ public enum OrePrefixes {
cellSteamCracked2("Cells", "Moderately Steam-Cracked ", " Cell", true, true, true, true, false, false, false, true, false, false, 0, M * 1, 64, 30),
cellSteamCracked3("Cells", "Severely Steam-Cracked ", " Cell", true, true, true, true, false, false, false, true, false, false, 0, M * 1, 64, 30),
- componentCircuit("Circuit Parts", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1);
+ componentCircuit("Circuit Parts", "", "", true, true, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
+
+ apiaryUpgrade("Industrial Apiary Upgrade", "", "", false, false, true, false, false, false, false, false, true, false, 0, -1, 64, -1);
public static final ImmutableList<OrePrefixes> CELL_TYPES =
ImmutableList.of(
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index eee5425809..fb1ff424fc 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -593,6 +593,8 @@ public class Textures {
OVERLAY_TOP_ROCK_BREAKER_GLOW,
OVERLAY_TOP_SCANNER,
OVERLAY_TOP_SCANNER_GLOW,
+ OVERLAY_TOP_INDUSTRIAL_APIARY,
+ OVERLAY_TOP_INDUSTRIAL_APIARY_GLOW,
OVERLAY_FRONT_POTIONBREWER,
OVERLAY_FRONT_POTIONBREWER_GLOW,
@@ -625,9 +627,11 @@ public class Textures {
OVERLAY_FRONT_BOXINATOR_GLOW,
OVERLAY_FRONT_ROCK_BREAKER,
OVERLAY_FRONT_ROCK_BREAKER_GLOW,
-
OVERLAY_FRONT_SCANNER,
OVERLAY_FRONT_SCANNER_GLOW,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY_GLOW,
+
OVERLAY_BOTTOM_POTIONBREWER,
OVERLAY_BOTTOM_POTIONBREWER_GLOW,
OVERLAY_BOTTOM_REPLICATOR,
@@ -649,13 +653,15 @@ public class Textures {
OVERLAY_BOTTOM_STEAM_EXTRACTOR_GLOW,
OVERLAY_BOTTOM_DISASSEMBLER,
OVERLAY_BOTTOM_DISASSEMBLER_GLOW,
-
OVERLAY_BOTTOM_BOXINATOR,
OVERLAY_BOTTOM_BOXINATOR_GLOW,
OVERLAY_BOTTOM_ROCK_BREAKER,
OVERLAY_BOTTOM_ROCK_BREAKER_GLOW,
OVERLAY_BOTTOM_SCANNER,
OVERLAY_BOTTOM_SCANNER_GLOW,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY_GLOW,
+
OVERLAY_SIDE_POTIONBREWER,
OVERLAY_SIDE_POTIONBREWER_GLOW,
OVERLAY_SIDE_REPLICATOR,
@@ -664,7 +670,6 @@ public class Textures {
OVERLAY_SIDE_MASSFAB_GLOW,
OVERLAY_SIDE_STEAM_HAMMER,
OVERLAY_SIDE_STEAM_HAMMER_GLOW,
-
OVERLAY_SIDE_STEAM_FURNACE,
OVERLAY_SIDE_STEAM_FURNACE_GLOW,
OVERLAY_SIDE_STEAM_ALLOY_SMELTER,
@@ -677,13 +682,15 @@ public class Textures {
OVERLAY_SIDE_STEAM_EXTRACTOR_GLOW,
OVERLAY_SIDE_DISASSEMBLER,
OVERLAY_SIDE_DISASSEMBLER_GLOW,
-
OVERLAY_SIDE_BOXINATOR,
OVERLAY_SIDE_BOXINATOR_GLOW,
OVERLAY_SIDE_ROCK_BREAKER,
OVERLAY_SIDE_ROCK_BREAKER_GLOW,
OVERLAY_SIDE_SCANNER,
OVERLAY_SIDE_SCANNER_GLOW,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY_GLOW,
+
OVERLAY_TOP_POTIONBREWER_ACTIVE,
OVERLAY_TOP_POTIONBREWER_ACTIVE_GLOW,
OVERLAY_TOP_REPLICATOR_ACTIVE,
@@ -712,9 +719,11 @@ public class Textures {
OVERLAY_TOP_ROCK_BREAKER_ACTIVE_GLOW,
OVERLAY_TOP_SCANNER_ACTIVE,
OVERLAY_TOP_SCANNER_ACTIVE_GLOW,
+ OVERLAY_TOP_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_TOP_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
OVERLAY_FRONT_POTIONBREWER_ACTIVE,
OVERLAY_FRONT_POTIONBREWER_ACTIVE_GLOW,
-
OVERLAY_FRONT_REPLICATOR_ACTIVE,
OVERLAY_FRONT_REPLICATOR_ACTIVE_GLOW,
OVERLAY_FRONT_MASSFAB_ACTIVE,
@@ -730,18 +739,19 @@ public class Textures {
OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE_GLOW,
OVERLAY_FRONT_BOXINATOR_ACTIVE,
OVERLAY_FRONT_BOXINATOR_ACTIVE_GLOW,
-
OVERLAY_FRONT_ROCK_BREAKER_ACTIVE,
OVERLAY_FRONT_ROCK_BREAKER_ACTIVE_GLOW,
OVERLAY_FRONT_SCANNER_ACTIVE,
OVERLAY_FRONT_SCANNER_ACTIVE_GLOW,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_FRONT_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
OVERLAY_BOTTOM_POTIONBREWER_ACTIVE,
OVERLAY_BOTTOM_POTIONBREWER_ACTIVE_GLOW,
OVERLAY_BOTTOM_REPLICATOR_ACTIVE,
OVERLAY_BOTTOM_REPLICATOR_ACTIVE_GLOW,
OVERLAY_BOTTOM_MASSFAB_ACTIVE,
OVERLAY_BOTTOM_MASSFAB_ACTIVE_GLOW,
-
OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE,
OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE_GLOW,
OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE,
@@ -763,6 +773,8 @@ public class Textures {
OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE_GLOW,
OVERLAY_BOTTOM_SCANNER_ACTIVE,
OVERLAY_BOTTOM_SCANNER_ACTIVE_GLOW,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_BOTTOM_INDUSTRIAL_APIARY_ACTIVE_GLOW,
OVERLAY_SIDE_POTIONBREWER_ACTIVE,
OVERLAY_SIDE_POTIONBREWER_ACTIVE_GLOW,
@@ -787,11 +799,13 @@ public class Textures {
OVERLAY_SIDE_DISASSEMBLER_ACTIVE_GLOW,
OVERLAY_SIDE_BOXINATOR_ACTIVE,
OVERLAY_SIDE_BOXINATOR_ACTIVE_GLOW,
-
OVERLAY_SIDE_ROCK_BREAKER_ACTIVE,
OVERLAY_SIDE_ROCK_BREAKER_ACTIVE_GLOW,
OVERLAY_SIDE_SCANNER_ACTIVE,
OVERLAY_SIDE_SCANNER_ACTIVE_GLOW,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY_ACTIVE,
+ OVERLAY_SIDE_INDUSTRIAL_APIARY_ACTIVE_GLOW,
+
OVERLAY_ADV_PUMP,
OVERLAY_TELEPORTER,
OVERLAY_TELEPORTER_GLOW,
diff --git a/src/main/java/gregtech/api/util/GT_ApiaryUpgrade.java b/src/main/java/gregtech/api/util/GT_ApiaryUpgrade.java
new file mode 100644
index 0000000000..4c60e6f8bc
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_ApiaryUpgrade.java
@@ -0,0 +1,108 @@
+package gregtech.api.util;
+
+import cpw.mods.fml.common.Loader;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.common.items.GT_MetaGenerated_Item_03;
+import net.bdew.gendustry.api.ApiaryModifiers;
+import net.bdew.gendustry.api.items.IApiaryUpgrade;
+import net.minecraft.item.ItemStack;
+
+import java.util.*;
+import java.util.function.Consumer;
+
+public enum GT_ApiaryUpgrade {
+ speed1(UNIQUE_INDEX.SPEED_UPGRADE, 32200, 1, 1),
+ speed2(UNIQUE_INDEX.SPEED_UPGRADE, 32201, 1, 2),
+ speed3(UNIQUE_INDEX.SPEED_UPGRADE, 32202, 1, 3),
+ speed4(UNIQUE_INDEX.SPEED_UPGRADE, 32203, 1, 4),
+ speed5(UNIQUE_INDEX.SPEED_UPGRADE, 32204, 1, 5),
+ speed6(UNIQUE_INDEX.SPEED_UPGRADE, 32205, 1, 6),
+ speed7(UNIQUE_INDEX.SPEED_UPGRADE, 32206, 1, 7),
+ speed8(UNIQUE_INDEX.SPEED_UPGRADE, 32207, 1, 8),
+ ;
+
+ private enum UNIQUE_INDEX{
+ SPEED_UPGRADE,
+ ;
+ void apply(Consumer<GT_ApiaryUpgrade> fn){
+ UNIQUE_UPGRADE_LIST.get(this).forEach(fn);
+ }
+ }
+
+ private static final EnumMap<UNIQUE_INDEX, ArrayList<GT_ApiaryUpgrade>> UNIQUE_UPGRADE_LIST = new EnumMap<>(UNIQUE_INDEX.class);
+
+ private int meta = 0;
+ private int maxnumber = 1;
+ private int maxspeedmodifier = 0; // formula: maxspeed = modifier
+
+ private final GT_Utility.ItemId id;
+ private final UNIQUE_INDEX unique_index;
+
+ private final HashMap<GT_Utility.ItemId, ItemStack> additionalGendustryUpgrades = new HashMap<>();
+ private final HashSet<GT_Utility.ItemId> blacklistedUpgrades = new HashSet<>(); // additionalGendustryUpgrades are blacklisted by default
+
+ GT_ApiaryUpgrade(UNIQUE_INDEX unique_index, int meta, int maxnumber, int maxspeedmodifier){
+ this.unique_index = unique_index;
+ this.meta = meta;
+ this.maxnumber = maxnumber;
+ this.maxspeedmodifier = maxspeedmodifier;
+ this.id = GT_Utility.ItemId.createNoCopy(get(1));
+ }
+
+ private void setup_static_variables(){
+ quickLookup.put(this.meta, this);
+ ArrayList<GT_ApiaryUpgrade> un = UNIQUE_UPGRADE_LIST.get(this.unique_index);
+ if(un != null)
+ un.forEach((u) -> { u.blacklistedUpgrades.add(this.id); this.blacklistedUpgrades.add(u.id); });
+ else {
+ un = new ArrayList<>(1);
+ UNIQUE_UPGRADE_LIST.put(this.unique_index, un);
+ }
+ un.add(this);
+ }
+
+ public static GT_ApiaryUpgrade getUpgrade(ItemStack s){
+ if(s == null)
+ return null;
+ if(!isUpgrade(s))
+ return null;
+ return quickLookup.get(s.getItemDamage());
+ }
+
+ public boolean isAllowedToWorkWith(ItemStack s){
+ GT_Utility.ItemId id = GT_Utility.ItemId.createNoCopy(s);
+ return !additionalGendustryUpgrades.containsKey(id) && !blacklistedUpgrades.contains(id);
+ }
+
+ public int getMaxNumber(){
+ return maxnumber;
+ }
+
+ public void applyModifiers(ApiaryModifiers mods, ItemStack s){
+ additionalGendustryUpgrades.forEach((k, u) -> ((IApiaryUpgrade)u.getItem()).applyModifiers(mods, u));
+ }
+
+ public ItemStack get(int count){
+ return new ItemStack(GT_MetaGenerated_Item_03.INSTANCE, count, meta);
+ }
+
+ public static boolean isUpgrade(ItemStack s){
+ return OrePrefixes.apiaryUpgrade.contains(s);
+ }
+
+ public int applyMaxSpeedModifier(int maxspeed){
+ return Math.max(maxspeed, maxspeedmodifier);
+ }
+
+ private static final HashMap<Integer, GT_ApiaryUpgrade> quickLookup = new HashMap<>();
+
+ static{
+ EnumSet.allOf(GT_ApiaryUpgrade.class).forEach(GT_ApiaryUpgrade::setup_static_variables);
+
+ if(Loader.isModLoaded("gendustry")) {
+ ItemStack s = GT_ModHandler.getModItem("gendustry", "ApiaryUpgrade", 8L, 0);
+ GT_Utility.ItemId a = GT_Utility.ItemId.createNoCopy(s);
+ UNIQUE_INDEX.SPEED_UPGRADE.apply((u) -> u.additionalGendustryUpgrades.put(a, s));
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/util/GT_TooltipDataCache.java b/src/main/java/gregtech/api/util/GT_TooltipDataCache.java
index 7844bb04fd..4309958b82 100644
--- a/src/main/java/gregtech/api/util/GT_TooltipDataCache.java
+++ b/src/main/java/gregtech/api/util/GT_TooltipDataCache.java
@@ -23,8 +23,8 @@ public class GT_TooltipDataCache {
/**
* Returns tooltip data respecting the user's configured verbosity levels, applying any formatting arguments.
- *
- * @param key the key to lookup
+ *
+ * @param key the key to lookup
* @param args arguments for string formatting (prefer using positional arguments)
* @return The tooltip data the user asked for
*/
@@ -39,12 +39,12 @@ public class GT_TooltipDataCache {
/**
* Builds tooltip data respecting the user's configured verbosity levels, applying any formatting arguments.
- *
- * @param key the key to lookup
+ *
+ * @param key the key to lookup
* @param args arguments for string formatting (prefer using positional arguments)
* @return The tooltip data the user asked for
*/
- private TooltipData getUncachedTooltipData(String key, Object... args) {
+ public TooltipData getUncachedTooltipData(String key, Object... args) {
List<String> lines = getAllLines(key, args);
int normalLines = lines.size();
if (Math.max(GT_Mod.gregtechproxy.mTooltipVerbosity, GT_Mod.gregtechproxy.mTooltipShiftVerbosity) >= 3) {
@@ -60,8 +60,8 @@ public class GT_TooltipDataCache {
/**
* Gets all the lines for the given key and every other subsequent consecutive key with a .n suffix, n in {1,2,3...}
- *
- * @param key the key to lookup
+ *
+ * @param key the key to lookup
* @param args arguments for string formatting (prefer using positional arguments)
* @return The lines for the key and all of it's subkeys
*/
@@ -78,7 +78,7 @@ public class GT_TooltipDataCache {
/**
* Determines how many lines from a tooltip to include from the full line list to respect a given verbosity level.
- *
+ *
* @param tooltipVerbosity the verbosity level we're applying
* @param defaultIndex return if tooltipVerbosity is 2
* @param maxIndex return if tooltipVerbosity is greater than 2