commit 3fffad5317e9ed6754ff4275b21ff89d7dff8a5c Author: Dron <> Date: Mon Jun 19 17:13:11 2023 +0500 ffffffuuuuuuuuuu diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ca676d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,91 @@ +# ---> UnrealEngine +# Visual Studio 2015 user specific files +.vs/ + +# Visual Studio 2015 database file +*.VC.db + +# Compiled Object files +#*.slo +#*.lo +#*.o +*.obj + +# Precompiled Headers +#*.gch +#*.pch + +# Compiled Dynamic libraries +#*.so +#*.dylib +*.dll + +#plugins exception +*.pdb +*.exp +*.response +*.modules + +# Fortran module files +#*.mod + +# Compiled Static libraries +#*.lai +#*.la +#*.a +*.lib + +# Executables +#*.exe +#*.out +#*.app +#*.ipa + +# These project files can be generated by the engine +*.xcodeproj +*.xcworkspace +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* + +# Builds +Build/* + +# Plugins +Plugins/* +Plugins/ + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* + +# Custom files +StatisticsData.txt + +# Application folders +Offers/ +Users/ + +# UnrealCLR +Managed/ \ No newline at end of file diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 0000000..b9be525 --- /dev/null +++ b/.vsconfig @@ -0,0 +1,17 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.Net.Component.4.6.2.TargetingPack", + "Microsoft.VisualStudio.Component.VC.14.33.17.3.ARM64", + "Microsoft.VisualStudio.Component.VC.14.33.17.3.x86.x64", + "Microsoft.VisualStudio.Component.VC.Tools.ARM64", + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", + "Microsoft.VisualStudio.Component.Windows10SDK", + "Microsoft.VisualStudio.Workload.CoreEditor", + "Microsoft.VisualStudio.Workload.ManagedDesktop", + "Microsoft.VisualStudio.Workload.NativeCrossPlat", + "Microsoft.VisualStudio.Workload.NativeDesktop", + "Microsoft.VisualStudio.Workload.NativeGame", + "Microsoft.VisualStudio.Workload.Universal" + ] +} diff --git a/Config/DefaultCrypto.ini b/Config/DefaultCrypto.ini new file mode 100644 index 0000000..d0fa862 --- /dev/null +++ b/Config/DefaultCrypto.ini @@ -0,0 +1,11 @@ +[/Script/CryptoKeys.CryptoKeysSettings] +EncryptionKey= +bEncryptPakIniFiles=False +bEncryptPakIndex=False +bEncryptUAssetFiles=False +bEncryptAllAssetFiles=False +SigningPublicExponent= +SigningModulus= +SigningPrivateExponent= +bEnablePakSigning=False + diff --git a/Config/DefaultDeviceProfiles2.ini b/Config/DefaultDeviceProfiles2.ini new file mode 100644 index 0000000..40a3459 --- /dev/null +++ b/Config/DefaultDeviceProfiles2.ini @@ -0,0 +1,53 @@ +[WindowsNoEditor DeviceProfile] +DeviceType=Windows +BaseProfileName=Windows ++TextureLODGroups=(Group=TEXTUREGROUP_World,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_WorldSpecular,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Character,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_CharacterNormalMap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_CharacterSpecular,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Weapon,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_WeaponNormalMap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_WeaponSpecular,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Vehicle,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_VehicleNormalMap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_VehicleSpecular,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Cinematic,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Effects,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="linear",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_EffectsNotFiltered,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Skybox,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=8192,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=8192,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_UI,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_NoMipmaps,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Lightmap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_RenderTarget,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_MobileFlattened,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_ProcBuilding_Face,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_ProcBuilding_LightMap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Shadowmap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=3,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_ColorLookupTable,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Heightmap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Weightmap,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Bokeh,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="linear",MipFilter="linear",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_IESLightProfile,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Pixels2D,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="point",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_HierarchicalLOD,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Impostor,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_ImpostorNormalDepth,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_8BitData,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_NoMipmaps,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="point",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_16BitData,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_NoMipmaps,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="point",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project01,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project02,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project03,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project04,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project05,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project06,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project07,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project08,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project09,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project10,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project11,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project12,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project13,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project14,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) ++TextureLODGroups=(Group=TEXTUREGROUP_Project15,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=512,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,OptionalLODBias=0,OptionalMaxLODSize=512,MinMagFilter="Aniso",MipFilter="Point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default) + diff --git a/Config/DefaultEditor.ini b/Config/DefaultEditor.ini new file mode 100644 index 0000000..d3c6302 --- /dev/null +++ b/Config/DefaultEditor.ini @@ -0,0 +1,24 @@ +[/Script/UMGEditor.UMGEditorProjectSettings] +DefaultCompilerOptions=(bAllowBlueprintTick=True,bAllowBlueprintPaint=True,PropertyBindingRule=Allow,Rules=) +bShowWidgetsFromEngineContent=False +bShowWidgetsFromDeveloperContent=True +bUseWidgetTemplateSelector=False +DefaultRootWidget=Class'/Script/UMG.CanvasPanel' +DefaultWidgetParentClass=/Script/UMG.UserWidget +-DebugResolutions=(Width=3840,Height=2160,Description="",Color=(R=0.745404,G=0.904661,B=1.000000,A=1.000000)) +-DebugResolutions=(Width=3440,Height=1440,Description="",Color=(R=0.439657,G=0.783538,B=0.982251,A=1.000000)) +-DebugResolutions=(Width=2560,Height=1440,Description="",Color=(R=0.208637,G=0.644480,B=0.973445,A=1.000000)) +-DebugResolutions=(Width=1440,Height=2560,Description="",Color=(R=0.215861,G=0.651406,B=0.973445,A=1.000000)) +-DebugResolutions=(Width=2560,Height=1080,Description="",Color=(R=0.064803,G=0.539479,B=0.955973,A=1.000000)) +-DebugResolutions=(Width=2048,Height=1536,Description="",Color=(R=0.009134,G=0.462077,B=0.947307,A=1.000000)) +-DebugResolutions=(Width=1536,Height=2048,Description="",Color=(R=0.009134,G=0.462077,B=0.947307,A=1.000000)) +-DebugResolutions=(Width=1920,Height=1080,Description="",Color=(R=0.000000,G=0.386429,B=0.930111,A=1.000000)) +-DebugResolutions=(Width=1080,Height=1920,Description="",Color=(R=0.000000,G=0.386429,B=0.930111,A=1.000000)) +-DebugResolutions=(Width=1280,Height=720,Description="",Color=(R=0.000000,G=0.318547,B=0.806952,A=1.000000)) +-DebugResolutions=(Width=720,Height=1280,Description="",Color=(R=0.000000,G=0.318547,B=0.806952,A=1.000000)) +-DebugResolutions=(Width=1136,Height=640,Description="",Color=(R=0.000000,G=0.238398,B=0.658375,A=1.000000)) +-DebugResolutions=(Width=640,Height=1136,Description="",Color=(R=0.000000,G=0.238398,B=0.658375,A=1.000000)) ++DebugResolutions=(Width=3840,Height=2160,Description="",Color=(R=0.125704,G=0.131394,B=0.395833,A=0.428000)) ++DebugResolutions=(Width=1920,Height=1080,Description="",Color=(R=0.411458,G=0.142297,B=0.109484,A=0.478000)) +Version=1 + diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini new file mode 100644 index 0000000..8d8d3b4 --- /dev/null +++ b/Config/DefaultEngine.ini @@ -0,0 +1,196 @@ +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Maps/L_Startup.L_Startup +LocalMapOptions= +TransitionMap=None +bUseSplitscreen=True +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +FourPlayerSplitscreenLayout=Grid +bOffsetPlayerGamepadIds=False +GameInstanceClass=/Game/Blueprints/Managers/BP_GameInstance.BP_GameInstance_C +GameDefaultMap=/Game/Maps/L_Startup.L_Startup +ServerDefaultMap=/Engine/Maps/Entry.Entry +GlobalDefaultGameMode=None +GlobalDefaultServerGameMode=None + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/Engine.Engine] ++ActiveGameNameRedirects=(OldGameName="TP_BlankBP",NewGameName="/Script/FORTIS_Taktika") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_BlankBP",NewGameName="/Script/FORTIS_Taktika") +MaximumLoopIterationCount=2147483647 + + + +[/Script/Engine.RendererSettings] +r.SkinCache.CompileShaders=True +r.RayTracing=True +r.GenerateMeshDistanceFields=False +r.GenerateLandscapeGIData=True +r.Mobile.AllowDistanceFieldShadows=False +r.VirtualTextures=True +r.VirtualTexturedLightmaps=False +r.MinScreenRadiusForLights=0.010000 +r.ReflectionCaptureResolution=256 +r.CustomDepth=3 +r.SSGI.Enable=False +r.MinScreenRadiusForDepthPrepass=0.030000 +r.DefaultFeature.AmbientOcclusionStaticFraction=False +r.DefaultFeature.MotionBlur=False +r.TessellationAdaptivePixelsPerTriangle=48.000000 +r.SeparateTranslucency=False +r.MobileHDR=False +vr.InstancedStereo=True +vr.RoundRobinOcclusion=True +r.Shadow.UnbuiltPreviewInGame=False +r.RayTracing.UseTextureLod=True +r.SupportStationarySkylight=False +r.SupportLowQualityLightmaps=False +r.DefaultFeature.AntiAliasing=1 + +[/Script/Engine.CollisionProfile] +-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) +-Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False) +-Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False) +-Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic",Response=ECR_Block),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False) +-Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) +-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) +-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) +-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) +-Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Block),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) ++Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision") ++Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.") ++Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ") ++Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ") ++Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic"),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.") ++Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.") ++Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors") ++Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors") ++Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.") ++Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.") ++Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.") ++Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.") ++Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.") ++Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="WaterBodyCollision",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="",CustomResponses=((Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="Default Water Collision Profile (Created by Water Plugin)") +-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") +-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") +-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") +-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") +-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") ++ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") ++ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") ++ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") ++ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") ++ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") +-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") +-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") +-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") ++CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") ++CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") ++CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") ++CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") + +[/Script/LuminRuntimeSettings.LuminRuntimeSettings] +IconModelPath=(Path="") +IconPortalPath=(Path="") + +[/Script/NavigationSystem.NavigationSystemV1] +DefaultAgentName=None +CrowdManagerClass=/Script/AIModule.CrowdManager +bAutoCreateNavigationData=True +bSpawnNavDataInNavBoundsLevel=True +bAllowClientSideNavigation=False +bShouldDiscardSubLevelNavData=False +bTickWhilePaused=False +bInitialBuildingLocked=False +bSkipAgentHeightCheckWhenPickingNavData=True +bGenerateNavigationOnlyAroundNavigationInvokers=False +ActiveTilesUpdateInterval=1.000000 +DataGatheringMode=Instant +DirtyAreaWarningSizeThreshold=-1.000000 ++SupportedAgents=(Name="Default",Color=(B=0,G=255,R=140,A=164),DefaultQueryExtent=(X=50.000000,Y=50.000000,Z=250.000000),NavDataClass=/Script/NavigationSystem.RecastNavMesh,AgentRadius=10.000000,AgentHeight=144.000000,AgentStepHeight=-1.000000,NavWalkingSearchHeightScale=0.500000,PreferredNavData=/Script/NavigationSystem.RecastNavMesh,bCanCrouch=False,bCanJump=False,bCanWalk=False,bCanSwim=False,bCanFly=False) +SupportedAgentsMask=(bSupportsAgent0=True,bSupportsAgent1=True,bSupportsAgent2=True,bSupportsAgent3=True,bSupportsAgent4=True,bSupportsAgent5=True,bSupportsAgent6=True,bSupportsAgent7=True,bSupportsAgent8=True,bSupportsAgent9=True,bSupportsAgent10=True,bSupportsAgent11=True,bSupportsAgent12=True,bSupportsAgent13=True,bSupportsAgent14=True,bSupportsAgent15=True) +DirtyAreasUpdateFreq=60.000000 + +[/Script/NavigationSystem.RecastNavMesh] +RuntimeGeneration=Dynamic +bAutoDestroyWhenNoNavigation=False +ObservedPathsTickInterval=10.000000 +AgentRadius=10.000000 +CellSize=10.000000 + +[/Script/Engine.UserInterfaceSettings] +UIScaleCurve=(EditorCurveData=(Keys=((Time=540.000000,Value=0.250000),(Time=2160.000000,Value=1.000000)),DefaultValue=340282346638528859811704183484516925440.000000,PreInfinityExtrap=RCCE_Constant,PostInfinityExtrap=RCCE_Constant),ExternalCurve=None) + +[ConsoleVariables] +fx.Niagara.ForceLastTickGroup=1 + +[/Script/Engine.StreamingSettings] +s.UseBackgroundLevelStreaming=True + +[/Script/Engine.VirtualTexturePoolConfig] +DefaultSizeInMegabyte=512 ++Pools=(SizeInMegabyte=64,MinTileSize=0,MaxTileSize=9999,Formats=(PF_DXTI,PF_DXT5)) ++Pools=(SizeInMegabyte=512,MinTileSize=0,MaxTileSize=9999,Formats=(PF_A32B32G32R32F)) + +[/Script/OculusHMD.OculusHMDRuntimeSettings] +bAutoEnabled=True +bEnableSpecificColorGamut=False +ColorSpace=Quest +bSupportsDash=True +bCompositesDepth=True +bHQDistortion=False +PixelDensityMin=0.250000 +PixelDensityMax=1.000000 +CPULevel=2 +GPULevel=3 +FFRLevel=FFR_Off +FFRDynamic=False +bChromaCorrection=False +bRecenterHMDWithController=True +bFocusAware=True +bLateLatching=False +bRequiresSystemKeyboard=False +HandTrackingSupport=ControllersOnly +bPhaseSync=False + +[/Script/Engine.NetworkSettings] +MaxRepArraySize=2048 + +[/Script/UnrealEd.CookerSettings] +bIterativeCookingForFileCookContent=True +bIterativeCookingForLaunchOn=True + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=136DD5434C948D276CDD5797EC78C532 +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini new file mode 100644 index 0000000..c9dfe0b --- /dev/null +++ b/Config/DefaultGame.ini @@ -0,0 +1,78 @@ + + +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=F58CF58249FB6CF654B46CA3DB0FE64D + +[/Script/UnrealEd.ProjectPackagingSettings] +Build=IfProjectHasCode +BuildConfiguration=PPBC_Development +BuildTarget= +StagingDirectory=(Path="E:/tempBuilds/fortis") +FullRebuild=False +ForDistribution=False +IncludeDebugFiles=False +BlueprintNativizationMethod=Disabled +bIncludeNativizedAssetsInProjectGeneration=False +bExcludeMonolithicEngineHeadersInNativizedCode=False +UsePakFile=True +bUseIoStore=False +bMakeBinaryConfig=False +bGenerateChunks=False +bGenerateNoChunks=False +bChunkHardReferencesOnly=False +bForceOneChunkPerFile=False +MaxChunkSize=0 +bBuildHttpChunkInstallData=False +HttpChunkInstallDataDirectory=(Path="") +bCompressed=True +PakFileCompressionFormats=Oodle +bForceUseProjectCompressionFormatIgnoreHardwareOverride=False +PakFileAdditionalCompressionOptions=-compressionblocksize=256KB +PakFileCompressionMethod=Kraken +PakFileCompressionLevel_DebugDevelopment=2 +PakFileCompressionLevel_TestShipping=3 +PakFileCompressionLevel_Distribution=7 +HttpChunkInstallDataVersion= +IncludePrerequisites=True +IncludeAppLocalPrerequisites=False +bShareMaterialShaderCode=True +bDeterministicShaderCodeOrder=False +bSharedMaterialNativeLibraries=True +ApplocalPrerequisitesDirectory=(Path="") +IncludeCrashReporter=False +InternationalizationPreset=English +-CulturesToStage=en ++CulturesToStage=en +LocalizationTargetCatchAllChunkId=0 +bCookAll=False +bCookMapsOnly=False +bSkipEditorContent=True +bSkipMovies=False +-IniKeyBlacklist=KeyStorePassword +-IniKeyBlacklist=KeyPassword +-IniKeyBlacklist=rsa.privateexp +-IniKeyBlacklist=rsa.modulus +-IniKeyBlacklist=rsa.publicexp +-IniKeyBlacklist=aes.key +-IniKeyBlacklist=SigningPublicExponent +-IniKeyBlacklist=SigningModulus +-IniKeyBlacklist=SigningPrivateExponent +-IniKeyBlacklist=EncryptionKey +-IniKeyBlacklist=IniKeyBlacklist +-IniKeyBlacklist=IniSectionBlacklist ++IniKeyBlacklist=KeyStorePassword ++IniKeyBlacklist=KeyPassword ++IniKeyBlacklist=rsa.privateexp ++IniKeyBlacklist=rsa.modulus ++IniKeyBlacklist=rsa.publicexp ++IniKeyBlacklist=aes.key ++IniKeyBlacklist=SigningPublicExponent ++IniKeyBlacklist=SigningModulus ++IniKeyBlacklist=SigningPrivateExponent ++IniKeyBlacklist=EncryptionKey ++IniKeyBlacklist=IniKeyBlacklist ++IniKeyBlacklist=IniSectionBlacklist ++DirectoriesToAlwaysStageAsUFS=(Path="Script") ++DirectoriesToAlwaysStageAsNonUFS=(Path="Script") ++DirectoriesToAlwaysStageAsNonUFS=(Path="Txt") + diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini new file mode 100644 index 0000000..2d01f09 --- /dev/null +++ b/Config/DefaultInput.ini @@ -0,0 +1,200 @@ +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Daydream_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Daydream_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Daydream_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Daydream_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Touch",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Z",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Touch1_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Touch1_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Left_Touch1_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Z",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Touch1_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Touch1_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MagicLeap_Right_Touch1_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_ThumbPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_IndexPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_MiddlePinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_RingPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_PinkPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_ThumbPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_IndexPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_MiddlePinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_RingPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_PinkPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=True +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bEnableDynamicComponentInputBinding=True +bAlwaysShowTouchInterface=True +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 ++ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Grip_Click) ++ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_Grip_Click) ++ActionMappings=(ActionName="TriggerLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Trigger_Click) ++ActionMappings=(ActionName="TriggerRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_Trigger_Click) ++ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Left_Grip_Axis) ++ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Left_Grip_Click) ++ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Left_Grip_Click) ++ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_Grip_Axis) ++ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Right_Grip_Click) ++ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Right_Grip_Click) ++ActionMappings=(ActionName="TriggerLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Left_Trigger_Click) ++ActionMappings=(ActionName="TriggerLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Left_Trigger_Click) ++ActionMappings=(ActionName="TriggerLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Left_Trigger_Click) ++ActionMappings=(ActionName="TriggerRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_Trigger_Click) ++ActionMappings=(ActionName="TriggerRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Right_Trigger_Click) ++ActionMappings=(ActionName="TriggerRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Right_Trigger_Click) ++ActionMappings=(ActionName="SpectatorResetFOV",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MiddleMouseButton) ++ActionMappings=(ActionName="SpectatorFadeToggle",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=F) ++ActionMappings=(ActionName="SpectatorActiveToggle",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Tab) ++ActionMappings=(ActionName="SpectatorResetRotation",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=R) ++ActionMappings=(ActionName="MenuToggleLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Menu_Click) ++ActionMappings=(ActionName="MenuToggleLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Left_System_Click) ++ActionMappings=(ActionName="MenuToggleLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Left_Menu_Click) ++ActionMappings=(ActionName="MenuToggleLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Left_Menu_Click) ++ActionMappings=(ActionName="MenuToggleRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_System_Click) ++ActionMappings=(ActionName="MenuToggleRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Right_Menu_Click) ++ActionMappings=(ActionName="MenuToggleRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Right_Menu_Click) ++ActionMappings=(ActionName="EXIT_APPLICATION",bShift=True,bCtrl=True,bAlt=True,bCmd=False,Key=None) ++ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=K) ++AxisMappings=(AxisName="MovementAxisLeft_X",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_X) ++AxisMappings=(AxisName="GrabAxisLeft",Scale=1.000000,Key=OculusTouch_Left_Grip_Axis) ++AxisMappings=(AxisName="MovementAxisLeft_Y",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_Y) ++AxisMappings=(AxisName="TriggerAxisLeft",Scale=1.000000,Key=OculusTouch_Left_Trigger_Axis) ++AxisMappings=(AxisName="TriggerAxisRight",Scale=1.000000,Key=OculusTouch_Right_Trigger_Axis) ++AxisMappings=(AxisName="MovementAxisLeft_X",Scale=1.000000,Key=ValveIndex_Left_Thumbstick_X) ++AxisMappings=(AxisName="MovementAxisLeft_X",Scale=1.000000,Key=MixedReality_Left_Thumbstick_X) ++AxisMappings=(AxisName="MovementAxisLeft_X",Scale=1.000000,Key=Vive_Left_Trackpad_X) ++AxisMappings=(AxisName="GrabAxisLeft",Scale=1.000000,Key=ValveIndex_Left_Grip_Axis) ++AxisMappings=(AxisName="GrabAxisLeft",Scale=1.000000,Key=MixedReality_Left_Grip_Click) ++AxisMappings=(AxisName="GrabAxisLeft",Scale=1.000000,Key=Vive_Left_Grip_Click) ++AxisMappings=(AxisName="GrabAxisRight",Scale=1.000000,Key=OculusTouch_Right_Grip_Axis) ++AxisMappings=(AxisName="GrabAxisRight",Scale=1.000000,Key=ValveIndex_Right_Grip_Axis) ++AxisMappings=(AxisName="GrabAxisRight",Scale=1.000000,Key=MixedReality_Right_Grip_Click) ++AxisMappings=(AxisName="GrabAxisRight",Scale=1.000000,Key=Vive_Right_Grip_Click) ++AxisMappings=(AxisName="TriggerAxisLeft",Scale=1.000000,Key=ValveIndex_Left_Trigger_Axis) ++AxisMappings=(AxisName="TriggerAxisLeft",Scale=1.000000,Key=MixedReality_Left_Trigger_Axis) ++AxisMappings=(AxisName="TriggerAxisLeft",Scale=1.000000,Key=Vive_Left_Trigger_Axis) ++AxisMappings=(AxisName="TriggerAxisRight",Scale=1.000000,Key=ValveIndex_Right_Trigger_Axis) ++AxisMappings=(AxisName="TriggerAxisRight",Scale=1.000000,Key=MixedReality_Right_Trigger_Axis) ++AxisMappings=(AxisName="TriggerAxisRight",Scale=1.000000,Key=Vive_Right_Trigger_Axis) ++AxisMappings=(AxisName="MovementAxisLeft_Y",Scale=1.000000,Key=ValveIndex_Left_Thumbstick_Y) ++AxisMappings=(AxisName="MovementAxisLeft_Y",Scale=1.000000,Key=MixedReality_Left_Thumbstick_Y) ++AxisMappings=(AxisName="MovementAxisLeft_Y",Scale=1.000000,Key=Vive_Left_Trackpad_Y) ++AxisMappings=(AxisName="SpectatorYaw",Scale=1.000000,Key=MouseX) ++AxisMappings=(AxisName="SpectatorPitch",Scale=1.000000,Key=MouseY) ++AxisMappings=(AxisName="SpectatorFOV",Scale=1.000000,Key=MouseWheelAxis) ++AxisMappings=(AxisName="SpectatorMoveForward",Scale=1.000000,Key=W) ++AxisMappings=(AxisName="SpectatorMoveRight",Scale=1.000000,Key=D) ++AxisMappings=(AxisName="SpectatorMoveForward",Scale=-1.000000,Key=S) ++AxisMappings=(AxisName="SpectatorMoveRight",Scale=-1.000000,Key=A) ++AxisMappings=(AxisName="SpectatorMoveUp",Scale=1.000000,Key=SpaceBar) ++AxisMappings=(AxisName="SpectatorMoveUp",Scale=1.000000,Key=E) ++AxisMappings=(AxisName="SpectatorMoveUp",Scale=-1.000000,Key=Q) ++AxisMappings=(AxisName="MovementAxisRight_X",Scale=1.000000,Key=OculusTouch_Right_Thumbstick_X) ++AxisMappings=(AxisName="MovementAxisRight_X",Scale=1.000000,Key=ValveIndex_Right_Thumbstick_X) ++AxisMappings=(AxisName="MovementAxisRight_X",Scale=1.000000,Key=MixedReality_Right_Thumbstick_X) ++AxisMappings=(AxisName="MovementAxisRight_X",Scale=1.000000,Key=Vive_Right_Trackpad_X) ++AxisMappings=(AxisName="MovementAxisRight_Y",Scale=1.000000,Key=OculusTouch_Right_Thumbstick_Y) ++AxisMappings=(AxisName="MovementAxisRight_Y",Scale=1.000000,Key=ValveIndex_Right_Thumbstick_Y) ++AxisMappings=(AxisName="MovementAxisRight_Y",Scale=1.000000,Key=MixedReality_Right_Thumbstick_Y) ++AxisMappings=(AxisName="MovementAxisRight_Y",Scale=1.000000,Key=Vive_Right_Trackpad_Y) ++AxisMappings=(AxisName="MovementAxisRight_Y",Scale=1.000000,Key=OculusTouch_Right_A_Click) +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent +DefaultTouchInterface=None +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde + diff --git a/Config/DefaultPixelStreaming.ini b/Config/DefaultPixelStreaming.ini new file mode 100644 index 0000000..807820f --- /dev/null +++ b/Config/DefaultPixelStreaming.ini @@ -0,0 +1,5 @@ + + +[/Script/PixelStreaming.PixelStreamingSettings] +bPixelStreamerMouseAlwaysAttached=False + diff --git a/Config/SteamVRBindings/gamepad.json b/Config/SteamVRBindings/gamepad.json new file mode 100644 index 0000000..7a8d4ba --- /dev/null +++ b/Config/SteamVRBindings/gamepad.json @@ -0,0 +1,13 @@ +{ + "name": "Default bindings for Gamepads", + "controller_type": "gamepad", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/holographic_controller.json b/Config/SteamVRBindings/holographic_controller.json new file mode 100644 index 0000000..14f4720 --- /dev/null +++ b/Config/SteamVRBindings/holographic_controller.json @@ -0,0 +1,177 @@ +{ + "name": "Default bindings for MixedReality", + "controller_type": "holographic_controller", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [ + { + "mode": "button", + "path": "/user/hand/left/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabRight" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerLeft" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerRight" + } + } + }, + { + "mode": "button", + "path": "/user/hand/left/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleRight" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/left/input/joystick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d" + } + } + }, + { + "mode": "scalar_constant", + "path": "/user/hand/left/input/grip", + "inputs": + { + "value": + { + "output": "/actions/main/in/GrabAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisRight axis" + } + } + }, + { + "mode": "scalar_constant", + "path": "/user/hand/right/input/grip", + "inputs": + { + "value": + { + "output": "/actions/main/in/GrabAxisRight axis" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/right/input/joystick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d" + } + } + } + ], + "poses": [ + { + "output": "/actions/main/in/controllerleft", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/controllerright", + "path": "/user/hand/right/pose/raw" + } + ], + "skeleton": [ + { + "output": "/actions/main/in/skeletonleft", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/main/in/skeletonright", + "path": "/user/hand/right/input/skeleton/right" + } + ], + "haptics": [ + { + "output": "/actions/main/out/vibrateleft", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/main/out/vibrateright", + "path": "/user/hand/right/output/haptic" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/hpmotioncontroller.json b/Config/SteamVRBindings/hpmotioncontroller.json new file mode 100644 index 0000000..db06818 --- /dev/null +++ b/Config/SteamVRBindings/hpmotioncontroller.json @@ -0,0 +1,177 @@ +{ + "name": "Default bindings for HPMixedRealityController", + "controller_type": "hpmotioncontroller", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [ + { + "mode": "button", + "path": "/user/hand/left/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabRight" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerLeft" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerRight" + } + } + }, + { + "mode": "button", + "path": "/user/hand/left/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleRight" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/left/input/joystick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d" + } + } + }, + { + "mode": "scalar_constant", + "path": "/user/hand/left/input/grip", + "inputs": + { + "value": + { + "output": "/actions/main/in/GrabAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisRight axis" + } + } + }, + { + "mode": "scalar_constant", + "path": "/user/hand/right/input/grip", + "inputs": + { + "value": + { + "output": "/actions/main/in/GrabAxisRight axis" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/right/input/joystick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d" + } + } + } + ], + "poses": [ + { + "output": "/actions/main/in/controllerleft", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/controllerright", + "path": "/user/hand/right/pose/raw" + } + ], + "skeleton": [ + { + "output": "/actions/main/in/skeletonleft", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/main/in/skeletonright", + "path": "/user/hand/right/input/skeleton/right" + } + ], + "haptics": [ + { + "output": "/actions/main/out/vibrateleft", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/main/out/vibrateright", + "path": "/user/hand/right/output/haptic" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/indexhmd.json b/Config/SteamVRBindings/indexhmd.json new file mode 100644 index 0000000..460d5a9 --- /dev/null +++ b/Config/SteamVRBindings/indexhmd.json @@ -0,0 +1,13 @@ +{ + "name": "Default bindings for Valve Index Headset", + "controller_type": "indexhmd", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/knuckles.json b/Config/SteamVRBindings/knuckles.json new file mode 100644 index 0000000..0dcb049 --- /dev/null +++ b/Config/SteamVRBindings/knuckles.json @@ -0,0 +1,155 @@ +{ + "name": "Default bindings for ValveIndex", + "controller_type": "knuckles", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [ + { + "mode": "button", + "path": "/user/hand/left/input/grip", + "inputs": + { + "touch": + { + "output": "/actions/main/in/GrabLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/grip", + "inputs": + { + "touch": + { + "output": "/actions/main/in/GrabRight" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerLeft" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerRight" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/left/input/thumbstick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d" + } + } + }, + { + "mode": "force_sensor", + "path": "/user/hand/left/input/grip", + "inputs": + { + "force": + { + "output": "/actions/main/in/GrabAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisRight axis" + } + } + }, + { + "mode": "force_sensor", + "path": "/user/hand/right/input/grip", + "inputs": + { + "force": + { + "output": "/actions/main/in/GrabAxisRight axis" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/right/input/thumbstick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d" + } + } + } + ], + "poses": [ + { + "output": "/actions/main/in/controllerleft", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/controllerright", + "path": "/user/hand/right/pose/raw" + } + ], + "skeleton": [ + { + "output": "/actions/main/in/skeletonleft", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/main/in/skeletonright", + "path": "/user/hand/right/input/skeleton/right" + } + ], + "haptics": [ + { + "output": "/actions/main/out/vibrateleft", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/main/out/vibrateright", + "path": "/user/hand/right/output/haptic" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/oculus_touch.json b/Config/SteamVRBindings/oculus_touch.json new file mode 100644 index 0000000..62611f9 --- /dev/null +++ b/Config/SteamVRBindings/oculus_touch.json @@ -0,0 +1,177 @@ +{ + "name": "Default bindings for OculusTouch", + "controller_type": "oculus_touch", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [ + { + "mode": "trigger", + "path": "/user/hand/left/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabLeft" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabRight" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerLeft" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerRight" + } + } + }, + { + "mode": "button", + "path": "/user/hand/left/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleLeft" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/left/input/joystick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/grip", + "inputs": + { + "pull": + { + "output": "/actions/main/in/GrabAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisRight axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/grip", + "inputs": + { + "pull": + { + "output": "/actions/main/in/GrabAxisRight axis" + } + } + }, + { + "mode": "joystick", + "path": "/user/hand/right/input/joystick", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/a", + "inputs": + { + "pull": + { + "output": "/actions/main/in/MovementAxisRight_Y axis" + } + } + } + ], + "poses": [ + { + "output": "/actions/main/in/controllerleft", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/controllerright", + "path": "/user/hand/right/pose/raw" + } + ], + "skeleton": [ + { + "output": "/actions/main/in/skeletonleft", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/main/in/skeletonright", + "path": "/user/hand/right/input/skeleton/right" + } + ], + "haptics": [ + { + "output": "/actions/main/out/vibrateleft", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/main/out/vibrateright", + "path": "/user/hand/right/output/haptic" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/rift.json b/Config/SteamVRBindings/rift.json new file mode 100644 index 0000000..1a78675 --- /dev/null +++ b/Config/SteamVRBindings/rift.json @@ -0,0 +1,13 @@ +{ + "name": "Default bindings for Rift Headset", + "controller_type": "rift", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/steamvr_manifest.json b/Config/SteamVRBindings/steamvr_manifest.json new file mode 100644 index 0000000..e525801 --- /dev/null +++ b/Config/SteamVRBindings/steamvr_manifest.json @@ -0,0 +1,389 @@ +{ + "actions": [ + { + "name": "/actions/main/in/controllerleft", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/controllerright", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_camera", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_chest", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_shoulder_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_shoulder_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_elbow_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_elbow_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_knee_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_knee_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_waist", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_foot_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_foot_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_keyboard", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_pose_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_pose_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_back_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_back_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_front_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_front_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_frontr_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_frontr_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_grip_left", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/tracker_handed_grip_right", + "type": "pose", + "requirement": "optional" + }, + { + "name": "/actions/main/in/skeletonleft", + "type": "skeleton", + "skeleton": "/skeleton/hand/left", + "requirement": "optional" + }, + { + "name": "/actions/main/in/skeletonright", + "type": "skeleton", + "skeleton": "/skeleton/hand/right", + "requirement": "optional" + }, + { + "name": "/actions/main/out/vibrateleft", + "type": "vibration", + "requirement": "optional" + }, + { + "name": "/actions/main/out/vibrateright", + "type": "vibration", + "requirement": "optional" + }, + { + "name": "/actions/main/in/open_console", + "type": "boolean", + "requirement": "optional" + }, + { + "name": "/actions/main/in/GrabLeft", + "type": "boolean" + }, + { + "name": "/actions/main/in/GrabRight", + "type": "boolean" + }, + { + "name": "/actions/main/in/TriggerLeft", + "type": "boolean" + }, + { + "name": "/actions/main/in/TriggerRight", + "type": "boolean" + }, + { + "name": "/actions/main/in/MenuToggleLeft", + "type": "boolean" + }, + { + "name": "/actions/main/in/MenuToggleRight", + "type": "boolean" + }, + { + "name": "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d", + "type": "vector2" + }, + { + "name": "/actions/main/in/GrabAxisLeft axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/TriggerAxisLeft axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/TriggerAxisRight axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/GrabAxisRight axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/SpectatorYaw axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/SpectatorPitch axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/SpectatorFOV axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/SpectatorMoveForward axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/SpectatorMoveRight axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/SpectatorMoveUp axis", + "type": "vector1" + }, + { + "name": "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d", + "type": "vector2" + }, + { + "name": "/actions/main/in/MovementAxisRight_Y axis", + "type": "vector1" + } + ], + "action_sets": [ + { + "name": "/actions/main", + "usage": "leftright" + } + ], + "default_bindings": [ + { + "controller_type": "gamepad", + "binding_url": "gamepad.json" + }, + { + "controller_type": "holographic_controller", + "binding_url": "holographic_controller.json" + }, + { + "controller_type": "hpmotioncontroller", + "binding_url": "hpmotioncontroller.json" + }, + { + "controller_type": "indexhmd", + "binding_url": "indexhmd.json" + }, + { + "controller_type": "knuckles", + "binding_url": "knuckles.json" + }, + { + "controller_type": "oculus_touch", + "binding_url": "oculus_touch.json" + }, + { + "controller_type": "rift", + "binding_url": "rift.json" + }, + { + "controller_type": "vive", + "binding_url": "vive.json" + }, + { + "controller_type": "vive_controller", + "binding_url": "vive_controller.json" + }, + { + "controller_type": "vive_cosmos_controller", + "binding_url": "vive_cosmos_controller.json" + }, + { + "controller_type": "vive_pro", + "binding_url": "vive_pro.json" + }, + { + "controller_type": "vive_tracker", + "binding_url": "vive_tracker.json" + }, + { + "controller_type": "vive_tracker_camera", + "binding_url": "vive_tracker_camera.json" + }, + { + "controller_type": "vive_tracker_chest", + "binding_url": "vive_tracker_chest.json" + }, + { + "controller_type": "vive_tracker_handed", + "binding_url": "vive_tracker_handed.json" + }, + { + "controller_type": "vive_tracker_keyboard", + "binding_url": "vive_tracker_keyboard.json" + }, + { + "controller_type": "vive_tracker_left_elbow", + "binding_url": "vive_tracker_left_elbow.json" + }, + { + "controller_type": "vive_tracker_left_foot", + "binding_url": "vive_tracker_left_foot.json" + }, + { + "controller_type": "vive_tracker_left_knee", + "binding_url": "vive_tracker_left_knee.json" + }, + { + "controller_type": "vive_tracker_left_shoulder", + "binding_url": "vive_tracker_left_shoulder.json" + }, + { + "controller_type": "vive_tracker_right_elbow", + "binding_url": "vive_tracker_right_elbow.json" + }, + { + "controller_type": "vive_tracker_right_foot", + "binding_url": "vive_tracker_right_foot.json" + }, + { + "controller_type": "vive_tracker_right_knee", + "binding_url": "vive_tracker_right_knee.json" + }, + { + "controller_type": "vive_tracker_right_shoulder", + "binding_url": "vive_tracker_right_shoulder.json" + }, + { + "controller_type": "vive_tracker_waist", + "binding_url": "vive_tracker_waist.json" + } + ], + "localization": [ + { + "language_tag": "en_us", + "/actions/main/in/controllerleft": "Left Controller [Pose]", + "/actions/main/in/controllerright": "Right Controller [Pose]", + "/actions/main/in/tracker_camera": "Camera [Tracker]", + "/actions/main/in/tracker_chest": "Chest [Tracker]", + "/actions/main/in/tracker_shoulder_left": "Shoulder Left [Tracker]", + "/actions/main/in/tracker_shoulder_right": "Shoulder Right [Tracker]", + "/actions/main/in/tracker_elbow_left": "Elbow Left [Tracker]", + "/actions/main/in/tracker_elbow_right": "Elbow Right [Tracker]", + "/actions/main/in/tracker_knee_left": "Knee Left [Tracker]", + "/actions/main/in/tracker_knee_right": "Knee Right [Tracker]", + "/actions/main/in/tracker_waist": "Waist [Tracker]", + "/actions/main/in/tracker_foot_left": "Foot Left [Tracker]", + "/actions/main/in/tracker_foot_right": "Foot Right [Tracker]", + "/actions/main/in/tracker_keyboard": "Keyboard [Tracker]", + "/actions/main/in/tracker_handed_pose_left": "Raw Pose Left [Tracker]", + "/actions/main/in/tracker_handed_pose_right": "Raw Pose Right [Tracker]", + "/actions/main/in/tracker_handed_back_left": "Handed Back Left [Tracker]", + "/actions/main/in/tracker_handed_back_right": "Handed Back Right [Tracker]", + "/actions/main/in/tracker_handed_front_left": "Handed Front Left [Tracker]", + "/actions/main/in/tracker_handed_front_right": "Handed Front Right [Tracker]", + "/actions/main/in/tracker_handed_frontr_left": "Handed Front Rolled Left [Tracker]", + "/actions/main/in/tracker_handed_frontr_right": "Handed Front Rolled Right [Tracker]", + "/actions/main/in/tracker_handed_grip_left": "Handed Pistol Grip Left [Tracker]", + "/actions/main/in/tracker_handed_grip_right": "Handed Pistol Grip Right [Tracker]", + "/actions/main/in/skeletonleft": "Skeleton (Left)", + "/actions/main/in/skeletonright": "Skeleton (Right)", + "/actions/main/out/vibrateleft": "Haptic (Left)", + "/actions/main/out/vibrateright": "Haptic (Right)", + "/actions/main/in/open_console": "Open Console", + "/actions/main/in/GrabLeft": "GrabLeft", + "/actions/main/in/GrabRight": "GrabRight", + "/actions/main/in/TriggerLeft": "TriggerLeft", + "/actions/main/in/TriggerRight": "TriggerRight", + "/actions/main/in/MenuToggleLeft": "MenuToggleLeft", + "/actions/main/in/MenuToggleRight": "MenuToggleRight", + "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d": "MovementAxisLeft", + "/actions/main/in/GrabAxisLeft axis": "GrabAxisLeft", + "/actions/main/in/TriggerAxisLeft axis": "TriggerAxisLeft", + "/actions/main/in/TriggerAxisRight axis": "TriggerAxisRight", + "/actions/main/in/GrabAxisRight axis": "GrabAxisRight", + "/actions/main/in/SpectatorYaw axis": "SpectatorYaw", + "/actions/main/in/SpectatorPitch axis": "SpectatorPitch", + "/actions/main/in/SpectatorFOV axis": "SpectatorFOV", + "/actions/main/in/SpectatorMoveForward axis": "SpectatorMoveForward", + "/actions/main/in/SpectatorMoveRight axis": "SpectatorMoveRight", + "/actions/main/in/SpectatorMoveUp axis": "SpectatorMoveUp", + "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d": "MovementAxisRight", + "/actions/main/in/MovementAxisRight_Y axis": "MovementAxisRight_Y", + "/actions/main": "Main Game Actions" + } + ] +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive.json b/Config/SteamVRBindings/vive.json new file mode 100644 index 0000000..aa78741 --- /dev/null +++ b/Config/SteamVRBindings/vive.json @@ -0,0 +1,13 @@ +{ + "name": "Default bindings for Vive Headset", + "controller_type": "vive", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_controller.json b/Config/SteamVRBindings/vive_controller.json new file mode 100644 index 0000000..3579db3 --- /dev/null +++ b/Config/SteamVRBindings/vive_controller.json @@ -0,0 +1,177 @@ +{ + "name": "Default bindings for Vive", + "controller_type": "vive_controller", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [ + { + "mode": "button", + "path": "/user/hand/left/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/grip", + "inputs": + { + "click": + { + "output": "/actions/main/in/GrabRight" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerLeft" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "click": + { + "output": "/actions/main/in/TriggerRight" + } + } + }, + { + "mode": "button", + "path": "/user/hand/left/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleLeft" + } + } + }, + { + "mode": "button", + "path": "/user/hand/right/input/application_menu", + "inputs": + { + "click": + { + "output": "/actions/main/in/MenuToggleRight" + } + } + }, + { + "mode": "trackpad", + "path": "/user/hand/left/input/trackpad", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisLeft_X,MovementAxisLeft_Y X Y_axis2d" + } + } + }, + { + "mode": "scalar_constant", + "path": "/user/hand/left/input/grip", + "inputs": + { + "value": + { + "output": "/actions/main/in/GrabAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/left/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisLeft axis" + } + } + }, + { + "mode": "trigger", + "path": "/user/hand/right/input/trigger", + "inputs": + { + "pull": + { + "output": "/actions/main/in/TriggerAxisRight axis" + } + } + }, + { + "mode": "scalar_constant", + "path": "/user/hand/right/input/grip", + "inputs": + { + "value": + { + "output": "/actions/main/in/GrabAxisRight axis" + } + } + }, + { + "mode": "trackpad", + "path": "/user/hand/right/input/trackpad", + "inputs": + { + "position": + { + "output": "/actions/main/in/MovementAxisRight_X,MovementAxisRight_Y X Y_axis2d" + } + } + } + ], + "poses": [ + { + "output": "/actions/main/in/controllerleft", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/controllerright", + "path": "/user/hand/right/pose/raw" + } + ], + "skeleton": [ + { + "output": "/actions/main/in/skeletonleft", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/main/in/skeletonright", + "path": "/user/hand/right/input/skeleton/right" + } + ], + "haptics": [ + { + "output": "/actions/main/out/vibrateleft", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/main/out/vibrateright", + "path": "/user/hand/right/output/haptic" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_cosmos_controller.json b/Config/SteamVRBindings/vive_cosmos_controller.json new file mode 100644 index 0000000..f38f32e --- /dev/null +++ b/Config/SteamVRBindings/vive_cosmos_controller.json @@ -0,0 +1,44 @@ +{ + "name": "Default bindings for Cosmos", + "controller_type": "vive_cosmos_controller", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [], + "poses": [ + { + "output": "/actions/main/in/controllerleft", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/controllerright", + "path": "/user/hand/right/pose/raw" + } + ], + "skeleton": [ + { + "output": "/actions/main/in/skeletonleft", + "path": "/user/hand/left/input/skeleton/left" + }, + { + "output": "/actions/main/in/skeletonright", + "path": "/user/hand/right/input/skeleton/right" + } + ], + "haptics": [ + { + "output": "/actions/main/out/vibrateleft", + "path": "/user/hand/left/output/haptic" + }, + { + "output": "/actions/main/out/vibrateright", + "path": "/user/hand/right/output/haptic" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_pro.json b/Config/SteamVRBindings/vive_pro.json new file mode 100644 index 0000000..2295467 --- /dev/null +++ b/Config/SteamVRBindings/vive_pro.json @@ -0,0 +1,13 @@ +{ + "name": "Default bindings for Vive Pro Headset", + "controller_type": "vive_pro", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "sources": [] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker.json b/Config/SteamVRBindings/vive_tracker.json new file mode 100644 index 0000000..48e312b --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker.json @@ -0,0 +1,64 @@ +{ + "name": "Default bindings for Vive Tracker", + "controller_type": "vive_tracker", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_handed_pose_left", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_pose_right", + "path": "/user/hand/right/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_back_left", + "path": "/user/hand/left/pose/back", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_back_right", + "path": "/user/hand/right/pose/back", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_front_left", + "path": "/user/hand/left/pose/front", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_front_right", + "path": "/actions/main/in/tracker_handed_front_right", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_frontr_left", + "path": "/user/hand/left/pose/front_rolled", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_frontr_right", + "path": "/user/hand/right/pose/front_rolled", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_grip_left", + "path": "/user/hand/left/pose/pistol", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_grip_right", + "path": "/user/hand/right/pose/pistol", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_camera.json b/Config/SteamVRBindings/vive_tracker_camera.json new file mode 100644 index 0000000..7d239d0 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_camera.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Camera)", + "controller_type": "vive_tracker_camera", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_camera", + "path": "/user/camera/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_chest.json b/Config/SteamVRBindings/vive_tracker_chest.json new file mode 100644 index 0000000..7554f56 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_chest.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Chest)", + "controller_type": "vive_tracker_chest", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_chest", + "path": "/user/chest/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_handed.json b/Config/SteamVRBindings/vive_tracker_handed.json new file mode 100644 index 0000000..75cc776 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_handed.json @@ -0,0 +1,64 @@ +{ + "name": "Default bindings for Vive Tracker (Handed)", + "controller_type": "vive_tracker_handed", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_handed_pose_left", + "path": "/user/hand/left/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_pose_right", + "path": "/user/hand/right/pose/raw", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_back_left", + "path": "/user/hand/left/pose/back", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_back_right", + "path": "/user/hand/right/pose/back", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_front_left", + "path": "/user/hand/left/pose/front", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_front_right", + "path": "/actions/main/in/tracker_handed_front_right", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_frontr_left", + "path": "/user/hand/left/pose/front_rolled", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_frontr_right", + "path": "/user/hand/right/pose/front_rolled", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_grip_left", + "path": "/user/hand/left/pose/pistol", + "requirement": "optional" + }, + { + "output": "/actions/main/in/tracker_handed_grip_right", + "path": "/user/hand/right/pose/pistol", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_keyboard.json b/Config/SteamVRBindings/vive_tracker_keyboard.json new file mode 100644 index 0000000..fc5bcb4 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_keyboard.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Keyboard)", + "controller_type": "vive_tracker_keyboard", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_keyboard", + "path": "/user/keyboard/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_left_elbow.json b/Config/SteamVRBindings/vive_tracker_left_elbow.json new file mode 100644 index 0000000..ff6f788 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_left_elbow.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Left Elbow)", + "controller_type": "vive_tracker_left_elbow", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_elbow_left", + "path": "/user/elbow/left/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_left_foot.json b/Config/SteamVRBindings/vive_tracker_left_foot.json new file mode 100644 index 0000000..97392f9 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_left_foot.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Left Foot)", + "controller_type": "vive_tracker_left_foot", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_foot_left", + "path": "/user/foot/left/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_left_knee.json b/Config/SteamVRBindings/vive_tracker_left_knee.json new file mode 100644 index 0000000..0a95df5 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_left_knee.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Left knee)", + "controller_type": "vive_tracker_left_knee", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_knee_left", + "path": "/user/knee/left/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_left_shoulder.json b/Config/SteamVRBindings/vive_tracker_left_shoulder.json new file mode 100644 index 0000000..949d5f1 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_left_shoulder.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Left Shoulder)", + "controller_type": "vive_tracker_left_shoulder", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_shoulder_left", + "path": "/user/shoulder/left/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_right_elbow.json b/Config/SteamVRBindings/vive_tracker_right_elbow.json new file mode 100644 index 0000000..b972731 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_right_elbow.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Right Elbow)", + "controller_type": "vive_tracker_right_elbow", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_elbow_right", + "path": "/user/elbow/right/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_right_foot.json b/Config/SteamVRBindings/vive_tracker_right_foot.json new file mode 100644 index 0000000..3d6447e --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_right_foot.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Right Foot)", + "controller_type": "vive_tracker_right_foot", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_foot_right", + "path": "/user/foot/right/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_right_knee.json b/Config/SteamVRBindings/vive_tracker_right_knee.json new file mode 100644 index 0000000..3cf84c7 --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_right_knee.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Right Knee)", + "controller_type": "vive_tracker_right_knee", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_knee_right", + "path": "/user/knee/right/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_right_shoulder.json b/Config/SteamVRBindings/vive_tracker_right_shoulder.json new file mode 100644 index 0000000..ae27e3c --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_right_shoulder.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Right Shoulder)", + "controller_type": "vive_tracker_right_shoulder", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_shoulder_right", + "path": "/user/shoulder/right/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/SteamVRBindings/vive_tracker_waist.json b/Config/SteamVRBindings/vive_tracker_waist.json new file mode 100644 index 0000000..8f8f9cc --- /dev/null +++ b/Config/SteamVRBindings/vive_tracker_waist.json @@ -0,0 +1,19 @@ +{ + "name": "Default bindings for Vive Tracker (Waist)", + "controller_type": "vive_tracker_waist", + "last_edited_by": "UnrealEngine", + "bindings": + { + "/actions/main": + { + "poses": [ + { + "output": "/actions/main/in/tracker_waist", + "path": "/user/waist/pose/raw", + "requirement": "optional" + } + ] + } + }, + "description": "FORTIS_Taktika-18319896" +} \ No newline at end of file diff --git a/Config/steamvr_ue_editor_app.json b/Config/steamvr_ue_editor_app.json new file mode 100644 index 0000000..b1850a3 --- /dev/null +++ b/Config/steamvr_ue_editor_app.json @@ -0,0 +1,18 @@ +{ + "source": "UE", + "applications": [ + { + "app_key": "application.generated.ue.fortis_taktika-18319896.ue4editor.exe", + "launch_type": "url", + "url": "steam://launch/", + "action_manifest_path": "E:/Projects/Fortis/Config/SteamVRBindings/steamvr_manifest.json", + "strings": + { + "en_us": + { + "name": "FORTIS_Taktika-18319896 [UE Editor]" + } + } + } + ] +} \ No newline at end of file diff --git a/FORTIS_Taktika.uproject b/FORTIS_Taktika.uproject new file mode 100644 index 0000000..10031c1 --- /dev/null +++ b/FORTIS_Taktika.uproject @@ -0,0 +1,130 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.1", + "Category": "", + "Description": "", + + "Plugins": [ + { + "Name": "Water", + "Enabled": true + }, + { + "Name": "Landmass", + "Enabled": true + }, + { + "Name": "OpenXREyeTracker", + "Enabled": false, + "SupportedTargetPlatforms": [ + "Win32", + "Win64", + "Linux", + "HoloLens", + "Android" + ] + }, + { + "Name": "OpenXRHandTracking", + "Enabled": false, + "SupportedTargetPlatforms": [ + "Win32", + "Win64", + "Linux", + "HoloLens", + "Android" + ] + }, + { + "Name": "Prefabricator", + "Enabled": false, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/39ccbbf668e84847890992df9922e355" + }, + { + "Name": "ChaosEditor", + "Enabled": false + }, + { + "Name": "PhysXVehicles", + "Enabled": false + }, + { + "Name": "ChaosNiagara", + "Enabled": false + }, + { + "Name": "ChaosSolverPlugin", + "Enabled": false + }, + { + "Name": "ChaosClothEditor", + "Enabled": false + }, + { + "Name": "ChaosCloth", + "Enabled": false + }, + { + "Name": "GPULightmass", + "Enabled": true + }, + { + "Name": "RTXGI", + "Enabled": false + }, + { + "Name": "HairStrands", + "Enabled": true + }, + { + "Name": "DLSS", + "Enabled": true, + "MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss" + }, + { + "Name": "EasyXMLParser", + "Enabled": true, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/af98110080a4411a8eaf3b8e931b8655" + }, + { + "Name": "VaRest", + "Enabled": true, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/e47be161e7a24e928560290abd5dcc4f" + }, + { + "Name": "RuntimeFilesDownloader", + "Enabled": true, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/product/e7e6df6d6e9c46f0ae35163eab67ff9a" + }, + { + "Name": "EasyJsonParser", + "Enabled": false, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/22108e274b5d4e5ab92c0a7b961caf13" + }, + { + "Name": "JPrinter", + "Enabled": true + }, + { + "Name": "PixelStreaming", + "Enabled": true + }, + { + "Name": "manageTextFile", + "Enabled": true + }, + { + "Name": "OodleNetwork", + "Enabled": false + }, + { + "Name": "OculusVR", + "Enabled": false, + "SupportedTargetPlatforms": [ + "Win32", + "Win64", + "Android" + ] + } + ] +} \ No newline at end of file diff --git a/Platforms/HoloLens/Config/HoloLensEngine.ini b/Platforms/HoloLens/Config/HoloLensEngine.ini new file mode 100644 index 0000000..d5ebb91 --- /dev/null +++ b/Platforms/HoloLens/Config/HoloLensEngine.ini @@ -0,0 +1,32 @@ + + +[/Script/HoloLensPlatformEditor.HoloLensTargetSettings] +bBuildForEmulation=False +bBuildForDevice=True +bUseNameForLogo=True +bBuildForRetailWindowsStore=False +bAutoIncrementVersion=False +bShouldCreateAppInstaller=False +AppInstallerInstallationURL= +HoursBetweenUpdateChecks=0 +bEnablePIXProfiling=False +TileBackgroundColor=(B=64,G=0,R=0,A=255) +SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255) ++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=()) +TargetDeviceFamily=Windows.Holographic +MinimumPlatformVersion= +MaximumPlatformVersionTested=10.0.18362.0 +MaxTrianglesPerCubicMeter=500.000000 +SpatialMeshingVolumeSize=20.000000 +CompilerVersion=Default +Windows10SDKVersion=10.0.18362.0 ++CapabilityList=internetClientServer ++CapabilityList=privateNetworkClientServer ++Uap2CapabilityList=spatialPerception +bSetDefaultCapabilities=False +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +SoundCueCookQualityIndex=-1 + diff --git a/Source/FORTIS_Taktika/CPPFunctionLibrary.cpp b/Source/FORTIS_Taktika/CPPFunctionLibrary.cpp new file mode 100644 index 0000000..24ecfe2 --- /dev/null +++ b/Source/FORTIS_Taktika/CPPFunctionLibrary.cpp @@ -0,0 +1,172 @@ +// Fill out your copyright notice in the Description page of Project Settings. +#include "CPPFunctionLibrary.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void UCPPFunctionLibrary::CreateTxt(FString Path, FString FileName, FString text) +{ + if (Path == "") { + Path = FPaths::ProjectSavedDir(); + } + FString fullpath(Path + FileName); + FFileHelper::SaveStringToFile(text, *fullpath, FFileHelper::EEncodingOptions::ForceUTF8); + +} + +bool UCPPFunctionLibrary::AppendStringToFile(FString DirPath, FString FileName, FString Data) +{ + // get file path + FString FilePath; + if (!DirPath.Len()) + { + // default documents directory path + FileName + FilePath = FPlatformProcess::UserDir() + FileName; + } + else + { + FilePath = DirPath + FileName; + } + UE_LOG(LogTemp, Log, TEXT("File path: %s"), *FilePath); + + // check file existence and write data to a file + FString OldData; + bool append_result; + if (FPaths::FileExists(FilePath)) + { + UE_LOG(LogTemp, Log, TEXT("File exists: true")); + FFileHelper::LoadFileToString(OldData, *FilePath); + OldData += Data; + append_result = FFileHelper::SaveStringToFile(Data, *FilePath, FFileHelper::EEncodingOptions::ForceUTF8, &IFileManager::Get(), FILEWRITE_Append); + } + else + { + UE_LOG(LogTemp, Warning, TEXT("File exists: false")); + append_result = FFileHelper::SaveStringToFile(Data, *FilePath, FFileHelper::EEncodingOptions::ForceUTF8); + } + + // return append result + if (append_result) + { + UE_LOG(LogTemp, Log, TEXT("Append: complete")); + return true; + } + else + { + UE_LOG(LogTemp, Error, TEXT("Append: not complete")); + return false; + } +} + +void UCPPFunctionLibrary::RunSystemCommand(FString Command) +{ + system(TCHAR_TO_ANSI(*Command)); +} + +void UCPPFunctionLibrary::GetExcelData(FString Command) +{ +} + +void UCPPFunctionLibrary::GetContentHTTP(FString Verb, FString Payload, FString Url) +{ + /*TSharedPtr Request = FHttpModule::Get().CreateRequest(); + Request->SetURL(Url); + if (Payload.Len() > 0) + { + Request->SetContentAsString(Payload); + } + Request->SetVerb(Verb); + Request->ProcessRequest();*/ +} + +int32 UCPPFunctionLibrary::GetUnixTimestamp() +{ + return std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); +} + +void UCPPFunctionLibrary::CreateProc(FString PathToExec, TArray Args, bool Detach, bool Hidden, int32 Priority, FString OptionalWorkDir) +{ + FString StrArgs(""); + /*if (Args.Num()) + for (auto arg : Args) + StrArgs += " " + arg;*/ + + if (Args.Num() > 1) + { + StrArgs = Args[0]; + for (int32 v = 1; v < Args.Num(); v++) + { + StrArgs += " " + Args[v]; + } + } + else if (Args.Num() > 0) + { + StrArgs = Args[0]; + } + + FProcHandle PHandle = FPlatformProcess::CreateProc( + *PathToExec, + *StrArgs, + Detach, + Hidden, + Hidden, + nullptr, + Priority, + (OptionalWorkDir != "") ? *OptionalWorkDir : nullptr, + nullptr + ); + + if (PHandle.IsValid()) + { + UE_LOG(LogTemp, Warning, TEXT("ProcInfo: Valid")) + } + else + { + UE_LOG(LogTemp, Warning, TEXT("ProcInfo: NotValid")) + } +} + +FString UCPPFunctionLibrary::GetDataFromFile(FString FileName) +{ + FString FileData(""); + + if (FPaths::FileExists(FileName)) + FFileHelper::LoadFileToString(FileData, *FileName); + + return FileData; +} + +TArray UCPPFunctionLibrary::GetHardDisksSerialNumbers() +{ + TArray lines; + std::string executeCommand = "wmic path win32_physicalmedia get SerialNumber"; + std::array buffer; + std::string result; + std::unique_ptr pipe(_popen(executeCommand.c_str(), "r"), _pclose); + if (!pipe) { + throw std::runtime_error("popen() failed!"); + } + while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) { + result += buffer.data(); + } + std::cout << result << std::endl; + std::istringstream istream(result); + std::string line; + int lineNum = 0; + while (std::getline(istream, line)) + { + if (!lineNum) + { + ++lineNum; + continue; + } + lines.Push(line.c_str()); + } + return lines; +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/CPPFunctionLibrary.h b/Source/FORTIS_Taktika/CPPFunctionLibrary.h new file mode 100644 index 0000000..4c25866 --- /dev/null +++ b/Source/FORTIS_Taktika/CPPFunctionLibrary.h @@ -0,0 +1,50 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + + + +//#include "HttpModule.h" +#include +#include +#include "CoreMinimal.h" +#include "Misc/FileHelper.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "CPPFunctionLibrary.generated.h" + +/** + * + */ +UCLASS() +class FORTIS_TAKTIKA_API UCPPFunctionLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintCallable, Category = "TextMaker") + static void CreateTxt(FString Path, FString FileName, FString text); + + UFUNCTION(BlueprintCallable, Category = "File") + static bool AppendStringToFile(FString DirPath, FString FileName, FString Data); + + UFUNCTION(BlueprintCallable, Category = "File") + static FString GetDataFromFile(FString FileName); + + UFUNCTION(BlueprintCallable, Category = "System") + static void RunSystemCommand(FString Command); + + UFUNCTION(BlueprintCallable, Category = "System") + static void GetExcelData(FString Command); + + UFUNCTION(BlueprintCallable, Category = "HTTP") + static void GetContentHTTP(FString Verb, FString Payload, FString Url); + + UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Time") + static int32 GetUnixTimestamp(); + + UFUNCTION(BlueprintCallable, Category = "System") + static void CreateProc(FString PathToExec, TArray Args, bool Detach = false, bool Hidden = true, int32 Priority = 0, FString OptionalWorkDir = ""); + + UFUNCTION(BlueprintCallable, Category = "System") + static TArray GetHardDisksSerialNumbers(); +}; diff --git a/Source/FORTIS_Taktika/FORTIS_Taktika.Build.cs b/Source/FORTIS_Taktika/FORTIS_Taktika.Build.cs new file mode 100644 index 0000000..75e2bfb --- /dev/null +++ b/Source/FORTIS_Taktika/FORTIS_Taktika.Build.cs @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class FORTIS_Taktika : ModuleRules +{ + public FORTIS_Taktika(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Http", "Json", "JsonUtilities" }); + + PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using Slate UI + // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using online features + // PrivateDependencyModuleNames.Add("OnlineSubsystem"); + + // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true + } +} diff --git a/Source/FORTIS_Taktika/FORTIS_Taktika.cpp b/Source/FORTIS_Taktika/FORTIS_Taktika.cpp new file mode 100644 index 0000000..6d42e40 --- /dev/null +++ b/Source/FORTIS_Taktika/FORTIS_Taktika.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "FORTIS_Taktika.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, FORTIS_Taktika, "FORTIS_Taktika" ); diff --git a/Source/FORTIS_Taktika/FORTIS_Taktika.h b/Source/FORTIS_Taktika/FORTIS_Taktika.h new file mode 100644 index 0000000..90aad9e --- /dev/null +++ b/Source/FORTIS_Taktika/FORTIS_Taktika.h @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/Source/FORTIS_Taktika/Private/BuildingProcedural.cpp b/Source/FORTIS_Taktika/Private/BuildingProcedural.cpp new file mode 100644 index 0000000..a8752b1 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/BuildingProcedural.cpp @@ -0,0 +1,66 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "BuildingProcedural.h" + +// Sets default values +ABuildingProcedural::ABuildingProcedural() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + RootComponent = CreateDefaultSubobject(TEXT("RootComponent")); +} + +// Called when the game starts or when spawned +void ABuildingProcedural::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void ABuildingProcedural::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + +void ABuildingProcedural::ShowCurrentIndex(int32 Index, TArray ProceduralMeshes) +{ + int32 i; + for (i = 0; i < ProceduralMeshes.Num(); ++i) + { + if (i <= Index) + { + ProceduralMeshes[i]->SetHiddenInGame(false); + } + } + + for (i = 0; i < ProceduralMeshes.Num(); ++i) + { + if (i >= Index) + { + ProceduralMeshes[i]->SetHiddenInGame(true); + } + } + +} + +void ABuildingProcedural::ResetMeshSections(TArray ProceduralMeshes) +{ + //ProceduralMeshes[i]->GetProcMeshSection(0); + for (auto& ProcMesh : ProceduralMeshes) + { + for (int i = 0; i < ProcMesh->GetNumSections(); ++i) + + { + ProcMesh->GetProcMeshSection(i)->Reset(); + //ProcMesh->GetProcMeshSection(i)-> + //ProcMesh->SetProcMeshSection + //ProcMesh->SetProcMeshSection(); + //FProcMeshSection ProcMeshSection; + //StaticMesh + } + } +} + diff --git a/Source/FORTIS_Taktika/Private/CppAnimation.cpp b/Source/FORTIS_Taktika/Private/CppAnimation.cpp new file mode 100644 index 0000000..66b2460 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/CppAnimation.cpp @@ -0,0 +1,66 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "CppAnimation.h" + +CppAnimation::CppAnimation() +{ +} + +CppAnimation::~CppAnimation() +{ +} + +CppAnimation::CppAnimation(UUserWidget* owner, UWidgetAnimation* animation, TArray* modes, TEnumAsByte* lastMode, int32* priority) + : WidgetOwner(owner), + WidgetAnimation(animation), + AnimModes(*modes), + lastMode(*lastMode), + priorityIndex(*priority) +{ + +} + + + +void CppAnimation::PlayAnimationMode(TEnumAsByte* mode, int32* priority) +{ + if (!CanMode(mode)) + return; + if (!CanPlayAnimation(mode)) + return; + if (priorityIndex > *priority) + return; + lastMode = *mode; + WidgetOwner->PlayAnimation(WidgetAnimation, 0.0f, 1, GetDirection(mode), 1.0f, false); +} + +TEnumAsByte CppAnimation::GetDirection(TEnumAsByte* mode) +{ + for (auto anim : AnimModes) + { + if (anim.mode == *mode) + return anim.direction; + } + return EUMGSequencePlayMode::Type::Forward; +} + +bool CppAnimation::CanMode(TEnumAsByte* mode) +{ + bool canMode = false; + for (int32 i = 0; i < AnimModes.Num(); ++i) + { + if (AnimModes[i].mode == *mode) + { + canMode = true; + } + } + return canMode; +} + +bool CppAnimation::CanPlayAnimation(TEnumAsByte* mode) +{ + if (!CanMode(mode)) + return false; + return lastMode != *mode; +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/CppBaseWidget.cpp b/Source/FORTIS_Taktika/Private/CppBaseWidget.cpp new file mode 100644 index 0000000..bf6ef86 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/CppBaseWidget.cpp @@ -0,0 +1,50 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "CppBaseWidget.h" + +void UCppBaseWidget::NativeConstruct() +{ + Super::NativeConstruct(); + + +} + +void UCppBaseWidget::NativeTick(const FGeometry& MyGeometry, float DeltaTime) +{ + Super::NativeTick(MyGeometry, DeltaTime); +} + +bool UCppBaseWidget::CanTick(float interval) +{ + if ((GetWorld()->GetTimeSeconds() - timeLastTick) > interval) + { + timeLastTick = GetWorld()->GetTimeSeconds(); + return true; + } + return false; +} + +void UCppBaseWidget::PlayAnimationMode(TEnumAsByte mode, int32 priorityIndex) +{ + CppAnimation* animation = GetAnimationWithMode(&mode); + if (!animation) + return; + animation->PlayAnimationMode(&mode, &priorityIndex); +} + +CppAnimation* UCppBaseWidget::GetAnimationWithMode(TEnumAsByte* mode) +{ + for (int32 i = 0; i < Animations.Num(); ++i) + { + if (Animations[i].CanMode(mode)) + return &Animations[i]; + } + return nullptr; +} + +void UCppBaseWidget::AddAnimation(UUserWidget* owner, UWidgetAnimation* animation, TArray modes, TEnumAsByte modeAtCreation, int32 priorityIndex) +{ + Animations.Add(CppAnimation(owner, animation, &modes, &modeAtCreation, &priorityIndex)); +} + diff --git a/Source/FORTIS_Taktika/Private/CppEnums.cpp b/Source/FORTIS_Taktika/Private/CppEnums.cpp new file mode 100644 index 0000000..771034e --- /dev/null +++ b/Source/FORTIS_Taktika/Private/CppEnums.cpp @@ -0,0 +1,12 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "CppEnums.h" + +CppEnums::CppEnums() +{ +} + +CppEnums::~CppEnums() +{ +} diff --git a/Source/FORTIS_Taktika/Private/CppStruct_AnimModeDirection.cpp b/Source/FORTIS_Taktika/Private/CppStruct_AnimModeDirection.cpp new file mode 100644 index 0000000..18462d7 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/CppStruct_AnimModeDirection.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "CppStruct_AnimModeDirection.h" + diff --git a/Source/FORTIS_Taktika/Private/CppStructures.cpp b/Source/FORTIS_Taktika/Private/CppStructures.cpp new file mode 100644 index 0000000..8ba0f9b --- /dev/null +++ b/Source/FORTIS_Taktika/Private/CppStructures.cpp @@ -0,0 +1,12 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "CppStructures.h" + +CppStructures::CppStructures() +{ +} + +CppStructures::~CppStructures() +{ +} diff --git a/Source/FORTIS_Taktika/Private/LevelManager.cpp b/Source/FORTIS_Taktika/Private/LevelManager.cpp new file mode 100644 index 0000000..ea16365 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/LevelManager.cpp @@ -0,0 +1,40 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "LevelManager.h" + +// Sets default values +ALevelManager::ALevelManager() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + +} + +// Called when the game starts or when spawned +void ALevelManager::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void ALevelManager::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + +bool ALevelManager::LoadLevel(FString LevelName, bool bVisible, bool bLoad) +{ + ULevelStreaming* Level = UGameplayStatics::GetStreamingLevel(GetWorld(), *LevelName); + if (!Level) + return false; + Level->SetShouldBeLoaded(bLoad); + Level->SetShouldBeVisible(bVisible); + + while (Level->IsLevelVisible() ^ bVisible && Level->IsLevelLoaded() ^ bLoad) + { + } + return true; +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/RecastNavMeshWithPause.cpp b/Source/FORTIS_Taktika/Private/RecastNavMeshWithPause.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Source/FORTIS_Taktika/Private/ResComApartmentManager.cpp b/Source/FORTIS_Taktika/Private/ResComApartmentManager.cpp new file mode 100644 index 0000000..2cd25dd --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComApartmentManager.cpp @@ -0,0 +1,70 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "ResComApartmentManager.h" + +// Sets default values +UResComApartmentManager::UResComApartmentManager() +{ +} + +void UResComApartmentManager::Push(FApartment apartment) +{ + apartments.Push(apartment); +} + +void UResComApartmentManager::ClearFavorites() +{ + for (auto& ap : apartments) + ap.favorite = false; +} + +bool UResComApartmentManager::IsValid(FApartment apartment) const +{ + return !(apartment.id == FApartment().id); +} + +FApartment& UResComApartmentManager::GetByID(int32 id) +{ + for (auto& ap : apartments) + { + if (ap.id == id) + return ap; + } + return notValid; +} + +FApartment& UResComApartmentManager::GetByLoc(FApartmentLocation loc) +{ + for (auto& ap : apartments) + { + if (ap.loc == loc) + return ap; + } + return notValid; +} + + +TArray UResComApartmentManager::GetFavorites() +{ + TArray favorites; + for (auto& ap : apartments) + if (ap.favorite) + favorites.Push(ap); + return favorites; +} + +void UResComApartmentManager::SortByLoc() +{ + apartments.Sort([](const FApartment& apa1, const FApartment& apa2) + { + return apa1.loc.AsNum() > apa2.loc.AsNum(); + }); +} + +void UResComApartmentManager::SortByID() +{ + apartments.Sort([](const FApartment& apa1, const FApartment& apa2) + { + return apa1.id > apa2.id; + }); +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComFloorManager.cpp b/Source/FORTIS_Taktika/Private/ResComFloorManager.cpp new file mode 100644 index 0000000..866c940 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComFloorManager.cpp @@ -0,0 +1,174 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComFloorManager.h" + +// Sets default values +AResComFloorManager::AResComFloorManager() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + +} + +// Called when the game starts or when spawned +void AResComFloorManager::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void AResComFloorManager::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + +void AResComFloorManager::AddPack(const FFloorPack& pack) +{ + packs.Add(pack); +} + +void AResComFloorManager::AddLevelToPack(FApartmentLocation loc, FFloorLevelStreaming level) +{ + FFloorPack pack; + if (GetPack(loc, pack)) + { + UE_LOG(LogTemp, Warning, TEXT("COUNT: %d"), pack.levels.Num()); + pack.levels.Add(level); + } + else + { + pack.location = loc; + pack.levels.Add(level); + AddPack(pack); + } +} + +bool AResComFloorManager::GetPack(FApartmentLocation loc, FFloorPack* pack) +{ + for (int i = 0; i < packs.Num(); ++i) + { + if (packs[i].location == loc) + { + pack = &(packs[i]); + return true; + } + } + return false; +} + +bool AResComFloorManager::GetPack(FApartmentLocation loc, FFloorPack& pack) const +{ + for (auto& packCurr : packs) + { + if (packCurr.location == loc) + { + pack = packCurr; + return true; + } + } + return false; +} + +//bool AResComFloorManager::LoadPack(FApartmentLocation loc, const FOnPreview& delegatePreview, const FOnShouldBeVisible& delegateShouldBeVisible, const FOnShouldBeLoaded& delegateShouldBeLoaded) +bool AResComFloorManager::LoadPack(FApartmentLocation loc, const FOnLoaded& delegateOnLoaded) +{ + FFloorPack* pack = nullptr; + if (!GetPack(loc, pack)) + return false; + + OnLoaded = delegateOnLoaded; + //OnPreview = delegatePreview; + //OnShouldBeVisible = delegateShouldBeVisible; + //OnShouldBeLoaded = delegateShouldBeLoaded; + + FVector Location(0.0f, 0.0f, 0.0f); + FRotator Rotation(0.0f, 0.0f, 0.0f); + FActorSpawnParameters SpawnInfo; + GetWorld()->SpawnActor(Location, Rotation, SpawnInfo); + return true; +} + +bool AResComFloorManager::UnloadPack(FApartmentLocation loc, const FOnPreview& delegatePreview, const FOnShouldBeVisible& delegateShouldBeVisible, const FOnShouldBeLoaded& delegateShouldBeLoaded) +{ + FFloorPack pack; + if (!GetPack(loc, pack)) + return false; + FLatentActionInfo info; + + //for (auto& level : pack.levelsPreview) + //{ + // UGameplayStatics::UnloadStreamLevel(this,* level, info, false); + // //Streamlevel + //} + //for (auto& level : pack.levelsShouldBeVisible) + //{ + // UGameplayStatics::UnloadStreamLevel(this, *level, info, false); + //} + //for (auto& level : pack.levelsShouldBeLoaded) + //{ + // UGameplayStatics::UnloadStreamLevel(this, *level, info, false); + //} + OnPreview = delegatePreview; + OnShouldBeVisible = delegateShouldBeVisible; + OnShouldBeLoaded = delegateShouldBeLoaded; + return true; +} + +void AResComFloorManager::OnLevelPreview() +{ + OnPreview.Execute(); +} + +void AResComFloorManager::OnLevelVisible() +{ + OnShouldBeVisible.Execute(); +} + +void AResComFloorManager::OnLevelLoaded() +{ + OnShouldBeLoaded.Execute(); +} + +TArray AResComFloorManager::GetStreamingLevels(const UObject* WorldContextObject) +{ + TArray levels; + UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull); + + for (ULevelStreaming* LevelStreaming : World->GetStreamingLevels()) + { + levels.Push(LevelStreaming); + } + + return levels; +} + +//ULevelStreaming* UGameplayStatics::GetStreamingLevel(const UObject* WorldContextObject, FName InPackageName) +//{ +// if (InPackageName != NAME_None) +// { +// if (UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull)) +// { +// FString SearchPackageName = FStreamLevelAction::MakeSafeLevelName(InPackageName, World); +// if (FPackageName::IsShortPackageName(SearchPackageName)) +// { +// // Make sure MyMap1 and Map1 names do not resolve to a same streaming level +// SearchPackageName = TEXT("/") + SearchPackageName; +// } +// +// for (ULevelStreaming* LevelStreaming : World->GetStreamingLevels()) +// { +// // We check only suffix of package name, to handle situations when packages were saved for play into a temporary folder +// // Like Saved/Autosaves/PackageName +// if (LevelStreaming && LevelStreaming->GetWorldAssetPackageName().EndsWith(SearchPackageName, ESearchCase::IgnoreCase)) +// { +// return LevelStreaming; +// } +// } +// } +// } +// +// return NULL; +//} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComGameInstance.cpp b/Source/FORTIS_Taktika/Private/ResComGameInstance.cpp new file mode 100644 index 0000000..52d6354 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComGameInstance.cpp @@ -0,0 +1,123 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComGameInstance.h" + +UResComGameInstance::UResComGameInstance() +{ +} + +void UResComGameInstance::Init() +{ + Super::Init(); + apartmentManager = NewObject(this); + statisticsManager = NewObject(this); +} + +//void UResComGameInstance::SetApartmentManager(UResComApartmentManager* manager) +//{ +// apartmentManager = manager; +//} + +UResComApartmentManager* UResComGameInstance::GetApartmentManager() const +{ + return apartmentManager; +} + +UResComStatistics* UResComGameInstance::GetStatisticsManager() const +{ + return statisticsManager; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +//void UResComGameInstance::HttpGet(FString UrlAddress, const FHttpDelegate& Callback) +//{ +// /*TSharedRef HttpRequest = FHttpModule::Get().CreateRequest(); +// HttpRequest->SetHeader("Content-Type", "application/json"); +// HttpRequest->SetURL(UrlAddress); +// HttpRequest->SetVerb("GET"); +// HttpRequest->OnProcessRequestComplete().BindUObject(this, &ThisClass::OnHttpRequestComplete); +// HttpRequest->ProcessRequest();*/ +// +// if (UrlAddress.IsEmpty()) +// return; +// +// const TSharedRef HttpRequest{ FHttpModule::Get().CreateRequest() }; +// +// +// HttpRequest->SetVerb("GET"); +// HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/x-www-form-urlencoded")); +// HttpRequest->SetURL(UrlAddress); +// HttpRequest->SetTimeout(2.0f); +// +// HttpRequest->OnProcessRequestComplete().BindUObject(this, &UCppGameInstance::OnHttpRequestComplete); +// //HttpRequest->OnRequestProgress().BindUObject(this, &URuntimeFilesDownloaderLibrary::OnProgress_Internal); +// +// /** Process the request */ +// HttpRequest->ProcessRequest(); +// +// //HttpDownloadRequest = &HttpRequest.Get(); +//} +// +//void UResComGameInstance::OnHttpRequestComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) +//{ +// if (bWasSuccessful && Response->GetContentType() == "application/json") +// { +// +// HttpData = Response->GetContentAsString(); +// UE_LOG(LogTemp, Warning, TEXT("HttpInfo: Success")); +// +// } +// else +// { +// if (Response->GetResponseCode() == 200) +// HttpData = HttpData = Response->GetContentAsString(); +// UE_LOG(LogTemp, Error, TEXT("HttpInfo: string %s"), *HttpData); +// UE_LOG(LogTemp, Error, TEXT("HttpInfo: eror code %s"), *(FString::FromInt(Response->GetResponseCode()))); +// if (bWasSuccessful) +// { +// UE_LOG(LogTemp, Error, TEXT("HttpInfo: ErrorA")); +// } +// else +// UE_LOG(LogTemp, Error, TEXT("HttpInfo: ErrorB")); +// // Handle error here +// } +//} +// +//FString UResComGameInstance::GetHttpData() +//{ +// return HttpData; +//} diff --git a/Source/FORTIS_Taktika/Private/ResComHUD.cpp b/Source/FORTIS_Taktika/Private/ResComHUD.cpp new file mode 100644 index 0000000..c099d70 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComHUD.cpp @@ -0,0 +1,14 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComHUD.h" + +void AResComHUD::SetUIStateManager(AResComUIStateManager* manager) +{ + UIStateManager = manager; +} + +AResComUIStateManager* AResComHUD::GetUIManager() const +{ + return UIStateManager; +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComLevelPackLoader.cpp b/Source/FORTIS_Taktika/Private/ResComLevelPackLoader.cpp new file mode 100644 index 0000000..f940629 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComLevelPackLoader.cpp @@ -0,0 +1,64 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComLevelPackLoader.h" + +// Sets default values +AResComLevelPackLoader::AResComLevelPackLoader() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + PrimaryActorTick.TickInterval = 0.5f; + +} + +// Called when the game starts or when spawned +void AResComLevelPackLoader::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void AResComLevelPackLoader::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + + /*if (packLoading->IsLoaded()) + { + Destroy(); + }*/ +} + +//void AResComLevelPackLoader::LoadPack(FFloorPack* pack) +//{ +// FLatentActionInfo latentInfo; +// latentInfo.CallbackTarget = this; +// latentInfo.UUID = 0; +// latentInfo.Linkage = 0; + + /*latentInfo.ExecutionFunction = "OnLevelPreview"; + for (auto& level : pack.levelsPreview) + { + ++queueElem.visibleCnt; + ++latentInfo.UUID; + UGameplayStatics::LoadStreamLevel(this, *level, true, true, latentInfo); + } + + latentInfo.ExecutionFunction = "OnLevelVisible"; + for (auto& level : pack.levelsShouldBeVisible) + { + ++queueElem.previewCnt; + ++latentInfo.UUID; + UGameplayStatics::LoadStreamLevel(this, *level, true, true, latentInfo); + } + + latentInfo.ExecutionFunction = "OnLevelLoaded"; + for (auto& level : pack.levelsShouldBeLoaded) + { + queueElem.loadedCnt; + ++latentInfo.UUID; + UGameplayStatics::LoadStreamLevel(this, *level, true, true, latentInfo); + } + return true;*/ +//} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComPlayerController.cpp b/Source/FORTIS_Taktika/Private/ResComPlayerController.cpp new file mode 100644 index 0000000..a80ce61 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComPlayerController.cpp @@ -0,0 +1,56 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComPlayerController.h" + +void AResComPlayerController::SetPlayerStateManager(AResComPlayerStateManager* manager) +{ + playerStateManager = manager; +} + +AResComPlayerStateManager* AResComPlayerController::GetPlayerStateManager() const +{ + return playerStateManager; +} + +void AResComPlayerController::SetFloorManager(AResComFloorManager* manager) +{ + floorManager = manager; +} + +AResComFloorManager* AResComPlayerController::GetFloorManager() const +{ + return floorManager; +} + +//void AResComPoint::BeginPlay() +//{ +// Super::BeginPlay(); +// +// // spectrator window +// /*SlateWin = SNew(SWindow) +// .AutoCenter(EAutoCenter::None) +// .Title(FText::FromString(TEXT("Control Window"))) +// .IsInitiallyMaximized(false) +// .ScreenPosition(FVector2D(0, 0)) +// .ClientSize(FVector2D(500, 800)) +// .CreateTitleBar(true) +// .SizingRule(ESizingRule::UserSized) +// .SupportsMaximize(false) +// .SupportsMinimize(true) +// .HasCloseButton(true); +// +// TSharedRef SlateWinRef = SlateWin.ToSharedRef(); +// +// FSlateApplication& SlateApp = FSlateApplication::Get(); +// +// SlateApp.AddWindow(SlateWinRef, true); +// +// SlateWinRef->SetContent(SNew(SControlWidget));*/ +//} + +void AResComPlayerController::freeMemory() +{ + GEngine->ForceGarbageCollection(); + //GetWorld()->ForceGarbageCollection(true); +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComPlayerStateManager.cpp b/Source/FORTIS_Taktika/Private/ResComPlayerStateManager.cpp new file mode 100644 index 0000000..105e9d5 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComPlayerStateManager.cpp @@ -0,0 +1,36 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComPlayerStateManager.h" + +void AResComPlayerStateManager::SetState(const TEnumAsByte newState) +{ + if (stateManager.SetState(newState)) + OnState(newState); +} + +void AResComPlayerStateManager::ClearAllStatesBesideLast() +{ + stateManager.ClearAllStatesBesideLast(); +} + +void AResComPlayerStateManager::SetPreviousState() +{ + if (stateManager.SetPrevState()) + OnState(stateManager.GetState()); +} + +const FString AResComPlayerStateManager::GetStateHistoryAsString() const +{ + FString string; + FString arrow("->"); + auto history = stateManager.GetHistory(); + for (auto item : history) + string += arrow + (*UEnum::GetDisplayValueAsText(item).ToString()); + return string; +} + +const TEnumAsByte AResComPlayerStateManager::GetState() const +{ + return stateManager.GetState(); +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComPoint.cpp b/Source/FORTIS_Taktika/Private/ResComPoint.cpp new file mode 100644 index 0000000..9b6680a --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComPoint.cpp @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComPoint.h" + +// Sets default values +AResComPoint::AResComPoint() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + +} + +// Called when the game starts or when spawned +void AResComPoint::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void AResComPoint::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + diff --git a/Source/FORTIS_Taktika/Private/ResComState.cpp b/Source/FORTIS_Taktika/Private/ResComState.cpp new file mode 100644 index 0000000..b860e7d --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComState.cpp @@ -0,0 +1,11 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComState.h" + +//UResComState* UResComState::Make(int32 index) +//{ +// UResComState* newObject = NewObject(UResComState::StaticClass()); +// newObject->state = index; +// return newObject; +//} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComStateManager.cpp b/Source/FORTIS_Taktika/Private/ResComStateManager.cpp new file mode 100644 index 0000000..db69077 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComStateManager.cpp @@ -0,0 +1,4 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComStateManager.h" \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComStatistics.cpp b/Source/FORTIS_Taktika/Private/ResComStatistics.cpp new file mode 100644 index 0000000..e71c9ab --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComStatistics.cpp @@ -0,0 +1,36 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComStatistics.h" + +void UResComStatistics::NewState(FString state) +{ + if (prevState.duration != 0.0f) + { + prevState.duration = GetWorld()->GetTimeSeconds() - prevState.duration; + stateHistory.Add(prevState); + } + + prevState.state = state; + prevState.duration = GetWorld()->GetTimeSeconds(); +} + +FString UResComStatistics::GetStateHistoryString() +{ + FString strTmp(""); + for (auto& state : stateHistory) + { + strTmp += "->" + state.state; + } + return strTmp; +} + +void UResComStatistics::StartVR() +{ + timeLastStartVR = GetWorld()->GetTimeSeconds(); +} + +void UResComStatistics::EndVR() +{ + timeVR += GetWorld()->GetTimeSeconds() - timeLastStartVR; +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComUIStateManager.cpp b/Source/FORTIS_Taktika/Private/ResComUIStateManager.cpp new file mode 100644 index 0000000..09446da --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComUIStateManager.cpp @@ -0,0 +1,36 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComUIStateManager.h" + +void AResComUIStateManager::SetState(const TEnumAsByte newState) +{ + if (stateManager.SetState(newState)) + OnState(newState); +} + +void AResComUIStateManager::ClearAllStatesBesideLast() +{ + stateManager.ClearAllStatesBesideLast(); +} + +void AResComUIStateManager::SetPreviousState() +{ + if (stateManager.SetPrevState()) + OnState(stateManager.GetState()); +} + +const FString AResComUIStateManager::GetStateHistoryAsString() const +{ + FString string; + FString arrow("->"); + auto history = stateManager.GetHistory(); + for (auto item : history) + string += arrow + (*UEnum::GetDisplayValueAsText(item).ToString()); + return string; +} + +const TEnumAsByte AResComUIStateManager::GetState() const +{ + return stateManager.GetState(); +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/ResComUserManager.cpp b/Source/FORTIS_Taktika/Private/ResComUserManager.cpp new file mode 100644 index 0000000..6606ce8 --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComUserManager.cpp @@ -0,0 +1,12 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ResComUserManager.h" + +UResComUserManager::UResComUserManager() +{ +} + +UResComUserManager::~UResComUserManager() +{ +} diff --git a/Source/FORTIS_Taktika/Private/ResComUserStoreLocalData.cpp b/Source/FORTIS_Taktika/Private/ResComUserStoreLocalData.cpp new file mode 100644 index 0000000..5c465fe --- /dev/null +++ b/Source/FORTIS_Taktika/Private/ResComUserStoreLocalData.cpp @@ -0,0 +1,86 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "ResComUserStoreLocalData.h" +#include "../CPPFunctionLibrary.h" + +UResComUserStoreLocalData::UResComUserStoreLocalData() +{ +} + +UResComUserStoreLocalData::~UResComUserStoreLocalData() +{ +} + +void UResComUserStoreLocalData::SetWorkingDirectory(FString path) +{ + WorkingDirectoryPath = path; +} + +FStruct_User UResComUserStoreLocalData::GetEmptyUser() +{ + return FStruct_User(); +} + +FStruct_User UResComUserStoreLocalData::GetUser(FString phone) +{ + FString FileData; + if (!FPaths::FileExists(WorkingDirectoryPath)) + return GetEmptyUser(); + + FFileHelper::LoadFileToString(WorkingDirectoryPath, *FileData); + + if (!FileData.Len()) + return GetEmptyUser(); + + if (!FileData.Contains(phone)) + return GetEmptyUser(); + + + int32 startIndex = FileData.Find(phone); + int32 endIndex = FileData.Find(FString("\n"), ESearchCase::IgnoreCase, ESearchDir::FromStart, startIndex); + + return GetUserFromString(FileData.Mid(startIndex, endIndex - startIndex)); + +} + +void UResComUserStoreLocalData::AddUser(FString Phone, FString Name, FString Email, TArray FavoriteIDs) +{ + +} + +FStruct_User UResComUserStoreLocalData::GetUserFromString(FString string) +{ + int32 commaNum = 0; + FStruct_User user; + FString flatIndex; + + for (int i = 0; i < string.Len(); ++i) + { + if (string[i] == ',') + { + if (commaNum > 2) + { + user.favoriteFlatsIndices.Add(FCString::Atoi(*flatIndex)); + flatIndex.Empty(); + } + ++commaNum; + } + if (string[i] != ',') + switch (commaNum) + { + case 0: + user.phone += string[i]; + break; + case 1: + user.name += string[i]; + break; + case 2: + user.email += string[i]; + break; + default: + flatIndex += string[i]; + break; + } + } + return user; +} \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Private/WidgetComponentCustom.cpp b/Source/FORTIS_Taktika/Private/WidgetComponentCustom.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Source/FORTIS_Taktika/Public/BuildingProcedural.h b/Source/FORTIS_Taktika/Public/BuildingProcedural.h new file mode 100644 index 0000000..c49a463 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/BuildingProcedural.h @@ -0,0 +1,32 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +//#include "ProceduralMeshComponent.h" // Path not working +#include "ProceduralMeshComponent.h" +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "BuildingProcedural.generated.h" + +UCLASS() +class FORTIS_TAKTIKA_API ABuildingProcedural : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + ABuildingProcedural(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + UFUNCTION(BlueprintCallable) + void ShowCurrentIndex(int32 Index, TArray ProceduralMeshes); + UFUNCTION(BlueprintCallable) + void ResetMeshSections(TArray ProceduralMeshes); + void SetMeshSection(); +}; diff --git a/Source/FORTIS_Taktika/Public/CppAnimation.h b/Source/FORTIS_Taktika/Public/CppAnimation.h new file mode 100644 index 0000000..cd7d7a4 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/CppAnimation.h @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CppStruct_AnimModeDirection.h" +#include "Blueprint/UserWidget.h" +#include "Animation/WidgetAnimation.h" +#include "CoreMinimal.h" + +/** + * + */ +class FORTIS_TAKTIKA_API CppAnimation +{ +private: + UUserWidget* WidgetOwner; + UWidgetAnimation* WidgetAnimation; + TArray AnimModes; + TEnumAsByte lastMode; + int32 priorityIndex; +protected: + TEnumAsByte GetDirection(TEnumAsByte* mode); + bool CanPlayAnimation(TEnumAsByte* mode); +public: + CppAnimation(); + ~CppAnimation(); + CppAnimation(UUserWidget* owner, UWidgetAnimation* animation, TArray* modes, TEnumAsByte* lastMode, int32* priority); + void PlayAnimationMode(TEnumAsByte* mode, int32* priority); + bool CanMode(TEnumAsByte* mode); +}; diff --git a/Source/FORTIS_Taktika/Public/CppBaseWidget.h b/Source/FORTIS_Taktika/Public/CppBaseWidget.h new file mode 100644 index 0000000..3258f4a --- /dev/null +++ b/Source/FORTIS_Taktika/Public/CppBaseWidget.h @@ -0,0 +1,38 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CppStruct_AnimModeDirection.h" +#include "CppAnimation.h" +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "CppBaseWidget.generated.h" + +/** + * + */ +UCLASS() +class FORTIS_TAKTIKA_API UCppBaseWidget : public UUserWidget +{ + GENERATED_BODY() +private: + float timeLastTick; + TArray Animations; + CppAnimation* GetAnimationWithMode(TEnumAsByte* mode); +protected: + UPROPERTY(BlueprintReadWrite, Category = Properties) + bool bVisible; + + UFUNCTION(BLueprintCallable, Category = Tick) + bool CanTick(float interval); + + UFUNCTION(BlueprintCallable, Category = Animation) + void PlayAnimationMode(TEnumAsByte mode, int32 priorityIndex); + + UFUNCTION(BlueprintCallable, Category = Animation) + void AddAnimation(UUserWidget* owner, UWidgetAnimation* animation, TArray modes, TEnumAsByte modeAtCreation, int32 priorityIndex); + +public: + virtual void NativeConstruct() override; + virtual void NativeTick(const FGeometry& MyGeometry, float DeltaTime) override; +}; diff --git a/Source/FORTIS_Taktika/Public/CppEnums.h b/Source/FORTIS_Taktika/Public/CppEnums.h new file mode 100644 index 0000000..cd2bbde --- /dev/null +++ b/Source/FORTIS_Taktika/Public/CppEnums.h @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + +/** + * + */ +class FORTIS_TAKTIKA_API CppEnums +{ +public: + CppEnums(); + ~CppEnums(); +}; + +UENUM(BlueprintType) +enum Enum_AnimMode +{ + show UMETA(DisplayName = "show"), + hide UMETA(DisplayName = "hide"), + roll UMETA(DisplayName = "roll"), +}; \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Public/CppStruct_AnimModeDirection.h b/Source/FORTIS_Taktika/Public/CppStruct_AnimModeDirection.h new file mode 100644 index 0000000..d8ecde2 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/CppStruct_AnimModeDirection.h @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "Blueprint/UserWidget.h" +#include "CppEnums.h" + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "CppStruct_AnimModeDirection.generated.h" + +/** + * + */ +USTRUCT(BlueprintType) +struct FCppStruct_AnimModeDirection +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TEnumAsByte mode; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TEnumAsByte direction; + +}; diff --git a/Source/FORTIS_Taktika/Public/CppStructures.h b/Source/FORTIS_Taktika/Public/CppStructures.h new file mode 100644 index 0000000..88f3411 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/CppStructures.h @@ -0,0 +1,18 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + + +#include "CppEnums.h" +#include "Blueprint/UserWidget.h" +#include "CoreMinimal.h" + +/** + * + */ +class FORTIS_TAKTIKA_API CppStructures +{ +public: + CppStructures(); + ~CppStructures(); +}; diff --git a/Source/FORTIS_Taktika/Public/LevelManager.h b/Source/FORTIS_Taktika/Public/LevelManager.h new file mode 100644 index 0000000..5554c6a --- /dev/null +++ b/Source/FORTIS_Taktika/Public/LevelManager.h @@ -0,0 +1,29 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "Kismet/GameplayStatics.h" +#include "Engine/LevelStreaming.h" +#include "LevelManager.generated.h" + +UCLASS() +class FORTIS_TAKTIKA_API ALevelManager : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + ALevelManager(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + UFUNCTION(BlueprintCallable, Category="Loading") + bool LoadLevel(FString LevelName, bool bVisible, bool bLoad); +}; diff --git a/Source/FORTIS_Taktika/Public/RecastNavMeshWithPause.h b/Source/FORTIS_Taktika/Public/RecastNavMeshWithPause.h new file mode 100644 index 0000000..e69de29 diff --git a/Source/FORTIS_Taktika/Public/ResComApartmentManager.h b/Source/FORTIS_Taktika/Public/ResComApartmentManager.h new file mode 100644 index 0000000..bb90d9c --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComApartmentManager.h @@ -0,0 +1,209 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "ResComPoint.h" +#include "Engine/Texture2DDynamic.h" +#include "CoreMinimal.h" +//#include "GameFramework/Actor.h" +#include "ResComApartmentManager.generated.h" + + + +USTRUCT(BlueprintType) +struct FApartmentLocation +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 locHouse = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 locEntrance = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 locFloor = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 locApartment = 0; + + bool operator==(FApartmentLocation& loc) const + { + return (loc.locHouse == locHouse) && (loc.locFloor == locFloor) && (loc.locEntrance == locEntrance) && (loc.locApartment == locApartment); + } + + int32 AsNum() const + { + return (locHouse * 10000 + locEntrance * 1000 + locFloor * 100 + locApartment); + } +}; + +USTRUCT(BlueprintType) +struct FApartmentQuantities +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 rooms = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 toilets = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 bedrooms = 0; + +}; + +UENUM(BlueprintType) +enum RoomType +{ + room UMETA(DisplayName = "room"), + bedroom UMETA(DisplayName = "bedroom"), + toilet UMETA(DisplayName = "toilet"), + bathroom UMETA(DisplayName = "bathroom"), + wardrobe UMETA(DisplayName = "wardrobe"), + hallway UMETA(DisplayName = "hallway"), + balcony UMETA(DisplayName = "balcony"), + kitchen UMETA(DisplayName = "kitchen"), + livingRoom UMETA(DisplayName = "livingRoom"), + kitchen_livingRoom UMETA(DisplayName = "kitchen_livingRoom"), + +}; + +UENUM(BlueprintType) +enum ApartmentType +{ + default UMETA(DisplayName = "default"), + studio UMETA(DisplayName = "studio"), + duplex UMETA(DisplayName = "duplex"), +}; + +USTRUCT(BlueprintType) +struct FRoomArea +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TEnumAsByte type = RoomType::room; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float meters = 0.0f; +}; + +USTRUCT(BlueprintType) +struct FApartmentAreas +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float full = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray rooms; + +}; + +USTRUCT(BlueprintType) +struct FApartmentCosts +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float full = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float month = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float meter = 0.0f; +}; + +USTRUCT(BlueprintType) +struct FApartmentReferences +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray textures; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + AResComPoint* point = nullptr; +}; + +USTRUCT(BlueprintType) +struct FApartment +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 id = -1; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FString nameRC; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FApartmentLocation loc; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool favorite = false; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TEnumAsByte type; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FApartmentReferences references; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FApartmentQuantities quantities; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FApartmentAreas areas; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FApartmentCosts costs; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray properties; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FString description; +}; + +UCLASS(BlueprintType) +class FORTIS_TAKTIKA_API UResComApartmentManager : public UObject +{ + GENERATED_BODY() +private: + TArray apartments; + FApartment notValid; +public: + UResComApartmentManager(); + + // valid + UFUNCTION(BlueprintCallable = "valid") + bool IsValid(FApartment apartment) const; + + //modify + UFUNCTION(BlueprintCallable = "modify") + void Push(FApartment apartment); + + UFUNCTION(BlueprintCallable = "modify") + void ClearFavorites(); + + // get + UFUNCTION(BlueprintCallable, Category = "get") + FApartment& GetByID(int32 id); + + UFUNCTION(BlueprintCallable, Category = "get") + FApartment& GetByLoc(FApartmentLocation loc); + + UFUNCTION(BlueprintCallable, Category = "get") + TArray GetFavorites(); + + //sort + UFUNCTION(BlueprintCallable, Category = "sort") + void SortByLoc(); + + UFUNCTION(BlueprintCallable, Category = "sort") + void SortByID(); +}; diff --git a/Source/FORTIS_Taktika/Public/ResComFloorManager.h b/Source/FORTIS_Taktika/Public/ResComFloorManager.h new file mode 100644 index 0000000..36b4b8a --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComFloorManager.h @@ -0,0 +1,123 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once +#include "ResComLevelPackLoader.h" +#include "Engine/LevelStreaming.h" +#include "Kismet/GameplayStatics.h" +#include "ResComApartmentManager.h" +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "ResComFloorManager.generated.h" + +/*Single-cast delegate declaration. No parameters*/ + +DECLARE_DYNAMIC_DELEGATE(FOnPreview); +DECLARE_DYNAMIC_DELEGATE(FOnShouldBeVisible); +DECLARE_DYNAMIC_DELEGATE(FOnShouldBeLoaded); +DECLARE_DYNAMIC_DELEGATE(FOnLoaded); + +UENUM(BlueprintType) +enum Enum_LevelType +{ + preview UMETA(DisplayName = "preview"), + visible UMETA(DisplayName = "visible"), + loaded UMETA(DisplayName = "loaded"), +}; + +USTRUCT(BlueprintType) +struct FFloorLevelStreaming +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + ULevelStreaming* level = nullptr; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TEnumAsByte type; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int32 depth = 0; +}; + +USTRUCT(BlueprintType) +struct FFloorPack +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FApartmentLocation location; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray levels; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool loaded = false; + + bool IsLoaded() + { + loaded = false; + for (auto& level : levels) + { + if (!IsValid(level.level)) + return loaded; + if (!(level.level->IsLevelVisible())) + return loaded; + } + loaded = true; + return loaded; + } +}; + +UCLASS() +class FORTIS_TAKTIKA_API AResComFloorManager : public AActor +{ + GENERATED_BODY() +protected: + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray packs; +private: + UFUNCTION() + void OnLevelPreview(); + UFUNCTION() + void OnLevelVisible(); + UFUNCTION() + void OnLevelLoaded(); + bool GetPack(FApartmentLocation loc, FFloorPack* pack); +public: + // Sets default values for this actor's properties + AResComFloorManager(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + UFUNCTION(BlueprintCallable, Category = "StreamingLevel") + TArray GetStreamingLevels(const UObject* WorldContextObject); + UPROPERTY() + FOnPreview OnPreview; + UPROPERTY() + FOnShouldBeVisible OnShouldBeVisible; + UPROPERTY() + FOnShouldBeLoaded OnShouldBeLoaded; + UPROPERTY() + FOnLoaded OnLoaded; + + UFUNCTION(BlueprintCallable, Category = "Pack") + void AddLevelToPack(FApartmentLocation loc, FFloorLevelStreaming level); + + UFUNCTION(BlueprintCallable, Category = "Pack") + bool GetPack(FApartmentLocation loc, FFloorPack& pack) const; + + UFUNCTION(BlueprintCallable, Category = "Pack") + void AddPack(const FFloorPack& pack); + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + + UFUNCTION(BlueprintCallable, Category="Pack") + //bool LoadPack(FApartmentLocation loc, const FOnPreview& delegatePreview, const FOnShouldBeVisible& delegateShouldBeVisible, const FOnShouldBeLoaded& delegateShouldBeLoaded); + bool LoadPack(FApartmentLocation loc, const FOnLoaded& delegateOnLoaded); + + UFUNCTION(BlueprintCallable, Category = "Pack") + bool UnloadPack(FApartmentLocation loc, const FOnPreview& delegatePreview, const FOnShouldBeVisible& delegateShouldBeVisible, const FOnShouldBeLoaded& delegateShouldBeLoaded); +}; diff --git a/Source/FORTIS_Taktika/Public/ResComGameInstance.h b/Source/FORTIS_Taktika/Public/ResComGameInstance.h new file mode 100644 index 0000000..1c7c455 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComGameInstance.h @@ -0,0 +1,54 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "ResComStatistics.h" +#include "ResComApartmentManager.h" +#include "Engine/LatentActionManager.h" +#include "Interfaces/IHttpRequest.h" +#include "Runtime/Online/HTTP/Public/HttpModule.h" +#include "Interfaces/IHttpResponse.h" +#include "Dom/JsonObject.h" +#include "Http.h" +#include "HttpModule.h" +#include "LatentActions.h" +#include "CoreMinimal.h" +#include "Engine/GameInstance.h" +#include "ResComGameInstance.generated.h" + +/** + * + */ + +DECLARE_DYNAMIC_DELEGATE_OneParam(FHttpDelegate, FString, Content); + +UCLASS() +class FORTIS_TAKTIKA_API UResComGameInstance : public UGameInstance +{ + GENERATED_BODY() +private: + UResComApartmentManager* apartmentManager; + UResComStatistics* statisticsManager; + //FString HttpData; + //FHttpDelegate& Callback; +protected: + //UFUNCTION(BlueprintCallable, Category = "ApartmentManager") + //void SetApartmentManager(UResComApartmentManager* manager); +public: + UResComGameInstance(); + virtual void Init(); + UFUNCTION(BlueprintCallable, Category = "ApartmentManager") + UResComApartmentManager* GetApartmentManager() const; + + UFUNCTION(BlueprintCallable, Category = "StatisticsManager") + UResComStatistics* GetStatisticsManager() const; + + + + //UFUNCTION(BlueprintCallable) + //void HttpGet(FString UrlAddress, const FHttpDelegate& Callback); + //void OnHttpRequestComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); + //UFUNCTION(BlueprintCallable) + //FString GetHttpData(); + +}; diff --git a/Source/FORTIS_Taktika/Public/ResComHUD.h b/Source/FORTIS_Taktika/Public/ResComHUD.h new file mode 100644 index 0000000..0a31441 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComHUD.h @@ -0,0 +1,28 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "ResComUIStateManager.h" +#include "CoreMinimal.h" +#include "GameFramework/HUD.h" +#include "ResComHUD.generated.h" + +/** + * + */ + + +UCLASS() +class FORTIS_TAKTIKA_API AResComHUD : public AHUD +{ + GENERATED_BODY() +private: + AResComUIStateManager* UIStateManager; +protected: + UFUNCTION(BlueprintCallable, Category="UIManager") + void SetUIStateManager(AResComUIStateManager* manager); +public: + + UFUNCTION(BlueprintCallable, Category = "UIManager") + AResComUIStateManager* GetUIManager() const; +}; diff --git a/Source/FORTIS_Taktika/Public/ResComLevelPackLoader.h b/Source/FORTIS_Taktika/Public/ResComLevelPackLoader.h new file mode 100644 index 0000000..945b700 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComLevelPackLoader.h @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +//#include "ResComFloorManager.h" +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "ResComLevelPackLoader.generated.h" + +UCLASS() +class FORTIS_TAKTIKA_API AResComLevelPackLoader : public AActor +{ + GENERATED_BODY() +private: + //FFloorPack* packLoading; +public: + // Sets default values for this actor's properties + AResComLevelPackLoader(); + //AResComLevelPackLoader(FFloorPack* pack) : packLoading(pack){} + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + //void LoadPack(FFloorPack* pack); + +}; diff --git a/Source/FORTIS_Taktika/Public/ResComPlayerController.h b/Source/FORTIS_Taktika/Public/ResComPlayerController.h new file mode 100644 index 0000000..ed47887 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComPlayerController.h @@ -0,0 +1,38 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ResComPlayerStateManager.h" +#include "ResComFloorManager.h" +#include "GameFramework/PlayerController.h" +#include "ResComPlayerController.generated.h" + +/** + * + */ +UCLASS() +class FORTIS_TAKTIKA_API AResComPlayerController : public APlayerController +{ + GENERATED_BODY() +private: + AResComPlayerStateManager* playerStateManager; + AResComFloorManager* floorManager; +protected: + UFUNCTION(BlueprintCallable, Category = "PlayerManager") + void SetPlayerStateManager(AResComPlayerStateManager* manager); + + UFUNCTION(BlueprintCallable, Category = "FloorManager") + void SetFloorManager(AResComFloorManager* manager); + + //virtual void BeginPlay() override; +public: + UFUNCTION(BlueprintCallable, Category = "PlayerManager") + AResComPlayerStateManager* GetPlayerStateManager() const; + + UFUNCTION(BlueprintCallable, Category = "FloorManager") + AResComFloorManager* GetFloorManager() const; + + UFUNCTION(BlueprintCallable, Category = "GarbageCollection") + void freeMemory(); +}; diff --git a/Source/FORTIS_Taktika/Public/ResComPlayerStateManager.h b/Source/FORTIS_Taktika/Public/ResComPlayerStateManager.h new file mode 100644 index 0000000..e3a6fa7 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComPlayerStateManager.h @@ -0,0 +1,50 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ResComStateManager.h" +#include "GameFramework/Actor.h" +#include "ResComPlayerStateManager.generated.h" + +UENUM(BlueprintType) +enum Enum_PlayerState +{ + none UMETA(DisplayName = "none"), + home UMETA(DisplayName = "home"), + infrastructure UMETA(DisplayName = "infrastructure"), + groupOverview UMETA(DisplayName = "groupOverview"), + houseOverview UMETA(DisplayName = "house"), + floorOverview UMETA(DisplayName = "floorOverview"), + flatOverview UMETA(DisplayName = "flatOverview"), + freeWalk UMETA(DisplayName = "freeWalk"), + parking UMETA(DisplayName = "parking") +}; + +UCLASS() +class FORTIS_TAKTIKA_API AResComPlayerStateManager : public AActor +{ + GENERATED_BODY() +private: + ResComStateManager stateManager; +public: + UFUNCTION(BlueprintCallable, Category = "State") + void SetState(const TEnumAsByte newState); + + UFUNCTION(BlueprintCallable, Category = "State") + void ClearAllStatesBesideLast(); + + UFUNCTION(BlueprintCallable, Category = "State") + void SetPreviousState(); + + UFUNCTION(BlueprintCallable, Category = "State") + const TEnumAsByte GetState() const; + + UFUNCTION(BlueprintCallable, Category = "Debug") + const FString GetStateHistoryAsString() const; + + // blueprint reaction + UFUNCTION(BlueprintImplementableEvent, Category = "StateReaction") + void OnState(const TEnumAsByte& newState); + +}; \ No newline at end of file diff --git a/Source/FORTIS_Taktika/Public/ResComPoint.h b/Source/FORTIS_Taktika/Public/ResComPoint.h new file mode 100644 index 0000000..a3d2961 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComPoint.h @@ -0,0 +1,26 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "ResComPoint.generated.h" + +UCLASS() +class FORTIS_TAKTIKA_API AResComPoint : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + AResComPoint(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + +}; diff --git a/Source/FORTIS_Taktika/Public/ResComState.h b/Source/FORTIS_Taktika/Public/ResComState.h new file mode 100644 index 0000000..41a3e3c --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComState.h @@ -0,0 +1,29 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ResComState.generated.h" + +/** + * + */ +UCLASS() +class FORTIS_TAKTIKA_API UResComState : public UObject +{ + GENERATED_BODY() +protected: + int32 state; +public: + UResComState() : state(none) {} + UResComState(const int32& type) : state(type) {} + virtual void operator=(const int32& newState) { state = newState; } + const int32& GetInt() const { return state; } + const int32& GetValue() const { return GetInt(); } + bool operator==(const int32& stateIndex) { return this->state == stateIndex; } + bool operator==(const UResComState& stateCompare) { return this->state == stateCompare.state; } + + // states + static const int32 none = 0; + static const int32 home = 1; +}; diff --git a/Source/FORTIS_Taktika/Public/ResComStateManager.h b/Source/FORTIS_Taktika/Public/ResComStateManager.h new file mode 100644 index 0000000..b2db827 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComStateManager.h @@ -0,0 +1,56 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + +template +class ResComStateManager +{ +protected: + TArray stateHistory; + EnumType nullobj; +public: + ResComStateManager() : nullobj(EnumType()) + { + + } + + bool SetState(const EnumType& newState) + { + if (GetState() == newState) + return false; + stateHistory.Push(newState); + return true; + } + + const EnumType& GetState() const + { + return static_cast(stateHistory.Num()) ? stateHistory[stateHistory.Num() - 1] : nullobj; + } + + bool SetPrevState() + { + if (stateHistory.Num() < 2) + return false; + stateHistory.Pop(); + return true; + } + + const EnumType& GetPreviousState() const + { + return (stateHistory.Num() > 1) ? stateHistory[stateHistory.Num() - 2] : GetState(); + } + + void ClearAllStatesBesideLast() + { + auto lastState = GetState(); + stateHistory.Empty(); + SetState(lastState); + } + + const TArray& GetHistory() const + { + return stateHistory; + } +}; diff --git a/Source/FORTIS_Taktika/Public/ResComStatistics.h b/Source/FORTIS_Taktika/Public/ResComStatistics.h new file mode 100644 index 0000000..301f373 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComStatistics.h @@ -0,0 +1,67 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "ResComStatistics.generated.h" + +/** + * + */ + +USTRUCT(BlueprintType) +struct FStateAndTime +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FString state; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float duration = 0.0f; + + FStateAndTime() {}; + FStateAndTime(FString s, float t) : state(s), duration(t) {}; +}; + +USTRUCT(BlueprintType) +struct FUserStatistics +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float timeSession = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float timeVR = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray stateHistory; +}; + +UCLASS(BlueprintType) +class FORTIS_TAKTIKA_API UResComStatistics : public UObject +{ + GENERATED_BODY() +protected: + float timeSession = 0.0f; + float timeVR = 0.0f; + TArray stateHistory; + + // start variables + float timeLastStartVR = 0.0f; + FStateAndTime prevState; +public: + UFUNCTION(BlueprintCallable, Category = "states") + void NewState(FString state); + + UFUNCTION(BlueprintCallable, Category = "states") + FString GetStateHistoryString(); + + UFUNCTION(BlueprintCallable, Category = "VR") + void StartVR(); + + UFUNCTION(BlueprintCallable, Category = "VR") + void EndVR(); +}; diff --git a/Source/FORTIS_Taktika/Public/ResComUIStateManager.h b/Source/FORTIS_Taktika/Public/ResComUIStateManager.h new file mode 100644 index 0000000..cd4eb38 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComUIStateManager.h @@ -0,0 +1,55 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ResComStateManager.h" +#include "ResComUIStateManager.generated.h" + +/** + * + */ + +UENUM(BlueprintType) +enum Enum_UIState +{ + none UMETA(DisplayName = "none"), + home UMETA(DisplayName = "home"), + menu_main UMETA(DisplayName = "menu_main"), + menu_flat UMETA(DisplayName = "menu_flat"), + information UMETA(DisplayName = "information"), + infrastructure UMETA(DisplayName = "infrastructure"), + login UMETA(DisplayName = "login"), + loading UMETA(DisplayName = "loading"), + presentation UMETA(DisplayName = "presentation"), + filter UMETA(DisplayName = "filter"), + elevator UMETA(DisplayName = "elevator"), + walking_menu UMETA(DisplayName = "walking_menu"), +}; + +UCLASS() +class FORTIS_TAKTIKA_API AResComUIStateManager : public AActor +{ + GENERATED_BODY() +private: + ResComStateManager stateManager; +public: + UFUNCTION(BlueprintCallable, Category = "State") + void SetState(const TEnumAsByte newState); + + UFUNCTION(BlueprintCallable, Category = "State") + void ClearAllStatesBesideLast(); + + UFUNCTION(BlueprintCallable, Category = "State") + void SetPreviousState(); + + UFUNCTION(BlueprintCallable, Category = "State") + const TEnumAsByte GetState() const; + + UFUNCTION(BlueprintCallable, Category = "Debug") + const FString GetStateHistoryAsString() const; + + // blueprint reaction + UFUNCTION(BlueprintImplementableEvent, Category = "StateReaction") + void OnState(const TEnumAsByte& newState); +}; diff --git a/Source/FORTIS_Taktika/Public/ResComUserManager.h b/Source/FORTIS_Taktika/Public/ResComUserManager.h new file mode 100644 index 0000000..1924c06 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComUserManager.h @@ -0,0 +1,32 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ResComUserManager.generated.h" + +/** + * + */ + +USTRUCT(BlueprintType) +struct FStruct_User +{ + GENERATED_BODY() + UPROPERTY(BlueprintReadWrite) + FString name; + UPROPERTY(BlueprintReadWrite) + FString phone; + UPROPERTY(BlueprintReadWrite) + FString email; + UPROPERTY(BlueprintReadWrite) + TArray favoriteFlatsIndices; + +}; + +class FORTIS_TAKTIKA_API UResComUserManager +{ +public: + UResComUserManager(); + ~UResComUserManager(); +}; diff --git a/Source/FORTIS_Taktika/Public/ResComUserStoreLocalData.h b/Source/FORTIS_Taktika/Public/ResComUserStoreLocalData.h new file mode 100644 index 0000000..246c5b7 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/ResComUserStoreLocalData.h @@ -0,0 +1,36 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ResComUserManager.h" + + +/** + * + */ + + +class FORTIS_TAKTIKA_API UResComUserStoreLocalData +{ +private: + FString WorkingDirectoryPath; +public: + UResComUserStoreLocalData(); + ~UResComUserStoreLocalData(); + + UFUNCTION(BlueprintCallable) + void SetWorkingDirectory(FString path); + + FStruct_User GetEmptyUser(); + + UFUNCTION(BlueprintCllable) + FStruct_User GetUser(FString phone); + + UFUNCTION(BlueprintCallable) + FStruct_User GetUserFromString(FString string); + + UFUNCTION(BlueprintCallable) + void AddUser(FString Phone, FString Name, FString Email, TArray FavoriteIDs); + +}; diff --git a/Source/FORTIS_Taktika/Public/WidgetComponentCustom.h b/Source/FORTIS_Taktika/Public/WidgetComponentCustom.h new file mode 100644 index 0000000..16d57c9 --- /dev/null +++ b/Source/FORTIS_Taktika/Public/WidgetComponentCustom.h @@ -0,0 +1,15 @@ + +#include "CoreMinimal.h" +#include "UObject/ObjectMacros.h" +#include "Templates/SubclassOf.h" +#include "Layout/ArrangedWidget.h" +#include "WorldCollision.h" +#include "Components/MeshComponent.h" +#include "WidgetComponentCustom.generated.h" + + +UCLASS() +class FORTIS_TAKTIKA_API UWidgetComponentCustom : public UMeshComponent +{ + GENERATED_BODY() +};