
Список изменений
added some new nodes to help orginaze the canvas along with a new skulk trigger. Also added ability to interact with entities like chest minecrafts, but not players.
[Added]
-
Entity Relay Blocks: Added Item Relay, Fluid Relay, and Energy Relay blocks to allow cables and manager networks to interact with non-player entities (such as boats, carts, and modded entities) in adjacent blocks.
-
Cluster Card Capability Registry: Added extensible API support for custom cluster cards to expose specialized block capabilities.
-
Nested Group Folders: Organize complex network setups by grouping nodes inside folders (Sub-Canvases).
-
Directory Migration: Use the new right-click context option "Move Group" to relocate placed nodes between folders.
-
Interactive Breadcrumbs: Easily navigate between directory levels using the clickable path bar (e.g., Root > Folder > Subfolder).
-
Error and Warning Bubbling: Parent folders will now glow with red outline errors or yellow warning highlights if any of their nested sub-canvas elements require attention.
-
Added
AbstractTargetSettingsOverlayandAbstractFilterableTargetSettingsOverlayclient API classes to consolidate 3D block previews, target selectors, and 12-slot ghost item grids. -
Added
AbstractTransferComponentandAbstractFilterableTransferComponentcommon API classes to unify targeted slot configurations, whitelist states, and side configurations across all item, fluid, and energy transfer components. -
Promoted base classes
AbstractModalPopupandNodeSettingsOverlayto the public client-only API package (dta.sfmflow.api.client.widget), allowing add-on developers to design and register custom overlay panels and popups cleanly. -
Added
AbstractConditionalComponentandAbstractFilterableConditionalComponentpublic API classes to unify and consolidate block targeting, directional face, whitelist, and slot-exclusion configurations for all conditional logic nodes. -
Added the
IRedstoneSidedConfigurablepublic API interface, permitting any custom redstone logic or trigger component to use standard sided threshold configuration popups. -
Added the Snapshot Profile system, which analyzes your active flowchart and restricts off-thread inventory snapshotting strictly to the blocks and capabilities being used.
-
Added a public Event API posted on the NeoForge event bus, allowing other mods to inject virtual inventories during scans, modify snapshotted logic off-thread, register custom block listeners, and cancellably block transfer tasks (e.g., for region claim protection).
-
Added a dedicated sided configuration modal popup (
SculkTriggerSideConfigModalPopup) for the Sculk Trigger, presenting an interactive, alphabetically sorted checklist of all vanilla acoustic vibration events. -
Added side-specific acoustic event filters on the Sculk Trigger, enabling distinct vibration configurations to be mapped to individual block faces.
-
Added a trigger cooldown slider to the Sculk Trigger settings panel to limit vibration detection rates and preserve server tick budgets.
-
Added the Splitter logic node, permitting execution paths to be routed to all output pins simultaneously, in a repeating Round-Robin sequence, or randomly to a single branch.
-
Added the Collector logic node, allowing up to 5 execution lines to be cleanly merged back into a single flowchart path.
-
Added the Sculk Trigger and Sculk Trigger Cable block, allowing flowchart loops to trigger in response to in-world acoustic events (e.g., footsteps, block placements, or projectile impacts).
-
Added face-specific acoustic shielding (muting individual faces) and keyword filters (e.g. "step", "break") to customize the Sculk Trigger listening profile.
-
Added a loop detection shield to both the client and server networking pipelines to block circular connection wiring that could lock up the path planner.
-
Added a modular slot layout registration framework (
ISlotLayoutSubProvider), introducing custom layout overlays for Mekanism Basic Fluid Tanks.
[Changed]
-
Cable Cluster UI: Direction configuration buttons now automatically hide or show based on whether the installed card is directional or omni-directional.
-
Network Scanning: Improved network pathfinder scanning to dynamically detect custom card and relay capabilities across all registered networks.
-
Group Terminals Limit: Enforced a strict maximum limit of 5 Inputs and 5 Outputs per group folder to ensure workspace clarity.
-
Node Spawning: Newly created nodes are now spawned directly into your currently viewed directory level instead of always appearing at Root.
-
Refactored Item, Fluid, and Energy transfer settings overlays to inherit from the consolidated target settings overlay classes, eliminating redundant coordinate setups and saving routines.
-
Refactored Item, Fluid, and Energy transfer nodes to extend the new base hierarchies, successfully eliminating hundreds of lines of duplicate boilerplate variables and setters.
-
Simplified NBT saving and loading on all transfer components to inherit properties directly from parent class handlers.
-
Re-engineered the UI command counter inside the Manager block screen to query the actual size of the flowchart map dynamically, preventing numerical sync anomalies on the client.
-
Secured face-toggle interactions inside conditional nodes to guard against null directional inputs.
-
Refactored the Energy, Fluid, and Item Conditional components to inherit from the new consolidated base classes, drastically reducing duplicate code.
-
Simplified settings saving and loading routines on conditional nodes by delegating common property serialization to parent class handlers.
-
Hardened NBT loading routines for redstone trigger comparison operators, conditional operators, and splitter execution modes to support case-insensitive evaluations of saved values.
-
Consolidated the separate trigger and conditional redstone face popup menus into a single, highly reusable polymorphic config menu (
RedstoneSideConfigModalPopup). -
Re-engineered settings configuration panels by migrating block coordination searches, capability presence checks, and packet serialization routines to standardized base helpers in
NodeSettingsOverlay. -
Hardened NBT save/load structures on all logical nodes, triggers, and splitters to use case-insensitive, serialized name checks, safeguarding against data-driven config file corruption.
-
Re-engineered the
ManagerBlockEntityto cache compiled flowchart structures and snapshot profiles, completely avoiding redundant, CPU-heavy NBT serialization on every trigger check when no layout edits are made. -
Optimized the
PhysicalNetworkMapcoordinate tracker to map packed long coordinates directly to primitive integer IDs, eliminating object allocations during position lookups. -
Re-engineered the
PhysicalNetworkpathfinding scanner to use double-buffered primitive layer swaps and mutable block positions, making network scans nearly garbage-free. -
Simplified variable card definitions by migrating from MapCodecs to standard Codecs.
-
Re-engineered environmental vibration detection to calculate the exact direction the sound hit the block, filtering acoustic checks strictly against that face's configuration.
-
Consolidated trigger registration and cleanup sweeps under a unified listener rebuilding method inside
ManagerBlockEntitythat fires the new event bus hook automatically. -
Re-engineered settings saving to dynamically prune obsolete connection wires if a node's input or output pin count contracts (e.g., resizing a Splitter/Collector).
[Fixed]
-
Capability Routing: Resolved capability binding mismatches for cluster cards and adjacent entity handlers during background flowchart planning sweeps.
-
Orphaned Node Sweeper: Fixed a potential memory and data leak by automatically sweeping and clearing orphaned child nodes if their parent folder was deleted.
-
Empty Port Safety: Resolved a visual glitch where empty nodes or groups with zero configured ports would cause UI pin rendering crashes.
-
Fixed potential coordinate and variable desyncs when loading complex layouts by standardizing inherited NBT serialization patterns.
-
Fixed potential configuration loading bugs on older layout files by ensuring that saved enum string properties parse correctly regardless of capitalization.
-
Fixed potential loading bugs on older layout configurations by implementing strict, case-insensitive string parsing fallback maps for all component operator enums.
-
Fixed major server garbage collection (GC) lag spikes and tick-rate drops during larger network scans or frequent trigger checks.
-
Fixed visual transparency and model occlusion bugs on the Sculk Trigger Cable block.
-
Fixed a potential lag bottleneck during environmental vibrations by registering active sculk cables in a flat, fast-lookup server event cache.
-
Fixed splitter chain recursion starvation by capping consecutive splitters to a customizable maximum threshold.
[Removed]
- Removed the deprecated
RedstoneConditionalSideConfigModalPopupclass, replacing its functionality with the consolidated polymorphic modal popup.
