Enabled multi-entities player prefabs. Added updating replication set for hierarchy children. PR feedback addressing

Signed-off-by: pereslav <pereslav@amazon.com>
This commit is contained in:
pereslav
2021-10-07 00:38:07 +01:00
parent 801e54c599
commit a58325e691
10 changed files with 69 additions and 134 deletions
@@ -29,6 +29,8 @@ namespace Multiplayer
, public NetworkHierarchyRequestBus::Handler
{
friend class NetworkHierarchyChildComponent;
friend class NetworkHierarchyRootComponentController;
friend class ServerToClientReplicationWindow;
public:
AZ_MULTIPLAYER_COMPONENT(Multiplayer::NetworkHierarchyRootComponent, s_networkHierarchyRootComponentConcreteUuid, Multiplayer::NetworkHierarchyRootComponentBase);
@@ -57,8 +59,6 @@ namespace Multiplayer
void BindNetworkHierarchyLeaveEventHandler(NetworkHierarchyLeaveEvent::Handler& handler) override;
//! @}
const AZStd::vector<AZ::Entity*>& GetHierarchicalEntitiesRef() const;
protected:
void SetTopLevelHierarchyRootEntity(AZ::Entity* hierarchyRoot);
@@ -103,7 +103,7 @@ namespace Multiplayer
};
//! NetworkCharacterComponentController
//! NetworkHierarchyRootComponentController
//! This is the network controller for NetworkHierarchyRootComponent.
//! Class provides the ability to process input for hierarchies.
class NetworkHierarchyRootComponentController
@@ -29,7 +29,6 @@ namespace Multiplayer
friend class NetworkInputMigrationVector;
friend class NetworkInputHistory;
friend class NetworkInputChild;
friend class NetworkSubInput;
NetworkInput(const NetworkInput&);
NetworkInput& operator= (const NetworkInput&);
@@ -81,28 +80,4 @@ namespace Multiplayer
ConstNetworkEntityHandle m_owner;
bool m_wasAttached = false;
};
// Used by the NetworkHierarchyRootComponent. This component allows the gameplay programmer to specify dependent entities
// Since it is possible to for the Client/Server to disagree about the state of related entities, this input encodes the entity that
// is associated with it.
class NetworkSubInput final
{
public:
NetworkSubInput() = default;
NetworkSubInput(const NetworkSubInput&) = default;
NetworkSubInput(const ConstNetworkEntityHandle& entityHandle);
NetworkSubInput& operator=(const NetworkSubInput&) = default;
void Attach(const ConstNetworkEntityHandle& entityHandle);
const ConstNetworkEntityHandle& GetOwner() const;
NetworkInput& GetNetworkInput();
const NetworkInput& GetNetworkInput() const;
bool Serialize(AzNetworking::ISerializer& serializer);
private:
ConstNetworkEntityHandle m_owner;
NetworkInput m_networkInput;
};
}