Updates to the radial menu, info panel, slow-motion desaturation, and styling. |
tl;dr: Last week I made a lot of improvements to the UX and playability of Meteor Power.
What happened last week?
Highlights
- Radial-menu polish.
- Slow-motion and desaturation updates.
- Styling updates.
- Bot and station selection and touch-tracking updates.
Laundry list
- Radial menu:
- Disable camera-panning when the radial-menu is open.
- Fix an issue with radial-menu-item radius sometimes flickering during on-hover transition.
- Fix radial-menu center-area radius.
- Fix radial-menu-item hover-out transition.
- Refactor some radial menu logic live in radial-menu-items rather than the radial-menu.
- Create a new SpriteModulationRadialMenuItem.
- Add support for sliding the radial-menu and camera when the radial-menu would otherwise render outside the viewport.
- Add the station radial menu.
- Add a label for the currently-hovered radial-menu item.
- Add support for overriding the radial-menu label with a custom scene.
- Add an energy cost to the radial-menu label.
- Styling:
- Fix bot lights to not illuminate the bot and nearby parallax background layers.
- Update SpriteModulationButton to use ColorConfigs.
- Refactor some color-highlight configuration.
- Update colors.
- Add support for desaturating nodes during slow-motion even if they use materials with custom shaders.
- Add support for slow-motion-desaturating color-modulation-based nodes.
- Make stations desaturatable.
- Make bot and station outlines desaturatable.
- Make backgrounds and tilemaps slow-motion-desaturatable.
- Make SpriteModulationButtons desaturatable.
- Make meteors desaturatable.
- Fix navigation-path-preselection annotation to also show a pulse for the invalid-destination indicator.
- Fade-out the HUD when a character is active for player control.
- Add support for dynamically fading the entire HUD and regions of the HUD.
- Update stations to only ever show run-wire as a persistent overlay-button.
- Update button image sizes to not include a one-pixel margin.
- Fix overlay-button touch screen-radius values.
- Add some new button icons.
- Update about-screen layout.
- Hide all overlay-button-panels when fading hud during nav selection, and when radial-menu is open.
- Configure an offset for where to render the radial-panel; nudge this up a bit for stations.
- Adjust the styling for the radial-menu-label.
- Create an EnergyLabel scene for showing energy costs.
- Create an energy icon.
- Slow motion:
- Enable slow-motion when the radial-menu is open.
- Add support for enabling slow-motion on any AnimationPlayers and AnimatedSprites.
- Enable slow-motion for meteors and stations.
- Update display-time values to use a configurable time-type (i.e., slow-motion vs unscaled time).
- Fix meteor-power configurations for slow-motion:
- Don't pause music
- Do show navigation-preselection-path pulse
- Don't show beat hashes
- Touch tracking and selections:
- Add support for deselecting other bots and stations when selecting a new bot.
- Deselect bots and stations when closing the info panel.
- Did some experimenting to learn exactly how the sequencing of Godot’s `call_deferred` works:
- All `call_deferred` invocations are handled in the same frame they are registered.
- Even if a `call_deferred` is registered from the callback of a previous `call_deferred`, it is still handled within that same frame.
- The latest `call_deferred` callback is registered at the end of the queue.
- This is important information to inform how I’ll add support for listening for _unhandled_ touch events.
- Add support for tracking whether a touch-event is unhandled.
- Update navigation-path-selection to ignore touch-up events that have already been handled.
- Remove LevelControl.is_touch_disabled in favor of LevelControl.mouse_filter == Control.MOUSE_FILTER_IGNORE.
- Disambiguate bot-select taps from bot-navigation taps.
- Fix issues with radial-menu closing, info-panel closing, and handled-touch-event tracking.
- Fix an issue with LevelControl level-space position calculations when they were in the HUD canvas layer.
- Update stations and bots to not swallow touch-up events.
- Rename player-pointer-listener to player-touch-listener.
- Fix navigation-preselection to start on touch-down.
- Add support for disabling all level-control touches.
- Disable all level-control touches while the player is selecting a navigation path for a character.
- Update PauseButton and InspectorPanel-footer to be LevelControls.
- Add support for configuring whether to cancel active-character-for-player-nav selection when selecting an invalid nav destination.
- Deselect the active bot when selecting an invalid nav destination.
- Fix pressed/down event-handler for overlay buttons.
- Camera transitions:
- Add support for querying the current progress of a tween.
- Update the camera system to support matching a previous camera's offset and zoom.
- Reduce camera updates by combining tween-interpolated methods.
- Add support for an additional zoom-out/in for different cameras.
- Fix camera extra-zoom to not exceed max-zoom.
- Fix navigation-preselection to not override zoom.
- Miscellaneous:
- Fix a strange issue with Godot Dictionaries failing to erase a null (or probably actually a freed object) key.
- Add a new home icon.
- Fix corner-match-tilemap inner-tilemaps to share the same collision and light layer properties as their parent.
- Fix an issue with pausing music when the pause-screen opens.
- Update SpriteModulationButton to automatically calculate the sprite scale based on the button size.
- Add support for ensuring that a character ends up landing on a surface when stopping an in-progress navigation.
- Exit first-wire-end-pressed mode by tapping again on the first-connection station.
New content in the info panel. |
What's next?
- Some more info panel improvements.
- Add logic for disabling commands when they don't make sense or their isn't enough energy.
- Add a simple descriptive tutorial / hints panel.
- Some small camera polish.
- Refactor the power-line system.
🎉 Cheers!
Comments
Post a Comment