Skip to content

Commit d405528

Browse files
committed
feat: new main menu to select singleplayer vs multiplayer
1 parent 2aab4f8 commit d405528

16 files changed

+319
-143
lines changed

unreal-cpp-net-fps/Config/DefaultEcsact.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ BuildReportFilter=None
55
+Recipes=rt_entt
66
+Recipes=async_reference
77
+Recipes=serialize_reference
8-
Runner=Asynchronous
8+
Runner=Custom
99
CustomRunnerClass=None
1010
bAutoCollectBlueprintRunnerSubsystems=True
1111
+RunnerSubsystems=/Game/EntityMass/BP_EcsactEntityMassSpawner.BP_EcsactEntityMassSpawner_C
1212
+RunnerSubsystems=/Game/Blueprints/BP_EcsactPlayerSpawner.BP_EcsactPlayerSpawner_C
13-
+RunnerSubsystems=/Game/Blueprints/AsyncConnectWidgetSubsystem.AsyncConnectWidgetSubsystem_C
13+
+RunnerSubsystems=/Game/Blueprints/LevelLoadEcsactSubsystem.LevelLoadEcsactSubsystem_C
1414

unreal-cpp-net-fps/Config/DefaultEngine.ini

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
[/Script/Engine.CollisionProfile]
2-
+Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True)
3-
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False)
4-
+EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore)))
5-
1+
[/Script/Engine.CollisionProfile]
2+
+Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True)
3+
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False)
4+
+EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore)))
5+
66
[/Script/EngineSettings.GameMapsSettings]
77
EditorStartupMap=/Game/Maps/MainMenu.MainMenu
88
LocalMapOptions=
Lines changed: 123 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,123 @@
1-
[ProjectSettings]
2-
ProjectID=(A=1823396784,B=1298598689,C=1743498150,D=-2048051708)
3-
ProjectName=First Person Template
4-
5-
[/Script/EngineSettings.GeneralProjectSettings]
6-
ProjectID=AD38773044D366CBA25701992316D728
7-
8-
[StartupActions]
9-
bAddPacks=True
10-
InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
11-
12-
[SectionsToSave]
13-
+Section=StartupActions
14-
15-
[/Script/UnrealEd.ProjectPackagingSettings]
16-
Build=IfProjectHasCode
17-
BuildConfiguration=PPBC_Development
18-
BuildTarget=
19-
FullRebuild=False
20-
ForDistribution=False
21-
IncludeDebugFiles=False
22-
BlueprintNativizationMethod=Disabled
23-
bIncludeNativizedAssetsInProjectGeneration=False
24-
bExcludeMonolithicEngineHeadersInNativizedCode=False
25-
UsePakFile=True
26-
bUseIoStore=True
27-
bUseZenStore=False
28-
bMakeBinaryConfig=False
29-
bGenerateChunks=False
30-
bGenerateNoChunks=False
31-
bChunkHardReferencesOnly=False
32-
bForceOneChunkPerFile=False
33-
MaxChunkSize=0
34-
bBuildHttpChunkInstallData=False
35-
HttpChunkInstallDataDirectory=(Path="")
36-
WriteBackMetadataToAssetRegistry=Disabled
37-
bWritePluginSizeSummaryJsons=False
38-
bCompressed=True
39-
PackageCompressionFormat=Oodle
40-
bForceUseProjectCompressionFormatIgnoreHardwareOverride=False
41-
PackageAdditionalCompressionOptions=
42-
PackageCompressionMethod=Kraken
43-
PackageCompressionLevel_DebugDevelopment=4
44-
PackageCompressionLevel_TestShipping=4
45-
PackageCompressionLevel_Distribution=7
46-
PackageCompressionMinBytesSaved=1024
47-
PackageCompressionMinPercentSaved=5
48-
bPackageCompressionEnableDDC=False
49-
PackageCompressionMinSizeToConsiderDDC=0
50-
HttpChunkInstallDataVersion=
51-
IncludePrerequisites=True
52-
IncludeAppLocalPrerequisites=False
53-
bShareMaterialShaderCode=True
54-
bDeterministicShaderCodeOrder=False
55-
bSharedMaterialNativeLibraries=True
56-
ApplocalPrerequisitesDirectory=(Path="")
57-
IncludeCrashReporter=False
58-
InternationalizationPreset=English
59-
-CulturesToStage=en
60-
+CulturesToStage=en
61-
LocalizationTargetCatchAllChunkId=0
62-
bCookAll=True
63-
bCookMapsOnly=False
64-
bSkipEditorContent=False
65-
bSkipMovies=False
66-
-IniKeyDenylist=KeyStorePassword
67-
-IniKeyDenylist=KeyPassword
68-
-IniKeyDenylist=rsa.privateexp
69-
-IniKeyDenylist=rsa.modulus
70-
-IniKeyDenylist=rsa.publicexp
71-
-IniKeyDenylist=aes.key
72-
-IniKeyDenylist=SigningPublicExponent
73-
-IniKeyDenylist=SigningModulus
74-
-IniKeyDenylist=SigningPrivateExponent
75-
-IniKeyDenylist=EncryptionKey
76-
-IniKeyDenylist=DevCenterUsername
77-
-IniKeyDenylist=DevCenterPassword
78-
-IniKeyDenylist=IOSTeamID
79-
-IniKeyDenylist=SigningCertificate
80-
-IniKeyDenylist=MobileProvision
81-
-IniKeyDenylist=IniKeyDenylist
82-
-IniKeyDenylist=IniSectionDenylist
83-
+IniKeyDenylist=KeyStorePassword
84-
+IniKeyDenylist=KeyPassword
85-
+IniKeyDenylist=rsa.privateexp
86-
+IniKeyDenylist=rsa.modulus
87-
+IniKeyDenylist=rsa.publicexp
88-
+IniKeyDenylist=aes.key
89-
+IniKeyDenylist=SigningPublicExponent
90-
+IniKeyDenylist=SigningModulus
91-
+IniKeyDenylist=SigningPrivateExponent
92-
+IniKeyDenylist=EncryptionKey
93-
+IniKeyDenylist=DevCenterUsername
94-
+IniKeyDenylist=DevCenterPassword
95-
+IniKeyDenylist=IOSTeamID
96-
+IniKeyDenylist=SigningCertificate
97-
+IniKeyDenylist=MobileProvision
98-
+IniKeyDenylist=IniKeyDenylist
99-
+IniKeyDenylist=IniSectionDenylist
100-
-IniSectionDenylist=HordeStorageServers
101-
-IniSectionDenylist=StorageServers
102-
+IniSectionDenylist=HordeStorageServers
103-
+IniSectionDenylist=StorageServers
104-
+MapsToCook=(FilePath="EcsactMass")
105-
+MapsToCook=(FilePath="MainMenu")
106-
bRetainStagedDirectory=False
107-
CustomStageCopyHandler=
108-
109-
[/Script/Engine.AssetManagerSettings]
110-
-PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass=/Script/Engine.World,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
111-
-PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass=/Script/Engine.PrimaryAssetLabel,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
112-
+PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass="/Script/Engine.World",bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
113-
+PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass="/Script/Engine.PrimaryAssetLabel",bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
114-
+PrimaryAssetTypesToScan=(PrimaryAssetType="AsyncConnect",AssetBaseClass="/Game/Blueprints/AsyncConnectWidgetSubsystem.AsyncConnectWidgetSubsystem_C",bHasBlueprintClasses=True,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
115-
+PrimaryAssetTypesToScan=(PrimaryAssetType="MassSpawner",AssetBaseClass="/Game/EntityMass/BP_EcsactEntityMassSpawner.BP_EcsactEntityMassSpawner_C",bHasBlueprintClasses=True,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
116-
+PrimaryAssetTypesToScan=(PrimaryAssetType="PlayerSpawner",AssetBaseClass="/Game/Blueprints/BP_EcsactPlayerSpawner.BP_EcsactPlayerSpawner_C",bHasBlueprintClasses=True,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
117-
bOnlyCookProductionAssets=False
118-
bShouldManagerDetermineTypeAndName=False
119-
bShouldGuessTypeAndNameInEditor=True
120-
bShouldAcquireMissingChunksOnLoad=False
121-
bShouldWarnAboutInvalidAssets=True
122-
MetaDataTagsForAssetRegistry=()
123-
1+
[ProjectSettings]
2+
ProjectID=(A=1823396784,B=1298598689,C=1743498150,D=-2048051708)
3+
ProjectName=First Person Template
4+
5+
[/Script/EngineSettings.GeneralProjectSettings]
6+
ProjectID=AD38773044D366CBA25701992316D728
7+
8+
[StartupActions]
9+
bAddPacks=True
10+
InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
11+
12+
[SectionsToSave]
13+
+Section=StartupActions
14+
15+
[/Script/UnrealEd.ProjectPackagingSettings]
16+
Build=IfProjectHasCode
17+
BuildConfiguration=PPBC_Development
18+
BuildTarget=
19+
FullRebuild=False
20+
ForDistribution=False
21+
IncludeDebugFiles=False
22+
BlueprintNativizationMethod=Disabled
23+
bIncludeNativizedAssetsInProjectGeneration=False
24+
bExcludeMonolithicEngineHeadersInNativizedCode=False
25+
UsePakFile=True
26+
bUseIoStore=True
27+
bUseZenStore=False
28+
bMakeBinaryConfig=False
29+
bGenerateChunks=False
30+
bGenerateNoChunks=False
31+
bChunkHardReferencesOnly=False
32+
bForceOneChunkPerFile=False
33+
MaxChunkSize=0
34+
bBuildHttpChunkInstallData=False
35+
HttpChunkInstallDataDirectory=(Path="")
36+
WriteBackMetadataToAssetRegistry=Disabled
37+
bWritePluginSizeSummaryJsons=False
38+
bCompressed=True
39+
PackageCompressionFormat=Oodle
40+
bForceUseProjectCompressionFormatIgnoreHardwareOverride=False
41+
PackageAdditionalCompressionOptions=
42+
PackageCompressionMethod=Kraken
43+
PackageCompressionLevel_DebugDevelopment=4
44+
PackageCompressionLevel_TestShipping=4
45+
PackageCompressionLevel_Distribution=7
46+
PackageCompressionMinBytesSaved=1024
47+
PackageCompressionMinPercentSaved=5
48+
bPackageCompressionEnableDDC=False
49+
PackageCompressionMinSizeToConsiderDDC=0
50+
HttpChunkInstallDataVersion=
51+
IncludePrerequisites=True
52+
IncludeAppLocalPrerequisites=False
53+
bShareMaterialShaderCode=True
54+
bDeterministicShaderCodeOrder=False
55+
bSharedMaterialNativeLibraries=True
56+
ApplocalPrerequisitesDirectory=(Path="")
57+
IncludeCrashReporter=False
58+
InternationalizationPreset=English
59+
-CulturesToStage=en
60+
+CulturesToStage=en
61+
LocalizationTargetCatchAllChunkId=0
62+
bCookAll=True
63+
bCookMapsOnly=False
64+
bSkipEditorContent=False
65+
bSkipMovies=False
66+
-IniKeyDenylist=KeyStorePassword
67+
-IniKeyDenylist=KeyPassword
68+
-IniKeyDenylist=rsa.privateexp
69+
-IniKeyDenylist=rsa.modulus
70+
-IniKeyDenylist=rsa.publicexp
71+
-IniKeyDenylist=aes.key
72+
-IniKeyDenylist=SigningPublicExponent
73+
-IniKeyDenylist=SigningModulus
74+
-IniKeyDenylist=SigningPrivateExponent
75+
-IniKeyDenylist=EncryptionKey
76+
-IniKeyDenylist=DevCenterUsername
77+
-IniKeyDenylist=DevCenterPassword
78+
-IniKeyDenylist=IOSTeamID
79+
-IniKeyDenylist=SigningCertificate
80+
-IniKeyDenylist=MobileProvision
81+
-IniKeyDenylist=IniKeyDenylist
82+
-IniKeyDenylist=IniSectionDenylist
83+
+IniKeyDenylist=KeyStorePassword
84+
+IniKeyDenylist=KeyPassword
85+
+IniKeyDenylist=rsa.privateexp
86+
+IniKeyDenylist=rsa.modulus
87+
+IniKeyDenylist=rsa.publicexp
88+
+IniKeyDenylist=aes.key
89+
+IniKeyDenylist=SigningPublicExponent
90+
+IniKeyDenylist=SigningModulus
91+
+IniKeyDenylist=SigningPrivateExponent
92+
+IniKeyDenylist=EncryptionKey
93+
+IniKeyDenylist=DevCenterUsername
94+
+IniKeyDenylist=DevCenterPassword
95+
+IniKeyDenylist=IOSTeamID
96+
+IniKeyDenylist=SigningCertificate
97+
+IniKeyDenylist=MobileProvision
98+
+IniKeyDenylist=IniKeyDenylist
99+
+IniKeyDenylist=IniSectionDenylist
100+
-IniSectionDenylist=HordeStorageServers
101+
-IniSectionDenylist=StorageServers
102+
+IniSectionDenylist=HordeStorageServers
103+
+IniSectionDenylist=StorageServers
104+
+MapsToCook=(FilePath="EcsactMass")
105+
+MapsToCook=(FilePath="MultiplayerMenu")
106+
bRetainStagedDirectory=False
107+
CustomStageCopyHandler=
108+
109+
[/Script/Engine.AssetManagerSettings]
110+
-PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass=/Script/Engine.World,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
111+
-PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass=/Script/Engine.PrimaryAssetLabel,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
112+
+PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass="/Script/Engine.World",bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
113+
+PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass="/Script/Engine.PrimaryAssetLabel",bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
114+
+PrimaryAssetTypesToScan=(PrimaryAssetType="AsyncConnect",AssetBaseClass="/Game/Blueprints/LevelLoadEcsactSubsystem.LevelLoadEcsactSubsystem_C",bHasBlueprintClasses=True,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
115+
+PrimaryAssetTypesToScan=(PrimaryAssetType="MassSpawner",AssetBaseClass="/Game/EntityMass/BP_EcsactEntityMassSpawner.BP_EcsactEntityMassSpawner_C",bHasBlueprintClasses=True,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
116+
+PrimaryAssetTypesToScan=(PrimaryAssetType="PlayerSpawner",AssetBaseClass="/Game/Blueprints/BP_EcsactPlayerSpawner.BP_EcsactPlayerSpawner_C",bHasBlueprintClasses=True,bIsEditorOnly=False,Directories=,SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown))
117+
bOnlyCookProductionAssets=False
118+
bShouldManagerDetermineTypeAndName=False
119+
bShouldGuessTypeAndNameInEditor=True
120+
bShouldAcquireMissingChunksOnLoad=False
121+
bShouldWarnAboutInvalidAssets=True
122+
MetaDataTagsForAssetRegistry=()
123+
Binary file not shown.
Binary file not shown.
26.3 KB
Binary file not shown.
Binary file not shown.
-63.7 KB
Binary file not shown.
136 KB
Binary file not shown.

unreal-cpp-net-fps/Source/EcsactUnrealFps/EcsactEntityMassSpawner.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,12 @@ auto UEcsactEntityMassSpawner::IsStreamingEntities( //
4444
) -> bool {
4545
auto world = WorldContext->GetWorld();
4646
check(world);
47-
auto runner = EcsactUnrealExecution::Runner(world);
48-
checkSlow(runner.IsValid());
49-
for(auto subsystem : runner->GetSubsystemArray<ThisClass>()) {
50-
if(subsystem) {
51-
return subsystem->StreamEntities;
47+
auto runner = EcsactUnrealExecution::Runner(world).Get();
48+
if(runner) {
49+
for(auto subsystem : runner->GetSubsystemArray<ThisClass>()) {
50+
if(subsystem) {
51+
return subsystem->StreamEntities;
52+
}
5253
}
5354
}
5455

0 commit comments

Comments
 (0)