larsiusprime / polymod

Atomic modding framework for Haxe
MIT License
159 stars 60 forks source link

[Question] Polymod in android #126

Closed MAJigsaw77 closed 2 years ago

MAJigsaw77 commented 2 years ago

If I'm using the external storage directory (storage/emulated/0/game/) it can work? And yes android is a sys platform

EliteMasterEric commented 2 years ago

Polymod will work as long as it can access the mods via the provided PolymodFileSystem.

The default PolymodFileSystem is SysFileSystem which uses Haxe's built-in sys.FileSystem class to read and detect files. If using sys.FileSystem to read files works fine on Android then all you need to do is provide the correct modRoot when calling Polymod.init and it should be able to find whatever mods you installed and access the assets.

If that does not work, a new PolymodFileSystem class will be needed; thankfully I made this easy to do. Polymod.init can optionally accept a customFilesystem, and as long as the object you provide implements polymod.fs.PolymodFileSystem.IFileSystem, Polymod will accept it.*

I haven't investigated this properly but if there is some issue preventing the use of Polymod on Android, that is something I want to fix in the future, as atomic modding support for Android games is a powerful use case. If you end up experimenting with this on your own, please let me know how it goes.

*Side note/further clarification on this, as long as Polymod can call all the functions of IFileSystem and get the desired result back, you don't necessarily need to be fetching the mod data from a literal filesystem. It could be accessing files from a cache in memory, or from a web server, or even generating them on the fly if you had a reason to be doing that.

MAJigsaw77 commented 2 years ago

👌

MAJigsaw77 commented 2 years ago

@MasterEric Ok, polymod is working without a ploblem but you need to specify in the readme to the people what they have to do to make it to work on android