Compare commits

...

8 Commits

32 changed files with 677 additions and 714 deletions

View File

@ -23,3 +23,4 @@ PackConstructorInitializers: Never
PointerAlignment: Middle
QualifierAlignment: Right
ShortNamespaceLines: 0
SortIncludes: Never

91
.editorconfig Normal file
View File

@ -0,0 +1,91 @@
[*.{cpp,h}]
# Naming convention rules (note: currently need to be ordered from more to less specific)
cpp_naming_rule.aactor_prefixed.symbols = aactor_class
cpp_naming_rule.aactor_prefixed.style = aactor_style
cpp_naming_rule.swidget_prefixed.symbols = swidget_class
cpp_naming_rule.swidget_prefixed.style = swidget_style
cpp_naming_rule.uobject_prefixed.symbols = uobject_class
cpp_naming_rule.uobject_prefixed.style = uobject_style
cpp_naming_rule.booleans_prefixed.symbols = boolean_vars
cpp_naming_rule.booleans_prefixed.style = boolean_style
cpp_naming_rule.structs_prefixed.symbols = structs
cpp_naming_rule.structs_prefixed.style = unreal_engine_structs
cpp_naming_rule.enums_prefixed.symbols = enums
cpp_naming_rule.enums_prefixed.style = unreal_engine_enums
cpp_naming_rule.templates_prefixed.symbols = templates
cpp_naming_rule.templates_prefixed.style = unreal_engine_templates
cpp_naming_rule.general_names.symbols = all_symbols
cpp_naming_rule.general_names.style = unreal_engine_default
# Naming convention symbols
cpp_naming_symbols.aactor_class.applicable_kinds = class
cpp_naming_symbols.aactor_class.applicable_type = AActor
cpp_naming_symbols.swidget_class.applicable_kinds = class
cpp_naming_symbols.swidget_class.applicable_type = SWidget
cpp_naming_symbols.uobject_class.applicable_kinds = class
cpp_naming_symbols.uobject_class.applicable_type = UObject
cpp_naming_symbols.boolean_vars.applicable_kinds = local,parameter,field
cpp_naming_symbols.boolean_vars.applicable_type = bool
cpp_naming_symbols.enums.applicable_kinds = enum
cpp_naming_symbols.templates.applicable_kinds = template_class
cpp_naming_symbols.structs.applicable_kinds = struct
cpp_naming_symbols.all_symbols.applicable_kinds = *
# Naming convention styles
cpp_naming_style.unreal_engine_default.capitalization = pascal_case
cpp_naming_style.unreal_engine_default.required_prefix =
cpp_naming_style.unreal_engine_default.required_suffix =
cpp_naming_style.unreal_engine_default.word_separator =
cpp_naming_style.unreal_engine_enums.capitalization = pascal_case
cpp_naming_style.unreal_engine_enums.required_prefix = E
cpp_naming_style.unreal_engine_enums.required_suffix =
cpp_naming_style.unreal_engine_enums.word_separator =
cpp_naming_style.unreal_engine_templates.capitalization = pascal_case
cpp_naming_style.unreal_engine_templates.required_prefix = T
cpp_naming_style.unreal_engine_templates.required_suffix =
cpp_naming_style.unreal_engine_templates.word_separator =
cpp_naming_style.unreal_engine_structs.capitalization = pascal_case
cpp_naming_style.unreal_engine_structs.required_prefix = F
cpp_naming_style.unreal_engine_structs.required_suffix =
cpp_naming_style.unreal_engine_structs.word_separator =
cpp_naming_style.uobject_style.capitalization = pascal_case
cpp_naming_style.uobject_style.required_prefix = U
cpp_naming_style.uobject_style.required_suffix =
cpp_naming_style.uobject_style.word_separator =
cpp_naming_style.aactor_style.capitalization = pascal_case
cpp_naming_style.aactor_style.required_prefix = A
cpp_naming_style.aactor_style.required_suffix =
cpp_naming_style.aactor_style.word_separator =
cpp_naming_style.swidget_style.capitalization = pascal_case
cpp_naming_style.swidget_style.required_prefix = S
cpp_naming_style.swidget_style.required_suffix =
cpp_naming_style.swidget_style.word_separator =
cpp_naming_style.boolean_style.capitalization = pascal_case
cpp_naming_style.boolean_style.required_prefix = b
cpp_naming_style.boolean_style.required_suffix =
cpp_naming_style.boolean_style.word_separator =

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "Plugins/hstherac25/Source/hstherac-hs"]
path = Plugins/hstherac25/Source/hstherac-hs
url = git@github.com:pillowtrucker/hstherac25.git

View File

@ -5,3 +5,5 @@
/DerivedDataCache
/Intermediate
/Saved
/Plugins/hstherac25/Content
/Plugins/hstherac25/Intermediate

15
.vsconfig Normal file
View File

@ -0,0 +1,15 @@
{
"version": "1.0",
"components": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.VisualStudio.Component.Unreal.Workspace",
"Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL",
"Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NativeGame"
]
}

BIN
Content/LinacLab/MyMyUserWidget.uasset (Stored with Git LFS)

Binary file not shown.

BIN
Content/LinacLab/vt100_Blueprint.uasset (Stored with Git LFS)

Binary file not shown.

View File

@ -1,627 +0,0 @@
{
"folders": [
{
"name": "MyProject",
"path": "."
},
{
"name": "UE5",
"path": "D:\\Epic Games\\UE_5.5"
}
],
"settings": {
"typescript.tsc.autoDetect": "off",
"npm.autoDetect": "off",
"terminal.integrated.env.windows": {
"PATH": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\ThirdParty\\DotNet\\8.0.300\\win-x64;${env:PATH}",
"DOTNET_ROOT": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\ThirdParty\\DotNet\\8.0.300\\win-x64",
"DOTNET_HOST_PATH": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\ThirdParty\\DotNet\\8.0.300\\win-x64\\dotnet.exe",
"DOTNET_MULTILEVEL_LOOKUP": "0",
"DOTNET_ROLL_FORWARD": "LatestMajor"
}
},
"extensions": {
"recommendations": [
"ms-vscode.cpptools",
"ms-dotnettools.csharp"
]
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "MyProject Win64 Debug Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Debug",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Debug Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Debug",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProject Win64 Debug Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Debug Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProject",
"Win64",
"Debug",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 DebugGame Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"DebugGame",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 DebugGame Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"DebugGame",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProject Win64 DebugGame Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 DebugGame Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProject",
"Win64",
"DebugGame",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Development Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Development",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Development Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Development",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProject Win64 Development Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Development Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProject",
"Win64",
"Development",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Test Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Test",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Test Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Test",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProject Win64 Test Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Test Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProject",
"Win64",
"Test",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Shipping Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Shipping",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Shipping Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProject",
"Win64",
"Shipping",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProject Win64 Shipping Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProject Win64 Shipping Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProject",
"Win64",
"Shipping",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 Debug Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProjectEditor",
"Win64",
"Debug",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 Debug Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProjectEditor",
"Win64",
"Debug",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProjectEditor Win64 Debug Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 Debug Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProjectEditor",
"Win64",
"Debug",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 DebugGame Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProjectEditor",
"Win64",
"DebugGame",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 DebugGame Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProjectEditor",
"Win64",
"DebugGame",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProjectEditor Win64 DebugGame Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 DebugGame Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProjectEditor",
"Win64",
"DebugGame",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 Development Build",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProjectEditor",
"Win64",
"Development",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 Development Rebuild",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Build.bat",
"args": [
"MyProjectEditor",
"Win64",
"Development",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"dependsOn": [
"MyProjectEditor Win64 Development Clean"
],
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
},
{
"label": "MyProjectEditor Win64 Development Clean",
"group": "build",
"command": "Engine\\Build\\BatchFiles\\Clean.bat",
"args": [
"MyProjectEditor",
"Win64",
"Development",
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-waitmutex"
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "D:\\Epic Games\\UE_5.5"
}
}
]
},
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Launch MyProject (Debug)",
"request": "launch",
"program": "C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\Binaries\\Win64\\UnrealGame-Win64-Debug.exe",
"preLaunchTask": "MyProject Win64 Debug Build",
"args": [
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProject (DebugGame)",
"request": "launch",
"program": "C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\Binaries\\Win64\\UnrealGame-Win64-DebugGame.exe",
"preLaunchTask": "MyProject Win64 DebugGame Build",
"args": [
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProject (Development)",
"request": "launch",
"program": "C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\Binaries\\Win64\\UnrealGame.exe",
"preLaunchTask": "MyProject Win64 Development Build",
"args": [
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProject (Test)",
"request": "launch",
"program": "C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\Binaries\\Win64\\UnrealGame-Win64-Test.exe",
"preLaunchTask": "MyProject Win64 Test Build",
"args": [
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProject (Shipping)",
"request": "launch",
"program": "C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\Binaries\\Win64\\UnrealGame-Win64-Shipping.exe",
"preLaunchTask": "MyProject Win64 Shipping Build",
"args": [
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProjectEditor (Debug)",
"request": "launch",
"program": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\Win64\\UnrealEditor-Win64-Debug.exe",
"preLaunchTask": "MyProjectEditor Win64 Debug Build",
"args": [
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject"
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProjectEditor (DebugGame)",
"request": "launch",
"program": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\Win64\\UnrealEditor-Win64-DebugGame.exe",
"preLaunchTask": "MyProjectEditor Win64 DebugGame Build",
"args": [
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject"
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Launch MyProjectEditor (Development)",
"request": "launch",
"program": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\Win64\\UnrealEditor.exe",
"preLaunchTask": "MyProjectEditor Win64 Development Build",
"args": [
"C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject"
],
"cwd": "D:\\Epic Games\\UE_5.5",
"stopAtEntry": false,
"console": "integratedTerminal",
"type": "cppvsdbg",
"visualizerFile": "D:\\Epic Games\\UE_5.5\\Engine\\Extras\\VisualStudioDebugging\\Unreal.natvis",
"sourceFileMap": {
"D:\\build\\++UE5\\Sync": "D:\\Epic Games\\UE_5.5"
}
},
{
"name": "Generate Project Files",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "UnrealBuildTool Win64 Development Build",
"program": "D:\\Epic Games\\UE_5.5\\Engine\\Build\\BatchFiles\\RunUBT.bat",
"args": [
"-projectfiles",
"-vscode",
"-project=C:\\Users\\wonky\\Documents\\Unreal Projects\\MyProject\\MyProject.uproject",
"-game",
"-engine",
"-dotnet"
],
"env": {
"PATH": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\ThirdParty\\DotNet\\8.0.300\\win-x64;${env:PATH}",
"DOTNET_ROOT": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\ThirdParty\\DotNet\\8.0.300\\win-x64",
"DOTNET_HOST_PATH": "D:\\Epic Games\\UE_5.5\\Engine\\Binaries\\ThirdParty\\DotNet\\8.0.300\\win-x64\\dotnet.exe",
"DOTNET_MULTILEVEL_LOOKUP": "0",
"DOTNET_ROLL_FORWARD": "LatestMajor"
},
"console": "integratedTerminal",
"stopAtEntry": false,
"cwd": "D:\\Epic Games\\UE_5.5"
}
]
}
}

View File

@ -7,20 +7,13 @@
{
"Name": "MyProject",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"UMG",
"Engine"
]
"LoadingPhase": "Default"
}
],
"Plugins": [
{
"Name": "ModelingToolsEditorMode",
"Enabled": true,
"TargetAllowList": [
"Editor"
]
"Enabled": true
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,69 @@
#include <HsFFI.h>
typedef enum ExtCallType {
CheekyPadding,
ExtCallSendMEOS,
ExtCallToggleDatentComplete,
ExtCallToggleEditingTakingPlace,
ExtCallReset,
ExtCallProceed
} ExtCallType;
typedef enum BeamType {
BTCheekyPadding,
BeamTypeXRay,
BeamTypeElectron,
BeamTypeUndefined
} BeamType;
typedef enum CollimatorPosition {
CPCheekyPadding,
CollimatorPositionXRay,
CollimatorPositionElectronBeam,
CollimatorPositionUndefined
} CollimatorPosition;
typedef enum StateInfoRequest {
SIRCheekyPadding,
RequestTreatmentOutcome,
RequestActiveSubsystem,
RequestTreatmentState,
RequestReason,
RequestBeamMode,
RequestBeamEnergy
} StateInfoRequest;
#ifdef __cplusplus
extern "C" { // only need to export C interface if
// used by C++ source code
#endif
#if mingw32_HOST_OS || _WIN32
__declspec(dllexport) HsStablePtr start_machine();
__declspec(dllexport) void kill_machine();
__declspec(dllexport) void wrap_external_call(
HsStablePtr wrapped_comms,
ExtCallType ext_call_type,
BeamType beam_type,
CollimatorPosition collimator_position,
HsInt beam_energy
);
__declspec(dllexport) HsPtr request_state_info(
HsStablePtr wrapped_comms,
StateInfoRequest state_info_request
);
#else
HsStablePtr start_machine();
void kill_machine();
void wrap_external_call(
HsStablePtr wrapped_comms,
ExtCallType ext_call_type,
BeamType beam_type,
CollimatorPosition collimator_position,
HsInt beam_energy
);
HsPtr request_state_info(
HsStablePtr wrapped_comms,
StateInfoRequest state_info_request
);
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,113 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "TheracAdapterComponent.h"
#include "HAL/PlatformProcess.h"
#include "Interfaces/IPluginManager.h"
#include "Misc/Paths.h"
#include <Internationalization/Internationalization.h>
#include <Internationalization/Text.h>
#include <Misc/MessageDialog.h>
#include <map>
#include <Logging/StructuredLog.h>
// Sets default values for this component's properties
UTheracAdapterComponent::UTheracAdapterComponent() {
// Set this component to be initialized when the game starts, and to be ticked
// every frame. You can turn these features off to improve performance if you
// don't need them.
PrimaryComponentTick.bCanEverTick = true;
// ...
}
void UTheracAdapterComponent::UpdateSimulator(
ExtCallType ect,
HsStablePtr wrapped_comms,
BeamType beam_type,
CollimatorPosition collimator_position,
HsInt beam_energy
) {
if (wrapped_comms == nullptr)
wrapped_comms = wrappedComms;
wrap_external_call(
wrapped_comms,
ect,
beam_type,
collimator_position,
beam_energy
);
}
void UTheracAdapterComponent::WrapSimulatorCall(
EExtCallType ext_call_type,
EBeamType beam_type,
ECollimatorPosition collimator_position,
int32 beam_energy
) {}
// Called when the game starts
void UTheracAdapterComponent::BeginPlay() {
FString BaseDir =
IPluginManager::Get().FindPlugin("hstherac25")->GetBaseDir();
FString LibraryPath =
FPaths::Combine(*BaseDir, TEXT("Source/hstherac-hs/hstherac25.dll"));
simulatorLibraryHandle = !LibraryPath.IsEmpty()
? FPlatformProcess::GetDllHandle(*LibraryPath)
: nullptr;
Super::BeginPlay();
wrappedComms = start_machine();
std::map<FText *, StateInfoRequest> hng = {
{&TreatmentOutcome, RequestTreatmentOutcome},
{&ActiveSubsystem, RequestActiveSubsystem},
{&TreatmentState, RequestTreatmentState},
{&Reason, RequestReason},
{&BeamMode, RequestBeamMode},
{&BeamEnergy, RequestBeamEnergy}
};
for (auto & [hnng, hnnng] : hng) {
compMap.Add(hnng, hnnng);
}
ExtCallTypeMap.Add("R", EExtCallType::ExtCallReset);
ExtCallTypeMap.Add("P", EExtCallType::ExtCallProceed);
BeamTypeMap.Add("X", EBeamType::BeamTypeXRay);
BeamTypeMap.Add("E", EBeamType::BeamTypeElectron);
CollimatorPositionMap.Add("X", ECollimatorPosition::CollimatorPositionXRay);
CollimatorPositionMap.Add(
"E",
ECollimatorPosition::CollimatorPositionElectronBeam
);
// ...
}
void UTheracAdapterComponent::shutdownSimulator() {
kill_machine();
FPlatformProcess::FreeDllHandle(simulatorLibraryHandle);
simulatorLibraryHandle = nullptr;
}
// Called every frame
void UTheracAdapterComponent::TickComponent(
float DeltaTime,
ELevelTick TickType,
FActorComponentTickFunction * ThisTickFunction
) {
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
auto rsi = [&](FText * f) {
return FText::FromString(
StaticCast<char *>(request_state_info(wrappedComms, *compMap.Find(f)))
);
};
for (auto & [f, _] : compMap) {
// UE_LOGFMT(LogTemp, Warning, "what {dildo}", rsi(f).ToString());
*f = rsi(f);
}
}

View File

@ -0,0 +1,73 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#include "hstherac25.h"
#include "HAL/PlatformProcess.h"
#include "Interfaces/IPluginManager.h"
#include "Misc/MessageDialog.h"
#include "Misc/Paths.h"
#include "Modules/ModuleManager.h"
#include "Therac.h"
#define LOCTEXT_NAMESPACE "Fhstherac25Module"
void Fhstherac25Module::StartupModule() {
// This code will execute after your module is loaded into memory; the exact
// timing is specified in the .uplugin file per-module
/*
// Get the base directory of this plugin
FString BaseDir =
IPluginManager::Get().FindPlugin("hstherac25")->GetBaseDir();
// Add on the relative location of the third party dll and load it
/ FString LibraryPath;
#if PLATFORM_WINDOWS
LibraryPath = FPaths::Combine(*BaseDir, TEXT("Source/hstherac-hs/HSdll.dll"));
#elif PLATFORM_MAC
LibraryPath = FPaths::Combine(
*BaseDir,
TEXT("Source/ThirdParty/hstherac25Library/Mac/Release/"
"libExampleLibrary.dylib")
);
#elif PLATFORM_LINUX
LibraryPath = FPaths::Combine(
*BaseDir,
TEXT("Binaries/ThirdParty/hstherac25Library/Linux/"
"x86_64-unknown-linux-gnu/libExampleLibrary.so")
);
#endif // PLATFORM_WINDOWS
simulatorLibraryHandle = !LibraryPath.IsEmpty()
? FPlatformProcess::GetDllHandle(*LibraryPath)
: nullptr;
if (simulatorLibraryHandle) {
// Call the test function in the third party library that opens a message
// box
// ExampleLibraryFunction();
// HsStablePtr wc = start_machine();
} else {
FMessageDialog::Open(
EAppMsgType::Ok,
LOCTEXT(
"ThirdPartyLibraryError",
"Failed to load example third party library"
)
);
}
*/
}
void Fhstherac25Module::ShutdownModule() {
// This function may be called during shutdown to clean up your module. For
// modules that support dynamic reloading, we call this function before
// unloading the module.
// Free the dll handle
// FPlatformProcess::FreeDllHandle(simulatorLibraryHandle);
// simulatorLibraryHandle = nullptr;
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(Fhstherac25Module, hstherac25)

View File

@ -0,0 +1,112 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "Components/ActorComponent.h"
#include "CoreMinimal.h"
#include <HsFFI.h>
// #include
// <hstherac-hs/dist-newstyle/build/x86_64-windows/ghc-9.6.7/hstherac25-0.1.0.0/build/HsTherac25_stub.h>
#include <Therac.h>
#include <Internationalization/Text.h>
#include "TheracAdapterComponent.generated.h"
UENUM()
enum class EBeamType : uint8 {
BeamTypeXRay = 1,
BeamTypeElectron,
};
UENUM()
enum class ECollimatorPosition : uint8 {
CollimatorPositionXRay = 1,
CollimatorPositionElectronBeam,
};
UENUM()
enum class EExtCallType : uint8 {
ExtCallSendMEOS = 1,
ExtCallToggleDatentComplete,
ExtCallToggleEditingTakingPlace,
ExtCallReset,
ExtCallProceed
};
UCLASS(
BlueprintType,
ClassGroup = (Custom),
meta = (BlueprintSpawnableComponent)
)
class HSTHERAC25_API UTheracAdapterComponent : public UActorComponent {
GENERATED_BODY()
HsStablePtr wrappedComms;
TMap<FText *, StateInfoRequest> compMap;
void * simulatorLibraryHandle;
void UpdateSimulator(
ExtCallType ect,
HsStablePtr wrapped_comms = nullptr,
BeamType beam_type = BeamTypeUndefined,
CollimatorPosition collimator_position = CollimatorPositionUndefined,
HsInt beam_energy = 25000
);
public:
// Sets default values for this component's properties
UTheracAdapterComponent();
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
FText TreatmentOutcome;
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
FText ActiveSubsystem;
// TPhase
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
FText TreatmentState;
// TreatmentOutcome
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
FText Reason;
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
FText BeamMode;
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
FText BeamEnergy;
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
TMap<FString, EBeamType> BeamTypeMap;
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
TMap<FString, EExtCallType> ExtCallTypeMap;
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
TMap<FString, ECollimatorPosition> CollimatorPositionMap;
UFUNCTION(BlueprintCallable)
void WrapSimulatorCall(
EExtCallType ext_call_type,
EBeamType beam_type = EBeamType::BeamTypeXRay,
ECollimatorPosition collimator_position =
ECollimatorPosition::CollimatorPositionXRay,
int32 beam_energy = 25000
);
protected:
// Called when the game starts
virtual void BeginPlay() override;
void shutdownSimulator();
public:
// Called every frame
virtual void TickComponent(
float DeltaTime,
ELevelTick TickType,
FActorComponentTickFunction * ThisTickFunction
) override;
};

View File

@ -0,0 +1,16 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Modules/ModuleManager.h"
class Fhstherac25Module : public IModuleInterface {
public:
/** IModuleInterface implementation */
virtual void StartupModule() override;
virtual void ShutdownModule() override;
private:
/** Handle to the test dll we will load */
// void * simulatorLibraryHandle;
};

View File

@ -0,0 +1,69 @@
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.IO;
public class hstherac25 : ModuleRules
{
public hstherac25(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicIncludePaths.AddRange(
new string[] {
// ... add public include paths required here ...
"C:/ghcup/ghc/9.6.7/include",
}
);
PrivateIncludePaths.AddRange(
new string[] {
"C:/ghcup/ghc/9.6.7/include",
// "C:/ghcup/ghc/9.6.7/include",
// "${workspaceFolder}/Plugins/hstherac25/Source/hstherac-hs/csrc",
// Path.Combine(ModuleDirectory,"../hstherac-hs/dist-newstyle/build/x86_64-windows/ghc-9.6.7/hstherac25-0.1.0.0/build"),
// ... add other private include paths required here ...
}
);
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"MathCore",
"Projects",
"CoreUObject",
"Engine",
"UMG",
"AudioMixerCore",
"InputCore"
// ... add other public dependencies that you statically link with here ...
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
"Slate", "SlateCore"
// ... add private dependencies that you statically link with here ...
}
);
DynamicallyLoadedModuleNames.AddRange(
new string[]
{
// ... add any modules that your module loads dynamically here ...
}
);
PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "../hstherac-hs", "hstherac25.dll.a"));
RuntimeDependencies.Add(Path.Combine(ModuleDirectory, "../hstherac-hs/hstherac25.dll"));
}
}

View File

@ -0,0 +1,24 @@
{
"FileVersion": 3,
"Version": 1,
"VersionName": "1.0",
"FriendlyName": "hstherac25",
"Description": "",
"Category": "Other",
"CreatedBy": "",
"CreatedByURL": "",
"DocsURL": "",
"MarketplaceURL": "",
"SupportURL": "",
"CanContainContent": true,
"IsBetaVersion": false,
"IsExperimentalVersion": false,
"Installed": false,
"Modules": [
{
"Name": "hstherac25",
"Type": "Runtime",
"LoadingPhase": "Default"
}
]
}

View File

@ -1,15 +1,14 @@
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
using System.Collections.Generic;
public class MyProjectTarget : TargetRules
{
public MyProjectTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V5;
public MyProjectTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V5;
ExtraModuleNames.AddRange( new string[] { "MyProject" } );
}
ExtraModuleNames.AddRange(new string[] { "MyProject", "hstherac25" });
}
}

