Example #1
0
        /// <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;
        }
Example #2
0
 public FrameMakeTests_LastFrameCase()
 {
     rollRecorder = new RollRecorder();
     frameMaker   = new FrameMaker(rollRecorder, new GameConfig {
         MaxFrame = maxFrameCount
     });
 }
Example #3
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
    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());
 }