Skip to content

[FEATURE] Support default orientation templates for custom phone apps #86

Description

@ifBars

What would you like to see?

Add clearer S1API support for choosing the default orientation/template used by custom PhoneApp instances.

A modder reported that overriding phone app orientation rotates the phone, but the app canvas remains sideways. Based on the current API behavior, PhoneApp.Orientation affects phone rotation/camera offset when the app opens, but custom app panels are still cloned from ProductManagerApp in SpawnUI.

It would help to provide an API-supported way to create a vertical or horizontal phone app canvas by default, likely by cloning from an appropriate native app/template for the requested orientation. If runtime orientation changes are also supported later, the API should document that per-app UI layout, resizing, and scaling may still need to be handled by the mod.

Why would this help?

Right now, modders can see an orientation option in the API/docs, but it is not obvious that this only handles phone rotation/camera offset and does not necessarily produce a correctly oriented/resized canvas for the app UI.

This makes portrait-style phone apps confusing to build: a modder may override orientation and expect S1API to provide a vertical canvas, but instead their UI can remain laid out sideways because the cloned app canvas/template came from a horizontal app.

Extra Context (Optional)

Community report summary:

  • A modder tried changing a phone app's orientation via override.
  • The phone rotated, but the app canvas was sideways.
  • They asked whether an additional step was required or whether they needed to manually rotate/resize the UI.
  • Current maintainer understanding: orientation currently affects the phone/app state, while resizing/rotating UI is likely not handled automatically by the game and may need to be handled per app.

Current repo context:

  • S1API/PhoneApp/PhoneApp.cs exposes protected virtual EOrientation Orientation => EOrientation.Horizontal;.
  • SetAppOpen uses Orientation to call Phone.Instance.SetIsHorizontal(true) for horizontal apps and adjust look offset.
  • SpawnUI currently clones AppsCanvas/ProductManagerApp for custom phone apps.
  • S1API/docs/phone-app.md currently says overriding Orientation to Vertical creates portrait-style apps and that S1API adjusts phone rotation/camera offset.

Possible acceptance criteria:

  • S1API provides a supported way to choose vertical vs. horizontal default phone app layout/template.
  • The docs clearly distinguish phone rotation from canvas/UI layout responsibilities.
  • If runtime orientation changes are exposed, the docs explain what S1API handles and what the app/modder must handle manually.

Metadata

Metadata

Assignees

No one assigned

    Labels

    LowVery minor issue, non gameplay hindering, fix all high prio firstenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions