Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
830c83d
Simple Command Tool
AlexD717 Aug 14, 2025
40ffa01
Toggles Drag Mode & Cleaner Code
AlexD717 Aug 14, 2025
e813745
Smarter Search
AlexD717 Aug 14, 2025
e3def28
General UX Improvements
AlexD717 Aug 14, 2025
8806a75
Arrow Keys Cycle
AlexD717 Aug 14, 2025
83947cc
Commands for Configuring Robots/Fields
AlexD717 Aug 14, 2025
e065102
More Commands
AlexD717 Aug 14, 2025
da046e4
fix: remove casting
rutmanz Aug 14, 2025
cbb2419
Update fission/src/ui/components/CommandPalette.tsx
AlexD717 Aug 15, 2025
1df5b83
Include Robot Control Scheme Name
AlexD717 Aug 15, 2025
7e8820c
Disables Input if Command Palette is Open
AlexD717 Aug 15, 2025
a50b72b
Switch Luna Default Inputs
AlexD717 Aug 15, 2025
4bf9491
Separate CommandRegistry
AlexD717 Aug 18, 2025
279c989
Commands Registered by Proper Objects
AlexD717 Aug 18, 2025
6726183
Formatting
AlexD717 Aug 18, 2025
9635480
Lint Error Fix
AlexD717 Aug 18, 2025
0dac14d
Merge branch 'dev' into alexey/2079/command-tool
AlexD717 Aug 21, 2025
d43f192
Command Pallete Analytics
AlexD717 Aug 21, 2025
82617f0
Merge branch 'dev' into alexey/2079/command-tool
BrandonPacewic Aug 22, 2025
d5b1749
Configure Assets Multiple Tabs
AlexD717 Aug 22, 2025
bcf34f7
Register Commands Formatting
AlexD717 Aug 22, 2025
6baf554
Removed Useless Command & Black Border
AlexD717 Aug 22, 2025
b2331bf
Merge branch 'dev' into alexey/2079/command-tool
AlexD717 Aug 22, 2025
20a4e34
Disable Autocomplete
AlexD717 Aug 22, 2025
7d42e33
Merge branch 'dev' into alexey/2079/command-tool
PepperLola Aug 22, 2025
ba04eef
No radius in text field top edges
AlexD717 Aug 22, 2025
839224b
Scrollable Command Palette
AlexD717 Aug 22, 2025
7a2ac9e
Merge branch 'dev' into alexey/2079/command-tool
PepperLola Aug 22, 2025
4319a64
Merge branch 'dev' into alexey/2079/command-tool
PepperLola Aug 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions fission/bun.lock
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"colord": "^2.9.3",
"electron-squirrel-startup": "^1.0.1",
"framer-motion": "^10.18.0",
"fuse.js": "^7.1.0",
"lygia": "^1.3.3",
"msw": "^2.10.4",
"notistack": "^3.0.2",
Expand Down Expand Up @@ -1175,6 +1176,8 @@

