CropsNH
160 merged pull requests.
Needs action on an existing world:
- [world data] #4 Complete rewrite of the crop system from scratch with all crops re-added, deterministic breeding, and Agricraft-style spreading. This is a major overhaul making the mod playable for testing in the pack.
Your IC2 crops, crop sticks and seeds are converted to CropsNH as your save loads, keeping their growth, gain and resistance stats along with their nutrient, water and weed-EX buffers, so do not break them beforehand. The GT crop machines are covered separately in the GregTech entry for this rework.
New Features
- #228 Created boot protection registry system with two handler types (constant and damage-based), integrated into crop stick tile entity collision logic, added NEI dumper for documentation. - @C0bra5
- Added: Boot protection registry, Boot protection handlers, Boot protection NEI dumper, Damage reduction for various boot types
- #215 Added UI texture assets and updated CropsNHUITextures registry; modified MTECropBreeder to use new textures. - @C0bra5
- Added: Crop breeder slot overlay texture, Crop breeder progress bar texture
- #211 Added power cost display logic to BlockSeedBed tooltip and updated MTEIndustrialFarm tooltip. - @C0bra5
- Added: Seed bed power cost tooltip
- #209 Added MCLib dependency, created MCLibCompatHandler, and integrated sound event playback into crop stick tile entity and spade tool. - @C0bra5
- Added: Crop sound effects, Sound event system, MCLib dependency
- Closes #198
- #196 Moved crop stick scanner info localization from server to client in TileEntityCropSticks and CommonProxy, using IGrowthRequirement API. - @Eldrinn-Elantey
- Added: Client-side crop scanner localization
- #183 Added entity damage logic back to CropBamboo to restore entity collision behavior. - @C0bra5
- Added: Entity damage on bamboo collision
- Fixed: Bamboo entity damage behavior
- #174 Implemented ICasingTextureProvider in MTEIndustrialFarm to enable CTM texture connections. - @tiffit
- Added: ICasingTextureProvider implementation
- #163 Created NEICropsNHAlternateSeedHandler to display alternative seed representations in NEI. Updated CropsNHNEIHandler and crop definitions to support alternate seed registration. - @koolkrafter5
- Added: alternate seed NEI handler, alternate seed registry
- #148 Created CropsNHHandler in compatibility/findit package to implement FindIt's filter provider. Seeds are now matched by crop ID only, ignoring stat differences. - @koolkrafter5
- Added: FindIt compatibility handler, seed ID-based filtering
- #140 Added 11 new validation checks to MTEIndustrialFarm structure validation: MV-tier glass minimum, tier component restrictions, limits on Environmental/Fertilizer/Harvesting units and OC GAU, multi-amp energy hatch restrictions, laser hatch prevention, and multi-amp/OC GAU pairing requirements. - @C0bra5
- Added: structure diagnostic error messages
- #133 Added 9 new ore multiplication recipes in CropRecipes.java: basaltic/granitic mineral sand via Ferrofern, and 7 salt-type ores via Salty Root (with 4x leaf requirement accounting for Salty Root's drop multiplier). - @C0bra5
- Added: ore multiplication recipes for mineral sands, ore multiplication recipes for salt variants
- #125 Registered materialCropLeaf ore dictionary entries in OreDictLoader.java for crop leaf items. - @C0bra5
- Added: materialCropLeaf ore dict entries
- #116 Extended MTECropManager.java to include battery slot functionality (45 lines added). - @OTPANNIEXD
- Added: battery slot to Crop Manager
- #109 Added rain detection and water accumulation logic to TileEntityCropSticks, applying 10 water per growth tick (256 ticks, 11 raw units minus 1 consumption). - @C0bra5
- Added: Sky-visible rain watering mechanic
- #108 Modified ItemGenericSeed tooltip logic to show seed stats for analyzed invalid seeds; added conditional rendering for broken seed ID coloring; added new localization key to Names. - @C0bra5
- Added: Tooltip display for analyzed invalid seeds, Better visual handling of quest book seeds
- #105 Created ICropSeedDropOverride and IHarvestDropModifier interfaces; refactored ItemSpadeNH to apply drop modifiers through the new interface; added left-click cancellation for crop sticks and right-click harvest triggering in TileEntityCropSticks event handler. - @C0bra5
- Added: ICropSeedDropOverride interface, IHarvestDropModifier interface, Shift-right-click harvest capability, Drop modifier application system
- Fixed: Accidental crop stick breaking with spade
- #99 Created CropThiosulfine class with yellow/flower/bad pools and breeding mechanics. Added thiosulfine seed item, doped residue items, and processing recipes (extractor, forge hammer, chemical bath). Integrated with mutation loader and block under requirements. - @C0bra5
- Added: Thiosulfine crop, Thiosulfine seed item, Doped residue items, Extractor, forge hammer, and chemical bath recipes, Breeding mutations
- Removed: ItemFertilizer class, ItemHempHurd class, ItemPoisonPowder class
- #94 Modified RenderCrop to apply green color overlay to crop sticks when crop health status indicates sickness. - @C0bra5
- #93 Added ore-dict-based endpoint in ISoilList for soil registration, refactored CropsNHSoilTypes, and updated all crop soil definitions to use new registration method. Added internal panic flag with GT5u override capability. - @C0bra5
- Added: Ore-dict-based soil registration endpoint, Internal panic flag handling
- #80 Modified MutationLoader to add mutation pools to crops where thematically appropriate. - @C0bra5
- Added: Additional mutation pools for crops
- #78 Added soil migration tracking system with SoilMigrations class and MigrationHandler integration. Modified SeedData and TileEntityCropSticks to support migration flagging. - @C0bra5
- Added: SoilMigrations migration class, Soil migration tracking system
- #75 Expanded BlockUnderRequirementLoader to recognize additional ore blocks for each metal crop: lead accepts galena, manganese accepts pyrolusite, naquadah accepts enriched and naquadria variants, platinum accepts sheldonite, titanium accepts ilmenite and rutile, tungsten accepts scheelite and tungstate, uranium accepts pitchblend and uraninite, thorium accepts thorianite. - @C0bra5
- Added: Additional ore blocks for metal crops
- Fixed: Metal crops not utilizing full range of related ore blocks
- Closes #71
- #69 Added Forestry compatibility handler in ForestryCompatHandler to register CropsNH fertilizer with Forestry Multifarm system. Updated Forestry dependency. - @C0bra5
- Added: Forestry Multifarm fertilizer support
- Fixed: CropsNH fertilizer compatibility with Forestry farms
- Closes #68
- #60 Implemented ISoilTramplingResistanceRegistry for mods to register soil trampling resistance with optional multiplier. Fixed soil migration logic to validate target soils. Moved crop breaking logic from BlockCropSticks collision handling. - @C0bra5
- #54 Added ISoilTramplingResistanceRegistry, structure channels for IF tier/upgrade configuration, marked IF upgrade casings with channels for holoprojector compatibility, fixed survival mode building restrictions. - @C0bra5
- Added: if_tier structure channel, if_upgrade structure channel, holoprojector support for IF
- Fixed: Industrial Farm not buildable with holoprojector
- #4 Comprehensive rework of crop infrastructure including NHCropCard base class, TileEntityCropSticks, seed generation, breeding logic, and support for vanilla, IC2, Crops++, GregTech, BoP, TiC, Twilight Forest, and Witchery crops. Added mixins, access transformers, and massive new crop card implementations. - @C0bra5
- Added: all crops from multiple mod integrations, deterministic breeding system, Agricraft-style spreading, Waila compatibility, seed item generation, thaumcraft aspects
- Migration: Your IC2 crops, crop sticks and seeds are converted to CropsNH as your save loads, keeping their growth, gain and resistance stats along with their nutrient, water and weed-EX buffers, so do not break them beforehand. The GT crop machines are covered separately in the GregTech entry for this rework.
New Content
- #250 Updated CropBaseStoneLily rendering configuration and replaced multiple stone lily and lazulia texture files. - @C0bra5
- #192 Added apple drop and food pool to dark oak crop configuration in CropLoader and MutationLoader. - @C0bra5
- Added: Apple drops to dark oak crop, Food pool to dark oak
- #142 Added 20 new overlay texture assets and integrated them into CropsNHBlockTextures for four single-block machines. Updated MTECropGeneExtractor, MTECropBreeder, MTESeedGenerator, and MTECropSynthesizer to reference new overlay textures. - @C0bra5
- Added: single-block machine overlay textures, block texture registry entries
- Closes #24
- #102 Added CropRubyne class with stats based on sapphirium; registered crop in CropsNHCrops and CropsNHBlockUnderTypes; added mutation pool assignments (Crystal, Red, Shiny); registered loader entries in BlockUnderRequirementLoader and MutationLoader; added textures and language keys. - @C0bra5
- Added: Rubyne crop with breeding parents (redstraw, lazulia), Rubyne textures (4 growth stages), Language keys for rubyne
- #13 Added 7 texture files for Pyrolusium Leaf variants and Starwart in src/main/resources/assets/cropsnh/textures/items/materialLeaf/. - @june-dev-username
- Added: Pyrolusium Leaf textures, Starwart texture
- #12 Updated texture assets in src/main/resources/assets/cropsnh/textures/items/. - @june-dev-username
Changes
- #252 Updated CropsNHItemList and recipe references in GTRecipeLoader to reflect new material assignments for tired crafting components. - @C0bra5
- #251 Added mode-change logic to MTEIndustrialFarm screwdriver interaction, added localization strings for mode display. - @Angry3vilbot
- Added: Industrial Farm mode change via screwdriver
- Fixed: Screwdriver interaction with Industrial Farm
- Closes GTNH#26477
- #239 Moved GT5U's naquadah recipe scan loop modifications into CropRecipes to consolidate naquadah material handling. - @boubou19
- #237 Moved recipe modifications from GT5U's PlatinumSludgeOverhaul into CropRecipes loader to consolidate platinum-related recipe changes. - @boubou19
- #233 Replaced server-side StatCollector calls with client-side ChatComponentTranslation for the wrong soil message; moved hardcoded English strings to language files. - @Eldrinn-Elantey
- Added: Language file entries for Industrial Farm, Forestry farm logic, material leaf fallback, NEI warnings
- Removed: Hardcoded English text in code
- Fixed: Wrong soil message showing in server language, Missing localization for UI strings
- #223 Updated dependency version and reverted MTEIndustrialFarm structure tooltip implementation. - @AnsonYeung
- #217 Updated recipe map references in CropRecipes and FertilizerRecipes, bumped GT5-Unofficial dependency version. - @Yoshy2002
- #199 Modified CropsNHFIndItFilterProvider to add scan-check logic and alternate seed filtering; updated ISeedData to track soil replacement needs. - @C0bra5
- Added: Migrated crop soil replacement identification in Find-It
- Removed: Find-It scan bypass
- Fixed: Find-It bypassing crop scanning requirements
- #197 Refactored scanner/lens output formatting, added TTRenderCropsNHCropProgressBar for Waila, modified seed data display logic, and updated CropRecipes. - @C0bra5
- Added: Growth progress bar display, Primordial pearl to magic essence recipe, Colored seed name by rarity, Progress bar Waila component
- Removed: Duplicate growth requirement info in scanner/lens
- Fixed: Waila divulging failed requirements for unscanned crops
- #188 Refactored construction tooltip generation in MTEIndustrialFarm to use updated GT5-Unofficial tooltip functions; updated language strings. - @DylanTaylor1
- #161 Added onRemovedNoise public method to ICropStickTile and TileEntityCropSticks. Separated placement and removal noise logic in ItemCropSticks. - @C0bra5
- Added: cross-crop removal sound effect
- #149 Updated CropsNHHandler to recognize planted crop stick tile entities and match them by crop ID. - @koolkrafter5
- #63 Introduced CropsNHSoilTypes and CropsNHBlockUnderTypes enums to centralize soil/underblock definitions. Removed ISoilRegistry interface. Expanded crop compatibility with variants from multiple mods. - @C0bra5
- Added: soil type variants from other mods, deepslate lily underblock support
- Removed: ISoilRegistry interface
- #43 Enhanced IF module tooltip formatting with colors, added casing texture generator for tired casings, fixed localization key for blank env module, updated dependencies. - @C0bra5
- Added: IF casing texture generator, colored tooltips for acceleration modules
- Fixed: default module item using incorrect localized string
- Closes #36
- #38 GT5-Unofficial dependency version bumped in dependencies.gradle to account for PR #5781. - @boubou19
- #34 BlockCropSticks collision box reduced; dependencies.gradle updated to align with other mod versions. - @C0bra5
- #19 Removed redundant single-member mutation pools from MutationLoader and removed Gaia Wart from mutation pools in CropMutationPools. - @C0bra5
- Removed: Single-member mutation pools, Gaia Wart mutation pools
- #15 Restored 13 item texture files that had been replaced with temporary art. - @C0bra5
- Removed: placeholder programmer art textures
- #14 Re-added pyrolusiumLeaf.banana.png and pyrolusiumLeaf.canada.png texture files. - @C0bra5
- Added: easter egg textures
- #10 Extended BlockUnderRequirementLoader to include Random Things' fertilized dirt and Ztone's garden soil; modified CropMigrator and TileEntityCrop to handle garden soil/fertilized dirt; restored magical nightshade item planting; changed underblock type from ichorium to shadowmetal; updated textures for inkbloom and necromboom; fixed seed bed tooltip length value. - @C0bra5
- Added: Magical nightshade seed planting capability, Farmland soil registry entries for Random Things and Ztone mods
- Fixed: Migrated crop destruction on alternate soil types, Seed bed tooltip length value, Crop migration for Crops++ items
- Migration: Migrated crops may now survive on garden soil or fertilized dirt; replant any destroyed crops if needed.
- #8 Refactored MTEIndustrialFarm tooltip system and component rendering. Updated textures for Industrial Farm components and Trollplant. Changed God of Thunder recipe acid from phthalic to formic. Fixed TileEntityCrop migrator seed duplication logic. Added new Constants and updated CropsNHBlockTextures initialization. - @C0bra5
- Added: Enhanced Industrial Farm structure tooltips, Detailed seedbed tier length hints, Updated component textures
- Fixed: Migrator crops dropping duplicate seeds, Missing output hatch structure requirement documentation
- #5 Updated dependencies.gradle to replace CodeChickenLib with different version or alternative library. - @koolkrafter5
Balance
- #185 Updated steeleaf skip recipe in CropRecipes with reduced resource costs and changed fluid to hydrofluoric acid. - @C0bra5
- #176 Updated bauxite production recipes to EV, added Steeleaf underground growth requirements via CropSteeleafranks, added new block under types to BlockUnderRequirementLoader, adjusted Bauxia crop recipes in CropRecipes. - @C0bra5
- Added: Steeleaf growth requirement mechanics, New block under types
- Migration: Multiple crops have been rebalanced; check your crop farm setup, especially Bauxia, Steeleafrank, and other affected crops.
- #172 Updated bauxite ore and dust production recipes in CropRecipes, moved to EV tier with HF acid requirement and higher-tier circuits. - @C0bra5
- Added: Aluminum ore output from existing recipe
- Migration: Bauxia ore production moved from MV to EV tier; adjust your crop setup and acid supply accordingly.
- #168 Removed Eye of Ender drop from CropEnderbloom drop table. - @C0bra5
- Removed: Eye of Ender drop
- #123 Modified mutation definition in MutationLoader.java to use Rubyne instead of Titania as a parent crop. - @C0bra5
- #101 Updated CropRecipes machine tier requirements, processing durations, and chemical inputs for sphalerite and galena alloy smelter/chem bath recipes, and modified digester recipes to use hydrochloric acid. - @C0bra5
- Migration: Thiosulfine recipes moved up a tier (sphalerite LV to HV, galena LV to MV) and the digester now takes hydrochloric acid instead of sulfuric; a line built at LV can no longer run them.
- #86 Removed sticky pool reference from Slimy Bonsai entry in MutationLoader. - @C0bra5
- Removed: Sticky mutation pool from Slimy Bonsai
- Fixed: Slimy Bonsai progression bypass
- #64 Restored drop multiplier for Malaxia, Cassitine, Ferrofern, Plumbshade from 0.37 to 0.74. Fixed recipe time application to conversion recipes. Modified Oil Berry fluid extraction EU/t and duration; added DT (Distillation Tower) recipes. Updated CropRecipes and BaseGTRecipeLoader. - @C0bra5
- #46 Reduced quicksilver nuggets per drop (10→1), soul sand drop rate (100%→25%), goldfish frequency (100%→60%), IF capacity buff reverted, harvest bonus changed from gain/10 additive to multiplier-based system. Tooltip coloring standardized in crop manager. - @C0bra5
- Migration: Reduce the internal storage capacity of existing Industrial Farms below the new limits by crafting new ones, or they will not function.
- #33 Increased gene extractor times (specimen 2→5 min, stat 30s→2.5 min); crop synthesizer now uses logarithmic formula based on tier (5-10 minutes across all tiers). - @C0bra5
- Fixed: Excessively long high-tier crop synthesizer times
- Closes #27
- #16 Updated crop drop rates in CropWithereed, CropGarnydinia, CropZomplant, CropClayLily. Modified ICropStickTile API with soil planting result. Adjusted seed generator/breeder base recipe times and fertilizer costs in MTESeedGenerator and MTECropBreeder. - @C0bra5
- Added: soil type warning message, zombie brain/skull drops
- Removed: small/tiny dust drops from garnydinia, purified ore drops from garnydinia
- #9 Updated CropOilBerry and CropSoulSandLily production values. Modified CropsNHItemList registry. Updated build dependencies. - @C0bra5
Bug Fixes
- #254 Changed NBTHelper to save item counts as integers instead of doubles, with backward-compatible float-to-integer conversion on load. - @Chitak985
- Fixed: Item stack map counts lost on NBT load
- Migration: Reload the world or use NBT tools to verify crop stick item stack counts are correct; existing saves may have lost data that this patch cannot recover.
- #243 MTECropManager energy slot now correctly configured as an energy slot. - @Pxx500
- Fixed: Energy slot not accepting redstone or energy
- #241 Fixed NPE in CropsNHUtils.getSeedData by adding proper null checks. - @C0bra5
- Fixed: Seed generator null pointer exception
- Closes #240
- #232 CropRecipes updated to use formic acid for meteoric iron dust conversion and adjusted space flower recipes for ore dict unification consistency. - @C0bra5
- Fixed: Iron III chloride recipe conflict, Titanium-to-desh conversion recipe producing wrong material
- #231 ItemCropSticks placement logic now accepts non-top facing surfaces, BetterBuildersWands compatibility handler restored with custom mapping, ExtraUtils watering can handler updated. - @C0bra5
- Added: BetterBuildersWands compatibility handler, CropsNH Better Builders Wands crop stick custom mapping
- Fixed: Crop stick placement on non-top facing blocks, Builder's wand interactions, Item voiding on double crop stick placement
- Closes #230, GTNH#26256, #249
- #225 Updated en_US language file entry for bamboo seed item. - @C0bra5
- Fixed: bamboo seeds name spelling
- Closes #224
- #218 Updated crop breeder progress bar texture asset. - @C0bra5
- Fixed: Progress bar shading
- #210 Modified ItemGaiaWart to remove food properties and add IC2 radiation reduction handler with tooltip. - @C0bra5
- Added: Gaia Wart tooltip, IC2 radiation effect reduction
- Removed: Gaia Wart food functionality
- Fixed: Gaia Wart appearing as food
- Closes #207
- #206 Added damage logic to CropThornvine and rebalanced mutation pool distributions in MutationLoader. - @C0bra5
- Added: Thornvine player damage on contact
- Fixed: Thornvine not damaging players
- #200 Updated MutationLoader to assign Plumbilia to the correct crop group. - @C0bra5
- Fixed: Plumbilia in wrong reed group
- #195 Added transformer entry in GT5uMigrations handler for chili pepper. - @C0bra5
- Added: Chili pepper Postea transformer migration
- Fixed: Missing crop transformer for chili pepper
- #193 Modified NEICropsNHMutationPoolHandler and CropsNHUtils to dynamically adjust pool rendering dimensions based on member count, preventing overflow. - @C0bra5
- Fixed: NEI mutation pool overflow
- #191 Implemented getTankInfo() in MTECropManager to expose water, weed-ex, and fertilizer tanks as separate fluid tanks with representative fluids. - @Eldrinn-Elantey
- Added: Tank info reporting to Waila
- Fixed: Crop Manager Waila tank display
- #190 Added sporadic growth requirement re-validation in TileEntityCropSticks for mature crops to detect condition changes. - @C0bra5
- Added: Periodic mature crop growth validation
- Fixed: Mature crop becoming unharvestabl when conditions change
- #184 Updated duplication catalyst in CropEnderbloom from Eye of Ender to Ender Pearl. - @C0bra5
- Fixed: Enderbloom duplication consistency
- #182 Added seed generation method to CropCard base class, fixed EFR stone lily drop logic in CropDeepslateLily and CropTuffLily, added null checks in CropLoader. - @C0bra5
- Added: Water Artichoke seed recipe option, Null checks to crop loaders
- Removed: Unused seed imports from crops
- Fixed: Water Artichoke crop sticks unavailability, EFR stone lily drops, Crop loader error detection
- Closes GTNH#25348
- #181 Added voltage tier checks to MTECropBreeder and MTECropSynthesizer recipe execution to enforce recipe tier limits. - @C0bra5
- Fixed: Crop Breeder overclock vulnerability, Crop Synthesizer overclock vulnerability
- Closes GTNH#25447
- #180 Adapted culture recipe calls in CropRecipes and CropsPlusPlusRecipes following BioLab API cleanup; updated GT5-Unofficial dependency. - @UltraProdigy
- Fixed: BioLab compatibility
- #179 Removed knightmetal recipe components from steeleaf skip recipe in CropRecipes. - @C0bra5
- Removed: Knightmetal from steeleaf skip recipe
- Fixed: Steeleaf skip progression gate
- #177 Corrected olivine name string in en_US.lang. - @koolkrafter5
- Fixed: Olivine name typo
- #173 Added isRecipeCheck parameter to ItemEjectionHelper call in MTEIndustrialFarm to match API changes. - @hinyb
- Fixed: Industrial Farm ME output bus cache capacity handling
- Closes GTNH#25429
- #171 Corrected auto-placement logic and made input bus handling optional in MTEIndustrialFarm. - @C0bra5
- Fixed: Industrial Farm auto-placement logic, Input bus optional configuration
- #160 Migrated ItemCropSticks from onItemRightClick to onItemUse, added canEditBlock permission check, updated block and renderer audio cues from STONE to WOOD. - @koolkrafter5
- Added: block edit permission check
- Fixed: sneak-placement behavior, griefing vulnerability
- #159 Re-added oil comb → oil berry extraction recipe to CropRecipes with unchanged recipe values. - @C0bra5
- Added: oil comb extraction recipe
- Fixed: missing oil comb extraction
- #155 Updated lang key references in src/main/resources/assets/cropsnh/lang/en_US.lang to track GT5U's CHECK_RECIPE_RESULT_CANNOT_GROW changes. - @C0bra5
- Fixed: error tooltip text tracking
- Closes #152
- #147 Modified TileEntityCropSticks to prevent harvest of IF-only crops until they tick at least once, fixing race condition when worlds reload or crops are moved. - @C0bra5
- Fixed: premature IF-only crop harvesting
- #146 Fixed MTECropBreeder to validate crop type before breeding. Updated MTESeedGenerator and MTECropBreeder to display fluid capacity in tooltips and set 256KL capacity for IV+ tiers. Updated dependencies.gradle to add new dependency. - @C0bra5
- Added: fluid capacity tooltips, low-capacity warnings
- Fixed: synthesizer-only crop breeding bug, low-capacity breeding performance
- Closes #144
- #145 Changed Industrial Farm item ejection from custom void-prevention logic to standard mOutputItems handling in MTEIndustrialFarm output recipe completion. - @C0bra5
- Fixed: item duplication in Industrial Farm output mode
- Closes Dupes-Exploits-GTNH#313
- #137 Removed deterministic parent collision for tuff lily to prevent mutation failure against ferrofern. Migrated CropAndesiteLily, CropDioriteLily, and CropGraniteLily from botania package to modern package; updated BlockUnderRequirementLoader and MutationLoader to correctly identify and load modern stone block variants. - @C0bra5
- Added: modern stone lily crop variants
- Removed: botania stone lily variants, ferrofern-tuff lily collision
- Fixed: tuff lily breeding collision, stone lily backport detection
- #136 Added seed drop guarantee in ICropStickTile interface and modified BlockCropSticks.java to handle seed drops for all break scenarios, not just player breaks. - @C0bra5
- Added: ICropStickTile seed drop interface
- Fixed: water breaking crop sticks doesn't drop seeds, missing seed drops from non-player breaks
- Closes #135
- #132 Corrected growth speed multiplier application in MTEIndustrialFarm.java, fixed OC GAU upgrade to prevent multiple multi-amp hatches, and adjusted fertilizer logic in BlockFertilizerUnit.java. - @C0bra5
- Fixed: growth speed applied incorrectly, multi-amp hatch duplication, multi-amp with regular hatches simultaneously
- Migration: Industrial Farm fertilizer mechanics changed; Enriched Fertilizer now required with 10x higher consumption and growth speed formula corrected.
- #131 Added fluid and item extraction recipes for Indigo Blossom in CropRecipes.java, ported from GT5u. - @C0bra5
- Added: Indigo Blossom extraction recipes
- Fixed: Indigo Blossom unable to be converted to dye
- Closes #121
- #130 Added offhand action cancellation logic and Backhand compatibility to prioritize crop watering over offhand interactions. - @Lyfts
- Added: Backhand offhand priority handler
- Fixed: offhand taking priority during crop watering
- #127 Corrected drop count constant in CropArditeOreBerry.java. - @C0bra5
- Fixed: incorrect drop stack size
- #126 Modified ItemGoldfish.java to enable block interaction capabilities. - @C0bra5
- Fixed: Goldfish unable to interact with blocks
- #124 Added Backhand mod integration and compatibility layer to prioritize mainhand actions over offhand when interacting with crop sticks. - @C0bra5
- Added: Backhand mod compatibility, BackhandCompat class
- Fixed: offhand slot interfering with watering can
- #122 Added emerald drop definition and adjusted drop rates in CropBobsYerUncleRanks.java. - @C0bra5
- Added: emerald drops
- Fixed: missing emerald drop from migrated crop
- #119 Added BoP mod presence check in MutationLoader.java before attempting to register BoP-dependent crop mutations. - @C0bra5
- Fixed: crash when Natura loaded without BoP
- Closes #118
- #117 Adjusted GUI rendering offsets in MTECropManager.java to properly align slot positions. - @OTPANNIEXD
- Fixed: GUI offset and slot alignment
- #114 Corrected an item reference in GTRecipeLoader.java to use the proper rotten flesh item for the Environmental module recipe. - @Luca-Guettinger
- Fixed: Environmental (Dead) recipe using wrong rotten flesh
- Closes GTNH#24146
- #113 Corrected an ore dictionary key name in CropThiosulfine.java to use the correct spelling. - @alfarelcynthesis
- Fixed: typo in ore dictionary name
- #112 Changed pool culling condition from 'less than or equal to 2' to 'less than 2' in MutationRegistry; added new tags to 11 mutation pools in CropsNHMutationPools; removed 8 unused mutation pools with 0-1 crop assignments. - @C0bra5
- Added: Mutation pool tags: rose, sticky, alien, dense, oil, sulfur, green, stem, food
- Removed: Unused mutation pools: clean, essence, heavy, radioactive, primordial, troll, transform, wither
- Fixed: Over-culling of mutation pools with 2 parents
- #111 Corrected localization string in en_US.lang. - @C0bra5
- Fixed: Thornvine name typo in localization
- #110 Corrected localization keys in en_US.lang for thornvine and related entries. - @Yoshy2002
- Fixed: Thornvine seed name misspelling, Grammar issues in language keys
- Closes GTNH#24315
- #107 Added description localization keys to CropsNHStructureChannels and corrected localization key references in StructureLibCompatHandler. - @C0bra5
- Fixed: IF_tier structure channel missing description, Incorrect localization key references
- #106 Refactored ExUWateringCanHandler to perform AoE water block checks instead of single-target; moved handler to dedicated compatibility class; added validation to check if watering can has liquid. - @C0bra5
- Added: ExUWateringCanHandler with AoE support, Watering can empty state validation
- Removed: Old watering can code from UtilitiesInExcessCompatHandler
- Fixed: Watering can requiring direct crop aim, Empty watering can still watering crops
- #104 Refactored CropStickWailaProvider to cache growth requirement status and render tooltips immediately instead of deferring; updated IGrowthRequirement interface with formatting methods; fixed tooltip color values in various requirement classes. - @C0bra5
- Added: Cached growth requirement evaluation in WAILA provider, Immediate tooltip rendering
- Removed: TODO.MD file (42 lines of task notes)
- Fixed: Delayed WAILA tooltip appearance, WAILA tooltip flickering, BLAZE IT tooltip color (restored red)
- #97 Fixed alcohol fluid lang entries, created new CropsNHCellFluid base class for cell fluid registration, refactored CropsNHFluids initialization to use new registration system instead of GT++ fluid utils. - @C0bra5
- Added: CropsNHCellFluid base class
- Removed: AlcoholImpure class
- Fixed: Alcohol fluid display names
- #92 Added disease transmission prevention logic to ItemPlantCure (Weed-EX) in TileEntityCropSticks disease infection checks. - @C0bra5
- Added: Weed-EX disease transmission prevention
- Fixed: Weed-EX missing disease transmission prevention
- Closes #89
- #91 Modified NEICropsNHCropHandler to filter out weed and migrator crop variants when listing crops that can grow on soil blocks. - @C0bra5
- Fixed: Weed and migrator crops showing in NEI block usage
- Closes #90
- #88 Modified MTEIndustrialFarm hatch validation logic to correctly accept hatches during survival mode structure building. - @evgengoldwar
- Fixed: Industrial Farm survival mode hatch validation
- #87 Modified MTEIndustrialFarm NEI hatch display logic to correctly filter which hatch types appear in NEI. - @evgengoldwar
- Fixed: Industrial Farm NEI hatch display
- #85 Fixed single character in MTECropManager tooltip describing height component of work area. - @C0bra5
- Fixed: Crop Manager work area height description
- #84 Modified GT5uMigrations to copy block metadata values when migrating Seed Synthesizer, Gene Extractor, Replicator, and Crop Manager multiblocks. - @C0bra5
- Fixed: Migrated MTE block metadata not preserved
- #76 Corrected fluid stack consumption logic in MTEIndustrialFarm to properly handle partial consumption when fertilizer amount equals requirement exactly. - @C0bra5
- Fixed: Industrial Farm fertilizer consumption edge case
- Closes #72
- #74 Modified TileEntityCropSticks to prevent client-side state desynchronization when crops are rapidly removed and double-crop sticks applied in succession. - @C0bra5
- Fixed: Client-side crop stick visual glitch (quantum state rendering)
- Closes #65
- #73 Modified CropsNHUtils and ModUtils to log warnings by default instead of panicking when GetModItem type requests fail; panic only occurs if RA2 panic null flag is set. Removed EFR blocks from BlockUnderRequirementLoader that aren't registered in GTNH-specific configs. Updated dependencies. - @C0bra5
- Removed: Unregistered EFR blocks from soil lists
- Fixed: Game crash with missing mod items, Crash when loading with daily 443 build
- Closes GTNH#24110
- #70 Removed water tag from CropGlowingCoral. Added IGrowthRequirement interface and MachineOnlyGrowthRequirement class for standardized machine-only crop marking. Updated NEI handlers and crop tooltips. - @C0bra5
- Added: IGrowthRequirement interface, MachineOnlyGrowthRequirement class, Standardized NEI tooltip system for machine-only crops
- Removed: Water biome tag from Glowing Coral
- Fixed: Glowing Coral incorrect water tag, Industrial Farm crop tooltip clarity
- #66 Corrected one character in PyrolusiumLeafVariant class, likely fixing a typo that broke the easter egg functionality. - @C0bra5
- Fixed: April Fools' easter egg in Pyrolusite leaf
- #62 Corrected localization string for breeder tooltip formula in en_US.lang. - @C0bra5
- Fixed: breeder NEI tooltip formula
- #59 Removed gold output from goldfish maceration recipe; corrected liquid-input enriched fertilizer recipe duration from 5x to match cell version. - @C0bra5
- Removed: gold drops from goldfish
- Fixed: fertilizer recipe parity issue
- Closes #56
- #58 Single-line fix in TileEntityCropSticks to correctly apply stack size multiplier during harvest. - @C0bra5
- Fixed: crop drop stack sizes incorrect
- Closes #57
- #55 Added BoP flax to ore dictionary and alternate seed registration for CropFlax. - @C0bra5
- Fixed: BoP flax not plantable as flax seed
- Closes #50
- #53 BaseGTRecipeLoader corrected to use recipe eu/t values instead of full amp multiplier. Micadia extraction recipe moved from HV to MV with 100% duration increase to compensate. - @C0bra5
- Fixed: micadia extraction using wrong energy values
- #49 Moved client-only crop rendering logic from ClientProxy to CommonProxy to ensure server-side state updates trigger rendering. Fixed scanner compatibility by updating crop detection on the common side. - @C0bra5
- Removed: ClientProxy crop rendering (moved to CommonProxy)
- Fixed: crop render state not updating on servers, portable scanner unable to scan crops in multiplayer
- Closes #22
- #48 Added proper ore dictionary registration for garlic alt seeds in CropGarlic and CropCoffee. - @C0bra5
- Fixed: Pam garlic not working as alt seed
- #47 Single-line fix in MTEIndustrialFarm to prevent duplicate application of drop rate multipliers. - @C0bra5
- Fixed: IF drop increases applied multiple times
- #42 ItemSpadeNH marked as shovel-type tool via tool classification system. - @C0bra5
- Fixed: spades not recognized as shovel tools
- #41 Replaced concurrent iteration and removal pattern with removeIf() API in MTECropManager.harvest() to prevent ConcurrentModificationException. - @Calvin304
- Fixed: ConcurrentModificationException in crop manager harvest
- #39 Added missing localization key to en_US.lang. - @UltraProdigy
- Added: language key for Crop Manager
- Fixed: Crop Manager Lang Key
- #32 Changed Belladonna mutation parents from purple tulip + pink tulip to purple tulip + huckleberry in MutationLoader. - @C0bra5
- Fixed: Allium/Belladonna duplicate mutation recipe
- Closes #23
- #31 Added seed-only harvest support to ItemSpadeNH with ICropStickTile interface updates. - @C0bra5
- Added: Seed-only harvest capability in ICropStickTile
- Fixed: Spade unable to use IF harvest-seeds-only mode
- Closes #29
- #30 Updated CropsNHUtils seed data parsing logic to recognize uncrossable crops. - @C0bra5
- Fixed: Primordial berry seeds not appearing in gene extractor, Uncrossable crops not displayed in NEI
- Closes #28
- #20 Corrected item ID references in GT5uMigrations handler for synthesizer migration. - @C0bra5
- Fixed: Incorrect item IDs for crop synthesizer migrations
- #18 Removed incorrectly configured stone compression recipes from CropsPlusPlusRecipes that had improper dupe prevention ratios. - @UltraProdigy
- Removed: Stone compression recipes with incorrect ratios
- Fixed: Stone recipe dupe prevention
- #11 Modified TileEntityCrop sickness calculation to properly apply resistance stat scaling and cap at 31 resistance; updated ItemPlantCure to add fertilizer on cure without exceeding 25 maximum. - @C0bra5
- Fixed: High-resistance crops still becoming sick, Sickness chance not scaling with resistance, Crops relapsing immediately after cure
Performance
- #245 Removed more ineffective recipe removal attempts from GTRecipeLoader. - @boubou19
- Removed: Additional useless recipe removal calls
- #244 Eliminated failed recipe removal attempts in GTRecipeLoader and CropsPlusPlusRecipes that served no purpose. - @boubou19
- Removed: Useless recipe removal calls
Internal / Refactor
- #247 Removed sapling drop count modification from CropBonsai that was likely debug code. - @C0bra5
- Removed: Bonsai sapling drop count modification
- #238 Replaced overloaded
getAnalyzedSeedData()calls with explicit parameterized versions across 11 files to improve code clarity and prevent misuse with alternate seeds. - @C0bra5 - #212 Bulk variable renaming via regex and IDE refactoring tools; renamed CropsNHBlockUnderTypes to CropsNHSubSoilTypes; updated NEI light level display logic. - @C0bra5
- Removed: Hungarian notation in variable names, CropsNHBlockUnderTypes class
- Fixed: NEI light level message overflow
- #208 Deleted unused proxy methods from ClientProxy, CommonProxy, IProxy, and ServerProxy. - @C0bra5
- Removed: Unused proxy functions
- #186 Refactored CropMutation registration to use individual MutationRegistry.register() calls instead of addToMutationPools(), updated graveyard soil to default to soulsand when TiC absent, tied pool loading to crop requirements rather than mutation requirements. - @C0bra5
- Added: Slimy bonsai breeding restriction to LV, Graveyard soil fallback to soulsand
- Removed: Additive mutation pool method from CropMutation
- Fixed: Out-of-pack mod compatibility
- #153 Removed CropsNHUITexturesMUI2.java, refactored CropsNHUITextures to use only MUI2, removed MTECropManagerGui, and updated recipe map handlers. Migrated from MUI1 to MUI2 button rendering, keeping only NEI-required fake recipe maps. - @C0bra5
- Removed: MUI1 UI texture definitions, MTECropManagerGui
- #150 Reorganized FindIt handler classes, created FindItCompatHandler wrapper, and updated ModUtils. Renamed CropsNHHandler to CropsNHFIndItFilterProvider. - @C0bra5
- Added: FindItCompatHandler
- #134 Updated dependencies.gradle and refactored MTESeedGenerator, MTECropBreeder, MTECropGeneExtractor, and MTECropSynthesizer to use MUI2 instead of legacy GUI system. - @C0bra5
Documentation
- #205 Updated README.md with grammar corrections. - @C0bra5
- Fixed: Grammar errors in documentation
- #201 Updated README.md and added new documentation assets. - @C0bra5
- Added: Updated project header and documentation
Chores
- #158 Corrected 39 language key entries in en_US.lang file. - @koolkrafter5
- Fixed: text typos and capitalization
- #129 Corrected url and updateUrl fields in mcmod.info to reference https://github.com/GTNewHorizons/CropsNH. - @DatLycan
- #98 Bumped GT dependency version in dependencies.gradle. - @Alexdoru
- #96 Removed logger import from CropsNHBlockTextures. - @Alexdoru
- Removed: GT++ logger usage
- #7 Renamed src/main/resources/assets/cropsnh/textures/items/materialLeaf/oilBerry.png (case correction). - @C0bra5
- #3 Large refactor of Gradle build files, wrapper updates, and directory structure reorganization; removed repository.gradle in favor of centralized configuration. - @bombcar
- Added: gitattributes configuration, API source directories
- Removed: repositories.gradle
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@C0bra5 (135), @UltraProdigy (57), @Dream-Master (32), @LazyFlesh (25), @koolkrafter5 (22), @boubou19 (13), @Ethryan (5), @Alexdoru (4), @Eldrinn-Elantey (4), @Pxx500 (4), @Yoshy2002 (4), @Auynonymous (3), @DatLycan (3), @Luca-Guettinger (3), @Lyfts (3), @Algent (2), @danyadev (2), @Dynamiczbee (2), @evgengoldwar (2), @june-dev-username (2), @mitchej123 (2), @OTPANNIEXD (2), @Ranzuu (2), @tiffit (2), @VortexSo4 (2), @alfarelcynthesis (1), @Angry3vilbot (1), @AnsonYeung (1), @bombcar (1), @Calvin304 (1), @Chitak985 (1), @DylanTaylor1 (1), @hinyb (1), @jude123412 (1), @kuba6000 (1), @LunaDziaba (1), @MLGfruitshoot (1), @PLASMAchicken (1), @POPlol333 (1), @Ruling-0 (1), @StellaCaerulea (1), @TheYoingLad (1)