Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic Nexus #1633

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Dynamic Nexus #1633

wants to merge 2 commits into from

Conversation

Hoikas
Copy link
Member

@Hoikas Hoikas commented Nov 16, 2024

Requires #1632.
Requires corresponding assets PR H-uru/moul-assets#268.

This will allow us to more easily ingest fan Ages in the game without requiring their information to be mainlined.

@Hoikas
Copy link
Member Author

Hoikas commented Nov 19, 2024

I'm marking this as a draft because this change to the Nexus Python will "break" linking panels without the corresponding assets PR. That PR is currently a draft because some work is pending on it.

@Hoikas Hoikas marked this pull request as draft November 19, 2024 00:48
@Hazado
Copy link
Contributor

Hazado commented Nov 19, 2024

Would it be possible to load pngs from the file directory for the linking panels? It would solve issues with having to have all the linking panels be in the global prps or nexus...

@Hoikas
Copy link
Member Author

Hoikas commented Nov 19, 2024

It's possible, but then we run into the problem of not knowing which files to distribute. Currently, UruManifest (and other tools) crawl the PRPs to determine which files to include in the manifests. If we allow fetching arbitrary images from the data directory as part of the expected game functionality, we lose the ability to know everything by crawling the PRPs. So that's probably not going to be a workable solution. It might be better for us to have a script that can package the BkBookImages PRP from the images in moul-assets.

@dpogue
Copy link
Member

dpogue commented Nov 19, 2024

Would it be possible to load pngs from the file directory for the linking panels? It would solve issues with having to have all the linking panels be in the global prps or nexus...

This might be something useful to have for Internal clients for easy testing of linking panels during development.

However, in addition to the distribution concerns Hoikas noted, the ability to load arbitrary images from disk poses a security risk, particularly given recent history of image loader libraries being targeted for buffer overflows and remote code execution.

@Hazado
Copy link
Contributor

Hazado commented Nov 19, 2024

ability to load arbitrary images from disk

This ability already exists in the code, its used to load the custom avatar images...

https://github.com/H-uru/Plasma/blob/master/Scripts/Python/xDialogStartUp.py#L590

@Hoikas
Copy link
Member Author

Hoikas commented Nov 19, 2024

We are aware of that, yes. A long-standing goal of ours has been to remove those in favor of a better preview mechanism. Hopefully this will appear, in time.

@dpogue dpogue closed this Nov 19, 2024
@dpogue dpogue reopened this Nov 19, 2024
@dpogue
Copy link
Member

dpogue commented Nov 19, 2024

(Sorry, tried to cancel a comment I was typing and hit the wrong button 🤦🏼‍♂️)

This is useful for setting textures that are in global PRPs.
This removes the Nexus's reliance on linking panel objects in the
PRP/max file for each Age. Instead, we now replace the texture on the
single linking book in game with the correct one. The correct linking
panel is searched for by name in the PRPs, so it is dependent on either
the Nexus's textures PRP or the GUI PRPs to have the appropriate linking
panels.
@Hoikas Hoikas force-pushed the dynamic_nexus branch 2 times, most recently from 111401a to 4e3f3b2 Compare December 16, 2024 00:51
@Hoikas Hoikas marked this pull request as ready for review December 16, 2024 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants