To5.5
This commit is contained in:
+7342
-1164
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"BuildId": "27405482",
|
||||
"BuildId": "37670630",
|
||||
"Modules":
|
||||
{
|
||||
"GraffModule": "UnrealEditor-GraffModule.dll",
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
[Windows DeviceProfile]
|
||||
DeviceType=Windows
|
||||
BaseProfileName=
|
||||
bIsVisibleForAssets=True
|
||||
+CVars=r.RayTracing.Shadows.EnableTwoSidedGeometry=0
|
||||
+CVars=r.RayTracing.SkyLight.EnableTwoSidedGeometry=0
|
||||
+CVars=r.RayTracing.Reflections.EnableTwoSidedGeometry=0
|
||||
+CVars=r.RayTracing.NormalBias=1
|
||||
+CVars=r.Nanite.MaxPixelsPerEdge=2
|
||||
+CVars=r.RayTracing.Culling=1
|
||||
+CVars=r.Shadow.DistanceScale=2
|
||||
+CVars=r.Tonemapper.Sharpen=1
|
||||
+CVars=r.HairStrands.Voxelization=0
|
||||
+CVars=r.HairStrands.Simulation=0
|
||||
+CVars=r.Shadow.Denoiser=0
|
||||
; +TextureLODGroups=(Group=TEXTUREGROUP_World,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=1024,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,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=1024,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,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=1024,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,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=1024,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default)
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
[/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=1920,Height=1080,Description="",Color=(R=1.000000,G=0.000000,B=0.103764,A=0.418000))
|
||||
+DebugResolutions=(Width=3840,Height=2160,Description="",Color=(R=0.164987,G=0.137876,B=1.000000,A=0.462000))
|
||||
Version=1
|
||||
|
||||
[/Script/Localization.LocalizationSettings]
|
||||
-EngineTargetsSettings=(Name="Engine",Guid=33482D004789784C9DA695A682ACCA1B,TargetDependencies=,AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=True,SearchDirectories=((Path="Source/Runtime/"),(Path="Source/Developer/"),(Path="Config/")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*"),(Pattern="Source/Developer/NoRedist/UnrealEngineLauncherServices/*"),(Pattern="Source/Developer/NoRedist/BuildPatchServices/*")),FileExtensions=((Pattern="cpp"),(Pattern="h"),(Pattern="c"),(Pattern="inl"),(Pattern="mm"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/*")),ExcludePathWildcards=((Pattern="Content/Editor/*"),(Pattern="Content/Tutorial/*"),(Pattern="Content/Developers/*"),(Pattern="Content/TestPackages/*"),(Pattern="Content/QA_Assets/*"),(Pattern="Content/Maps/Automation/*"),(Pattern="Content/EngineSounds/*")),FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=True),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-EngineTargetsSettings=(Name="Editor",Guid=AC8BFD2A41A2FB2893BB8EA0AF903E6D,TargetDependencies=(33482D004789784C9DA695A682ACCA1B),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=True,SearchDirectories=((Path="Source/Editor/")),ExcludePathWildcards=,FileExtensions=((Pattern="cpp"),(Pattern="h"),(Pattern="c"),(Pattern="inl"),(Pattern="mm"))),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/Editor/*"),(Pattern="Content/Editor*")),ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=True),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-EngineTargetsSettings=(Name="EditorTutorials",Guid=00F8E3AD47F0A73D50D46881C14DF28F,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=("IntroTutorials"),GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/Tutorial/*")),ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=True),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-EngineTargetsSettings=(Name="PropertyNames",Guid=E391A8B149980E8154E056AF2DA49479,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=True),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="DisplayName"),TextNamespace="UObjectDisplayNames",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-EngineTargetsSettings=(Name="ToolTips",Guid=0F116534468918AEA432DD8C77703BA8,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=True),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="ToolTip"),TextNamespace="UObjectToolTips",TextKeyPattern=(Pattern="{FieldPath}")),(MetaDataKey=(Name="ShortToolTip"),TextNamespace="UObjectShortToolTips",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-EngineTargetsSettings=(Name="Keywords",Guid=AE89AECB47475F420D0D69A5547515DC,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=True),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="Keywords"),TextNamespace="UObjectKeywords",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-EngineTargetsSettings=(Name="Category",Guid=14B8DEE642A6A7AFEB5A28B959EC373A,TargetDependencies=,AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=False),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="Category"),TextNamespace="UObjectCategory",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="Engine",Guid=33482D004789784C9DA695A682ACCA1B,TargetDependencies=,AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=True,SearchDirectories=((Path="Source/Runtime/"),(Path="Source/Developer/"),(Path="Config/")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*"),(Pattern="Source/Developer/NoRedist/UnrealEngineLauncherServices/*"),(Pattern="Source/Developer/NoRedist/BuildPatchServices/*")),FileExtensions=((Pattern="cpp"),(Pattern="h"),(Pattern="c"),(Pattern="inl"),(Pattern="mm"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/*")),ExcludePathWildcards=((Pattern="Content/Editor/*"),(Pattern="Content/Tutorial/*"),(Pattern="Content/Developers/*"),(Pattern="Content/TestPackages/*"),(Pattern="Content/QA_Assets/*"),(Pattern="Content/Maps/Automation/*"),(Pattern="Content/EngineSounds/*")),FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=True,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="Editor",Guid=AC8BFD2A41A2FB2893BB8EA0AF903E6D,TargetDependencies=(33482D004789784C9DA695A682ACCA1B),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=True,SearchDirectories=((Path="Source/Editor/")),ExcludePathWildcards=,FileExtensions=((Pattern="cpp"),(Pattern="h"),(Pattern="c"),(Pattern="inl"),(Pattern="mm")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/Editor/*"),(Pattern="Content/Editor*")),ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=True,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="EditorTutorials",Guid=00F8E3AD47F0A73D50D46881C14DF28F,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=("IntroTutorials"),GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/Tutorial/*")),ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=True,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="PropertyNames",Guid=E391A8B149980E8154E056AF2DA49479,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=True,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="DisplayName"),TextNamespace="UObjectDisplayNames",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="ToolTips",Guid=0F116534468918AEA432DD8C77703BA8,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=True,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="ToolTip"),TextNamespace="UObjectToolTips",TextKeyPattern=(Pattern="{FieldPath}")),(MetaDataKey=(Name="ShortToolTip"),TextNamespace="UObjectShortToolTips",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="Keywords",Guid=AE89AECB47475F420D0D69A5547515DC,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=True,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="Keywords"),TextNamespace="UObjectKeywords",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
+EngineTargetsSettings=(Name="Category",Guid=14B8DEE642A6A7AFEB5A28B959EC373A,TargetDependencies=,AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=False,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=True,IncludePathWildcards=((Pattern="Source/Editor/*"),(Pattern="Source/Runtime/*"),(Pattern="Source/Developer/*")),ExcludePathWildcards=((Pattern="Source/Developer/NoRedist/CommunityPortalServices/*")),KeySpecifications=((MetaDataKey=(Name="Category"),TextNamespace="UObjectCategory",TextKeyPattern=(Pattern="{FieldPath}"))),ShouldGatherFromEditorOnlyData=True),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=0,SupportedCulturesStatistics=((CultureName="en"),(CultureName="es"),(CultureName="ja"),(CultureName="ko"),(CultureName="pt-BR"),(CultureName="zh-CN")))
|
||||
-GameTargetsSettings=(Name="Game",Guid=AE0EA34A45461A25BA65A391026F19F8,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini"))),GatherFromPackages=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,FileExtensions=((Pattern="umap"),(Pattern="uasset")),ShouldGatherFromEditorOnlyData=False),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=False),NativeCultureIndex=-1,SupportedCulturesStatistics=((CultureName="en")))
|
||||
+GameTargetsSettings=(Name="Game",Guid=AE0EA34A45461A25BA65A391026F19F8,TargetDependencies=(33482D004789784C9DA695A682ACCA1B,AC8BFD2A41A2FB2893BB8EA0AF903E6D),AdditionalManifestDependencies=,RequiredModuleNames=,GatherFromTextFiles=(IsEnabled=False,SearchDirectories=,ExcludePathWildcards=,FileExtensions=((Pattern="h"),(Pattern="cpp"),(Pattern="ini")),ShouldGatherFromEditorOnlyData=False),GatherFromPackages=(IsEnabled=True,IncludePathWildcards=((Pattern="Content/Blueprints/UI/*"),(Pattern="Content/Maps/*"),(Pattern="Content/Blueprints/Player/*")),ExcludePathWildcards=,FileExtensions=((Pattern="uasset"),(Pattern="umap")),Collections=,ExcludeClasses=,ShouldExcludeDerivedClasses=False,ShouldGatherFromEditorOnlyData=False,SkipGatherCache=False),GatherFromMetaData=(IsEnabled=False,IncludePathWildcards=,ExcludePathWildcards=,KeySpecifications=,ShouldGatherFromEditorOnlyData=False),ExportSettings=(CollapseMode=IdenticalTextIdAndSource,POFormat=Unreal,ShouldPersistCommentsOnExport=False,ShouldAddSourceLocationsAsComments=True),CompileSettings=(SkipSourceCheck=False,ValidateFormatPatterns=True,ValidateSafeWhitespace=False),ImportDialogueSettings=(RawAudioPath=(Path=""),ImportedDialogueFolder="ImportedDialogue",bImportNativeAsSource=False),NativeCultureIndex=1,SupportedCulturesStatistics=((CultureName="en"),(CultureName="ru-RU")))
|
||||
|
||||
[/Script/AdvancedPreviewScene.SharedProfiles]
|
||||
|
||||
[/Script/UnrealEd.EditorPerformanceProjectSettings]
|
||||
RealtimeScreenPercentageMode=Manual
|
||||
MobileScreenPercentageMode=Manual
|
||||
NonRealtimeScreenPercentageMode=Manual
|
||||
|
||||
@@ -1,233 +0,0 @@
|
||||
[/Script/EngineSettings.GameMapsSettings]
|
||||
GameDefaultMap=/Game/Maps/starter.starter
|
||||
EditorStartupMap=/Game/Maps/MainScene.MainScene
|
||||
GlobalDefaultGameMode=/Game/Blueprints/Player/myGM.myGM_C
|
||||
GameInstanceClass=/Game/Blueprints/Player/GI.GI_C
|
||||
|
||||
[/Script/HardwareTargeting.HardwareTargetingSettings]
|
||||
TargetedHardwareClass=Desktop
|
||||
AppliedTargetedHardwareClass=Desktop
|
||||
DefaultGraphicsPerformance=Maximum
|
||||
AppliedDefaultGraphicsPerformance=Maximum
|
||||
|
||||
[/Script/Engine.Engine]
|
||||
+ActiveGameNameRedirects=(OldGameName="TP_BlankBP",NewGameName="/Script/Ivazowsky")
|
||||
+ActiveGameNameRedirects=(OldGameName="/Script/TP_BlankBP",NewGameName="/Script/Ivazowsky")
|
||||
NearClipPlane=2.000000
|
||||
MaximumLoopIterationCount=10000000
|
||||
bUseFixedFrameRate=False
|
||||
FixedFrameRate=150.000000
|
||||
|
||||
[/Script/Engine.RendererSettings]
|
||||
r.DefaultFeature.Bloom=True
|
||||
r.DefaultFeature.AmbientOcclusion=True
|
||||
r.DefaultFeature.AmbientOcclusionStaticFraction=False
|
||||
r.Shadow.UnbuiltPreviewInGame=False
|
||||
r.SupportStationarySkylight=False
|
||||
r.SupportLowQualityLightmaps=False
|
||||
r.SkinCache.CompileShaders=True
|
||||
r.RayTracing=True
|
||||
r.RayTracing.UseTextureLod=True
|
||||
r.DefaultFeature.MotionBlur=False
|
||||
r.AllowOcclusionQueries=True
|
||||
r.MinScreenRadiusForLights=0.010000
|
||||
r.DefaultFeature.AntiAliasing=2
|
||||
r.TessellationAdaptivePixelsPerTriangle=1024.000000
|
||||
r.RayTracing.Shadows=True
|
||||
r.RayTracing.Skylight=False
|
||||
r.Lumen.HardwareRayTracing=True
|
||||
r.ReflectionMethod=1
|
||||
r.ReflectionCaptureResolution=256
|
||||
r.Lumen.HardwareRayTracing.LightingMode=2
|
||||
r.SkinCache.SceneMemoryLimitInMB=512
|
||||
r.AntiAliasingMethod=4
|
||||
r.GPUSkin.Support16BitBoneIndex=True
|
||||
r.GPUSkin.UnlimitedBoneInfluences=True
|
||||
SkeletalMesh.UseExperimentalChunking=1
|
||||
r.SkinCache.DefaultBehavior=0
|
||||
r.GenerateMeshDistanceFields=True
|
||||
r.DynamicGlobalIlluminationMethod=1
|
||||
r.VirtualTextures=True
|
||||
r.VirtualTexturedLightmaps=True
|
||||
r.VT.AnisotropicFiltering=True
|
||||
bEnableVirtualTextureOpacityMask=True
|
||||
r.DefaultFeature.AutoExposure.Method=2
|
||||
r.DefaultFeature.AutoExposure.Bias=9.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)
|
||||
UIScaleRule=ScaleToFit
|
||||
DesignScreenSize=(X=3840,Y=2160)
|
||||
ApplicationScale=1.000000
|
||||
|
||||
[/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)")
|
||||
+Profiles=(Name="VRInteract",CollisionEnabled=QueryOnly,bCanModify=True,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore),(Channel="VR")),HelpMessage="Needs description")
|
||||
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="VR")
|
||||
+EditProfiles=(Name="Pawn",CustomResponses=((Channel="Camera",Response=ECR_Ignore)))
|
||||
+EditProfiles=(Name="Trigger",CustomResponses=((Channel="VR",Response=ECR_Ignore)))
|
||||
-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/WindowsTargetPlatform.WindowsTargetSettings]
|
||||
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
|
||||
-D3D12TargetedShaderFormats=PCD3D_SM5
|
||||
+D3D12TargetedShaderFormats=PCD3D_SM5
|
||||
+D3D12TargetedShaderFormats=PCD3D_SM6
|
||||
-D3D11TargetedShaderFormats=PCD3D_SM5
|
||||
+D3D11TargetedShaderFormats=PCD3D_SM5
|
||||
Compiler=Default
|
||||
AudioSampleRate=48000
|
||||
AudioCallbackBufferFrameSize=1024
|
||||
AudioNumBuffersToEnqueue=1
|
||||
AudioMaxChannels=0
|
||||
AudioNumSourceWorkers=4
|
||||
SpatializationPlugin=
|
||||
SourceDataOverridePlugin=
|
||||
ReverbPlugin=
|
||||
OcclusionPlugin=
|
||||
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
|
||||
CacheSizeKB=65536
|
||||
MaxChunkSizeOverrideKB=0
|
||||
bResampleForDevice=False
|
||||
MaxSampleRate=48000.000000
|
||||
HighSampleRate=32000.000000
|
||||
MedSampleRate=24000.000000
|
||||
LowSampleRate=12000.000000
|
||||
MinSampleRate=8000.000000
|
||||
CompressionQualityModifier=1.000000
|
||||
AutoStreamingThreshold=0.000000
|
||||
SoundCueCookQualityIndex=-1
|
||||
|
||||
[/Script/Engine.StreamingSettings]
|
||||
s.UseBackgroundLevelStreaming=True
|
||||
s.AsyncLoadingTimeLimit=5.000000
|
||||
s.PriorityAsyncLoadingExtraTime=7.000000
|
||||
s.LevelStreamingActorsUpdateTimeLimit=2.000000
|
||||
s.LevelStreamingComponentsRegistrationGranularity=5
|
||||
s.LevelStreamingComponentsUnregistrationGranularity=2
|
||||
s.FlushStreamingOnExit=False
|
||||
|
||||
[/Script/NavigationSystem.NavigationSystemV1]
|
||||
DefaultAgentName=None
|
||||
CrowdManagerClass=/Script/AIModule.CrowdManager
|
||||
bAutoCreateNavigationData=True
|
||||
bSpawnNavDataInNavBoundsLevel=False
|
||||
bAllowClientSideNavigation=False
|
||||
bShouldDiscardSubLevelNavData=True
|
||||
bTickWhilePaused=False
|
||||
bInitialBuildingLocked=False
|
||||
bSkipAgentHeightCheckWhenPickingNavData=False
|
||||
bGenerateNavigationOnlyAroundNavigationInvokers=True
|
||||
ActiveTilesUpdateInterval=1.000000
|
||||
DataGatheringMode=Instant
|
||||
DirtyAreaWarningSizeThreshold=-1.000000
|
||||
+SupportedAgents=(Name="VR",Color=(B=0,G=255,R=140,A=36),DefaultQueryExtent=(X=50.000000,Y=50.000000,Z=250.000000),NavDataClass=/Script/NavigationSystem.RecastNavMesh,AgentRadius=15.000000,AgentHeight=144.000000,AgentStepHeight=20.000000,NavWalkingSearchHeightScale=0.500000,PreferredNavData=/Script/NavigationSystem.RecastNavMesh,bCanCrouch=False,bCanJump=False,bCanWalk=False,bCanSwim=False,bCanFly=False)
|
||||
+SupportedAgents=(Name="bear",Color=(B=28,G=28,R=183,A=142),DefaultQueryExtent=(X=50.000000,Y=50.000000,Z=250.000000),NavDataClass=/Script/NavigationSystem.RecastNavMesh,AgentRadius=100.000000,AgentHeight=50.000000,AgentStepHeight=-1.000000,NavWalkingSearchHeightScale=0.500000,PreferredNavData=/Script/NavigationSystem.RecastNavMesh,bCanCrouch=False,bCanJump=False,bCanWalk=False,bCanSwim=False,bCanFly=False)
|
||||
+SupportedAgents=(Name="people",Color=(B=204,G=151,R=0,A=148),DefaultQueryExtent=(X=50.000000,Y=50.000000,Z=250.000000),NavDataClass=/Script/NavigationSystem.RecastNavMesh,AgentRadius=35.000000,AgentHeight=180.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
|
||||
TileSizeUU=1000.000000
|
||||
AgentMaxStepHeight=20.000000
|
||||
AgentRadius=15.000000
|
||||
CellSize=15.000000
|
||||
ObservedPathsTickInterval=1.000000
|
||||
MaxSimultaneousTileGenerationJobsCount=64
|
||||
RegionChunkSplits=8
|
||||
LayerChunkSplits=8
|
||||
|
||||
[HTTPServer.Listeners]
|
||||
DefaultBindAddress=0.0.0.0
|
||||
DefaultBindPort=1488
|
||||
|
||||
[/Script/DLSS.DLSSSettings]
|
||||
bEnableDLSSVulkan=False
|
||||
bEnableDLSSD3D11=False
|
||||
bEnableDLSSInEditorViewports=True
|
||||
bEnableDLSSInPlayInEditorViewports=True
|
||||
bShowDLSSSDebugOnScreenMessages=True
|
||||
|
||||
[/Script/Engine.GarbageCollectionSettings]
|
||||
gc.IncrementalBeginDestroyEnabled=False
|
||||
gc.MaxObjectsInGame=25165824
|
||||
|
||||
[/Script/Engine.AudioSettings]
|
||||
DefaultBaseSoundMix=None
|
||||
|
||||
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
|
||||
bEnablePlugin=True
|
||||
bAllowNetworkConnection=True
|
||||
SecurityToken=8A136ECB41CE5978E21DE99417CB1ECE
|
||||
bIncludeInShipping=False
|
||||
bAllowExternalStartInShipping=False
|
||||
bCompileAFSProject=False
|
||||
bUseCompression=False
|
||||
bLogFiles=False
|
||||
bReportStats=False
|
||||
ConnectionType=USBOnly
|
||||
bUseManualIPAddress=False
|
||||
ManualIPAddress=
|
||||
|
||||
[/Script/StreamlineRHI.StreamlineSettings]
|
||||
bEnableStreamlineD3D12=False
|
||||
bEnableStreamlineD3D11=False
|
||||
bEnableDLSSFGInPlayInEditorViewports=False
|
||||
|
||||
[ConsoleVariables]
|
||||
fx.Niagara.ForceLastTickGroup=1
|
||||
|
||||
@@ -1,113 +0,0 @@
|
||||
|
||||
|
||||
[/Script/EngineSettings.GeneralProjectSettings]
|
||||
ProjectID=B89CCC284A7D213231762AB505314AAD
|
||||
ProjectVersion=2.39
|
||||
ProjectName=Ivazowsky
|
||||
CompanyName=GraffInteractive
|
||||
Homepage=Graff.tech
|
||||
ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "416CEA7C4725BD4AC669C5A8A113228B", "Ivazowsky")
|
||||
|
||||
[/Script/UnrealEd.ProjectPackagingSettings]
|
||||
Build=IfProjectHasCode
|
||||
BuildConfiguration=PPBC_Development
|
||||
BuildTarget=
|
||||
FullRebuild=False
|
||||
ForDistribution=False
|
||||
IncludeDebugFiles=False
|
||||
BlueprintNativizationMethod=Disabled
|
||||
bIncludeNativizedAssetsInProjectGeneration=False
|
||||
bExcludeMonolithicEngineHeadersInNativizedCode=False
|
||||
UsePakFile=True
|
||||
bUseIoStore=True
|
||||
bUseZenStore=False
|
||||
bMakeBinaryConfig=False
|
||||
bGenerateChunks=False
|
||||
bGenerateNoChunks=False
|
||||
bChunkHardReferencesOnly=False
|
||||
bForceOneChunkPerFile=False
|
||||
MaxChunkSize=0
|
||||
bBuildHttpChunkInstallData=False
|
||||
HttpChunkInstallDataDirectory=(Path="")
|
||||
WriteBackMetadataToAssetRegistry=Disabled
|
||||
bCompressed=True
|
||||
PackageCompressionFormat=Oodle
|
||||
bForceUseProjectCompressionFormatIgnoreHardwareOverride=False
|
||||
PackageAdditionalCompressionOptions=
|
||||
PackageCompressionMethod=Kraken
|
||||
PackageCompressionLevel_DebugDevelopment=2
|
||||
PackageCompressionLevel_TestShipping=3
|
||||
PackageCompressionLevel_Distribution=4
|
||||
PackageCompressionMinBytesSaved=1024
|
||||
PackageCompressionMinPercentSaved=5
|
||||
bPackageCompressionEnableDDC=False
|
||||
PackageCompressionMinSizeToConsiderDDC=0
|
||||
HttpChunkInstallDataVersion=
|
||||
IncludePrerequisites=True
|
||||
IncludeAppLocalPrerequisites=False
|
||||
bShareMaterialShaderCode=True
|
||||
bDeterministicShaderCodeOrder=False
|
||||
bSharedMaterialNativeLibraries=True
|
||||
ApplocalPrerequisitesDirectory=(Path="")
|
||||
IncludeCrashReporter=False
|
||||
InternationalizationPreset=English
|
||||
-CulturesToStage=en
|
||||
+CulturesToStage=en
|
||||
+CulturesToStage=ru-RU
|
||||
LocalizationTargetCatchAllChunkId=0
|
||||
bCookAll=True
|
||||
bCookMapsOnly=True
|
||||
bSkipEditorContent=False
|
||||
bSkipMovies=False
|
||||
-IniKeyDenylist=KeyStorePassword
|
||||
-IniKeyDenylist=KeyPassword
|
||||
-IniKeyDenylist=rsa.privateexp
|
||||
-IniKeyDenylist=rsa.modulus
|
||||
-IniKeyDenylist=rsa.publicexp
|
||||
-IniKeyDenylist=aes.key
|
||||
-IniKeyDenylist=SigningPublicExponent
|
||||
-IniKeyDenylist=SigningModulus
|
||||
-IniKeyDenylist=SigningPrivateExponent
|
||||
-IniKeyDenylist=EncryptionKey
|
||||
-IniKeyDenylist=DevCenterUsername
|
||||
-IniKeyDenylist=DevCenterPassword
|
||||
-IniKeyDenylist=IOSTeamID
|
||||
-IniKeyDenylist=SigningCertificate
|
||||
-IniKeyDenylist=MobileProvision
|
||||
-IniKeyDenylist=IniKeyDenylist
|
||||
-IniKeyDenylist=IniSectionDenylist
|
||||
+IniKeyDenylist=DevCenterUsername
|
||||
+IniKeyDenylist=DevCenterPassword
|
||||
+IniKeyDenylist=IOSTeamID
|
||||
+IniKeyDenylist=SigningCertificate
|
||||
+IniKeyDenylist=MobileProvision
|
||||
+IniKeyDenylist=IniKeyDenylist
|
||||
+IniKeyDenylist=IniSectionDenylist
|
||||
+IniKeyDenylist=KeyStorePassword
|
||||
+IniKeyDenylist=KeyPassword
|
||||
+IniKeyDenylist=rsa.privateexp
|
||||
+IniKeyDenylist=rsa.modulus
|
||||
+IniKeyDenylist=rsa.publicexp
|
||||
+IniKeyDenylist=aes.key
|
||||
+IniKeyDenylist=SigningPublicExponent
|
||||
+IniKeyDenylist=SigningModulus
|
||||
+IniKeyDenylist=SigningPrivateExponent
|
||||
+IniKeyDenylist=EncryptionKey
|
||||
+IniKeyDenylist=IniKeyBlacklist
|
||||
+IniKeyDenylist=IniSectionBlacklist
|
||||
-IniSectionDenylist=HordeStorageServers
|
||||
-IniSectionDenylist=StorageServers
|
||||
+IniSectionDenylist=HordeStorageServers
|
||||
+IniSectionDenylist=StorageServers
|
||||
+DirectoriesToAlwaysCook=(Path="/Game/Blueprints/Utils")
|
||||
+DirectoriesToAlwaysCook=(Path="/Game/Blueprints/UI/Others")
|
||||
+DirectoriesToAlwaysCook=(Path="/Game/Blueprints/UI/WBPS/Imgs")
|
||||
+DirectoriesToAlwaysCook=(Path="/Interchange/gltf")
|
||||
+DirectoriesToAlwaysCook=(Path="/Interchange/Materials")
|
||||
+DirectoriesToAlwaysCook=(Path="/Interchange/Pipelines")
|
||||
+DirectoriesToAlwaysCook=(Path="/Interchange/Utilities")
|
||||
+DirectoriesToAlwaysCook=(Path="/Game/AssetPacks/CarsPack")
|
||||
+DirectoriesToAlwaysCook=(Path="/Game/Humans")
|
||||
+DirectoriesToAlwaysStageAsNonUFS=(Path="Xml")
|
||||
+DirectoriesToAlwaysStageAsNonUFS=(Path="script")
|
||||
|
||||
@@ -1,149 +0,0 @@
|
||||
<<<<<<< Updated upstream
|
||||
|
||||
|
||||
[/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="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||
+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="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="OculusGo_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusGo_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusGo_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusGo_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="HPMixedRealityController_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="HPMixedRealityController_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
bAltEnterTogglesFullscreen=True
|
||||
bF11TogglesFullscreen=True
|
||||
bUseMouseForTouch=True
|
||||
bEnableMouseSmoothing=False
|
||||
bEnableFOVScaling=False
|
||||
bCaptureMouseOnLaunch=False
|
||||
bEnableLegacyInputScales=True
|
||||
bEnableMotionControls=True
|
||||
bFilterInputByPlatformUser=False
|
||||
bEnableInputDeviceSubsystem=True
|
||||
bShouldFlushPressedKeysOnViewportFocusLost=True
|
||||
bEnableDynamicComponentInputBinding=True
|
||||
bAlwaysShowTouchInterface=False
|
||||
bShowConsoleOnFourFingerTap=True
|
||||
bEnableGestureRecognizer=False
|
||||
bUseAutocorrect=False
|
||||
DefaultViewportMouseCaptureMode=CapturePermanently
|
||||
DefaultViewportMouseLockMode=DoNotLock
|
||||
FOVScale=0.011110
|
||||
DoubleClickTime=0.200000
|
||||
+ActionMappings=(ActionName="triggerR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_Trigger_Click)
|
||||
+ActionMappings=(ActionName="grabberR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_Grip_Click)
|
||||
+ActionMappings=(ActionName="grabberR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Cosmos_Right_Grip_Click)
|
||||
+ActionMappings=(ActionName="triggerR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Cosmos_Right_Trigger_Click)
|
||||
+ActionMappings=(ActionName="triggerL",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Trigger_Click)
|
||||
+ActionMappings=(ActionName="menuL",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_A_Click)
|
||||
+ActionMappings=(ActionName="grabberL",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Grip_Click)
|
||||
+ActionMappings=(ActionName="menuL",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Cosmos_Left_X_Click)
|
||||
+ActionMappings=(ActionName="grabberL",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Cosmos_Left_Grip_Click)
|
||||
+ActionMappings=(ActionName="triggerL",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Cosmos_Left_Trigger_Click)
|
||||
+ActionMappings=(ActionName="menuR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Cosmos_Right_A_Click)
|
||||
+ActionMappings=(ActionName="menuR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_A_Click)
|
||||
+AxisMappings=(AxisName="right",Scale=1.000000,Key=right)
|
||||
+AxisMappings=(AxisName="forward",Scale=1.000000,Key=Up)
|
||||
+AxisMappings=(AxisName="right",Scale=-1.000000,Key=Left)
|
||||
+AxisMappings=(AxisName="right",Scale=1.000000,Key=D)
|
||||
+AxisMappings=(AxisName="right",Scale=-1.000000,Key=A)
|
||||
+AxisMappings=(AxisName="forward",Scale=-1.000000,Key=Down)
|
||||
+AxisMappings=(AxisName="forward",Scale=1.000000,Key=W)
|
||||
+AxisMappings=(AxisName="forward",Scale=-1.000000,Key=S)
|
||||
+AxisMappings=(AxisName="R_VRtrigger",Scale=1.000000,Key=OculusTouch_Right_Trigger_Axis)
|
||||
+AxisMappings=(AxisName="R_VRtrigger",Scale=1.000000,Key=Vive_Right_Trigger_Axis)
|
||||
+AxisMappings=(AxisName="R_VRstickX",Scale=1.000000,Key=OculusTouch_Right_Thumbstick_Y)
|
||||
+AxisMappings=(AxisName="R_VRstickY",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_X)
|
||||
+AxisMappings=(AxisName="R_VRgrabber",Scale=1.000000,Key=OculusTouch_Right_Grip_Axis)
|
||||
+AxisMappings=(AxisName="R_VRtrigger",Scale=1.000000,Key=Cosmos_Right_Trigger_Axis)
|
||||
+AxisMappings=(AxisName="R_VRstickX",Scale=1.000000,Key=Cosmos_Right_Thumbstick_Y)
|
||||
+AxisMappings=(AxisName="R_VRstickY",Scale=1.000000,Key=Cosmos_Right_Thumbstick_X)
|
||||
+AxisMappings=(AxisName="R_VRgrabber",Scale=1.000000,Key=Cosmos_Right_Grip_Axis)
|
||||
+AxisMappings=(AxisName="L_VRtrigger",Scale=1.000000,Key=OculusTouch_Left_Trigger_Axis)
|
||||
+AxisMappings=(AxisName="L_VRtrigger",Scale=1.000000,Key=Vive_Left_Trigger_Axis)
|
||||
+AxisMappings=(AxisName="L_VRstickX",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_X)
|
||||
+AxisMappings=(AxisName="L_VRstickY",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_Y)
|
||||
+AxisMappings=(AxisName="L_VRgrabber",Scale=1.000000,Key=OculusTouch_Left_Grip_Axis)
|
||||
+AxisMappings=(AxisName="L_VRtrigger",Scale=1.000000,Key=Cosmos_Left_Trigger_Axis)
|
||||
+AxisMappings=(AxisName="L_VRstickX",Scale=1.000000,Key=Cosmos_Left_Thumbstick_Y)
|
||||
+AxisMappings=(AxisName="L_VRstickY",Scale=1.000000,Key=Cosmos_Left_Thumbstick_X)
|
||||
+AxisMappings=(AxisName="L_VRgrabber",Scale=1.000000,Key=Cosmos_Left_Grip_Axis)
|
||||
+AxisMappings=(AxisName="R_btn1",Scale=1.000000,Key=OculusTouch_Right_A_Click)
|
||||
+AxisMappings=(AxisName="R_btn2",Scale=1.000000,Key=OculusTouch_Right_B_Click)
|
||||
+AxisMappings=(AxisName="L_btn1",Scale=1.000000,Key=OculusTouch_Left_X_Click)
|
||||
+AxisMappings=(AxisName="L_btn2",Scale=1.000000,Key=OculusTouch_Left_Y_Click)
|
||||
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
|
||||
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
|
||||
DefaultTouchInterface=None
|
||||
-ConsoleKeys=Tilde
|
||||
+ConsoleKeys=Tilde
|
||||
+ConsoleKeys=None
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
[DevOptions.GPULightmass]
|
||||
NumPrimaryGISamples=64
|
||||
NumSecondaryGISamples=16
|
||||
FireflyClampingThreshold=1000.0
|
||||
@@ -1,11 +0,0 @@
|
||||
[/Script/RemoteControlCommon.RemoteControlSettings]
|
||||
bProtocolsGenerateTransactions=False
|
||||
RemoteControlWebInterfacePort=7000
|
||||
bForceWebAppBuildAtStartup=False
|
||||
bAutoStartWebServer=True
|
||||
bAutoStartWebSocketServer=False
|
||||
RemoteControlHttpServerPort=1489
|
||||
RemoteControlWebSocketServerPort=30300
|
||||
bDisplayInEditorOnlyWarnings=False
|
||||
TreeBindingSplitRatio=0.700000
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
ResourceName=Game.locres
|
||||
bSkipSourceCheck=false
|
||||
bValidateFormatPatterns=true
|
||||
bValidateSafeWhitespace=false
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=GenerateTextLocalizationResource
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
PortableObjectName=Game.po
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=InternationalizationExport
|
||||
bExportLoc=true
|
||||
LocalizedTextCollapseMode=ELocalizedTextCollapseMode::IdenticalTextIdAndSource
|
||||
POFormat=EPortableObjectFormat::Unreal
|
||||
ShouldPersistCommentsOnExport=false
|
||||
ShouldAddSourceLocationsAsComments=true
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
DialogueScriptName=GameDialogue.csv
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=ExportDialogueScript
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
[CommonSettings]
|
||||
ManifestDependencies=D:/UnrealEngine4/Engines/UE_4.27/Engine/Content/Localization/Engine/Engine.manifest
|
||||
ManifestDependencies=D:/UnrealEngine4/Engines/UE_4.27/Engine/Content/Localization/Editor/Editor.manifest
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=GatherTextFromAssets
|
||||
IncludePathFilters=Content/Blueprints/UI/*
|
||||
IncludePathFilters=Content/Maps/*
|
||||
IncludePathFilters=Content/Blueprints/Player/*
|
||||
ExcludePathFilters=Content/Localization/*
|
||||
PackageFileNameFilters=*.uasset
|
||||
PackageFileNameFilters=*.umap
|
||||
ShouldExcludeDerivedClasses=false
|
||||
ShouldGatherFromEditorOnlyData=false
|
||||
SkipGatherCache=false
|
||||
|
||||
[GatherTextStep1]
|
||||
CommandletClass=GenerateGatherManifest
|
||||
|
||||
[GatherTextStep2]
|
||||
CommandletClass=GenerateGatherArchive
|
||||
|
||||
[GatherTextStep3]
|
||||
CommandletClass=GenerateTextLocalizationReport
|
||||
bWordCountReport=true
|
||||
WordCountReportName=Game.csv
|
||||
bConflictReport=true
|
||||
ConflictReportName=Game_Conflicts.txt
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=GenerateTextLocalizationReport
|
||||
bWordCountReport=true
|
||||
WordCountReportName=Game.csv
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
PortableObjectName=Game.po
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=InternationalizationExport
|
||||
bImportLoc=true
|
||||
LocalizedTextCollapseMode=ELocalizedTextCollapseMode::IdenticalTextIdAndSource
|
||||
POFormat=EPortableObjectFormat::Unreal
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=ImportLocalizedDialogue
|
||||
RawAudioPath=
|
||||
ImportedDialogueFolder=ImportedDialogue
|
||||
bImportNativeAsSource=false
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
[CommonSettings]
|
||||
SourcePath=Content/Localization/Game
|
||||
DestinationPath=Content/Localization/Game
|
||||
NativeCulture=ru-RU
|
||||
CulturesToGenerate=en
|
||||
CulturesToGenerate=ru-RU
|
||||
ManifestName=Game.manifest
|
||||
ArchiveName=Game.archive
|
||||
DialogueScriptName=GameDialogue.csv
|
||||
|
||||
[GatherTextStep0]
|
||||
CommandletClass=ImportDialogueScript
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Gamepads",
|
||||
"controller_type": "gamepad",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": []
|
||||
}
|
||||
},
|
||||
"description": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for MixedReality",
|
||||
"controller_type": "holographic_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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for HPMixedRealityController",
|
||||
"controller_type": "hpmotioncontroller",
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Valve Index Headset",
|
||||
"controller_type": "indexhmd",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": []
|
||||
}
|
||||
},
|
||||
"description": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for ValveIndex",
|
||||
"controller_type": "knuckles",
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,210 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for OculusTouch",
|
||||
"controller_type": "oculus_touch",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/triggerR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/grabberR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/triggerL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/left/input/a",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/menuL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/grabberL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRtrigger axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "joystick",
|
||||
"path": "/user/hand/right/input/joystick",
|
||||
"inputs":
|
||||
{
|
||||
"position":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRstickX,R_VRstickY X Y_axis2d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRgrabber axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRtrigger axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "joystick",
|
||||
"path": "/user/hand/left/input/joystick",
|
||||
"inputs":
|
||||
{
|
||||
"position":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRstickX,L_VRstickY X Y_axis2d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRgrabber axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/right/input/a",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_btn1 axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/right/input/b",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_btn2 axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/left/input/x",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_btn1 axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/left/input/y",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_btn2 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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Rift Headset",
|
||||
"controller_type": "rift",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": []
|
||||
}
|
||||
},
|
||||
"description": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,494 +0,0 @@
|
||||
{
|
||||
"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/triggerR",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/grabberR",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/triggerL",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/menuL",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/grabberL",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/menuR",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/right axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/forward axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/R_VRtrigger axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/R_VRstickY,R_VRstickX X Y_axis2d",
|
||||
"type": "vector2"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/R_VRstickX,R_VRstickY X Y_axis2d",
|
||||
"type": "vector2"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/R_VRgrabber axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/L_VRtrigger axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/L_VRstickY,L_VRstickX X Y_axis2d",
|
||||
"type": "vector2"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/L_VRstickX,L_VRstickY X Y_axis2d",
|
||||
"type": "vector2"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/L_VRgrabber axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/R_btn1 axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/R_btn2 axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/L_btn1 axis",
|
||||
"type": "vector1"
|
||||
},
|
||||
{
|
||||
"name": "/actions/main/in/L_btn2 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"
|
||||
},
|
||||
{
|
||||
"controller_type": "knuckles",
|
||||
"binding_url": "knuckles.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_controller",
|
||||
"binding_url": "vive_controller.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_cosmos_controller",
|
||||
"binding_url": "vive_cosmos_controller.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "oculus_touch",
|
||||
"binding_url": "oculus_touch.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": "vive",
|
||||
"binding_url": "vive.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_pro",
|
||||
"binding_url": "vive_pro.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "rift",
|
||||
"binding_url": "rift.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_waist",
|
||||
"binding_url": "vive_tracker_waist.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_left_foot",
|
||||
"binding_url": "vive_tracker_left_foot.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_right_foot",
|
||||
"binding_url": "vive_tracker_right_foot.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_left_shoulder",
|
||||
"binding_url": "vive_tracker_left_shoulder.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_right_shoulder",
|
||||
"binding_url": "vive_tracker_right_shoulder.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_left_elbow",
|
||||
"binding_url": "vive_tracker_left_elbow.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_right_elbow",
|
||||
"binding_url": "vive_tracker_right_elbow.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_left_knee",
|
||||
"binding_url": "vive_tracker_left_knee.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_right_knee",
|
||||
"binding_url": "vive_tracker_right_knee.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_chest",
|
||||
"binding_url": "vive_tracker_chest.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_keyboard",
|
||||
"binding_url": "vive_tracker_keyboard.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "vive_tracker_handed",
|
||||
"binding_url": "vive_tracker_handed.json"
|
||||
},
|
||||
{
|
||||
"controller_type": "gamepad",
|
||||
"binding_url": "gamepad.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/triggerR": "triggerR",
|
||||
"/actions/main/in/grabberR": "grabberR",
|
||||
"/actions/main/in/triggerL": "triggerL",
|
||||
"/actions/main/in/menuL": "menuL",
|
||||
"/actions/main/in/grabberL": "grabberL",
|
||||
"/actions/main/in/menuR": "menuR",
|
||||
"/actions/main/in/right axis": "right",
|
||||
"/actions/main/in/forward axis": "forward",
|
||||
"/actions/main/in/R_VRtrigger axis": "R_VRtrigger",
|
||||
"/actions/main/in/R_VRstickY,R_VRstickX X Y_axis2d": "R_VRstickY,R_VRstickX X Y_axis2d",
|
||||
"/actions/main/in/R_VRstickX,R_VRstickY X Y_axis2d": "R_VRstick",
|
||||
"/actions/main/in/R_VRgrabber axis": "R_VRgrabber",
|
||||
"/actions/main/in/L_VRtrigger axis": "L_VRtrigger",
|
||||
"/actions/main/in/L_VRstickY,L_VRstickX X Y_axis2d": "L_VRstickY,L_VRstickX X Y_axis2d",
|
||||
"/actions/main/in/L_VRstickX,L_VRstickY X Y_axis2d": "L_VRstick",
|
||||
"/actions/main/in/L_VRgrabber axis": "L_VRgrabber",
|
||||
"/actions/main/in/R_btn1 axis": "R_btn1",
|
||||
"/actions/main/in/R_btn2 axis": "R_btn2",
|
||||
"/actions/main/in/L_btn1 axis": "L_btn1",
|
||||
"/actions/main/in/L_btn2 axis": "L_btn2",
|
||||
"/actions/main": "Main Game Actions"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Vive Headset",
|
||||
"controller_type": "vive",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": []
|
||||
}
|
||||
},
|
||||
"description": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Vive",
|
||||
"controller_type": "vive_controller",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRtrigger axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRtrigger 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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,177 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Cosmos",
|
||||
"controller_type": "vive_cosmos_controller",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/triggerR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/right/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/grabberR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/triggerL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/left/input/x",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/menuL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/left/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/grabberL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "button",
|
||||
"path": "/user/hand/right/input/a",
|
||||
"inputs":
|
||||
{
|
||||
"click":
|
||||
{
|
||||
"output": "/actions/main/in/menuR"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRtrigger axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "joystick",
|
||||
"path": "/user/hand/right/input/joystick",
|
||||
"inputs":
|
||||
{
|
||||
"position":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRstickY,R_VRstickX X Y_axis2d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/right/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/R_VRgrabber axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/trigger",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRtrigger axis"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "joystick",
|
||||
"path": "/user/hand/left/input/joystick",
|
||||
"inputs":
|
||||
{
|
||||
"position":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRstickY,L_VRstickX X Y_axis2d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"mode": "trigger",
|
||||
"path": "/user/hand/left/input/grip",
|
||||
"inputs":
|
||||
{
|
||||
"pull":
|
||||
{
|
||||
"output": "/actions/main/in/L_VRgrabber 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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "Default bindings for Vive Pro Headset",
|
||||
"controller_type": "vive_pro",
|
||||
"last_edited_by": "UnrealEngine",
|
||||
"bindings":
|
||||
{
|
||||
"/actions/main":
|
||||
{
|
||||
"sources": []
|
||||
}
|
||||
},
|
||||
"description": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"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": "Ivazowsky-18319896"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
[/Script/DLSS.DLSSOverrideSettings]
|
||||
EnableDLSSInEditorViewportsOverride=UseProjectSettings
|
||||
EnableScreenpercentageManipulationInDLSSEditorViewportsOverride=UseProjectSettings
|
||||
EnableDLSSInPlayInEditorViewportsOverride=UseProjectSettings
|
||||
bShowDLSSIncompatiblePluginsToolsWarnings=True
|
||||
ShowDLSSSDebugOnScreenMessages=Enabled
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"source": "UE",
|
||||
"applications": [
|
||||
{
|
||||
"app_key": "application.generated.ue.ivazowsky-18319896.ue4editor.exe",
|
||||
"launch_type": "url",
|
||||
"url": "steam://launch/",
|
||||
"action_manifest_path": "E:/Projects/Ivazowsky/Config/SteamVRBindings/steamvr_manifest.json",
|
||||
"strings":
|
||||
{
|
||||
"en_us":
|
||||
{
|
||||
"name": "Ivazowsky-18319896 [UE Editor]"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"EngineAssociation": "5.3",
|
||||
"EngineAssociation": "5.5",
|
||||
"Category": "",
|
||||
"Description": "",
|
||||
"Modules": [
|
||||
@@ -300,7 +300,7 @@
|
||||
},
|
||||
{
|
||||
"Name": "VaRest",
|
||||
"Enabled": true,
|
||||
"Enabled": false,
|
||||
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/e47be161e7a24e928560290abd5dcc4f"
|
||||
},
|
||||
{
|
||||
@@ -309,15 +309,15 @@
|
||||
},
|
||||
{
|
||||
"Name": "manageTextFile",
|
||||
"Enabled": true
|
||||
"Enabled": false
|
||||
},
|
||||
{
|
||||
"Name": "JPrinter",
|
||||
"Enabled": true
|
||||
"Enabled": false
|
||||
},
|
||||
{
|
||||
"Name": "EasyXMLParser",
|
||||
"Enabled": true,
|
||||
"Enabled": false,
|
||||
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/af98110080a4411a8eaf3b8e931b8655"
|
||||
},
|
||||
{
|
||||
@@ -330,12 +330,12 @@
|
||||
},
|
||||
{
|
||||
"Name": "DLSS",
|
||||
"Enabled": true,
|
||||
"Enabled": false,
|
||||
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss"
|
||||
},
|
||||
{
|
||||
"Name": "PixelStreaming",
|
||||
"Enabled": true
|
||||
"Enabled": false
|
||||
},
|
||||
{
|
||||
"Name": "RLPlugin",
|
||||
@@ -397,7 +397,7 @@
|
||||
},
|
||||
{
|
||||
"Name": "Streamline",
|
||||
"Enabled": true,
|
||||
"Enabled": false,
|
||||
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss"
|
||||
},
|
||||
{
|
||||
@@ -413,7 +413,7 @@
|
||||
},
|
||||
{
|
||||
"Name": "DLSSMoviePipelineSupport",
|
||||
"Enabled": true,
|
||||
"Enabled": false,
|
||||
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss"
|
||||
},
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"BuildId": "27405482",
|
||||
"Modules":
|
||||
{
|
||||
"EasyXMLParser": "UnrealEditor-EasyXMLParser.dll"
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
[FilterPlugin]
|
||||
; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and
|
||||
; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively.
|
||||
;
|
||||
; Examples:
|
||||
; /README.txt
|
||||
; /Extras/...
|
||||
; /Binaries/ThirdParty/*.dll
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"Version": 1,
|
||||
"VersionName": "1.0.1",
|
||||
"FriendlyName": "EasyXMLParser",
|
||||
"Description": "Parse xml easily",
|
||||
"Category": "Programming",
|
||||
"CreatedBy": "ayumax",
|
||||
"CreatedByURL": "https://github.com/ayumax",
|
||||
"DocsURL": "https://github.com/ayumax/EasyXMLParserSample",
|
||||
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/af98110080a4411a8eaf3b8e931b8655",
|
||||
"SupportURL": "",
|
||||
"CanContainContent": false,
|
||||
"IsBetaVersion": false,
|
||||
"Installed": true,
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "EasyXMLParser",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default",
|
||||
"WhitelistPlatforms": [
|
||||
"Android",
|
||||
"Win64",
|
||||
"Mac",
|
||||
"IOS"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,53 +0,0 @@
|
||||
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
using UnrealBuildTool;
|
||||
|
||||
public class EasyXMLParser : ModuleRules
|
||||
{
|
||||
public EasyXMLParser(ReadOnlyTargetRules Target) : base(Target)
|
||||
{
|
||||
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||
|
||||
PublicIncludePaths.AddRange(
|
||||
new string[] {
|
||||
// ... add public include paths required here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
PrivateIncludePaths.AddRange(
|
||||
new string[] {
|
||||
// ... add other private include paths required here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
PublicDependencyModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
"Core",
|
||||
// ... add other public dependencies that you statically link with here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
PrivateDependencyModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
"CoreUObject",
|
||||
"Engine",
|
||||
"Slate",
|
||||
"SlateCore",
|
||||
"XmlParser"
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
DynamicallyLoadedModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
// ... add any modules that your module loads dynamically here ...
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "EasyXMLAsyncLoadFromFile.h"
|
||||
#include "Engine/World.h"
|
||||
#include "TimerManager.h"
|
||||
#include "Async/Async.h"
|
||||
#include "Utils/CustomXMLParser.h"
|
||||
#include "EasyXMLParseManager.h"
|
||||
|
||||
UEasyXMLAsyncLoadFromFile::UEasyXMLAsyncLoadFromFile(const FObjectInitializer& ObjectInitializer)
|
||||
:Super(ObjectInitializer)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
UEasyXMLAsyncLoadFromFile* UEasyXMLAsyncLoadFromFile::AsyncLoadFromFile(UObject* WorldContextObject, const FString& FilePath, bool IsAblolute)
|
||||
{
|
||||
auto Action = NewObject<UEasyXMLAsyncLoadFromFile>();
|
||||
Action->RegisterWithGameInstance(WorldContextObject);
|
||||
Action->_XMLFile = FilePath;
|
||||
Action->_IsAblolute = IsAblolute;
|
||||
|
||||
return Action;
|
||||
}
|
||||
|
||||
void UEasyXMLAsyncLoadFromFile::Activate()
|
||||
{
|
||||
AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [this]()
|
||||
{
|
||||
auto manager = NewObject<UEasyXMLParseManager>();
|
||||
FString _errorMessage;
|
||||
EEasyXMLParserErrorCode _isSuccessed;
|
||||
auto rootElement = manager->LoadFromFile(_XMLFile, _IsAblolute, _isSuccessed, _errorMessage);
|
||||
|
||||
if (_isSuccessed == EEasyXMLParserErrorCode::Successed)
|
||||
{
|
||||
AsyncTask(ENamedThreads::GameThread, [this, rootElement]()
|
||||
{
|
||||
Successed.Broadcast(rootElement, TEXT(""));
|
||||
SetReadyToDestroy();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
AsyncTask(ENamedThreads::GameThread, [this, _errorMessage]()
|
||||
{
|
||||
Failed.Broadcast(nullptr, _errorMessage);
|
||||
SetReadyToDestroy();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "EasyXMLAsyncLoadFromString.h"
|
||||
#include "Engine/World.h"
|
||||
#include "TimerManager.h"
|
||||
#include "Async/Async.h"
|
||||
#include "Utils/CustomXMLParser.h"
|
||||
|
||||
UEasyXMLAsyncLoadFromString::UEasyXMLAsyncLoadFromString(const FObjectInitializer& ObjectInitializer)
|
||||
:Super(ObjectInitializer)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
UEasyXMLAsyncLoadFromString* UEasyXMLAsyncLoadFromString::AsyncLoadFromString(UObject* WorldContextObject, const FString& XMLString)
|
||||
{
|
||||
auto Action = NewObject<UEasyXMLAsyncLoadFromString>();
|
||||
Action->RegisterWithGameInstance(WorldContextObject);
|
||||
Action->_XMLString = XMLString;
|
||||
|
||||
return Action;
|
||||
}
|
||||
|
||||
void UEasyXMLAsyncLoadFromString::Activate()
|
||||
{
|
||||
AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [this]()
|
||||
{
|
||||
CustomXMLParser parser;
|
||||
FString _errorMessage;
|
||||
|
||||
auto rootElement = parser.Parse(_XMLString, _errorMessage);
|
||||
|
||||
if (rootElement != nullptr)
|
||||
{
|
||||
AsyncTask(ENamedThreads::GameThread, [this, rootElement]()
|
||||
{
|
||||
Successed.Broadcast(rootElement, TEXT(""));
|
||||
SetReadyToDestroy();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
AsyncTask(ENamedThreads::GameThread, [this, _errorMessage]()
|
||||
{
|
||||
Failed.Broadcast(nullptr, _errorMessage);
|
||||
SetReadyToDestroy();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "EasyXMLAttribute.h"
|
||||
#include "EasyXMLElement.h"
|
||||
|
||||
UEasyXMLAttribute* UEasyXMLAttribute::CreateAttribute(UEasyXMLElement* ParentObject, FString _Name, FString _Value)
|
||||
{
|
||||
auto newAttribute = NewObject<UEasyXMLAttribute>(ParentObject == nullptr ? (UObject*)GetTransientPackage() : ParentObject);
|
||||
newAttribute->Parent = ParentObject;
|
||||
newAttribute->Name = _Name;
|
||||
newAttribute->Value = _Value.TrimStartAndEnd();
|
||||
|
||||
return newAttribute;
|
||||
}
|
||||
@@ -1,223 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "EasyXMLElement.h"
|
||||
#include "EasyXMLAttribute.h"
|
||||
#include "Internationalization/Regex.h"
|
||||
|
||||
UEasyXMLElement* UEasyXMLElement::CreateElement(UEasyXMLObject* ParentObject, FString Tag, FString Content, int32 _LineNumber)
|
||||
{
|
||||
auto newElement = NewObject<UEasyXMLElement>(ParentObject == nullptr ? (UObject*)GetTransientPackage() : ParentObject);
|
||||
newElement->Parent = ParentObject;
|
||||
newElement->Name = Tag;
|
||||
newElement->Value = Content.TrimStartAndEnd();
|
||||
newElement->LineNumber = _LineNumber;
|
||||
|
||||
return newElement;
|
||||
}
|
||||
|
||||
|
||||
int32 UEasyXMLElement::ReadInt(const FString& AccessString, int32 DefaultValue)
|
||||
{
|
||||
auto foundElement = ReadEasyXMLObject(AccessString);
|
||||
if (!foundElement) return DefaultValue;
|
||||
|
||||
return foundElement->GetIntValue(DefaultValue);
|
||||
}
|
||||
|
||||
|
||||
float UEasyXMLElement::ReadFloat(const FString& AccessString, float DefaultValue)
|
||||
{
|
||||
auto foundElement = ReadEasyXMLObject(AccessString);
|
||||
if (!foundElement) return DefaultValue;
|
||||
|
||||
return foundElement->GetFloatValue(DefaultValue);
|
||||
}
|
||||
|
||||
FString UEasyXMLElement::ReadString(const FString& AccessString, const FString& DefaultValue)
|
||||
{
|
||||
auto foundElement = ReadEasyXMLObject(AccessString);
|
||||
if (!foundElement) return DefaultValue;
|
||||
|
||||
return foundElement->GetStringValue(DefaultValue);
|
||||
}
|
||||
|
||||
bool UEasyXMLElement::ReadBool(const FString& AccessString, bool DefaultValue)
|
||||
{
|
||||
auto foundElement = ReadEasyXMLObject(AccessString);
|
||||
if (!foundElement) return DefaultValue;
|
||||
|
||||
return foundElement->GetBoolValue(DefaultValue);
|
||||
}
|
||||
|
||||
UEasyXMLElement* UEasyXMLElement::ReadElement(const FString& AccessString, EEasyXMLParserFound& Result)
|
||||
{
|
||||
auto filterArray = ReadElements(AccessString, Result);
|
||||
|
||||
return filterArray.Num() > 0 ? filterArray[0] : nullptr;
|
||||
}
|
||||
|
||||
TArray<UEasyXMLElement*> UEasyXMLElement::ReadElements(const FString& AccessString, EEasyXMLParserFound& Result)
|
||||
{
|
||||
TArray<UEasyXMLElement*> foundElements;
|
||||
|
||||
TArray<FString> Accessers;
|
||||
AccessString.ParseIntoArray(Accessers, TEXT("."), true);
|
||||
|
||||
Result = EEasyXMLParserFound::NotFound;
|
||||
|
||||
auto parentNode = this;
|
||||
|
||||
for (int i = 0; i < Accessers.Num(); ++i)
|
||||
{
|
||||
auto accesseName = Accessers[i];
|
||||
|
||||
if (accesseName.IsEmpty()) return foundElements;
|
||||
|
||||
if (accesseName[0] == TEXT('@'))
|
||||
{
|
||||
return foundElements;
|
||||
}
|
||||
|
||||
FString elementName;
|
||||
int32 arrayIndex = 0;
|
||||
bool IsArrayAccess = IsAccessAsArray(accesseName, elementName, arrayIndex);
|
||||
|
||||
auto filterNodes = parentNode->GetElementsByTagName(elementName);
|
||||
|
||||
if (i == (Accessers.Num() - 1))
|
||||
{
|
||||
if (IsArrayAccess)
|
||||
{
|
||||
if (filterNodes.Num() > arrayIndex)
|
||||
{
|
||||
foundElements.Emplace(filterNodes[arrayIndex]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foundElements = filterNodes;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (filterNodes.Num() > arrayIndex)
|
||||
{
|
||||
parentNode = filterNodes[arrayIndex];
|
||||
}
|
||||
|
||||
if (!parentNode) return foundElements;
|
||||
}
|
||||
}
|
||||
|
||||
Result = EEasyXMLParserFound::Found;
|
||||
|
||||
return foundElements;
|
||||
}
|
||||
|
||||
UEasyXMLObject* UEasyXMLElement::ReadEasyXMLObject(const FString& AccessString)
|
||||
{
|
||||
TArray<FString> Accessers;
|
||||
AccessString.ParseIntoArray(Accessers, TEXT("."), true);
|
||||
|
||||
auto parentNode = this;
|
||||
|
||||
for (auto accesseName : Accessers)
|
||||
{
|
||||
if (!parentNode) return nullptr;
|
||||
if (accesseName.IsEmpty()) return nullptr;
|
||||
|
||||
if (accesseName[0] == TEXT('@'))
|
||||
{
|
||||
EEasyXMLParserFound retFound;
|
||||
return parentNode->GetAttribute(accesseName.Mid(1), retFound);
|
||||
}
|
||||
|
||||
FString elementName;
|
||||
int32 arrayIndex = 0;
|
||||
IsAccessAsArray(accesseName, elementName, arrayIndex);
|
||||
|
||||
auto filterNodes = parentNode->GetElementsByTagName(elementName);
|
||||
if (filterNodes.Num() > arrayIndex)
|
||||
{
|
||||
parentNode = filterNodes[arrayIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
return parentNode;
|
||||
}
|
||||
|
||||
TArray<UEasyXMLElement*> UEasyXMLElement::GetElementsByTagName(const FString& TagName)
|
||||
{
|
||||
TArray<UEasyXMLElement*> foundElements = Children.FilterByPredicate(
|
||||
[TagName](UEasyXMLElement* child)
|
||||
{
|
||||
return child->Name.Equals(TagName, ESearchCase::IgnoreCase);
|
||||
});
|
||||
|
||||
return foundElements;
|
||||
}
|
||||
|
||||
UEasyXMLAttribute* UEasyXMLElement::GetAttribute(const FString& AtrributeName, EEasyXMLParserFound& Result)
|
||||
{
|
||||
if (Attributes.Contains(AtrributeName))
|
||||
{
|
||||
Result = EEasyXMLParserFound::Found;
|
||||
return Attributes[AtrributeName];
|
||||
}
|
||||
|
||||
Result = EEasyXMLParserFound::NotFound;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool UEasyXMLElement::IsAccessAsArray(const FString& AccessName, FString& ElementName, int32& ArrayIndex)
|
||||
{
|
||||
const FRegexPattern pattern = FRegexPattern(FString(TEXT("(.*)\\[([0-9]+)\\]$")));
|
||||
FRegexMatcher matcher(pattern, AccessName);
|
||||
|
||||
while (matcher.FindNext())
|
||||
{
|
||||
ElementName = matcher.GetCaptureGroup(1);
|
||||
|
||||
FString numStr = matcher.GetCaptureGroup(2);
|
||||
if (numStr.IsNumeric())
|
||||
{
|
||||
ArrayIndex = (FCString::Atoi(*numStr));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
ElementName = AccessName;
|
||||
ArrayIndex = 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool UEasyXMLElement::IsContainAttributeKeys(const TArray<FString>& Keys, TArray<FString>& FoundAttributeKeys)
|
||||
{
|
||||
TArray<FString> attributeKeys;
|
||||
Attributes.GetKeys(attributeKeys);
|
||||
|
||||
for (auto key : Keys)
|
||||
{
|
||||
bool found = false;
|
||||
for (auto attributeKey : attributeKeys)
|
||||
{
|
||||
if (key.Equals(attributeKey, ESearchCase::IgnoreCase))
|
||||
{
|
||||
found = true;
|
||||
FoundAttributeKeys.Emplace(attributeKey);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!found) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
|
||||
#include "EasyXMLObject.h"
|
||||
#include "Utils/CustomXMLParser.h"
|
||||
|
||||
int32 UEasyXMLObject::GetIntValue(int32 DefaultValue)
|
||||
{
|
||||
if (Value.IsEmpty()) return DefaultValue;
|
||||
|
||||
int32 _index = 0;
|
||||
|
||||
if (Value.IsNumeric() && !Value.FindChar(TEXT('.'), _index))
|
||||
{
|
||||
return FCString::Atoi(*Value);
|
||||
}
|
||||
|
||||
return DefaultValue;
|
||||
}
|
||||
|
||||
float UEasyXMLObject::GetFloatValue(float DefaultValue)
|
||||
{
|
||||
if (Value.IsEmpty()) return DefaultValue;
|
||||
|
||||
auto isSuccess = Value.IsNumeric();
|
||||
return isSuccess ? FCString::Atof(*Value) : DefaultValue;
|
||||
}
|
||||
|
||||
FString UEasyXMLObject::GetStringValue(FString DefaultValue)
|
||||
{
|
||||
if (Value.IsEmpty()) return DefaultValue;
|
||||
|
||||
return Value;
|
||||
}
|
||||
|
||||
bool UEasyXMLObject::GetBoolValue(bool DefaultValue)
|
||||
{
|
||||
if (Value.IsEmpty()) return DefaultValue;
|
||||
|
||||
if (Value.Equals(TEXT("true"), ESearchCase::IgnoreCase))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (Value.Equals(TEXT("false"), ESearchCase::IgnoreCase))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return DefaultValue;
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
|
||||
#include "EasyXMLParseManager.h"
|
||||
#include "Misc/Paths.h"
|
||||
#include "Misc/FileHelper.h"
|
||||
#include "EasyXMLElement.h"
|
||||
#include "Utils/CustomXMLParser.h"
|
||||
|
||||
|
||||
UEasyXMLElement* UEasyXMLParseManager::LoadFromString(const FString& XMLString, EEasyXMLParserErrorCode& Result, FString& ErrorMessage)
|
||||
{
|
||||
CustomXMLParser parser;
|
||||
FString _errorMessage;
|
||||
|
||||
auto rootElement = parser.Parse(XMLString, _errorMessage);
|
||||
Result = rootElement != nullptr ? EEasyXMLParserErrorCode::Successed : EEasyXMLParserErrorCode::Failed;
|
||||
ErrorMessage = _errorMessage;
|
||||
|
||||
return rootElement;
|
||||
}
|
||||
|
||||
UEasyXMLElement* UEasyXMLParseManager::LoadFromFile(const FString& FilePath, bool IsAblolute, EEasyXMLParserErrorCode& Result, FString& ErrorMessage)
|
||||
{
|
||||
auto readPath = FilePath;
|
||||
if (!IsAblolute)
|
||||
{
|
||||
readPath = FPaths::Combine(FPaths::ProjectContentDir(), FilePath);
|
||||
}
|
||||
|
||||
if (!FPaths::FileExists(readPath)) return nullptr;
|
||||
|
||||
FString xmlString;
|
||||
|
||||
FFileHelper::LoadFileToString(xmlString, *readPath);
|
||||
|
||||
return LoadFromString(xmlString, Result, ErrorMessage);
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "EasyXMLParser.h"
|
||||
|
||||
#define LOCTEXT_NAMESPACE "FEasyXMLParserModule"
|
||||
|
||||
void FEasyXMLParserModule::StartupModule()
|
||||
{
|
||||
// This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
|
||||
}
|
||||
|
||||
void FEasyXMLParserModule::ShutdownModule()
|
||||
{
|
||||
// This function may be called during shutdown to clean up your module. For modules that support dynamic reloading,
|
||||
// we call this function before unloading the module.
|
||||
}
|
||||
|
||||
#undef LOCTEXT_NAMESPACE
|
||||
|
||||
IMPLEMENT_MODULE(FEasyXMLParserModule, EasyXMLParser)
|
||||
@@ -1,270 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "Misc/AutomationTest.h"
|
||||
#include "EasyXMLParseManager.h"
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FNodeAccessTest, "EasyXMLParser.NodeAccessTest", EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::SmokeFilter)
|
||||
|
||||
bool FNodeAccessTest::RunTest(const FString& Parameters)
|
||||
{
|
||||
{
|
||||
FString xmlString = TEXT("<root>\r")
|
||||
TEXT("<!-- comment desu -->\r")
|
||||
TEXT("<abc attr1=\"10\" attr2=\"false\">\r")
|
||||
TEXT("123\r")
|
||||
TEXT("</abc>\r")
|
||||
TEXT("<abc/>\r")
|
||||
TEXT("<abc>40</abc>\r")
|
||||
TEXT("<abc>ZZZZ</abc>\r")
|
||||
TEXT("<bbb>\r")
|
||||
TEXT("bbbChild\r")
|
||||
TEXT("</bbb>\r")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc")), TEXT("123"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc[0]")), TEXT("123"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc[1]")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc[2]")), TEXT("40"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc[3]")), TEXT("ZZZZ"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.bbb")), TEXT("bbbChild"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc[0].@attr1")), TEXT("10"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("root.abc[0].@attr2")), TEXT("false"));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FNodeAccessTest2, "EasyXMLParser.NodeAccessTest2", EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::SmokeFilter)
|
||||
|
||||
bool FNodeAccessTest2::RunTest(const FString& Parameters)
|
||||
{
|
||||
FString XMLSource =
|
||||
TEXT("<PurchaseOrder PurchaseOrderNumber=\"99503\" OrderDate=\"1999-10-20\">\r")
|
||||
TEXT("<Address Type=\"Shipping\">\r")
|
||||
TEXT("<Name>Ellen Adams</Name>\r")
|
||||
TEXT("<Street>123 Maple Street</Street>\r")
|
||||
TEXT("<City>Mill Valley</City>\r")
|
||||
TEXT("<State>CA</State>\r")
|
||||
TEXT("<Zip>10999</Zip>\r")
|
||||
TEXT("<Country>USA</Country>\r")
|
||||
TEXT("</Address>\r")
|
||||
TEXT("<Address Type=\"Billing\">\r")
|
||||
TEXT("<Name>Tai Yee</Name>\r")
|
||||
TEXT("<Street>8 Oak Avenue</Street>\r")
|
||||
TEXT("<City>Old Town</City>\r")
|
||||
TEXT("<State>PA</State>\r")
|
||||
TEXT("<Zip>95819</Zip>\r")
|
||||
TEXT("<Country>USA</Country>\r")
|
||||
TEXT("</Address>\r")
|
||||
TEXT("<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>\r")
|
||||
TEXT("<Items>\r")
|
||||
TEXT("<Item PartNumber=\"872-AA\">\r")
|
||||
TEXT("<ProductName>Lawnmower</ProductName>\r")
|
||||
TEXT("<Quantity>1</Quantity>\r")
|
||||
TEXT("<USPrice>148.95</USPrice>\r")
|
||||
TEXT("<Comment>Confirm this is electric</Comment>\r")
|
||||
TEXT("</Item>\r")
|
||||
TEXT("<Item PartNumber=\"926-AA\">\r")
|
||||
TEXT("<ProductName>Baby Monitor</ProductName>\r")
|
||||
TEXT("<Quantity>2</Quantity>\r")
|
||||
TEXT("<USPrice>39.98</USPrice>\r")
|
||||
TEXT("<ShipDate>1999-05-21</ShipDate>\r")
|
||||
TEXT("</Item>\r")
|
||||
TEXT("</Items>\r")
|
||||
TEXT("</PurchaseOrder>\r");
|
||||
|
||||
{
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(XMLSource, result, errorMessage);
|
||||
|
||||
TestEqual(TEXT("success read"), rootNode->ReadInt(TEXT("PurchaseOrder.@PurchaseOrderNumber")), 99503);
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.@OrderDate")), TEXT("1999-10-20"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].@Type")), TEXT("Shipping"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].Name")), TEXT("Ellen Adams"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].Street")), TEXT("123 Maple Street"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].City")), TEXT("Mill Valley"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].State")), TEXT("CA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].Zip")), TEXT("10999"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].Country")), TEXT("USA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].@Type")), TEXT("Billing"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].Name")), TEXT("Tai Yee"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].Street")), TEXT("8 Oak Avenue"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].City")), TEXT("Old Town"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].State")), TEXT("PA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].Zip")), TEXT("95819"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].Country")), TEXT("USA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.DeliveryNotes")), TEXT("Please leave packages in shed by driveway."));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0].@PartNumber")), TEXT("872-AA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0].ProductName")), TEXT("Lawnmower"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0].Quantity")), TEXT("1"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0].USPrice")), TEXT("148.95"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0].Comment")), TEXT("Confirm this is electric"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[1].@PartNumber")), TEXT("926-AA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[1].ProductName")), TEXT("Baby Monitor"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[1].Quantity")), TEXT("2"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[1].USPrice")), TEXT("39.98"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[1].ShipDate")), TEXT("1999-05-21"));
|
||||
}
|
||||
|
||||
{
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(XMLSource, result, errorMessage);
|
||||
|
||||
EEasyXMLParserFound retFound;
|
||||
auto Address0Node = rootNode->ReadElement(TEXT("PurchaseOrder.Address[0]"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
auto Address1Node = rootNode->ReadElement(TEXT("PurchaseOrder.Address[1]"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
auto Item0Node = rootNode->ReadElement(TEXT("PurchaseOrder.Items.Item[0]"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
auto Item1Node = rootNode->ReadElement(TEXT("PurchaseOrder.Items.Item[1]"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
|
||||
TestEqual(TEXT("success read"), rootNode->ReadInt(TEXT("PurchaseOrder.@PurchaseOrderNumber")), 99503);
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.@OrderDate")), TEXT("1999-10-20"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("@Type")), TEXT("Shipping"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("Name")), TEXT("Ellen Adams"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("Street")), TEXT("123 Maple Street"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("City")), TEXT("Mill Valley"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("State")), TEXT("CA"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("Zip")), TEXT("10999"));
|
||||
TestEqual(TEXT("success read"), Address0Node->ReadString(TEXT("Country")), TEXT("USA"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("@Type")), TEXT("Billing"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("Name")), TEXT("Tai Yee"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("Street")), TEXT("8 Oak Avenue"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("City")), TEXT("Old Town"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("State")), TEXT("PA"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("Zip")), TEXT("95819"));
|
||||
TestEqual(TEXT("success read"), Address1Node->ReadString(TEXT("Country")), TEXT("USA"));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.DeliveryNotes")), TEXT("Please leave packages in shed by driveway."));
|
||||
TestEqual(TEXT("success read"), Item0Node->ReadString(TEXT("@PartNumber")), TEXT("872-AA"));
|
||||
TestEqual(TEXT("success read"), Item0Node->ReadString(TEXT("ProductName")), TEXT("Lawnmower"));
|
||||
TestEqual(TEXT("success read"), Item0Node->ReadString(TEXT("Quantity")), TEXT("1"));
|
||||
TestEqual(TEXT("success read"), Item0Node->ReadString(TEXT("USPrice")), TEXT("148.95"));
|
||||
TestEqual(TEXT("success read"), Item0Node->ReadString(TEXT("Comment")), TEXT("Confirm this is electric"));
|
||||
TestEqual(TEXT("success read"), Item1Node->ReadString(TEXT("@PartNumber")), TEXT("926-AA"));
|
||||
TestEqual(TEXT("success read"), Item1Node->ReadString(TEXT("ProductName")), TEXT("Baby Monitor"));
|
||||
TestEqual(TEXT("success read"), Item1Node->ReadString(TEXT("Quantity")), TEXT("2"));
|
||||
TestEqual(TEXT("success read"), Item1Node->ReadString(TEXT("USPrice")), TEXT("39.98"));
|
||||
TestEqual(TEXT("success read"), Item1Node->ReadString(TEXT("ShipDate")), TEXT("1999-05-21"));
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(XMLSource, result, errorMessage);
|
||||
|
||||
EEasyXMLParserFound retFound;
|
||||
auto AddressNodes = rootNode->ReadElements(TEXT("PurchaseOrder.Address"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
auto ItemNodes = rootNode->ReadElements(TEXT("PurchaseOrder.Items.Item"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("@Type")), TEXT("Shipping"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Name")), TEXT("Ellen Adams"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Street")), TEXT("123 Maple Street"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("City")), TEXT("Mill Valley"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("State")), TEXT("CA"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Zip")), TEXT("10999"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Country")), TEXT("USA"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("@Type")), TEXT("Billing"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Name")), TEXT("Tai Yee"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Street")), TEXT("8 Oak Avenue"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("City")), TEXT("Old Town"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("State")), TEXT("PA"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Zip")), TEXT("95819"));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Country")), TEXT("USA"));
|
||||
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("@PartNumber")), TEXT("872-AA"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("ProductName")), TEXT("Lawnmower"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("Quantity")), TEXT("1"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("USPrice")), TEXT("148.95"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("Comment")), TEXT("Confirm this is electric"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("@PartNumber")), TEXT("926-AA"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("ProductName")), TEXT("Baby Monitor"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("Quantity")), TEXT("2"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("USPrice")), TEXT("39.98"));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("ShipDate")), TEXT("1999-05-21"));
|
||||
}
|
||||
|
||||
{
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(XMLSource, result, errorMessage);
|
||||
|
||||
TestEqual(TEXT("success read"), rootNode->ReadInt(TEXT("PurchaseOrder.PurchaseOrderNumber")), 0);
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.OrderDate")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].Type")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].Name-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrde-r.Address[0].Street")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address-[0].City")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0].State-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder-.Address[0].Zip")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[0]-.Country")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1]-.@Type")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder-.Address[1].Name")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].Stree-t")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1]-.City")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder-.Address[1].State")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1].Zip-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Address[1]-.Country")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder-.DeliveryNotes")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0].@PartNumber-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[0]-.ProductName")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items-.Item[0].Quantity")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[4].USPrice")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[-1].Comment")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[8].@PartNumber")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[99].ProductName")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[7].Quantity")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[555].USPrice")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), rootNode->ReadString(TEXT("PurchaseOrder.Items.Item[9999].ShipDate")), TEXT(""));
|
||||
}
|
||||
|
||||
{
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(XMLSource, result, errorMessage);
|
||||
|
||||
EEasyXMLParserFound retFound;
|
||||
auto AddressNodes = rootNode->ReadElements(TEXT("PurchaseOrder.Address"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
auto ItemNodes = rootNode->ReadElements(TEXT("PurchaseOrder.Items.Item"), retFound);
|
||||
TestTrue(TEXT("success read"), retFound == EEasyXMLParserFound::Found);
|
||||
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("@Type-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Name-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Street-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("City-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("State-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Zip-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[0]->ReadString(TEXT("Country-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("@Type-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Name-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Street-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("City-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("State-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Zip-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), AddressNodes[1]->ReadString(TEXT("Country-")), TEXT(""));
|
||||
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("@PartNumber-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("ProductName-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("Quantity-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("USPrice-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[0]->ReadString(TEXT("Comment-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("@PartNumber-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("ProductName-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("Quantity-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("USPrice-")), TEXT(""));
|
||||
TestEqual(TEXT("success read"), ItemNodes[1]->ReadString(TEXT("ShipDate-")), TEXT(""));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1,428 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "Misc/AutomationTest.h"
|
||||
#include "EasyXMLParseManager.h"
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReadValueTest_Int, "EasyXMLParser.ReadValueTest.Int", EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::SmokeFilter)
|
||||
|
||||
bool FReadValueTest_Int::RunTest(const FString& Parameters)
|
||||
{
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>\r")
|
||||
TEXT("<!-- comment desu -->\r")
|
||||
TEXT("<abc attr1=\"10\" attr2=\"false\">\r")
|
||||
TEXT("123\r")
|
||||
TEXT("</abc>\r")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
TestEqual(TEXT("success read int"), rootNode->ReadInt(TEXT("root.abc"), 0), 123);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("-123")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
TestEqual(TEXT("success read int"), rootNode->ReadInt(TEXT("root.abc"), 0), -123);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("123456789")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read int"), rootNode->ReadInt(TEXT("root.abc"), 0), 123456789);
|
||||
}
|
||||
|
||||
|
||||
// parse ng(string)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("text")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read int(string)"), rootNode->ReadInt(TEXT("root.abc"), 0), 0);
|
||||
}
|
||||
|
||||
// parse ng(float)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("3.14")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read int(float)"), rootNode->ReadInt(TEXT("root.abc"), 0), 0);
|
||||
}
|
||||
|
||||
// parse ng(xml)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("<def>")
|
||||
TEXT("123")
|
||||
TEXT("</def>")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read int(xml)"), rootNode->ReadInt(TEXT("root.abc"), 0), 0);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReadValueTest_Float, "EasyXMLParser.ReadValueTest.Float", EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::SmokeFilter)
|
||||
|
||||
bool FReadValueTest_Float::RunTest(const FString& Parameters)
|
||||
{
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("1.23")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read float"), rootNode->ReadFloat(TEXT("root.abc"), 0), 1.23f);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("-1.23")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read float"), rootNode->ReadFloat(TEXT("root.abc"), 0), -1.23f);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("123.456789")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read float"), rootNode->ReadFloat(TEXT("root.abc"), 0), 123.456789f);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("123")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read float"), rootNode->ReadFloat(TEXT("root.abc"), 0), 123.0f);
|
||||
}
|
||||
|
||||
|
||||
// parse ng(string)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("text")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read float(string)"), rootNode->ReadFloat(TEXT("root.abc"), 0), 0.0f);
|
||||
}
|
||||
|
||||
// parse ng(xml)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("<def>")
|
||||
TEXT("1.23")
|
||||
TEXT("</def>")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read float(xml)"), rootNode->ReadFloat(TEXT("root.abc"), 0), 0.0f);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReadValueTest_Bool, "EasyXMLParser.ReadValueTest.Bool", EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::SmokeFilter)
|
||||
|
||||
bool FReadValueTest_Bool::RunTest(const FString& Parameters)
|
||||
{
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("True")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read bool"), rootNode->ReadBool(TEXT("root.abc"), false), true);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("tRue")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read bool"), rootNode->ReadBool(TEXT("root.abc"), false), true);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("False")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read bool"), rootNode->ReadBool(TEXT("root.abc"), true), false);
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("fAlse")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read bool"), rootNode->ReadBool(TEXT("root.abc"), true), false);
|
||||
}
|
||||
|
||||
|
||||
// parse ng(string)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("text")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read bool(string)"), rootNode->ReadBool(TEXT("root.abc"), false), false);
|
||||
}
|
||||
|
||||
// parse ng(xml)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("<def>")
|
||||
TEXT("true")
|
||||
TEXT("</def>")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("ng read bool(xml)"), rootNode->ReadBool(TEXT("root.abc"), false), false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FReadValueTest_String, "EasyXMLParser.ReadValueTest.String", EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::SmokeFilter)
|
||||
|
||||
bool FReadValueTest_String::RunTest(const FString& Parameters)
|
||||
{
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("text")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read string"), rootNode->ReadString(TEXT("root.abc"), TEXT("")), TEXT("text"));
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("123")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read string"), rootNode->ReadString(TEXT("root.abc"), TEXT("")), TEXT("123"));
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("1.23")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read string"), rootNode->ReadString(TEXT("root.abc"), TEXT("")), TEXT("1.23"));
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("true")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read string"), rootNode->ReadString(TEXT("root.abc"), TEXT("")), TEXT("true"));
|
||||
}
|
||||
|
||||
// parse success
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("false")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
|
||||
TestEqual(TEXT("success read string"), rootNode->ReadString(TEXT("root.abc"), TEXT("")), TEXT("false"));
|
||||
}
|
||||
|
||||
// parse ng(xml)
|
||||
{
|
||||
FString xmlString = TEXT("<root>")
|
||||
TEXT("<abc>")
|
||||
TEXT("<def>")
|
||||
TEXT("text")
|
||||
TEXT("</def>")
|
||||
TEXT("</abc>")
|
||||
TEXT("</root>");
|
||||
|
||||
EEasyXMLParserErrorCode result;
|
||||
FString errorMessage;
|
||||
auto rootNode = UEasyXMLParseManager::LoadFromString(xmlString, result, errorMessage);
|
||||
|
||||
TestEqual(TEXT("success read string"), rootNode->ReadString(TEXT("root.abc"), TEXT("")), TEXT(""));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#include "CustomXMLParser.h"
|
||||
|
||||
#include "Misc/FeedbackContext.h"
|
||||
#include "EasyXMLElement.h"
|
||||
#include "EasyXMLAttribute.h"
|
||||
|
||||
CustomXMLParser::CustomXMLParser()
|
||||
{
|
||||
}
|
||||
|
||||
CustomXMLParser::~CustomXMLParser()
|
||||
{
|
||||
}
|
||||
|
||||
UEasyXMLElement *CustomXMLParser::Parse(FString xmlString, FString &ErrorMessage)
|
||||
{
|
||||
RootElement = NewObject<UEasyXMLElement>();
|
||||
XMLObjectStack.Emplace(RootElement);
|
||||
|
||||
FText _errorMessage;
|
||||
int32 _errorMessageNumber;
|
||||
|
||||
if (!FFastXml::ParseXmlFile(this, TEXT(""), &xmlString[0], nullptr, false, false, _errorMessage, _errorMessageNumber))
|
||||
{
|
||||
ErrorMessage = FString::Printf(TEXT("line=%d, %s"), _errorMessageNumber, *_errorMessage.ToString());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return RootElement;
|
||||
}
|
||||
|
||||
bool CustomXMLParser::ProcessXmlDeclaration(const TCHAR *ElementData, int32 XmlFileLineNumber)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CustomXMLParser::ProcessElement(const TCHAR *ElementName, const TCHAR *ElementData, int32 XmlFileLineNumber)
|
||||
{
|
||||
auto currentNode = XMLObjectStack.Num() > 0 ? XMLObjectStack.Last() : nullptr;
|
||||
|
||||
auto newNode = UEasyXMLElement::CreateElement(currentNode, ElementName, ElementData, XmlFileLineNumber);
|
||||
|
||||
if (currentNode)
|
||||
{
|
||||
currentNode->Children.Emplace(newNode);
|
||||
}
|
||||
|
||||
XMLObjectStack.Emplace(newNode);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CustomXMLParser::ProcessAttribute(const TCHAR *AttributeName, const TCHAR *AttributeValue)
|
||||
{
|
||||
auto currentNode = XMLObjectStack.Last();
|
||||
|
||||
if (!currentNode) return false;
|
||||
if (currentNode->Attributes.Contains(AttributeName)) return false;
|
||||
|
||||
auto newAttribute = UEasyXMLAttribute::CreateAttribute(currentNode, AttributeName, AttributeValue);
|
||||
currentNode->Attributes.Add(AttributeName, newAttribute);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CustomXMLParser::ProcessClose(const TCHAR *Element)
|
||||
{
|
||||
if (XMLObjectStack.Num() == 0) return false;
|
||||
|
||||
XMLObjectStack.RemoveAt(XMLObjectStack.Num() - 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CustomXMLParser::ProcessComment(const TCHAR *Comment)
|
||||
{
|
||||
if (XMLObjectStack.Num() == 0) return false;
|
||||
|
||||
XMLObjectStack.Last()->Comments.Emplace(Comment);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "FastXml.h"
|
||||
|
||||
class UEasyXMLElement;
|
||||
|
||||
class CustomXMLParser : public IFastXmlCallback
|
||||
{
|
||||
public:
|
||||
CustomXMLParser();
|
||||
virtual ~CustomXMLParser();
|
||||
|
||||
UEasyXMLElement* Parse(FString xmlString, FString& ErrorMessage);
|
||||
|
||||
/**
|
||||
* Called after the XML's header is parsed. This is usually the first call that you'll get back.
|
||||
*
|
||||
* @param ElementData Optional data for this element, nullptr if none
|
||||
* @param XmlFileLineNumber Line number in the XML file we're on
|
||||
*
|
||||
* @return You should return true to continue processing the file, or false to stop processing immediately.
|
||||
*/
|
||||
virtual bool ProcessXmlDeclaration(const TCHAR* ElementData, int32 XmlFileLineNumber) override;
|
||||
|
||||
/**
|
||||
* Called when a new XML element is encountered, starting a new scope. You'll receive a call to ProcessClose()
|
||||
* when this element's scope has ended.
|
||||
*
|
||||
* @param ElementName The name of the element
|
||||
* @param ElementData Optional data for this element, nullptr if none
|
||||
* @param XmlFileLineNumber The line number in the XML file we're on
|
||||
*
|
||||
* @return You should return true to continue processing the file, or false to stop processing immediately.
|
||||
*/
|
||||
virtual bool ProcessElement(const TCHAR* ElementName, const TCHAR* ElementData, int32 XmlFileLineNumber) override;
|
||||
|
||||
/**
|
||||
* Called when an XML attribute is encountered for the current scope's element.
|
||||
*
|
||||
* @param AttributeName The name of the attribute
|
||||
* @param AttributeValue The value of the attribute
|
||||
*
|
||||
* @return You should return true to continue processing the file, or false to stop processing immediately.
|
||||
*/
|
||||
virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override;
|
||||
|
||||
/**
|
||||
* Called when an element's scope ends in the XML file
|
||||
*
|
||||
* @param ElementName Name of the element whose scope closed
|
||||
*
|
||||
* @return You should return true to continue processing the file, or false to stop processing immediately.
|
||||
*/
|
||||
virtual bool ProcessClose(const TCHAR* Element) override;
|
||||
|
||||
/**
|
||||
* Called when a comment is encountered. This can happen pretty much anywhere in the file.
|
||||
*
|
||||
* @param Comment The comment text
|
||||
*/
|
||||
virtual bool ProcessComment(const TCHAR* Comment) override;
|
||||
|
||||
private:
|
||||
TArray<UEasyXMLElement*> XMLObjectStack;
|
||||
UEasyXMLElement* RootElement;
|
||||
};
|
||||
@@ -1,40 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Kismet/BlueprintAsyncActionBase.h"
|
||||
#include "UObject/NoExportTypes.h"
|
||||
#include "EasyXMLElement.h"
|
||||
#include "EasyXMLAsyncLoadFromFile.generated.h"
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEasyXMLAsyncLoadFromFile_Result, UEasyXMLElement*, XMLObject, FString, ErrorMessage);
|
||||
|
||||
|
||||
UCLASS()
|
||||
class EASYXMLPARSER_API UEasyXMLAsyncLoadFromFile : public UBlueprintAsyncActionBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FEasyXMLAsyncLoadFromFile_Result Successed;
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FEasyXMLAsyncLoadFromFile_Result Failed;
|
||||
|
||||
private:
|
||||
UPROPERTY(Transient)
|
||||
FString _XMLFile;
|
||||
UPROPERTY(Transient)
|
||||
bool _IsAblolute;
|
||||
|
||||
public:
|
||||
UEasyXMLAsyncLoadFromFile(const FObjectInitializer& ObjectInitializer);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "EasyXMLParser", meta = (WorldContext = "WorldContextObject", BlueprintInternalUseOnly = "true"))
|
||||
static UEasyXMLAsyncLoadFromFile * AsyncLoadFromFile(UObject * WorldContextObject, const FString& FilePath, bool IsAblolute);
|
||||
|
||||
|
||||
virtual void Activate() override;
|
||||
|
||||
};
|
||||
@@ -1,38 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Kismet/BlueprintAsyncActionBase.h"
|
||||
#include "UObject/NoExportTypes.h"
|
||||
#include "EasyXMLElement.h"
|
||||
#include "EasyXMLAsyncLoadFromString.generated.h"
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FEasyXMLAsyncLoadFromString_Result, UEasyXMLElement*, XMLObject, FString, ErrorMessage);
|
||||
|
||||
|
||||
UCLASS()
|
||||
class EASYXMLPARSER_API UEasyXMLAsyncLoadFromString : public UBlueprintAsyncActionBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FEasyXMLAsyncLoadFromString_Result Successed;
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FEasyXMLAsyncLoadFromString_Result Failed;
|
||||
|
||||
private:
|
||||
UPROPERTY(Transient)
|
||||
FString _XMLString;
|
||||
|
||||
public:
|
||||
UEasyXMLAsyncLoadFromString(const FObjectInitializer& ObjectInitializer);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "EasyXMLParser", meta = (WorldContext = "WorldContextObject", BlueprintInternalUseOnly = "true"))
|
||||
static UEasyXMLAsyncLoadFromString* AsyncLoadFromString(UObject * WorldContextObject, const FString& XMLString);
|
||||
|
||||
|
||||
virtual void Activate() override;
|
||||
|
||||
};
|
||||
@@ -1,18 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "EasyXMLObject.h"
|
||||
#include "EasyXMLAttribute.generated.h"
|
||||
|
||||
class UEasyXMLElement;
|
||||
|
||||
UCLASS(BlueprintType, Blueprintable)
|
||||
class EASYXMLPARSER_API UEasyXMLAttribute : public UEasyXMLObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
static UEasyXMLAttribute* CreateAttribute(UEasyXMLElement* ParentObject, FString Name, FString Value);
|
||||
|
||||
};
|
||||
@@ -1,62 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "EasyXMLObject.h"
|
||||
#include "EasyXMLParserEnums.h"
|
||||
#include "EasyXMLElement.generated.h"
|
||||
|
||||
class UEasyXMLAttribute;
|
||||
|
||||
UCLASS(BlueprintType, Blueprintable)
|
||||
class EASYXMLPARSER_API UEasyXMLElement : public UEasyXMLObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
static UEasyXMLElement* CreateElement(UEasyXMLObject* ParentObject, FString Tag, FString Content, int32 LineNumber);
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|ReadValue")
|
||||
int32 ReadInt(const FString& AccessString, int32 DefaultValue = 0);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|ReadValue")
|
||||
float ReadFloat(const FString& AccessString, float DefaultValue = 0.0f);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|ReadValue")
|
||||
FString ReadString(const FString& AccessString, const FString& DefaultValue = TEXT(""));
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|ReadValue")
|
||||
bool ReadBool(const FString& AccessString, bool DefaultValue = false);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "EasyXMLParser|ReadValue", meta = (ExpandEnumAsExecs = "Result"))
|
||||
UEasyXMLElement* ReadElement(const FString& AccessString, EEasyXMLParserFound& Result);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "EasyXMLParser|ReadValue", meta = (ExpandEnumAsExecs = "Result"))
|
||||
TArray<UEasyXMLElement*> ReadElements(const FString& AccessString, EEasyXMLParserFound& Result);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|Object", meta = (ExpandEnumAsExecs = "Result"))
|
||||
UEasyXMLAttribute* GetAttribute(const FString& AtrributeName, EEasyXMLParserFound& Result);
|
||||
|
||||
|
||||
public:
|
||||
UEasyXMLObject* ReadEasyXMLObject(const FString& AccessString);
|
||||
TArray<UEasyXMLElement*> GetElementsByTagName(const FString& TagName);
|
||||
bool IsContainAttributeKeys(const TArray<FString>& Keys, TArray<FString>& FoundAttributeKeys);
|
||||
|
||||
private:
|
||||
bool IsAccessAsArray(const FString& AccessName, FString& ElementName, int32& ArrayIndex);
|
||||
|
||||
|
||||
public:
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
int32 LineNumber = 0;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
TArray<UEasyXMLElement*> Children;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
TMap<FString, UEasyXMLAttribute*> Attributes;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
TArray<FString> Comments;
|
||||
};
|
||||
@@ -1,37 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "UObject/NoExportTypes.h"
|
||||
#include "EasyXMLObject.generated.h"
|
||||
|
||||
|
||||
UCLASS(BlueprintType, Blueprintable)
|
||||
class EASYXMLPARSER_API UEasyXMLObject : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|GetValue")
|
||||
int32 GetIntValue(int32 DefaultValue = 0);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|GetValue")
|
||||
float GetFloatValue(float DefaultValue = 0.0f);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|GetValue")
|
||||
FString GetStringValue(FString DefaultValue = TEXT(""));
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "EasyXMLParser|GetValue")
|
||||
bool GetBoolValue(bool DefaultValue = false);
|
||||
|
||||
public:
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
FString Name = TEXT("");
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
FString Value = TEXT("");
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "EasyXMLParser|Object")
|
||||
UEasyXMLObject* Parent = nullptr;
|
||||
|
||||
};
|
||||
@@ -1,36 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "UObject/NoExportTypes.h"
|
||||
#include "EasyXMLElement.h"
|
||||
#include "EasyXMLParserEnums.h"
|
||||
#include "EasyXMLParseManager.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS(BlueprintType, Blueprintable)
|
||||
class EASYXMLPARSER_API UEasyXMLParseManager : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* load xml file
|
||||
* @param FilePath - xml file path
|
||||
* @param IsAblolute - true:FilePath is absolute path, false:Relative path from "Content"
|
||||
* @return xml object
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category = "EasyXMLParser", meta = (ExpandEnumAsExecs = "Result"))
|
||||
static UEasyXMLElement* LoadFromFile(const FString& FilePath, bool IsAblolute, EEasyXMLParserErrorCode& Result, FString& ErrorMessage);
|
||||
|
||||
/**
|
||||
* load xml string
|
||||
* @param XMLString - xml file path
|
||||
* @return xml object
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category = "EasyXMLParser", meta = (ExpandEnumAsExecs = "Result"))
|
||||
static UEasyXMLElement* LoadFromString(const FString& XMLString, EEasyXMLParserErrorCode& Result, FString& ErrorMessage);
|
||||
|
||||
};
|
||||
@@ -1,15 +0,0 @@
|
||||
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Modules/ModuleManager.h"
|
||||
|
||||
class FEasyXMLParserModule : public IModuleInterface
|
||||
{
|
||||
public:
|
||||
|
||||
/** IModuleInterface implementation */
|
||||
virtual void StartupModule() override;
|
||||
virtual void ShutdownModule() override;
|
||||
};
|
||||
@@ -1,19 +0,0 @@
|
||||
// Copyright 2019 ayumax. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class EEasyXMLParserErrorCode : uint8
|
||||
{
|
||||
Successed,
|
||||
Failed
|
||||
};
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class EEasyXMLParserFound : uint8
|
||||
{
|
||||
Found,
|
||||
NotFound
|
||||
};
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"BuildId": "27405482",
|
||||
"Modules":
|
||||
{
|
||||
"JPrinter": "UnrealEditor-JPrinter.dll"
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"Version": 1,
|
||||
"VersionName": "1.0",
|
||||
"FriendlyName": "JPrinter",
|
||||
"Description": "Now you can print picture from unreal direcly!, you print from file or even print a texture, only for windows, soon mac ox",
|
||||
"Category": "Hardware",
|
||||
"CreatedBy": "ZKarmaKun",
|
||||
"CreatedByURL": "",
|
||||
"DocsURL": "",
|
||||
"MarketplaceURL": "",
|
||||
"SupportURL": "",
|
||||
"CanContainContent": false,
|
||||
"Installed": true,
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "JPrinter",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,69 +0,0 @@
|
||||
// Some copyright should be here...
|
||||
|
||||
using UnrealBuildTool;
|
||||
using System.IO;
|
||||
|
||||
public class JPrinter : ModuleRules
|
||||
{
|
||||
public JPrinter(ReadOnlyTargetRules Target): base( Target )
|
||||
{
|
||||
|
||||
PublicIncludePaths.AddRange(
|
||||
new string[] {
|
||||
"JPrinter/Public"
|
||||
|
||||
// ... add public include paths required here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
PrivateIncludePaths.AddRange(
|
||||
new string[] {
|
||||
"JPrinter/Private",
|
||||
|
||||
// ... add other private include paths required here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
PublicDependencyModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
"Core",
|
||||
|
||||
// ... add other public dependencies that you statically link with here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
PrivateDependencyModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
"CoreUObject",
|
||||
"Engine",
|
||||
"Slate",
|
||||
"SlateCore",
|
||||
"ImageWrapper",
|
||||
// ... add private dependencies that you statically link with here ...
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
DynamicallyLoadedModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
// ... add any modules that your module loads dynamically here ...
|
||||
}
|
||||
);
|
||||
|
||||
//string ModulePath = Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name));
|
||||
/*
|
||||
string ThirdParty = Path.GetFullPath(Path.Combine(ModuleDirectory, "../../ThirdParty/"));
|
||||
|
||||
string IncludePaths = Path.Combine(ThirdParty, "opencv", "include");
|
||||
string LibPath = Path.Combine(ThirdParty, "opencv", "lib");
|
||||
PublicIncludePaths.Add(IncludePaths);
|
||||
PublicAdditionalLibraries.Add(LibPath + "/opencv_world300.lib");
|
||||
PublicAdditionalLibraries.Add(LibPath + "/opencv_ts300.lib");*/
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
||||
#include "JPrinter.h"
|
||||
#include "JPrinterPrivatePCH.h"
|
||||
|
||||
#define LOCTEXT_NAMESPACE "FJPrinterModule"
|
||||
|
||||
void FJPrinterModule::StartupModule()
|
||||
{
|
||||
// This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
|
||||
|
||||
}
|
||||
|
||||
void FJPrinterModule::ShutdownModule()
|
||||
{
|
||||
// This function may be called during shutdown to clean up your module. For modules that support dynamic reloading,
|
||||
// we call this function before unloading the module.
|
||||
|
||||
}
|
||||
|
||||
#undef LOCTEXT_NAMESPACE
|
||||
|
||||
IMPLEMENT_MODULE(FJPrinterModule, JPrinter)
|
||||
@@ -1,266 +0,0 @@
|
||||
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
||||
#include "JPrinterBPLibrary.h"
|
||||
#include "JPrinterPrivatePCH.h"
|
||||
|
||||
#define print(txt) GEngine->AddOnScreenDebugMessage(-1,10,FColor::Green, txt)
|
||||
DEFINE_LOG_CATEGORY_STATIC(JPrinterLog, Log, All);
|
||||
|
||||
UJPrinterBPLibrary::UJPrinterBPLibrary(const FObjectInitializer& ObjectInitializer)
|
||||
: Super(ObjectInitializer)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
TArray<FString> UJPrinterBPLibrary::getPrinterList()
|
||||
{
|
||||
TArray<FString> out;
|
||||
#if PLATFORM_WINDOWS
|
||||
LPBYTE pPrinterEnum;
|
||||
unsigned long pcbNeeded, pcbReturned;
|
||||
PRINTER_INFO_2* printerInfo = NULL;
|
||||
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &pcbNeeded, &pcbReturned);
|
||||
|
||||
pPrinterEnum = new BYTE[pcbNeeded];
|
||||
if (EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, pPrinterEnum, pcbNeeded, &pcbNeeded, &pcbReturned))
|
||||
{
|
||||
printerInfo = ((PRINTER_INFO_2*)pPrinterEnum);
|
||||
for (unsigned short i = 0; i < pcbReturned; i++)
|
||||
{
|
||||
TCHAR* wname = printerInfo[i].pPrinterName;
|
||||
FString name = wname;
|
||||
out.Add(name);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return out;
|
||||
}
|
||||
|
||||
FString UJPrinterBPLibrary::getPrimaryPrinterName()
|
||||
{
|
||||
FString out;
|
||||
#if PLATFORM_WINDOWS
|
||||
unsigned long size = 0;
|
||||
GetDefaultPrinter(NULL, &size);
|
||||
if (size)
|
||||
{
|
||||
TCHAR* buffer = new TCHAR[size];
|
||||
GetDefaultPrinter(buffer, &size);
|
||||
out = buffer;
|
||||
}
|
||||
#endif
|
||||
return out;
|
||||
}
|
||||
|
||||
#if PLATFORM_WINDOWS
|
||||
printerInfo UJPrinterBPLibrary::getPrinterInfo(FString printer, bool usePrimary)
|
||||
{
|
||||
printerInfo out;
|
||||
unsigned long size = 0;
|
||||
LPWSTR defaultName = NULL;
|
||||
GetDefaultPrinter(NULL, &size);
|
||||
if (size)
|
||||
{
|
||||
TCHAR* buffer = new TCHAR[size];
|
||||
GetDefaultPrinter(buffer, &size);
|
||||
defaultName = buffer;
|
||||
}
|
||||
|
||||
if (defaultName)
|
||||
{
|
||||
out.deviceName = defaultName;
|
||||
LPBYTE pPrinterEnum;
|
||||
unsigned long pcbNeeded, pcbReturned;
|
||||
PRINTER_INFO_2* printerInfo = NULL;
|
||||
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &pcbNeeded, &pcbReturned);
|
||||
|
||||
pPrinterEnum = new BYTE[pcbNeeded];
|
||||
if (EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, pPrinterEnum, pcbNeeded, &pcbNeeded, &pcbReturned))
|
||||
{
|
||||
printerInfo = ((PRINTER_INFO_2*)pPrinterEnum);
|
||||
std::wstring wsdefaultName(defaultName);
|
||||
std::string sdefaultName(wsdefaultName.begin(), wsdefaultName.end());
|
||||
|
||||
for (unsigned int i = 0; i < pcbReturned; i++)
|
||||
{
|
||||
LPWSTR name = printerInfo[i].pPrinterName;
|
||||
std::wstring wsname(name);
|
||||
std::string sname(wsname.begin(), wsname.end());
|
||||
if (usePrimary)
|
||||
{
|
||||
if (sname == sdefaultName)
|
||||
{
|
||||
out.driver = printerInfo[i].pDriverName;
|
||||
out.portName = printerInfo[i].pPortName;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string choosen(TCHAR_TO_ANSI(*printer));
|
||||
if (sname == choosen)
|
||||
{
|
||||
out.driver = printerInfo[i].pDriverName;
|
||||
out.portName = printerInfo[i].pPortName;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
HBITMAP UJPrinterBPLibrary::getHBITMAPFromData(TArray<FColor>& bgraData, int32 width, int32 height, int32 bitDepth)
|
||||
{
|
||||
if (bgraData.Num() <= 0) return NULL;
|
||||
|
||||
uint8* rgb = new uint8[width * height * 3];
|
||||
for (int i = 0; i < (width * height); i++)
|
||||
{
|
||||
rgb[3 * i + 0] = bgraData[i].B;
|
||||
rgb[3 * i + 1] = bgraData[i].G;
|
||||
rgb[3 * i + 2] = bgraData[i].R;
|
||||
}
|
||||
// Create DIB
|
||||
HBITMAP hbmp = CreateBitmap(width, height, 1, 24, rgb);
|
||||
if (hbmp == NULL) {
|
||||
delete rgb;
|
||||
return hbmp;
|
||||
}
|
||||
delete rgb;
|
||||
return hbmp;
|
||||
}
|
||||
#endif
|
||||
|
||||
FString UJPrinterBPLibrary::Replace(FString source, FString in, FString out)
|
||||
{
|
||||
TArray<TCHAR> ar = source.GetCharArray();
|
||||
FString result;
|
||||
for (int i = 0; i < ar.Num(); i++)
|
||||
{
|
||||
if (ar[i] != in[0])
|
||||
{
|
||||
result += ar[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
result += out;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool UJPrinterBPLibrary::printImage(FString path, FString printer, bool usePrimary)
|
||||
{
|
||||
if (!FPaths::FileExists(path)) {
|
||||
UE_LOG(JPrinterLog, Log, TEXT("%s"), *path)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (usePrimary)
|
||||
{
|
||||
printer = getPrimaryPrinterName();
|
||||
}
|
||||
|
||||
path = "\"" + path + "\"";
|
||||
path = Replace(path, "/", "\\");
|
||||
FString args = " c:\\WINDOWS\\system32\\shimgvw.dll,ImageView_PrintTo /pt " + path + " \"" + printer + "\"";
|
||||
FString prg = "rundll32";
|
||||
UE_LOG(JPrinterLog, Log, TEXT("%s%s"), *prg,*args);
|
||||
int error=33; //= WinExec(TCHAR_TO_ANSI(*fullPath), SW_SHOW);
|
||||
FPlatformProcess::CreateProc(
|
||||
*prg,
|
||||
*args,
|
||||
false,//* @param bLaunchDetached if true, the new process will have its own window
|
||||
false,//* @param bLaunchHidded if true, the new process will be minimized in the task bar
|
||||
false,//* @param bLaunchReallyHidden if true, the new process will not have a window or be in the task bar
|
||||
0,
|
||||
0,
|
||||
nullptr,//const TCHAR* OptionalWorkingDirectory,
|
||||
nullptr
|
||||
);
|
||||
return (error == 33) ? true : false;
|
||||
}
|
||||
|
||||
bool UJPrinterBPLibrary::printTexture2D(UTexture2D* texture, FString printer, bool usePrimary, EPaperSize paperSize)
|
||||
{
|
||||
if (!texture) return false;
|
||||
|
||||
//const double DPIConvertion = 142.0643729189789;
|
||||
//const float DPIConvertion = 142.0643729189789f;
|
||||
const float DPIConvertion = 142.06437f;
|
||||
|
||||
bool out = false;
|
||||
int32 width = texture->GetSizeX();
|
||||
int32 height = texture->GetSizeY();
|
||||
int32 bitDepth = 24;
|
||||
TArray<FColor> colorData;
|
||||
colorData.Init(FColor(), width * height);
|
||||
FTexture2DMipMap& Mip = texture->PlatformData->Mips[0];
|
||||
uint8* Data = (uint8*)Mip.BulkData.Lock(LOCK_READ_WRITE);
|
||||
|
||||
for (int i = 0; i < colorData.Num(); i++)
|
||||
{
|
||||
colorData[i].R = Data[4 * i + 2];
|
||||
colorData[i].G = Data[4 * i + 1];
|
||||
colorData[i].B = Data[4 * i + 0];
|
||||
colorData[i].A = 255;
|
||||
}
|
||||
|
||||
Mip.BulkData.Unlock();
|
||||
texture->UpdateResource();
|
||||
|
||||
if (paperSize != EPaperSize::None)
|
||||
{
|
||||
|
||||
float scale = 1;
|
||||
switch (paperSize)
|
||||
{
|
||||
case EPaperSize::letter:
|
||||
if (width == 2969) break;
|
||||
scale = FMath::FloorToFloat((2969.f / width) * 100) / 100.f;
|
||||
break;
|
||||
case EPaperSize::photo:
|
||||
if (width == 1373) break;
|
||||
scale = FMath::FloorToFloat((1373.f / width) * 1000) / 1000.f;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (scale != 1)
|
||||
{
|
||||
TArray<FColor> fixColorData;
|
||||
FImageUtils::ImageResize(width, height, colorData, width * scale, height * scale, fixColorData, true);
|
||||
width = width * scale;
|
||||
height = height * scale;
|
||||
colorData = fixColorData;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#if PLATFORM_WINDOWS
|
||||
HWND currentWindow = GetActiveWindow();
|
||||
printerInfo dev = getPrinterInfo(printer, usePrimary);
|
||||
|
||||
HBITMAP hBMP = getHBITMAPFromData(colorData, width, height, bitDepth);
|
||||
//HBITMAP hBMP = (HBITMAP)LoadImage(NULL, L"D:/gokuHQ.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
|
||||
HDC printerHDC = CreateDC(dev.driver, dev.deviceName, dev.portName, NULL);
|
||||
if (printerHDC)
|
||||
{
|
||||
HDC hdc = CreateCompatibleDC(printerHDC);
|
||||
SelectObject(hdc, hBMP);
|
||||
Escape(printerHDC, STARTDOC, 8, "Happy-Doc", NULL);
|
||||
BitBlt(printerHDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY2);
|
||||
Escape(printerHDC, NEWFRAME, 0, NULL, NULL);
|
||||
Escape(printerHDC, ENDDOC, 0, NULL, NULL);
|
||||
|
||||
UE_LOG(JPrinterLog,Log, TEXT("Printing... wPX=%i hPX=%i"), width, height);
|
||||
|
||||
DeleteDC(printerHDC);
|
||||
out = true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return out;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "JPrinter.h"
|
||||
|
||||
// You should place include statements to your module's private header files here. You only need to
|
||||
// add includes for headers that are used in most of your module's source files though.
|
||||
@@ -1,14 +0,0 @@
|
||||
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Modules/ModuleManager.h"
|
||||
|
||||
class FJPrinterModule : public IModuleInterface
|
||||
{
|
||||
public:
|
||||
|
||||
/** IModuleInterface implementation */
|
||||
virtual void StartupModule() override;
|
||||
virtual void ShutdownModule() override;
|
||||
};
|
||||
@@ -1,69 +0,0 @@
|
||||
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
#if PLATFORM_WINDOWS
|
||||
#include "Windows/AllowWindowsPlatformTypes.h"
|
||||
#include "Windows.h"
|
||||
#include "winspool.h"
|
||||
#include "iostream"
|
||||
#include "time.h"
|
||||
#include "fstream"
|
||||
#include "string"
|
||||
#include "Windows/HideWindowsPlatformTypes.h"
|
||||
#endif
|
||||
#include "Engine.h"
|
||||
#include "ImageUtils.h"
|
||||
|
||||
//opencv
|
||||
//#include "opencv/cv.hpp"
|
||||
|
||||
#include "JPrinterBPLibrary.generated.h"
|
||||
|
||||
//using namespace cv;
|
||||
|
||||
#if PLATFORM_WINDOWS
|
||||
struct printerInfo
|
||||
{
|
||||
LPCWSTR portName;
|
||||
LPCWSTR driver;
|
||||
LPCWSTR deviceName;
|
||||
LPCWSTR output = NULL;
|
||||
};
|
||||
#define SRCCOPY2 (unsigned long)0x00CC0020
|
||||
#endif
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class EPaperSize : uint8
|
||||
{
|
||||
None UMETA(DisplayName = "None"),
|
||||
letter UMETA(DisplayName = "Letter 8 1/2 x 11 in"),
|
||||
photo UMETA(DisplayName = "Photo 4 x 6 in"),
|
||||
};
|
||||
|
||||
UCLASS()
|
||||
class UJPrinterBPLibrary : public UBlueprintFunctionLibrary
|
||||
{
|
||||
GENERATED_UCLASS_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintPure, Category = JPrinter)
|
||||
static TArray<FString> getPrinterList();
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = JPrinter)
|
||||
static FString getPrimaryPrinterName();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = JPrinter)
|
||||
static bool printImage(FString path, FString printer, bool usePrimary = true);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = JPrinter)
|
||||
static bool printTexture2D(UTexture2D* texture, FString printer, bool usePrimary, EPaperSize paperSize = EPaperSize::None);
|
||||
|
||||
|
||||
static FString Replace(FString source, FString in, FString out);
|
||||
|
||||
#if PLATFORM_WINDOWS
|
||||
static printerInfo getPrinterInfo(FString printer, bool usePrimary);
|
||||
static HBITMAP getHBITMAPFromData(TArray<FColor>& bgraData, int32 width, int32 height, int32 bitDepth);
|
||||
#endif
|
||||
|
||||
};
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user