public List <GameEnums.RoadShapeType> PossibleShapeType(RoadTileConfiguration newRoadTilesConfig) { List <GameEnums.RoadShapeType> allPossibleShapeTypesForNewTile = new List <GameEnums.RoadShapeType>(System.Enum.GetNames(typeof(GameEnums.RoadShapeType)).Length); if (newRoadTilesConfig.propsType == GameEnums.RoadPropsType.FromDesertToTown || newRoadTilesConfig.propsType == GameEnums.RoadPropsType.FromTownToDesert) { allPossibleShapeTypesForNewTile.Add(GameEnums.RoadShapeType.Start); } else { switch (newRoadTilesConfig.shapeType) { case GameEnums.RoadShapeType.Start: allPossibleShapeTypesForNewTile.Add(GameEnums.RoadShapeType.Middle); break; case GameEnums.RoadShapeType.Middle: allPossibleShapeTypesForNewTile.Add(GameEnums.RoadShapeType.Middle); allPossibleShapeTypesForNewTile.Add(GameEnums.RoadShapeType.End); break; case GameEnums.RoadShapeType.End: allPossibleShapeTypesForNewTile.Add(GameEnums.RoadShapeType.Start); break; } } if (allPossibleShapeTypesForNewTile.Count == 0) { throw new System.Exception("Cannot return ShapeType"); } Debug.Log($"<color=blue> {allPossibleShapeTypesForNewTile} was returned with count {allPossibleShapeTypesForNewTile.Count} </color>"); return(allPossibleShapeTypesForNewTile); }
public List <GameEnums.RoadAsphaltType> PossibleAsphaltTypes(RoadTileConfiguration newRoadTilesConfig) { List <GameEnums.RoadAsphaltType> allPossibleAsphaltTypesForNewTile = new List <GameEnums.RoadAsphaltType>(System.Enum.GetNames(typeof(GameEnums.RoadAsphaltType)).Length); if (newRoadTilesConfig.propsType == GameEnums.RoadPropsType.FromDesertToTown || newRoadTilesConfig.propsType == GameEnums.RoadPropsType.FromTownToDesert) { int typeCounter = 0; for (int i = 0; i < System.Enum.GetNames(typeof(GameEnums.RoadAsphaltType)).Length; i++) { GameEnums.RoadAsphaltType asphType = (GameEnums.RoadAsphaltType)typeCounter; allPossibleAsphaltTypesForNewTile.Add(asphType); typeCounter++; } } else { switch (newRoadTilesConfig.shapeType) { case GameEnums.RoadShapeType.Start: allPossibleAsphaltTypesForNewTile.Add(newRoadTilesConfig.asphaltType); break; case GameEnums.RoadShapeType.Middle: allPossibleAsphaltTypesForNewTile.Add(newRoadTilesConfig.asphaltType); break; case GameEnums.RoadShapeType.End: int typeCounter = 0; for (int i = 0; i < System.Enum.GetNames(typeof(GameEnums.RoadAsphaltType)).Length; i++) { GameEnums.RoadAsphaltType asphType = (GameEnums.RoadAsphaltType)typeCounter; allPossibleAsphaltTypesForNewTile.Add(asphType); typeCounter++; } break; } if (allPossibleAsphaltTypesForNewTile.Count == 0) { throw new System.Exception("Cannot return AsphaltType"); } Debug.Log($"<color=blue> {allPossibleAsphaltTypesForNewTile} was returned with count {allPossibleAsphaltTypesForNewTile.Count} </color>"); } return(allPossibleAsphaltTypesForNewTile); }
public void SetUpCapabilities(RoadTileConfiguration newRoadTileConfiguration) { Debug.Log("<color=green> Started seting up possibilities </color>"); if (!allInGameAvailableRoadConfigs.Contains(newRoadTileConfiguration)) { allInGameAvailableRoadConfigs.Add(newRoadTileConfiguration); } List <RoadTileConfiguration> possibleConfigsForNewRoad = PossibleRoadConfigsFor(newRoadTileConfiguration); for (int i = 0; i < allInGameAvailableRoadConfigs.Count; i++) { for (int j = 0; j < possibleConfigsForNewRoad.Count; j++) { RoadTileConfiguration concreteConfigFromAllAvailable = allInGameAvailableRoadConfigs[i]; RoadTileConfiguration concreteConfigFromAllPossible = possibleConfigsForNewRoad[j]; if (concreteConfigFromAllAvailable.asphaltType == concreteConfigFromAllPossible.asphaltType && concreteConfigFromAllAvailable.propsType == concreteConfigFromAllPossible.propsType && concreteConfigFromAllAvailable.shapeType == concreteConfigFromAllPossible.shapeType) { PossibleTile possibleTile = new PossibleTile(); possibleTile.TileName = concreteConfigFromAllAvailable.tileName; possibleTile.TileWeight = 0; if (!currentAvailablePossibleTileNames.Contains(possibleTile.TileName)) { Debug.Log($"Here was added a new possible tile with name {concreteConfigFromAllAvailable.tileName}"); currentAvailablePossibleTileNames.Add(possibleTile.TileName); PossibleTilesForThis.Add(possibleTile); } } } } SetUpWeights(); Debug.Log("<color=red> Stopped seting up possibilities </color>"); }
public List <RoadTileConfiguration> PossibleRoadConfigsFor(RoadTileConfiguration newRoadTile) { List <RoadTileConfiguration> possibleConfigsForNewRoad = new List <RoadTileConfiguration>(100); List <GameEnums.RoadAsphaltType> possibleAsphaltTypesForNewRoad = PossibleAsphaltTypes(newRoadTile); List <GameEnums.RoadPropsType> possiblePropsTypesForNewRoad = PossiblePropsType(newRoadTile); List <GameEnums.RoadShapeType> possibleShapeTypesForNewRoad = PossibleShapeType(newRoadTile); for (int asphaltTypeCounter = 0; asphaltTypeCounter < possibleAsphaltTypesForNewRoad.Count; asphaltTypeCounter++) { for (int propsTypeCounter = 0; propsTypeCounter < possiblePropsTypesForNewRoad.Count; propsTypeCounter++) { for (int shapeTypesCounter = 0; shapeTypesCounter < possibleShapeTypesForNewRoad.Count; shapeTypesCounter++) { RoadTileConfiguration possibleConfig = new RoadTileConfiguration(); possibleConfig.asphaltType = possibleAsphaltTypesForNewRoad[asphaltTypeCounter]; possibleConfig.propsType = possiblePropsTypesForNewRoad[propsTypeCounter]; possibleConfig.shapeType = possibleShapeTypesForNewRoad[shapeTypesCounter]; possibleConfigsForNewRoad.Add(possibleConfig); } } } return(possibleConfigsForNewRoad); }