public BigSegmentsConfigurationBuilderTest(ITestOutputHelper testOutput) : base(testOutput)
        {
            var storeMock = new Mock <IBigSegmentStore>();

            _store = storeMock.Object;
            var storeFactoryMock = new Mock <IBigSegmentStoreFactory>();

            _storeFactory = storeFactoryMock.Object;
            storeFactoryMock.Setup(f => f.CreateBigSegmentStore(BasicContext)).Returns(_store);

            _tester = BuilderBehavior.For(() => Components.BigSegments(_storeFactory));
        }
Esempio n. 2
0
    void SendBuildCommands()
    {
        RaycastHit hit;
        var        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (Input.GetButtonDown("Fire1") && resources.ToolPoints >= 20 && resources.ResourcePoints >= 10) // Wall
        {
            if (Physics.Raycast(ray, out hit, 1000.0f))
            {
                if (hit.collider.gameObject.tag == "Ground")
                {
                    var colliderRotation = hit.collider.transform.rotation;
                    var rotation         = new Vector3(-90, 0, 90) + colliderRotation.eulerAngles;
                    rotation.x = -90;
                    bool            buildCommandSent = false;
                    BuilderBehavior mainBuilder      = null;
                    int             builders         = 0;
                    foreach (var selectableObject in GameObject.FindGameObjectsWithTag("Builder"))
                    {
                        var builder = selectableObject.GetComponent <BuilderBehavior>();
                        if (builder.isSelected && !buildCommandSent)
                        {
                            mainBuilder = builder;
                            //Move to target location
                            builder.GetComponent <BuilderBehavior>().ToBuild              = BuildingType.WALL;
                            builder.GetComponent <BuilderBehavior>().CurrentState         = BuilderStates.BUILD;
                            builder.GetComponent <BuilderBehavior>().targetPos            = hit.point;
                            builder.GetComponent <BuilderBehavior>().buildPosition        = hit.point;
                            builder.GetComponent <BuilderBehavior>().currentBuildInstance = null;
                            builder.GetComponent <BuilderBehavior>().buildRotation        = Quaternion.Euler(rotation);
                            //Deselect
                            builder.GetComponent <BuilderBehavior>().isSelected = false;
                            buildCommandSent = true;
                            builders++;
                        }
                        else if (builder.isSelected)
                        {
                            builder.GetComponent <BuilderBehavior>().CurrentState = BuilderStates.MOVE;
                            builder.GetComponent <BuilderBehavior>().targetPos    = hit.point;
                            builders++;
                        }
                    }

                    if (mainBuilder != null)
                    {
                        mainBuilder.totalCurrentBuilders = builders;
                    }

                    //Instantiate(resources.wallPrefab, hit.point, Quaternion.Euler(rotation));
                    resources.ToolPoints     -= 20;
                    resources.ResourcePoints -= 10;
                }
            }
        }

        if (Input.GetButtonDown("Fire2") && resources.ToolPoints >= 10 && resources.ResourcePoints >= 30) // Tower
        {
            ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 1000.0f))
            {
                if (hit.collider.gameObject.tag == "Ground")
                {
                    var colliderRotation = hit.collider.transform.rotation;
                    var rotation         = colliderRotation.eulerAngles;
                    rotation.x = -90;
                    bool            buildCommandSent = false;
                    BuilderBehavior mainBuilder      = null;
                    int             builders         = 0;
                    foreach (var selectableObject in GameObject.FindGameObjectsWithTag("Builder"))
                    {
                        var builder = selectableObject.GetComponent <BuilderBehavior>();
                        if (builder.isSelected && !buildCommandSent)
                        {
                            mainBuilder = builder;
                            //Move to target location
                            builder.GetComponent <BuilderBehavior>().ToBuild              = BuildingType.TOWER;
                            builder.GetComponent <BuilderBehavior>().CurrentState         = BuilderStates.BUILD;
                            builder.GetComponent <BuilderBehavior>().targetPos            = hit.point;
                            builder.GetComponent <BuilderBehavior>().buildPosition        = hit.point;
                            builder.GetComponent <BuilderBehavior>().currentBuildInstance = null;
                            builder.GetComponent <BuilderBehavior>().buildRotation        = Quaternion.Euler(rotation);
                            //Deselect
                            builder.GetComponent <BuilderBehavior>().isSelected = false;
                            buildCommandSent = true;
                            builders++;
                        }
                        else if (builder.isSelected)
                        {
                            builder.GetComponent <BuilderBehavior>().CurrentState = BuilderStates.MOVE;
                            builder.GetComponent <BuilderBehavior>().targetPos    = hit.point;
                            builders++;
                        }
                    }

                    if (mainBuilder != null)
                    {
                        mainBuilder.totalCurrentBuilders = builders;
                    }
                    //Instantiate(resources.towerPrefab, hit.point, Quaternion.Euler(rotation));
                    resources.ToolPoints     -= 10;
                    resources.ResourcePoints -= 30;
                }
            }
        }
    }