CropsNH
180 merged pull requests.
Needs action on an existing world:
- [world data] #4 Crop Rework 2.0 is a new crop system written from scratch, not a continuation of the rework started two years ago. All crops are re-added: vanilla crops and flowers, IC2, Crops++ (GregTech, BoP, Thaumcraft, Natura, TiC, Twilight Forest, Witchery), GregTech, Good Generator (Salty Root) and GT++ hemp. It adds seed item generation, deterministic breeding, AgriCraft-style spreading, Waila support, aspects on items and imported IC2 crop art.
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. Planted crops restart from their first growth stage, so harvest ripe ones before updating; the GT crop machines are covered separately in the GregTech entry for this rework.
New Features
- #263 ISoilList gains getUnlocalizedItemTooltip and getUnlocalizedWrongSoilMessage; CompoundSoilList now requires a name; ICropStickTile.tryPlantSeed returns Pair<SeedPlantingResult, ISeedData>; dirtGrass now looks up the "dirtGrass" soil id; TileEntityCropSticks and ItemGenericSeed use the new keys. - @C0bra5
- Added: soil tooltips on seeds, wrong soil chat messages
- #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
- #80 Modified MutationLoader to add mutation pools to crops where thematically appropriate. - @C0bra5
- Added: Additional mutation pools for crops
- #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 Large rewrite of CropsNH with roughly 1800 changed files, including new build setup and addons.gradle. The PR diff was too large to fetch, so this is based on the title, body and file list only. - @C0bra5
- Added: new crop system, seed item generation, deterministic breeding, AgriCraft-style spreading, Waila support, aspects on crop items
- 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. Planted crops restart from their first growth stage, so harvest ripe ones before updating; 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
- #268 Added per-biome PNGs under textures/items/environmentalModule and a new overlay_slot texture. ItemEnvironmentalModule drops multi-pass rendering in favour of getIconFromDamage with the blank icon for meta 0. - @C0bra5
- Added: new environmental module textures, new Industrial Farm module slot overlay
- #262 ItemGenericSeed.addInformation adds a tooltip when getBreedingThreshold() < 0 and two lines when getCrossingThreshold() < 0; en_US.lang keys replaced. Also bumps GT5-Unofficial to 5.09.54.154 and a commented AE2FluidCraft version. - @C0bra5
- Added: cannot breed tooltip, cannot spread tooltip
- Removed: old synthesizer-only tooltip
- #259 CropNecrobloom constructor colors changed from 0x440F69/0x8921CC to 0x1D1225/0x4D4D4D. - @C0bra5
- Fixed: Necrobloom seed color not matching its appearance
- #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 Added getOreByproduct in CropRecipes that special-cases Naquadah, NaquadahEnriched and Naquadria to GGMaterial goo fluids (2 * INGOTS). This bakes in what GT5U's NaquadahReworkRecipeLoader used to change by scanning recipes at runtime. - @boubou19
- #237 CropRecipes.addOreMultiplicationRecipes now passes explicit fluid and item byproducts from WerkstoffLoader to a new createOreDuplicationRecipe overload, so the recipes no longer depend on GT5U's in-memory PlatinumSludgeOverhaul. - @boubou19
- Added: platinum group byproducts in ore duplication recipes
- #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
- #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
- #134 MTESeedGenerator, MTECropBreeder, MTECropGeneExtractor and MTECropSynthesizer now build their GUI through MTEBasicMachineBaseGui with ModularUI2 panels and CropsNHUITexturesMUI2, replacing the old ModularUI slot widgets. dependencies.gradle bumps GT5-Unofficial, GTNHLib, NEI, TinkersConstruct and other dev dependencies. - @C0bra5
- #93 Reworked CropsNHSoilTypes and ISoilList. registerSoil is now registerBlock, registerOreDict is new, and both return the list. Soil lists are renamed or dropped (dirt is now dirtGrass, nether, snow and silverwoodLog are removed) and gravel, oilSands and slimyDirt are added. Crop classes now return the shared soil lists directly instead of keeping static fields. - @C0bra5
- Added: ore dictionary soil registration, gravel soil list, oil sands soil list, new config field
- Removed: nether soil list, snow soil list, silverwood log soil list
- #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
- #34 BlockCropSticks collision box reduced; dependencies.gradle updated to align with other mod versions. - @C0bra5
- #19 Removed the unused single-member pool constants from CropsNHMutationPools and rewrote the pool assignments in MutationLoader, including removing GaiaWart from its pools and adding pools to other crops. - @C0bra5
- Added: new mutation pools on some crops
- 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
- #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
Balance
- #258 Adjusts addLikedBiomes in CropSugarBeet, CropPotato, CropRubyne, CropCanola, CropTearstalks (DEAD replaced by SPOOKY) and the vanilla flower crops (LUSH added to blue orchid, dandelion, orange/pink/red/white tulip, oxeye daisy, poppy). - @C0bra5
- Removed: Dead biome preference from Tearstalks
- Fixed: unobtainable liked biome combinations on early crops
- #185 Updated steeleaf skip recipe in CropRecipes with reduced resource costs and changed fluid to hydrofluoric acid. - @C0bra5
- #176 Adds a steeleaf BlockUnderRequirement, registered from the GT material and the TF Steeleaf block (which lacks the ore dictionary entry), and applies it to CropSteeleafranks. CropRecipes gains about 80 lines of recipe changes, including a rewrite of the pyrolusium leaf tantalite duplication recipe. GT5-Unofficial, GTNHLib, NEI and other dependencies are bumped. - @C0bra5
- Added: Steeleaf block under requirement for Steeleafranks, Twilight Forest steeleaf block as a valid steeleaf block
- Migration: Put a steeleaf block under Steeleafranks and rebalance ore duplication and bauxia setups against the new recipes.
- #172 CropRecipes.addOreConversionRecipes changes the MV bauxiaLeaf recipe to output Materials.Aluminium with circuits 1 and 2, and adds an EV bauxiaLeaf bauxite recipe with the new SECONDARY_PURIFIED_RECIPE_CIRCUIT (3) and SECONDARY_IMPURE_DUST_RECIPE_CIRCUIT (4) constants. - @C0bra5
- Added: EV bauxia leaf recipe for bauxite ore using hydrofluoric acid
- Removed: MV bauxia leaf recipe for bauxite ore
- Migration: Rebalance bauxia leaf setups: bauxite ore now needs an EV recipe with hydrofluoric acid, and the MV recipe gives aluminium ore.
- #168 Removed Eye of Ender drop from CropEnderbloom drop table. - @C0bra5
- Removed: Eye of Ender drop
- #132 MTEIndustrialFarm changes the simulated fertilizer storage constants (0 when fertilizer is not provided, 200 when provided), adds MAX_MULTIAMP_EHATCH_AMOUNT = 1 and an NBT_HAS_FERTILIZER flag, and reworks the growth speed calculation. BlockSeedBed adds getFertilizerConsumption, and BlockFertilizerUnit uses it. Tooltip and lang keys are renumbered. - @C0bra5
- Added: Fertilizer consumption line on the seed bed tooltip
- Fixed: Growth speed multiplier applied incorrectly in the Industrial Farm growth simulation, OC GAU upgrade allowing more than 1 multi-amp energy hatch, Multi-amp upgrades usable together with regular hatches when using an OC GAU upgrade
- Migration: Supply Enriched Fertilizer to Industrial Farms with a Fertilization Unit, limit OC GAU builds to 1 multi-amp hatch, and rebalance farms since crop output per cycle changes.
- #123 Modified mutation definition in MutationLoader.java to use Rubyne instead of Titania as a parent crop. - @C0bra5
- #101 CropRecipes.addThiosulfineRecipes is rewritten around a new addResidueConversionRecipe helper that builds the alloy smelter, chem bath and digester recipes from one set of inputs. The old addThiosulfineCembathConversionRecipes and addThiosulfineDigesterRecipes calls are gone. - @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 BlockSeedBed SLOT_MULTIPLIER goes from 2.5 to 1.0 and adds a per-tier harvest round bonus. ICropStickTile.harvest now takes a drop multiplier, used by MTECropManager and MTEIndustrialFarm, and harvested drops are split by max stack size. CropGoldfish drops 60_00, CropSoulSandLily 25_00, and the goldfish fluid extraction recipe outputs 1 Mercury nugget. - @C0bra5
- Added: harvest round bonus on seed bed tooltips
- Removed: 2.5x Industrial Farm capacity buff
- Migration: Reduce the contents of each existing Industrial Farm below the new capacity limits before using it again.
- #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
- #282 Deletes BackhandCompat, the PlayerInteractEvent handler that cancelled the interaction. In dependencies.gradle, Backhand moves from a compile-time dev dependency to a commented-out runtime-only entry (1.8.15). optional_runtime_dep_configs.zip is updated with the Backhand default. This needs Backhand#201 and a modpack PR. - @C0bra5
- Removed: Backhand compatibility handler for crop sticks
- Fixed: watering can not activating when right clicking crop sticks
- Closes GTNH#26680
- #276 ISeedData and SeedData gain getCropSeeds() and getCropSeeds(int), which rebuild the seed item from the crop and stats with a given stack size. TileEntityCropSticks now reads seed data from a size-1 copy when planting and returns getCropSeeds(1) when harvesting. - @C0bra5
- Fixed: crop seed duplication when planting or harvesting
- Closes Dupes-Exploits-GTNH#377
- #274 NEICropsNHCropstickBreedingHandler.CachedBreedingRecipe now adds descriptions of the output crop's world growth requirements to reqLines. It skips sub-soil requirements, which the displayed items already cover, and non-world requirements. - @C0bra5
- Fixed: missing growth requirements in the NEI mutation tab
- #273 MTECropManager harvest() and processSecondaryFunctions() now treat a cached ICropStickTile as invalid if it is not a TileEntity or tile.isInvalid() is true, and flag the cache for rebuild. - @MarloGr
- Fixed: Crop Manager using water, fertilizer and weed-ex on broken crop sticks
- #271 Added IBreedingRequirement.getDescriptionForMutationDump (NotNull) and marked getDescription Nullable. MutationRegistry uses the dump variant, the NEI breeding handler skips null lines, and the lang key cropsnh_crops.migrated is renamed to cropsnh_crops.migrator. - @C0bra5
- Added: mutation dump description for breeding requirements
- Fixed: NPE in the deterministic mutations NEI dump, migrator crop lang key
- #270 MTEIndustrialFarm.checkMachine compares glass tier against hatch.getTierForStructure() instead of hatch.mTier, in both energy hatch checks. - @C0bra5
- Fixed: wrong energy hatch tier on the Industrial Farm for wireless debug hatches
- #269 SubSoilRequirement.isValidSubSoil and canGrow now use checkGTOreDictAssociation and checkGTOreAssociation, which use GTOreAdapter, OreInfo and StoneType, instead of the old per-material block/tile entity check. NEI sub-soil lists are extended with each StoneType. - @C0bra5
- Added: natural ores as sub-soil for material requirements, all GT stone variants in NEI sub-soil lists
- Fixed: natural ores not accepted as sub-soil
- #265 In NEICropsNHCropstickBreedingHandler.CachedBreedingRecipe, the sub-soil list from getSubSoilsForNEI is filtered with removeIf to drop items whose block resolves to Blocks.air. - @Fib4ik
- Removed: unplaceable items in the Crop Breeding NEI tab
- Fixed: Crop Breeding NEI tab showing unplaceable items as sub-soils
- Closes GTNH#26799
- #261 MTEIndustrialFarm overrides onBlockDestroyed to iterate ifStackHandler slots and drop each valid stack via WorldUtils.dropItem, then clear the slot. - @Worive
- Fixed: Industrial Farm controller voiding stored seeds, sub-soil and modules when broken
- Closes GTNH#26767
- #260 CropNetherwart conversion state increaseChance() used Math.max with MAX_CONVERSION_CHANCE; changed to Math.min so the chance is capped. - @C0bra5
- Fixed: gaiawart conversion chance too high
- #254 NBTHelper.saveItemStackMap now writes integers and loadItemStackMap reads the value as a float and casts it to int for old saves. getIntgegerNumber is renamed getIntegerNumber and the number getters use NBTPrimitive instead of a type switch. - @Chitak985
- Fixed: item stack map counts reset to 1 on NBT load
- #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 the cropsnh_growthReq.blockUnder.olivine string in en_US.lang. - @koolkrafter5
- Fixed: olivine growth requirement text
- #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
- #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 CropThiosulfine registered the duplication catalyst as "dustSlufur". It now uses the ore dictionary name "dustSulfur". - @alfarelcynthesis
- Fixed: Thiosulfine duplication catalyst ore dictionary typo
- #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 PyrolusiumLeafVariant appended ".banada" to the icon name in the April 1 case 2 branch. It now appends ".banana". - @C0bra5
- Fixed: misspelled banana icon name for the April 1 Pyrolusium 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
- #10 ICropCard gains onNeighbourChange and onFirstTick. ICropStickTile gains isValidSoilForCrop and getSeedDrop, and onDestroyed is replaced by onInvalidSoilDetected. BlockCropSticks.onNeighborBlockChange now turns a crop with invalid soil into a migrator instead of removing the block, and CropMigrator replants the seed once the soil is valid. BlockSeedBed.getMultiLength sign is fixed. - @C0bra5
- Added: Random Things tilled fertilized dirt and Ztone garden soil as farmland soils, Crops++ item migrations, Planting magical nightshade from the item
- Fixed: Migrated crops destroyed on garden soil or fertilized dirt, Wrong length on the seed bed tooltip, Incorrect inkbloom and necromboom textures, Floating crop sticks not dropping seeds and harvest when popped
- Migration: Put a shadowmetal block under magical nightshade instead of ichorium, and addons implementing ICropCard or ICropStickTile must add the new methods and replace onDestroyed with onInvalidSoilDetected.
- #7 Renamed the texture file under assets/cropsnh/textures/items/materialLeaf to match the case of the name the game looks up. - @C0bra5
- Fixed: oil berry texture name case mismatch
Performance
- #245 Added DO_NOT_CHECK_FOR_COLLISIONS to the RecipeBits of further addMachineCraftingRecipe calls in GTRecipeLoader, including crop managers, seed generators, crop breeders, gene extractors and synthesizers. - @boubou19
- #244 Added DO_NOT_CHECK_FOR_COLLISIONS to the RecipeBits of the plant lens, spade, reinforced spade, empty mug, crop sticks and berry-to-sugar recipes in GTRecipeLoader and CropsPlusPlusRecipes, skipping collision removal lookups that the GT5-Unofficial log showed were useless. - @boubou19
Internal / Refactor
- #275 FertilizerRecipes was refactored (+93/-227): the Forestry soil recipes now use shared constants for ticks and water per soil, and the repeated recipe declarations are consolidated. The visible part of the diff is cut off, so this is inferred from the title and body. - @C0bra5
- #267 Replaced loops and duplicate recipes over Water and Distilled Water with a gregtech SubstituteFluidStack in GTRecipeLoader, CropRecipes, CropsPlusPlusRecipes and FertilizerRecipes. - @danyadev
- Removed: duplicate distilled water recipe variants
- #266 Added CropsNHUtils.isAirBlock (material-based) and replaced null checks and Material.air comparisons in NEI handlers, SoilList, SoilRegistry, SubSoilRequirement and ItemSpadeNH. This corrects the assumption that getBlockFromItem returns null when nothing is found, since it returns Blocks.air. - @C0bra5
- Fixed: null checks on getBlockFromItem that never triggered
- #247 Deleted the unused sapplingDrop copy and its stackSize assignment in CropBonsai. The addDrop call still uses the original sapling stack. - @C0bra5
- Removed: unused bonsai sapling drop code
- #238 Replaced CropsNHUtils.getAnalyzedSeedData(stack) call sites with getSeedData(stack, false, true) across NEI handlers, recipe backends, ItemGenericSeed, MTEIndustrialFarm and the gene extractor and seed generator. CropsNHUtils has 9 added and 22 removed lines. - @C0bra5
- Fixed: alt seeds not resolving in seed data lookup in future
- #212 Renamed Hungarian-notation fields and parameters across the project. Renamed CropsNHBlockUnderTypes to CropsNHSubSoilTypes and BlockUnderRequirementLoader to SubSoilRequirementLoader, which changes public API class names. Shortened the NEI light level message. Moved the MCLib dependency declaration in dependencies.gradle. - @C0bra5
- Fixed: NEI light level message overflow
- #208 Removed unused methods (getClientPlayer, getClientWorld, getWorldByDimensionId, getEntityById, hideItemInNEI, addItemInNEI) from IProxy, CommonProxy, ClientProxy 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 Moved FindIt plugin registration from preInit to a new FindItCompatHandler.postInit guarded by ModUtils.FindIt. Renamed CropsNHHandler to CropsNHFIndItFilterProvider and switched the FindIt dependency to devOnlyNonPublishable. - @C0bra5
Documentation
- #272 Fixed the javadoc for the fertilizerStorage parameter of TileEntityCropSticks.getNutrientsPerCycle. - @C0bra5
- Fixed: javadoc typo
- #253 Adds optional_runtime_dep_configs.zip and a README paragraph telling devs to uncomment the optional deps in dependencies.gradle and unzip into run/client/config and run/server/config. - @C0bra5
- Added: optional runtime dependency configs zip
- #205 README.md text edits only: CropsNH renamed to Crops NH in prose, plus wording fixes. - @C0bra5
- Fixed: readme grammar
- #201 Rewrote README.md with a logo, feature summary and FAQ, added docs/logo.png, and updated the license ownership line to the GTNH organization. - @C0bra5
- Added: readme FAQ, readme logo
Chores
- #223 Reordered the arguments of beginVariableStructureBlock in MTEIndustrialFarm to match the reverted GT5-Unofficial signature, and bumped dependencies. - @AnsonYeung
- #217 Bumped dependencies in dependencies.gradle. CropRecipes and FertilizerRecipes now import quantumForceTransformerRecipes and chemicalPlantRecipes from gregtech.api.recipe.RecipeMaps instead of GTPPRecipeMaps. - @Yoshy2002
- #158 Corrected 39 language key entries in en_US.lang file. - @koolkrafter5
- Fixed: text typos and capitalization
- #129 Updated the url and updateUrl fields in mcmod.info to https://github.com/GTNewHorizons/CropsNH. - @DatLycan
- #98 Bumped the GT5-Unofficial dev dependency from 5.09.52.398 to 5.09.52.419 in dependencies.gradle. - @Alexdoru
- #96 Removed the gtPlusPlus Logger import and the Logger.WARNING call from CustomIcon in CropsNHBlockTextures. - @Alexdoru
- Removed: GT++ logger usage
- #78 Added SoilMigrations, which registers a Postea tile entity transformer for cropSticksTE that sets a soil-changed flag on crops in a TO_MIGRATE set. The set is empty, and MigrationHandler calls it outside the enableMigrations config check. - @C0bra5
- Added: soil migration handler for changed crop soils
- #38 Bumped the devOnlyNonPublishable GT5-Unofficial dependency in dependencies.gradle from 5.09.52.348 to 5.09.52.360. - @boubou19
- #5 In dependencies.gradle, swapped CodeChickenLib 1.2.1 for CodeChickenCore 1.4.3 and changed the Thaumcraft coordinates to thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev with transitive = false. - @koolkrafter5
- #3 Build infrastructure update: new build.gradle, settings.gradle, wrapper, dependencies.gradle and gradle.properties, and removal of bundled src/api sources such as the BloodMagic and ComputerCraft APIs. The diff was too large to see, so this is inferred from the file list. - @bombcar
- Removed: bundled API sources
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@C0bra5 (154), @UltraProdigy (63), @Dream-Master (34), @LazyFlesh (28), @koolkrafter5 (22), @boubou19 (14), @danyadev (7), @Ethryan (5), @Alexdoru (4), @Eldrinn-Elantey (4), @Pxx500 (4), @Yoshy2002 (4), @Algent (3), @Auynonymous (3), @DatLycan (3), @june-dev-username (3), @Luca-Guettinger (3), @Lyfts (3), @DylanTaylor1 (2), @Dynamiczbee (2), @evgengoldwar (2), @mitchej123 (2), @OTPANNIEXD (2), @Ranzuu (2), @tiffit (2), @VortexSo4 (2), @alfarelcynthesis (1), @Angry3vilbot (1), @AnsonYeung (1), @bombcar (1), @Calvin304 (1), @Chitak985 (1), @Fib4ik (1), @hinyb (1), @jude123412 (1), @kuba6000 (1), @LunaDziaba (1), @MarloGr (1), @MLGfruitshoot (1), @PLASMAchicken (1), @POPlol333 (1), @Ruling-0 (1), @StellaCaerulea (1), @TheYoingLad (1), @vermz99 (1), @Worive (1)