Exemple #1
0
    public void DisplayOptions(FaceBuilder.FaceSlot slot, SlotsPanel.SlotOptions options)
    {
        title.text = slot.name;

        var children = new List <GameObject>();

        foreach (Transform child in optionPanel.transform)
        {
            children.Add(child.gameObject);
        }
        children.ForEach(child => Destroy(child));

        AddLabel("Style");
        GameObject optionsGrid = AddGrid(new GameObject[0]);

        foreach (Sprite sprite in faceBuilder.elementOptions[slot.name])
        {
            // Set up controls for options
            AddButton(optionsGrid, sprite, () =>
            {
                faceBuilder.currentFace.UpdateSprite(slot, sprite);
                DisplayOptions(slot, options);
            }, 1f, faceBuilder.currentFace.faceElements[slot.name].getCurrentTint());
        }

        RenderOptions(slot, options);

        LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)optionPanel.transform);
    }
Exemple #2
0
    public void ShowOptions(FaceBuilder.FaceSlot slot)
    {
        SlotOptions options = _slotOptionsCache.ContainsKey(slot.name) ? _slotOptionsCache[slot.name] : new SlotOptions();

        slotOptionsPanel.DisplayOptions(slot, options);
        gameObject.SetActive(false);
    }
Exemple #3
0
 public void UpdateTint(FaceBuilder.FaceSlot slot, Color tint)
 {
     faceElements[slot.name].setTint(tint);
     if (slot.mirrorX)
     {
         faceElements[slot.name + "-mirror"].setTint(tint);
     }
 }
Exemple #4
0
 public void UpdateScale(FaceBuilder.FaceSlot slot, float scale)
 {
     faceElements[slot.name].setScale(scale);
     if (slot.mirrorX)
     {
         faceElements[slot.name + "-mirror"].setScale(scale);
     }
 }
Exemple #5
0
 public void UpdateVerticalOffset(FaceBuilder.FaceSlot slot, float newY)
 {
     faceElements[slot.name].setVerticalOffset(newY);
     if (slot.mirrorX)
     {
         faceElements[slot.name + "-mirror"].setVerticalOffset(newY);
     }
 }
Exemple #6
0
 public void UpdateHorizontalOffset(FaceBuilder.FaceSlot slot, float newX)
 {
     faceElements[slot.name].setHorizontalOffset(newX);
     if (slot.mirrorX)
     {
         faceElements[slot.name + "-mirror"].setHorizontalOffset(newX);
     }
 }
Exemple #7
0
 public void UpdateOffset(FaceBuilder.FaceSlot slot, Vector2 newOffset)
 {
     faceElements[slot.name].setOffset(newOffset);
     if (slot.mirrorX)
     {
         faceElements[slot.name + "-mirror"].setOffset(newOffset);
     }
 }
Exemple #8
0
 public void UpdateSprite(FaceBuilder.FaceSlot slot, Sprite sprite)
 {
     faceElements[slot.name].setSprite(sprite);
     if (slot.mirrorX)
     {
         faceElements[slot.name + "-mirror"].setSprite(sprite);
     }
 }
Exemple #9
0
    public void RenderOptions(FaceBuilder.FaceSlot slot, SlotsPanel.SlotOptions options)
    {
        if (options.adjustHorizontalPosition)
        {
            AddLabel("Horizontal Position");
            AddSlider(slot.defaultOffset.x, slot.minOffset.x, slot.maxOffset.x, x => faceBuilder.currentFace.UpdateHorizontalOffset(slot, x));
        }

        if (options.adjustVerticalPosition)
        {
            AddLabel("Vertical Position");
            AddSlider(slot.defaultOffset.y, slot.minOffset.y, slot.maxOffset.y, y => faceBuilder.currentFace.UpdateVerticalOffset(slot, y));
        }

        if (options.scales != null && options.scales.Length > 0)
        {
            AddLabel("Size");
            GameObject scaleGrid = AddGrid(new GameObject[0]);
            foreach (float scale in options.scales)
            {
                AddButton(
                    scaleGrid,
                    faceBuilder.currentFace.faceElements[slot.name].getCurrentSprite(),
                    () => faceBuilder.currentFace.UpdateScale(slot, scale),
                    scale,
                    Color.white);
            }
        }

        if (options.tints != null && options.tints.Length > 0)
        {
            AddLabel("Tint");
            GameObject tintGrid = AddGrid(new GameObject[0]);
            foreach (Color tint in options.tints)
            {
                AddButton(
                    tintGrid,
                    faceBuilder.currentFace.faceElements[slot.name].getCurrentSprite(),
                    () =>
                {
                    faceBuilder.currentFace.UpdateTint(slot, tint);
                    DisplayOptions(slot, options);
                },
                    1f,
                    tint);
            }
        }
    }