View File

@ -4,20 +4,20 @@ using UnrealBuildTool;
public class MyProject : ModuleRules
{
public MyProject(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
public MyProject(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PrivateDependencyModuleNames.AddRange(new string[] { });
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG" });
// Uncomment if you are using Slate UI
// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
// Uncomment if you are using online features
// PrivateDependencyModuleNames.Add("OnlineSubsystem");
PrivateDependencyModuleNames.AddRange(new string[] { });
// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
}
// Uncomment if you are using Slate UI
PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore", "hstherac25" });
// Uncomment if you are using online features
// PrivateDependencyModuleNames.Add("OnlineSubsystem");
// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
}
}

View File

@ -15,4 +15,11 @@ void UMagicFloatInput::HandleOnTextCommitted(
x = FCString::Atod(*inText.ToString());
SetText(FText::FromString(FString::Printf(TEXT("%.7f"), x)));
if (myVerifier != nullptr) {
if (sourceInput->GetText().EqualTo(GetText())) {
myVerifier->SetText(FText::FromString("VERIFIED"));
} else {
myVerifier->SetText(FText());
}
}
}

View File

@ -6,5 +6,32 @@ void UModeInputTextBox::HandleOnTextChanged(FText const & inText) {
auto & s = inText.ToString();
auto lastChar = s.LeftChop(1);
lastChar.ToUpperInline();
if (!lastChar.IsEmpty()) {
switch (myTarget) {
case THSModeTarget::Energy:
switch (lastChar[0]) {
case 'E':
break;
case 'X':
break;
default:
break;
}
break;
case THSModeTarget::OpMode:
switch (lastChar[0]) {
case 'T':
break;
case 'R':
break;
case 'P':
break;
}
break;
default:
break;
}
}
SetText(FText::FromString(lastChar));
}

