protected override void OnDeselected() { base.OnDeselected(); // throw away frame buffers on deselection. ControlPointVisualiser?.Expire(); BodyPiece.RecyclePath(); }
protected override void Update() { base.Update(); if (IsSelected) { BodyPiece.UpdateFrom(HitObject); } }
protected override void LoadComplete() { base.LoadComplete(); pathVersion = HitObject.Path.Version.GetBoundCopy(); pathVersion.BindValueChanged(_ => updatePath()); BodyPiece.UpdateFrom(HitObject); }
protected override void LoadComplete() { base.LoadComplete(); controlPoints.BindTo(HitObject.Path.ControlPoints); pathVersion.BindTo(HitObject.Path.Version); pathVersion.BindValueChanged(_ => editorBeatmap?.Update(HitObject)); BodyPiece.UpdateFrom(HitObject); }
public HoldNoteMask(DrawableHoldNote hold) : base(hold) { InternalChildren = new Drawable[] { new HoldNoteNoteMask(hold.Head), new HoldNoteNoteMask(hold.Tail), body = new BodyPiece { AccentColour = Color4.Transparent }, }; }
void Init() { if (!initialized) { initialized = true; bodyCount = Random.Range(minBodyCount, maxBodyCount + 1); bodyPieces = new BodyPiece[bodyCount + 2]; positions = new Vector3[bodyCount + 3]; int sortingRenderID = bodyCount + 2; BodyPiece head = Instantiate(headGameObject, transform).GetComponent <BodyPiece>(); head.spriteRenderer.sortingOrder = sortingRenderID; head.transform.localPosition = Vector3.zero; bodyPieces[bodyCount + 1] = head; positions[positions.Length - 1] = head.transform.position; float offsetFrac = 1.0f / bodyCount; for (int i = 0; i < bodyCount; ++i) { sortingRenderID--; BodyPiece body = Instantiate(bodyGameObject, transform).GetComponent <BodyPiece>(); body.transform.localPosition = new Vector3(0, bodyOffset * (i + 1), 0); body.spriteRenderer.sortingOrder = sortingRenderID; body.animator.SetFloat("Offset", i * offsetFrac); bodyPieces[bodyCount + 1 - (i + 1)] = body; positions[(positions.Length - 1) - (i + 1)] = body.transform.position; } BodyPiece tail = Instantiate(tailGameObject, transform).GetComponent <BodyPiece>(); tail.transform.localPosition = new Vector3(0, bodyOffset * (bodyCount + 1), 0); tail.spriteRenderer.sortingOrder = sortingRenderID; tail.animator.SetFloat("Offset", 1); bodyPieces[0] = tail; positions[0] = tail.transform.position; } }
public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => BodyPiece.ReceivePositionalInputAt(screenSpacePos) || ControlPointVisualiser?.Pieces.Any(p => p.ReceivePositionalInputAt(screenSpacePos)) == true;
public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => BodyPiece.ReceivePositionalInputAt(screenSpacePos);