private void CreateRoadAtPosition(Vector3Int position) { RoadStructureSO roadStructure = ScriptableObject.CreateInstance <RoadStructureSO>(); _grid.PlaceStructureOnTheGrid(_structureObject, position, roadStructure); StructureEconomyManager.PrepareRoadStructure(position, _grid); }
public static IEnumerable <StructureBaseSO> PrepareRoadDemolition(Vector3Int gridPosition, GridStructure grid) { RoadStructureSO roadData = (RoadStructureSO)grid.GetStructureDataFromTheGrid(gridPosition); var structuresAroundRoad = grid.GetStructuresDataInRange(gridPosition, roadData.structureRange); return(roadData.PrepareRoadDemolition(structuresAroundRoad)); }
public void Init() { structureRepo = Substitute.For <StructureRepository>(); CollectionSO collection = new CollectionSO(); testRoad = new GameObject(); testSingleStructure = new GameObject(); testZone = new GameObject(); var road = new RoadStructureSO(); road.buildingName = "Road"; road.prefab = testRoad; var facility = new SingleFacilitySO(); facility.buildingName = "PowerPlant"; facility.prefab = testSingleStructure; var zone = new ZoneStructureSO(); zone.buildingName = "Commercial"; zone.prefab = testZone; collection.roadStructure = road; collection.singleStructureList = new List <SingleStructureBaseSO>(); collection.singleStructureList.Add(facility); collection.zonesList = new List <ZoneStructureSO>(); collection.zonesList.Add(zone); structureRepo.modelDataCollection = collection; }
public void InitBeforeEveryTests() { PlacementManager placementManager = Substitute.For <PlacementManager>(); materialTransparent = new Material(Shader.Find("Standard")); placementManager.transparentMaterial = materialTransparent; GameObject ground = new GameObject(); ground.transform.position = Vector3.zero; placementManager.ground = ground.transform; StructureRepository structureRepository = Substitute.For <StructureRepository>(); CollectionSO collection = new CollectionSO(); RoadStructureSO road = new RoadStructureSO(); road.buildingName = "Road"; GameObject roadChild = new GameObject("Road", typeof(MeshRenderer)); roadChild.GetComponent <MeshRenderer>().material.color = Color.blue; GameObject roadPrefab = new GameObject("Road"); roadChild.transform.SetParent(roadPrefab.transform); road.prefab = roadPrefab; collection.roadStructure = road; structureRepository.modelDataCollection = collection; buildingManager = new BuildingManager(3, 10, 10, placementManager, structureRepository); }
//what to do when road is placed public static void PrepareRoadStructure(Vector3Int gridPosition, GridStructure grid) { RoadStructureSO roadData = (RoadStructureSO)grid.GetStructureDataFromTheGrid(gridPosition); var structuresAroundRoad = grid.GetStructuresDataInRange(gridPosition, roadData.structureRange); roadData.PrepareRoad(structuresAroundRoad); }
public void Init() { CollectionSO collection = new CollectionSO(); var road = new RoadStructureSO(); road.buildingName = "Road"; collection.roadStructure = road; var facility = new SingleFacilitySO(); facility.buildingName = "PowerPlant"; collection.singleStructureList = new List <SingleStructureBaseSO>(); collection.singleStructureList.Add(facility); var zone = new ZoneStructureSO(); zone.buildingName = "Commercial"; collection.zonesList = new List <ZoneStructureSO>(); collection.zonesList.Add(zone); GameObject testObject = new GameObject(); repository = testObject.AddComponent <StructureRepository>(); repository.modelDataCollection = collection; }
public void CellGetStructureData() { Cell cell = new Cell(); RoadStructureSO roadSO = ScriptableObject.CreateInstance <RoadStructureSO>(); cell.SetConstruction(new GameObject(), roadSO); Assert.AreEqual(roadSO, cell.GetStructureData()); }
public void CellGetStructureData() { Cell cell = new Cell(); RoadStructureSO roadSO = new RoadStructureSO(); cell.SetConstruction(new GameObject(), roadSO); Assert.AreEqual(roadSO, cell.GetStructureData()); }
public void StructureManagerEconomyTestsRemoveRoadNearReidentialStructureRoadDiagonalConnections() { ZoneStructureSO residentialZone = CreateZoneAtPosition(new Vector3Int(0, 0, 0)); RoadStructureSO roadStructure = ScriptableObject.CreateInstance <RoadStructureSO>(); CreateRoadAtPosition(new Vector3Int(3, 0, 3)); StructureEconomyManager.PrepareRoadRemoval(new Vector3Int(3, 0, 3), _grid); _grid.RemoveStructureFromTheGrid(new Vector3(3, 0, 3)); Assert.False(residentialZone.HasRoadAccess()); }
public void StructureEconomyManagerRemoveRoadNearReidentialStructureConnection() { ZoneStructureSO residentialZone = CreateZOneAtPosition(new Vector3Int(0, 0, 0)); RoadStructureSO roadStructure = ScriptableObject.CreateInstance <RoadStructureSO>(); CreateRoadATPosition(new Vector3Int(3, 0, 0)); StructureEconomyManager.PrepareRoadDemolition(new Vector3Int(3, 0, 0), grid); grid.RemoveStructureFromTheGrid(new Vector3(3, 0, 0)); Assert.False(residentialZone.HasRoadAccess()); }
public static StructureRepository CreateStructureRepositoryContainingRoad() { StructureRepository structureRepository = Substitute.For <StructureRepository>(); CollectionSO collection = new CollectionSO(); RoadStructureSO road = new RoadStructureSO(); road.buildingName = "Road"; road.prefab = GetAGameObjectWithMaterial(); collection.roadStructure = road; structureRepository.modelDataCollection = collection; return(structureRepository); }
public void GetDataStructureInRange1Contains0Test() { RoadStructureSO road = new RoadStructureSO(); SingleStructureBaseSO singleStructure = new SingleFacilitySO(); GameObject gameObject = new GameObject(); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 3), road); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(9, 0, 3), road); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 9), road); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(9, 0, 9), road); var list = grid.GetStructuresDataInRange(new Vector3(6, 0, 6), 1).ToList(); Assert.IsTrue(list.Count == 0); }
public void GetDataStructureTest() { RoadStructureSO road = ScriptableObject.CreateInstance <RoadStructureSO>(); SingleStructureBaseSO singleStructure = ScriptableObject.CreateInstance <SingleFacilitySO>(); GameObject gameObject = new GameObject(); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(0, 0, 0), road); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 0), road); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(0, 0, 3), singleStructure); grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 3), singleStructure); var list = grid.GetAllStructures().ToList(); Assert.IsTrue(list.Count == 4); }
public void GetDataStructureInRange2Contains8Test() { RoadStructureSO road = ScriptableObject.CreateInstance <RoadStructureSO>(); SingleStructureBaseSO singleStructure = ScriptableObject.CreateInstance <SingleFacilitySO>(); GameObject gameObject = new GameObject(); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 3), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(6, 0, 3), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(9, 0, 3), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 9), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(6, 0, 9), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(9, 0, 9), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(3, 0, 6), road); _grid.PlaceStructureOnTheGrid(gameObject, new Vector3(9, 0, 6), road); var list = _grid.GetStructuresDataInRange(new Vector3(6, 0, 6), 2).ToList(); Assert.IsTrue(list.Count == 8); }
public void Init() { CollectionSO collection = ScriptableObject.CreateInstance <CollectionSO>(); RoadStructureSO road = ScriptableObject.CreateInstance <RoadStructureSO>(); ZoneStructureSO zone = ScriptableObject.CreateInstance <ZoneStructureSO>(); SingleFacilitySO facility = ScriptableObject.CreateInstance <SingleFacilitySO>(); //SingleStructureBaseSO single = ScriptableObject.CreateInstance<SingleStructureBaseSO>(); road.buildingName = "Road"; zone.buildingName = "Commercial"; facility.buildingName = "PowerPlant"; collection.roadStructure = road; collection.singleStructures = new List <SingleStructureBaseSO>(); collection.singleStructures.Add(facility); collection.zoneStructures.Add(zone); GameObject testObject = new GameObject(); _repository = testObject.AddComponent <StructureRepository>(); _repository.modelDataCollection = collection; }