Esempio n. 1
0
 public static void Set(ColorMask mask)
 {
     r = mask.HasFlag(ColorMask.R);
     g = mask.HasFlag(ColorMask.G);
     b = mask.HasFlag(ColorMask.B);
     a = mask.HasFlag(ColorMask.A);
 }
Esempio n. 2
0
        public bool ChannelSlider(ColorMask inspectedMask, ref Color col, Texture icon = null, bool slider = true)
        {
            var changed = false;

            var channel = inspectedMask.ToColorChannel();

            if (icon)
            {
                icon.write(alphaBlend: false);
            }

            icon = channel.GetIcon();

            var label          = inspectedMask.ToText();
            var channelEnabled = mask.HasFlag(inspectedMask);

            if (InspectedPainter && InspectedPainter.meshEditing && MeshEditorManager.MeshTool == VertexColorTool.inst)
            {
                var mat = InspectedPainter.Material;
                if (mat)
                {
                    var tag = mat.Get(inspectedMask.ToString(), ShaderTags.VertexColorRole);

                    if (!tag.IsNullOrEmpty())
                    {
                        if (channelEnabled)
                        {
                            (tag + ":").nl();
                        }
                        else
                        {
                            label = tag + " ";
                        }
                    }
                }
            }



            if (channelEnabled ? icon.Click(label) : "{0} channel ignored".F(label).toggleIcon(ref channelEnabled, true).changes(ref changed))
            {
                mask ^= inspectedMask;
            }

            if (slider && channelEnabled)
            {
                float val = channel.GetValueFrom(col);
                if (pegi.edit(ref val, 0, 1).nl(ref changed))
                {
                    channel.SetValueOn(ref col, val);
                }
            }

            return(changed);
        }
Esempio n. 3
0
        public static Color ModifyColor(this Color srcColor, byte clrDecrement, ColorMask mask, Vector3Int colorMaskModifier)
        {
            Color clr = new Color(srcColor.R, srcColor.G, srcColor.B, srcColor.A);

            if (mask.HasFlag(ColorMask.R))
            {
                clr.R = (byte)Math.Clamp(clr.R + clrDecrement * colorMaskModifier.R, 0, 255);
            }
            if (mask.HasFlag(ColorMask.G))
            {
                clr.G = (byte)Math.Clamp(clr.G + clrDecrement * colorMaskModifier.G, 0, 255);
            }
            if (mask.HasFlag(ColorMask.B))
            {
                clr.B = (byte)Math.Clamp(clr.B + clrDecrement * colorMaskModifier.B, 0, 255);
            }
            return(clr);
        }
Esempio n. 4
0
        public TextureMeta SetPixels(Color col, ColorMask mask)
        {
            var p = Pixels;

            bool r = mask.HasFlag(ColorMask.R);
            bool g = mask.HasFlag(ColorMask.G);
            bool b = mask.HasFlag(ColorMask.B);
            bool a = mask.HasFlag(ColorMask.A);

            for (var i = 0; i < p.Length; i++)
            {
                var pix = p[i];
                pix.r = r ? col.a : pix.r;
                pix.g = g ? col.g : pix.g;
                pix.b = b ? col.b : pix.b;
                pix.a = a ? col.a : pix.a;
                p[i]  = pix;
            }

            return(this);
        }
Esempio n. 5
0
 public static Vector4 ToVector4(this ColorMask mask) => new Vector4(
     mask.HasFlag(ColorMask.R) ? 1 : 0,
     mask.HasFlag(ColorMask.G) ? 1 : 0,
     mask.HasFlag(ColorMask.B) ? 1 : 0,
     mask.HasFlag(ColorMask.A) ? 1 : 0);