| blank.mmlv | ||
| definitions.py | ||
| LICENSE | ||
| mmlv_library.py | ||
| README.md | ||
| sample.mmlv | ||
| testing_grounds.py | ||
Py-MMLV, a MMLV Format Python Library by Timothy GFO
The Goal
The goal of this project is to create a single, easy to use, and flexible Python Library for the MMLV format used in Mega Man Maker. This project takes advantage of the common ConfigParser Module, and uses it to read and write the files, for use in Py-MMLV.
This includes:
- Files generated with Py-MMLV will generally be smaller in file size, this could in theory improve load times. The reason is that Mega Man Maker stores integers as "1.000", while Py-MMLV just does "1". Py-MMLV will also be smart enough to automatically remove redundant entries in the file. (in the future)
- Every function that spawns something in the level should have intuitive naming and arguments.
- A stable base to improve upon: Every function will lookup in the definitions.py file.
- Be able to generate from scratch a valid mmlv file, as well as modifying a file (valid or not).
- It should also be able to FIX corrupted Mega Man Maker Levels, at least attempt to. How? Maybe, checking for duplicate keys (hard), checking for incorrect values, checking for invalid coordinates...
Installation
Dependencies: configparser os requests the included "definitions.py" After you install the required dependencies, you just download the mmlv_library.py file and import it on your program. It's still work in progress, not complete at all...
Usage
When in beta, you should be able to import as a module in another python program and call functions like "set_tile(mm1iceman, version_of_tile, x, y)". You need to specify the filename variable before doing anything. Maybe there is a better way to specify filenames...
Support
If you find a bug, remember to create an issue about it. But don't do it right now, there is more bug than code.
Roadmap
save changes to temporary file, then rename original to temp name, then rename the changed file to original name add a get function for every set add automatic room activation to set_tile add ability to all functions to accept raw x, y values (the times 16 numbers in mmlv) and raw codes (like "a" instead of "active") complete set_tile, set_spike, set_ladder add set_enemy and set_boss have integrated functions for changing/replacing the blocks that have some code in them with something else. add verifier for what a block contains, what type of thing (the block x, y contains an object, or the block 1, 5 contains an enemy object)
Contributing
I would like to be the main developer of this project until it has some missing core functions since I treat this as a learning project. However, feel free to notify me of any issues. Also, pull requests are welcome.
License
GNU General Public License v3.0