/* ----------------------------------------------- Functions */ #region Functions public bool ValueGet(ref float outValue, ref int outFrameKey, Library_SpriteStudio6.Data.Animation.PackAttribute.ContainerFloat container, ref Library_SpriteStudio6.Data.Animation.PackAttribute.ArgumentContainer argument ) { return(Library_SpriteStudio6.Data.Animation.PackAttribute.StandardUncompressed.ValueGet(ref outValue, ref outFrameKey, argument.Frame, container.TableValue)); }
public bool Pack(Library_SpriteStudio6.Data.Animation.PackAttribute.ContainerFloat container, string nameAttribute, int countFrame, Library_SpriteStudio6.Data.Animation.Parts.FlagBitStatus flagStatusParts, int[] tableOrderDraw, int[] tableOrderPreDraw, params Library_SpriteStudio6.Data.Animation.Attribute.Importer.AttributeFloat[] listKeyData ) { /* MEMO: "ListKeyData.Length" is always 1 */ container.TableCodeValue = new Library_SpriteStudio6.Data.Animation.PackAttribute.CodeValueContainer[0]; /* MEMO: In attributes with the float value, default value when has no key differs only "RateOpacity". */ /* RateOpacity = 1.0f / other = 0.0f */ float value; container.TableValue = new float[countFrame]; switch (nameAttribute) { case Library_SpriteStudio6.Data.Animation.Attribute.Importer.NameAttributeRateOpacity: /* MEMO: Attribute"RateOpacity" inherits value. (Caution that "RateOpacityLocal" no-inherit value) */ for (int i = 0; i < countFrame; i++) { Library_SpriteStudio6.Data.Animation.Attribute.Importer.Inheritance.ValueGetFloatMultiple(out value, listKeyData[0], i, 1.0f); container.TableValue[i] = value; } break; case Library_SpriteStudio6.Data.Animation.Attribute.Importer.NameAttributePowerMask: /* MEMO: Caution */ /* Key-Data has 0.0 to 255.0 value, interpolating precision is with integer. */ /* Runtime-Data has 1.0 to 0.0 value. */ if (0 >= listKeyData[0].CountGetKey()) { container.TableValue = new float[0]; return(true); } for (int i = 0; i < countFrame; i++) { if (false == listKeyData[0].ValueGet(out value, i)) { value = 0.0f; } container.TableValue[i] = (255.0f - Mathf.Floor(value)) * (1.0f / 255.0f); } break; default: if (0 >= listKeyData[0].CountGetKey()) { container.TableValue = new float[0]; return(true); } for (int i = 0; i < countFrame; i++) { if (false == listKeyData[0].ValueGet(out value, i)) { value = 0.0f; } container.TableValue[i] = value; } break; } return(true); }
public int CountGetValue(Library_SpriteStudio6.Data.Animation.PackAttribute.ContainerFloat container) { return(container.TableValue.Length); }