public void SetActiveFrameObject(RageSpriteFrame rsFrame) { foreach (RageSpriteFrame thisFrame in AllFrames) { thisFrame.Enabled = (thisFrame.gO == rsFrame.gO); } }
public void AddFrame(GameObject frameObject) { RageSpriteFrame hostFrame = HostRageSprite.AllFrames.ContainsFrame(frameObject); RageSpriteFrame localFrame = Frames.ContainsFrame(frameObject); bool hostFrameFound = hostFrame != null; bool localFrameFound = localFrame != null; if (hostFrameFound) { //if (!localFrameFound) Frames.Add(hostFrame); } else { if (localFrameFound) { HostRageSprite.AllFrames.Add(localFrame); UpdateAllFramesIdx(localFrame); } else { var newRageSpriteFrame = new RageSpriteFrame(frameObject); Frames.Add(newRageSpriteFrame); HostRageSprite.AllFrames.Add(newRageSpriteFrame); UpdateAllFramesIdx(newRageSpriteFrame); } } }
private void ClearFromCacheCheck(RageSpriteFrame frame) { bool foundAnotherReference = false; foreach (RageSpriteAnimation thisAnim in HostRageSprite.Animations) { if (thisAnim == this) { continue; // Required by RemoveAllFrames } if (thisAnim.Frames.Contains(frame)) { foundAnotherReference = true; } } var removalIdx = HostRageSprite.AllFrames.IndexOf(frame); if (!foundAnotherReference && removalIdx != -1) { HostRageSprite.AllFrames.RemoveAt(removalIdx); } }
private void UpdateAllFramesIdx(RageSpriteFrame localFrame) { var newIdx = HostRageSprite.AllFrames.IndexOf(localFrame); HostRageSprite.AllFrames[newIdx].globalIdx = newIdx; }