Main Menu: Difference between revisions
No edit summary |
No edit summary |
||
| Line 119: | Line 119: | ||
* [[Bitcoin]] · [[EZ Mining]] — economy hooks players meet after leaving the menu | * [[Bitcoin]] · [[EZ Mining]] — economy hooks players meet after leaving the menu | ||
* [[Modding]] · [[Decompile]] — digging into <code>MainMenu</code> / <code>MenuManager</code> / <code>FileMenu</code> | * [[Modding]] · [[Decompile]] — digging into <code>MainMenu</code> / <code>MenuManager</code> / <code>FileMenu</code> | ||
* [[Main Page]] | * [[Main Page]] - wiki home | ||
Revision as of 18:17, 22 March 2026
When you start PC Simulator, the first place you land is the main menu. This is where you choose what to do next—open a Save, try the Tutorial (if the game nudges you), change options, or quit back to your desktop.
The menu is part of the Menu scene in the game build. For how saves are stored and edited outside the game, see Save and Save Editor; for oddities and easter eggs that sometimes touch the menu flow, see Secrets and Achievements:The Hidden Room.
| Feels like | A hub: pick a save, learn the ropes, or adjust the game before you play |
| Saves | Your .pc files — see Save
|
| Money vs crypto | In-game cash and Bitcoin (mining apps tie into EZ Mining) |
| Small touch | The title blinks, a bit like a cursor |
What you can do here
- Load a game — Your saves show up as a list (newest usually first). Hardcore runs may show a little marker so you don’t mix them up with normal runs.
- Tutorial — If you haven’t seen the latest tutorial revision, the game may suggest it. Accepting marks that version as “seen” so it won’t keep asking every launch.
- Settings — Things like language, resolution, and frame rate options get applied early so the menu already matches how you like to play.
- Volume — Master volume from your last session is restored before you hear much audio.
- Import a save — You can pull in a
.pcfile from somewhere else (handy if you’re Modding or sharing with friends). Bad or incompatible files show a clear error instead of silently breaking. - Quit — Closes the game on builds that support it (in the editor it often does nothing visible).
How starting a game works (simple)
- You pick a save row (or the game loads a preset / example file).
- The game stores “use this file” for the next scene.
- You’re sent to the room that save belongs to—not every save uses the same room layout.
Some Secrets or special triggers load an example file (for instance content tied to Achievements:The Hidden Room). Under the hood that’s the same pipeline as opening a normal Save, just reading from a different folder.
In-depth
This section is for readers who want exact behaviour and script names. It matches the decompiled / project logic; if you’re digging through assets, see Decompile and Modding.
Scripts and roles
| Script | Role |
|---|---|
MainMenu
|
Singleton (MainMenu.Instance). Initializes Localization (below), restores FPS/resolution, handles tutorial version gating, blinks the title, loads scenes and example files, calls Application.Quit.
|
MenuManager
|
Stack of active menu GameObject pages. ShowMenu(string) finds a child whose hierarchy name matches the string (e.g. Loading). Back pops one level. HideMenu toggles the top without popping. Optional click sounds.
|
FileMenu
|
Scans the save directory for .pc files, sorts by last write time, builds UI rows, supports rename/metadata via FileInformation, delete, and import through a native file picker.
|
Localization
On Awake, MainMenu calls Localization.CreateContent(), sets language from PlayerPrefs "Language" or maps Application.systemLanguage to a short code, and subscribes to language changes to persist the choice. See also the standalone page Localization for strings and language list detail if you document it there.
Tutorial gating
PlayerPrefs.GetInt("TutorialVersion", -1) is compared to an editor field tutorialVersion. If the stored value is lower, guideToTutorial is shown. Tutorial() writes the current version and loads the "Tutorial" scene by name.
Loading screen
Any menu-driven scene load shows the Loading page first, then runs an async load coroutine: progress is mapped from Unity’s 0…0.9 range to a 0–100% display; at 0.9 it shows 100%, waits 0.5s, then allows scene activation. See Loading screen for a dedicated write-up if you split it out.
Save load path
LoadFile(DataLoader loader) assigns SaveManager.Loader = loader and loads build index startRoomSceneIndex + GameData.room. The base index is set in the inspector so save data only needs a small room id. Full format notes belong on Save.
Example / preset loads
LoadExample(string name) reads StreamingAssets/Examples/{name}.pc. On Android/WebGL it uses UnityWebRequest; elsewhere File.ReadAllText. Parsed with DataLoader.LoadFromString, then the same LoadFile as user saves. Document bundled filenames on StreamingAssets if you list them.
File import (FileMenu.Import)
Native picker filtered to .pc, read permission check, DataLoader.LoadFromPath() validation (failure message mentions compatibility with version 1.7.0+), then File.Copy into the save folder via SaveUtility.GetNewPath, destroy old rows, rescan folder.
Related systems
- In-game pause uses the same hide/show idea for UI; short page: Pause menu.
- Gallery for menu screenshots: Gallery.
- Credits / people: Cheng Yi-Ming, Yiming Connect, VerdiX (link where your wiki places engine or services context).
- Wiki conduct: PC Simulator Unofficial Wiki:Rules.
Data flow (quick reference)
| Trigger | What runs |
|---|---|
| Click save name | MainMenu.LoadFile → SaveManager.Loader → async startRoomSceneIndex + room
|
| Example / secret preset | LoadExample from streaming path → LoadFile (same as save)
|
| Any menu scene transition | ShowMenu("Loading") then async coroutine
|
| Start tutorial | Update TutorialVersion → LoadScene("Tutorial")
|
See also
- PC Simulator — the game this menu belongs to
- Save · Save Editor — files and external editing
- Secrets · Achievements:The Hidden Room — hidden flows that load special saves
- Bitcoin · EZ Mining — economy hooks players meet after leaving the menu
- Modding · Decompile — digging into
MainMenu/MenuManager/FileMenu - Main Page - wiki home