View File

@ -16,7 +16,7 @@ void UMyUserWidget::NativeOnInitialized() {
CR_TextBlock,
ColX_TextBlock,
ColY_TextBlock,
WR_TextBlock,
WN_TextBlock,
AN_TextBlock
};
for (auto * n : arcaneNumbers) {

View File

@ -1,7 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "TheracAdapter.h"
TheracAdapter::TheracAdapter() {}
TheracAdapter::~TheracAdapter() {}

View File

@ -1,5 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "VerifierTextBlock.h"

View File

@ -22,4 +22,7 @@ class MYPROJECT_API UMagicFloatInput : public UEditableTextBox {
UPROPERTY(EditAnywhere)
UTextBlock * sourceInput;
UPROPERTY(EditAnywhere)
UTextBlock * myVerifier;
};

View File

@ -6,6 +6,12 @@
#include "CoreMinimal.h"
#include "ModeInputTextBox.generated.h"
UENUM()
enum class THSModeTarget : uint8 {
Energy,
OpMode
};
/**
*
*/
@ -14,5 +20,8 @@ class MYPROJECT_API UModeInputTextBox : public UEditableTextBox {
GENERATED_BODY()
UPROPERTY(EditAnywhere)
THSModeTarget myTarget;
void HandleOnTextChanged(FText const & inText) override;
};

View File

@ -40,10 +40,10 @@ class MYPROJECT_API UMyUserWidget : public UUserWidget {
UTextBlock * ColY_TextBlock;
UPROPERTY(meta = (BindWidget))
UTextBlock * WR_TextBlock;
UTextBlock * WN_TextBlock;
UPROPERTY(meta = (BindWidget))
UTextBlock * AN_TextBlock;
void NativeOnInitialized() override;
void NativeOnInitialized() override;
};

View File

@ -1,15 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
/**
*
*/
class MYPROJECT_API TheracAdapter
{
public:
TheracAdapter();
~TheracAdapter();
};

View File

@ -1,17 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Components/TextBlock.h"
#include "VerifierTextBlock.generated.h"
/**
*
*/
UCLASS()
class MYPROJECT_API UVerifierTextBlock : public UTextBlock
{
GENERATED_BODY()
};

View File

@ -1,15 +1,14 @@
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
using System.Collections.Generic;
public class MyProjectEditorTarget : TargetRules
{
public MyProjectEditorTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.V5;
public MyProjectEditorTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.V5;
ExtraModuleNames.AddRange( new string[] { "MyProject" } );
}
ExtraModuleNames.AddRange(new string[] { "MyProject", "hstherac25" });
}
}

8
shadertoolsconfig.json Normal file
View File

@ -0,0 +1,8 @@
{
"hlsl.preprocessorDefinitions": {
},
" hlsl.additionalIncludeDirectories": [
],
"hlsl.virtualDirectoryMappings": {
}
}