* 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)
* Just the Coin Sparkle stuff
FYI, if a property in the json is formatted like `exa.exb` then it reads `exa` as another object and `exb` as a property in `exa` assuming the root `property_node` contains this object.
Also primarily for Resource Packs to change how the particles work and should explain how I got there with my personal SMAS skin.
* Added Coin Sparkle Texture to Scene
Of course I broke it in some form.
* new animation states
additional conditional animation states, including:
- SkidAttack
- IdleAttack
- WalkAttack
- RunAttack
- CrouchJump
- CrouchMove
... along with a new set of animations, the Bump animations (play when hitting your head on a block)
- JumpBump
- CrouchBump
- SwimBump
* added fly animations & tweaked bump animation time
new anims for FlyIdle, FlyUp, FlyMove, FlyAttack, and FlyBump, which all fallback on their Swim counterparts if not found. also changed around some animation fallbacks which made more sense, like bumps using fall animations instead if applicable.
* added bump ignore checks and added a general bump animation
you can now define Bump which will define a bump animation for all bump animations. additionally, bump animations will only play if they can detect an animation. no more fallbacks needed
* Update Mod Loader and Tool addons
* Mod tool checks if script exists before reloading
* Change script export mode to Text for hook export
* Change return type of load_image_from_path to Texture2D
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.