From 8207fd0288f37ed4ff027951a27da72ea3f651f2 Mon Sep 17 00:00:00 2001 From: Tchips46 Date: Tue, 9 Jun 2026 16:00:11 +0900 Subject: [PATCH 1/2] feat(move-controller-2d): editor enum complient --- .../nf-move-controller-2d.component/index.ts | 598 +++++++++++++++++- 1 file changed, 585 insertions(+), 13 deletions(-) diff --git a/packages/nf-move-controller-2d.component/index.ts b/packages/nf-move-controller-2d.component/index.ts index f7d6202..5d90190 100644 --- a/packages/nf-move-controller-2d.component/index.ts +++ b/packages/nf-move-controller-2d.component/index.ts @@ -1,5 +1,5 @@ import type { EditorComponentManifest } from "@nanoforge-dev/ecs-lib"; -import { InputEnum } from "@nanoforge-dev/input"; +import { type InputEnum } from "@nanoforge-dev/input"; export class MoveController2D { name = this.constructor.name; @@ -56,34 +56,606 @@ export const EDITOR_COMPONENT_MANIFEST: EditorComponentManifest = { { name: "keyUp", type: "string", - enum: InputEnum, + enum: [ + "Escape", + "Digit1", + "Digit2", + "Digit3", + "Digit4", + "Digit5", + "Digit6", + "Digit7", + "Digit8", + "Digit9", + "Digit0", + "Minus", + "Equal", + "Backspace", + "Tab", + "KeyQ", + "KeyW", + "KeyE", + "KeyR", + "KeyT", + "KeyY", + "KeyU", + "KeyI", + "KeyO", + "KeyP", + "BracketLeft", + "BracketRight", + "Enter", + "ControlLeft", + "KeyA", + "KeyS", + "KeyD", + "KeyF", + "KeyG", + "KeyH", + "KeyJ", + "KeyK", + "KeyL", + "Semicolon", + "Quote", + "Backquote", + "ShiftLeft", + "Backslash", + "KeyZ", + "KeyX", + "KeyC", + "KeyV", + "KeyB", + "KeyN", + "KeyM", + "Comma", + "Period", + "Slash", + "ShiftRight", + "NumpadMultiply", + "AltLeft", + "Space", + "CapsLock", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "Pause", + "ScrollLock", + "Numpad7", + "Numpad8", + "Numpad9", + "NumpadSubtract", + "Numpad4", + "Numpad5", + "Numpad6", + "NumpadAdd", + "Numpad1", + "Numpad2", + "Numpad3", + "Numpad0", + "NumpadDecimal", + "IntlBackslash", + "F11", + "F12", + "NumpadEqual", + "F13", + "F14", + "F15", + "F16", + "F17", + "F18", + "F19", + "F20", + "F21", + "F22", + "F23", + "KanaMode", + "Lang2", + "Lang1", + "IntlRo", + "F24", + "Convert", + "NonConvert", + "IntlYen", + "NumpadComma", + "MediaTrackPrevious", + "MediaTrackNext", + "NumpadEnter", + "ControlRight", + "AudioVolumeMute", + "LaunchApp2", + "MediaPlayPause", + "MediaStop", + "BrowserHome", + "NumpadDivide", + "PrintScreen", + "AltRight", + "NumLock", + "Home", + "ArrowUp", + "PageUp", + "ArrowLeft", + "ArrowRight", + "End", + "ArrowDown", + "PageDown", + "Insert", + "Delete", + "MetaLeft", + "MetaRight", + "ContextMenu", + "Power", + "BrowserSearch", + "BrowserFavorites", + "BrowserRefresh", + "BrowserStop", + "BrowserForward", + "BrowserBack", + "LaunchApp1", + "LaunchMail", + ], description: "Key to press to go up", - example: InputEnum.ArrowUp, - default: InputEnum.ArrowUp, + example: "ArrowUp", + default: "ArrowUp", }, { name: "keyDown", type: "string", - enum: InputEnum, + enum: [ + "Escape", + "Digit1", + "Digit2", + "Digit3", + "Digit4", + "Digit5", + "Digit6", + "Digit7", + "Digit8", + "Digit9", + "Digit0", + "Minus", + "Equal", + "Backspace", + "Tab", + "KeyQ", + "KeyW", + "KeyE", + "KeyR", + "KeyT", + "KeyY", + "KeyU", + "KeyI", + "KeyO", + "KeyP", + "BracketLeft", + "BracketRight", + "Enter", + "ControlLeft", + "KeyA", + "KeyS", + "KeyD", + "KeyF", + "KeyG", + "KeyH", + "KeyJ", + "KeyK", + "KeyL", + "Semicolon", + "Quote", + "Backquote", + "ShiftLeft", + "Backslash", + "KeyZ", + "KeyX", + "KeyC", + "KeyV", + "KeyB", + "KeyN", + "KeyM", + "Comma", + "Period", + "Slash", + "ShiftRight", + "NumpadMultiply", + "AltLeft", + "Space", + "CapsLock", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "Pause", + "ScrollLock", + "Numpad7", + "Numpad8", + "Numpad9", + "NumpadSubtract", + "Numpad4", + "Numpad5", + "Numpad6", + "NumpadAdd", + "Numpad1", + "Numpad2", + "Numpad3", + "Numpad0", + "NumpadDecimal", + "IntlBackslash", + "F11", + "F12", + "NumpadEqual", + "F13", + "F14", + "F15", + "F16", + "F17", + "F18", + "F19", + "F20", + "F21", + "F22", + "F23", + "KanaMode", + "Lang2", + "Lang1", + "IntlRo", + "F24", + "Convert", + "NonConvert", + "IntlYen", + "NumpadComma", + "MediaTrackPrevious", + "MediaTrackNext", + "NumpadEnter", + "ControlRight", + "AudioVolumeMute", + "LaunchApp2", + "MediaPlayPause", + "MediaStop", + "BrowserHome", + "NumpadDivide", + "PrintScreen", + "AltRight", + "NumLock", + "Home", + "ArrowUp", + "PageUp", + "ArrowLeft", + "ArrowRight", + "End", + "ArrowDown", + "PageDown", + "Insert", + "Delete", + "MetaLeft", + "MetaRight", + "ContextMenu", + "Power", + "BrowserSearch", + "BrowserFavorites", + "BrowserRefresh", + "BrowserStop", + "BrowserForward", + "BrowserBack", + "LaunchApp1", + "LaunchMail", + ], description: "Key to press to go down", - example: InputEnum.ArrowDown, - default: InputEnum.ArrowDown, + example: "ArrowDown", + default: "ArrowDown", }, { name: "keyLeft", type: "string", - enum: InputEnum, + enum: [ + "Escape", + "Digit1", + "Digit2", + "Digit3", + "Digit4", + "Digit5", + "Digit6", + "Digit7", + "Digit8", + "Digit9", + "Digit0", + "Minus", + "Equal", + "Backspace", + "Tab", + "KeyQ", + "KeyW", + "KeyE", + "KeyR", + "KeyT", + "KeyY", + "KeyU", + "KeyI", + "KeyO", + "KeyP", + "BracketLeft", + "BracketRight", + "Enter", + "ControlLeft", + "KeyA", + "KeyS", + "KeyD", + "KeyF", + "KeyG", + "KeyH", + "KeyJ", + "KeyK", + "KeyL", + "Semicolon", + "Quote", + "Backquote", + "ShiftLeft", + "Backslash", + "KeyZ", + "KeyX", + "KeyC", + "KeyV", + "KeyB", + "KeyN", + "KeyM", + "Comma", + "Period", + "Slash", + "ShiftRight", + "NumpadMultiply", + "AltLeft", + "Space", + "CapsLock", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "Pause", + "ScrollLock", + "Numpad7", + "Numpad8", + "Numpad9", + "NumpadSubtract", + "Numpad4", + "Numpad5", + "Numpad6", + "NumpadAdd", + "Numpad1", + "Numpad2", + "Numpad3", + "Numpad0", + "NumpadDecimal", + "IntlBackslash", + "F11", + "F12", + "NumpadEqual", + "F13", + "F14", + "F15", + "F16", + "F17", + "F18", + "F19", + "F20", + "F21", + "F22", + "F23", + "KanaMode", + "Lang2", + "Lang1", + "IntlRo", + "F24", + "Convert", + "NonConvert", + "IntlYen", + "NumpadComma", + "MediaTrackPrevious", + "MediaTrackNext", + "NumpadEnter", + "ControlRight", + "AudioVolumeMute", + "LaunchApp2", + "MediaPlayPause", + "MediaStop", + "BrowserHome", + "NumpadDivide", + "PrintScreen", + "AltRight", + "NumLock", + "Home", + "ArrowUp", + "PageUp", + "ArrowLeft", + "ArrowRight", + "End", + "ArrowDown", + "PageDown", + "Insert", + "Delete", + "MetaLeft", + "MetaRight", + "ContextMenu", + "Power", + "BrowserSearch", + "BrowserFavorites", + "BrowserRefresh", + "BrowserStop", + "BrowserForward", + "BrowserBack", + "LaunchApp1", + "LaunchMail", + ], description: "Key to press to go left", - example: InputEnum.ArrowLeft, - default: InputEnum.ArrowLeft, + example: "ArrowLeft", + default: "ArrowLeft", }, { name: "keyRight", type: "string", - enum: InputEnum, + enum: [ + "Escape", + "Digit1", + "Digit2", + "Digit3", + "Digit4", + "Digit5", + "Digit6", + "Digit7", + "Digit8", + "Digit9", + "Digit0", + "Minus", + "Equal", + "Backspace", + "Tab", + "KeyQ", + "KeyW", + "KeyE", + "KeyR", + "KeyT", + "KeyY", + "KeyU", + "KeyI", + "KeyO", + "KeyP", + "BracketLeft", + "BracketRight", + "Enter", + "ControlLeft", + "KeyA", + "KeyS", + "KeyD", + "KeyF", + "KeyG", + "KeyH", + "KeyJ", + "KeyK", + "KeyL", + "Semicolon", + "Quote", + "Backquote", + "ShiftLeft", + "Backslash", + "KeyZ", + "KeyX", + "KeyC", + "KeyV", + "KeyB", + "KeyN", + "KeyM", + "Comma", + "Period", + "Slash", + "ShiftRight", + "NumpadMultiply", + "AltLeft", + "Space", + "CapsLock", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "Pause", + "ScrollLock", + "Numpad7", + "Numpad8", + "Numpad9", + "NumpadSubtract", + "Numpad4", + "Numpad5", + "Numpad6", + "NumpadAdd", + "Numpad1", + "Numpad2", + "Numpad3", + "Numpad0", + "NumpadDecimal", + "IntlBackslash", + "F11", + "F12", + "NumpadEqual", + "F13", + "F14", + "F15", + "F16", + "F17", + "F18", + "F19", + "F20", + "F21", + "F22", + "F23", + "KanaMode", + "Lang2", + "Lang1", + "IntlRo", + "F24", + "Convert", + "NonConvert", + "IntlYen", + "NumpadComma", + "MediaTrackPrevious", + "MediaTrackNext", + "NumpadEnter", + "ControlRight", + "AudioVolumeMute", + "LaunchApp2", + "MediaPlayPause", + "MediaStop", + "BrowserHome", + "NumpadDivide", + "PrintScreen", + "AltRight", + "NumLock", + "Home", + "ArrowUp", + "PageUp", + "ArrowLeft", + "ArrowRight", + "End", + "ArrowDown", + "PageDown", + "Insert", + "Delete", + "MetaLeft", + "MetaRight", + "ContextMenu", + "Power", + "BrowserSearch", + "BrowserFavorites", + "BrowserRefresh", + "BrowserStop", + "BrowserForward", + "BrowserBack", + "LaunchApp1", + "LaunchMail", + ], description: "Key to press to go right", - example: InputEnum.ArrowRight, - default: InputEnum.ArrowRight, + example: "ArrowRight", + default: "ArrowRight", }, ], }; From d928da2d300ff3f9fecfe099d16ba2a72d1fff80 Mon Sep 17 00:00:00 2001 From: Tchips46 Date: Tue, 9 Jun 2026 16:16:40 +0900 Subject: [PATCH 2/2] feat: gravity-2d --- packages/nf-gravity-2d.system/index.ts | 22 +++++++++++++++++++ .../nanoforge.manifest.json | 7 ++++++ 2 files changed, 29 insertions(+) create mode 100644 packages/nf-gravity-2d.system/index.ts create mode 100644 packages/nf-gravity-2d.system/nanoforge.manifest.json diff --git a/packages/nf-gravity-2d.system/index.ts b/packages/nf-gravity-2d.system/index.ts new file mode 100644 index 0000000..392cd74 --- /dev/null +++ b/packages/nf-gravity-2d.system/index.ts @@ -0,0 +1,22 @@ +import { type EditorSystemManifest, type Registry } from "@nanoforge-dev/ecs-lib"; + +import { Acceleration2D } from "../components/nf-acceleration-2d.component"; + +const GRAVITY_STRENGTH = 1; + +export function gravity2D(registry: Registry) { + const entities = registry.getZipper([Acceleration2D]); + + entities.forEach(({ Acceleration2D }) => { + Acceleration2D.y -= GRAVITY_STRENGTH; + }); +} +// * Required to generate code +export default gravity2D.name; + +// * Required for the editor to display the system and generate code +export const EDITOR_SYSTEM_MANIFEST: EditorSystemManifest = { + name: "gravity2D", + description: "Apply a down acceleration to every object", + dependencies: ["Acceleration2D"], +}; diff --git a/packages/nf-gravity-2d.system/nanoforge.manifest.json b/packages/nf-gravity-2d.system/nanoforge.manifest.json new file mode 100644 index 0000000..c951000 --- /dev/null +++ b/packages/nf-gravity-2d.system/nanoforge.manifest.json @@ -0,0 +1,7 @@ +{ + "name": "nf/gravity-2d", + "type": "system", + "description": "Apply a down acceleration to every object", + "tags": ["base", "mouvement"], + "dependencies": ["nf/acceleration-2d"] +}