This wiki is archived from 2021-09-05

Planetary Annihilation Community Mods Implementation: Difference between revisions

From Planetary Annihilation: TITANS and Classic PA Wiki
Jump to navigation Jump to search
(Created page with "Category:Modding = 50px Planetary Annihilation Titans & Classic Community Mods Manager Implementation = Community Mods is loaded remotely during...")
 
No edit summary
Line 1: Line 1:
[[Category:Modding]]
[[Category:Modding]]
= [[File:Titans-icon.png|50px]] Planetary Annihilation Titans & Classic Community Mods Manager Implementation =
= [[File:Titans-icon.png|50px]] Planetary Annihilation Community Mods Implementation =


Community Mods is loaded remotely during startup.
Highlights of the implementation are:


Files are downloaded and cached for offline use or if the community mods server is temporarily offline.
* initial code is loaded remotely during startup in the main scene
* downloaded files are cached for offline use or if the community mods server is temporarily offline
* server mod mounting is deferred until creating a game
* server mods are reset in transit back to start
* all scenes that load server mods return to start via transit
* client mods are only remounted when necessary
* community mods server does all the heavy lifting to process, validate and repackage mods
 
Server mod mounting is deferred until create a game.


== [[File:platinum-rank-icon.png|50px]] Main Scene ==
== [[File:platinum-rank-icon.png|50px]] Main Scene ==
Line 37: Line 45:
** mount client mods
** mount client mods
** release ready
** release ready
== [[File:platinum-rank-icon.png|50px]] Connect to Game Scene ==
The connect to game scene manages starting and joining games.
Community Mods injects into the connect to game scene using hooks in the default code.
Once loaded from the download cache the following is started:
* flag server mods reset required if joining, hosting or replaying a game that can mount server mods ie not Galactic War or ranked
* hook api.net.startGame to mount server mods for non Galactic War or ranked games
* hook navToDestination to wait for server mods to mount
== [[File:platinum-rank-icon.png|50px]] Transit Scene ==
The transit scene display messages when returning to the start and other scenes.
Community Mods injects into the transit scene using hooks in the default code.
Once loaded from the download cache the following is started:
* If returning to start:
** start downloading latest community mods files
* and if server mods need reset:
** reset server mods
** update active zip mods
** remount client mods
** navigate to start
== [[File:platinum-rank-icon.png|50px]] Galactic War Play Scene and Referee ==
The play scene and referee maange memory mounting of the unit specs for various loadouts and technology discovered.
Community Mods injects into the Galactic War play scene and referee using hooks in the default code.
Once loaded from the download cache the following are implemented:
* hook api.file.unmountAllMemoryFiles to remount client mods

Revision as of 14:46, 29 March 2016

File:Titans-icon.png Planetary Annihilation Community Mods Implementation

Highlights of the implementation are:

  • initial code is loaded remotely during startup in the main scene
  • downloaded files are cached for offline use or if the community mods server is temporarily offline
  • server mod mounting is deferred until creating a game
  • server mods are reset in transit back to start
  • all scenes that load server mods return to start via transit
  • client mods are only remounted when necessary
  • community mods server does all the heavy lifting to process, validate and repackage mods

Server mod mounting is deferred until create a game.

File:Platinum-rank-icon.png Main Scene

The main scene is the parent of the game and uberbar scenes.

Community Mods injects into the main scene using hooks in the default code.

Once loaded remotely or from the download cache the following is started:

  • delay loading of game and uberbar scenes by clearing panel src
  • start downloading latest community mods files
  • scan for file system mods
  • merge into installed mods
  • load available mods from community mods server (failing back to local storage if unavailable)
  • update active zip mods
  • mount client mods
  • load game and uberbar scenes by restoring panel src (or after a 45 second timeout)

File:Platinum-rank-icon.png Start Scene

The start scene is the home page for the game panel in the main scene.

Community Mods injects into the start scene using hooks in the default code.

Once loaded from the download cache the following is started:

  • hook api.file.unmountAllMemoryFiles to prevent unmounting of memory files
  • if return to start and mods not already reset in transit:
    • hold ready
    • reset server mods
    • mount client mods
    • release ready

File:Platinum-rank-icon.png Connect to Game Scene

The connect to game scene manages starting and joining games.

Community Mods injects into the connect to game scene using hooks in the default code.

Once loaded from the download cache the following is started:

  • flag server mods reset required if joining, hosting or replaying a game that can mount server mods ie not Galactic War or ranked
  • hook api.net.startGame to mount server mods for non Galactic War or ranked games
  • hook navToDestination to wait for server mods to mount

File:Platinum-rank-icon.png Transit Scene

The transit scene display messages when returning to the start and other scenes.

Community Mods injects into the transit scene using hooks in the default code.

Once loaded from the download cache the following is started:

  • If returning to start:
    • start downloading latest community mods files
  • and if server mods need reset:
    • reset server mods
    • update active zip mods
    • remount client mods
    • navigate to start

File:Platinum-rank-icon.png Galactic War Play Scene and Referee

The play scene and referee maange memory mounting of the unit specs for various loadouts and technology discovered.

Community Mods injects into the Galactic War play scene and referee using hooks in the default code.

Once loaded from the download cache the following are implemented:

  • hook api.file.unmountAllMemoryFiles to remount client mods