protected virtual void CaptureObjects(NetworkObject pObj)
        {
            if (pObj.CreateCode < 0)
            {
                return;
            }

            MainThreadManager.Run(() => {
                NetworkBehavior newObj = null;
                if (!NetworkBehavior.skipAttachIds.TryGetValue(pObj.NetworkId, out newObj))
                {
                    GameObject templateObj = _networkBehaviorListSO.behaviorList.GetByCreateCode(pObj.CreateCode);
                    if (templateObj != null)
                    {
                        var go = Instantiate(templateObj);
                        newObj = go.GetComponent <NetworkBehavior>();
                    }
                }

                if (newObj == null)
                {
                    return;
                }

                SetINetworkSceneObject(newObj, pObj);
                newObj.Initialize(pObj);
                if (OnObjectInitialized != null)
                {
                    OnObjectInitialized(newObj, pObj);
                }
            });
        }
        public virtual void AddPendingObject(GameObject pGameObject)
        {
            if (pGameObject.scene.name != gameObject.scene.name)
            {
                return;
            }

            NetworkBehavior behavior = pGameObject.GetComponent <NetworkBehavior>();

            if (behavior == null)
            {
                return;
            }

            INetworkSceneObject networkSceneObject = behavior as INetworkSceneObject;

            if (networkSceneObject == null)
            {
                return;
            }

            uint networkId = networkSceneObject.GetNetworkId();

            if (_pendingObjects.ContainsKey(networkId))
            {
                return;
            }

            _pendingObjects.Add(networkId, behavior);
        }
 private void PlayerEntityModelBehavior_networkStarted(NetworkBehavior behavior)
 {
     PlayerEntity = behavior.GetComponent <PlayerEntity>();
     PlayerEntity.InitializePlayerEntity(this,
                                         CurrentUserInfo,
                                         CameraOnDestination);
 }
Exemple #4
0
    static void LoadItems()
    {
        NetworkBehavior.LoadNetworks(user_app_path);
        procedural_settings = new ProceduralScript("procedural.txt");
        physical_settings   = new ProceduralScript("physical.txt");
        Debug.Log("Calling LoadHardwareTypes");
        CatalogBehavior.LoadHardwareTypes();
        CatalogBehavior.LoadCatalog(user_app_path);
        OrganizationScript.LoadOrganization();
        GameObject      ws        = GameObject.Find("WorkSpace");
        WorkSpaceScript ws_script = (WorkSpaceScript)ws.GetComponent(typeof(WorkSpaceScript));

        WorkSpaceScript.LoadWorkSpace();
        dac_groups = new DACGroups();
        UserBehavior.LoadUsers();
        AssetBehavior.LoadAssets();
        ComputerBehavior.LoadAllComputers();
        DeviceBehavior.LoadDevices(user_app_path);
        ITStaffBehavior.LoadStaffFromFile();
        ZoneBehavior.LoadZones();
        ObjectivesBehavior.LoadObjectives();

        //UserBehavior.UpdateStatus();
        //LoadMainOffice();
    }
Exemple #5
0
        private void _thisTower_networkStarted(NetworkBehavior behavior)
        {
            //After that the tower is generated on the network, adjust it's position
            var _tower = behavior.GetComponent <TowerEntityController>();

            _tower.InitTowerEntityController(MAPTowerGPSCoords[_tower]);
        }
        //Once the avator object is created on the network, starts build it's avator character
        private void AvatorController_networkStarted(NetworkBehavior behavior)
        {
            //Sets up name and selected uma character
            var avatorController = behavior.GetComponent <AvatorController>();

            //Passes this destination controller in order to set up correctly the avator
            avatorController.InitAvatorController(this);
        }
