Compare commits
16 Commits
61b95d1c56
...
master
Author | SHA1 | Date | |
---|---|---|---|
1b44322325 | |||
1ae087703d | |||
042fa652b7 | |||
68dbce9607 | |||
3b36a1f6a7 | |||
2c987be672 | |||
916d188d5b | |||
8e1b4928a9 | |||
a28e6869f0 | |||
4045ee4707 | |||
c7d7856634 | |||
38df8d5e81 | |||
d582b938fa | |||
c3b9b82935 | |||
51323c9b92 | |||
38a2733ad2 |
26
.clang-format
Normal file
26
.clang-format
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
BasedOnStyle: LLVM
|
||||
AlignAfterOpenBracket: BlockIndent
|
||||
AlignConsecutiveAssignments:
|
||||
Enabled: true
|
||||
AcrossEmptyLines: true
|
||||
AcrossComments: true
|
||||
AlignCompound: true
|
||||
PadOperators: false
|
||||
AlignEscapedNewlines: Left
|
||||
AllowAllArgumentsOnNextLine: false
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortBlocksOnASingleLine: Always
|
||||
AllowShortEnumsOnASingleLine: false
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
InsertNewlineAtEOF: true
|
||||
KeepEmptyLinesAtEOF: true
|
||||
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||
PackConstructorInitializers: Never
|
||||
PointerAlignment: Middle
|
||||
QualifierAlignment: Right
|
||||
ShortNamespaceLines: 0
|
||||
SortIncludes: Never
|
13
.clang-tidy
Normal file
13
.clang-tidy
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
Checks: "*
|
||||
,-llvmlibc*
|
||||
,-*readability-braces-around-statements
|
||||
,-hicpp-braces-around-statements
|
||||
,-readability-identifier-length
|
||||
,-fuchsia-default-arguments*
|
||||
,-*-non-private-member-variables-in-classes
|
||||
,-fuchsia-trailing-return
|
||||
,-altera-unroll-loops"
|
||||
WarningsAsErrors: ''
|
||||
HeaderFilterRegex: ''
|
||||
FormatStyle: file
|
91
.editorconfig
Normal file
91
.editorconfig
Normal 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 =
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,3 +12,4 @@ Saved
|
||||
*.suo
|
||||
*.xcodeproj
|
||||
*.xcworkspace
|
||||
.cache
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "Plugins/hstherac25/Source/hstherac-hs"]
|
||||
path = Plugins/hstherac25/Source/hstherac-hs
|
||||
url = git@github.com:pillowtrucker/hstherac25.git
|
3
.ignore
3
.ignore
@ -1,6 +1,9 @@
|
||||
/.cache
|
||||
/.git
|
||||
/.vscode
|
||||
/Content
|
||||
/DerivedDataCache
|
||||
/Intermediate
|
||||
/Saved
|
||||
/Plugins/hstherac25/Content
|
||||
/Plugins/hstherac25/Intermediate
|
||||
|
15
.vsconfig
Normal file
15
.vsconfig
Normal 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/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
(Stored with Git LFS)
BIN
Content/FirstPerson/Blueprints/BP_FirstPersonCharacter.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/FirstPerson/Blueprints/InteractInterface.uasset
(Stored with Git LFS)
Normal file
BIN
Content/FirstPerson/Blueprints/InteractInterface.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/LinacLab/MyMyUserWidget.uasset
(Stored with Git LFS)
BIN
Content/LinacLab/MyMyUserWidget.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/LinacLab/vt100_Blueprint.uasset
(Stored with Git LFS)
BIN
Content/LinacLab/vt100_Blueprint.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/4/WJ/ZO5YPDSQ83WFH5A5AA6TXE.uasset
(Stored with Git LFS)
BIN
Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/4/WJ/ZO5YPDSQ83WFH5A5AA6TXE.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/5/LP/XAMT9TY97Y43GQC2BE17H1.uasset
(Stored with Git LFS)
BIN
Content/__ExternalActors__/FirstPerson/Maps/FirstPersonMap/5/LP/XAMT9TY97Y43GQC2BE17H1.uasset
(Stored with Git LFS)
Binary file not shown.
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -7,20 +7,13 @@
|
||||
{
|
||||
"Name": "MyProject",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default",
|
||||
"AdditionalDependencies": [
|
||||
"UMG",
|
||||
"Engine"
|
||||
]
|
||||
"LoadingPhase": "Default"
|
||||
}
|
||||
],
|
||||
"Plugins": [
|
||||
{
|
||||
"Name": "ModelingToolsEditorMode",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
"Enabled": true
|
||||
}
|
||||
]
|
||||
}
|
BIN
Plugins/hstherac25/Resources/Icon128.png
Normal file
BIN
Plugins/hstherac25/Resources/Icon128.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
1
Plugins/hstherac25/Source/hstherac-hs
Submodule
1
Plugins/hstherac25/Source/hstherac-hs
Submodule
Submodule Plugins/hstherac25/Source/hstherac-hs added at 2d690cf0fe
69
Plugins/hstherac25/Source/hstherac25/Private/Therac.h
Normal file
69
Plugins/hstherac25/Source/hstherac25/Private/Therac.h
Normal file
@ -0,0 +1,69 @@
|
||||
#pragma once
|
||||
#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
|
@ -0,0 +1,91 @@
|
||||
// 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 <Therac.h>
|
||||
#include <map>
|
||||
#include <Logging/StructuredLog.h>
|
||||
|
||||
#define LOCTEXT_NAMESPACE "TheracAdapter"
|
||||
|
||||
// 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
|
||||
);
|
||||
}
|
||||
|
||||
// Called when the game starts
|
||||
void UTheracAdapterComponent::BeginPlay() {
|
||||
/*
|
||||
FString BaseDir =
|
||||
IPluginManager::Get().FindPlugin("hstherac25")->GetBaseDir();
|
||||
FString LibraryPath =
|
||||
FPaths::Combine(*BaseDir, TEXT("Source/hstherac-hs/HSdll.dll"));
|
||||
|
||||
auto 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);
|
||||
}
|
||||
// ...
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
72
Plugins/hstherac25/Source/hstherac25/Private/hstherac25.cpp
Normal file
72
Plugins/hstherac25/Source/hstherac25/Private/hstherac25.cpp
Normal file
@ -0,0 +1,72 @@
|
||||
// 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)
|
@ -0,0 +1,68 @@
|
||||
// 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 <Therac.h>
|
||||
#include <Internationalization/Text.h>
|
||||
#include "TheracAdapterComponent.generated.h"
|
||||
|
||||
UCLASS(
|
||||
BlueprintType,
|
||||
ClassGroup = (Custom),
|
||||
meta = (BlueprintSpawnableComponent)
|
||||
)
|
||||
class HSTHERAC25_API UTheracAdapterComponent : public UActorComponent {
|
||||
|
||||
GENERATED_BODY()
|
||||
|
||||
HsStablePtr wrappedComms;
|
||||
|
||||
TMap<FText *, StateInfoRequest> compMap;
|
||||
|
||||
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;
|
||||
|
||||
void UpdateSimulator(
|
||||
ExtCallType ect,
|
||||
HsStablePtr wrapped_comms = nullptr,
|
||||
BeamType beam_type = BeamTypeUndefined,
|
||||
CollimatorPosition collimator_position = CollimatorPositionUndefined,
|
||||
HsInt beam_energy = 25000
|
||||
);
|
||||
|
||||
protected:
|
||||
// Called when the game starts
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
public:
|
||||
// Called every frame
|
||||
virtual void TickComponent(
|
||||
float DeltaTime,
|
||||
ELevelTick TickType,
|
||||
FActorComponentTickFunction * ThisTickFunction
|
||||
) override;
|
||||
};
|
16
Plugins/hstherac25/Source/hstherac25/Public/hstherac25.h
Normal file
16
Plugins/hstherac25/Source/hstherac25/Public/hstherac25.h
Normal 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;
|
||||
};
|
69
Plugins/hstherac25/Source/hstherac25/hstherac25.Build.cs
Normal file
69
Plugins/hstherac25/Source/hstherac25/hstherac25.Build.cs
Normal 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",
|
||||
// "${workspaceFolder}/Plugins/hstherac25/Source/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", "HSdll.dll.a"));
|
||||
RuntimeDependencies.Add(Path.Combine(PluginDirectory, "Source/hstherac-hs/HSdll.dll"));
|
||||
}
|
||||
}
|
24
Plugins/hstherac25/hstherac25.uplugin
Normal file
24
Plugins/hstherac25/hstherac25.uplugin
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
@ -8,12 +8,12 @@ public class MyProject : ModuleRules
|
||||
{
|
||||
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||
|
||||
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
|
||||
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG" });
|
||||
|
||||
PrivateDependencyModuleNames.AddRange(new string[] { });
|
||||
|
||||
// Uncomment if you are using Slate UI
|
||||
// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
|
||||
PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
|
||||
|
||||
// Uncomment if you are using online features
|
||||
// PrivateDependencyModuleNames.Add("OnlineSubsystem");
|
||||
|
25
Source/MyProject/Private/MagicFloatInput.cpp
Normal file
25
Source/MyProject/Private/MagicFloatInput.cpp
Normal file
@ -0,0 +1,25 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "MagicFloatInput.h"
|
||||
|
||||
void UMagicFloatInput::HandleOnTextCommitted(
|
||||
FText const & inText,
|
||||
ETextCommit::Type inCommitMethod
|
||||
) {
|
||||
double x = 0.0;
|
||||
if (inText.IsEmptyOrWhitespace()) {
|
||||
if (sourceInput != nullptr) {
|
||||
x = FCString::Atod(*sourceInput->GetText().ToString());
|
||||
}
|
||||
} else
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
@ -1,12 +1,37 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "ModeInputTextBox.h"
|
||||
|
||||
void UModeInputTextBox::HandleOnTextChanged(const FText& inText) {
|
||||
|
||||
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));
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "MyPlayerState.h"
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "MyUserWidget.h"
|
||||
#include <MyPlayerState.h>
|
||||
|
||||
@ -9,5 +8,19 @@ void UMyUserWidget::NativeOnInitialized() {
|
||||
if (ps == nullptr)
|
||||
return;
|
||||
opIdTextBlock->SetText(FText::FromString(ps->GetPlayerName()));
|
||||
|
||||
UTextBlock * arcaneNumbers[9] = {
|
||||
URM_TextBlock,
|
||||
MU_TextBlock,
|
||||
Time_TextBlock,
|
||||
GR_TextBlock,
|
||||
CR_TextBlock,
|
||||
ColX_TextBlock,
|
||||
ColY_TextBlock,
|
||||
WR_TextBlock,
|
||||
AN_TextBlock
|
||||
};
|
||||
for (auto * n : arcaneNumbers) {
|
||||
auto x = FCString::Atod(*n->GetText().ToString());
|
||||
n->SetText(FText::FromString(FString::Printf(TEXT("%.7f"), x)));
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "TheracAdapter.h"
|
||||
|
||||
TheracAdapter::TheracAdapter()
|
||||
{
|
||||
}
|
||||
|
||||
TheracAdapter::~TheracAdapter()
|
||||
{
|
||||
}
|
28
Source/MyProject/Public/MagicFloatInput.h
Normal file
28
Source/MyProject/Public/MagicFloatInput.h
Normal file
@ -0,0 +1,28 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Components/EditableTextBox.h"
|
||||
#include "CoreMinimal.h"
|
||||
#include <Components/TextBlock.h>
|
||||
#include "MagicFloatInput.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class MYPROJECT_API UMagicFloatInput : public UEditableTextBox {
|
||||
|
||||
GENERATED_BODY()
|
||||
|
||||
void HandleOnTextCommitted(
|
||||
FText const & Text,
|
||||
ETextCommit::Type CommitMethod
|
||||
) override;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
UTextBlock * sourceInput;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
UTextBlock * myVerifier;
|
||||
};
|
@ -2,17 +2,26 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Components/EditableTextBox.h"
|
||||
#include "CoreMinimal.h"
|
||||
#include "ModeInputTextBox.generated.h"
|
||||
|
||||
UENUM()
|
||||
enum class THSModeTarget : uint8 {
|
||||
Energy,
|
||||
OpMode
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class MYPROJECT_API UModeInputTextBox : public UEditableTextBox
|
||||
{
|
||||
class MYPROJECT_API UModeInputTextBox : public UEditableTextBox {
|
||||
|
||||
GENERATED_BODY()
|
||||
|
||||
void HandleOnTextChanged(const FText& inText) override;
|
||||
UPROPERTY(EditAnywhere)
|
||||
THSModeTarget myTarget;
|
||||
|
||||
void HandleOnTextChanged(FText const & inText) override;
|
||||
};
|
||||
|
@ -10,8 +10,7 @@
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class MYPROJECT_API AMyPlayerState : public APlayerState
|
||||
{
|
||||
GENERATED_BODY()
|
||||
class MYPROJECT_API AMyPlayerState : public APlayerState {
|
||||
|
||||
GENERATED_BODY()
|
||||
};
|
||||
|
@ -2,22 +2,48 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "CoreMinimal.h"
|
||||
#include <Components/TextBlock.h>
|
||||
#include "MyUserWidget.generated.h"
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class MYPROJECT_API UMyUserWidget : public UUserWidget
|
||||
{
|
||||
class MYPROJECT_API UMyUserWidget : public UUserWidget {
|
||||
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * opIdTextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * URM_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * MU_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * Time_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * GR_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * CR_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * ColX_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * ColY_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * WR_TextBlock;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock * AN_TextBlock;
|
||||
|
||||
void NativeOnInitialized() override;
|
||||
};
|
||||
|
@ -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();
|
||||
};
|
8
shadertoolsconfig.json
Normal file
8
shadertoolsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"hlsl.preprocessorDefinitions": {
|
||||
},
|
||||
" hlsl.additionalIncludeDirectories": [
|
||||
],
|
||||
"hlsl.virtualDirectoryMappings": {
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user