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