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)); }
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; } } } }