This wiki is archived from 2021-09-05

Planetary Annihilation Community Mods Implementation

From Planetary Annihilation: TITANS and Classic PA Wiki
Revision as of 14:46, 29 March 2016 by Admin (talk | contribs)
Jump to navigation Jump to search

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