parkerokonek / paradoxpatcher Goto Github PK
View Code? Open in Web Editor NEWParker's Paradox Patcher
License: MIT License
Parker's Paradox Patcher
License: MIT License
Diff Match Patch will reliably patch conflicting file changes without issue. This causes some information to be lost and for malformed files.
For example, patching Bob to Bib and Bob to Beb results in Bob being Beb, not a failure to patch.
Allow mods to contain diffs or patches of vanilla files instead of the literal file text.
Currently function parameters are a bit of a mess and could use standardization. At minimum all public facing options should only really call the current configuration option. The Arguments for a per run should either be solidified as the main application options (and include the configuration in them) or be integrated with the current configuration with a builder or similar.
Tests need to be updated to reflect newly added functionality and to cover all of main library files.
For the GUI, there should be a mod organizer style screen where users can enable which mods they wish to use. As the purpose of the program is to resolve conflicts, not do load order, no load order will be available.
To-do functionality:
For ease of use, the program should have a UI.
There does exist an implementation/wrapper for Diff Match Patch for Rust, here.
Need to try rewriting with this crate to reduce the number of explicitly installed requirements for users, and decreasing over all code spaghetti factor.
Right now the main library is a lot of spaghetti with only small bits of comment in between.
Rayon is one library for data parallelism that could be useful for speeding up the merging and conflict detection on mods. Not sure that this would have any improvement for indexing or generating the initial mod list, that is mostly file IO.
Allow for stand-alone files in mod structure or in-line commented out code in otherwise typical Paradox mod files that allow for:
Currently the tool is built around Paradox's old launcher, this is fine for games like CK2 or Vic2, but will need to be changed to support games like EU4. This may be possible with a weird config set-up with the current tool, but this should be built-in functionality.
In Ck2, text files for mods are expected to be in Windows-1252 encoding, certain mods or base game files (on Linux or MacOS) may be encoded in UTF-8. In the base game and with unmerged mods this poses no issue, but all mods need to be transliterated into a standard encoding (UTF-8) for doing file comparisons before being exported into the preferred encoding for each game.
Had some issues when merging files from mods in folders (Paradox Forums). Will need to see if there is an issue in the directory walking code, single file read code, or the all path read code.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.