Пример #1
0
                public Element AddItem(ABC.Item item)
                {
                    var element = new Element(item);

                    elements.Add(element);
                    return(element);
                }
Пример #2
0
        public bool SetItemColor(ABC.Item item, Color color)
        {
            if (gameObjectMap.TryGetValue(item.id, out GameObject obj))
            {
                if (!spriteRendererCache.TryGetValue(item.id, out var spriteRenderers))
                {
                    spriteRenderers = Util.GatherSpriteRenderers(obj);
                    spriteRendererCache[item.id] = spriteRenderers;
                }

                foreach (var spriteRenderer in spriteRenderers)
                {
                    spriteRenderer.color = color;
                }

                return(true);
            }

            return(false);
        }
Пример #3
0
        private ABC.Pitch GetPitchForItem(ABC.Item item)
        {
            switch (item.type)
            {
            case ABC.Item.Type.Note:
                var note = item as ABC.Note;
                return(note.pitch);

            case ABC.Item.Type.Chord:
                var chord = item as ABC.Chord;
                if (noteDirection == NoteCreator.NoteDirection.Down)
                {
                    return(chord.notes[0].pitch);
                }
                else
                {
                    return(chord.notes[chord.notes.Length - 1].pitch);
                }

            default:
                throw new LayoutException($"Invalid item in beam: {id}");
            }
        }
Пример #4
0
        private void AddDecorations(ABC.Item item, IReadOnlyList <string> decorations, Bounds referenceBounding, GameObject container, ref Bounds bounds)
        {
            if (decorations != null)
            {
                string decorationText = "";
                foreach (var decoration in decorations)
                {
                    if (fingeringDecorations.Contains(decoration))
                    {
                        if (decorationText.Length > 0)
                        {
                            decorationText += '\n';
                        }
                        decorationText += decoration;
                    }
                }

                if (decorationText.Length > 0)
                {
                    var text = spriteCache.GetTextObject();
                    text.text             = decorationText;
                    text.transform.parent = container.transform;

                    var decorationHeight = Mathf.Max(referenceBounding.max.y + 0.2f, minDecorationHeight);
                    var textPos          = new Vector3(referenceBounding.min.x, decorationHeight, 0.0f);
                    text.transform.position = textPos;

                    text.ForceMeshUpdate();

                    Bounds b = new Bounds();
                    b.SetMinMax(textPos, textPos + text.textBounds.size);

                    bounds.Encapsulate(b);
                }
            }
        }
Пример #5
0
 public Element(ABC.Item item)
 {
     this.item = item;
 }