From 3b36a1f6a7f84db28156f6c4356bbc380ccf2b88 Mon Sep 17 00:00:00 2001 From: wonkyhonky2024 Date: Sat, 10 May 2025 21:31:54 +0100 Subject: [PATCH] okey-dokey --- .ignore | 2 + Plugins/hstherac25/Resources/Icon128.png | Bin 0 -> 12699 bytes .../hstherac25Library/ExampleLibrary.cpp | 20 +++ .../hstherac25Library/ExampleLibrary.vcxproj | 158 ++++++++++++++++++ .../ExampleLibrary.vcxproj.filters | 9 + .../Mac/Release/libExampleLibrary.dylib | Bin 0 -> 18672 bytes .../Public/hstherac25Library/ExampleLibrary.h | 9 + .../hstherac25Library.Build.cs | 37 ++++ .../hstherac25Library/hstherac25Library.tps | 6 + .../x64/Release/ExampleLibrary.dll | Bin 0 -> 32536 bytes .../x64/Release/ExampleLibrary.lib | Bin 0 -> 1976 bytes .../Source/hstherac25/Private/hstherac25.cpp | 55 ++++++ .../Source/hstherac25/Public/hstherac25.h | 18 ++ .../Source/hstherac25/hstherac25.Build.cs | 51 ++++++ Plugins/hstherac25/hstherac25.uplugin | 24 +++ Source/MyProject/Private/ModeInputTextBox.cpp | 27 +++ .../MyProject/Private/TheracSimComponent.cpp | 34 ++++ Source/MyProject/Public/ModeInputTextBox.h | 9 + Source/MyProject/Public/TheracSimComponent.h | 28 ++++ 19 files changed, 487 insertions(+) create mode 100644 Plugins/hstherac25/Resources/Icon128.png create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.cpp create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj.filters create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Mac/Release/libExampleLibrary.dylib create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Public/hstherac25Library/ExampleLibrary.h create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.Build.cs create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.tps create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/x64/Release/ExampleLibrary.dll create mode 100644 Plugins/hstherac25/Source/ThirdParty/hstherac25Library/x64/Release/ExampleLibrary.lib create mode 100644 Plugins/hstherac25/Source/hstherac25/Private/hstherac25.cpp create mode 100644 Plugins/hstherac25/Source/hstherac25/Public/hstherac25.h create mode 100644 Plugins/hstherac25/Source/hstherac25/hstherac25.Build.cs create mode 100644 Plugins/hstherac25/hstherac25.uplugin create mode 100644 Source/MyProject/Private/TheracSimComponent.cpp create mode 100644 Source/MyProject/Public/TheracSimComponent.h diff --git a/.ignore b/.ignore index b1407d9..69ea373 100644 --- a/.ignore +++ b/.ignore @@ -5,3 +5,5 @@ /DerivedDataCache /Intermediate /Saved +/Plugins/hstherac25/Content +/Plugins/hstherac25/Intermediate diff --git a/Plugins/hstherac25/Resources/Icon128.png b/Plugins/hstherac25/Resources/Icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..1231d4aad4d0d462fb7b178eb5b30aa61a10df0b GIT binary patch literal 12699 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 a;7#~yJh_ha>A&A^fRdb=Y>l)<=>Gxy=2LS3 literal 0 HcmV?d00001 diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.cpp b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.cpp new file mode 100644 index 0000000..2de2f64 --- /dev/null +++ b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.cpp @@ -0,0 +1,20 @@ +#if defined _WIN32 || defined _WIN64 + #include + + #define EXAMPLELIBRARY_EXPORT __declspec(dllexport) +#else + #include +#endif + +#ifndef EXAMPLELIBRARY_EXPORT + #define EXAMPLELIBRARY_EXPORT +#endif + +EXAMPLELIBRARY_EXPORT void ExampleLibraryFunction() +{ +#if defined _WIN32 || defined _WIN64 + MessageBox(NULL, TEXT("Loaded ExampleLibrary.dll from Third Party Plugin sample."), TEXT("Third Party Plugin"), MB_OK); +#else + printf("Loaded ExampleLibrary from Third Party Plugin sample"); +#endif +} \ No newline at end of file diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj new file mode 100644 index 0000000..432f9dc --- /dev/null +++ b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj @@ -0,0 +1,158 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9B50F1F8-0116-442C-A071-F5C3A120A5CB} + Win32Proj + ExampleLibrary + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + $(SolutionDir)$(Platform)\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;EXAMPLELIBRARY_EXPORTS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;EXAMPLELIBRARY_EXPORTS;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;EXAMPLELIBRARY_EXPORTS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;EXAMPLELIBRARY_EXPORTS;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + + + copy "$(TargetPath)" "$(SolutionDir)..\..\..\Binaries\ThirdParty\hstherac25Library\Win64\" + + + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj.filters b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj.filters new file mode 100644 index 0000000..29d3ce7 --- /dev/null +++ b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/ExampleLibrary.vcxproj.filters @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Mac/Release/libExampleLibrary.dylib b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Mac/Release/libExampleLibrary.dylib new file mode 100644 index 0000000000000000000000000000000000000000..88165a937a48822899b782c30e0869b9b4cb30f5 GIT binary patch literal 18672 zcmeI2eQXp(6u{?7sRgQ3sNu8ZpnQm>T{y2Fd^EO&!xl;@?KKchS?+H4xT|{~?CsGW ziq@F&A)+;yfGI(cNE(EQ5zs`5#Aq5w3qG+qvX!-=68~eeeWhmLZI>3@9U^bfq)a&a$D!*f=P^SQryUr(=~0=#!POtb$i+ybd03Jdc2OT7NWX3|OBhqN)DiTJDn??;wwt#m7zC z44D)gIz=%WZ1D#r(I51NbUXQee8uBc@c?M2#xP@}#`}5|iYP9sa8_Us7xR8TLgRhK zvtq^;#h@ZaVgYwZ5yP7L$arQrJXSd06y%?HUqn%H4Hhq(2g>9D&`ykJuFs5*`$Q(9 zSW{iQ)Ul}AJi}J*F`H{{-+I=tF;3#To&>uT%GmyX9JR1=HSE%Sg5q~OT3vy#BG>rc zs!NR(N-^kTYzkv-`X#K4;hHl+V+>QQR;GW`W`o8{BUc<>1NI2e*2#?h2A9Hi9TXHj z4ru6R!=RY=0-6IP8|K5;d4NoS9=y(sA5VQY{jjb1%li7vD|heTnF@V?6fQViFVC4a z_JQDe#r@!1{koP`XjzyLji^Wgizh$7a1IB6{-p{2mf@#iIm!MFv4|!I3M)-!;LfH) z!F8;%8vC8e?KNPd>Y5g-CYfCvx)B0vO)01+Sp z|9=8cPtIO}yBJjt2}?;&s*7&OGeZ)5#X8o()@6?>7sHUq*1TYWSVZw9n=Lunxi}j1 zX#P-eJ+lsBcPF8nQ5!izd|qM77HA~eonU*1SlH4NvsR)HKG!IO%FO?7hxXJ28^@Asj@2|ID%{aL0PC%qM##!L-K1Om7A4ns0C&VP8m|eE=`UIPM=?u>RhT8 z9U6SJU`nb*)%ivCLsQv1H(do^bf_SXgD$uSi05P?ObwEcx|4rmWSi zyKrd2zYZ>UH_IL^QV%0BRt@c_g&073CH08+-iJX z1qC0K!TGS{gH8usVq}^v4aQ@$v^_8f&(B?!28YKuOJ9S=v^e6oJ_1+U>RykK~!_^4f}B((_QcONwkow%Mg}k+;Mvd5c+H$4777*zn3HJvlwG z&(#NIlKqRY9y6ty7rk?SX#32ZcXNJyecw@a_sKn{9=;os;Cr)k{`}>6GkQ{Z-}=|aV>e&!I=KGqj`9olE{{3hyYlwLA7);dQnqZ#H}~3yo%?C^2j1&* zVB5G~{f(8rizBdYK6ykOuyshtL$86yvNQqDbr?^=V@>-{@SOX(tFCWH`Oytq<43wH zb_T|N+*7qbH^ccxMw2~VIclG2;s#Bt(D+5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+Sp WM1Tko0U|&IhyW2F0z`lauzvuGAs#;f literal 0 HcmV?d00001 diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Public/hstherac25Library/ExampleLibrary.h b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Public/hstherac25Library/ExampleLibrary.h new file mode 100644 index 0000000..15422eb --- /dev/null +++ b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/Public/hstherac25Library/ExampleLibrary.h @@ -0,0 +1,9 @@ +#if defined _WIN32 || defined _WIN64 +#define EXAMPLELIBRARY_IMPORT __declspec(dllimport) +#elif defined __linux__ +#define EXAMPLELIBRARY_IMPORT __attribute__((visibility("default"))) +#else +#define EXAMPLELIBRARY_IMPORT +#endif + +EXAMPLELIBRARY_IMPORT void ExampleLibraryFunction(); diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.Build.cs b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.Build.cs new file mode 100644 index 0000000..e761b74 --- /dev/null +++ b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.Build.cs @@ -0,0 +1,37 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using System.IO; +using UnrealBuildTool; + +public class hstherac25Library : ModuleRules +{ + public hstherac25Library(ReadOnlyTargetRules Target) : base(Target) + { + Type = ModuleType.External; + PublicSystemIncludePaths.Add("$(ModuleDir)/Public"); + + if (Target.Platform == UnrealTargetPlatform.Win64) + { + // Add the import library + PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "x64", "Release", "ExampleLibrary.lib")); + + // Delay-load the DLL, so we can load it from the right place first + PublicDelayLoadDLLs.Add("ExampleLibrary.dll"); + + // Ensure that the DLL is staged along with the executable + RuntimeDependencies.Add("$(PluginDir)/Binaries/ThirdParty/hstherac25Library/Win64/ExampleLibrary.dll"); + } + else if (Target.Platform == UnrealTargetPlatform.Mac) + { + PublicDelayLoadDLLs.Add(Path.Combine(ModuleDirectory, "Mac", "Release", "libExampleLibrary.dylib")); + RuntimeDependencies.Add("$(PluginDir)/Source/ThirdParty/hstherac25Library/Mac/Release/libExampleLibrary.dylib"); + } + else if (Target.Platform == UnrealTargetPlatform.Linux) + { + string ExampleSoPath = Path.Combine("$(PluginDir)", "Binaries", "ThirdParty", "hstherac25Library", "Linux", "x86_64-unknown-linux-gnu", "libExampleLibrary.so"); + PublicAdditionalLibraries.Add(ExampleSoPath); + PublicDelayLoadDLLs.Add(ExampleSoPath); + RuntimeDependencies.Add(ExampleSoPath); + } + } +} diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.tps b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.tps new file mode 100644 index 0000000..5bfce86 --- /dev/null +++ b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/hstherac25Library.tps @@ -0,0 +1,6 @@ + + + +Notes: This is a sample module and not actually third party. + + diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/x64/Release/ExampleLibrary.dll b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/x64/Release/ExampleLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..ccb58d8ef41d51b0f914ca8a222069c3405e8fcc GIT binary patch literal 32536 zcmeHv2Ut^Ev*=Dp=)EXXByu_B5Mv4enu zf+C87*c(9<5eq76-t3Slo^$?t&b#-$|9$UXH{aefYu2nbtIVufi@5q1B76vf5a4CA z5u^?v_SkT~fAhg1h`7pWapbsAyJ{WIrCrr4Dw;-0pvFg1Lt{x{p>c8XbkZUUiOPs0 zMaPjG+&oFK@!=GGF)?8cZq~Cl%AZaBkobo8((<3bNrrH9Uee$gqzx|RgsFp64rC0b z0F2v_G`JFA>W8E^!2qjQuN+*)fr(t0_hu|i=Y&0?!=kV<{@5aSM+6Da2&X8Z{N=My4U%#y%8e!g93TEe zDt$U7nGQ5_arj_W#$IU0_=g0g>r=x+>7fXsgz*7^!zT-H++zbp>yNP^=9pkmctKW( z2E5}Q8w9D>PZ(q5v=Im#KCN*~fCAY@pGu>K0nU*L$cDqG19049!{MXE!~-LUiz6!z zAINn4V}l@e5>jxJn>4Lx#JlTIUR z1&oLRBFhbcL~T8X=FIHCV7~+~x#rYMY-->H7*;#(McSQS|Hz?5B2 zcVk@_g3uQj;Ve}kLF4V9&E$MBBLFOMQ3T1UXXvtm#@I;^FFh8|hsCo*uuQi>rr5By zF=Vf~%IXvVESt@+X2}aePRwp{mN`P#ATwK7Di8&Q%DXTxoyHP4Gp~`Ed@f9}bdDMN4V28JYnYRnX&PjZ1<5wJ@f2i&u-f2T2tC7*i!TTRwOR9- zNn}9!ocfhwV~K4b2^!MKZpkACLIf)Sn#qw2Da-05EF5@-87m%I#uCQbj{`|$X?6k~ zfo6z60Y;rRYp%020sGjk*qikf$65;9%*KI=u}U~$l_+c@Gn>eHek7MX8~HqU=pVA6 zk1wZ#Y@C@x%rDSIIh_oN8FJmq2(nVZsJ?#?ipaNPXMMsYIg*(~1X@o9F$-UI&_J=? z8IWbmErW%H*_{Uz7zo)%feKP%-T{%Z%D%DLKclvcj}n8yHx`w}#xYDGQ$t8*)QKf~ z3nC}ye1uWOy7ZmRhJsf?8Bj1?oX5kKBLFFfO($lt`4~1oO4J`$B3&0!x{jq}2<7|X zU}T~LvOHe4T!R>|4g>r~y;v->5$noi=nWg&;E>=(UcYh1GuC+|XXYp7T{816OcDl> zwH1Wm!o1A9NyY}qk3j(aAJSg{RfqI8o?{cB$EcMpw*`hNnR%5hHwzH9oF6CHa$1Oh zVDpL;05jPIqvg549LjoSerh7fj4fvaG-$oRDQqmZ>%yRap#9hCkq9)bSLQ@1?O2WXP5?!D67TGss!t8s<;~7mX+~6JlMMEtptP=st{? zfCY45?SpP3vE@DrgPbmBvGHj~u+9q!4&e12$(zi4HP!{h76r)sjA6yYX(f7qSu`@} z3?CZ9^Ib_}VHOs4BtbG*RUeVaMt~bR zN|KEl$fwwx2Xaz}fYHyQ$Px|>Abm%y3NTX0SICZ`JhIqq7F8wB*|G;TR;d1 zgP$!I0tNkCiQ7P|=U^>|Q8Ei6U`@#vtA=p@cUV=)`NSiDH~xT-AFB^4L(US^V7(Ya z@KBacBWKNL9fm|8XjKZCNzg>G9%qsT2Z&^g7P_oa{SaB=h*&bFI0g;J*8CdWzz8-U zuzYD_X$4rdupSLeVg*1Lmd%Z0WP)M+fB-8W0yQ{Jfmj+?{HLoi0<362240Oz&+-Kd%L6`K;?KDmgXtQ&hCFwIe#RCvn4|ryHdq8cDxVn9IodSig^O2!P#UT1{ViNFF9 zF~e4#;pL)tQR3u$S#s7zc{1M(iIcYc)4`U~OUThb2%66Gc{|Alc#}wSR1;LLY{V^#d>M z2&Odit%d-MPx}Zf?Jv?^gaM3|{d3unG^#ghm8fuFHaHsfIxstJGlt^mlo;EL;pjMu zvjg)gbI7RGHs2oSDAFNOVVm*Ri4w=iBWO5^+<<%t%+DZr!8|VwQAPkcOKc_Vuh^PH z)@%v#Wnv_@*-A$ct9pJMLf5fc$d5cE;q9P-Jd7DH)TShb-d4ou8|A@Hgpar&tcP1sSS z0n&b)gem-P*big5JLHLV0V;92PgWvp{TQJh2xmafNS^Yku{cFq3UDaVXplXwgWT|h zL>B2FLjy^e89`EOoY~0mWfGadoz)_EnV1R)Hr(@w$$;5@Y$Vamvsy@(iJ=gLUVw-Y zz`$9-*WsYv?O@T(kmuy2@yPNKLo7?o24ZdUluZF(ovee|#dI*LvzjDB8aXNu7C@u= z8N{i;0V)Jr4ml57a}5;C)=cAk<2c_I&i6Fudyws+ALzJv&Bc(3jW_55kk!jIt~S`36Vx9Lt3}&5GKu8@ltNBq zvObZaA3>gSn6=x+t)m$3LgJ;ZiQlv3tg|oO&i3{;uIK)l=gbQzT zAul%v#W8;#52h=Rh0Fc`dHexfIxqZx3c90XWjz}_uV!?A50~8nFUIaN{xuhWaz!3v~BqRdD z@xVnw{z+*hgf=eEKXlWtKFD8c_FoGK{y|PZa#J0Xqa+vppz{zM5Bc}Nbd9n4{IN7a zZvEuBki>;LT!?ZZmX7C}#x~7W@ZQsaS00P`87B%jW*My3gcme4_VCh)0qzHhw?W*t zKg5AQ`!5>;bp|pogb}=aR!3n}qHqIu$IaDe{Q8(1LZp!_2^NN@5^`ViFq~ z9T(^r7YSBbpnD7hAT7`_JenR)wbFFv_@yKzA2!C+B$~^K4xmc}&Ts#(^G`7)mIO66ly53b|3ZQQ!ez1eJmZ z>p$$p>Ih~D;$-jTg8A1IpaVJnd5u`k#xM9!EWku#KfBne{=s)=+?;GF~mqw6t+_cXitOeoQ-0*b3XO4@iM5;XRgJ&QfRc$NQzy2vM=K8>F8l( zsE_pxtiT~5_93(cN?3G6bXZ7KXk2&M zrqK~(77|N|rBML$vG?$v=jH6`Xkd(vrNlwW#=mgH z$5E1_=^^ycMKKfvQA0u~$&@e#of7g(!~`f0<3o_pgy?Cpv}sAvanr)6^l5NQfF2!7 znHFO(&0yMCL%Ika^cefl1Ul5sJ|0{sa7KL(qq)S#FJUC`2C`!uotlCmPq7%EXeyl% z8si-Y*@AMYCwj+?i8S0XIgFBkjr-Z0#>1Hu(UU^|m(e7=6NPTipi-fw?$r1&=ssiz z(F;Tx9S4>GkA$q{bEa_v@zmLrP^_-*R0<6fkOyHtgF;Plr%)r}sj;DPVbBU_C3LUq zpL2H(M>NM#y`rd;&~P9k?=Y%o3XM*Q^#TFe(x3qp3_~<=4$(AB++)mKi^4uMCWeN@ z^Ety180$Pw7Z@^R$PUSY+B#4cF(M-=R9-FTI(p1=bm5IhOKe<)C4fACKmYwD&>lqU zjJU;S^G>mNx(3rPn4TZAmN*C}h|zyP|9vEYg559=Ud*<|_EBZ<9tRwQwP2Si0bU2t z5^So4fMYNgY^t+>V|Sve;e7>o4ZvscN`ei7!CF}a`HH0ls0)sN0??-d?1on!a14&Z zi;VlFl{7D>JxfpQFX2xt^Kd3VXF}oMTF^Ji$7>+^AzI+Ba2F>AhfVBU2 z9~@`z4WdZ@wH&Z-fq?!69S;2wGQ?r~jOBl^I9OUI$HtHnDO4ILUMp<_eN>x7i3^Jl zkB*D9()RY6JSQ_nN8=#5<#e9h zAncS0Ey&3%{@)KWxA= z&G0xv*(}r&oj8snfeP{AkTOCAJ{>_-$E734PW5kXBlHg6&B~M2uX$yYGwoCI^s-Fx z&1fcn4Vp*?dkU3Ka*hi#m;|)~vWSdiQc{wBI7Ed(ls+sL2CAqE7R4tc|09JL zwm4A2NgnZVUD?SPojg&@&;T_yoPly4|A}HorVunYG%}fCGQ%H@{a$&Jf7=zGui(A#5puLJIR~OqoaaDYaVSEs;BJzQk?E=vdU`y zBvzqnvZH?a&Z&>(FDkS(4;DEm*cld#UV5qYjuN%L!qp{HitG{fK=PcdZxBmfhSI$9 zs9Vlda-~nU$?ebj+YTUdH_W~(@Nc}B*78!(@Wqvj@AvNF6Q}P!JfpU1q4ZPM?NcKL zkMC7KlP~LTPc;8=NuF^NM;n&SP0#@yw%YEB75;dFQ#)t z(d);@10Tf?XnkJWb@a2j68eakQ&-Grj{oE(X3m6 zALS;wyk7Ju*l3u=dL_KKhEH$(QPY(3Bh`YF8G9&gXP%PX-zBYA_}=SYF}o$yulPe6 zeu8C|PW6o3SGP`zd3Jnqdci>RU!g^bvU>vN2GK)Zt))XdQVFa_dd^cL2vT)j5)JxoI+YN+-W(I>Z%JCt_k;QXj4^SnNLcKP-;&$cSK9v z*kNuiXAX!7dfKM>Svej1Qu}JHp%A_;#!}Qr3J=o_w<{C30L{dCqtYZcwHBX3q;f~Uhb|LbO?f}hjx!mQ)d}+Ggml?gcb;Z;E)5EI zd8i+0-FLe9kdlNODvqU>!15%(49(@tH)TzNC@Rb^2rB`RD8R>uCh>3_j<5ucMm2b0 z6qhR>MW-jsoIX81jF#}rR77omaN%=JxLjeO*i5DU!Z@8beYmp+o2O33`rtD_?XlXa z5G>J|sCk)bnQ^WmFCS`*(Lc*1235i`ArW9LK?V4Ukr|>mK2(sOA43SZ@zW0$AeeqQ zWTv`2V8Pj$B{zK@;T3j&A{)P(TKj??F|v_*1i5lJ2Gy34-cjhVbMChtyVA6} z%+AgXBFAp(vUYy2eP%+2qx-jQ=W25vC9W`AdR1-2|3KmO4@HZg4v=nixu>iyU9+a4 z_FOqxe#O1+bOotN^6jA|89pCdpCgnHjrGN3;idnt(bw(|2 z=CT_~KHR_N726YpmsPPbO5=O7>F7mO2F>H@?CvIGrHb8i^V{PS&8Fs9D_qm+mp@-9 zP-DMx(`r&?!cg0lH{Wzk0#)+Ny+_Q}Fonvmiu4;Ou=OVe&RF{R{I$mbg0#l|-Hi-&`TN)J{(phVHwP3Y~*aeIC*CsDp_vXaF)ssU> zGB5gctPe^b+C5z@#`be&pj<>-jQEx2+{TYuMxp|9%Wewb7caI!$#aeO%_p6yR?HE6 zvOp~M3ejEfGST;dV7tVo0`gpyewBt7~G)yiu&MY_nyFu+eJgfK8bwj)=1lT|J26f zMZzy4HgB}~{6(aAQozmT>+eySxR(>Q(M}Ydxz|&jS+RlQd@N6(t5GTCNq-qdIWn=O zNxo-2v+(2nRohOjvTNJ+@si@U%`@+O)zcR9n5()mDoUPwBzC0Z&SItpQ@?eF_qqmj znTfQ2T)+GV*{S90x6M9Ro{)QJa66UF=kC=W*Y?HT(BC4#SJ`X!Nf)P!R~o)1UA)&% zdAay_U(J&vJ^eQd4ZZkEpNsol%2S(A?~&7nmw43vIOxNQeavHTdcsB}-cEjJx-|1_ zpY5X>jg%E}yBCN>&1${c9vTo^?XgzfN_of3HKq^zOTI*lrth^iwC<{~mNB5dY^ncL zRr1JWr?A|??xOi8ohi55=Bpe?5U;+qrkI_{tloTMTeSJSHkHX)%Wf3)uOpT0_pJ7m zIAXmxbDmYl@<|KTn-^W);{0*PzQwYNK1GMn86^>dK?ja2J&HI#U++U_u=J@{_j-1R z!=z<&&G#2#lLu%EJd*rRY+OG1n@M1f&y4i*kFERdUOwCt9zd>MJ{&vf;41ry zW}QWSqs>*EcswZ1@4sllzf_YywWx<><_x|IOYR?)P>Jn3;8}@OXf&f%FmgeIfR%_E z@-&Dps?F1Hc-#af6mnSKUAUrEYpmQJTZWAkg*EQ$o_}sK_D+3iqCcD zHS`~t2mhp6bl97KG-U{Q6#2t)&C&3!{mrq*sA+N6ZJ#AS*Z8`MXfMm(M4f(96loMgpH*4Jn#2t(2HLln}S>c1Bq!?fiYu zFO#cM3*|0UF0tYJKHuv5wCzus=*r;s>y|NBkI(2@&JtX7NnWe2_#~?1A#p^$OaIpO z>WP+vblJMU&iWCTee-Ze@G@fnl=tp`^gr$`zHy^-){<4eucsyqC%oSul~w7{ zEAVa7g*$^+3Jz@46t|ZfGB_GTczQWXP553*9pz>Hn&xM_>I^<>zbneFC|~y^x8*L~ zRKeqxIexTklDmYIu1Eojd$82DI zPb9N@S7a)=>UW-B>AK=!ON+GL?eM+2iUl^3y+Jp8HF~zCnqNM6XhZAn!IVsi)|01m z?QoX)D)lkPB2wRVR@XItxw-g8)seu;#x;ueH|Sq_dnOoU+Qa_W9^3z-%m0lE954AN zW8&xLyDR~8?a%GEr~x*3C;iwT3-K9pHexiQ)TQL7iIrK z%IMWw+XN`fPYo}-)3o{8g-^TIpN%DbD>8hcmeU)yB5lIaj92oxE%;l9FRwfOB$KWg zap**>dHdHy!I0JnIhR}AN;dd=iYB|#1KtJM*4NJ(*|8&Xn^2{I{jk3I$K_e=Ri1k; z=r0rKI(XSU=vtng{FGq3DKo8?e0g@`QEAl92d8pkHb+f#ELHPb*tfyY0~xyg(x^_n zAcJ7`*`FS&N@NrUC>M%sxoY{ly$kE?Qf?o=kvn|-|4^l8`e zj?lEb(l-u@U44BeM{r|dNx>w)^E2KHi3R$_b#5QDIJ@Vzk@Q>v!kvQm6CEcnCg&{p zTCEsZFR@4b$mHhN^^qy^PgNG}&UibiL)LEo>Ct$RqRbPvgAq|8Tf5(Gt_bM&_;m8g zp&h$tyB$e0#+^LeRkrA9&BDjs4`w;ac3F>p+vJ#j{hoL0r{kSFCZ;6pu-20fx4tl6kG(C&!vy{wu+4vXm`n@| z41bvEcE46a3YEah5|$CjdlDdKLMm)fS6Op6+h=CXABorOyjC(Pt-JU=CCpJWq*r_6yZJWW?;)A<~h$ z$;sDfuEj0;ZH{kd3ED-E(i1JN=)5TxA6yr!KcLxs_nX~e)2O|=d^azATTv+UNGaN_ zx3#P^y@oA+S~h-#$MVp}PgAd{B=%2rS+;w}-E#~2=PxKY@8bEky|kBf-0w7T7hwW<6eiy zL*$)>wi6gD^!VO7bcyNh_bZAyu|RF#>GP@@_oWTzD42w(UM2D6Enj-da!xdj(VZ+c z+I(n}>-GV2T5w)o_vc{suEf^QJA>3Oh3>zUrSww$S$WxGW<{9tgGI3;(Jx-L1n-cz zNqm;xJ4^7*#pwFQo({=HZ&Y9MYbNd>3byD4b#6|(Cf51-l(~(*RCVhW?WF+)>h%h% zwJNld?zcNB-tXGG-}z~Ncr68F|$2+wF6+b)J9b zxsI4%0k8U#2`b7lk1)3nrev_4nX)Dp8t?ZJL`fK(M1bAn4~GdJc6FS|J~odrXDiRY zbb3NhtZUA6nr>q0bjI4nq=FqS@#FkcJAJ3}C5h|E6-Mk13m$aappsY?fcj(URS2Hw zeAKPXwQO##GtUzII|q-G@lQJ!=HU1#Xm86gcQXok7A9tyW}zAB|Ijk^LVKL&EqE^+DRT4`Ao| zc8ZV1E&hoDZ8G}DC$DPn4`$R{Yzw?~b%osGV|{0Hs`mSn^yaJ`#)qzA9}u+>q`$ec ze$~P08eKCplT&7%$+Y&8#eeWPlQ+eyPsnF&kJHBa@n5eey(y4)eL2x{qKk�O3N$JUYIrn?j#mWtptM}DE5v((pcy`?f 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 literal 0 HcmV?d00001 diff --git a/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/x64/Release/ExampleLibrary.lib b/Plugins/hstherac25/Source/ThirdParty/hstherac25Library/x64/Release/ExampleLibrary.lib new file mode 100644 index 0000000000000000000000000000000000000000..3c681c9905657c887dc0136a9800081308b75e2c GIT binary patch literal 1976 zcmY$iNi0gvu;bEKKn1#nsC*dD0Ln15FoCiXxEL51SQ!|Yycif*CIFe|7#P^iKsY|$ z(>K6BC?wv+HP|`GGa$r2DBiUqF}ENm)h9ElD6y!LAwJ$O)W-)?9YZ~;LWr^uk5E7F zco)YIM+SRTdAHKMZ3@i+c3`{_hnXn7V4;-R=M<@jK(Y#ME#w}rKAb|@t@byx1au~SuVMzn3jF5Sz zMn>=yl+wn`z*YU}krX2X0|zi z1d|d0GOhse3#b4ykal1&H~>`#Oqmb>QpX0g52g+z>cF6I02rwZk_?<6E`t!JN7WgG z1%PqQZ~?4>Qc@P;mFgU>Spb1PIl-KXTI8Yj-j#i;eObDw0-9fPIgasRsWt}-( aJ*c(><>Qn#vF3FTA%zwTp}GP~!2kern1{sx literal 0 HcmV?d00001 diff --git a/Plugins/hstherac25/Source/hstherac25/Private/hstherac25.cpp b/Plugins/hstherac25/Source/hstherac25/Private/hstherac25.cpp new file mode 100644 index 0000000..5d9cf8d --- /dev/null +++ b/Plugins/hstherac25/Source/hstherac25/Private/hstherac25.cpp @@ -0,0 +1,55 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "hstherac25.h" +#include "Misc/MessageDialog.h" +#include "Modules/ModuleManager.h" +#include "Interfaces/IPluginManager.h" +#include "Misc/Paths.h" +#include "HAL/PlatformProcess.h" +#include "hstherac25Library/ExampleLibrary.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("Binaries/ThirdParty/hstherac25Library/Win64/ExampleLibrary.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 + + ExampleLibraryHandle = !LibraryPath.IsEmpty() ? FPlatformProcess::GetDllHandle(*LibraryPath) : nullptr; + + if (ExampleLibraryHandle) + { + // Call the test function in the third party library that opens a message box + ExampleLibraryFunction(); + } + 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(ExampleLibraryHandle); + ExampleLibraryHandle = nullptr; +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(Fhstherac25Module, hstherac25) diff --git a/Plugins/hstherac25/Source/hstherac25/Public/hstherac25.h b/Plugins/hstherac25/Source/hstherac25/Public/hstherac25.h new file mode 100644 index 0000000..419008d --- /dev/null +++ b/Plugins/hstherac25/Source/hstherac25/Public/hstherac25.h @@ -0,0 +1,18 @@ +// 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* ExampleLibraryHandle; +}; diff --git a/Plugins/hstherac25/Source/hstherac25/hstherac25.Build.cs b/Plugins/hstherac25/Source/hstherac25/hstherac25.Build.cs new file mode 100644 index 0000000..fc95785 --- /dev/null +++ b/Plugins/hstherac25/Source/hstherac25/hstherac25.Build.cs @@ -0,0 +1,51 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class hstherac25 : ModuleRules +{ + public hstherac25(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + "hstherac25Library", + "Projects" + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Plugins/hstherac25/hstherac25.uplugin b/Plugins/hstherac25/hstherac25.uplugin new file mode 100644 index 0000000..f91b289 --- /dev/null +++ b/Plugins/hstherac25/hstherac25.uplugin @@ -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" + } + ] +} \ No newline at end of file diff --git a/Source/MyProject/Private/ModeInputTextBox.cpp b/Source/MyProject/Private/ModeInputTextBox.cpp index 134f6fe..c54c4c8 100644 --- a/Source/MyProject/Private/ModeInputTextBox.cpp +++ b/Source/MyProject/Private/ModeInputTextBox.cpp @@ -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)); } diff --git a/Source/MyProject/Private/TheracSimComponent.cpp b/Source/MyProject/Private/TheracSimComponent.cpp new file mode 100644 index 0000000..69fa831 --- /dev/null +++ b/Source/MyProject/Private/TheracSimComponent.cpp @@ -0,0 +1,34 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "TheracSimComponent.h" + +// Sets default values for this component's properties +UTheracSimComponent::UTheracSimComponent() +{ + // 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; + + // ... +} + + +// Called when the game starts +void UTheracSimComponent::BeginPlay() +{ + Super::BeginPlay(); + + // ... + +} + + +// Called every frame +void UTheracSimComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) +{ + Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + + // ... +} + diff --git a/Source/MyProject/Public/ModeInputTextBox.h b/Source/MyProject/Public/ModeInputTextBox.h index 91cf02b..6e1bd4a 100644 --- a/Source/MyProject/Public/ModeInputTextBox.h +++ b/Source/MyProject/Public/ModeInputTextBox.h @@ -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; }; diff --git a/Source/MyProject/Public/TheracSimComponent.h b/Source/MyProject/Public/TheracSimComponent.h new file mode 100644 index 0000000..c39e7be --- /dev/null +++ b/Source/MyProject/Public/TheracSimComponent.h @@ -0,0 +1,28 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "TheracSimComponent.generated.h" + + +UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) +class MYPROJECT_API UTheracSimComponent : public UActorComponent +{ + GENERATED_BODY() + +public: + // Sets default values for this component's properties + UTheracSimComponent(); + +protected: + // Called when the game starts + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; + + +};