public override void Apply(CharSheet sheet, int anim) { for (int ii = 0; ii < sheet.AnimData[anim].Sequences.Count; ii++) { DirH dirH; DirV dirV; DirExt.Separate((Dir8)ii, out dirH, out dirV); if (dirH == DirH.Left && !StartRight || dirH == DirH.Right && StartRight) { dirH = dirH.Reverse(); Dir8 flipDir = DirExt.Combine(dirH, dirV); List <CharAnimFrame> frames = new List <CharAnimFrame>(); for (int jj = 0; jj < sheet.AnimData[anim].Sequences[ii].Frames.Count; jj++) { CharAnimFrame origFrame = sheet.AnimData[anim].Sequences[ii].Frames[jj]; CharAnimFrame newFrame = new CharAnimFrame(origFrame); newFrame.Flip = !newFrame.Flip; newFrame.Offset = new Loc(-newFrame.Offset.X, newFrame.Offset.Y); newFrame.ShadowOffset = new Loc(-newFrame.ShadowOffset.X, newFrame.ShadowOffset.Y); frames.Add(newFrame); } sheet.AnimData[anim].Sequences[(int)flipDir].Frames = frames; } } sheet.Collapse(false, true); }
public override void Apply(CharSheet sheet, int anim) { for (int ii = 0; ii < sheet.AnimData[anim].Sequences.Count; ii++) { CharAnimFrame firstFrame = sheet.AnimData[anim].Sequences[ii].Frames[0]; Loc diff = StandardCenter - firstFrame.ShadowOffset; for (int jj = 0; jj < sheet.AnimData[anim].Sequences[ii].Frames.Count; jj++) { CharAnimFrame origFrame = sheet.AnimData[anim].Sequences[ii].Frames[jj]; CharAnimFrame newFrame = new CharAnimFrame(origFrame); newFrame.Offset = newFrame.Offset + diff; newFrame.ShadowOffset = newFrame.ShadowOffset + diff; sheet.AnimData[anim].Sequences[ii].Frames[jj] = newFrame; } } sheet.Collapse(false, true); }
public override void Apply(CharSheet sheet, int anim) { sheet.Collapse(true, true); }