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); }
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); }