More stuff
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
|
||||
## Coding Style Preferences
|
||||
|
||||
- **NO STATIC FUNCTIONS in Unreal code.** Use class methods or namespace-scoped functions instead. This is a hard rule — the user has corrected this multiple times.
|
||||
- **No FREE-FLOATING (file-scope) static functions in Unreal code.** Use class methods (incl. `static` member functions) or namespace-scoped functions instead. A `static` member function inside a class is fine — e.g. a Blueprint-callable factory. The rule is only against file-local `static` free functions. (Corrected 2026-05-26 after I misread this as banning all `static`.)
|
||||
- Prefer in-class member initializers (`int x_ = 0;` in the header) over explicit initialization in constructor bodies. When touching constructors, migrate toward this style.
|
||||
- Inline empty constructors/destructors in the header when possible.
|
||||
- Avoid ternary operator unless very concise (e.g., `x ? 1 : 0`). For longer expressions, use early-return `if` instead.
|
||||
@@ -46,15 +46,26 @@
|
||||
- Blueprints in `/Game/Luprex/` use the `lx` prefix (e.g., `lxPlayerController`) and are loaded directly, not through the asset lookup system.
|
||||
- See `Source/Integration/AssetLookup.cpp` for the indexing logic.
|
||||
|
||||
## MCP / Blueprint Editing
|
||||
## UE Wingman
|
||||
|
||||
- BlueprintMCP plugin is in `Plugins/BlueprintMCP/` (C++ plugin, editor-only). Listens on TCP port 9847.
|
||||
- Python MCP bridge is `tools/mcp-bridge.py` (stdio transport, forwards to TCP port 9847).
|
||||
- Blueprint text exports go to `Saved/BlueprintExports/<PackageName>/` — includes both custom graph exports and Unreal's copy-format ASCII dump.
|
||||
- UE Wingman is a command-line tool (no longer an MCP server). Plugin lives in `Plugins/UEWingman/`; CLI is `ue-wingman` (on PATH at `/home/jyelon/bin/ue-wingman`).
|
||||
- Invoke directly via Bash. Subcommands are CamelCase, e.g. `ue-wingman Graph_Dump <path> True`.
|
||||
- Start by reading the manual: `ue-wingman Documentation_Manual`. Also useful: `Documentation_Commands` (concise list), `Documentation_Command <Name>` (detailed help for one command).
|
||||
- Common commands: `Blueprint_Dump`, `Graph_Dump`, `Details_Dump`, `Details_Set`, `GraphNode_ShowMenu`, `GraphNode_ChooseMenu`, `Variables_Add`/`Modify`/`Remove`, `TypeName_Search`.
|
||||
- Fetcher path syntax: `/Game/<Asset>,graph:<GraphName>,node:<NodeId>,pin:<PinName>` (also `widget:`, `component:`, `levelblueprint:`, `structprop:`). FNames in paths use periods for spaces (e.g. `graph:Handle.Invalid.Lua.Command`, not `HandleInvalidLuaCommand`). Other marks `\"'(),.:;<=>&` use HTML entity escapes like ` `.
|
||||
- ue-wingman is much faster than the LLM — batch multiple commands with `;` instead of running one at a time.
|
||||
|
||||
## Project
|
||||
|
||||
- [Eris addinfo intentionally removed](project_eris_addinfo_removed.md) — `luaG_runerror` no longer prefixes `file:line:`; traceback machinery handles location info
|
||||
|
||||
## Feedback
|
||||
|
||||
- [UE Wingman testing mindset](feedback_wingman_testing.md) — flag tool friction during game work sessions
|
||||
- [Use mv for file renames](feedback_rename_with_mv.md) — mv + targeted edits, don't rewrite from memory
|
||||
- [LLDB formatter style — let lldb do the math](feedback_lldb_formatter_style.md) — typed SBValues, no raw pointer/byte math in Python
|
||||
- [LLDB formatter style — no defensive IsValid checks](feedback_lldb_formatter_no_defensive_checks.md) — let invalid SBValues fail loudly; silent returns conceal bugs
|
||||
- [LLDB formatter style — no defensive IsValid checks](feedback_lldb_formatter_no_defensive_checks.md) — let invalid SBValues fail loudly; silent returns conceal bugs
|
||||
- [C++ never depends on Blueprint](feedback_cpp_no_bp_dependency.md) — construct widget trees in C++; don't reference WBP assets from C++
|
||||
- [Prefer check() over silent-skip](feedback_check_over_silent_skip.md) — invariants use check(); silent continue/return hides bugs
|
||||
- [Don't auto-build after every change](feedback_dont_auto_build.md) — only build when the user asks
|
||||
- [Edit workspace template, not the generated file](feedback_workspace_template.md) — `Integration.code-workspace` is generated; edit `Integration.code-workspace.tpl.json`
|
||||
Reference in New Issue
Block a user