Better cables#441
Merged
Merged
Conversation
- Introduced `WireSnipsDescriptor` class for handling wire cutting tools with configurable cut lengths. - Added `WireSnipsContainer` and corresponding GUI for interactive wire cutting. - Implemented utility cable length management, including placement and cutting length constraints. - Enhanced electrical pole and grid connection logic to support segmented utility cables. - Added `WireScrapDescriptor` for generating wire scrap from utility cables.
- Adjusted cable width/height calculations ensuring consistent appearance across temperature ranges. - Added support for dynamic thermal behaviors, including temperature tracking and heat-based smoke rendering. - Introduced methods for drawing hot metal glows, flat and single conductors, and junction nodes based on connections. - Enhanced cable material and texture management during rendering processes.
- Introduced `WireProcessingMachines.kt` with three machine types: Wire Roller, Wire Insulator, and Wire Combiner. - Implemented inventory, rendering, and network serialization for each machine type. - Added configurable options and progress tracking for wire processing operations. - Integrated material handling for wire rolling, insulation, and combination processes.
- Introduced `/eln zonedestroy` command for removing all Eln nodes and blocks within a defined zone, with no item drops. - Added Falstad importing functionality, including parsing, validation, and layout planning for electrical designs. - Implemented `FalstadImporter` for processing clipboard netlists into in-game circuits. - Enhanced `DelayedTaskManager` to use a thread-safe queue for task management. - Refactored node logging to improve readability and debugging.
- Introduced support for parsing SPDT switches as two complementary maintained switches with forced switch states. - Added rotated layout planning functionality, allowing clockwise rotation of circuit layouts. - Enhanced area placement logic to account for rotated layouts and provide better feedback. - Refactored related utility functions for area measurement and wire placement.
…rter - Introduced parsing and placement for Falstad NAND gates, signal inputs, and signal outputs, with proper substitutions and validation. - Added support for rotated layouts and improved wire/node mapping for logic components. - Enhanced connectivity calculations and placement logic for Falstad components. - Updated `FalstadImporter` and relevant descriptors to handle signal cables dynamically. - Extended unit tests to cover new components and logic state parsing.
- Introduced parsing and placement for AND, OR, NOR, XOR, and NOT gates in the Falstad importer. - Refactored gate placement logic to handle two-input gates generically and added specialized support for NOT gates. - Updated `FalstadNetlist`, `FalstadImporter`, and descriptors to integrate new gate types and substitutions. - Enhanced tests with scenarios for half-adder, full-adder, and digital comparator logic symbols.
Collaborator
Author
|
Other items on the to-do list will be in a separate PR |
- reworked motor behavior into an integrated drive model with soft-start, current limiting, voltage-scaled speed targets, low-speed startup limiting, stall handling, and low-pass filtering on both sensed supply voltage and commanded output voltage - reworked generator behavior into an integrated regulator model with voltage ramping, current limiting, droop, and low-pass filtering on output voltage to reduce generator-motor feedback loops - fixed motor idle and undervoltage behavior so the machine no longer behaves like a near-short or falsely dumps shaft energy when supply voltage is low - fixed generator shaft and thermal power accounting so drag and conversion losses are handled as power terms instead of mixing in step-sized energy incorrectly - moved generator heating to the actual internal machine resistor instead of heating from a terminal load using cable-style resistance - increased modeled generator cooling to ambient without raising the acceptable temperature limit - improved breaker audio by raising the trip sound volume and keeping open/close behavior unchanged - fixed breaker GUI interaction so the toggle button now activates on mouse release instead of mouse-down, preventing duplicate breaker sounds and actions when exiting the GUI quickly - improved middle-click pick-block behavior for six-node items so wires prefer the nearest matching hotbar stack instead of producing a fresh stack, which is especially important for utility cables with per-stack NBT - added targeted logging for six-node deletion paths to distinguish breakBlock, neighbor-driven deletion, and self-destroy cases during load and rejoin debugging - traced the disappearing utility cable issue to the host SixNodeBlock being broken during load, not to cable melt or destruction - hardened NodeBlockEntity load-time node lookup so transient null and type-mismatch states during the first update window no longer immediately queue delayed block removal - added extra diagnostics around node lookup preservation during load to continue narrowing the remaining six-node rejoin instability - kept all changes save-compatible by avoiding item and block id/subId remaps
…icons - Deleted `InsulationCompoundDescriptor` and its references. - Replaced outdated default icons for various cables, fuses, and machines. - Adjusted electrical cable resistance and voltage constant calculations. - Added proper overlays for `ElectricalBreakerDescriptor` and enhanced its UI rendering. - Upgraded matrix inversion logic in `SubSystem` to use `commons-numbers-core`.
- Introduced `docs/mna-double-double-benchmarks.md` to summarize benchmarking results for the `DD` solver path using `commons-numbers-core`. - Included performance comparisons with previous `double`-based methods and analysis of numerical stability under varying conditions. - Added charts and tables for build times, solve times, scaling behavior, and error trends. - Highlighted limitations of the current `DD` implementation for large, dense matrices and outlined recommendations for future improvements. - Committed related benchmark assets, such as performance graphs and error visualizations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #428
Implementation todos:
Etentand similar cable render modes.Signal updates: