VisualProspecting
30 merged pull requests.
New Features
- #104 Adds
OreVeinMapMarkerandUndergroundFluidImageOverlayclasses for JM6 support. Updates layer managers to handle JM6 rendering separately. Adds JM6-specific configuration for minimap labels. Improves zoom and scaling handling in render steps. Updates dependencies and adds new repository for JM6. - @Algent- Added: JourneyMap 6 native ore marker support, JourneyMap 6 underground fluid overlay, JM6 configuration option for minimap labels, Improved zoom and label/icon scaling
- #94 Extended
VeinTypeandVeinTypeCachingto support multiple search mode strategies. UpdatedOreVeinLayerManagerto apply search filtering to displayed veins. - @Algent- Added: NEI-style search modes for ore veins, atomic composition prefix search
- Closes GTNH#25434
- #88 Implemented
/vp_admin team upload <player>command (OP-only) that triggers RequestTeamUploadMessage and SnapshotUploadTask to broadcast client cache contents to the player's team. - @Algent- Added: /vp_admin team upload command, RequestTeamUploadMessage, TeamUploadCommand
- #85 Introduced TeamProspectionData storage system using gzipped base64 encoding, TeamCatchupHandler for offline player synchronization, and network messages (TeamCatchupNotification, VeinDepletionMessage) to broadcast findings across team members in real-time. - @Algent
- Added: team prospecting data sharing, TeamCatchupHandler, TeamCatchupNotification, VeinDepletionMessage, team data storage in gtnhteams files
- Removed: Shared Prospecting (broken system)
- #82 Implemented WorldDeletionEvent handler in HooksEventBus that extracts worldId from visualprospecting.dat and removes corresponding player and server cache directories when a world is deleted. - @Algent
- Added: VPSaveCleanupUtils, HooksEventBus WorldDeletionEvent handler
- #75 Added server-side event handler in ServerCache to intercept OreInteractEvents dispatched on block harvest (in addition to existing client-side right-click prospecting). Moved time throttle logic from packet handler to request class. - @RecursivePineapple
- Added: server-side ore prospecting on mine
- Fixed: Journeymap veins not detected when mining
- Closes GTNH#22016
New Content
- #105 Updates the
undergroundfluid.pngtexture asset with an improved icon design. - @Algent
Changes
- #103 Relaxes cache fallback matching criteria in
DetailedChunkAnalysisandVeinType. Changes matching to accept ore mixes if one ore is missing (instead of requiring all ores to be present) when no cache data exists. Updates debug command help inVPAdminDebugCommand. - @Algent- Fixed: Ore vein detection failures
- Closes GTNH#26059
- #96 Modified
UndergroundFluidRenderStepto adjust fluid amount display calculations for better readability. - @Algent- Fixed: unclear fluid amount indicators on overlay
- #95 Updated dependency version for GT5-Unofficial and adapted
Utils.javato align with GT5u API changes. - @Kogepan229 - #92 Improved EndlessIds support, optimized scanning with row-by-row region file processing, added vein source trust hierarchy for overwrite logic, fixed dimension name resolution to enable dimension-specific filtering, changed scan strategy from fast/slow to uniform row-based approach, and updated VeinSource to use explicit names instead of ordinals. - @Algent
- Added: trust hierarchy for VeinSource, improved EndlessIds support, row-by-row scan strategy, dimension name filtering
- Fixed: vein matching retry logic, empty dimension names breaking matches, slow dimension scanning
- #90 Added UndergroundFluidLocation to cache fluid color and production values, updated UndergroundFluidRenderStep to use cached values and added color source documentation, and improved visual bug fixes. - @Algent
- Added: UndergroundFluidLocation color/production caching
- Fixed: incorrect fluid colors, minor visual bugs in fluid overlay
- #79 Updated GT5-Unofficial dependency version and VeinType line break formatting to match GT5-Unofficial PR #5261. - @iouter
- #76 Updated dependencies.gradle GT5-Unofficial version and fixed OreVeinLocation API call to match GT5-Unofficial PR #5121 oreprefix refactoring. - @chochem
- Fixed: compilation failure due to GT API change
Bug Fixes
- #101 Reverts culling behavior that was applied to journeymap-legacy in PR #89 to exclude Xaero's map. Modifies
OreVeinRenderStepandUndergroundFluidRenderStepto conditionally apply culling only when appropriate. - @Algent- Fixed: Xaero's World Map ore icon visibility regression
- Closes GTNH#25941
- #99 Replaced custom logical-side determination with GT5's
GTWorldgenerator.getOregenPattern(). EnhancedDimensionCacheandWorldCacheto normalize cache coordinates during load and resolve collisions based on VeinSource trust level. Orphaned RESCAN entries are discarded and reflagged for rescanning. Team cache is also normalized. - @Algent- Added: cache auto-repair on load, coordinate normalization, collision resolution by trust level
- Fixed: incorrect ore generation pattern usage, cache corruption from pattern misalignment
- #97 Added null/fake player checks in
TeamProspectionDispatcherto prevent spurious logging. - @Algent- Fixed: log spam from null/fake players
- #93 Added DimensionStoneBackground and DimensionNameResolver to extract ore vein colors from GregTech registry and match dimension backgrounds, updated OreVeinRenderStep to use resolved colors. - @Algent
- Added: DimensionStoneBackground, DimensionNameResolver
- Fixed: Journeymap displaying ores in wrong color (white)
- Closes GTNH#25315
- #84 Extended PartiallyLoadedChunk to extract block IDs and metadata from EndlessIds registry in addition to NotEnoughIds path, allowing cache rebuild to detect ores in EndlessIds-only worlds. - @assusdan
- Added: EndlessIds block ID extraction in PartiallyLoadedChunk
- Fixed: Cache rebuild finding no ores in EndlessIds worlds
- #83 Modified ServerCache to register veins directly on VeinGenerateEvent from GTWorldgen instead of relying on manual detection, improving accuracy for newly generated chunks. - @Algent
- Fixed: Ore veins sometimes not registering with VisualProspecting
- Closes GTNH#24692
- #80 Added regex pattern validation in Utils search method with try-catch to handle PatternSyntaxException and fallback to literal string matching. - @Algent
- Fixed: Client crash on invalid regex in prospecting search, crash when typing backslash in search
- Closes GTNH#21193, GTNH#24280
- #78 Ensured ServerCache and ClientCache are instantiated before world creation by moving instance access to early FML lifecycle hooks, preventing race condition where VeinGenerateEvent fires before cache registration. Fixed cache rebuild logic to properly re-identify veins. - @C0bra5
- Fixed: Ores unscannable in spawn chunks, cache rebuild missing veins after deletion
- Migration: The spawn-chunk problem existed only in the daily builds between 2.8.4 and this release. Rebuilding the Visual Prospecting server cache now identifies veins correctly.
- #74 Added synchronization to TaskManager.tasks collection access and guarded iteration during Prospector's Log population to prevent CME in single-player scenarios. - @wlhlm
- Fixed: ConcurrentModificationException when filling Prospector's Log in singleplayer
- #73 Updated packet splitting logic in OreVeinPosition and TransferCache to account for variable vein name string lengths when determining packet boundaries. - @wlhlm
- Fixed: IllegalArgumentException when creating Prospector's Log, packet size overflow
- Closes GTNH#18377
Performance
- #89 Added culling to OreVeinLocation and multi-tier culling to UndergroundFluidRenderStep, adjusted default zoom level thresholds for labels, and introduced intermediate zoom level for fluid gradient visualization without labels. - @Algent
- Added: view culling for ore veins, extra culling for fluid cells, intermediate zoom gradient layer for fluids
- Fixed: severe FPS drop when rendering vein/fluid labels
- #72 Refactored DimensionCache ore and fluid serialization logic to reduce unnecessary NBT operations and iteration overhead during world loading. - @alppp
- Fixed: Server startup taking excessive time with large VP cache files
Internal / Refactor
- #91 Migrated legacy command system to Brigadier with CommandHelpers utility, created VPCommand and VPAdminCommand root nodes with subcommands (VPAdminCacheCommand, VPAdminTeamCommand, VPTeamCommand), and removed old command classes (RedoServerCacheCommand, RedoServerSpawnCacheCommand). - @Algent
- Added: Brigadier command framework, VPCommand, VPAdminCommand, CommandHelpers, admin subcommands
- Removed: legacy command system, RedoServerCacheCommand, RedoServerSpawnCacheCommand
- Migration: Commands have been renamed and reorganized under /vp and /vp_admin; update any command aliases or automation scripts that reference old command names.
- #87 Introduced cache format version 3 with string palette for vein types (reducing duplication), VeinSource enum (stored as byte) to track event origin, and LegacyDimensionCacheLoader for backward compatibility. Updated OreVeinPosition serialization. - @Algent
- Added: cache format version 3, LegacyDimensionCacheLoader, VeinSource enum, vein name palette
- Migration: Visual Prospecting cache files will be upgraded to a new format on first load; old DIM*.dat files will be converted automatically.
- #77 Removed MTEScannerMixin and replaced with GTScannerHandler event subscriber to maintain VP scanner integration after GT5-Unofficial PR #5677 refactored the scanner tile entity. - @C0bra5
- Added: GTScannerHandler event handler
- Removed: MTEScannerMixin
- #65 Removes mixins targeting GT5 ore system and replaces with Forge events. Removes old chunk TE loading in favor of partial chunk loading via
PartiallyLoadedChunk. RemovesIOreMaterialProviderabstraction and replaces with directIOreMaterialsystem. UpdatesChunkAnalysisto include second-most common ore in single-vein filter. Removes material provider classes. - @RecursivePineapple- Added: PartiallyLoadedChunk system for efficient chunk analysis, Partial chunk loading mechanism
- Removed: BartworksOreMaterialProvider, GregTechOreMaterialProvider, IOreMaterialProvider abstraction, VeinTypeCaching, Old chunk TE loading code, Ore meta references, GT-targeting mixins
- Fixed: Everglades and Ross biome prospecting, New world generation ore detection
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Algent (21), @tiffit (7), @Dream-Master (4), @Kogepan229 (3), @RecursivePineapple (3), @UltraProdigy (3), @boubou19 (2), @C0bra5 (2), @chochem (2), @Lyfts (2), @sisyphussy (2), @wlhlm (2), @Worive (2), @Alexdoru (1), @alppp (1), @AnsonYeung (1), @assusdan (1), @BlueWeabo (1), @Caedis (1), @chrombread (1), @cubefury (1), @FourIsTheNumber (1), @glektarssza (1), @iouter (1), @Justxs (1), @Yoshy2002 (1)