private void CreatePlayerEntity(string clientWorkerId,
                                        ResponseHandle <PlayerCreation.Commands.CreatePlayer, CreatePlayerRequest, CreatePlayerResponse> responseHandle)
        {
            var platformData         = new PlatformPosition.Data(PlatformPositionReader.Data.DeepCopy());
            var playerEntityTemplate = EntityTemplateFactory.CreatePlayerTemplate(clientWorkerId, gameObject.EntityId(), platformData);

            SpatialOS.Commands.CreateEntity(PlayerCreationWriter, playerEntityTemplate)
            .OnSuccess(response =>
            {
                AddPlayerEntityId(clientWorkerId, response.CreatedEntityId);
                RequestEnded(responseHandle, ResponseCode.SuccessfullyCreated);
            })
            .OnFailure(failure => RequestEnded(responseHandle, ResponseCode.Failure, failure.StatusCode));
        }
예제 #2
0
        private static void GenerateDefaultSnapshot()
        {
            var snapshotEntities = new Dictionary <EntityId, Entity>();
            var currentEntityId  = 1;

            var islandEntityId = new EntityId(currentEntityId++);

            snapshotEntities.Add(islandEntityId, EntityTemplateFactory.CreateIslandTemplate(0, 0, "Greenish Land"));

            var playerCreatorPlatformPosition = new PlatformPosition.Data(new Vector3f(0.0f, 0.0f, 0.0f), islandEntityId);

            snapshotEntities.Add(new EntityId(currentEntityId++), EntityTemplateFactory.CreatePlayerCreatorTemplate(playerCreatorPlatformPosition));
            snapshotEntities.Add(new EntityId(currentEntityId++), EntityTemplateFactory.CreateShipTemplate(-5, 25, 0, "SS McBoatFace"));

            SaveSnapshot(snapshotEntities);
        }