Esempio n. 1
0
        public void EndMatch()
        {
            Broadcast("match_end", new NullMessage());
            ManagerComponent.Get().StartCoroutine(Delete());
            var gameServerHandler = GameServerHandler.Get();

            gameServerHandler.SendMm("match_end", new MatchEndMessage(matchId));
        }
 public virtual void StartMatchMaking()
 {
     if (NetworkInfos.IsServer)
     {
         return;
     }
     Print("Starting matchmaking....");
     _managerComponent = ManagerComponent.Get();
     clientHandler     = ClientHandler.Get();
     clientHandler.Start(serverDatas, this, debug);
     StartCoroutine(clientHandler.client.GetDatas(clientHandler.OnReceiveData));
 }
Esempio n. 3
0
        private void InitWorld(string name)
        {
            DefaultWorldInitialization.Initialize(name, false);
            world = World.DefaultGameObjectInjectionWorld;
            world.GetExistingSystem(typeof(RenderMeshSystemV2)).Enabled = false;
            // Let's instantiate the Map
            var           themap  = ManagerComponent.Get().maps.Find(m => m.name == map);
            EntityManager manager = world.EntityManager;
            GameObjectConversionSettings settings = GameObjectConversionSettings.FromWorld(world, blobAssetStore);
            Entity entity = GameObjectConversionUtility.ConvertGameObjectHierarchy(themap.mapObj, settings);
            Entity spawn  = manager.Instantiate(entity);

            GetSpawnPoints();
        }
        private void OnReceiveMMDataTCP(string data)
        {
            GlobalMessage msg = JsonUtility.FromJson <GlobalMessage> (data);

            switch (msg.type)
            {
            case "create_match":
            {
                var m = new Match(_createGameMaster, msg.data);
                World.DefaultGameObjectInjectionWorld = _defaultWorld;
                matches.Add(m.matchId, m);
                SendMm("match_created", new MatchManagementMessage(m.matchId));
                break;
            }

            case "delete_match":
            {
                var dmmsg      = JsonUtility.FromJson <DeleteMatchMessage> (msg.data);
                var matchExist = matches.ContainsKey(dmmsg.matchId);
                if (matchExist)
                {
                    var m = matches[dmmsg.matchId];
                    ManagerComponent.Get().StartCoroutine(m.Delete());
                }

                SendMm("match_deleted", new MatchManagementMessage(dmmsg.matchId));
                break;
            }

            case "remove_user":
            {
                var mmsg       = JsonUtility.FromJson <RemoveUserFromMatchMessage> (msg.data);
                var matchExist = matches.ContainsKey(mmsg.matchId);
                if (matchExist)
                {
                    var m = matches[mmsg.matchId];
                    var p = m.players.Find(pa => pa.key == mmsg.userKey);
                    if (p != null)
                    {
                        clients.Remove(p.client.ep.ToString());
                        m.players.Remove(p);
                        m.gameMaster.OnPlayerLeave(p);
                    }
                }

                SendMm("user_removed", new UserRemovedMessage(mmsg.matchId, mmsg.userKey));
                break;
            }
            }
        }
Esempio n. 5
0
        private EntityEntry SpawnFromGameObject(GameObject obj, Vector3 pos, Quaternion rot, Player player = null)
        {
            var manager = ManagerComponent.Get();
            var index   = manager.spawnableObjects.IndexOf(obj);

            if (index == -1)
            {
                return(null);
            }
            GameObjectConversionSettings settings = GameObjectConversionSettings.FromWorld(world, blobAssetStore);
            Entity e = GameObjectConversionUtility.ConvertGameObjectHierarchy(manager.spawnableObjects[index],
                                                                              settings);

            return(Spawn(e, player == null, index, pos, rot, player != null ? player.key : null));
        }
Esempio n. 6
0
        // Use this for initialization
        IEnumerator Start()
        {
            _Ledger  = TestParent.GetComponent <Ledger>();
            _Manager = TestParent.GetComponent <ManagerComponent <T> >();
            yield return(null);

            _Ledger.Clear();
            _GroupLedger.Clear();

            _Tests.Add(new PostTest <T>(this));
            _Tests.Add(new BaseTest <T>(this));
            _Tests.Add(new FailTest <T>(this));
            _Tests.Add(new FailTest02 <T>(this));
            _Tests.Add(new FileStreamTest <T>(this));
            _Tests.Add(new MemoryStreamTest <T>(this));
            _Tests.Add(new SerializationTest <T>(this));
            _Tests.Add(new SortingTest <T>(this));
            _Tests.Add(new ProgressTest <T>(this));
            _Tests.Add(new StatusCodeTest <T>(this));
            _Tests.Add(new LedgerTest01 <T>(this));
            _Tests.Add(new LedgerTest02 <T>(this));
            _Tests.Add(new GroupLedgerTest01 <T>(this));
            _Tests.Add(new GroupLedgerTest02 <T>(this));
            _Tests.Add(new GroupLedgerTest03 <T>(this));
            _Tests.Add(new GroupLedgerTest04 <T>(this));
            _Tests.Add(new AbortTest <T>(this));
            _Tests.Add(new DestroyTest01 <T>(this));
            _Tests.Add(new DestroyTest02 <T>(this));

            int succeedCount = 0;
            int failCount    = 0;

            for (int i = 0; i < _Tests.Count; i++)
            {
                _Tests[i].OnTestFail    += () => failCount++;
                _Tests[i].OnTestSucceed += () => succeedCount++;
                yield return(_Tests[i].DoTest());
            }
            Debug.Log(failCount + "/" + _Tests.Count + " Failures");
            Debug.Log(succeedCount + "/" + _Tests.Count + " Successes");
        }
 public ServerGameMaster(Match match)
 {
     this.match       = match;
     managerComponent = ManagerComponent.Get();
     _mainThreadQueue = new Queue <MainThreadQueueElement> ();
 }
 protected ClientGameMaster()
 {
     managerComponent = ManagerComponent.Get();
     world            = World.DefaultGameObjectInjectionWorld;
 }
Esempio n. 9
0
 public void StartCoroutine(IEnumerator enumerator)
 {
     ManagerComponent.Get().StartCoroutine(enumerator);
 }