예제 #1
0
        public static SharpnessInfo ApplySharpnessModifier(ushort modifier, SharpnessInfo sharpness)
        {
            sharpness.ToArray(sharpnessValues);

            for (int i = sharpnessValues.Length - 1; i >= 0; i--)
            {
                if (sharpnessValues[i] == 0)
                {
                    continue;
                }

                if (modifier > sharpnessValues[i])
                {
                    modifier          -= sharpnessValues[i];
                    sharpnessValues[i] = 0;
                }
                else
                {
                    sharpnessValues[i] -= modifier;
                    break;
                }
            }

            return(new SharpnessInfo(
                       sharpnessValues[0],
                       sharpnessValues[1],
                       sharpnessValues[2],
                       sharpnessValues[3],
                       sharpnessValues[4],
                       sharpnessValues[5],
                       sharpnessValues[6]
                       ));
        }
        public void TryAddSharpnessValues(uint id, ushort[] sharpnessValues)
        {
            if (Table.ContainsKey(id))
            {
                return;
            }

            var sharpnessInfo = SharpnessInfo.FromAbsoluteValues(
                sharpnessValues[Red],
                sharpnessValues[Orange],
                sharpnessValues[Yellow],
                sharpnessValues[Green],
                sharpnessValues[Blue],
                sharpnessValues[White],
                sharpnessValues[Purple]
                );

            Table.Add(id, sharpnessInfo);
        }