public DrawableHoldNote(HoldNote hitObject, ManiaAction action) : base(hitObject, action) { RelativeSizeAxes = Axes.Both; Height = (float)HitObject.Duration; AddRange(new Drawable[] { // The hit object itself cannot be used for various elements because the tail overshoots it // So a specialized container that is updated to contain the tail height is used fullHeightContainer = new Container { RelativeSizeAxes = Axes.X, Child = glowPiece = new GlowPiece() }, bodyPiece = new BodyPiece { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, RelativeSizeAxes = Axes.X, }, tickContainer = new Container <DrawableHoldNoteTick> { RelativeSizeAxes = Axes.Both, RelativeChildOffset = new Vector2(0, (float)HitObject.StartTime), RelativeChildSize = new Vector2(1, (float)HitObject.Duration) }, head = new DrawableHeadNote(this, action) { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre }, tail = new DrawableTailNote(this, action) { Anchor = Anchor.BottomCentre, Origin = Anchor.TopCentre } }); foreach (var tick in HitObject.NestedHitObjects.OfType <HoldNoteTick>()) { var drawableTick = new DrawableHoldNoteTick(tick) { HoldStartTime = () => holdStartTime }; tickContainer.Add(drawableTick); AddNested(drawableTick); } AddNested(head); AddNested(tail); }
public DrawableHoldNote(HoldNote hitObject, ManiaAction action) : base(hitObject, action) { Container <DrawableHoldNoteTick> tickContainer; RelativeSizeAxes = Axes.X; InternalChildren = new Drawable[] { // The hit object itself cannot be used for various elements because the tail overshoots it // So a specialized container that is updated to contain the tail height is used fullHeightContainer = new Container { RelativeSizeAxes = Axes.X, Child = glowPiece = new GlowPiece() }, bodyPiece = new BodyPiece { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, RelativeSizeAxes = Axes.X, }, tickContainer = new Container <DrawableHoldNoteTick> { RelativeSizeAxes = Axes.Both, ChildrenEnumerable = HitObject.NestedHitObjects.OfType <HoldNoteTick>().Select(tick => new DrawableHoldNoteTick(tick) { HoldStartTime = () => holdStartTime }) }, head = new DrawableHeadNote(this, action) { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre }, tail = new DrawableTailNote(this, action) { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre } }; foreach (var tick in tickContainer) { AddNested(tick); } AddNested(head); AddNested(tail); }
private void load(DrawableHitObject drawableHitObject) { spinner = (DrawableSpinner)drawableHitObject; InternalChildren = new Drawable[] { glow = new GlowPiece(), circle = new CirclePiece { Position = Vector2.Zero, Anchor = Anchor.Centre, }, new RingPiece(), symbol = new SpriteIcon { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(48), Icon = FontAwesome.Solid.Asterisk, Shadow = false, }, }; }
public DrawableSpinner(Spinner s) : base(s) { AlwaysReceiveInput = true; Origin = Anchor.Centre; Position = s.Position; RelativeSizeAxes = Axes.Both; // we are slightly bigger than our parent, to clip the top and bottom of the circle Height = 1.3f; spinner = s; Children = new Drawable[] { circleContainer = new Container { AutoSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Children = new Drawable[] { glow = new GlowPiece(), circle = new CirclePiece { Position = Vector2.Zero, Anchor = Anchor.Centre, }, new RingPiece(), symbol = new TextAwesome { Anchor = Anchor.Centre, Origin = Anchor.Centre, UseFullGlyphHeight = true, TextSize = 48, Icon = FontAwesome.fa_asterisk, Shadow = false, }, } }, mainContainer = new AspectContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Y, Children = new Drawable[] { background = new SpinnerBackground { Alpha = 0.6f, Anchor = Anchor.Centre, Origin = Anchor.Centre, }, disc = new SpinnerDisc(spinner) { Scale = Vector2.Zero, Anchor = Anchor.Centre, Origin = Anchor.Centre, }, circleContainer.CreateProxy(), ticks = new SpinnerTicks { Anchor = Anchor.Centre, Origin = Anchor.Centre, }, } }, }; }
public DrawableSpinner(Spinner s) : base(s) { Origin = Anchor.Centre; Position = s.Position; RelativeSizeAxes = Axes.Both; // we are slightly bigger than our parent, to clip the top and bottom of the circle Height = 1.3f; Spinner = s; InternalChildren = new Drawable[] { circleContainer = new Container { AutoSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Children = new Drawable[] { glow = new GlowPiece(), circle = new CirclePiece { Position = Vector2.Zero, Anchor = Anchor.Centre, }, new RingPiece(), symbol = new SpriteIcon { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(48), Icon = FontAwesome.Solid.Asterisk, Shadow = false, }, } }, mainContainer = new AspectContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Y, Children = new[] { Background = new SpinnerBackground { Alpha = 0.6f, Anchor = Anchor.Centre, Origin = Anchor.Centre, }, Disc = new SpinnerDisc(Spinner) { Scale = Vector2.Zero, Anchor = Anchor.Centre, Origin = Anchor.Centre, }, circleContainer.CreateProxy(), Ticks = new SpinnerTicks { Anchor = Anchor.Centre, Origin = Anchor.Centre, }, } }, SpmCounter = new SpinnerSpmCounter { Anchor = Anchor.Centre, Origin = Anchor.Centre, Y = 120, Alpha = 0 } }; }