private void CreatePlayer(string clientWorkerId, EntityId entityId) { var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId); SpatialOS.Commands.CreateEntity(PlayerCreationWriter, entityId, playerEntityTemplate) .OnFailure(failure => OnFailedPlayerCreation(failure, clientWorkerId, entityId)); }
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))); }
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); }); }
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)); }
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; } }); }
public static void AddPlayerSpawner(Snapshot snapshot) { var entity = EntityTemplateFactory.CreatePlayerTemplate(snapshot); snapshot.AddEntity(entity); }