/// <summary> /// Prepares all fields for saving a new animation. /// </summary> /// <param name="animationPath">The animation folder's path.</param> void PrepareNewAnimation(string animationPath) { array = CopyTemplateArray(); if (profile.Frames is object) { frameMaker = new FrameMaker(animationPath, profile, array); } else { frameMaker = null; } if (profile.Audio is object) { audioMaker = new AudioMaker(animationPath, profile, array); } else { audioMaker = null; } currentSorter[0] = 0; finished[0] = false; }
public FrameMakeTests_LastFrameCase() { rollRecorder = new RollRecorder(); frameMaker = new FrameMaker(rollRecorder, new GameConfig { MaxFrame = maxFrameCount }); }
private MapNode TryAddNodeToMap(FrameMaker frameMaker, FrameRange frameRange, EntryCountPreference ecp) { //Debug.Log("trying to add node"); Frame frame = frameMaker.TryGetFrame(frameRange, ecp); if (frame == null) { return(null); } Debug.Log("Adding frame with " + frame.EntryCount + " entries"); MapNode newNode = new MapNode(frame); NodeToFrameMaker[newNode] = frameMaker; map.AddMapNode(newNode); return(newNode); }
private bool TryConnectTwoNodes(List <MapNode> chosenNodes, List <FrameMaker> fillerFrameMakers, out MapNode newNode) { newNode = null; List <Edge> chosenEntries = new List <Edge>() { chosenNodes[0].UnjoinedEntries.RandomElement(random), chosenNodes[1].UnjoinedEntries.RandomElement(random) }; if (chosenEntries[0] == chosenEntries[1]) { return(false); } if (chosenEntries[0] == chosenEntries[1]) { Debug.Log("Entries are the same edge, so not going to connect"); } //else //{ // frameRange = chosenNodes[0].frame.FrameRangeOff(chosenEntries[0]) // .Intersection(chosenNodes[1].frame.FrameRangeOff(chosenEntries[1])); // frameRange = frameRange.WithOptionalEntriesRemoved(); //} FrameRange frameRange = chosenNodes[0].frame.FrameRangeOff(chosenEntries[0]) .Intersection(chosenNodes[1].frame.FrameRangeOff(chosenEntries[1])); //frameRange = frameRange.WithOptionalEntriesRemoved(); FrameMaker frameMaker = fillerFrameMakers.RandomElement(random); newNode = TryAddNodeToMap(frameMaker, frameRange, EntryCountPreference.Min); if (newNode == null) { return(false); } Debug.Log("Connected: " + map.MapNodes.IndexOf(chosenNodes[0]) + " + " + map.MapNodes.IndexOf(chosenNodes[1])); chosenNodes[0].Join(chosenEntries[0], newNode); chosenNodes[1].Join(chosenEntries[1], newNode); //map.AddMapNodes(chosenNodes); return(true); }
private bool TryCapNode(MapNode chosenNode, List <FrameMaker> fillerFrameMakers) { Edge chosenEntry = chosenNode.UnjoinedEntries.RandomElement(random); FrameRange frameRange = chosenNode.frame.FrameRangeOff(chosenEntry); //frameRange = frameRange.WithOptionalEntriesRemoved(); FrameMaker frameMaker = fillerFrameMakers.RandomElement(random); MapNode newNode = TryAddNodeToMap(frameMaker, frameRange, EntryCountPreference.Min); if (newNode == null) { return(false); } chosenNode.Join(chosenEntry, newNode); //map.AddMapNode(chosenNode); return(true); }
public FrameMakeTests() { rollRecorder = new RollRecorder(); frameMaker = new FrameMaker(rollRecorder, new GameConfig()); }