Exemple #7
0
        public Level(string background, int width, int height, int playerCount, bool useKeyboard, GameState gameType)
        {
            int diff = useKeyboard ? 0 : 1;

            if (playerCount < 2)
            {
                playerCount = 2;
            }
            if (playerCount > 4)
            {
                playerCount = 4;
            }

            _entities = new List <Entity>();
            _toRemove = new Stack <Entity>();
            _toAdd    = new Stack <Entity>();

            _bounds       = new Rectangle(0, 0, width, height);
            _background   = GameContent.LoadContent <Texture2D>(background);
            _font         = GameContent.LoadContent <SpriteFont>("Fonts/SmallFont");
            _winFont      = GameContent.LoadContent <SpriteFont>("Fonts/BigFont");
            _textOrigin   = Vector2.Zero;
            _screenCenter = new Vector2(width / 2.0f, height / 2.0f);

            _fireballSfx = GameContent.LoadContent <SoundEffect>("SFX/Fireball");

            _gameEnded   = false;
            _winnerColor = Color.Black;
            _winnerText  = String.Empty;


            if (gameType == GameState.PlayingLocal)
            {
                _connDelayTime = 0;

                for (int i = 0; i < playerCount; i++)
                {
                    _entities.Add(new Player(this, positions[i], colors[i], inputs[i + diff], names[i]));
                }
            }
            else if (gameType == GameState.PlayingHost || gameType == GameState.PlayingClient)
            {
                _connDelayTime = 5000;

                int               mod             = (gameType == GameState.PlayingHost) ? 0 : 1;
                Player            local           = new Player(this, positions[mod], colors[mod], inputs[diff], GameMain.CurrentSession.LocalGamers[0].Gamertag);
                NetPlayerBehavior localController = new NetPlayerBehavior(local);
                local.Behaviors.Add(localController);
                GameMain.Connection.CreatePlayer(local);
                NetController = localController;

                _entities.Add(local);
            }
        }
    // Callback for when each player's networkobject is set up on the host
    private void OnPlayerNetworked(NetworkBehavior networkBehavior)
    {
        Player        player  = networkBehavior as Player;
        PlayerDetails details = player.GetPlayerDetails();

        // Update player details
        NetworkingPlayer np = networkObject.Networker.GetPlayerById(details.GetNetworkId());

        player.networkObject.AssignOwnership(np);
        player.networkObject.SendRpc(Player.RPC_TRIGGER_UPDATE_DETAILS, Receivers.All, details.ToArray());

        player.networkStarted -= OnPlayerNetworked;
    }
        public virtual void InstantiatePendingObject(NodeNetworkSceneTemplate pNodeTemplate, NetworkBehavior pBehavior)
        {
            if (pNodeTemplate == null || pBehavior == null)
            {
                return;
            }

            INetworkSceneObject networkSceneObject = pBehavior as INetworkSceneObject;
            NetworkObject       nObj = networkSceneObject.GetNetworkObject();

            if (nObj == null)
            {
                return;
            }

            if (pNodeTemplate.NodeId == NodeManager.Instance.CurrentNode.NodeId)
            {
                NetworkBehavior behavior = NodeManager.Instance.InstantiateInScene(pNodeTemplate.SceneName, nObj.CreateCode, (pBehavior as IRPCSerializable), _teleportTarget.position, _teleportTarget.rotation);
                if (behavior == null)
                {
                    return;
                }

                pBehavior.gameObject.SetActive(false);
                SendNetworkSceneToPlayer(networkSceneObject, pNodeTemplate);
                DestroyPendingObject(networkSceneObject);
            }
            else
            {
                ServiceCallback <RPCInstantiateInNode, ServiceCallbackStateEnum> callback = NodeManager.Instance.InstantiateInNode(pNodeTemplate.NodeId, pNodeTemplate.SceneName, nObj.CreateCode, (pBehavior as IRPCSerializable), _teleportTarget.position, _teleportTarget.rotation);
                if (callback.State == ServiceCallbackStateEnum.AWAITING_RESPONSE)
                {
                    // While the request is progressing this NetworkSceneTeleporter could have been destroyed.
                    NetworkSceneTeleporter tmpTeleporter = this;
                    callback.OnResponseOfT += (pResponseTime, pResponseDataOfT, pSender) => {
                        if (tmpTeleporter == null || pBehavior == null || networkSceneObject == null || pNodeTemplate == null)
                        {
                            return;
                        }

                        if (pResponseDataOfT == ServiceCallbackStateEnum.RESPONSE_SUCCESS)
                        {
                            pBehavior.gameObject.SetActive(false);
                            tmpTeleporter.SendNetworkSceneToPlayer(networkSceneObject, pNodeTemplate);
                            tmpTeleporter.DestroyPendingObject(networkSceneObject);
                        }
                    };
                }
            }
        }
        protected virtual void MoveObjectToScene(INetworkBehavior pUnityGameObject, NetworkObject pObj)
        {
            NetworkBehavior behavior = pUnityGameObject as NetworkBehavior;

            if (behavior == null)
            {
                return;
            }

            MainThreadManager.Run(() => {
                if (behavior == null || gameObject == null)
                {
                    return;
                }

                SceneManager.MoveGameObjectToScene(behavior.gameObject, gameObject.scene);
            });
        }
