Пример #1
0
        protected override void OnUpdate()
        {
            Entity hitEntity;

            Entities
            .WithoutBurst()
            .WithStructuralChanges()
            .ForEach((
                         Entity entity,
                         int entityInQueryIndex,
                         ref MouseInput mouseInput
                         ) => {
                if (mouseInput.primaryAction == 0)
                {
                    return;
                }

                hitEntity = RaycastUtils.Raycast(
                    mouseInput.mousePosition,
                    out RaycastHit hit,
                    buildPhysicsWorldSystem
                    );

                if (hitEntity == Entity.Null)
                {
                    return;
                }

                if (EntityManager.HasComponent <SettlerTag>(hitEntity))
                {
                    SelectUnit.Create(hitEntity);
                    // EntityManager.AddComponentData<Selected>(hitEntity, new Selected {});
                    mouseInput.primaryAction = 0;

                    return;
                }

                HexCoordinates coordinates = CoordinatesService.GetCoordinatesFromPosition(hit.Position);
                Entity selectedEntity      = HexCellService.FindBy(coordinates);

                if (EntityManager.HasComponent <Selected>(selectedEntity))
                {
                    SelectCommand.Remove(coordinates);
                }
                else
                {
                    SelectCommand.Create(coordinates);
                }

                mouseInput.primaryAction = 0;
            })
            .Run();
        }
        public void GetCoordinates_required_parameters_not_supplied_throws_CoordinateNotFoundException(string type, string name, string version)
        {
            // Arrange
            var classUnderTest       = new CoordinatesService();
            var coordinatePartsModel = new CoordinatePartsModel()
            {
                Type    = type,
                Name    = name,
                Version = version
            };

            // Act
            // Assert
            Assert.Throws <CoordinateNotFoundException>(() => classUnderTest.GetCoordinates(coordinatePartsModel));
        }
Пример #3
0
        public void CreateCells(int width, int height)
        {
            int cellsCount = width * height;

            NativeArray <Entity> cellsArray = new NativeArray <Entity>(cellsCount, Allocator.Temp);
            EntityArchetype      archetype  = HexCellArchetype.GetArchetype();

            entityManager.CreateEntity(archetype, cellsArray);

            for (int z = 0, i = 0; z < height; z++)
            {
                for (int x = 0; x < width; x++)
                {
                    int elevation = UnityEngine.Random.Range(0, 6);

                    entityManager.SetComponentData(
                        cellsArray[i],
                        CoordinatesService.CreateFromOffset(x, z)
                        );

                    var pos = GetCellPosition(x, elevation, z);
                    entityManager.SetComponentData(
                        cellsArray[i],
                        new Translation {
                        Value = pos
                    }
                        );

                    entityManager.SetComponentData(
                        cellsArray[i],
                        new ColorComponent {
                        Value = HexColor.GetRandomColor()
                    }
                        );

                    entityManager.SetComponentData(
                        cellsArray[i],
                        new Elevation {
                        Value = elevation
                    }
                        );

                    i++;
                }
            }
        }
        public void GetCoordinates_only_required_parameters_supplied_returns_valid_package_url()
        {
            // Arrange
            var classUnderTest       = new CoordinatesService();
            var expected             = "pkg:nuget/[email protected]";
            var coordinatePartsModel = new CoordinatePartsModel()
            {
                Type    = "nuget",
                Name    = "System.Net.Http",
                Version = "4.3.1"
            };

            // Act
            var actual = classUnderTest.GetCoordinates(coordinatePartsModel);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Пример #5
0
        void AddTextCoordinatesOnGrid(int width, int height)
        {
            for (int z = 0, i = 0; z < height; z++)
            {
                for (int x = 0; x < width; x++)
                {
                    Text label = Instantiate <Text>(cellLabelPrefab);

                    label.rectTransform.SetParent(gridCanvas.transform, false);
                    label.rectTransform.anchoredPosition = new Vector2(
                        PositionCalculator.GetPositionX(x, z),
                        PositionCalculator.GetPositionZ(z)
                        );

                    HexCoordinates coordinates = CoordinatesService.CreateFromOffset(x, z);
                    label.text = "" + coordinates.Value.x + ", " + coordinates.Value.y + ", " + coordinates.Value.z + "";
                }
            }
        }
Пример #6
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddSession(options => {
                options.IdleTimeout = TimeSpan.FromMinutes(15);
            });

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddDbContext <EntityFrameWorkMagicContext>(options =>
                                                                options.UseSqlServer(Configuration.GetConnectionString("EntityFrameWorkMagicContext")));

            // DI
            var connectionString = Environment.GetEnvironmentVariable("SQL_CONNECTION") ?? Configuration.GetConnectionString("ConnMsSQL");

            var projectRepository   = new ProjectRepository(connectionString);
            var componentRepository = new ComponentRepository(connectionString);
            var ossIndexRepository  = new OssIndexRepository(connectionString);
            var ossIndexVulnerabilitiesRepository = new OssIndexVulnerabilitiesRepository(connectionString);
            var reportRepository      = new ReportRepository(connectionString);
            var reportLinesRepository = new ReportLinesRepository(connectionString);
            var packageTypeRepository = new PackageTypeRepository();

            var httpWebRequestFactory = new HttpWebRequestFactory();

            var coordinatesService = new CoordinatesService();
            var jsonConvertService = new JsonConvertService();
            var ossReportService   = new OssReportService(
                reportRepository,
                componentRepository,
                ossIndexRepository,
                reportLinesRepository,
                coordinatesService,
                httpWebRequestFactory,
                jsonConvertService,
                ossIndexVulnerabilitiesRepository);

            services.AddTransient <IProjectRepository>(s => projectRepository);
            services.AddTransient <IComponentRepository>(s => componentRepository);
            services.AddTransient <IOssIndexRepository>(s => ossIndexRepository);
            services.AddTransient <IOssIndexVulnerabilitiesRepository>(s => ossIndexVulnerabilitiesRepository);
            services.AddTransient <IReportRepository>(s => reportRepository);
            services.AddTransient <IReportLinesRepository>(s => reportLinesRepository);
            services.AddTransient <IPackageTypeRepository>(s => packageTypeRepository);

            services.AddSingleton <IJsonConvertService>(jsonConvertService);
            services.AddSingleton <ICoordinatesService>(coordinatesService);
            services.AddSingleton <ISelectListItemService>(new SelectListItemService(projectRepository, packageTypeRepository));
            services.AddSingleton <IScoreService>(new ScoreService(reportRepository, reportLinesRepository, ossIndexRepository, ossIndexVulnerabilitiesRepository));
            services.AddSingleton <IScoreClassService>(new ScoreClassService());
            services.AddSingleton <IBreadcrumbReportService>(new BreadcrumbReportService());
            services.AddSingleton <IOssReportService>(ossReportService);
            services.AddSingleton <IOssIndexStatusService>(new OssIndexStatusService(
                                                               reportRepository,
                                                               reportLinesRepository,
                                                               ossIndexRepository));
            services.AddSingleton <IApiCallerService>(new ApiCallerService(
                                                          ossIndexRepository,
                                                          ossReportService));

            services.AddSingleton <ICoordinatePartsFactory>(new CoordinatePartsFactory());
            services.AddSingleton <IHttpWebRequestFactory>(httpWebRequestFactory);
        }