private void CreatePlayer(string clientWorkerId, EntityId entityId)
        {
            var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId);

            SpatialOS.Commands.CreateEntity(PlayerCreationWriter, entityId, playerEntityTemplate)
            .OnFailure(failure => OnFailedPlayerCreation(failure, clientWorkerId, entityId));
        }
Example #2
0
        private void OnCreatePlayer(ResponseHandle <PlayerCreation.Commands.CreatePlayer, CreatePlayerRequest, CreatePlayerResponse> responseHandle)
        {
            var clientWorkerId       = responseHandle.CallerInfo.CallerWorkerId;
            var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId);

            SpatialOS.Commands.CreateEntity(PlayerCreationWriter, playerEntityTemplate)
            .OnSuccess(_ => responseHandle.Respond(new CreatePlayerResponse((int)StatusCode.Success)))
            .OnFailure(failure => responseHandle.Respond(new CreatePlayerResponse((int)failure.StatusCode)));
        }
Example #3
0
        private void OnCreatePlayer(ResponseHandle <PlayerCreation.Commands.CreatePlayer, CreatePlayerRequest, CreatePlayerResponse> responseHandle)
        {
            var     clientWorkerId       = responseHandle.CallerInfo.CallerWorkerId;
            Vector3 initialPosition      = new Vector3((Random.Range(-1f, 1f) * 0.5f) * Random.Range(-200f, 200f), -5f, (Random.Range(-1f, 1f) * 0.5f) * Random.Range(-200f, 200f));
            var     playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId, initialPosition);

            SpatialOS.Commands.CreateEntity(PlayerCreationWriter, playerEntityTemplate)
            .OnSuccess(_ => responseHandle.Respond(new CreatePlayerResponse((int)StatusCode.Success)))
            .OnFailure(failure => responseHandle.Respond(new CreatePlayerResponse((int)failure.StatusCode)));
        }
        private void SpawnPlayer(string clientWorkerId, EntityId entityId)
        {
            var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId, SimulationSettings.PlayerPrefabName);

            SpatialOS.Commands.CreateEntity(playerSpawning, entityId, playerEntityTemplate)
            .OnFailure(_ =>
            {
                Debug.LogError("Failed to Create Player Entity. Retrying...");
                SpawnPlayer(clientWorkerId, entityId);
            });
        }
Example #5
0
        private void CreatePlayerEntity(string clientWorkerId,
                                        ResponseHandle <PlayerCreation.Commands.CreatePlayer, CreatePlayerRequest, CreatePlayerResponse> responseHandle)
        {
            var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId, gameObject.EntityId());

            SpatialOS.Commands.CreateEntity(PlayerCreationWriter, playerEntityTemplate)
            .OnSuccess(response =>
            {
                AddPlayerEntityId(clientWorkerId, response.CreatedEntityId);
                RequestEnded(responseHandle, ResponseCode.SuccessfullyCreated);
            })
            .OnFailure(failure => RequestEnded(responseHandle, ResponseCode.Failure, failure.StatusCode));
        }
Example #6
0
        private void CreatePlayer(string clientWorkerId, EntityId entityId)
        {
            int  numberOfPlayersConnected = PlayerCreationWriter.Data.numberOfPlayersConnected;
            bool canAddPlayers            = PlayerCreationWriter.Data.canAddPlayers;

            if (canAddPlayers == false)
            {
                Debug.LogError("No more players can connect.");
            }
            else
            {
                var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId);

                SpatialOS.WorkerCommands.CreateEntity(entityId, playerEntityTemplate)
                .OnSuccess(result => OnSuccessfulPlayerCreation(numberOfPlayersConnected, entityId))
                .OnFailure(failure => OnFailedPlayerCreation(failure, clientWorkerId, entityId));
            }
        }
        private void SpawnPlayer(string workerId, EntityId entityId)
        {
            var assignedTeamId  = (nextAvailableTeamId++) % (uint)SimulationSettings.TeamCount;
            var spawningOffset  = new Vector3(Random.value - 0.5f, 0f, Random.value - 0.5f) * SimulationSettings.PlayerSpawnOffsetFactor;
            var hqPos           = SimulationSettings.TeamHQLocations[assignedTeamId].ToVector3();
            var initialPosition = hqPos + spawningOffset;

            var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(workerId, initialPosition.ToCoordinates(), assignedTeamId);

            SpatialOS.Commands.CreateEntity(playerLifeCycle, entityId, SimulationSettings.PlayerPrefabName, playerEntityTemplate, (response) =>
            {
                if (response.StatusCode != StatusCode.Success)
                {
                    SpawnPlayer(workerId, entityId);
                    Debug.LogError("Failed to create player entity, retrying");
                    return;
                }
            });
        }
Example #8
0
        public static void AddPlayerSpawner(Snapshot snapshot)
        {
            var entity = EntityTemplateFactory.CreatePlayerTemplate(snapshot);

            snapshot.AddEntity(entity);
        }