public static NetPlayerConnectedMessage Create(HoloNetPlayer newPlayer) { var obj = HoloNetAppModule.instance.objectPool.Pop <NetPlayerConnectedMessage>(); obj.player = newPlayer; return(obj); }
public void LocalInit(HoloNetObjectId oid, int pid, HoloNetPlayer owner) { this.oid = oid; this.pid = pid; this.owner = owner; Debug.Log($"[HOLONET] HNO - initializing new HNO {gameObject.name}"); PopulateNetComponents(); }
public void SendMessage(HoloNetMessage message, HoloNetPlayer player, bool isReliable) { var photonPlayer = (PhotonHoloNetPlayer)player; SendInternal(message, isReliable, new RaiseEventOptions { TargetActors = new[] { photonPlayer.photonPlayer.ActorNumber } } ); }
public void SetState(HoloNetObjectState state) { oid = state.oid; pid = state.pid; owner = HoloNetPlayer.FindPlayer(state.ownerId); foreach (var componentState in state.componentStates) { //TODO add cache for observables var observable = _observables.FirstOrDefault(o => o.id == componentState.componentId); observable?.stateSyncable?.ApplySyncState(componentState); } }
public void SendStateToNewPlayer(HoloNetPlayer holonetPlayer) { if (!HoloNetPlayer.Local.isServer) { return; } Debug.Log("[HOLONET] - Sending Object State Snapshot."); HoloNetAppModule.instance.provider.SendMessage( StateSyncMessage.Create( PackAllStates()), holonetPlayer, true); }
public void SendMessage(HoloNetMessage message, HoloNetPlayer player, bool isReliable) { Debug.Log($"[HOLONET] Messaging - Sending message {message.GetType().Name}"); message.sendTime = HoloNetAppModule.instance.provider.GetServerTime(); if (player.isLocal) { ApplyMessage(message); } else { HoloNetAppModule.instance.provider.SendMessage(message, player, isReliable); HoloNetAppModule.instance.objectPool.Push(message); } }
public HoloNetObject SpawnObjectLocal(HoloNetObjectId oid, int prefabId, int ownerId, Vector3 position = new Vector3(), Quaternion rotation = new Quaternion()) { var prefab = GetPrefabById(prefabId); var result = Object.Instantiate(prefab, position, rotation).GetComponent <HoloNetObject>(); result.transform.position = position; result.transform.rotation = rotation; RegisterObject(oid, result); result.LocalInit(oid, prefabId, HoloNetPlayer.FindPlayer(ownerId)); return(result); }
public static void SendUnreliable(HoloNetGlobalMessage message, HoloNetPlayer player) { HoloNetAppModule.instance.messenger.SendMessage(message, player, false); }
public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { return(HoloNetPlayer.FindPlayer(info.GetInt32("uniqueId"))); }
public void ChangeOwnership(HoloNetPlayer newOwner) { SendReliable(HoloNetObjectTransferOwnershipMessage.Create(newOwner.uniqueId)); }
public void SendUnreliable(HoloNetObjectMessage message, HoloNetPlayer player) { message.receiverId = oid; HoloNetAppModule.instance.messenger.SendMessage(message, player, false); }
public void OnOwnershipTransfered(HoloNetObjectTransferOwnershipMessage msg) { owner = HoloNetPlayer.FindPlayerByUniqueId(msg.newOwnerUniqueId); }
public IEnumerable <HoloNetObject> FindAllObjectsAuthoredBy(HoloNetPlayer author) { return(_netObjects.Values.Where(hno => hno.oid.authorId == author.uniqueId)); }