Exemplo n.º 1
0
    public Frame TryGetFrame(FrameRange frameRangeConstraints, EntryCountPreference ecp, System.Random random = null)
    {
        random = random ?? new System.Random();

        List <Frame> preferredFrames = PreferredFrames(random);

        preferredFrames.Shuffle(random);
        if (ecp == EntryCountPreference.Min)
        {
            preferredFrames.Sort((f, g) => f.EntryCount - g.EntryCount);
        }
        else if (ecp == EntryCountPreference.Max)
        {
            preferredFrames.Sort((f, g) => g.EntryCount - f.EntryCount);
        }

        //Debug.Log(preferredFrames[0].EntryCount);

        // Debug.Log(preferredFrames[0]);
        // Debug.Log(frameRangeConstraints);
        // Debug.Log("TryGetFrame: " + frameRangeConstraints.Contains(preferredFrames[0]));

        foreach (Frame preferredFrame in preferredFrames)
        {
            if (frameRangeConstraints.Contains(preferredFrame))
            {
                return(preferredFrame);
            }
        }
        return(null);
    }
Exemplo n.º 2
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);
    }