* Some state machine functions to make code tidier in the future
* Added a function to Global to check if we're playtesting, for convenience
* Only allow noclip w/o debug in leveltesting, toggling added, kept jump key to exit
* FPS counter is off by default, enable with F4
* A message or error is now shown on-screen if a screenshot is taken with F2
* Show message when noclip is enabled or disabled
* Global.gd now has an extra variable for current room type
* ResourceSetterNew.gd now has variation category for room types
The state variable also had to include the room type, since it wouldn't update properly when entering a bonus room from a level that's already underground
* LevelClass.gd sets room type on update_theme
A new function, get_room_type() allows for the level's room type to be detected, which can easily be overwritten by other level classes. Bonus Rooms are detected by comparing the level's scene path to a pre-defined list of bonus rooms.
* Added get_room_type() to CoinHeaven.gd
* Added get_room_type() to PipeCutscene.gd
Also updates the room type in _enter_tree() since update_theme() isn't called here.
* Added get_room_type() to TitleScreen.gd
This is just a bunch of bugfixes I did while I was working on the Multiplayer Support PR. I know I should've kept them separate, but then I'd also be dealing with said bugs. So this PR adds most of the bugfixes I did while working on Multiplayer.
- De-globalized Pipe SFX from Pipe Cutscene (helps with lowering audio)
- De-globalized 1-up SFX for Players
- Removed an error log spam with the `ResourceSetter`s (involving connecting already connected signals)
- Made sure to insert "BaseAssets" folder into the FIRST slot in the Resource Packs array.
- Replaced `"BaseAssets"` for the above fix with `Godot.ROM_PACK_NAME`
- Removed unused `"character"` setting from `SettingsManager`
- Reset P-Switch timer when `Global.reset_values()` is called. Fixes bug when pressing a P-Switch and immediately restarting the level.
- Added Skid SFX to `AudioManager`
- Added slightly longer delay for when pausing with a controller (it can easily unpause before you press the button again)
- Null check if LevelBG is in the level or not (for added for test levels)
This commit delegates all Discord-related functions to DiscordManager.gd and adds a project setting bool to toggle using Discord RPC at all. Toggling off will reduce cpu and memory overhead when Discord is not needed.