Merge branch 'stabilization/2106' into mbalfour/gitflow_210622

# Conflicts:
#	Code/Framework/AzQtComponents/AzQtComponents/Components/Style.cpp
#	Code/Framework/AzToolsFramework/AzToolsFramework/Viewport/ViewportMessages.h
#	Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp
This commit is contained in:
mbalfour
2021-06-22 12:55:18 -05:00
184 changed files with 17071 additions and 1103 deletions
@@ -63,10 +63,10 @@ namespace Multiplayer
//! @}
NetEntityId GetNetEntityId() const;
bool IsAuthority() const;
bool IsAutonomous() const;
bool IsServer() const;
bool IsClient() const;
bool IsNetEntityRoleAuthority() const;
bool IsNetEntityRoleAutonomous() const;
bool IsNetEntityRoleServer() const;
bool IsNetEntityRoleClient() const;
ConstNetworkEntityHandle GetEntityHandle() const;
NetworkEntityHandle GetEntityHandle();
void MarkDirty();
@@ -64,10 +64,23 @@ namespace Multiplayer
//! @}
NetEntityRole GetNetEntityRole() const;
bool IsAuthority() const;
bool IsAutonomous() const;
bool IsServer() const;
bool IsClient() const;
//! IsNetEntityRoleAuthority
//! @return true if this network entity is an authoritative proxy on a server (full authority); otherwise false.
bool IsNetEntityRoleAuthority() const;
//! IsNetEntityRoleAutonomous
//! @return true if this network entity is an autonomous proxy on a client (can execute local prediction) or if this network entity is an authoritative proxy on a server but has autonomous privileges (ie: a host who is also a player); otherwise false.
bool IsNetEntityRoleAutonomous() const;
//! IsNetEntityRoleServer
//! @return true if this network entity is a simulated proxy on a server (ie: a different server may have authority for this entity, but the entity has been replicated on this server; otherwise false.
bool IsNetEntityRoleServer() const;
//! IsNetEntityRoleClient
//! @return true if this network entity is a simulated proxy on a client; otherwise false.
bool IsNetEntityRoleClient() const;
bool HasController() const;
NetEntityId GetNetEntityId() const;
const PrefabEntityId& GetPrefabEntityId() const;
@@ -30,13 +30,13 @@ namespace Multiplayer
//! Collection of types of Multiplayer Connections
enum class MultiplayerAgentType
{
Uninitialized, ///< Agent is uninitialized.
Client, ///< A Client connected to either a server or host.
ClientServer, ///< A Client that also hosts and is the authority of the session
DedicatedServer ///< A Dedicated Server which does not locally host any clients
Uninitialized, //!< Agent is uninitialized.
Client, //!< A Client connected to either a server or host.
ClientServer, //!< A Client that also hosts and is the authority of the session
DedicatedServer //!< A Dedicated Server which does not locally host any clients
};
//! Payload detailing aspects of a Connection other services may be interested in
//! @brief Payload detailing aspects of a Connection other services may be interested in
struct MultiplayerAgentDatum
{
bool m_isInvited;
@@ -50,7 +50,22 @@ namespace Multiplayer
using SessionInitEvent = AZ::Event<AzNetworking::INetworkInterface*>;
using SessionShutdownEvent = AZ::Event<AzNetworking::INetworkInterface*>;
//! IMultiplayer provides insight into the Multiplayer session and its Agents
//! @class IMultiplayer
//! @brief IMultiplayer provides insight into the Multiplayer session and its Agents
//!
//! IMultiplayer is an AZ::Interface<T> that provides applications access to
//! multiplayer session information and events. IMultiplayer is implemented on the
//! MultiplayerSystemComponent and is used to define and access information about
//! the type of session and the role held by the current agent. An Agent is defined
//! here as an actor in a session. Types of Agents included by default are a Client,
//! a Client Server and a Dedicated Server.
//!
//! IMultiplayer also provides events to allow developers to receive and respond to
//! notifications relating to the session. These include Session Init and Shutdown
//! and on acquisition of a new connection. These events are only fired on Client
//! Server or Dedicated Server. These events are useful for services that talk to
//! matchmaking services that may run in an entirely different layer which may need
//! insight to the gameplay session.
class IMultiplayer
{
public:
@@ -16,7 +16,11 @@
namespace Multiplayer
{
//! IMultiplayer provides insight into the Multiplayer session and its Agents
//! @class IMultiplayerTools
//! @brief IMultiplayerTools provides interfacing between the Editor and Multiplayer Gem.
//!
//! IMultiplayerTools is an AZ::Interface<T> that provides information about
//! O3DE Editor and Tools integrations with the Multiplayer Gem.
class IMultiplayerTools
{
public:
@@ -27,8 +31,8 @@ namespace Multiplayer
virtual ~IMultiplayerTools() = default;
//! Returns if network prefab processing has created currently active or pending spawnables
//! @return If network prefab processing has created currently active or pending spawnables
//! @brief Whether or not network prefab processing has created active or pending spawnable prefabs.
//! @return `true` if network prefab processing has created currently active or pending spawnables.
virtual bool DidProcessNetworkPrefabs() = 0;
private: