Example #1
0
        public override Entity FactoryMethod(Resources resources, Vector2 position)
        {
            ISimpleTileBuilder builder = new PlatformBuilder(resources, position);

            director.Construct(builder);
            return(builder.GetResult());
        }
    private void OnSceneGUI()
    {
        platform = target as PlatformBuilder;
        Vector2 point = platform.GetEndPoint();
        float   size  = HandleUtility.GetHandleSize(point);

        Handles.color = Color.white;

        if (selected)
        {
            EditorGUI.BeginChangeCheck();
            point = Handles.PositionHandle(point, Quaternion.identity);
            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(platform, "Move Point");
                EditorUtility.SetDirty(platform);
                platform.SetLengthFromEndPoint(point);
            }
        }
        else if (Handles.Button(point, Quaternion.identity, size * handleSize, size * pickSize, Handles.DotCap))
        {
            selected = true;
            Repaint();
        }

        Handles.color = Color.gray;
        Handles.DrawLine(platform.transform.position, point);
    }
 public static PlatformBuilder StartupAction(this PlatformBuilder builder, Func <IPlatform, Task> func)
 {
     builder.AddStartupActions(async provider =>
     {
         var platform = provider.GetService <IPlatform>();
         await func(platform);
     });
     return(builder);
 }
Example #4
0
 private void InitializeBuilders()
 {
     platformBuilder = new PlatformBuilder(platformParent, platformsStats.Platform, platformsStats.Corner, platformsStats.Finish,
                                           platformsStats.LengthOfPlatform, platformsStats.WidthOfPlatform);
     coinBuilder = new CoinBuilder(coinsParent, coinsStats.CoinsPrefab, maxLengthAmountCoins,
                                   maxWidthAmountCoins, coinsStats.CoinsSide, PositionToSpawn.AfterObstacles);
     obstacleBuilder = new ObstacleBuilder(obstaclesParent, obstaclesStats.ObstaclesPrefab, obstaclesStats.SideOfObstacles);
     cubeBuilder     = new CubeBuilder(cubesParent, cubesStats.CubesPrefab, cubesStats.SideCubes, PositionToSpawn.BeforeObstacles);
 }
        protected PlatformexTestKit()
        {
            var loggerFactory = new LoggerFactory();

            Silo.AddService <ILoggerFactory>(loggerFactory);

            Platform = new TestPlatform();
            Builder  = new PlatformBuilder(Platform);
            Silo.AddService <IPlatform>(Platform);
        }
Example #6
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        PlatformBuilder myScript = (PlatformBuilder)target;

        if (GUILayout.Button("Build Object"))
        {
            myScript.BuildObject();
        }
    }
Example #7
0
 public DevicePlatform(PlatformBuilder platformBuilder)
 {
     deviceType       = platformBuilder.deviceType;
     deviceId         = platformBuilder.deviceId;
     os               = platformBuilder.os;
     osVersion        = platformBuilder.osVersion;
     screenResolution = platformBuilder.screenResolution;
     location         = platformBuilder.location;
     mobileInfo       = platformBuilder.mobileInfo;
     browserInfo      = platformBuilder.browserInfo;
 }
        public static PlatformBuilder ConfigureWebApi(this PlatformBuilder builder, Action <PlatformexWebApiOptions> optionsBuilder)
        {
            var options = new PlatformexWebApiOptions("api");

            optionsBuilder(options);
            builder.AddConfigureServicesActions(collection =>
            {
                collection.AddSingleton(options);
            });
            return(builder);
        }
Example #9
0
        public static PlatformBuilder WithConsole(this PlatformBuilder builder, Action <PlatformexGraphQlConsoleOptions> builderOptions)
        {
            var options = new PlatformexGraphQlConsoleOptions("graphql-console");

            builderOptions(options);
            builder.AddConfigureServicesActions(services =>
            {
                services.AddSingleton(options);
            });

            return(builder);
        }
Example #10
0
    private void Awake()
    {
        Time.timeScale = 1f;

        platformBuilder = new PlatformBuilder(platformPrefab, platformParent, platformsAmount, platformLength, cam);
        StartCoroutine(platformBuilder.ChangePlatformsPosition());

        FindBiggestLengthOfObstacle(out var length);
        objectsBuilder =
            new ObjectsBuilder(obstaclesPrefabs, coinsPrefabs, length, obstacleParent, amountOfChunks, platformLength, cam);
        StartCoroutine(objectsBuilder.ChangeObstaclesPosition());
    }
    void OnGUI()
    {
        if (GUILayout.Button("Open Documentation"))
        {
            Application.OpenURL("https://github.com/horsley86/platform-builder-pro/wiki");
        }
        GUILayout.Space(20f);

        material = (Material)EditorGUILayout.ObjectField("Material", material, typeof(Material), false);
        if (GUILayout.Button("Create New"))
        {
            var sceneCameraTransform = SceneView.lastActiveSceneView.camera.transform;
            PlatformHelper.CreateNewPlatform(material, sceneCameraTransform.position + sceneCameraTransform.forward * 10f);
        }

        if (Selection.activeTransform != null)
        {
            var platform = Selection.activeTransform.root.GetComponentInChildren <Platform>();

            if (platform != null)
            {
                GUILayout.Space(20f);
                GUILayout.Label("Platform Operations");
                GUILayout.Space(5f);

                if (platform.strategies == null || platform.strategies[0] == null)
                {
                    platform.strategies = PlatformBuilder.GetStrategies();
                }

                //iterate through the platform's strategies and paint the active gui
                for (var i = 0; i < platform.strategies.Length; i++)
                {
                    if (GUILayout.Button(platform.strategies[i].GuiTitle))
                    {
                        //if (activeStrategyIndex != i)
                        //{
                        //    platform.SetStrategy(platform.strategies[i]);
                        //}
                        platform.SetStrategy(platform.strategies[i]);
                        activeStrategyIndex = i;
                    }

                    if (activeStrategyIndex == i)
                    {
                        GUILayout.BeginVertical("box");
                        platform.strategies[i].DrawGui();
                        GUILayout.EndVertical();
                    }
                }
            }
        }
    }
 private static void ConfigBuilderConfigService(IServiceCollection services, PlatformBuilder builder)
 {
     services.AddSingleton(new PlatformConfigContext
     {
         JwtConfig = builder.JwtConfigBuilder
     });
     services.AddSingleton <Hcs.Platform.PlatformModule.IPlatformFunctionService>(builder);
     services.AddDbContext <PlatformDbContext>(builder.DbOptions);
     services.AddDistributedMemoryCache(options => builder.distributedMemoryCacheOptions?.Invoke(options));
     services.AddMemoryCache();
     ConfigAuthorizaion(services, builder);
     ConfigAuthentication(services, builder);
     ConfigDataProcessorTasks(services, builder.GenericDataProcessorEntityTasks, services.BuildServiceProvider());
 }
Example #13
0
        public static PlatformBuilder ConfigureGraphQl(this PlatformBuilder builder, Action <PlatformexGraphQlOptions> optionsBuilder)
        {
            var options = new PlatformexGraphQlOptions("graphql");

            builder.AddConfigureServicesActions(services =>
            {
                optionsBuilder?.Invoke(options);
                services.AddSingleton(options);
                //services.AddSingleton<IDocumentExecuter, DocumentExecuter>();
                //services.AddSingleton<IDocumentWriter, DocumentWriter>();

                services.AddSingleton <Root>();
                services.AddSingleton <ISchema, GraphSchemaInternal>();
                services.AddGraphQL(_ =>
                {
                    _.EnableMetrics = true;
                    //_.ExposeExceptions = true;
                })
                .AddSystemTextJson()
                .AddErrorInfoProvider(opt => opt.ExposeExceptionStackTrace = true);

                //services.AddTransient<IGraphQLRequestDeserializer, GraphQLRequestDeserializer>();



                foreach (var query in builder.Definitions.Queries)
                {
                    var handlerType     = typeof(GraphQueryHandler <,>).MakeGenericType(query.Value.QueryType, query.Value.ResultType);
                    var handlerFullType = typeof(IGraphQueryHandler <,>).MakeGenericType(query.Value.QueryType, query.Value.ResultType);
                    services.AddSingleton(handlerFullType, handlerType);
                    //services.AddSingleton(provider => (IGraphQueryHandler) provider.GetService(handlerFullType));
                }
            });

            UseExtensions.AddPreUseAction(app =>
            {
                if (app.ApplicationServices.GetService(typeof(PlatformexGraphQlOptions)) is PlatformexGraphQlOptions optionsGraphQl)
                {
                    app.UseGraphQL <ISchema>("/" + optionsGraphQl.BasePath.Trim('/'));
                }

                if (app.ApplicationServices.GetService(typeof(PlatformexGraphQlConsoleOptions)) is PlatformexGraphQlConsoleOptions optionsConsole)
                {
                    app.UseGraphQLPlayground("/" + optionsConsole.BasePath.Trim('/'));
                }
            });
            return(builder);
        }
        public static PlatformBuilder ConfigureServices(this PlatformBuilder builder, Action <IServiceCollection, IConfiguration> configAction)
        {
            var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                                .AddJsonFile($"appsettings.{environment}.json", optional: true)
                                .AddEnvironmentVariables()
                                .Build();

            builder.AddConfigureServicesActions(collection =>
            {
                configAction(collection, configuration);
            });


            return(builder);
        }
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     platform = target as PlatformBuilder;
     if (GUILayout.Button("Build"))
     {
         platform.Build();
     }
     if (GUILayout.Button("Clear"))
     {
         platform.Clear();
     }
     if (GUILayout.Button("Create New Platform on End"))
     {
         GameObject newPlatform = Object.Instantiate(platform.gameObject, platform.transform.parent);
         newPlatform.transform.position = platform.GetEndPoint();
         PlatformBuilder pb = newPlatform.GetComponent <PlatformBuilder>();
         pb.Clear();
         pb.length = 5f;
         Selection.activeGameObject = newPlatform;
     }
 }
        public static PlatformBuilder ConfigureIdentity(this PlatformBuilder builder, Action <PlatformexIdentityOptions> optionsBuilder)
        {
            var opt = new PlatformexIdentityOptions {
                IdentityServerUri = "https://localhost:5000"
            };

            builder.AddConfigureServicesActions(services =>
            {
                optionsBuilder?.Invoke(opt);

                //services.AddAuthentication("Bearer")
                //    .AddIdentityServerAuthentication("Bearer", options =>
                //    {
                //        // required audience of access tokens
                //        options.ApiName = "platformex";

                //        // auth server base endpoint (this will be used to search for disco doc)
                //        options.Authority = opt.IdentityServerUri;
                //    });
                services.AddAuthentication("Bearer")
                .AddJwtBearer("Bearer", options =>
                {
                    options.Authority = opt.IdentityServerUri;
                    options.TokenValidationParameters = new TokenValidationParameters
                    {
                        ValidateAudience = false,
                        NameClaimType    = JwtClaimTypes.Subject,
                        RoleClaimType    = JwtClaimTypes.Role
                    };
                });
            });
            UseExtensions.AddPreUseAction(app =>
            {
                app.UseAuthentication();
                app.UseAuthorization();
            });
            return(builder);
        }
Example #17
0
 public static PlatformBuilder AddBasicModule(this PlatformBuilder builder)
 {
     builder.AddModule <Hcs.PlatformModule.Basic.PlatformModule>();
     return(builder);
 }
 /// <summary>
 /// add platform components here
 /// </summary>
 /// <param name="builder"></param>
 public static void DefaultConfig(PlatformBuilder builder)
 {
     builder.AddModule <PlatformModule>();
 }
Example #19
0
        public static PlatformBuilder WithOpenApi(this PlatformBuilder builder, Action <PlatformexOpenApiOptions> optionsBuilder)
        {
            var options = new PlatformexOpenApiOptions("swagger", Assembly.GetEntryAssembly()?.GetName().Name);

            optionsBuilder(options);
            builder.AddConfigureServicesActions(services =>
            {
                services.AddSingleton(options);

                services.TryAdd(ServiceDescriptor
                                .Transient <IApiDescriptionGroupCollectionProvider,
                                            CommandsApiDescriptionGroupCollectionProvider>());

                services.AddSingleton <IApiDescriptionGroupCollectionProvider,
                                       CommandsApiDescriptionGroupCollectionProvider>();

                services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc("v1", new OpenApiInfo {
                        Title = options.Name + " API", Version = "v1"
                    });
                    c.OperationFilter <DescriptionFilter>();
                    c.OperationFilter <AuthorizeCheckOperationFilter>();
                    c.SchemaFilter <ReadOnlyFilter>();
                    c.CustomSchemaIds(i => i.FullName);
                    c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
                    {
                        Type  = SecuritySchemeType.OAuth2,
                        Flows = new OpenApiOAuthFlows
                        {
                            AuthorizationCode = new OpenApiOAuthFlow
                            {
                                AuthorizationUrl = new Uri("https://localhost:5000/connect/authorize"),
                                TokenUrl         = new Uri("https://localhost:5000/connect/token"),
                                Scopes           = new Dictionary <string, string>
                                {
                                    { "openid", "User Profile" },
                                    { "platformex", "Platformex API - full access" }
                                }
                            }
                        }
                    });
                    c.DocInclusionPredicate((docName, apiDesc)
                                            => apiDesc.TryGetMethodInfo(out _) && apiDesc.HttpMethod != null);

                    /*var basePath = AppDomain.CurrentDomain.BaseDirectory;
                     * var files = Directory.GetFiles(basePath, "*.xml");
                     * foreach (var file in files)
                     * {
                     *  c.IncludeXmlComments(file);
                     * }*/
                });
            });
            UseExtensions.AddPreUseAction(app =>
            {
                app.UseSwagger();

                var apiOptions = app.ApplicationServices.GetRequiredService <PlatformexOpenApiOptions>();

                app.UseSwaggerUI(c =>
                {
                    c.SwaggerEndpoint("/" + apiOptions.Url.Trim('/') + "/v1/swagger.json", apiOptions.Name);

                    c.OAuthClientId("swagger");
                    c.OAuthAppName("Platformex Open API");
                    c.OAuthUsePkce();
                });
            });
            return(builder);
        }
 public static PlatformBuilder ConfigureWebApi(this PlatformBuilder builder)
 {
     builder.ConfigureWebApi(_ => { });
     return(builder);
 }
Example #21
0
 void Awake()
 {
     m    = this;
     grid = new PlatformGrid();
 }