public TargetCubeData(TargetCubeData t) { this.Id = t.Id; this.horizontalPosition = t.horizontalPosition; this.vecticalPosition = t.vecticalPosition; this.orientation = t.orientation; this.cubeColor = t.cubeColor; }
private List <TargetCubeData> GenerateDefaultPattern(Tuple <int, int> tuple) { List <TargetCubeData> targetCubeDatas = new List <TargetCubeData>(); for (int i = 0; i < tuple.Item2; i++) { TargetCubeData cube = new TargetCubeData { Id = tuple.Item1 + i, cubeColor = CubeColor.Blue, horizontalPosition = HorizontalPosition.Right, vecticalPosition = VerticalPosition.Bot, orientation = Orientation.Top }; if ((tuple.Item1 + i) % 2 == 0) { cube.orientation = Orientation.Bot; } targetCubeDatas.Add(cube); } return(targetCubeDatas); }
private List <TargetCubeData> GenerateFromFileAndPatterns(string filePath) { // From 2D array of bool to Tuple<Index,Size> List <List <bool> > lines = ExtractBoolArrayFromFile(Application.dataPath + "/" + filePath); List <bool> bools = Convert2dBoolArrayTo1d(lines); List <Tuple <int, int> > tuples = GenerateTupleFromBool(bools); // Generate random targetCubeData for each tuple List <TargetCubeData> targetCubeDatas = new List <TargetCubeData>(); foreach (Tuple <int, int> t in tuples) { //Debug.Log(t); List <Pattern> patterns = ((AudioData)target).patternManager.listPatterns.FindAll(p => p.length == t.Item2); Pattern pattern = null; if (patterns.Count > 0) { pattern = patterns[UnityEngine.Random.Range(0, patterns.Count)]; } if (pattern != null) { foreach (TargetCubeData t2 in pattern.targetCubeDatas) { TargetCubeData targetCube = new TargetCubeData(t2); targetCube.Id = t2.Id + t.Item1; targetCubeDatas.Add(targetCube); } } else { targetCubeDatas.AddRange(GenerateDefaultPattern(t)); } } return(targetCubeDatas); }
private List <TargetCubeData> Randomizer() { UnityEngine.Random.InitState(randomSeed.intValue); List <TargetCubeData> targetCubesData = new List <TargetCubeData>(); CubeColor cubeColor = (CubeColor)RandomEnum(new int[] { (int)CubeColor.Blue, (int)CubeColor.Red }); for (int i = 0; i < nbFrames.intValue; i++) { //Setting bool isNotEmpty = RandomBool(isNotEmptyChance.floatValue); bool isDouble = RandomBool(isDoubleChance.floatValue); bool isTop = RandomBool(isTopChance.floatValue); bool isExtrem = RandomBool(isExtremChance.floatValue); bool isSameColor = RandomBool(isSameColorChance.floatValue); if (isNotEmpty) { TargetCubeData current = new TargetCubeData(); current.Id = i; if (isExtrem) { current.horizontalPosition = (HorizontalPosition)RandomEnum(new int[] { (int)HorizontalPosition.ExtLeft, (int)HorizontalPosition.ExtRight }); } else { current.horizontalPosition = (HorizontalPosition)RandomEnum(new int[] { (int)HorizontalPosition.Left, (int)HorizontalPosition.Right }); } if (isTop) { current.vecticalPosition = VerticalPosition.Top; } else { current.vecticalPosition = VerticalPosition.Bot; } current.orientation = (Orientation)RandomEnum(new int[] { 0, 1, 2, 3 }); current.cubeColor = cubeColor; targetCubesData.Add(current); if (isDouble) { TargetCubeData current2 = new TargetCubeData(); current2.Id = i; UnityEngine.Random.InitState(i); if (isExtrem) { current2.horizontalPosition = (HorizontalPosition)RandomEnum(new int[] { (int)HorizontalPosition.ExtLeft, (int)HorizontalPosition.ExtRight }); } else { current2.horizontalPosition = (HorizontalPosition)RandomEnum(new int[] { (int)HorizontalPosition.Left, (int)HorizontalPosition.Right }); } if (!isTop) { current2.vecticalPosition = VerticalPosition.Top; } else { current2.vecticalPosition = VerticalPosition.Bot; } current2.orientation = (Orientation)RandomEnum(new int[] { 0, 1, 2, 3 }); if (cubeColor == CubeColor.Blue) { current2.cubeColor = CubeColor.Red; } else { current2.cubeColor = CubeColor.Blue; } targetCubesData.Add(current2); } if (!isSameColor) { if (cubeColor == CubeColor.Blue) { cubeColor = CubeColor.Red; } else { cubeColor = CubeColor.Blue; } } } } return(targetCubesData); }