Exemple #11
0
    public static void LoadNetworks(string user_app_path)
    {
        string     filePath = System.IO.Path.Combine(user_app_path, "networks.sdf");
        GameObject network  = GameObject.Find("Network");
        string     line     = "";

        try
        {
            StreamReader reader = new StreamReader(filePath, Encoding.ASCII);

            using (reader)
            {
                string tag;
                //Debug.Log("LoadNetworks read from " + filePath);
                string value = null;
                do
                {
                    value = ccUtils.SDTNext(reader, out tag);
                    if (value == null)
                    {
                        continue;
                    }
                    //Debug.Log("LoadNetwork got " + value + " for tag " + tag);
                    if (tag != "Network")
                    {
                        Debug.Log("LoadNetwork found unexpected tag " + tag);
                        Debug.Break();
                        return;
                    }
                    GameObject new_network = Instantiate(network, new Vector3(1.0F, 0, 0), Quaternion.identity);
                    //new_network.SetActive(false);
                    NetworkBehavior script = (NetworkBehavior)new_network.GetComponent(typeof(NetworkBehavior));
                    script.LoadOneNetwork(value);
                }while (value != null);
                //Debug.Break();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message + "\n");
        }
    }
        public void Update(GameTime gameTime)
        {
            while (LocalHost.IsDataAvailable)
            {
                NetworkGamer sender;
                LocalHost.ReceiveData(_reader, out sender);
                string type = _reader.ReadString();
                int    id;

                if (type == "Player")
                {
                    id = _reader.ReadInt32();
                    NetworkBehavior net = _behaviors.OfType <NetPlayerBehavior>().FirstOrDefault((b) => b.Id == id);

                    if (net != null)
                    {
                        net.ReceiveData(_reader);
                    }
                }
                if (type == "Fireball")
                {
                    id = _reader.ReadInt32();
                    NetworkBehavior net = _behaviors.OfType <NetFireballBehavior>().FirstOrDefault((b) => b.Id == id);

                    if (net != null)
                    {
                        net.ReceiveData(_reader);
                    }
                }
                if (type == "CreatePlayer")
                {
                    id = _reader.ReadInt32();
                    string  name     = _reader.ReadString();
                    Vector2 position = _reader.ReadVector2();
                    int     health   = _reader.ReadInt32();
                    Color   color    = _reader.ReadColor();

                    if (id != _session.LocalGamers[0].Id)
                    {
                        Player player = new Player(GameMain.CurrentLevel, position, color, new GenericInput(), name)
                        {
                            Health = health
                        };
                        player.Behaviors.Add(new NetPlayerBehavior(player, id));
                        GameMain.CurrentLevel.AddEntity(player);
                    }
                }
                if (type == "CreateFireball")
                {
                    id = _reader.ReadInt32();
                    Vector2   position  = _reader.ReadVector2();
                    Direction direction = (Direction)_reader.ReadInt32();
                    Color     color     = _reader.ReadColor();

                    Fireball fireball = new Fireball(GameMain.CurrentLevel, position, color, direction);
                    fireball.Behaviors.Add(new NetFireballBehavior(fireball, id));
                    GameMain.CurrentLevel.AddEntity(fireball);
                }
                if (type == "RequestFireball")
                {
                    Vector2   position  = _reader.ReadVector2();
                    Direction direction = (Direction)_reader.ReadInt32();
                    Color     color     = _reader.ReadColor();

                    Fireball fireball = new Fireball(GameMain.CurrentLevel, position, color, direction);
                    fireball.Behaviors.Add(new NetFireballBehavior(fireball, 0));
                    //GameMain.CurrentLevel.AddEntity(fireball);
                    CreateFireball(fireball);
                }
            }

            _session.Update();
        }
 public void AddBehavior(NetworkBehavior behavior)
 {
     _behaviors.Add(behavior);
 }
Exemple #14
0
 //float grabbedBottom;
 // Use this for initialization
 void Start()
 {
     accumulatedMousePosition = new Vector3 (Screen.width/2, Screen.height/2, 1);
     network = GameObject.Find ("Networking").GetComponent<NetworkBehavior> ();
 }
 private void TowerComponents_networkStarted(NetworkBehavior behavior)
 {
     TowerCaptureController = behavior.GetComponent <TowerCaptureController>();
     TowerCaptureController.InitTowerCaptureController(this);
 }
 private void TowerNetUIController_networkStarted(NetworkBehavior behavior)
 {
     TowerUINetworkController = behavior.GetComponent <TowerUINetworkController>();
     TowerUINetworkController.InitializeTowerUINetworkController(this);
 }
 public void OnGameManagerInited(NetworkBehavior behavior)
 {
     GameManagerNetworked.Instance.networkStarted -= OnGameManagerInited;
     InitGameScene();
 }
 /// <summary>
 /// Updates the behavior.
 /// </summary>
 /// <param name="behavior">The behavior.</param>
 internal void UpdateBehavior(NetworkBehavior behavior)
 {
     if (!behavior.CreatedByBehavior && behavior.NeedSyncComponentsUpdatingComponentsToSync())
     {
         var message = this.CreateNetworkBehaviorMessage(behavior.NetworkBehaviorId, behavior.FactoryId, NetworkSyncType.Update);
         behavior.WriteSyncData(message, behavior.ComponentsToSync);
         this.networkService.SendToServer(message, DeliveryMethod.UnreliableSequenced);
     }
 }
 /// <summary>
 /// Removes the network entity.
 /// </summary>
 /// <param name="behavior">The behavior.</param>
 private void RemoveNetworkEntity(NetworkBehavior behavior)
 {
     this.entityBehaviors.Remove(behavior.NetworkBehaviorId);
     this.scene.EntityManager.Remove(behavior.Owner);
 }
        /// <summary>
        /// Sends the response to recreate this entity.
        /// </summary>
        /// <param name="behavior">The behavior.</param>
        private void SendResponseToRecreateThisEntity(NetworkBehavior behavior)
        {
            var responseMessage = this.CreateNetworkBehaviorMessage(behavior.NetworkBehaviorId, behavior.FactoryId, NetworkSyncType.Create);
            if (behavior.FactoryId == SerializationFactoryId)
            {
                this.WriteEntity(responseMessage, behavior.Owner);
            }

            behavior.WriteSyncData(responseMessage, behavior.NetworkSyncComponents);
            this.networkService.SendToServer(responseMessage, DeliveryMethod.ReliableOrdered);
        }
        protected virtual void ProcessOthers(Transform pObj, NetworkObject pCreateTarget, ref uint pIdOffset, NetworkBehavior pNetBehavior = null)
        {
            int i;

            // Get the order of the components as they are in the inspector
            var components = pObj.GetComponents <NetworkBehavior>();

            // Create each network object that is available
            for (i = 0; i < components.Length; i++)
            {
                if (components[i] == pNetBehavior)
                {
                    continue;
                }

                var no = components[i].CreateNetworkObject(_networker, 0);

                if (_networker.IsServer)
                {
                    FinalizeInitialization(pObj.gameObject, components[i], no, pObj.position, pObj.rotation, false, true);
                }
                else
                {
                    components[i].AwaitNetworkBind(_networker, pCreateTarget, pIdOffset++);
                }
            }

            for (i = 0; i < pObj.transform.childCount; i++)
            {
                ProcessOthers(pObj.transform.GetChild(i), pCreateTarget, ref pIdOffset);
            }
        }
Exemple #22
0
 private void GameUiNetworkController_networkStarted(NetworkBehavior behavior)
 {
     GameUINetworkController = behavior.GetComponent <GameUINetworkController>();
     GameUINetworkController.InitializeNetworkGameUI(AvatorControllerReference);
 }
Exemple #23
0
 void Start()
 {
     networkBehavior = new NetworkBehavior();
 }