diff --git a/dependencies.gradle b/dependencies.gradle index 311b65d7..ba2de96a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -62,6 +62,7 @@ dependencies { compileOnly files("libs/NuclearCraft-2o.6.0-1.12.2.jar") implementation("com.cleanroommc:modularui:2.4.1") { transitive = false } + implementation rfg.deobf("curse.maven:serene-seasons-291874:2799213") implementation rfg.deobf("curse.maven:nutrition-gtceu-964594:5047422") implementation rfg.deobf("curse.maven:nutrition-unofficial-extended-life-964516:5049991") testImplementation 'junit:junit:4.13.2' diff --git a/src/main/java/gregtechfoodoption/GTFOValues.java b/src/main/java/gregtechfoodoption/GTFOValues.java index 8cc80a7a..a98812d3 100644 --- a/src/main/java/gregtechfoodoption/GTFOValues.java +++ b/src/main/java/gregtechfoodoption/GTFOValues.java @@ -18,7 +18,8 @@ public class GTFOValues { MODID_AC = "agricraft", MODID_AP = "applecore", MODID_NU = "nutrition", - MODID_NUGT = "nutrition_gtceu"; + MODID_NUGT = "nutrition_gtceu", + MODID_SS = "sereneseasons"; public static final String craftingToolRollingPin = "craftingToolRollingPin"; diff --git a/src/main/java/gregtechfoodoption/GregTechFoodOption.java b/src/main/java/gregtechfoodoption/GregTechFoodOption.java index daa3af48..42d9dcda 100644 --- a/src/main/java/gregtechfoodoption/GregTechFoodOption.java +++ b/src/main/java/gregtechfoodoption/GregTechFoodOption.java @@ -2,6 +2,7 @@ import gregtech.api.GTValues; import gregtech.api.GregTechAPI; +import gregtech.api.util.Mods; import gregtechfoodoption.block.GTFOMetaBlocks; import gregtechfoodoption.client.GTFOClientHandler; import gregtechfoodoption.covers.GTFOCoverBehaviors; @@ -69,7 +70,7 @@ public void init(FMLInitializationEvent event) { proxy.onLoad(); } catch (Exception e) { } - if (Loader.isModLoaded(GTValues.MODID_TOP)) { + if (Loader.isModLoaded(Mods.Names.THE_ONE_PROBE)) { GTFOTOPCompatibility.registerCompatibility(); } if (Loader.isModLoaded(GTFOValues.MODID_GF) && Loader.isModLoaded(GTFOValues.MODID_TFC)) { diff --git a/src/main/java/gregtechfoodoption/integration/sereneseasons/GTFOSSTooltipHandler.java b/src/main/java/gregtechfoodoption/integration/sereneseasons/GTFOSSTooltipHandler.java new file mode 100644 index 00000000..aa6493d2 --- /dev/null +++ b/src/main/java/gregtechfoodoption/integration/sereneseasons/GTFOSSTooltipHandler.java @@ -0,0 +1,56 @@ +package gregtechfoodoption.integration.sereneseasons; + +import gregtechfoodoption.block.GTFOCrop; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import net.minecraftforge.fml.common.ObfuscationReflectionHelper; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import sereneseasons.config.FertilityConfig; +import sereneseasons.core.SereneSeasons; +import sereneseasons.init.ModFertility; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.List; + +public class GTFOSSTooltipHandler { + @SideOnly(Side.CLIENT) + public static void addTooltip(GTFOCrop crop, List tooltip) { + try { + Field seedSeasons = ModFertility.class.getDeclaredField("seedSeasons"); + seedSeasons.setAccessible(true); + HashMap map = (HashMap) seedSeasons.get(FertilityConfig.seasonal_fertility); + String name = crop.getRegistryName().toString(); + if (map.containsKey(name)) { + int mask = map.get(name); + tooltip.add("Fertile Seasons:"); + if ((mask & 1) != 0 && (mask & 2) != 0 && (mask & 4) != 0 && (mask & 8) != 0) { + tooltip.add(TextFormatting.LIGHT_PURPLE + " Year-Round"); + } else { + if ((mask & 1) != 0) { + tooltip.add(TextFormatting.GREEN + " Spring"); + } + + if ((mask & 2) != 0) { + tooltip.add(TextFormatting.YELLOW + " Summer"); + } + + if ((mask & 4) != 0) { + tooltip.add(TextFormatting.GOLD + " Autumn"); + } + + if ((mask & 8) != 0) { + tooltip.add(TextFormatting.AQUA + " Winter"); + } + } + } + + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/gregtechfoodoption/item/GTFOCropSeedBehaviour.java b/src/main/java/gregtechfoodoption/item/GTFOCropSeedBehaviour.java index fb5c65df..792457f1 100644 --- a/src/main/java/gregtechfoodoption/item/GTFOCropSeedBehaviour.java +++ b/src/main/java/gregtechfoodoption/item/GTFOCropSeedBehaviour.java @@ -1,8 +1,10 @@ package gregtechfoodoption.item; import gregtech.api.items.metaitem.stats.IItemBehaviour; +import gregtechfoodoption.GTFOValues; import gregtechfoodoption.block.GTFOCrop; import gregtechfoodoption.block.GTFORootCrop; +import gregtechfoodoption.integration.sereneseasons.GTFOSSTooltipHandler; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.resources.I18n; @@ -14,6 +16,11 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.fml.common.FMLContainer; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.relauncher.Side; +import sereneseasons.core.SereneSeasons; import java.util.List; @@ -43,5 +50,9 @@ public void addInformation(ItemStack itemStack, List lines) { lines.add(I18n.format("gregtechfoodoption.seed.0")); if (crop instanceof GTFORootCrop) lines.add(I18n.format("gregtechfoodoption.seed.root_crop")); + + if (Loader.isModLoaded(GTFOValues.MODID_SS)) { + GTFOSSTooltipHandler.addTooltip(crop, lines); + } } }