diff --git a/CHANGELOG.md b/CHANGELOG.md index 2111efd..da98b4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 3.6.3 + +- Feat: add support of `GT++`, `EnderIO`, `Thaumcraft` +- Feat: convert gt fluid item into Fluid which picked from NEI item panel + ## 3.6.2 - Fix: crash when nei version is not number. diff --git a/README.md b/README.md index 2ac88ba..e383cba 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ Tutorial links: ## Development -For run `gradle runClient`, you need copy the mods from `dev-mods/` to `run/mods`. +~~For run `gradle runClient`, you need copy the mods from `dev-mods/` to `run/mods`.~~ [1]: http://cf.way2muchnoise.eu/full_just-enough-calculation_downloads.svg diff --git a/README_CN.md b/README_CN.md index 7e02c62..26bccc2 100644 --- a/README_CN.md +++ b/README_CN.md @@ -27,7 +27,7 @@ This mod is focused on calculation, so you might find it powerful and high perfo - [x] gregtech - [x] Forestry (`?` 按钮可能与流体重叠,不是很好点到) - [x] Avaritia (`?` 按钮可能会被NEI搜索栏遮盖) - - [x] GT++ (支持 GT++ 1.7.05.68 版本(GTNH 2.1.0.0),老版本没有测试过) + - [x] GT++ (支持 GT++ 1.7.05.68 (GTNH 2.1.0.0),老版本没有测试过) - [x] Thaumcraft (不包括要素) - [ ] AE2(目前没办法,需要 AE2 作者支持 - [ ] 其它 @@ -63,7 +63,7 @@ This mod is focused on calculation, so you might find it powerful and high perfo ## 开发 -如果要运行 `gradle runClient`, 需要将 `dev-mods/` 文件夹中的全部模组复制到 `run/mods`(运行一次 `runClient` 后生成)文件夹中. +~~如果要运行 `gradle runClient`, 需要将 `dev-mods/` 文件夹中的全部模组复制到 `run/mods`(运行一次 `runClient` 后生成)文件夹中.~~ [1]: http://cf.way2muchnoise.eu/full_just-enough-calculation_downloads.svg diff --git a/dev-mods/industrialcraft-2-2.2.828a-experimental.jar b/dev-mods/industrialcraft-2-2.2.828a-experimental.jar deleted file mode 100644 index d2d45a3..0000000 Binary files a/dev-mods/industrialcraft-2-2.2.828a-experimental.jar and /dev/null differ diff --git a/gradle.properties b/gradle.properties index f9e1471..083c661 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,5 +3,5 @@ org.gradle.jvmargs=-Xmx3G # suppress inspection "UnusedProperty" for whole file mc_version=1.7.10 -nei_version=2.1.2-GTNH -proj_version=3.6.2 \ No newline at end of file +nei_version=2.1.5-GTNH +proj_version=3.6.3 \ No newline at end of file diff --git a/src/main/java/me/towdium/jecalculation/nei/Adapter.java b/src/main/java/me/towdium/jecalculation/nei/Adapter.java index bd2a895..1f63fbe 100644 --- a/src/main/java/me/towdium/jecalculation/nei/Adapter.java +++ b/src/main/java/me/towdium/jecalculation/nei/Adapter.java @@ -5,6 +5,8 @@ import codechicken.nei.recipe.IRecipeHandler; import cpw.mods.fml.common.Loader; import me.towdium.jecalculation.JustEnoughCalculation; import me.towdium.jecalculation.nei.adapter.*; +import me.towdium.jecalculation.utils.Utilities; +import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.List; @@ -12,6 +14,16 @@ import java.util.List; public class Adapter { public static List adapters = new ArrayList<>(); + public static Object convertFluid(ItemStack itemStack) { + String name = Utilities.getName(itemStack); + String modId = name.substring(0, name.indexOf(":")); + String itemId = name.substring(name.indexOf(":") + 1); + if (Loader.isModLoaded("gregtech")) { + return GregTech.convertFluid(itemStack); + } + return itemStack; + } + public static void init() { JustEnoughCalculation.logger.info("=====Just Enough Calculation Init Start====="); if (Loader.isModLoaded("Forestry")) { diff --git a/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java b/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java index f036441..1b3c9f2 100644 --- a/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java +++ b/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java @@ -39,7 +39,8 @@ public class NEIPlugin { public static ILabel getLabelUnderMouse() { if (NEIPlugin.currentItemStack == null) return ILabel.EMPTY; - return ILabel.Converter.from(NEIPlugin.currentItemStack); + Object stack = Adapter.convertFluid(NEIPlugin.currentItemStack); + return ILabel.Converter.from(stack); } public static void setLabelUnderMouse(ItemStack itemStack) { diff --git a/src/main/java/me/towdium/jecalculation/nei/adapter/GregTech.java b/src/main/java/me/towdium/jecalculation/nei/adapter/GregTech.java index 0ec2bbc..6656cde 100644 --- a/src/main/java/me/towdium/jecalculation/nei/adapter/GregTech.java +++ b/src/main/java/me/towdium/jecalculation/nei/adapter/GregTech.java @@ -67,17 +67,17 @@ public class GregTech implements IAdapter { protected void handleDefault(IRecipeHandler recipe, int index, List inputs, List outputs) { for (int i = 0; i < inputs.size(); i++) { - Object[] objects = Arrays.stream(inputs.get(i)).map(o -> this.convertFluid((ItemStack) o)).toArray(); + Object[] objects = Arrays.stream(inputs.get(i)).map(o -> GregTech.convertFluid((ItemStack) o)).toArray(); inputs.set(i, objects); } List otherStacks = recipe.getOtherStacks(index); outputs.addAll(otherStacks.stream() .map(positionedStack -> positionedStack.items) - .map(itemStacks -> Arrays.stream(itemStacks).map(this::convertFluid).toArray()) + .map(itemStacks -> Arrays.stream(itemStacks).map(GregTech::convertFluid).toArray()) .collect(Collectors.toList())); } - protected Object convertFluid(ItemStack itemStack) { + public static Object convertFluid(ItemStack itemStack) { FluidStack fluidStack = getFluidFromDisplayStack(itemStack); return fluidStack == null ? itemStack : fluidStack; } diff --git a/src/main/java/me/towdium/jecalculation/utils/Utilities.java b/src/main/java/me/towdium/jecalculation/utils/Utilities.java index 60da213..d1ca302 100644 --- a/src/main/java/me/towdium/jecalculation/utils/Utilities.java +++ b/src/main/java/me/towdium/jecalculation/utils/Utilities.java @@ -88,11 +88,19 @@ public class Utilities { // MOD NAME @Nullable public static String getModName(Item item) { - String name = GameData.getItemRegistry().getNameForObject(item); + String name = getName(item); String id = name.substring(0, name.indexOf(":")); return id.equals("minecraft") ? "Minecraft" : Loader.instance().getIndexedModList().get(id).getName(); } + public static String getName(Item item) { + return GameData.getItemRegistry().getNameForObject(item); + } + + public static String getName(ItemStack itemStack) { + return getName(itemStack.getItem()); + } + /** * If fluid is lava or water, return 'Minecraft'. * If has still icon or flowing icon, get the icon name, or return 'unknown';