"functions-have-names": ["[email protected]", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="],

"fuse.js": ["[email protected]", "", {}, "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ=="],

"galactus": ["[email protected]", "", { "dependencies": { "debug": "^4.3.4", "flora-colossus": "^2.0.0", "fs-extra": "^10.1.0" } }, "sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ=="],

"gar": ["[email protected]", "", {}, "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w=="],
Expand Down
1 change: 1 addition & 0 deletions fission/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
"colord": "^2.9.3",
"electron-squirrel-startup": "^1.0.1",
"framer-motion": "^10.18.0",
"fuse.js": "^7.1.0",
"lygia": "^1.3.3",
"peerjs": "^1.5.5",
"msw": "^2.10.4",
Expand Down
2 changes: 2 additions & 0 deletions fission/src/Synthesis.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import MainMenuModal from "./ui/modals/MainMenuModal.tsx"
import { StateProvider } from "./ui/StateProvider.tsx"
import { ThemeProvider } from "./ui/ThemeProvider.tsx"
import { UIProvider } from "./ui/UIProvider.tsx"
import CommandPalette from "@/ui/components/CommandPalette.tsx"

function Synthesis() {
const [consentPopupDisable, setConsentPopupDisable] = useState<boolean>(true)
Expand Down Expand Up @@ -105,6 +106,7 @@ function Synthesis() {
<MultiplayerHUD />
<MainHUD key={"main-hud"} />
<UIRenderer />
<CommandPalette />
<ProgressNotifications key={"progress-notifications"} />
<WPILibConnectionStatus />
<DragModeIndicator />
Expand Down
5 changes: 5 additions & 0 deletions fission/src/systems/analytics/AnalyticsSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ export interface AnalyticsEvents {
isCustomized: boolean
schemeName: string
}

"Command Executed": {
command: string
}
}

class AnalyticsSystem extends WorldSystem {
Expand All @@ -77,6 +81,7 @@ class AnalyticsSystem extends WorldSystem {
}

public event<K extends keyof AnalyticsEvents>(name: K, params?: AnalyticsEvents[K]) {
console.log("AnalyticsEvent", name, params)
event({ name: name, params: params ?? {} })
}

Expand Down
2 changes: 1 addition & 1 deletion fission/src/systems/input/DefaultInputs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class DefaultInputs {
ButtonInput.onKeyboard("eject", "KeyL"),
ButtonInput.onKeyboard("unstick", "KeyK"),

AxisInput.onKeyboardSingleKey("joint 1", "Slash", negativeModifierKeys),
AxisInput.onKeyboardSingleKey("joint 1", "Quote", negativeModifierKeys),
AxisInput.onKeyboardSingleKey("joint 2", "Period", negativeModifierKeys),
AxisInput.onKeyboardSingleKey("joint 3", "Comma", negativeModifierKeys),
AxisInput.onKeyboardSingleKey("joint 4", "KeyM", negativeModifierKeys),
Expand Down
15 changes: 15 additions & 0 deletions fission/src/systems/input/InputSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ class InputSystem extends WorldSystem {
/** The keys currently being pressed. */
private static _keysPressed: Partial<Record<KeyCode, boolean>> = {}

/** Whether the command palette is currently open, which blocks robot input */
private static _isCommandPaletteOpen: boolean = false

private static _gpIndex: number | null
public static gamepad: Gamepad | null

Expand All @@ -35,6 +38,13 @@ class InputSystem extends WorldSystem {
})
}

/**
* Sets whether the command palette is open, which blocks all robot inputs
*/
public static setCommandPaletteOpen(isOpen: boolean) {
InputSystem._isCommandPaletteOpen = isOpen
}

constructor() {
super()

Expand Down Expand Up @@ -159,6 +169,11 @@ class InputSystem extends WorldSystem {
* @returns {number} A number between -1 and 1 based on the current state of the input.
*/
public static getInput(inputName: InputName, brainIndex: number): number {
// Block all robot inputs when command palette is open
if (InputSystem._isCommandPaletteOpen) {
return 0
}

const targetScheme = InputSystem.brainIndexSchemeMap.get(brainIndex)

const targetInput = targetScheme?.inputs.find(input => input.inputName == inputName) as Input
Expand Down
20 changes: 20 additions & 0 deletions fission/src/systems/match_mode/MatchMode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,26 @@ import type { MatchModeConfig } from "@/ui/panels/configuring/MatchModeConfigPan
import { SoundPlayer } from "../sound/SoundPlayer"
import { MatchModeType } from "./MatchModeTypes"
import RobotDimensionTracker from "./RobotDimensionTracker"
import CommandRegistry from "@/ui/components/CommandRegistry"
import { globalAddToast, globalOpenPanel } from "@/ui/components/GlobalUIControls"

// Register command: Toggle Match Mode
CommandRegistry.get().registerCommand({
id: "toggle-match-mode",
label: "Toggle Match Mode",
description: "Toggle match mode, allowing you to simulate and run a full match.",
keywords: ["match", "mode", "start", "play", "game", "simulate", "toggle"],
perform: () => {
if (MatchMode.getInstance().isMatchEnabled()) {
MatchMode.getInstance().sandboxModeStart()
globalAddToast("info", "Match Mode Cancelled")
} else {
import("@/ui/panels/configuring/MatchModeConfigPanel").then(m => {
globalOpenPanel(m.default, undefined)
})
}
},
})

class MatchMode {
private static _instance: MatchMode
Expand Down
Loading
Loading