Initial commit

This commit is contained in:
alexpete
2021-03-05 11:26:34 -08:00
commit a10351f38d
27091 changed files with 5521199 additions and 0 deletions
@@ -0,0 +1,22 @@
@startuml Interest Manager Update
title Interest Manager Update Logic
[-> InterestManager : Init
[-> ReplicaManager : SetAutoBroadcast to false
loop for each rule handler
InterestManager -> BaseRulesHandler : Update
end
loop for each rule handler
InterestManager -> BaseRulesHandler : GetLastResult
InterestManager <- BaseRulesHandler : InterestMatchResult
InterestManager -> InterestManager : process matches
InterestManager -> ReplicaManager : OnReplicaChanged
note right: if a replica list \nof peers have changed
ReplicaManager -> ReplicaManager : Marshal
note right: removes or adds replicas\nfrom peers as necessary
end
@enduml
@@ -0,0 +1,40 @@
@startuml Interest Manager in GridMate
title Interest Manager in GridMate
class "InterestManager" as IM {
Init()
IsReady()
RegisterHandler(BaseRulesHandler*)
UnregisterHandler(BaseRulesHandler*)
Update()
GetReplicaManager()
}
object "InterestManagerComponent" as IMC
object "ProximityInterestHandler" as PIH {
CreateRule()
CreateAttribute()
}
object "BitmaskInterestHandler" as BIH {
CreateRule()
CreateAttribute()
}
IMC *-- IM : contains
interface "BaseRulesHandler" as BRH {
Update()
GetLastResult()
OnRulesHandlerRegistered()
OnRulesHandlerUnregistered()
GetManager()
}
IM *-- PIH : contains
IM *-- BIH : contains
BIH <|.. BRH : implements
PIH <|.. BRH : implements
@enduml
@@ -0,0 +1,17 @@
@startuml Interest Manager high level
package Client {
[Peer] - [Rules]
package Entity {
[Replica] - [Attributes]
}
}
package Authority {
[RuleHandlers] - [InterestManager]
}
[Rules] - [InterestManager]
@enduml
@@ -0,0 +1,21 @@
@startuml Marking Level Entities
[-> CLevelSystem: LoadLevel
loop over all Level Entities
CLevelSystem -> NetBindingSystemImpl:OnEntityContextLoadedFromStream
NetBindingSystemImpl -> NetBindingComponent:MarkAsLevelSliceEntity
note left: if it has NetBindingComponent
NetBindingSystemImpl -> GameEntityContextRequestBus:MarkEntityForNoActivation
NetBindingSystemImpl -> NetBindingSystemImpl:add internal bind request
end
[-> NetBindingSystemImpl:OnTick
NetBindingSystemImpl -> NetBindingSystemImpl:ProcessBindRequests
loop over all bind requests
NetBindingSystemImpl -> NetBindingSystemImpl:BindAndActivate
NetBindingSystemImpl -> NetBindingComponent:BindToNetwork
NetBindingSystemImpl -> Entity:Activate
end
@enduml
@@ -0,0 +1,13 @@
@startuml New replica proxy created on client
CSystem -> Network: SyncWithGame
Network -> ReplicaManager: Unmarshal
ReplicaManager -> ReplicaManager: RegisterReplica
ReplicaManager -> Replica: OnActivate
Replica -> NetBindingComponentChunk: OnReplicaActive
NetBindingComponentChunk -> NetBindingSystemBus: SpawnEntityFromSlice
note left: if proxy,\nthen either spawns \nfrom a slice or stream
NetBindingComponentChunk -> NetBindingSystemBus: SpawnEntityFromStream
@enduml
@@ -0,0 +1,21 @@
@startuml Spawn Entity from Slice
title How GridMate spawns an entity from a dynamic slice
hide footbox
"NetBinding\nComponentChunk" -> NetBindingSystemImpl: SpawnEntityFromSlice
NetBindingSystemImpl -> "NetBindingSlice\nInstantiationHandler"
NetBindingSystemImpl -> NetBindingSystemImpl : adds to m_bindRequests
[-> NetBindingSystemImpl: OnTick
NetBindingSystemImpl -> NetBindingSystemImpl: ProcessBindRequests
loop over all in m_bindRequests
NetBindingSystemImpl -> "NetBindingSlice\nInstantiationHandler" : InstantiateEntities
NetBindingSystemImpl -> NetBindingSystemImpl : BindAndActivate
NetBindingSystemImpl -> NetBindingComponent : BindToNetwork
NetBindingSystemImpl -> Entity : Activate
end
@enduml
@@ -0,0 +1,14 @@
@startuml GridMate Spawning Entity from Stream
entity OnTick
"NetBinding\nComponentChunk" -> NetBindingSystemImpl: SpawnEntityFromStream
NetBindingSystemImpl -> "NetBindingSlice\nInstantiationHandler"
NetBindingSystemImpl -> NetBindingSystemImpl : adds to m_spawnRequests
OnTick -> NetBindingSystemImpl: ProcessBindRequests
note right: m_spawnRequests
NetBindingSystemImpl -> "NetBindingSlice\nInstantiationHandler" : InstantiateEntities
NetBindingSystemImpl -> NetBindingSystemImpl : BindAndActivate
@enduml