From 51dcad2cc4adc4fb3507e40abb140271bc47f979 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Fri, 27 Jan 2023 16:24:11 +0200 Subject: [PATCH] dotnet7 compat, DLSS, network manager rewrite and other fixes --- .gitignore | 1 + .gitmodules | 3 + Content/GameSettings.json | 3 +- Content/Materials/SimpleMapMaterial.flax | Bin 36538 -> 36826 bytes Content/Materials/SkyMaterial.flax | Bin 30453 -> 30979 bytes Content/Materials/ViewModelMaterial.flax | Bin 6149 -> 9620 bytes Content/Materials/WeaponMaterial.flax | Bin 33734 -> 34260 bytes .../Materials/interface/crosshairs/cross.flax | Bin 15577 -> 15577 bytes Content/Materials/interface/testguimat.flax | Bin 0 -> 8853 bytes Content/Materials/missing.flax | Bin 30873 -> 31399 bytes Content/Materials/testo.flax | Bin 5522 -> 31872 bytes Content/Materials/testoinst.flax | Bin 0 -> 554 bytes ...6e605d9928cc985c1b6_ 0_ 0_Heightfield.flax | Bin 0 -> 1036884 bytes ...6b6e605d9928cc985c1b6_ 0_ 0_Heightmap.flax | Bin 0 -> 1398627 bytes Content/Scenes/MainScene.scene | 10 +- .../EngineSettings/GraphicsSettings.json | 11 +- .../EngineSettings/InputSettings.json | 6 +- .../EngineSettings/NetworkSettings.json | 13 ++ .../GameSettings/GameplayGlobals.flax | Bin 570 -> 614 bytes Content/Shapes/cylinder_12_collision.flax | Bin 1522 -> 1522 bytes Content/Textures/GoakeLogo.flax | Bin 175749 -> 175748 bytes Content/config.cfg | 8 +- GoakeFlax.code-workspace | 5 +- GoakeFlax.flaxproj | 9 +- Plugins/DLSS | 1 + Plugins/FidelityFX-FSR | 2 +- Source/Game/Camera/CameraRender.cs | 19 ++ Source/Game/Console/ConfigParser.cs | 3 + Source/Game/Console/Console.cs | 10 +- Source/Game/Console/ConsoleContentTextBox.cs | 20 +- Source/Game/Console/ConsoleInputTextBox.cs | 5 + Source/Game/Console/ConsolePlugin.cs | 128 +++++++--- Source/Game/Console/ConsoleScript.cs | 3 +- Source/Game/Console/EngineSubsystem.cs | 203 ++++++++++++++-- Source/Game/Game.Build.cs | 14 +- Source/Game/GameMode/GameMode.cs | 219 +++++++++++++++++- ...eModeManager.cs => GameModeManager_old.cs} | 6 +- Source/Game/Level/Q3MapImporter.cs | 119 ++++++++-- Source/Game/Network/NetworkManager.cs | 149 ------------ Source/Game/Network/NetworkManagerPlugin.cs | 64 ----- Source/Game/Network/NetworkManager_Client.cs | 108 --------- Source/Game/Network/NetworkManager_Server.cs | 181 --------------- Source/Game/Player/PlayerActor.cs | 6 +- Source/Game/Player/PlayerInputLocal.cs | 6 +- Source/Game/Player/PlayerMovement.cs | 20 +- Source/Game/Utility/AssetManager.cs | 3 +- Source/Game/Utility/GGamePlugin.cs | 164 ------------- Source/GameEditorTarget.Build.cs | 16 +- Source/GameTarget.Build.cs | 9 +- Source/Properties/launchSettings.json | 9 + Tests/ConsoleTests.cs | 1 - Tests/GoakeTests.csproj | 22 +- Tests/MapParserTests.cs | 1 - lore.md | 8 +- 54 files changed, 767 insertions(+), 821 deletions(-) create mode 100644 Content/Materials/interface/testguimat.flax create mode 100644 Content/Materials/testoinst.flax create mode 100644 Content/SceneData/MainScene/Terrain/92de37984e46b6e605d9928cc985c1b6_ 0_ 0_Heightfield.flax create mode 100644 Content/SceneData/MainScene/Terrain/92de37984e46b6e605d9928cc985c1b6_ 0_ 0_Heightmap.flax create mode 100644 Content/Settings/EngineSettings/NetworkSettings.json create mode 160000 Plugins/DLSS rename Source/Game/GameMode/{GameModeManager.cs => GameModeManager_old.cs} (99%) delete mode 100644 Source/Game/Network/NetworkManager.cs delete mode 100644 Source/Game/Network/NetworkManagerPlugin.cs delete mode 100644 Source/Game/Network/NetworkManager_Client.cs delete mode 100644 Source/Game/Network/NetworkManager_Server.cs delete mode 100644 Source/Game/Utility/GGamePlugin.cs create mode 100644 Source/Properties/launchSettings.json diff --git a/.gitignore b/.gitignore index 7e95499..4e1d89a 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ Tests/obj/ Assets/desktop.ini Assets/Maps/autosave/ Demos/ +omnisharp.json diff --git a/.gitmodules b/.gitmodules index 05699b5..aa5e35d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "Plugins/FidelityFX-FSR"] path = Plugins/FidelityFX-FSR url = https://github.com/FlaxEngine/FidelityFX-FSR +[submodule "Plugins/DLSS"] + path = Plugins/DLSS + url = https://github.com/FlaxEngine/DLSS diff --git a/Content/GameSettings.json b/Content/GameSettings.json index 441d58f..fda699b 100644 --- a/Content/GameSettings.json +++ b/Content/GameSettings.json @@ -1,7 +1,7 @@ { "ID": "3c7bc3854d42f9b1b0fea9ba0d7fa8e9", "TypeName": "FlaxEditor.Content.Settings.GameSettings", - "EngineBuild": 6331, + "EngineBuild": 6335, "Data": { "ProductName": "Goake", "CompanyName": "GoaLitiuM", @@ -16,6 +16,7 @@ "Physics": "4bd8a4cc460399b5f1975fbe0a668e3f", "Input": "8ec53dba4c238bfbea1d62922e612a4d", "Graphics": "f94d5aae457aeba67033a8a4ca753214", + "Network": "0c69a0c7471f8d0805965caf343d2f27", "Navigation": null, "Localization": null, "GameCooking": "af2e52554f7faed7b4937181dd22d166", diff --git a/Content/Materials/SimpleMapMaterial.flax b/Content/Materials/SimpleMapMaterial.flax index 2e848ab321fa94f67188dc1a34f905a120b0d477..a4b30178034205cda5568a216674dd8b607a2ea8 100644 GIT binary patch literal 36826 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 diff --git a/Content/Materials/SkyMaterial.flax b/Content/Materials/SkyMaterial.flax index 02eb31cfcc0fe9656868f8b87f66673ddbb54fa0..1c7bd124390c2acd9bf4a4ddda58d43cc2cbedfb 100644 GIT binary patch literal 30979 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%0Dp7M+QT~|v7i*} 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 z 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 diff --git a/Content/Materials/ViewModelMaterial.flax b/Content/Materials/ViewModelMaterial.flax index 59f592b97f30d758456eafdcf03dfbb7b5b348b5..5209090172cb479d4d9d497f5cee533d560f6ec3 100644 GIT binary patch literal 9620 zcmd6L2{=@3`1hH}z7~-s2{p3U*q7`>#1K(gD|eof^YoKwN4P4 z20Z#es@%kU5IMtBXp z7EXQhuYW8Gg|u6Hi(|E;?pkSoxl}N*CNm9h17&LA-Ehc=4GlJZa?e+%t}nmKE87@L|<&59{yX?i%%SnEnqNc4F4>Y z2oHk;98}fxVXw$3IZKAR1gDgVfEk*=&1FO3z;00X+M(YM#zs4?7LGn0V|+7P)((Tc zVw>Zj;gCl*G#cx#-|w`wR2d~K`rn@@pBmU4=O!GGrJ~Rt+&#lG9RIw)A&>qzx8y*2NIg;R~p| z9h>9CzySv;3ag2ff<{vPATphqP*(Qv>6l!anrWBc#-m9_n?_|P^**%DcY{xuLFNvI zvJ11Yq&$Pjeo+zlX(mD5op5<&r9<$I6bqrlK{nn zhUoa8akT(50JaGt2=J>xQx0t8?afr602oyc*g)J67VF=QMo9*~?wF0#zL~0{zfChe zguju~Hv=#SU{pCs7HZJy2R4%XW+0XTl{FyIUk&mpu#x3A1F`^MRJmU$>lfRg^G3Sg z49p6EQROy*LH&OZ?2QRwGfl^S^8z(7Y|I3k0UQTle@Q6df(L+&DPc1ZYXC--TMIh~ z;rI66a{?qq4O3|Lep__wA-XYRKoRqA3l0S>xqrdim`EV?Jka09gtECJaN$uUA?ZKc z+Q|RKf{p2Cb49-|JL-zrn0GdZ02dxr@=rSfDh~o16VT>R;PU(DRkJY@Z4L)6!hc*h zkhNeOu4jm!YPYOY2o2SY_2fjmesk;knQr||zkX&|x0#XJhf((oFsAi~%He9zz$6UyAQ8wQ>g~Ui*OS6%4`jU4UVClb?v1(ipX>$|P)&tu z0kF~hKiIu`FTQR-AoY3dV~DYv!zfc z$|*vd*--cpexG))xbzLB z=ks?bx7%S@d{J>tQ`acl!1xl3K}<3zBI@!cR{wFQ7N%sUA8EH{@}Zka`f8UfEXjVR8Ug2QVJgF}JbYulFDY`}o7lO17!_?&%*4 z5>8@D#^?0>{9D>Os@r=;#ubjvz?Br_Ws!HQn%sgTQ}8phq_z=p26|DofTG&dUN;gF zKdeyNurIM6y1%}`7E8#epj;J|PbA$gt$O=-s-L0qr+&^Tmusm>6{Xcv%dn~Mp#4j- zT2%Ry4}4SO>M7*u9}6=aaD6#Pb4TyU2yA6zQ5R)&`MbWZmEmCptq?z_XKyC4=>-&a zRu*mvwIk-og6_1s2gW2$zMhzkN-rq+qw38QNdYNK_9MoYZhcjP&-8rE?byb#%<#!|;@7 z!aN=9)65nw?o&acM%Qj(&bWA?n}`h^gCjF^e5xi9)cMPA#HRIq{wh;c-*KBX)79O-=rmfTHIqY|PyXs{QjbosE(T8lL+M1@0sad9741DuW=aUkWoq|idQ?d#%%PfqNe21;BdWS_g zT=WjU5D?4uX@QxSb6U>e@HuziJGnV=*@M{E9Rt%NhJ#kiQgN}5^3lyj z6n8VZv^bHNTvUjel@wFdRaWBk5lRTMc5(8*-rqSiwFLT~UYSXDkNuvW zDGv&8jTZKA2B#O6xH|xZrSZixe(`|?*;xFw*pFEloRpk~wJIIWjkCeQVZ@v|+y`>c zIJo|K)y?c&-1HvZdDzlG!Qx9gduGff<<#WW^=*8KMAtk_&YPZ&@6xi0mk@fXHfLQT zW5O|IRj+$`hNge)1IMAPX=a&Nk(LshhI=|!Ufa@J8JGP+KtxgL$P|ntCcCgG|LWVM zig(lB-?#NoNokp&+>}+z3n+yxq|t#f?iLOnxRL!iKYwk<=TAsOB~`CKbd8QP?H53T zd7&h_xavXmi)P{uMG8!Gi-N9^yb|)t+2Cv8@n1N2$a^(Sy@OG*5(b7Ie%G;SnRyjE zZ{a$s`W6>>I7DT5_0Ic+nL1%HRqYMq!wdBN@Pn$ls>`y90Vqe0(p+LgKY8M_tjKmz z30A{1=lo(5FFHisPAKglPk&oxof6TpIGI3rR{Fd-v+5b?^SI6spRgQKTtVO1$>mZ| z)4(8>&^t0Ov1<>fx~i?+F%SRfyAOtT%bEWs&3|-`tt{*mla$ghIqP}V*TUXC7F&pWO`s_wPcJSAFYS?0alBWA zr_SG^$j*a$I<^A@pXA=N5-S7 z=S{=?Gn@>20d`q*UIwU%X18Z{9ZiT3TKTiZCoG6W!#@(VJCMpE;F9D zKHz3}&d0wjs|3fq<<0y(pNWZ$bVAVHd=xIL3dE)04s;Mw_oh>lH!J@ zJ~0Htk8uORV~D+IU2BjlF`-jxK&g^3ieCHRusT`zVMGNod#Jk zCIfTf^8LFxGvz-l?E9cP>g6AU`%FXV5==p?K^pFagG)@j)mqQcr zUM;;{W8a93($muBhUc&7-MC%!jD&5c+JD%PSrMUn>ZBby!8MogjMPne&9IGouME#& zJ8d)DlVw@q`FXXtwszX_c?KR&gQG?kZnbak-!Exy4Djh_8ys6;mf%;?IBD)Li#T-G z#?`xNV0;0_KPjtpWYSRgq@7Dp;_JK;%8SWNJO{M?wmYK})l>o_va+6#d)fGe-Z3(8 zE6A%jq5|;Yl*H0Hd{2iWGmK9(Na3)u7V`F`pun5ygTzYq(TQ=8|HOhdj9dc3r{)Wa zpLG&$hBQu3tn3inqot-{?tebYEw3>DO;g$2J1%}{C3U??2VEzd;Lz~+s)F{e(fldy zt-NA1td{35hoVg`K7K}giZ3I7T>Qa<(lpdR;~R>Oj!4ODWbGr*sI%}3!4;!UTAja_ z8E`c@9y8eRX0(SMWfGT+D5`C4uWRWiJZXMaNoeUE_(5RkP^FGvIR;%=6KY>Md5uqY9`2Yu2oa>cR7S*@i;Jl&k$H7 zg~!eHFWURqrsO<$@jMgrgqfXBR(wfoY1zlxCIIwb1-2>tVNEM7z$hTTZI^hIZ$erQ z;Tf^?1x=gKcdGvDM=sjA6Qi)Dg{&{%Ezt2g@*jxORzR9sW?qd7znjOw^SZrf;k*86 zJvn3BV?j5rr&pJf>h9s{28ULMnb`JdsT*-?`hocySMxjn!f2@Z^PE#7u6d068xy0n z5QD6i9hLvU{9iWPHtK}55xqLI>UN!DzV>z+nealxyR(@L!&6C#t9^u*1geN$n z_!JEd7r$rJ(SzE$P9+7wk#}>S%ry7Rk1g87C94$Gwz-C*6SAK&zb-Ft=zcx2#Jxjt zscX~$V25}tIJIeHc8;4*SXN~xeAd$9l>gOatNhx^hI_qZOk6V42h?rO2I`^juEifs z&*a1sE#eS0|Gpr)-Y#l<86D~-G43r zd-*hW4^7bj(V-%3s&m{Dte*=r!#%F|fOQMIq_`4Ne)iZ2Pfy>c=?{sO{lED?BOHC} zBBq`^T;AC`J+i`WwMS0T*v=R4n{x-357r5a>RY&kq%@GK`XSa%SJB~#53z(6E=^Nv z{d_g;MxcLTCI*~8kiR;|zx`lt{Y(9kHZ?oTz&+B|ufZiGX>a2no}B1ZR{f%D{zYr! z1rJu=yqg61%W)4v&LSaG&-Sc4 z`j3v6ILc6OKNvp;l#~tbNBjAw#O75!pDF{lkD1?Ac1kKwbd8>+=D!En=iL};{r`oA zVP=*~P)JP|tiNi~F-5hH|Dfn2Bv_H2fqHimvY(J%5oTLjM?wEtf&6D=?tl+Uc#>Pi z`jR|6%f`+x9fgwDw?a8x2#w0hbXM%Nrn_Rdr3=E=4r8mXq3h-z;ujvXoRkplst7 z5Ezp)!XfQ{jcOg{8vn-r56=O7#~4F{2>(@^$17w%dPm@ zJiW|`kWeyoQr~P;Qv!VVY?iLkOI|Od&^fVov+nT}s zLv!0Fgpu8P{o6>)E-b8RXBHRLo8Wiw;HQSo}>)>EP!b zTs(uTW_D-&uIoBl1P#1eq$z0|SXret-GNZEH*-OIr5BXeJb&1+Fl*{atzScYEqrfX zjl^I+H+6CyF!iAB|I*Gw{MElQwbL&o{&sG`Difcm498Zd1MISCPbzEhX`kolxCB3f z&sEg)Pww-)dNU>ay5HT3hM(ULB$9j*GV(B`skF1L?>|ng9y@i&SPkXsf{sgg@;$1# z`{ObV{r9~xn$`z>vTjrNpL642eWNOc)IIMQezUgCI~1LpUE2KGC#j`-XqC{_LEZnW z$SFFW2ERW<73E}N1!Tnykg^C<{!kZmc>H}_%SW)jt@!kINF3qd;ud~ArKmV)r~+3v z@M(h4@QhQ)mGp<#;}R0U{Uf>Sv;4ppaDD=#d~acJXWY@DnDo->t?WItY=TmV0~%@R z6=kon zxLZ^`I63a8|Le*hHdDGr$2fM0{O;V3USqqiFNH=ebc&N{K>B8pU*d5JntQ(Y=H^L%7OK#j*0yl_u#nfyz$xo zu5LQkJ)CMr#&R^Mj{bQ+ZX5-+gi#in? zUDY-^LeIe^^Zkqg(#0zzneE6s229bcZ?VtvBuj4|BM zz#jZw_Npm|R7ZR}LbqfIq8T48epFvi`Lt5gNx-#t_DxsM?@&@u*0T<{i83*?ZfGVB zj4pEt4hrnrNjqzfa`TG->qoa=`W-Hb?lQB9%SyxH+wy8zE5ZE7AtC7%9ecq&ED#Oy z2Y27dI0KAVRxW72B0}5REwrI$dbzgY!^q+|@~8g_r{)tlgeA>x+`8TRZ9DDu!9B{T z<1T1qS_+{K;?G7f|E};KRxxyP74is7Os~M!)PKpRXA#*4&cE#`3;Uu5LRZV^-Ib2s ziIGEwD-2xnYNiG!y!?C;?&sjj#nogLsr%=Mkn4AH@*^MPDNXc$em_|A|2O7U=Z9r4 zUrjJ>5m2UC%Ri?scxI4@m~ZR+JFKT`@8IDF>aR=3lmZLic{!Cd%|hLr{m_oN;Qj?) z)zD3vVdjzm<4@Y!*El>PFO$^V+Xm%NXN0<;nqlPj3Le)=>grYg89x<8Z|ks_ zzV-PZpKJZ;KkEKJHzOev+&9P==&2!(aISs-`g8tmP-l*v3k=IW9rV+G>SOyv4=9~H QlMC*Dv${s1?+;@C2VW^kegFUf delta 4427 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 literal 33734 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 diff --git a/Content/Materials/interface/crosshairs/cross.flax b/Content/Materials/interface/crosshairs/cross.flax index cdaae580a672fa4bb1155e73101593faae3ebb6e..44d7a2a9b8f47539326575d716c12bb901e1ad79 100644 GIT binary patch delta 349 zcmcavd9!ju1|x?E0|ZPiWHjdc&j{o&0kH}Y&!4=JQJHx@XZqypjLD2TldYMQ8TmKI zGwosma->-Q136M`WsGbFXCqvWy_`IaU6*73p3_GT+87*}JW*I|vI7U--mHx>+x!F z{Mk4E$OH+f7Lb`OyvFP-MkG&$;>fCR zUnd7}N={zIZ^gdrSNM??3s@(=<}YCves=bV=lQ73X#)Oi-0EG8hu_Z8bK0$cYw`gx N8%C$if5q;o0sz>}eo+7b diff --git a/Content/Materials/interface/testguimat.flax b/Content/Materials/interface/testguimat.flax new file mode 100644 index 0000000000000000000000000000000000000000..b6398cd4166896e5d38b086825164a8a05323989 GIT binary patch literal 8853 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 Gy8C|xvb@Lu literal 30873 zcmd43c{r8b`#x;UJe4sdMUgR-S!Gtr92pZr6hej!$vlP3A(?8+n6URYWu7zd$Sh>pahEDJbhJli~gE7d|+Y#r~N6 zeLJuG8-?!nCIS*)WjuR4b3AuECA>#?)_Atyrxl(c-c4}K1$=r8j+leL_&@g=0+%KP z|0lu2$>46oMu3OM104h}MPfWWJ!kCa|J$DZ1opA;4*!3=ps@hW#Nz`0li};&!{6bL z;K!@vWVxvNO@|N6M%PcD)>(bKNCLq zbPRka1plD(ut(wN!aW5(9XJeL1h~r*!r$@Xvj~WA2Z?d-$8hf?xOYYTP??ZwmOf*dLVO&Fe9{BK?TiHRuS`B-o0eAGm8g`vf0>ehpd(pN;MJ zW7w8JO$E*P+YVajFY)k*jzd4O?E!E9`@Vk~lNFXzIpm=~gI?fo;8U^J`>&@sxoBT4 zzwe^}{W)X_M^AVKch6_wH_sG~9v2@T8Tdj+CqQ?BevSX%9_WlOv%<9eBlzmj@9Ckl z{--g3TjFkZ4A&L#?eO8&{$n(8kM=(Y^1t2p%4F!Zq!goT(Cz-!s=v+qPm7>WM9@W` zmcYM<&Var^2MPb%<`Fx zqzU^KSlA5|`Zn~hkUe?s|8ah8yX_Q@fTFpvn@hM}2EsRQVt%4&^)#!5q$bZbZ8|U8 zfcOMtbYjrUyt9-f$0d|?=y-V~bwIWO@m z-O_Zm4e^aC`PAC+ZR+RmQ>VD}YzbL}#LSgb5M|&_d6Yc7s#k36eLWN6OKV!&28L78 zK9u%h#((Tt*~J9rql-U$`?;3g*RuMXP-mTAPW-y0a&pX58`tP~L_Hht@l%qbZ098T zG>z|MG$G;pSKPIIF*3hN%fPdKN?7!krJ=h|8sdFJ*}%;7)MU>T`R`3@T@#zo#ME5p zpDm+vs|+WW67w zx~ySoWK-FK`G%?PnLR~GO2)&Xs%{qagCplG>)Y*CYZa*z5 zM!qa>S*Bp%;yfj%E+&7I)!Hd6^3JnR&!9BC#XUAb=|dxf`*zR$Ufl7X>3Cl^gc<#F zTIlvYXLeOXi@>sLBw=g2#kN- z+6EpeFaNrnvW{n9NLHd#9SSqOzt#Wsl$f~IoS2H9jYmLOe0Gsv35v;nKu%4^*P=&-={XqK&&h}fUJ3R0x3LLA=Vs?C>Jxhl~ocFG(DJW>$2UbQ7 zu0?$s>hB`JXXm3;SCW)5dfPbY8kvyYLQO+4v+;*p@RVn9orUxBxcHTh#(|oY#)*pP z48jv<#PrUv>p4b*1*1L$J&QWPr#{Vkz@#ZA;jHOo|IF0Ix2(E(bgQX_k6%pC#l+%? zprc#Chnk^EGQyf~hucI9jQlFO>`Dw_< zNlvh+i1Dea**p5jrKEH<_LaSGbQ@dyL&~?c&TXuD_nG)DP5tWL@%g2um0b!JMI|8# zE$6$Bg2QqjMJIml9pB!=h>BfwF}ZCQ5cxX4yR##&zULef(+S@D|8s8+LWWGeNp>A9f0nNXZR?N)87Bja4wSobk%uQ`{!K<+N@|N1Bg9zpQWQde;z7F{WM1G9TJVfId6QEemhI~!=pX#=HwRt|Bu zq)bF1asYiW$i<_~$$#9fRtrWQV`!r&qmTMHKnv6vVCovjG3l!P)bQs zRo;pt%sng)(b7G%vrJ5iM|O@&ToIl>_q@Nfqw8AgzW*U&pgkktmz<`rYxd;DtC(Dh zQ}i7CXU~eLD|xuO>AJn}3Cqo0C!rxD<-8z&>xz-r%g)|Wc>a@EAN3zIH$Dsd(fOgT z1rC_csXumgiAheXYi{lu`%Y8ay~@rdE4#z$?By1moj6|exx9t&JV)2~kKat5 z#GsV-lQy0 zd@FD1#&j$n5U`z9`N#c(!Ts}D&xy$@@vG<wJVOej z5EYFbb2NlaRkOp3znPfgUOD-IV{?e;l5FwQaYI9NeEg z)pITVfF7FqvQ0wA#yhzpf0|dq#K|Wl&%=4G`R5EV80WPest3+N@h@H=avR&rs8_d0 z+qcQ-c~mqEB<%x3FhQlwJwupG0-H9$$yymF}jcS7ceG706=LWVp7N~%WBqS{k))*@b`Dmv!B{iLMh zkT5cS^t5rXvTbk{_TQ4M%*Rj3XqnmAdA&$!M0{#0Zt5NyJ*=Dxor{|wR3kJqNOzq?|QVfwPe<#Mh3>0R5UE)Zr-zd@W3lL z>Fq}_|Bc@cd|%yW;N@q!YGll(9g$gFn)hkoANGGQ;AQgb{N|CNmA&l~CxsQnb+t@< zB9oE}i|V5@iVNzxdX^-mzw=*Kky5;2Xq8~~I4Cpeec6}E@pVcXCNZLxvrIMfd9tfFVtst z=5zcamvpu6xcddYEv#=(#^|a z`lsCFq|49^o~gN|vp*Q=nPv}7l{}t2iHJv(RQrH-!1nvV>a2$Pt$U8~S%|WzzV_9n zeQH)iO>;-w`iss*d@FD5AKRc%5adu)Hv{p{QTy{pe(mg2oaCX_P&Kr)lfSBF0I&bZ z{%vkSaf3^jRsHVzdPTek>;KDvSv1=@)$2CS4_uS7N>EM1Z;E;FD=%pOA@Jpl6CvSeh{4Wk}&$Fdv6!2pH&DcvaPIyLh{%CT3MMj1Dd)zXkJu>5!aR zGT2YV#xpSCjjK<1UtW3r_xYcD$4{R$F>ng>$|)=^`#Q98`0J3FRsN#f?MFT?@yTzR ziI~U-%Fvzt0g1HZrJs5Rj~(aJ^$m?Fu1B}${voAi~s=&^2N=4R{)ul;is> z<--6Gh@ZsNZ)z&&SlWr*0P$Z$#puEw(cbiBsf$|rN8_JNwAqZCzYj%}9n4(yGhd?e zz&t+#{N_0xaWxsW$Ux)3S78ZABtAX+_YKC=Jlq!*(?I-C^6G6-%O72{=R;!!^S}3x z(=ZEO(pR^!($u%(}tM5IU?>%T`;G!AW%;7w~t$myxrySpMj8iM>QzoBJl zjFwZGmd{yCUgDO8y|r6hVrE5q|Fa2-p8iD!`u~@r(j7}@F#js@(H#Rz4ReRY2dgaC#WZe(+j~Dx&1#wG`8ji} z`>6jE;Pq#zyrrjS`l2)e+Zka+BL|l})6AIa%H+|dKcrL)HX#0tmN&3+a1ZV%&Z@`s z^e=8)CgB%R)k#T3h9$kqMj=~j{r|W9H=|m}*1l z6EaFMoxAgk^vp~g5+Bt<{&haEzcT-)hb!}hr_RvHN*_JHw_kD%F(D(zf%**+aS0tcZI6fH zR=ECCQZqkgAO6BxDJCV#*FCl?v#z>>YWx^28NZZLWJc~IWdE0ylBWI&)F6~cw||+X zR=D}dCeTwa5nUDeW#%^?GXp0Vh1z9hbt{|4-U<4-rI?weigb)w*GEXUM zO$OsPKDl;C$_Mh|s0S7<@tC)zO|5P7OCWxB;8RtRmXX(eTspZjoQrB`?Vp#t%*uUA zM)HZ}6Og}VWRJ90R1FS&UnlQ98h;(V!jIK8Lzvio$^Ov7w(O-0+}9?~P}MP}8f&xp3p;n@Nb@>8Qw##l?Ln z|B+%@QPtKp67YBf`@eq`8Ru5@Ao?*iVJmsa;c_yISa zl$xrcUV?w{t4|*~JMs_uPje6dVLHJ}C1tK@|F9nuJ4yU%d~ls?`s5igam~vLQ8A`C z|4$6(-=b0?x+;!O{5zXh>cILBub=I0=g-JrG}ktF2@6G(y@-s??I0zf7QU#iBrJc^ z&*`yWz$bSqb6e=&*+DP7U_bbOjxSV>5A zWWU~LE~{whMLiCS&I89u&+)N?b>y%Attml&&dccq;b$N0HHoF;rmDcvhHuCl!%r+0W^ewTrb zm)kEcP2a^cD7zYt|8V1XTS4D2%E>D{b*zCF+y6H~{9*j?W0QZ+>}T{q^}qZVhvbW- z!m28C+hiFApNk#N-<%B}yFmGueNYrW$p451Pib5+b?^!b&dzHO_nOOX9sjkAo&Q%H zOdSAz@u~?uj$S9C;<6U-2sf42GBJwvNsP-bI-vO>$p_&_x3twBK0V4`{QUbyf8i1F ziOcL=aj@}+*RQnkFRMG0C%HF%u~>k0{K$R+sdhFF{^dWx{Skyr90z|GNyG)k)lC6@ zYBT-&Fojh}e3P2`P)JS#;1{|^DV1G=!|Pi#KgN$SkqC;*+)}Z8`f7EHi0Kcxb?WEY z(L)OI6I?2a_t@Q>BJ|$k@+a*2!+%p=*TF+N`Dp&Oj4_{*QDe2fs}!7^?~NR&Xl@*v zUM8VsJnO8jVqk)PkyKFnp|fRmlU(NnzmT}*1qtn>#=(Sugf}S6)C|e?9=(NulB9vY z_4BAVDX8xQ<+ZJ|YeWs-aO<~TNNBcGk#~A77XP|Tw!V2^_r9Zhd~W_=?Z{{z8ER@; zR6*NVPux?{#9_F#y%aS#vE8=Mz-*-u<(~$}-)n`3T$FS_g~e4*;_N5XD?VwqaA4%e zHZh1lJWN$h?Y%twLOQCDLymzU|A_lT&v!{xk66vd??Gl^dL@{Db7h}5`MED#zpSD{ z$14zYN8i-B_f0I*#^Gf_sf%i$e?1k=A9z;=Z|1fx)c^X!#A;>hXIcdCr>es2yy{lW zr76lY=XtLhh}*cvloo`4#nk23w=7I8A294dfG;4I;vgg9CgPIg*nyYJvg&`a|Dlep8U1XO)n?e($kwSm<3__qPaS zTU8rX!{{Li5yvq>S!IX3s+Pe1y~x%!%>IvGC(nvVCOf&_&PXq>OrD>fZJb(|$G>n! zNa`ZA{*{9DuV9BF4b?k4N<2({;>sG(?V=IEDXhl~HdpX9u#!gpCkQ`16B+uq3wJAN40 z{;h3X!;(@`yd9H~#8fbTOTi@|udd^U?!_cb9Wt_h!!i6$!^6>?L$jT4SS?4ApX20uVsAKDIh)7gnZdaV5fikSpG zjVmauDrsB&vrh%$Bk53AwJOfiXGYf2H^(Z|K@JOHrjEleC)^-!&k+Jbo1N_V@9*SF* z5pAs#^UH^;48VS)q-+9R;sE|PF#4m1kdU6$l~wbKgoeA7cS!tTYC-Sl0++fIb#x-a z(HP)=5pS{vs)7CZ4=?Xf(DMQRFKFO)l>c{b?=aH%=@PIL2~)D%?kPfRZh2!Dra z*_;1KOu~4UN$2VEh1KM&4Qtzm zu<`rNKWu{H*Tw7}2i{M6-!?OwUpXkrE<34K!z5B~uDjKUgV|HOQHqIpom5fW@NIK-ot*ZPRCMBVH3JJr z|D>rd6mqq!d9Y{p=k_Kqm%y!?+8*{AsRbGN=xnV2TM#8)f$`Q${w7-5CF7Eo zSGCr6_kW)Cwx~8_^YiH3S%DijtoiJ{qm0ZRgoF<6wDyDiNnx4w46pi)3leT-cb&uh z6OhF;#IqZRI(j-!9d2Y7Aj6|x73Xfz6*qwR|KkkB1xYb!Z3F$_kgS&OKz znLgN~*pjAX=dkk)OF{>GwDv>!=fCks?ETfD`@37Zy?2QXLX0j@56&FyQ*k+*R8`Vc z(6+kk>>1F3EUo-DGEPEo!Y?f(p;C-|^&%<@Jvmg_(zyWmk7l;B;u1Gk@hJh0>=e^F zx%h*WV2bsUDvQ)*MH6FzKoI{Fc1MluEYf3`BxR_~9(V>snWvP5*F*Rz#|{}O!{tj* z{1pi7WUaBYWpMR}&Yd$n(rTAg^i9)Uu=qo3|94>*Uv61tb(I9O^8TXy;+ls1xAi^K z^B5+^(=<}r#%5Lt4+_&8+OnqC3FsNVaqqH-%FAn7B>R*kAd8wpitGMt9Db9KrLuXF z`ZB+=zHNCaEVZBnJs zeAHM`Mc?QIHzVvnA14M>RRF)$^trrr@OApe!3lBzHmkD>OTzq-PgX=sYCin@W}EDE zLZUbBSi1%^L}li+Vw$+uj!|8|@9vkB>tG!ox=Gx`4%#n#0XknXud=1-$JELJ1@nQD zocUenr#jZp{Y~%L`v%m`?%;ErkY3jT{vRP{XyY7`JcR-FZ*4DA1wRaE3olvneMl$$zz)%{H+2_dzL{?Ufs+R#FudV9^HVc`L=vW1o$@} zbscNRNYMU;Dw}AiCG6m27?iC#W7RGg^ zBYWCt&ngLm@psXS0Qj5BzxtmePT-oceriEK!T9nI%4rsWKPu{bd4xpeczE843NgT|pt7v53+GaS(Bh43i{f>K3 z(o{+b1#G|Re<(;#^7IVe)G~E{s%#PXp>yoZ0mxtWWMsAZ74-d$A^z=a;jiYEiOp`n zU&>suv~f<21pYU?rwq{FX9ZyX?M0NWy&Z_Zaw1!YF~7IevG}iws+GO3cUv5)XlG<} z>=)%(CIt}xJ+Q6oPs%AkHM!{iB$YKT{}DWMP4>nOn1ob(ojKhnoXNXyLVBqD2k z-)nLKhyNlcCfCUc8O4QR{LCaNGpG5}yT#A@%*W>de+yVuO^Y~a{c}b&f%vf>1N#p~ zaZkv9VL<-VHNiv6c?#q|8tS(0!SR^l>;{JB#RYsOEdTH4pA7RCzbmOpA^sQ3KNn|C zE=1t?$ELOA14i~U*JSRo+e>=G_fMH#AfTOM7gLp=Q`XVEXCob-VATxeKj>XzEZne6u_r?9CVU0XB^=I=V&ITa~$HPd?u!9``k#iN-0 zEy~kp>7n(X&;W{GbgW?i*WAJ>D0o%N%F@&0MU+i+M$KRRTj05$g7yRVSX}#of4C!X zQO-a*$mlg9%su`H|6?WLk`}pPs_#+_+aK+7D2^^UBtOX|bV(VG|19i%(}$LS?=k;` z{P#_jTgLv6JwsxT<{x~2>jy8M`=#Z%JkIYO?HyR!CZo_lttuO=W%?u}!?m;?Jw7O^ zL~|0H&wcs9Ei((-#_^5AS~gzcYZq?oiE~`lxo+{qE&9bu6-7gS`QY$c!6sOL)@7AV z?H{TH#TM7MreJxjxLT9p(8h2>@-vEyePohWt0KmPo9%(||tYjSOl zoEn;c!2fH&`iHQo_f@~SSm|YzrNwUEGENQ+i7zj!nCi(|WguqeCOvjlLsR}%+S{7W z&nfjVf1+k-#i^*M?doC(`ES7AY)nyu^@r&?od1^jhP}!z+H8jL4|~A>H)8$gL2ctl z?`~-PHyL64ibK)|!f#WCzAq8r4}ths2EtLn{LV~8*ZYlN=F#M&bR04|D!fmEL$gbA z!`qJdM~%y>T4vfFfu5NB$`bVG(k{T?Y&6Yr?N12EtN(xm_IrdMe25DO&dw<9{2UF% zKLtb-=Ot9OXSNXG~V+|+VZQ|vk(eitp1nD8}q zE%{sKAbx9}YwH-`_({sd%Oju{rELr4|7#@!y))vn1oRvNaw^iw{svY)!6ET)^DDdP zuWC?n3JUZ2q&)ZXC```<%hC7eFiph{;LXNCZS%T7N{nWKNi2qJ=Qol13y1s zpo&@{gkPo=qXn6n43y+lY+Qqq$}*~|n+rhxbbbTkAMArH-2#FmLX*;)sLFBpPjBvKZB)}KxcJPjGjsCqOS47Xn!C;IcV%awhkr*Bp%QIP<2hw z$i~A?1&)8ydNzNPoaUBO1!1|O@ng|gz<<=H<`&nz|AJ8#@=|&kmr>N(QMuXG z4dFlf_|)7{wjS>BLHRiVXXM@6Ct=|i3fJL*^cw{Y3HfCW6;lhllC)=!b6?dlbaV~t z+$XF2)Q)KLFB#pLSllDy*Hba@&}`(7T4^2Lc$OEfhm54EzN?a=azJ7j%%2f4(ehusss{97S06z5;~{qbQs41r zRsvJS%El&ac@5}GrU$;S?VaZ0^oX?4a|HSq1gZk)PdfY4hZbj!;RC!x?W%$PRW(?D zGrC95&L$(SE42yq2Lf5@=*+Od0hiLyC*tHIo`{@G#Obdr)O7T)>mTxf|Sx#9CtbaYz=oNr}2#MX)67cp(mQvKRdiSaNYufAr{^16fFu*?mkNf&P@?Bg? z-oZZL-|Hd%tF3Q!UGg-*Uv-1x((~dY^71MAhgYb$Xy*GG>*E21- z2CgsuBp@oq)hm3zlJF$Q*o>yWnX^YmS_V3PI(dzVijwa}mrnowfQXIhFj`UA5d?&&A3aVL8+@JZUeu!u&rhw(XxiEY zN5>TSakxs&&LneH*2cNG5W-)%$e*~PMpl-0sRs{MuV_B9 z1o|(m{@{HRMeoWa1?>MtF8Sj0Z z$Ty{Bo!v9ru_Yzw+P0acKgYqyN?egt)U@zO=%*4;~&C%rwaD($B=y%#$oLOG;>{8k<=dnnV`^ z{n+X@{xYPWVG)M)2X`GZLEe6pzx{1Lz+YG1Gy?vBi1dW9e~_)qUH7L+F{s*JcJ%Mx zl#u@H0?Z#5^t8eANAN80uR7ko-r28vN23A$kM2R#MK+E8AtyS)DF*3p)V(qiQANEo zGYd_%QzPqpIs_d2X2u>NiSbs&wIf42tE8O&$UlZ#o91e9_qS5eP=06={4^Eu`mm#Q zX&2&8y!~}9tN82Pcl3&mpREV|H&3GZEcD2KLHOGdemYA&_OJLk7mlAdu==wA`{01w z)Y9tz=s#$Ah2F#g{c+>a$NdxM$msEK{x1#AUs49zzpfJ<=i-u(RRZ{nj>TiI_{A~8 z0~!GiNpWMtM8p*XJ$tvvsU!ah@Gmx;{zN+>)S{{u;HRrZG*cWxa%%i4`Ub{6(*F5b zB@lm#?q(I_IFz+C_wv(u@vf?60KLDu)woPT#LFfo`%nD0<;#tIVO~`gVX^-Y{P&<1 z=nr~_VEp}W`|Zs=-2!0zYwF<2b)X;S;L#J0esQiIXbW)9gUjqKRDcHXAu^(bwBDq z?p8e73zzwI)Ioe4o0(bMaL7J2xgsU5DvZnDKfVize~+phSqJzdy%4xQtUvCW`*FzP z=I8$=r@C?cLzOTte|q===u`%g#r?2;bobx{JBREQHEUzfM8uK)=fpEhJFxub7ghlM z%?VZ^Wlmvwz@M4x+CRkHk1ef7P0TL<|6}It?h})$sR{HK(McIUCclIHO2R_tes1Z} z`gJf@-rD?icAgx<|LKT%L}-NHWam_Unwej3_(>-$r>Jyw^E92X=nYdRuOs{aaYg2a znvEx<-vIM(oA6)uci$`VW%h@T(eL};soBp7g?m}U_;GtL(09-gvP%og`$ov%*6)$V zs){aPpP>DHMa4({!ve>DOjFZv$y{Msqs8XmdS9C>2nOahD1d@Z>DV<*7hL|dncFx5 z^d}6P0Kd@G0{l=`VR~cd#Of634K|$prQqZS zq@ca+3{Ob|^qXz5`)Gy>Ydt?@`HMX{|iSN*}3PSz| z#*ZrF6J}xjR}#jLaPVfmv2MM%HKtf>DI#GhFF znT(A|Sm`>5zY`)dA^U^*1JOBBh6@tXMzK%O&6w3m;sXpXr_yyztA|QJ|Co>Uf3pPu zKUn?&_*V%fSyjCjDCdP5r6Kb(JA%+)px z&oAvw15^;izq|?x=9b=G;aiaY7uNqh_tVk^`sG)M$~-Ds-rX%~>NBpg*Cnqinq(D# z{2QA8^n5}pO#C4KyKU*}k(pEo>tC_>%^;tUl%}nepOi@=mjA2k=imYSiJ-(ytFr>$ zVYzQgt3!_Xw;N^;+&$z&?|Cl{eJn>}^A8q57(eWW@e`6MJ|!5xiNwvnjKx_{e*ir{ zub_$YE#rq^{S5-~U;oGY#@Q0$_O=seM6N2}@GqeML+;~IpWvsyZXhaQ1^9#Xf8Zxe zJF;4)Hg=bv-m-aL)AA8b`49cs-GJCJ-1C2>J~$_*e$&}i!w}%_WeLL&e#<4N@+_1; z8(G_3Uf=&QzX&<-$+ZO54-fLGN^9F%K8V-LsrV3ytN%G*HIPy!)U>jd&Pgq6K}S(7 zAKS$&ol%vv;PrNoN^{6-ZK*_!(2XpUkZN94W8(+0hROYk3ndd&B?sRiv-y+h0Ugy%i3 zh!|=b0bMmA6@`HKpu7h4BM))UU>|4ym#Jm_v+MXk-v;6j3n$-5yMWM_IgNE~^Ha{Q zv1#c$Wb|yKJ%d~lK&xW+I1KTzu(5xBm57*(kX!xXJH$7B^-oQ#QOvmqzI{{F-T8HU>y#L`$Q^YZJza0#{7*gO)7?{t%q%$l zDp-HaoiS7M^Tiv7nz}daA328s{;7OuVk0i8py~WqSnqhrKP|7VALBH+@}83AtC#|w zIRP`@ZEMH0^r}y7sJhN?vvhpC{O9EqjLobAeCzr_{E2L-LPY=_>(J)*ac;rOVzP$z zej%x;AK!iGm>>Cb>^RG%^-X$qj&yaM8kfMuA8UV@S*NDg4yjmqd9LZyHVk}UTHpLw z+WT#GhKz-o*FUYYpd~aWyNVuEKClOUXS@eg^EUG{Zp{QKIU^KkzI{3*1c zysdY38UHP!prW_u6VS)6(}49!Km{6~GytrPY_IGwpP-r}rlEuQ)6cC_pnigy5#+O1 zNQJLOq$ZcXukPwvjW0n|SM>}nQJBzQlGaevH?|EqSfOJ@UJ(C%%bdeAST!gn%sb{a zqGO5xj=!MmYuMO&MrUP~L3&VU*SItof7quIl$Mdb?dTr__=noYj+yaw0s=0+`vwj! z0U>E+8jW+C_#0$gtP(4egjBYSyzk{TdLMag?~>F&`R1n169+$GkngxoP5Y&$7xrMj z%;6EA;)%2d_}ahuU;ETtM|anxmpO&y17pJx8HlQ?{<+?5mh(b9R}8G|&9%IJ)58+S z%j*umtx${V+_MZk3+(HGx%1@o#xaV1446On0>Zki+CL9A zb`Skr=a6KQxOk)=Z=41su{ENk^vl55Zwex+Q#_)|!eUqcS^q(C*6_g5(8$KO7~(IY z2FA$t$$%eG2KaMIQdA1+<07nI6~O8*K>iE#H-LXD9A5_dWiE#cQ2mX+se`>|z+fe+ zdt_)`a_h`-38?<+NdNxyb0QZ1#Ofb3>4UtAfloc5Rp`0k%9OV#ee9pm2vvP zoBz@e>N`5i7;9x=<6njusQ$v}P((^oTIQBfPGDSm|18lqA^UGgKkFW-q-zHFpKYvu zC$i-KRsRL_Ct|7^EZF)NJD7jMfcimINPnsDG$h$6JY*H0ux@Rh80LSujNO8xBbWD( zjlFRFjVh==yDqN@p5MLgRYra<&Ck7Ua%KxooPHPJFEx#ofIrL``@={p33Ra_K8*`0 z@__kcbjL|HUVz^a9_guKz@p6b&rAF+KV1A1A(VZ6Aa5uekez`X4+RT7Zuq z%19|&-%vHPvx#j>Lbr6cPHYoX9s~TVHmD184<6~l=~r{UZgcLQ5!8VAhv+PzzleP| zGx44JB&Q_A|ElY7B)!i*sz13PuVJY5AN|R%{Q91Or9=7~R6N)8)UB>Rh|P=v_ye~8 zkBeNnF8QJunQ7x47@bGU#M8G;4DipVNBXbXfof2H_PJ}ckBs&dn*h+qKY{dzL66_0 zf&8JOs_l=W&Ky)f6qi=s(fE0Me*IYI+P)wcABbNry~pXt36JUzc|@b$OX+~N*$Cn{YQU(RR5dgmh@)!T{+8R*UpiZZIX_o`U&UMx9Gf{(XT^W%%^9$#r}Xg zHbZ+4fInM&X>9J9C*Gm_afJVWC@$*ktN`&5j6b^BNhm#Z55#yCyw2+!`@a7TpBdD{ zhRgW@{sHi3n5u#b)~HMah5?AQF8qG7g6_#!g0hQ{|p!m>)s zdpjmK)&T!-T}BPmABZ05_tL0v_?Js0$ZrrID;q2S+5W`5o6)cGavD23S{F#^jaV)K z{k6HewzbEzkavxBjXfvU@c{n$NJi_rC76G&Qggxi{zvskKaT2$10q3u4CmkL9GZf% z`o?#?5g%dvxqohz3XhB#s~@{rpI=ftP}wrd+PY58z40U^wR=f#=k8hg6bazW*3MEq5OLu@ZS&OiV6X#huO!* zpGyCgf2C46(%%eKR&|YVtnM@LvPt^^{SMkID?jJ366UX{0se~Rp90(4K>bU7Xa5#A z<28uC1o+z9xU`bC&W=LV=h=>56A=Fh@|vdsPmLk{0gRt@G5w@a!s^%Fg~9rDkl$XQ z7ZSXoZgS7dKe+5|I~4y>e1qzjb*xmbDjC|?J+&=NYwjBT0o8x1ibyDd_&w#Q{^Xzf zSCHSv7k_LXC~HFwcR~CQH9r4Ifd40iBm(_WTKzr&Ef=eh7zNDV;qbFSpdSMGHZFcX z(odY|lma>yMhO)yW81VN{TLry|4fFBpL0Bcz7N))v2&B2Jtw9lnWl{_=^ve3-|M%I z@=qxK*g^OW(jRP`x}XC13*R0b|BKB(=p5`rL*mMvQJ>SsHYi!9xs|C5blm+y0Dcrc zRMts2I=QpWM9U@QXXaoU3hEyaGg~KD50vJAQWCIUFf?{^4~i{(U)}L-W{-X4K!ry{ z_x2t4Ct--9>Ylcl#dz0=AMpBrj7Lyf1;O{{r|!*UZuZDT5w^;4M`s ze(wTyeAIt1e;(=QWb^(-bXGy*f9fBia~&c6ZT+bJpqlfv&@SlzBm54o9~?OpQavXk zbJGZnE1drT|3-`*KkEmv&tJaDYW5g~^j~27kLrIkUGKX^=M*+}j04^BQT`eN@n_SW zmERVYm&lp_^4~omzlQZIIRgibd|U!@>S_>w2l9`eh`fpAoo3*F)OkStDA;cSUjG9( z#*XdL3kb^GQL}M<68|cr*aNg5_MbP7{O4c&iug@3=JSv3|AW7D!umg9EdOU2ex%MtD*6LCH*AadL^w+OiXOHkV*;`rmA)$!$ z*3O9@h(Cksj~+svMo+FCqYR6-Q@o&vlQAtz<+pbiJXXURzcC6 z*44!$6p;(?-_?Vr|6;#@w`U|};^dcPf9~}>Iytp z{Wz#!D1MVt)L6F)^6xV+e+l8%0f3(kD$S#6nOXcz&o0cXc>R*Arlo~PKyqvsfct?e{~M79|WOKOzMkQ=`Vbe-vIq5 zz>mooIk}|y}N-|~+rAX}gKz~{VpnNw_pM$OcWH)pQNk*jm9^uyqO4lX9 z{vQq={%S4R^An13Exo=ts+Xm4npomoH5ESM4ZEXu{*Ejj_@ zPXj}9czg7x`0fXUL-muzWnbndXa5jU2x{s8{`Xlxc=qcLo!yf&DRD?pFZ6S$oB0eE z$p7vexkSD|d@N5zR23tMn3*J?d^jYwF#BU`&&(`Y7VqVA>Pny%SI9jz<0 zgzPNJl2Y1c=02ez?~$*ediq)Cps1MI-kEQkQ|lM`HNgHau>V38AWOTa_NjS5{`xrZ zS?sIgvUZTS!T7}`IZ%Jg*qk3CTr%YVDri+&B00j?$=TdDPq+_3N;(q5s>) zriFKSvZtRv*lHsouYY!W2A=@zv%(AM0n&33b^WFFLm+>Biv;-w;Gh0G{vcsw>jb2h z@3Nu%62B0AyrSjW_}V>aKaqDP0DlNt-^>Q}$745P`~f$9sdTK&qVW31#b;=1`Sf{Q zS|-TbMwiJbPqLo_#cTK6BU9g?Dl0daXH(wg7j=Fe`n)u?E_9ktSyk3e*W!&=V8z(f zPrSXgU8*@<2X~*?D{3vRQ;YNKCjlNSuS-ZpDIlJd*$DF2?3coz+SltN#J<-#97BQT=70 zlf8FB8mK=A#^!&J{t~BuEC1L24{>P_{sr^*3_`Ge$D0>dzt@qTk3OK`=MqpMhw2Zr z^UUl$K>aTkf6FVNz|}7T{`pN(bub)1wtPJ$B6*X~>Xs?I{|w+CLSpjH0{!5%i`wQu ze+KY(Q2&dr8exXwAFO^nFEjzGKLPm{o{XBNd4jOCKQ#Z!OR7GPfc!z-3ED>|(%Q+Z z>3Kr_2MB-m?*^OYFb)Fz-CWmMGBhOTW7VgW4~sk0H2jhj22z_$wjvj$Z|lSL=SVae zGoOT#8mpyyP`LTq+y za6s_~h`&{Dq5JS{sV%hsHUU$VlmVH1#jqSUE=oPhk0XQJpnTiA&<( ze6PD6q0z4p^Z~*>^S5iXH z;l8swh~Mf^eM7saXwRM(69@G#@0;4ECTpSn53uXs;5o2e!A%brZ@0qADxg1H*gwv7 z<`{f`Q2%pXP20+E`4w1ycbJ*DF6yvi?JvhI27yo5eO6#s6X=iCE#3a^zf=Bep9*UK zk^S|SW+EFKHX!^0Y?7gCV&@f#)!#b))Bf3?;_5e#`1dV3n12<`3wxj10{nCuJ|4}= z+A95VbuD9f|B|3jWQ36Y0RHxxgg(d*;QaXn`UhD5e(^*5$0$eIrX#`rJLu`|&Ly%% z24+oRzAKjIMP878_+aZJ>NBQweT()akNloKJ>Z{ZGAf!{f&OWWl5FMoDwh8hO^!^> zLjLN6^gG9X@EkI+0{vQ6RDRw3IqKW*nc6`dh=2G>1?mSx)OGJWJq`Mi37)The`lJ8 zpO5$YB?(7OJKuneZfyR+bb?vnl8uhOqi4u-Z2oJE!~cPPlf=x_F5+2s&WC~i0wk!P zN8<^aM_OF_yW%{-N3N6Vj;PH3#PiQL6?c~?$a&!xU`3nLy zR(3U@|9^+If3W`t{rAZgdJe$vzwnBDg(?F4_bz&moo5ZMA8>u~A|D;zgf9I&KK6@@ z65{`X|3F6q{38!D#QSHTn2Xz64YVKR|F-TK8;3A|qkO1lp)Din@xV0%8^1YJeVzsJ zFEN_{(CyvFqY=jLf0erp_;)%HSzVwXGqZW*o=~4!(9}5#>bsk-{`J2`-fbZM&KRDZ z2l^jzemV6=+K%zbh+NSBjN)=Snj294J#PPzR{&pI>l@nu`acfUTL!nEdqw8t=Yaa} zApeB)PphE*zZ0vU#_6vn&>g3z57emUE>nX1C)ytNn`z|RCm5MQ{jtGqagXq9hg?X1 z+&}zleoKu{Tul0&k!f%orWm##aSCc02VMnTYbkXLW9Q1)RAfuzAp2ROUFPFX*R-Je zsmRRvfBPQ}WgQ#!kkA+uGQM_kkCbMcTR=kT{{8C)R?hB$K>rWwr?NZOr~!_I<9|T= z|Jpym|FHOrTTy9K+uNB{ateks&Y}SSxvy&%9r-}N zv9@udmloQ8;sk7eNlk4t-}iriCYcBJM=O5I$T%A7|HIzo!TMif2Qy38(6`x;{;7iS z3-FI$i1+jW)^PT%(|HFKKO+?}@?~`zy_;;xA zX6(B98_R#1+60w;g4cgW@h{}e+*ESP!jS%@>`hn-qG$-x@1Hw&K|)E#zzPZbzeAQ+ zHJu}~8wUh?Tq;*-?tuM+j5YNufR1W`l!TsBltNwR8in3n53d{O3{+(Y$p3cOSPu^2 z@mIn1|Ht898&Li0Lp1|ypicn&GuZ!#lI}FG;eBr=6&?j`o%_De5(dHkAv8<#Bzw%P zPD0w(fqv&j%F3rwmKqeaf7dqg;AK@A8f`1dr)dbMk}oq$n?S$30`v=#(Eb5O`tR8a z^vP5F(m4F*g>_F2CciEp!Vh=J!Eq%6YpnmLV};fqR)D8p;!#tKF|rR10r6imh?~Ir zE+H+XZukiK6voe40RGuGx=zx@E-ogc{{Pf<=J8Z*Zx}CROok*=MQIRKfk~GoVK&i-fOM* zeV*t0LjMQ*#{!!Ad)auG%Mtwt$iL(Kp35YWADLXoyFf-6{Eew@4v~Xwyiy;4f24r* z)90lBQbL6|e-Zi3r?=zoga1)#p}HEynBro09sI92e>U;+`W>Be>L~wrI5ahrR!2wm zf9vPzah}l;e(Zlh`gdZ;y}UK^7H(1H{o|ayX8`cSfIm|~_z#% zXX>x?x6J;VysnO|GvaSKUGs=e&)}J|E@FIm{2B7Y?E+gMKSaF$!BN=%@_vNSk0D=Y zXbAk9S^kx&J@D^v{)KI%_~So6xc4o>{)gB+$bX{0UqNM?(NFz2*l%pmzucs)b849y;a^Pv{?Z&;1?E3GQ5-Hi-#_?{T2#px z&*SBk$NV@I$dB3m{kbGHzx?CihDNs4YO)^N%&uIge+WUGpN>f#e(B{K{dDEDbix1Y zc5U|je`ckks!3`NHMc0gylME+{lu5Fw_iKBM`8U}&;!Sh;TzIKh$9*U!LQ0T+R71_bq!Ge zV*PgS@mc-$MFse8kbVpK!~g2HkD2-{>k?Tt&?k?31|&s1?kRaI&^M_%e%{&TdTbol zpZf>c1UI&}Z#OeP=NNtGaY>GYpYPB}kZ8^m`A{!NU7+YDn2HcF!$gOH_?=lq- zSR=d3?5vZ|t%zrJo!~#?Qxe>!a@g?F37ep>$ZC|+L;k1qm-X-9{;!bUzQdSeddkPw zGr%u3XMC=Z9QfZTCYS8Pqmm)N+S1WJHb-cqOz&O`=!e}(ggkqNdnD3l-)iWz*|-P< z#c0r8TDb(?jf-3+s-!bK%_+7dz}nKrJv=HRr?UJ#)?X(%M3f;%N$~S(b4$U$8~nQE z>vus3d36KR6$asvi3N!$zgpWSyhdpYMRo-1Cx#c?pM!6D(eOCe8W}5`A2%ZO1LXgJ z`V07@iUxLQ|7gGWs{TVS^aFrDB(_IEYqyEz={r8ugrU-!&wVI=y-`!mj2a2~Nh(pl zfj{`S{R?ugaD5u+KTQ7CGPkSYL3!X;fb%t4fA=!iZ|f|SpXMX{59ffJg#EL%NrSwQ z|K%1D7w6h4zX|fIu|@gMLZVYgYU=(OUc@DM8T*(1s(T3MKb${;`WN^!f}6ELzwtK? zf1dHSF{x)nXsO)vMv9ug-l?D0hjk0*N5+j75&1Ks|48Z|>UOqgu0(~H)W&=<4Ht0S>~G~NsRj*}=q>*nqX`QQn}?_uNFW?%~EugyU*mZ*Qh z#k~>Y*H)%*o(;(;pjFTEzg7c(hvbjU%)$H5Z}kt(FXR3AK?2ROf9d0=U-7z2j`zkXgT!s*Ym|k*#wR%Z#%E8 zbd4O?|(;riG=)!qem;+CFqQKtVH z^>3K@`QqA-JzS8R-Dz_P@<(SwXtkdpC^GeaT2)O)Zuf~p7Uz8---YXk((2N01K_WK z_gfp~FG>E_fApWaDPd7@1p|GvGtghh`J=hx$bVyq^0)uif64y;hRgQ1qEq4b!THI5 z+U87e*WCLH|6+K0l{nGr$+O7Op8_CF=^r#wL~Ydb#;O|bEh^@H}=cpu0=Jm=(FAP2bx;{Dk|zCTn_ zKe*xL5ton#?;p;u>hJpxKXbd$G`r|(L-j3s=5DrEfM4CmF0Hb5c#)`_5_*nmir=)> z(q6oy{RRHzR1V~yGv+(z;(Rm0;$a!_{abNC7t6R^^Ee*;w4}7F zviwc&AeS)Y25|r9c|h#|=)Y}KtQ^ezINX0!KQ?9MzhQisC%zo><1%pmYk;RT@nu%~J34wtCF4=8#G>mTSZ8z6t@bP?zGYi}f=^>>hS5#;Aw zNd7CqKk6dwi>X_mBA!YTNbZ{l?#52Ymwj55<}O zQJ0pOw7mL~FRfd61!Oj$^QRT^zxM$j7}jq~(!UG*1;}rxj0o{5K>ix~Z->onE>%$D zhe|#)e`Evyr-P;uC5iN}T9>~4`&&2HBFUnPA9{yn5x>{t(Y=!Fnzk=J?BXj|8JuE0 z>nM->XI&jE3pja|lvRLdB!0v~Co!$6xToW8QX1{ud&Vdar#PHH4pK}lZ^gt#7UsMH z{fmv6KfwA|C+XicK>UNG1XO>K{F>kLefe9qf2KQ6-*ml`Kt=p!(EqW1 z%cTnb|6}%Hp{Wl;U_VFvzu)z@wz`?xiGIZI27lpc+snV|f3+#I{%4#YrP4=5zOGf? zvJ1F|O#Tu0TXFyO3#lI+hNKwcPm=np2=*UX24{t!`h|1xB=~ntlwkciL-6}X$_84# zb4qPCr`$F=b{zfwBtJ2g^v^^874+W(W`1aT0qbx2AM#(mg8q%(E|fpEh5D+mBImDW z0i0j7)Y^Q40%w&6?avD;Uv>2Auu4nW6Z>aL$EaKc^8tC^scQb|>Uy={! zhG*rCt$pJKB!5WuH~!Kz%T$-9Ht<)yd~RE`KX0oa?H69LM`_De6Jy|ilKh>Y{NdmF z&n%paAV1-^M|F>x*=66j2JF8S@0pNT44gdZ|I?~l3$n_K@6g{gHh)F+BjgY4PI?#u zfBRbbht7T;#DDDo{yX#!;7cUdTtV0P|CS?Y}=vZ>sE=JH{cVv_togUFNQSH=`dzKUH!)#k}F~?$7!EER@h% zvPuo}3ot+PNduhz34Z6V`A_2f#e2{m_`89xX()dU`ajl>&n`FEf9!(Gjp)h5x>pV0 zXO*7OP%}~98DIna_5L90(0I+q2}K?W;FoN30{{N4!0zcUqL(~@e~|_GyLHgF8OHo7 z2jD++wv5hS3HtbfO*?svtuAW;zdfy*&_8~C|GWao{pa-M>n?ZFa!T@EHMg+xatq6D z+P(MSxr;vTejyQwS+#u-al`y*U6kKFt#9u_^@z)a^Is~xxSGjYSI@_>*_VQV|6Tp1xo4g*hs9ZU;Gei8dqhy* z=P{C95q~Lx9q#|Qw%L_)y2mWw`hF4V(Elu#{Pay*QU>@}&VEtR+06W}lB$ZHxy((s z(1$5c{OV{gi!py1J%6$$F5ZC+j_H|&O#dmbSg^XT3FSd*SVC@7_qRTl8KEVrd;c&y z>YHBw(fe*<9?$2ynUCwgjkCVxkWknDZ~mIwP#*gq@1$22FuwJTF9840R-JveZWn`) ze;K$z-&t4-$|}_7i)@0v(jmzIUVM`KB%`pja#Tp1;Q#qy{}t+g2{Jy6@Qb59!d-i} z()6NyMpM7f{X$w%3wTpHx9#RrFtD_>_6KWf-s|S}(boP?JaT%cY}|ePW1r{!#dzP# z@9o~1O3&~+cmXKK!3gt&k^Vsv-|{4vtyT??*t_f{V(v}L;n~0 z=d=0A$nGKFKQ$x&hbA+>71hV&KZ&xT^#}TYIKRLvmLc?OejD)*z{d#r{Ba2t#NVNU z|EB$Zc`4(I3Ok?3GI{M?>*A7b*__Ew$p!vy_tcD-vhs!lW~bo%b3HI3c7)6y74*UV zo6ELD)8w$TLquFgS{376PtW8cQRPEN&bhfD{*4v%-|9Q72Hwdj&DgsF{}=KU#h<@G zzg$34^XL4JL#I4^qN3sp^BDErY_M-0P|`4pJju*&%^L*&qr~Dh?mS|is>cLLLs(fNag z(fM^oNPLZ>yLX7rS)YKfq51Xnp3gfvgcQ`4YRT#9njgDT5PbXDlNrRVK5)WfyPl58 z*_?2{IBIU5XlnWEH;6ykD7$VipMkTppYg2+v=@zyV-s})3hRKssj6#o=De>#IOwNP zH!qzpB(OzQ-^BEc+qJNir>|wXMsA^^z4*fssld57ne14@@tW{sJ`NR@MwL@pF&hi)6XhZ(O z$lS(0!TX?{oVYnIXKRE<{q|AevKUmA;&m6@3|76Vn|3>B)<(+OOS=Kzq z=U-WvpRiy5fJ#{Ct$5&{`6ng3s&3I*B%`Y87O1Xga@fWpG(02sX>)4}8;hNnZ7|6{ zf7jAnhWMS#&p!$C_e~-4!@hqH8B5yUugY+qMiZe6y!hcvU0$x2>M$$7r%(qeAGY93;mV<2KgM|mx2B|`~HJY z2mYZ1#NYmz|LkDq2f=>^`9m`Q+5WYQ+<;W2GXhYPoBQ2!UtPtmoIg8oJDjceDSzJd84mGK|Cr-7f`uCB)?DC-OThg&b} zD)Dxhq4s;mVCfpe)F%Y z)@3b-U*+f;7Gq*Tw?h0H@PFg{_~png;GaPJWys&XZDouIfPdUYMLX&V@V)9&fiHW> zGolXiuj%;rTQBPg{PJ5VFF^lhUVmh_8R$#9cG*%LF9xQ@l<>X*9Z4Pd(P175F^*ZF zKMIMjm)F#n2md4Dr#ATi4f|Lr+`mB~DM#f4UP(E*rF;w8$9N>87d5PeUg#{{}JRj)W-ZgXY;qywixy$8bT!{03P&CZXsQT2-!o>^g zfy0GAXZK&<`-%DaZ7t(tLTjWUH_s3IW5|6x{|U~2^)ui=aTcY2>x2p zulaY(59OdB{*bK|>|-SVQA7vEMhY9cfAEchzkQXo#`=9G zNsg}Jkx}VY70}1P^E-Mvfq!|}`MSR=%zt?S`2qa=!1)>Ww}0_h$iM%HUHY%{ClLP$ z>JR8o#}!n5`J}_L2>iDPtTn)Y?CyM>O7J(pe~#xjP*2?qhW&?LlbX+HX@2vAS6Bu3 zFfe~1z$YXN`FB2Z3NFI)A0ThJOhr8rIL!s`>$!TSRxDTM`02mx>lqq>`47FE!V;K2 zjQA^U;D6|7C+8nfD3>k-heoHC(W^T;$7MCNjSUTV*_?tr{Jj@1p&oh^|1`aZ!AQw~ zrUA^~IOP+b>_GBkzR9cop`yAE@q_fK@s4c+*nbA=zqz$2^mmE*U(-MDKmPsekpBbo zD|XLe$NnP+?{tzsA+w^7IscA|`E7N;Z_TQP{BdPvUuO^SDOKfl|Mc>Xjx8y#t8E+S z7nPRXbKd@ni%+cnKFc$}AD|}F%f7U7V*l0s?Bj60BIe&{&1dp6sHX7|ne;lSUbY+k z%)fit-0->mAooq1fb7rf-*k$&7Y(3n$e%{Q{ztt3Tb-}F#HTytSJAs?=TBML`2#AY zqPBLJh3m)sRchKg#}u}&viCEh)l_tM0k7s&Z9{V>=v`~2H|SCv8$R{T+=K%2M zY%Yfy;{46qjv>0HwvL%O^ut2pF^}X{X8LoGp!HAMJFZ);p=;=L|VS;{HymZ@>9YGWtBG>m{MVWO?Y}ng?Q80cb4PUz^@_lPx&`esM#g0OZs|w zj0HF8ZHc-T=^XYTF9ZG@8_rKbf0pS#&}6RPTM|N}i{F&@cBi8L eKjwdGr3I%KmXsDD{xsw-FhAGc!xiP2KK>7h92(L9 diff --git a/Content/Materials/testo.flax b/Content/Materials/testo.flax index 27fb9fd465dd92c01a226fe153c935797078cc1f..2eecd11e8537a8faef50514bdf3f24a66c7d2231 100644 GIT binary patch literal 31872 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 TP0erUn?d=*-~A(O{<{4?C}nq` literal 5522 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 diff --git a/Content/Materials/testoinst.flax b/Content/Materials/testoinst.flax new file mode 100644 index 0000000000000000000000000000000000000000..2edaaa74caaf9f3ee7ea65432624873035e7fdb7 GIT binary patch literal 554 zcmZ>E3wPsWzyypyq4(8SH#g?+`|Nl(`!r`s@Od|e9EL=O3INe9XgElw@UOUz9Lin-?}`ec@5mij8yf^_n{)LXQ24uk&! z;W+!!6-?`yfnmmRZfUgY8nvszgsPwnS1&u=*Q#FoiT+uiV#5aKa cgFt*-gO!1yvq+1hdZUt8<5uZ=GQJLT0JbEVjQ{`u literal 0 HcmV?d00001 diff --git a/Content/SceneData/MainScene/Terrain/92de37984e46b6e605d9928cc985c1b6_ 0_ 0_Heightfield.flax b/Content/SceneData/MainScene/Terrain/92de37984e46b6e605d9928cc985c1b6_ 0_ 0_Heightfield.flax new file mode 100644 index 0000000000000000000000000000000000000000..dc491ce6be1df9707bc2a457a87b2604b9f20358 GIT binary patch literal 1036884 zcmeIuK`R7d7y#f;T(*>he=uk54{#t2gII~gNln_=+Fe>BO0xMI%F)%;jh`UDML8|L zvAa1qa*&>Pdf)lx{pOo_d(vz>tAy_{5?c?Kx39Iy@ztA^z3NPJcRvfwkcYFd5ZYls zG-9oXYS@Uq(=Z=v5pyma$EzOKzaNkBljU5`v0Ob(eE#6C%~;M?#`_PVJb!opd|i$A z^JKYobl54@^Wq?xPLip?^VV^_)6QG<*jqfzR~tp+q?TNiC;QQzUEA3lS<05Oa-v== zWrl7q?dMxMcrl6&XC8J!81BBMW3gFz8U5O_B0zuu0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N c0t5&UAV7cs0RjXF5FkK+009C72>b(q4@Yu-yZ`_I literal 0 HcmV?d00001 diff --git a/Content/SceneData/MainScene/Terrain/92de37984e46b6e605d9928cc985c1b6_ 0_ 0_Heightmap.flax b/Content/SceneData/MainScene/Terrain/92de37984e46b6e605d9928cc985c1b6_ 0_ 0_Heightmap.flax new file mode 100644 index 0000000000000000000000000000000000000000..0e8d175a3745e3888936c7f4c625d28f940f8ea7 GIT binary patch literal 1398627 zcmeIwF>4e-6ae6fM#0WPJF8Q$i6IFJno2#r5HTSn5hJ3qUM9)GB;<3Je$g!_~n%D z9#2!Z9rKg))ZK{rN%}u`zDZffCpZ(OH^*#Z=c0fA!*(rlQ?t40(VF{ewqA+n$;~v; zlwN=OSiFkByVml4IjrinqTXvQwpufj_a~!V4T}97v87@0xL5baE3vrwri{>hWR33C z{bJNw+$s8_Jkwgu2f5m)t6c1##@fUEvdW`Ks;hD2EDyGGnPV8#?Y&|!$o-%DN9#-X zPd6^*L9U8Auk^~5qCDN->G#TKr%CI1)O#DnObS?wKjrEm-|LrqMSB?46uZA!UC%qY z%7bpC&CTA5!{x(zT;-)|I4)a@H{z5V-J;)|cXn>3wNe~z9RKk4{GEkZiuqP7%`MzK zd5Ovqa0kIx~3PU;rE10dqpbzA0GAJ-G W{r~^J9;kXLV=yDbgE5001M~m?|LcK#hQF`4 F7yz7l4(0#= diff --git a/Content/Shapes/cylinder_12_collision.flax b/Content/Shapes/cylinder_12_collision.flax index 2f2699bcfd781838cf3dde16245a3aaf06eb991e..a2fb457271cc0ded3d92db4f2fa72ac99c7b8cf6 100644 GIT binary patch delta 21 bcmeyw{fT?SCq|b4Krs0uW6b6trUlFZg<=aS delta 19 bcmeyw{fT?SC&tMvOnws!gf<5;Eno%!Qy>RI diff --git a/Content/Textures/GoakeLogo.flax b/Content/Textures/GoakeLogo.flax index a01200efcae7c112dcf317b24251813221e16beb..58bd802c101c9279ff028002e8a3779d3d1a200b 100644 GIT binary patch delta 152 zcmZp@%hht1Yr>Y?Gt3M?zyu-~&M*V%1~8N1Of!(J0A()*vN@pa)j&27fxwxyOfcmP zKI@oZ${BKiY^ZXE5+rubW<^GBM#dSFb(s=4-SZQDGD|W`eVeBD_7o Dwq_hF delta 153 zcmZp<%hh_9Yr>Y?v&;-Yzyu-~&N2h(1~8N1Y%`Fp0A()*vN@pa)j&27fxy|dOfcmP zzU!D^${BKjY^ZXEQY3cmW<^GBM#hl9E&o;O7nAaQcIerF||))V%$EBiRs;H E0NNTH&;S4c diff --git a/Content/config.cfg b/Content/config.cfg index 946a129..d417c77 100644 --- a/Content/config.cfg +++ b/Content/config.cfg @@ -1,5 +1,7 @@ // comment -r_shadows 1 -r_lighting 0 +r_shadows 0 +r_lighting 1 cl_maxfps 0 - +r_upscaling 0 +r_gi 0 +r_staticbatch 0 \ No newline at end of file diff --git a/GoakeFlax.code-workspace b/GoakeFlax.code-workspace index 578fec4..4a46a8f 100644 --- a/GoakeFlax.code-workspace +++ b/GoakeFlax.code-workspace @@ -5,7 +5,8 @@ "gulp.autoDetect": "off", "jake.autoDetect": "off", "grunt.autoDetect": "off", - "omnisharp.defaultLaunchSolution": "GoakeFlax.sln" + "omnisharp.defaultLaunchSolution": "GoakeFlax.sln", + "omnisharp.useModernNet": true }, "folders": [ { @@ -14,7 +15,7 @@ }, { "name": "Flax", - "path": "C:\\dev\\Flax\\Flax_master" + "path": "C:\\dev\\Flax\\FlaxEngine" } ] } \ No newline at end of file diff --git a/GoakeFlax.flaxproj b/GoakeFlax.flaxproj index 10a4e7c..c96a103 100644 --- a/GoakeFlax.flaxproj +++ b/GoakeFlax.flaxproj @@ -8,19 +8,22 @@ "References": [ { "Name": "$(EnginePath)/Flax.flaxproj" + }, + { + "Name": "$(ProjectPath)/Plugins/FidelityFX-FSR/FidelityFX-FSR.flaxproj" } ], "DefaultScene": "194e05f445ece24ec5448d886e1334df", "DefaultSceneSpawn": { "Position": { "X": 116.954315, - "Y": 144.595688, + "Y": 144.59569, "Z": -33.48802 }, "Direction": { - "X": 0.253866524, + "X": 0.25386727, "Y": -0.09813716, - "Z": -0.9622477 + "Z": -0.9622475 } }, "MinEngineVersion": "0.0.6194", diff --git a/Plugins/DLSS b/Plugins/DLSS new file mode 160000 index 0000000..26b60f7 --- /dev/null +++ b/Plugins/DLSS @@ -0,0 +1 @@ +Subproject commit 26b60f7cdcb6197d9f548bf39de477fe0d57c49c diff --git a/Plugins/FidelityFX-FSR b/Plugins/FidelityFX-FSR index c230092..a4dd32b 160000 --- a/Plugins/FidelityFX-FSR +++ b/Plugins/FidelityFX-FSR @@ -1 +1 @@ -Subproject commit c230092c5df12804c6352868f7b7de1cb52df6de +Subproject commit a4dd32b650a9df75d12579d4a3be40546e87d063 diff --git a/Source/Game/Camera/CameraRender.cs b/Source/Game/Camera/CameraRender.cs index 9821984..2fa2448 100644 --- a/Source/Game/Camera/CameraRender.cs +++ b/Source/Game/Camera/CameraRender.cs @@ -95,6 +95,25 @@ namespace Game materialInstance.SetParameterValue("Input", texture); materialInstance.SetParameterValue("Depth", texture2); + materialInstance.SetParameterValue("New parameter", true); + materialInstance.SetParameterValue("New parameter 0", ChannelMask.Blue); + materialInstance.SetParameterValue("New parameter 1", new Color(0.67f)); + + materialInstance.SetParameterValue("New parameter 3", 123f); + materialInstance.SetParameterValue("New parameter 4", new Float2(1,2)); + materialInstance.SetParameterValue("New parameter 5", new Float3(1,2,3)); + materialInstance.SetParameterValue("New parameter 6", new Float4(1,2,3,4)); + + materialInstance.SetParameterValue("New parameter 8", 123); + materialInstance.SetParameterValue("New parameter 9", new Matrix(0.666f)); + + materialInstance.SetParameterValue("New parameter 11", new Quaternion(0.5f, 0.5f, 0.5f, 0.5f)); + + materialInstance.SetParameterValue("New parameter 13", new Vector2(1,2)); + materialInstance.SetParameterValue("New parameter 14", new Vector3(1,2,3)); + materialInstance.SetParameterValue("New parameter 15", new Vector4(1,2,3,4)); + //materialInstance.SetParameterValue("New parameter 16", new Transform(new Vector3(1,2,3), new Quaternion(0.5f, 0.5f, 0.5f, 0.5f))); + lastEnabled = true; } diff --git a/Source/Game/Console/ConfigParser.cs b/Source/Game/Console/ConfigParser.cs index 88ec4ba..fe2b950 100644 --- a/Source/Game/Console/ConfigParser.cs +++ b/Source/Game/Console/ConfigParser.cs @@ -13,7 +13,10 @@ namespace Game { Config config = new Config(); if (!File.Exists(path)) + { + Console.Print($"Config file not found in path: {path}"); return config; + } /*using*/ FileStream file = File.OpenRead(path); /*using*/ StreamReader sr = new StreamReader(file); diff --git a/Source/Game/Console/Console.cs b/Source/Game/Console/Console.cs index b80178d..6c786f0 100644 --- a/Source/Game/Console/Console.cs +++ b/Source/Game/Console/Console.cs @@ -228,8 +228,12 @@ namespace Game // Initializes the Console system. internal void InitConsoleSubsystems() { - AppDomain currentDomain = AppDomain.CurrentDomain; - var assemblies = currentDomain.GetAssemblies(); + //AppDomain currentDomain = AppDomain.CurrentDomain; +#if USE_NETCORE + var assemblies = Utils.GetAssemblies(); +#else + var assemblies = AppDomain.CurrentDomain.GetAssemblies(); +#endif foreach (Assembly assembly in assemblies) { @@ -490,7 +494,7 @@ namespace Game if (value != null) cvar.SetValue(value); - //if (!noOutput) + if (!noOutput) Console.Print("'" + execute + "' is '" + cvar.GetValueString() + "'"); } else diff --git a/Source/Game/Console/ConsoleContentTextBox.cs b/Source/Game/Console/ConsoleContentTextBox.cs index b8babc1..c3ad826 100644 --- a/Source/Game/Console/ConsoleContentTextBox.cs +++ b/Source/Game/Console/ConsoleContentTextBox.cs @@ -29,7 +29,7 @@ namespace Game public int ScrollMouseLines = 3; public int ScrollOffset; - + public bool SelectionAllowed = true; private bool selectionActive; public Color SelectionColor = new Color(0x00, 0x7A, 0xCC); @@ -429,6 +429,9 @@ namespace Game public override bool OnKeyDown(KeyboardKeys key) { + if (!SelectionAllowed) + return false; + bool shiftDown = Root.GetKey(KeyboardKeys.Shift); bool ctrlDown = Root.GetKey(KeyboardKeys.Control); @@ -462,6 +465,9 @@ namespace Game public override bool OnMouseWheel(Float2 location, float delta) { + if (!SelectionAllowed) + return false; + if (delta < 0) { ScrollOffset -= ScrollMouseLines; @@ -481,6 +487,9 @@ namespace Game public override bool OnMouseDown(Float2 location, MouseButton button) { + if (!SelectionAllowed) + return false; + bool ret = false; if (button == MouseButton.Left && !IsFocused) { @@ -527,6 +536,9 @@ namespace Game public override void OnMouseMove(Float2 location) { + if (!SelectionAllowed) + return; + if (selectionActive) if (HitTestText(location, out int hitLine, out int hitChar)) { @@ -539,6 +551,9 @@ namespace Game /// public override bool OnMouseUp(Float2 location, MouseButton button) { + if (!SelectionAllowed) + return false; + if (button == MouseButton.Left) { OnSelectingEnd(); @@ -553,6 +568,9 @@ namespace Game { base.OnMouseLeave(); + if (!SelectionAllowed) + return; + if (selectionActive) { OnSelectingEnd(); diff --git a/Source/Game/Console/ConsoleInputTextBox.cs b/Source/Game/Console/ConsoleInputTextBox.cs index 68d5143..b927fa7 100644 --- a/Source/Game/Console/ConsoleInputTextBox.cs +++ b/Source/Game/Console/ConsoleInputTextBox.cs @@ -134,6 +134,11 @@ namespace Game if (key == KeyboardKeys.PageUp || key == KeyboardKeys.PageDown) return contentBox.OnKeyDown(key); +#if FLAX_EDITOR + if (key == KeyboardKeys.F5) + return false; +#endif + return base.OnKeyDown(key); } diff --git a/Source/Game/Console/ConsolePlugin.cs b/Source/Game/Console/ConsolePlugin.cs index 21b3511..422cf23 100644 --- a/Source/Game/Console/ConsolePlugin.cs +++ b/Source/Game/Console/ConsolePlugin.cs @@ -1,13 +1,58 @@ using System; using FlaxEngine; using Console = Game.Console; +using System.Linq; #if FLAX_EDITOR using FlaxEditor; #endif namespace Game { - public class ConsolePlugin : GGamePlugin + public class ConsolePlugin : GamePlugin + { + public ConsolePlugin() + { +#if FLAX_EDITOR + _description = ConsoleEditorPlugin.DescriptionInternal; +#endif + } + + public override void Initialize() + { + //FlaxEngine.Debug.Log("ConsolePlugin initialized"); + Console.Init(); + + //AssetManager.Init(); // TODO: move these elsewhere +#if !FLAX_EDITOR + Level.SceneLoaded += OnSceneLoaded; +#endif + } + + public override void Deinitialize() + { +#if !FLAX_EDITOR + Level.SceneLoaded -= OnSceneLoaded; +#endif + } + + private void OnSceneLoaded(Scene scene, Guid guid) + { + Level.SceneLoaded -= OnSceneLoaded; + LoadConfig(); + } + + private void LoadConfig() + { + Console.Print("Loading config file (GamePlugin)"); + AssetManager.Globals.ResetValues(); + + foreach (var line in AssetManager.Config.GetLines()) + Console.Execute(line, false, true); + } + } + +#if FLAX_EDITOR + public class ConsoleEditorPlugin : EditorPlugin { public static PluginDescription DescriptionInternal = new PluginDescription { @@ -19,49 +64,25 @@ namespace Game Category = "Game" }; - public override void Init() - { - //FlaxEngine.Debug.Log("ConsolePlugin initialized"); - Console.Init(); - - AssetManager.Init(); // TODO: move these elsewhere - - //Level.SceneLoaded += LoadConfig; - } - - public override void Deinit() - { - //Level.SceneLoaded -= LoadConfig; - } - - private void LoadConfig(Scene scene, Guid guid) - { - Console.Print("Loading config file"); - AssetManager.Globals.ResetValues(); - - foreach (var line in AssetManager.Config.GetLines()) - Console.Execute(line, false, true); - } - } - -#if FLAX_EDITOR - public class ConsoleEditorPlugin : GEditorPlugin - { public override Type GamePluginType => typeof(ConsolePlugin); public ConsoleEditorPlugin() { - _description = ConsolePlugin.DescriptionInternal; + _description = DescriptionInternal; } - public override void Init() + public override void Initialize() { //FlaxEngine.Debug.Log("ConsolePlugin initialized"); Console.Init(); - AssetManager.Init(); + //AssetManager.Init(); - Level.SceneLoaded += LoadConfig; + Level.SceneLoaded += OnSceneLoaded; + + FlaxEditor.Editor.Instance.PlayModeBegin += OnPlayModeBegin; + FlaxEditor.Editor.Instance.PlayModeEnd += OnPlayModeEnd; + //Scripting.Exit += OnScriptingExit; /*AssetManager.Init(); // TODO: move these elsewhere AssetManager.Globals.ResetValues(); @@ -70,20 +91,51 @@ namespace Game Console.Execute(line, false, true);*/ } - public override void Deinit() + /*private void OnScriptingExit() { - Level.SceneLoaded -= LoadConfig; + FlaxEditor.Editor.Instance.PlayModeBegin -= OnPlayModeBegin; + FlaxEditor.Editor.Instance.PlayModeEnd -= OnPlayModeEnd; + }*/ + + private void OnPlayModeBegin() + { + //FlaxEditor.Editor.Instance.PlayModeBegin -= Instance_PlayModeBegin; + LoadConfig(); + GameMode.StartServer(true); } - private void LoadConfig(Scene scene, Guid guid) + private void OnPlayModeEnd() { - Console.Print("Loading config file"); + GameMode.StopServer(); + } + + public override void Deinitialize() + { + Level.SceneLoaded -= OnSceneLoaded; + Level.SceneLoaded -= OnSceneLoaded; + if (FlaxEditor.Editor.Instance != null) + { + FlaxEditor.Editor.Instance.PlayModeBegin -= OnPlayModeBegin; + FlaxEditor.Editor.Instance.PlayModeEnd -= OnPlayModeEnd; + } + } + + private void OnSceneLoaded(Scene scene, Guid guid) + { + Level.SceneLoaded -= OnSceneLoaded; + Level.SceneLoaded -= OnSceneLoaded; + LoadConfig(); + } + + private void LoadConfig() + { + Console.Print("Loading config file (EditorPlugin)"); AssetManager.Globals.ResetValues(); foreach (var line in AssetManager.Config.GetLines()) Console.Execute(line, false, true); - } + } } #endif } \ No newline at end of file diff --git a/Source/Game/Console/ConsoleScript.cs b/Source/Game/Console/ConsoleScript.cs index 62bc6f7..f450953 100644 --- a/Source/Game/Console/ConsoleScript.cs +++ b/Source/Game/Console/ConsoleScript.cs @@ -24,7 +24,7 @@ namespace Game internal InputEvent consoleInputEvent; private ConsoleContentTextBox consoleNotifyBox; - [Limit(0)] public int ConsoleNotifyLines = 3; + [Limit(0)] public int ConsoleNotifyLines = 15; [Limit(0f)] public float ConsoleSpeed = 3500f; @@ -108,6 +108,7 @@ namespace Game consoleNotifyBox.BackgroundSelectedFlashSpeed = 0; consoleNotifyBox.BorderSelectedColor = Color.Transparent; consoleNotifyBox.CaretFlashSpeed = 0; + consoleNotifyBox.SelectionAllowed = false; } Float2 locationFix2 = consoleNotifyBox.Location; diff --git a/Source/Game/Console/EngineSubsystem.cs b/Source/Game/Console/EngineSubsystem.cs index 493fbfe..44da595 100644 --- a/Source/Game/Console/EngineSubsystem.cs +++ b/Source/Game/Console/EngineSubsystem.cs @@ -1,16 +1,48 @@ using System; using System.IO; using System.Linq; -//using FidelityFX; +using FidelityFX; +#if COMPILE_WITH_DLSS +using NVIDIA; +#endif using FlaxEditor.Content.Settings; using FlaxEngine; namespace Game { + public enum UpscalingMode + { + None, + DLSS, + FSR1, + } + // Holds Console variables and commands to control engine behaviour public static class EngineSubsystem { - //private static FSR _fsrPlugin; + private static FSR _fsrPlugin; + public static FSR FsrPlugin + { + get + { + if (_fsrPlugin == null) + _fsrPlugin = PluginManager.GetPlugin(); + return _fsrPlugin; + } + } + +#if COMPILE_WITH_DLSS + private static DLSS _dlssPlugin; + public static DLSS DlssPlugin + { + get + { + if (_dlssPlugin == null) + _dlssPlugin = PluginManager.GetPlugin(); + return _dlssPlugin; + } + } +#endif // TODO: this should manually set all postprocessing values to 0 or disabled /*[ConsoleVariable("r_postprocessing")] @@ -98,30 +130,122 @@ namespace Game } } - /*public static FSR FsrPlugin + private static UpscalingMode GetUpscalingMode() + { + return (UpscalingMode)int.Parse(Upscaling); + } + + [ConsoleVariable("r_upscaling")] + public static string Upscaling { get { - if (_fsrPlugin == null) - _fsrPlugin = PluginManager.GetPlugin(); - return _fsrPlugin; +#if COMPILE_WITH_DLSS + if (DlssPlugin.PostFx?.Enabled ?? false) + return ((int)UpscalingMode.DLSS).ToString(); +#else + if (false) { } +#endif + + else if (FsrPlugin.PostFx?.Enabled ?? false) + return ((int)UpscalingMode.FSR1).ToString(); + else + return ((int)UpscalingMode.None).ToString(); + } + set + { + if (int.TryParse(value, out int intValue)) + { + UpscalingMode upscaling = (UpscalingMode)intValue; + +#if COMPILE_WITH_DLSS + if (DlssPlugin.PostFx != null) + { + if (upscaling == UpscalingMode.DLSS) + { + if (DlssPlugin.Support == DLSSSupport.Supported) + DlssPlugin.PostFx.Enabled = true; + else + { + DlssPlugin.PostFx.Enabled = false; + Console.Print("DLSS not supported"); + } + } + else + DlssPlugin.PostFx.Enabled = false; + } +#else + if (upscaling == UpscalingMode.DLSS) + { + Console.Print("DLSS not supported: compiled without COMPILE_WITH_DLSS"); + upscaling = UpscalingMode.None; + } +#endif + + if (FsrPlugin.PostFx != null) + FsrPlugin.PostFx.Enabled = upscaling == UpscalingMode.FSR1; + } } } - // TODO: r_upscaling - [ConsoleVariable("r_fsr_enabled")] - public static string FsrEnabled +#if !COMPILE_WITH_DLSS + private static float dummy_DlssSharpness; + private static int dummy_DlssQuality; +#endif + + [ConsoleVariable("r_dlss_sharpness")] + public static string DlssSharpness { - get => FsrPlugin.PostFx.Enabled ? "1" : "0"; + get + { +#if COMPILE_WITH_DLSS + return DlssPlugin.Sharpness.ToString(); +#else + return dummy_DlssSharpness.ToString(); +#endif + } set { - bool boolValue = false; - if (int.TryParse(value, out int intValue)) - boolValue = intValue != 0; - else if (float.TryParse(value, out float valueFloat)) - boolValue = valueFloat != 0f; + if (float.TryParse(value, out float valueFloat)) + { + valueFloat = Mathf.Clamp(valueFloat, -1f, 1f); +#if COMPILE_WITH_DLSS + DlssPlugin.Sharpness = valueFloat; +#else + dummy_DlssSharpness = valueFloat; +#endif + } + } + } - FsrPlugin.PostFx.Enabled = boolValue; + [ConsoleVariable("r_dlss_quality")] + public static string DlssQuality + { + get + { +#if COMPILE_WITH_DLSS + return ((int)DlssPlugin.Quality).ToString(); +#else + return dummy_DlssQuality.ToString(); +#endif + } + set + { + if (int.TryParse(value, out int intValue)) + { +#if COMPILE_WITH_DLSS +#if USE_NETCORE + intValue = Math.Clamp(intValue, 0, (int)DLSSQuality.MAX-1); +#else + intValue = (intValue > (int)DLSSQuality.MAX-1) ? ((int)DLSSQuality.MAX-1) : (intValue < 0 ? 0 : intValue); +#endif + DlssPlugin.Quality = (DLSSQuality)intValue; +#else + //intValue = Math.Clamp(intValue, 0, 4); + intValue = (intValue > 4) ? 4 : (intValue < 0 ? 0 : intValue); + dummy_DlssQuality = intValue; +#endif + } } } @@ -143,7 +267,6 @@ namespace Game } } } - */ [ConsoleVariable("cl_showweapon")] public static string ShowWeapon @@ -204,8 +327,8 @@ namespace Game boolValue = valueFloat != 0f; AssetManager.Globals.SetValue("Scene Lighting", boolValue); - AmbientOcclusion = value; - GlobalIllumination = value; + //AmbientOcclusion = value; + //GlobalIllumination = value; } } @@ -378,7 +501,7 @@ namespace Game { get { - return ((bool)AssetManager.Globals.GetValue("Scene Shadows") ? "1" : "0"); + return (bool)AssetManager.Globals.GetValue("Scene Shadows") ? "1" : "0"; } set { @@ -392,6 +515,25 @@ namespace Game } } + [ConsoleVariable("r_staticbatch")] + public static string StaticBatch + { + get + { + return (bool)AssetManager.Globals.GetValue("Static Batching") ? "1" : "0"; + } + set + { + bool boolValue = false; + if (int.TryParse(value, out int intValue)) + boolValue = intValue != 0; + else if (float.TryParse(value, out float valueFloat)) + boolValue = valueFloat != 0f; + + AssetManager.Globals.SetValue("Static Batching", boolValue); + } + } + [ConsoleCommand("playdemo")] public static void PlayDemoCommand(string[] text) { @@ -402,8 +544,8 @@ namespace Game if (!demoName.EndsWith(".gdem")) demoName += ".gdem"; - PlayerActor playerActor = Level.GetActors().First(x => - x.GetScript().PlayerId == NetworkManager.LocalPlayerClientId); + PlayerActor playerActor = Level.GetActors().First(/*x => + x.GetScript().PlayerId == NetworkManager.LocalPlayerClientId*/); string demoPath = Path.Combine(AssetManager.DemoPath, demoName); if (File.Exists(demoPath)) @@ -427,8 +569,8 @@ namespace Game if (!demoName.EndsWith(".gdem")) demoName += ".gdem"; - PlayerActor playerActor = Level.GetActors().First(x => - x.GetScript().PlayerId == NetworkManager.LocalPlayerClientId); + PlayerActor playerActor = Level.GetActors().First(/*x => + x.GetScript().PlayerId == NetworkManager.LocalPlayerClientId*/); var playerMovement = playerActor.GetScript(); string demoPath = Path.Combine(AssetManager.DemoPath, demoName); @@ -465,6 +607,19 @@ namespace Game Scripting.Update += TimeDemoOnUpdate; } + [ConsoleCommand("map")] + public static void MapCommand() + { + //NetworkManager.StartServer(true); + GameMode.StartServer(true); + } + + [ConsoleCommand("connect")] + public static void ConnectCommand() + { + GameMode.Connect(); + } + [ConsoleSubsystemInitializer] public static void Initialize() { diff --git a/Source/Game/Game.Build.cs b/Source/Game/Game.Build.cs index a2cbee7..aa99a19 100644 --- a/Source/Game/Game.Build.cs +++ b/Source/Game/Game.Build.cs @@ -1,8 +1,11 @@ +//#define COMPILE_WITH_DLSS + using Flax.Build; using Flax.Build.NativeCpp; using System; using System.Collections.Generic; using System.Linq; +using System.IO; public class Game : GameModule { @@ -13,7 +16,7 @@ public class Game : GameModule // C#-only scripting BuildCSharp = true; - BuildNativeCode = true; + //BuildNativeCode = true; } /// @@ -25,7 +28,14 @@ public class Game : GameModule base.Setup(options); - options.PublicDependencies.Add("FidelityFXFSR"); + options.PrivateDependencies.Add("FidelityFXFSR"); + + //options.ScriptingAPI.FileReferences.Add(Path.Combine(Globals.EngineRoot, "Source", "Platforms", "DotNet", "Newtonsoft.Json.dll")); + +#if COMPILE_WITH_DLSS + DLSS.ConditionalImport(options, options.PrivateDependencies); + options.PrivateDefinitions.Add("COMPILE_WITH_DLSS"); +#endif // Here you can modify the build options for your game module // To reference another module use: options.PublicDependencies.Add("Audio"); // To add C++ define use: options.PublicDefinitions.Add("COMPILE_WITH_FLAX"); diff --git a/Source/Game/GameMode/GameMode.cs b/Source/Game/GameMode/GameMode.cs index fb504e5..3f85e47 100644 --- a/Source/Game/GameMode/GameMode.cs +++ b/Source/Game/GameMode/GameMode.cs @@ -1,6 +1,221 @@ -namespace Game +using FlaxEditor.Content.Settings; +using FlaxEngine; +using FlaxEngine.Networking; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Game { - public abstract class GameMode + /// + /// The game mode logic that only exists on server. + /// + public class GameMode { + private static GameMode currentGameMode = null; + + private static bool ServerRunning => currentGameMode != null; + + public const string DefaultServerAddress = "localhost"; + public const ushort DefaultServerPort = 59183; + + public string ServerAddress = DefaultServerAddress; + public ushort ServerPort = DefaultServerPort; + + private Dictionary players = new Dictionary(); + + public static bool Connect(string ip = null, ushort port = 0) + { + if (ServerRunning) + NetworkManager_Cleanup(); + + var networkSettings = GameSettings.Load(); + networkSettings.Address = ip ?? DefaultServerAddress; + networkSettings.Port = port != 0 ? port : DefaultServerPort; + GameSettings.LoadAsset().SetInstance(networkSettings); + + if (NetworkManager.StartClient()) + { + Console.PrintError("Server connection failed."); + return false; + } + + Console.Print($"Connecting to {networkSettings.Address}:{networkSettings.Port}..."); + + return true; + } + + public static bool StartServer(bool listenServer) + { + if (ServerRunning) + NetworkManager_Cleanup(); + + var networkSettings = GameSettings.Load(); + currentGameMode = new GameMode() + { + ServerAddress = "localhost", + ServerPort = networkSettings.Port, + }; + + Console.Print("Starting server... port: " + networkSettings.Port); + +#if FLAX_EDITOR + FlaxEditor.Editor.Instance.PlayModeEnd += NetworkManager_Cleanup; +#else + +#endif + NetworkManager.ClientConnected += NetworkManager_ClientConnected; + NetworkManager.ClientConnecting += NetworkManager_ClientConnecting; + NetworkManager.StateChanged += NetworkManager_StateChanged; + + bool failure; + if (listenServer) + failure = NetworkManager.StartHost(); + else + failure = NetworkManager.StartServer(); + if (failure) + { + Console.PrintError("Server startup failed."); + return false; + } + + currentGameMode.Start(); + + return true; + } + + public static void StopServer() + { + if (ServerRunning) + NetworkManager_Cleanup(); + } + + private static void NetworkManager_Cleanup() + { + if (ServerRunning) + { + NetworkManager.ClientConnected -= NetworkManager_ClientConnected; + NetworkManager.ClientConnecting -= NetworkManager_ClientConnecting; + NetworkManager.StateChanged -= NetworkManager_StateChanged; + +#if FLAX_EDITOR + FlaxEditor.Editor.Instance.PlayModeEnd -= NetworkManager_Cleanup; +#else + +#endif + + currentGameMode = null; + } + } + + private static void NetworkManager_StateChanged() + { + Console.Print("network manager state changed: " + NetworkManager.State.ToString()); + } + + private static void NetworkManager_ClientConnected(NetworkClient networkClient) + { + Console.Print("new client connected"); + + currentGameMode.OnPlayerSpawn(networkClient.ClientId); + } + + private static void NetworkManager_ClientConnecting(ref NetworkClientConnectionData arg0) + { + Console.Print("new client is connecting"); + + bool allowConnection = true; + arg0.Result = allowConnection ? 0 : 1; + } + + + + public void Start() + { + // When mode is started + } + + public void Tick() + { + // Run on every frame + } + + public void End() + { + // When win condition is met + } + + public void OnClientConnect() + { + + } + + public void OnClientDisconnect() + { + + } + + public void OnClientKill() + { + + } + + public bool OnJoin() + { + return true; + } + + public bool OnSpectate() + { + return true; + } + + public bool OnPlayerRequestRespawn() + { + return true; + } + + public void OnPlayerSpawn(uint clientId) + { + // Get random spawn + var spawns = Level.GetActors().Where(x => x.Name.StartsWith("PlayerSpawn_")).ToArray(); + Console.Print($"found {spawns.Length} spawns"); + + var randomSpawn = spawns.First(); + + Float3 spawnPosition = randomSpawn.Position + new Float3(0f, 4.1f, 0f); + Float3 spawnAngles = randomSpawn.Orientation.EulerAngles; + + // Create player actor + string prefabPath = Path.Combine(AssetManager.ContentPath, "Common"); + var playerPrefab = Content.Load(Path.Combine(prefabPath, "PlayerPrefab.prefab")); + if (playerPrefab == null) + Console.PrintError("GameModeManager: Failed to find PlayerPrefab"); + + PlayerActor playerActor = PrefabManager.SpawnPrefab(playerPrefab).As(); + playerActor.Initialize(clientId); + playerActor.Teleport(spawnPosition, spawnAngles); + } + + public void OnPlayerInit() + { + + } + + public void OnPlayerDeath() + { + + } + + public void OnPlayerTakeDamage(/*entity player, float damage, entity source*/) + { + + } + + public Float3 OnPlayerApplyForce(/*entity player, vector force, entity source*/) + { + return Float3.Zero; + } } } \ No newline at end of file diff --git a/Source/Game/GameMode/GameModeManager.cs b/Source/Game/GameMode/GameModeManager_old.cs similarity index 99% rename from Source/Game/GameMode/GameModeManager.cs rename to Source/Game/GameMode/GameModeManager_old.cs index f7be58c..dc2d146 100644 --- a/Source/Game/GameMode/GameModeManager.cs +++ b/Source/Game/GameMode/GameModeManager_old.cs @@ -1,4 +1,5 @@ -using System; +#if false +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -407,4 +408,5 @@ namespace Game playerActor.UpdateNetworkInput(inputState); } } -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/Source/Game/Level/Q3MapImporter.cs b/Source/Game/Level/Q3MapImporter.cs index 7edcdeb..f3d1e77 100644 --- a/Source/Game/Level/Q3MapImporter.cs +++ b/Source/Game/Level/Q3MapImporter.cs @@ -51,12 +51,14 @@ namespace Game public bool importLights = false; private bool generateSdf = true; + private bool childModelSdf = true; private Model model; private MaterialBase missingMaterial; private bool resetLights = false; private bool dirtyLights = false; + private bool dirtyMap = false; private float brightnessMultiplier_ = 0.82f; private float lightRadiusMultiplier_ = 9.45f; @@ -110,9 +112,8 @@ namespace Game if (staticBatching_ == value) return; staticBatching_ = value; - - FlaxEngine.Debug.Log("StaticBatching changed, reloading map"); - LoadMap(true); + dirtyLights = true; + dirtyMap = true; } } @@ -264,7 +265,7 @@ namespace Game { try { - if (worldSpawnActor != null) + if (worldSpawnActor) worldSpawnActor.HideFlags &= ~HideFlags.DontSave; } catch (Exception e) @@ -277,7 +278,7 @@ namespace Game { try { - if (worldSpawnActor != null) + if (worldSpawnActor) worldSpawnActor.HideFlags |= HideFlags.DontSave; dirtyLights = true; } @@ -295,37 +296,60 @@ namespace Game public override void OnDisable() { + if (Editor.Instance == null) + return; Editor.Instance.PlayModeBeginning -= OnEditorPlayModeStart; Editor.Instance.PlayModeEnd -= OnEditorPlayModeEnd; } #endif - public override void OnStart() { + sceneLighting = lastSceneLighting = EngineSubsystem.SceneLighting == "1"; + sceneShadows = lastSceneShadows = EngineSubsystem.SceneShadows == "1"; + staticBatching = lastStaticBatching = EngineSubsystem.StaticBatch == "1"; + globalIllumination = EngineSubsystem.GlobalIllumination == "1"; + LoadMap(false); } private List brushGeometries; private bool lastSceneLighting = false; private bool lastSceneShadows = false; + private bool lastStaticBatching = false; + private bool lastGlobalIllumination = false; + private bool sceneLighting = false; + private bool sceneShadows = false; + private bool staticBatching = false; + private bool globalIllumination = false; public override void OnUpdate() { - bool sceneLighting = EngineSubsystem.SceneLighting == "1"; + sceneLighting = EngineSubsystem.SceneLighting == "1"; if (lastSceneLighting != sceneLighting) { lastSceneLighting = sceneLighting; dirtyLights = true; } - bool sceneShadows = EngineSubsystem.SceneShadows == "1"; + sceneShadows = EngineSubsystem.SceneShadows == "1"; if (lastSceneShadows != sceneShadows) { lastSceneShadows = sceneShadows; dirtyLights = true; } + staticBatching = EngineSubsystem.StaticBatch == "1"; + if (lastStaticBatching != staticBatching) + { + lastStaticBatching = staticBatching; + StaticBatching = staticBatching; + } + globalIllumination = EngineSubsystem.GlobalIllumination == "1"; + if (lastGlobalIllumination != globalIllumination) + { + lastGlobalIllumination = globalIllumination; + dirtyMap = true; + } if (resetLights) { - Debug.Log("reset lights"); if (worldSpawnActor == null || !worldSpawnActor || root == null) { Debug.Log("worldspawn or root is null"); @@ -351,6 +375,13 @@ namespace Game resetLights = false; } + if (dirtyMap) + { + dirtyMap = false; + FlaxEngine.Debug.Log("StaticBatching changed, reloading map"); + LoadMap(true); + } + if (dirtyLights) { foreach (var light in worldSpawnActor.GetChildren()) @@ -487,7 +518,7 @@ namespace Game else { // TODO: engine doesn't seem to always load the asset even though it exists, bug? seems to happen at low framerate - //Console.Print("Material '" + textureName + "' not found for brush, assetPath: " + assetPath); + Console.Print("Material '" + textureName + "' not found for brush, assetPath: " + assetPath); materials.Add(textureName, missingMaterial); brushMaterial = missingMaterial; } @@ -654,6 +685,7 @@ namespace Game childModel.Name = "Brush_" + brushIndex; childModel.Model = geom.model; childModel.Position = geom.offset; + //childModel.DrawModes = DrawPass.None; for (int i = 0; i < geom.meshes.Length; i++) childModel.SetMaterial(i, geom.meshes[i].material); @@ -664,9 +696,6 @@ namespace Game for (uint i = 0; i < indices.Length; i++) indices[i] = i; - if (brushIndex == 84) - brushIndex = brushIndex; - bool isClipMaterial = false; bool isMissingMaterial = false; if (geom.meshes.Length == 1) @@ -728,7 +757,16 @@ namespace Game brushIndex = 0; foreach (BrushGeometry geom in brushGeometries) { - Actor childModel = worldSpawnActor.AddChild(); + Actor childModel; + if (childModelSdf) + { + StaticModel staticModel = worldSpawnActor.AddChild(); + staticModel.DrawModes = DrawPass.GlobalSDF | DrawPass.GlobalSurfaceAtlas; + staticModel.Model = geom.model; + childModel = staticModel; + } + else + childModel = worldSpawnActor.AddChild(); childModel.Name = "Brush_" + brushIndex; //childModel.Model = geom.model; childModel.Position = geom.offset; @@ -768,8 +806,8 @@ namespace Game childModel.Entries = entries; }*/ - //if (!isClipMaterial && !isMissingMaterial) - // sdfModels.Add(geom.model); + if (childModelSdf && !isClipMaterial && !isMissingMaterial) + sdfModels.Add(geom.model); CollisionData collisionData = Content.CreateVirtualAsset(); if (collisionData.CookCollision( @@ -879,7 +917,8 @@ namespace Game childModel.Model = batchModel; //childModel.Position = geom.offset; - sdfModels.Add(batchModel); + if (!childModelSdf) + sdfModels.Add(batchModel); } } @@ -1017,6 +1056,7 @@ namespace Game StaticModel childModel = worldSpawnActor.AddChild(); childModel.Name = "MapModel"; childModel.Model = model; + //childModel.DrawModes = DrawPass.None; //childModel.SetMaterial(0, missingMaterial); string matBasePath = Path.Combine(AssetManager.ContentPath, "Materials"); @@ -1063,15 +1103,24 @@ namespace Game } + for (int i=0; i<10000; i++) + { + Debug.Log($"{i} udfghjosa fuhoag guiha7 2382835yayhahn0 generate:{generateSdf}, GI:{Graphics.PostProcessSettings.GlobalIllumination.Mode != GlobalIlluminationMode.None}, {sdfModels.Count}"); + } //Debug.Log($"generate:{generateSdf}, GI:{Graphics.PostProcessSettings.GlobalIllumination.Mode != GlobalIlluminationMode.None}, {sdfModels.Count}"); - if (generateSdf /*&& Graphics.PostProcessSettings.GlobalIllumination.Mode != GlobalIlluminationMode.None*/ && sdfModels.Count > 1) + if (generateSdf && globalIllumination /*&& Graphics.PostProcessSettings.GlobalIllumination.Mode != GlobalIlluminationMode.None*/ && sdfModels.Count > 1) { int modelIndex = 0; // TODO: read sdf data from texture and dump it to file, and reuse it when generating sdf data - /*using*/ var sha1 = new SHA1Managed(); +#if USE_NETCORE + string mapHash = SHA1.HashData(Encoding.UTF8.GetBytes(levelScript.MapName + levelScript.MapTimestamp.Ticks.ToString())).ToString(); +#else + /*using*/ + var sha1 = new SHA1Managed(); string mapHash = sha1.ComputeHash(Encoding.UTF8.GetBytes(levelScript.MapName + levelScript.MapTimestamp.Ticks.ToString())).ToString(); +#endif foreach (var model in sdfModels.ToList()) { @@ -1098,7 +1147,27 @@ namespace Game ModelBase.SDFData sdfData = new ModelBase.SDFData(); - sdfData.Texture + + sdfData.Texture = GPUDevice.Instance.CreateTexture(sdfDataPath); + if (sdfData.Texture.Init(new GPUTextureDescription() { Width = width, Height = height, Depth = depth, Format = format, Flags = GPUTextureFlags.ShaderResource, MipLevels = mips})) + Console.PrintError($"Failed to create SDF texture for {sdfDataPath}"); + + sdfData.LocalToUVWMul = LocalToUVWMul; + sdfData.LocalToUVWAdd = LocalToUVWAdd; + sdfData.WorldUnitsPerVoxel = WorldUnitsPerVoxel; + sdfData.MaxDistance = MaxDistance; + sdfData.LocalBoundsMin = LocalBoundsMin; + sdfData.LocalBoundsMax = LocalBoundsMax; + sdfData.ResolutionScale = ResolutionScale; + sdfData.LOD = LOD; + for (int mipLevel = 0; mipLevel < mips; mipLevel++) + { + + } + + + //sdfData.Texture + //sdfData.Texture model.SetSDF(sdfData); }*/ @@ -1110,11 +1179,12 @@ namespace Game { Stopwatch sw2 = Stopwatch.StartNew(); FlaxEngine.Debug.Log($"Generating level SDF ({sdfModels.Count} models)..."); + Console.Print($"Generating level SDF ({sdfModels.Count} models)..."); ParallelOptions opts = new ParallelOptions(); FlaxEngine.Debug.Log("processorcount: " + Environment.ProcessorCount); float backfacesThreshold = 0.15f; - if (useStaticBatching) + if (useStaticBatching && !childModelSdf) { opts.MaxDegreeOfParallelism = 2; //Environment.ProcessorCount / 2; //backfacesThreshold = 1f; @@ -1143,7 +1213,9 @@ namespace Game }); + sw2.Stop(); FlaxEngine.Debug.Log($"Generated level SDF in {sw2.Elapsed.TotalMilliseconds}ms"); + Console.Print($"Generated level SDF in {sw2.Elapsed.TotalMilliseconds}ms"); }); } } @@ -1179,6 +1251,7 @@ namespace Game light.Name = "SpotLight_" + lightIndex; else light.Name = "Light_" + lightIndex; + light.IsActive = sceneLighting; light.LocalPosition = ParseOrigin(entity.properties["origin"]); if (lightTargetPosition.HasValue) @@ -1205,13 +1278,13 @@ namespace Game { pointLight.UseInverseSquaredFalloff = false; pointLight.FallOffExponent = 8; - pointLight.ShadowsStrength = castShadows ? 1.0f : 0.0f; + pointLight.ShadowsStrength = sceneShadows && castShadows ? 1.0f : 0.0f; } if (spotLight != null) { spotLight.UseInverseSquaredFalloff = false; spotLight.FallOffExponent = 8; - spotLight.ShadowsStrength = castShadows ? 1.0f : 0.0f; + spotLight.ShadowsStrength = sceneShadows && castShadows ? 1.0f : 0.0f; spotLight.InnerConeAngle = 65f; spotLight.OuterConeAngle = 80f; } diff --git a/Source/Game/Network/NetworkManager.cs b/Source/Game/Network/NetworkManager.cs deleted file mode 100644 index 15d90ce..0000000 --- a/Source/Game/Network/NetworkManager.cs +++ /dev/null @@ -1,149 +0,0 @@ -using System; -using System.Linq; -using FlaxEditor; -using FlaxEngine; -using FlaxEngine.Networking; -using Console = Game.Console; - -namespace Game -{ - [AttributeUsage(AttributeTargets.Class)] - public class NetworkPredictedAttribute : Attribute - { - } - - // TODO: insert code to update variables with this attribute? - // rename to NetworkReplicatedAttribute? - [AttributeUsage(AttributeTargets.Class)] - public class NetworkedAttribute : Attribute - { - } - - // NetworkMulticastAttribute: calls methods marked with this in all clients - - public enum NetworkMessageType : byte - { - Handshake = 1, - Message - } - - - public static partial class NetworkManager - { - public delegate bool OnMessageDecl(ref NetworkEvent networkEvent); - - private static bool initialized; - - public static NetworkPeer server; - public static NetworkPeer client; - - private static readonly ushort ServerPort = 59183; - private static string ServerAddress; - private static readonly ushort MTU = 1500; - private static readonly ushort MaximumClients = 32; - public static OnMessageDecl OnMessage; - - public static bool IsServer = false; - public static bool IsClient = false; - public static bool IsLocalClient = false; // Context dependant, true when message is handled by local client - - public static void Init() - { - if (initialized) - return; - - /*if (Engine.CommandLine.Contains("-server")) - { - StartServer(); - ServerAddress = "localhost"; - ConnectServer(); - } - else if (Engine.CommandLine.Contains("-client")) - { - ServerAddress = "localhost"; - ConnectServer(); - } -//#if FLAX_EDITOR - else - { - StartServer(); - ServerAddress = "localhost"; - ConnectServer(); - }*/ -//#endif - - initialized = true; -#if FLAX_EDITOR - Editor.Instance.PlayModeEnd += Cleanup; -#endif - - GameModeManager.Init(); // FIXME - } - - public static void Cleanup() - { - if (server != null) - { - Scripting.FixedUpdate -= OnServerUpdate; - Scripting.Exit -= Cleanup; - Level.ActorSpawned -= OnServerActorSpawned; - NetworkPeer.ShutdownPeer(server); - server = null; - } - - if (client != null) - { - Scripting.FixedUpdate -= OnClientUpdate; - Scripting.Exit -= Cleanup; - Level.ActorSpawned -= OnClientActorSpawned; - NetworkPeer.ShutdownPeer(client); - client = null; - } - -#if FLAX_EDITOR - Editor.Instance.PlayModeEnd -= Cleanup; - GameModeManager.Cleanup(); // FIXME -#endif - - initialized = false; - } - - private static void OnNetworkMessage(ref NetworkEvent networkEvent) - { - byte messageTypeByte = networkEvent.Message.ReadByte(); - if (!Enum.IsDefined(typeof(NetworkMessageType), messageTypeByte)) - { - Console.PrintError($"Unsupported message type received from client: {messageTypeByte}"); - return; - } - - NetworkMessageType messageType = (NetworkMessageType)messageTypeByte; - - switch (messageType) - { - case NetworkMessageType.Handshake: - { - string message = networkEvent.Message.ReadString(); - Console.Print($"Received handshake from {networkEvent.Sender.ConnectionId}, msg: " + message); - break; - } - case NetworkMessageType.Message: - { - if (OnMessage != null) - foreach (OnMessageDecl func in OnMessage.GetInvocationList() - .Cast().ToArray()) - { - bool ret = func.Invoke(ref networkEvent); - if (ret) - break; - } - - break; - } - default: - Console.PrintError($"Unsupported message type received from client: {messageTypeByte}"); - break; - } - } - } -} \ No newline at end of file diff --git a/Source/Game/Network/NetworkManagerPlugin.cs b/Source/Game/Network/NetworkManagerPlugin.cs deleted file mode 100644 index 8d9ab57..0000000 --- a/Source/Game/Network/NetworkManagerPlugin.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using FlaxEngine; -using Console = Game.Console; -#if FLAX_EDITOR -using System.Diagnostics; -using FlaxEditor; -#endif - -namespace Game -{ - public class NetworkManagerPlugin : GGamePlugin - { - public override Type[] PluginDependencies { get => new Type[] { typeof(ConsolePlugin) }; } - - public static PluginDescription DescriptionInternal = new PluginDescription - { - Author = "Ari Vuollet", - Name = "NetworkManager", - Description = "NetworkManager for Goake", - Version = Version.Parse("0.1.0"), - IsAlpha = true, - Category = "Game" - }; - - public override void Init() - { - //FlaxEngine.Debug.Log("NetworkManagerPlugin initialized"); - NetworkManager.Init(); - } - } - -#if FLAX_EDITOR - public class NetworkManagerEditorPlugin : GEditorPlugin - { - public override Type[] PluginDependencies { get => new Type[] { typeof(ConsoleEditorPlugin) }; } - - public override Type GamePluginType => typeof(NetworkManagerPlugin); - - public NetworkManagerEditorPlugin() - { - _description = NetworkManagerPlugin.DescriptionInternal; - } - - public override void Init() - { - //FlaxEngine.Debug.Log("NetworkManagerPlugin initialized"); - //Console.Init(); - //NetworkManager.Init(); - - FlaxEditor.Editor.Instance.PlayModeBegin += OnPlayModeBegin; - } - - public override void Deinit() - { - //FlaxEditor.Editor.Instance.PlayModeBegin -= OnPlayModeBegin; - } - - private void OnPlayModeBegin() - { - NetworkManager.Init(); - } - } -#endif -} \ No newline at end of file diff --git a/Source/Game/Network/NetworkManager_Client.cs b/Source/Game/Network/NetworkManager_Client.cs deleted file mode 100644 index ac87acf..0000000 --- a/Source/Game/Network/NetworkManager_Client.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Linq; -using FlaxEngine; -using FlaxEngine.Networking; -using Console = Game.Console; -using Object = FlaxEngine.Object; - -namespace Game -{ - public static partial class NetworkManager - { - public static uint LocalPlayerClientId { get; private set; } - - public static bool ConnectServer() - { - client = NetworkPeer.CreatePeer(new NetworkConfig - { - NetworkDriver = Object.New(typeof(ENetDriver)), - ConnectionsLimit = MaximumClients, - MessagePoolSize = 2048, - MessageSize = MTU, - Address = ServerAddress == "localhost" ? "127.0.0.1" : ServerAddress, - Port = ServerPort - }); - if (!client.Connect()) - { - Console.PrintError("Failed to connect to the server."); - return false; - } - - Scripting.FixedUpdate += OnClientUpdate; - Scripting.Exit += Cleanup; - Level.ActorSpawned += OnClientActorSpawned; - return true; - } - - private static void OnClientUpdate() - { - /*using*/ Utilities.ScopeProfiler _ = Utilities.ProfileScope("NetworkManager_OnClientUpdate"); - - while (client.PopEvent(out NetworkEvent networkEvent)) - switch (networkEvent.EventType) - { - case NetworkEventType.Connected: - { - LocalPlayerClientId = networkEvent.Sender.ConnectionId; - Console.Print("Connected to server, ConnectionId: " + networkEvent.Sender.ConnectionId); - break; - } - case NetworkEventType.Disconnected: - { - Console.Print("Disconnected from server, timeout."); - LocalPlayerClientId = 0; - break; - } - case NetworkEventType.Timeout: - { - Console.Print("Disconnected from server, connection closed."); - LocalPlayerClientId = 0; - break; - } - case NetworkEventType.Message: - { - try - { - IsLocalClient = server != null; - IsClient = true; - OnNetworkMessage(ref networkEvent); - - if (networkEvent.Message.Position > 0 && - networkEvent.Message.Position < networkEvent.Message.Length) - { - string err = - $"Network message was not fully read: {networkEvent.Message.Position} / {networkEvent.Message.Length}."; - - networkEvent.Message.Position = 0; - byte[] messageBytes = new byte[networkEvent.Message.Length]; - unsafe - { - fixed (byte* messageBytePtr = &messageBytes[0]) - networkEvent.Message.ReadBytes(messageBytePtr, (int)networkEvent.Message.Length); - } - - string messageBytesStr = string.Join(", ", - messageBytes.Select(x => "0x" + ((int)x).ToString("X2"))); - - Console.PrintError(err + $"Message dump: {messageBytesStr}"); - } - } - finally - { - IsLocalClient = false; - IsClient = false; - client.RecycleMessage(networkEvent.Message); - } - break; - } - default: - throw new ArgumentOutOfRangeException(); - } - _.Dispose(); - } - - private static void OnClientActorSpawned(Actor actor) - { - } - } -} \ No newline at end of file diff --git a/Source/Game/Network/NetworkManager_Server.cs b/Source/Game/Network/NetworkManager_Server.cs deleted file mode 100644 index df5e505..0000000 --- a/Source/Game/Network/NetworkManager_Server.cs +++ /dev/null @@ -1,181 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using FlaxEngine; -using FlaxEngine.Networking; -using Console = Game.Console; -using Object = FlaxEngine.Object; - -namespace Game -{ - public static partial class NetworkManager - { - private static List ConnectedClients; - - private static List NetworkedTypes; - - public static bool StartServer() - { - ConnectedClients = new List(MaximumClients); - server = NetworkPeer.CreatePeer(new NetworkConfig - { - NetworkDriver = Object.New(typeof(ENetDriver)), - ConnectionsLimit = MaximumClients, - MessagePoolSize = 2048, - MessageSize = MTU, - Address = "any", - Port = ServerPort - }); - if (!server.Listen()) - { - Console.PrintError("Failed to start the server."); - return false; - } - - Scripting.FixedUpdate += OnServerUpdate; - Scripting.Exit += Cleanup; - Level.ActorSpawned += OnServerActorSpawned; - - NetworkedTypes = new List(); - - AppDomain currentDomain = AppDomain.CurrentDomain; - var assemblies = currentDomain.GetAssemblies(); - - foreach (Assembly assembly in assemblies) - { - // Skip common assemblies - string assemblyName = assembly.GetName().Name; - if (assemblyName == "System" || - assemblyName.StartsWith("System.") || - assemblyName.StartsWith("Mono.") || - assemblyName == "mscorlib" || - assemblyName == "Newtonsoft.Json" || - assemblyName.StartsWith("FlaxEngine.") || - assemblyName.StartsWith("JetBrains.") || - assemblyName.StartsWith("Microsoft.") || - assemblyName.StartsWith("nunit.")) - continue; - - foreach (Type type in assembly.GetTypes()) - if (type.GetCustomAttributes().Any(x => x is NetworkedAttribute)) - NetworkedTypes.Add(type); - } - - foreach (Type type in NetworkedTypes) - Console.Print("tracking networked type: " + type.Name); - - return true; - } - - public static NetworkMessage ServerBeginSendMessage() - { - NetworkMessage message = server.BeginSendMessage(); - message.WriteByte((byte)NetworkMessageType.Message); - return message; - } - - public static void ServerEndSendMessage(ref NetworkMessage message, NetworkConnection connection) - { - server.EndSendMessage(NetworkChannelType.Reliable, message, connection); - } - - public static NetworkMessage ClientBeginSendMessage() - { - NetworkMessage message = client.BeginSendMessage(); - message.WriteByte((byte)NetworkMessageType.Message); - return message; - } - - public static void ClientEndSendMessage(ref NetworkMessage message) - { - client.EndSendMessage(NetworkChannelType.Reliable, message); - } - - private static void OnServerUpdate() - { - /*using*/ Utilities.ScopeProfiler _ = Utilities.ProfileScope("NetworkManager_OnServerUpdate"); - - while (server.PopEvent(out NetworkEvent networkEvent)) - switch (networkEvent.EventType) - { - case NetworkEventType.Connected: - { - Console.Print($"Client({networkEvent.Sender.ConnectionId}) is trying to connect"); - - try - { - IsServer = true; - if (GameModeManager.OnClientConnecting(networkEvent.Sender)) - { - ConnectedClients.Add(networkEvent.Sender); - Console.Print( - $"Client({networkEvent.Sender.ConnectionId}) connected. Total clients: {ConnectedClients.Count}"); - - GameModeManager.OnClientConnected(networkEvent.Sender); - } - else - Console.Print($"Client({networkEvent.Sender.ConnectionId}) connection refused"); - } - finally - { - IsServer = false; - } - - break; - } - case NetworkEventType.Disconnected: - case NetworkEventType.Timeout: - { - Console.Print($"Client({networkEvent.Sender.ConnectionId}) disconnected!"); - - ConnectedClients.Remove(networkEvent.Sender); - Console.Print("Connected clients: " + ConnectedClients.Count); - break; - } - case NetworkEventType.Message: - { - try - { - IsServer = true; - OnNetworkMessage(ref networkEvent); - - if (networkEvent.Message.Position > 0 && - networkEvent.Message.Position < networkEvent.Message.Length) - { - string err = - $"Network message was not fully read: {networkEvent.Message.Position} / {networkEvent.Message.Length}."; - - networkEvent.Message.Position = 0; - byte[] messageBytes = new byte[networkEvent.Message.Length]; - unsafe - { - fixed (byte* messageBytePtr = &messageBytes[0]) - networkEvent.Message.ReadBytes(messageBytePtr, (int)networkEvent.Message.Length); - } - - string messageBytesStr = string.Join(", ", - messageBytes.Select(x => "0x" + ((int)x).ToString("X2"))); - - Console.PrintError(err + $"Message dump: {messageBytesStr}"); - } - } - finally - { - IsServer = false; - server.RecycleMessage(networkEvent.Message); - } - break; - } - default: - throw new ArgumentOutOfRangeException(); - } - _.Dispose(); - } - - private static void OnServerActorSpawned(Actor actor) - { - //Console.Print($"actor spawned: {actor.Name} ({actor.TypeName})"); - } - } -} \ No newline at end of file diff --git a/Source/Game/Player/PlayerActor.cs b/Source/Game/Player/PlayerActor.cs index 9bf5954..40fa1da 100644 --- a/Source/Game/Player/PlayerActor.cs +++ b/Source/Game/Player/PlayerActor.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using FlaxEngine; +using FlaxEngine.Networking; #if FLAX_EDITOR using FlaxEditor.CustomEditors.Dedicated; using FlaxEditor.Scripting; @@ -55,12 +56,15 @@ namespace Game playerMovement = FindScript(); playerRigidBody = FindActor(); + + NetworkReplicator.AddObject(this); } public void Initialize(uint playerId) { playerMovement.SetInput(playerId); - if (playerId == NetworkManager.LocalPlayerClientId) + //if (playerId == NetworkManager.LocalPlayerClientId) + if (NetworkReplicator.GetObjectRole(this) == NetworkObjectRole.OwnedAuthoritative) { FindActor("CameraHolder").IsActive = true; //FindActor("ViewModelHolder").IsActive = true; diff --git a/Source/Game/Player/PlayerInputLocal.cs b/Source/Game/Player/PlayerInputLocal.cs index 3405181..9cca073 100644 --- a/Source/Game/Player/PlayerInputLocal.cs +++ b/Source/Game/Player/PlayerInputLocal.cs @@ -14,7 +14,7 @@ namespace Game protected GZipStream demoFileStream; protected FileStream demoFileStream2; - public bool IsNetworked => NetworkManager.client != null; + //public bool IsNetworked => NetworkManager.client != null; public PlayerInputLocal() { @@ -75,7 +75,7 @@ namespace Game buffer.Add(currentState.input); } - if (IsNetworked) + /*if (IsNetworked) { var message = NetworkManager.ClientBeginSendMessage(); message.WriteByte((byte)GameModeMessageType.PlayerInput); @@ -87,7 +87,7 @@ namespace Game message.WriteBoolean(currentState.input.attacking); message.WriteBoolean(currentState.input.jumping); NetworkManager.ClientEndSendMessage(ref message); - } + }*/ // Reset anything accumulatable here currentState.input.viewDeltaX = 0; diff --git a/Source/Game/Player/PlayerMovement.cs b/Source/Game/Player/PlayerMovement.cs index 79c82bd..b88f2de 100644 --- a/Source/Game/Player/PlayerMovement.cs +++ b/Source/Game/Player/PlayerMovement.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using FlaxEngine; +using FlaxEngine.Networking; using Console = Game.Console; namespace Game @@ -22,7 +23,7 @@ namespace Game //public Float3 maxEndPosition; } - [Networked] + //[Networked] public class PlayerMovement : Script { // FIXME, should be much smaller but needed to avoid issues with box collider edges against brush edges diagonally @@ -161,20 +162,20 @@ namespace Game public void SetInput(uint playerId) { - if (playerId == 0) - input = new PlayerInput(); - else if (playerId == NetworkManager.LocalPlayerClientId) + //if (playerId == 0) + // input = new PlayerInput(); + PlayerId = playerId; + if (NetworkReplicator.GetObjectRole(this.Parent) == NetworkObjectRole.OwnedAuthoritative)// if (playerId == NetworkManager.LocalPlayerClientId) { Console.Print("local player: " + playerId.ToString()); string demoPath = System.IO.Path.Combine(AssetManager.DemoPath, $"{DateTimeOffset.Now.UtcTicks}.gdem"); input = new PlayerInputLocal(demoPath); // TODO: support recording - PlayerId = playerId; + } else { Console.Print("network player: " + playerId.ToString()); input = new PlayerInputNetwork(); - PlayerId = playerId; } } @@ -191,6 +192,9 @@ namespace Game SetCameraEulerAngles(input.GetCurrentInputState().verificationViewAngles); } + public override void OnEnable() + { + } public override void OnDisable() { base.OnDisable(); @@ -283,8 +287,8 @@ namespace Game input.OnUpdate(); float deltadif = Time.DeltaTime - 1.0f / Time.PhysicsFPS; - if (Math.Abs(deltadif) > 0.0001f) - Console.Print("drift: " + deltadif); + //if (Math.Abs(deltadif) > 0.0001f) + // Console.Print("drift: " + deltadif); input.OnFixedUpdate(); PlayerInputState inputState = input.GetCurrentInputState(); diff --git a/Source/Game/Utility/AssetManager.cs b/Source/Game/Utility/AssetManager.cs index a79dac0..0ac4a50 100644 --- a/Source/Game/Utility/AssetManager.cs +++ b/Source/Game/Utility/AssetManager.cs @@ -17,7 +17,8 @@ namespace Game public static GameplayGlobals Globals { get; private set; } public static Config Config { get; private set; } - public static void Init() + //public static void Init() + static AssetManager() { Globals = Content.Load(Path.Combine(ContentPath, "Settings", "GameSettings", "GameplayGlobals.flax")); Config = ConfigParser.ParseFile(Path.Combine(ContentPath, "config.cfg")); diff --git a/Source/Game/Utility/GGamePlugin.cs b/Source/Game/Utility/GGamePlugin.cs deleted file mode 100644 index b8503a8..0000000 --- a/Source/Game/Utility/GGamePlugin.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Linq; -using FlaxEngine; -using Debug = System.Diagnostics.Debug; -#if FLAX_EDITOR -using FlaxEditor; -#endif - -namespace Game -{ - /// - /// Wrapper for GamePlugin with support of initializing plugins in correct order. - /// The initialization is deferred to later time after the last dependant plugin is initialized. - /// - public abstract class GGamePlugin : GamePlugin - { - public virtual Type[] PluginDependencies { get => new Type[0]; } - public bool Initialized { get; private set; } - public bool Deinitialized { get; private set; } - - public override void Initialize() - { - //FlaxEngine.Debug.Log($"Plugin {this.GetType()}::Initialize"); - base.Initialize(); - if (!Initialized) - { - // Check if dependencies have been initialized, defer to later if not - bool dependenciesInitialized = true; - var plugins = PluginManager.GamePlugins.OfType().Where(x => x.GetType() != this.GetType()); - foreach (var pluginType in PluginDependencies) - { - //FlaxEngine.Debug.Log($"Plugintype {pluginType}"); - var plugin = plugins.FirstOrDefault(x => x.GetType() == pluginType); - if (plugin != null) - { - //FlaxEngine.Debug.Log($"Plugin {plugin.GetType()} is Initialized?"); - if (!plugin.Initialized) - { - dependenciesInitialized = false; - break; - } - } - else - { - dependenciesInitialized = false; - break; - } - } - - if (dependenciesInitialized) - { - Init(); - Initialized = true; - - // Initialize any previously deferred plugins in case their dependencies were initialized - foreach (var p in plugins) - { - //FlaxEngine.Debug.Log($"try init Plugin {p.GetType()}"); - if (!p.Initialized /* && p.PluginDependencies.Contains(this.GetType())*/) - { - //FlaxEngine.Debug.Log($"Plugin run init {p.GetType()}"); - p.Initialize(); - } - } - } - } - } - - public override void Deinitialize() - { - base.Deinitialize(); - if (!Deinitialized) - { - Deinit(); - Deinitialized = true; - } - } - - public virtual void Init() - { - } - public virtual void Deinit() - { - } - } - -#if FLAX_EDITOR - /// - /// Wrapper for EditorPlugin with support of initializing plugins in correct order. - /// The initialization is deferred to later time after the last dependant plugin is initialized. - /// - public abstract class GEditorPlugin : EditorPlugin - { - public virtual Type[] PluginDependencies { get => new Type[0]; } - public bool Initialized { get; private set; } - public bool Deinitialized { get; private set; } - - public override void Initialize() - { - //FlaxEngine.Debug.Log($"Plugin {this.GetType()}::Initialize"); - base.Initialize(); - if (!Initialized) - { - // Check if dependencies have been initialized, defer to later if not - bool dependenciesInitialized = true; - var plugins = PluginManager.EditorPlugins.OfType().Where(x => x.GetType() != this.GetType()); - foreach (var pluginType in PluginDependencies) - { - //FlaxEngine.Debug.Log($"Plugintype {pluginType}"); - var plugin = plugins.FirstOrDefault(x => x.GetType() == pluginType); - if (plugin != null) - { - //FlaxEngine.Debug.Log($"Plugin {plugin.GetType()} is Initialized?"); - if (!plugin.Initialized) - { - dependenciesInitialized = false; - break; - } - } - else - { - dependenciesInitialized = false; - break; - } - } - - if (dependenciesInitialized) - { - Init(); - Initialized = true; - - // Initialize any previously deferred plugins in case their dependencies were initialized - foreach (var p in plugins) - { - //FlaxEngine.Debug.Log($"try init Plugin {p.GetType()}"); - if (!p.Initialized /* && p.PluginDependencies.Contains(this.GetType())*/) - { - //FlaxEngine.Debug.Log($"Plugin run init {p.GetType()}"); - p.Initialize(); - } - } - } - } - } - - public override void Deinitialize() - { - base.Deinitialize(); - if (!Deinitialized) - { - Deinit(); - Deinitialized = true; - } - } - - public virtual void Init() - { - } - public virtual void Deinit() - { - } - } -#endif -} \ No newline at end of file diff --git a/Source/GameEditorTarget.Build.cs b/Source/GameEditorTarget.Build.cs index 4d2aadf..040bc62 100644 --- a/Source/GameEditorTarget.Build.cs +++ b/Source/GameEditorTarget.Build.cs @@ -1,20 +1,24 @@ +//#define COMPILE_WITH_DLSS + using Flax.Build; public class GameEditorTarget : GameProjectEditorTarget { + private bool UseDLSS = false; + /// public override void Init() { base.Init(); - // Reference the modules for editor - Modules.Add("Game"); - Modules.Add("FidelityFXFSR"); - //Modules.Add("Cabrito"); - Architectures = new TargetArchitecture[] { TargetArchitecture.x64 }; Platforms = new TargetPlatform[] { TargetPlatform.Windows }; - //this.LinkType = TargetLinkType.Monolithic; + + Modules.Add("Game"); + //Modules.Add("FidelityFXFSR"); +#if COMPILE_WITH_DLSS + //Modules.Add("DLSS"); +#endif } } diff --git a/Source/GameTarget.Build.cs b/Source/GameTarget.Build.cs index ba6d7ce..859abcf 100644 --- a/Source/GameTarget.Build.cs +++ b/Source/GameTarget.Build.cs @@ -1,9 +1,13 @@ +//#define COMPILE_WITH_DLSS + using System; using Flax.Build; using Flax.Build.NativeCpp; public class GameTarget : GameProjectTarget { + private bool UseDLSS = false; + /// public override void Init() { @@ -24,7 +28,10 @@ public class GameTarget : GameProjectTarget } Modules.Add("Game"); - Modules.Add("FidelityFXFSR"); + //Modules.Add("FidelityFXFSR"); +#if COMPILE_WITH_DLSS + //Modules.Add("DLSS"); +#endif } public override string GetOutputFilePath(BuildOptions options, TargetOutputType? outputType = null) diff --git a/Source/Properties/launchSettings.json b/Source/Properties/launchSettings.json new file mode 100644 index 0000000..9a8f1aa --- /dev/null +++ b/Source/Properties/launchSettings.json @@ -0,0 +1,9 @@ +{ + "profiles": { + "Game.CSharp": { + "commandName": "Project", + "remoteDebugEnabled": false, + "nativeDebugging": false + } + } +} \ No newline at end of file diff --git a/Tests/ConsoleTests.cs b/Tests/ConsoleTests.cs index 3b6c933..ce0b7a6 100644 --- a/Tests/ConsoleTests.cs +++ b/Tests/ConsoleTests.cs @@ -1,5 +1,4 @@ using NUnit.Framework; -using Cabrito; using Console = Game.Console; namespace GoakeTests.ConsoleTests diff --git a/Tests/GoakeTests.csproj b/Tests/GoakeTests.csproj index 861f859..593376e 100644 --- a/Tests/GoakeTests.csproj +++ b/Tests/GoakeTests.csproj @@ -4,28 +4,28 @@ false - net48;net5.0;net5.0-windows;net6.0;net6.0-windows + net7.0 False Editor.Windows.Development;Game.Windows.Development;Release - AnyCPU + x64 - + 5 - + 5 - + 4 - + 4 @@ -34,22 +34,22 @@ - BUILD_DEVELOPMENT;PLATFORM_WINDOWS;FLAX_EDITOR;FLAX;FLAX_ASSERTIONS;FLAX_1;FLAX_1_4 + BUILD_DEVELOPMENT;PLATFORM_WINDOWS;FLAX_EDITOR;FLAX;FLAX_ASSERTIONS;FLAX_1;FLAX_1_5 - BUILD_DEVELOPMENT;PLATFORM_WINDOWS;FLAX_GAME;FLAX;FLAX_ASSERTIONS;FLAX_1;FLAX_1_4 + BUILD_DEVELOPMENT;PLATFORM_WINDOWS;FLAX_GAME;FLAX;FLAX_ASSERTIONS;FLAX_1;FLAX_1_5 - BUILD_RELEASE;PLATFORM_WINDOWS;FLAX_GAME;FLAX;FLAX_ASSERTIONS;FLAX_1;FLAX_1_4 + BUILD_RELEASE;PLATFORM_WINDOWS;FLAX_GAME;FLAX;FLAX_ASSERTIONS;FLAX_1;FLAX_1_5 true - - + + diff --git a/Tests/MapParserTests.cs b/Tests/MapParserTests.cs index bdf3764..18fb7d3 100644 --- a/Tests/MapParserTests.cs +++ b/Tests/MapParserTests.cs @@ -2,7 +2,6 @@ using System.Diagnostics; using System.IO; using NUnit.Framework; -using Cabrito; using FlaxEngine; using Game; diff --git a/lore.md b/lore.md index 8880cf4..f40faaa 100644 --- a/lore.md +++ b/lore.md @@ -16,4 +16,10 @@ - shotgun: very powerful and inaccurate shotgun which shoots shrapnel that can ricochet from walls and still hit the target. possibly homage to flak cannon in unreal series. packs enough punch to even push the player backwards while in mid-air. - lightning gun: ? - melee weapon: can be almost anything from swords to hammers to laser sword and tasers. no pummel. can push back the player a bit when hitting floor or walls. - - \ No newline at end of file + - + +names suggested by ChatGPT: +"Ruin Arena": This name conveys the setting of your game, and the word "arena" implies competitive gameplay. +"Golem Arena": This name incorporates the goat-like appearance of your game's creatures, and the word "golem" suggests ancient, powerful beings. +"Eon Arena": This name incorporates the idea of a long-dormant race being awakened, and it suggests a vast, epic time scale. +"Odyssey Arena": This name suggests a journey or quest, which could be fitting if your game includes a storyline or narrative element.