public HitExplosion(DrawableHitObject judgedObject) { bool isTick = judgedObject is DrawableHoldNoteTick; Origin = Anchor.Centre; RelativeSizeAxes = Axes.X; Y = NotePiece.NOTE_HEIGHT / 2; Height = NotePiece.NOTE_HEIGHT; // scale roughly in-line with visual appearance of notes Scale = new Vector2(isTick ? 0.4f : 0.8f); InternalChild = circle = new CircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Masking = true, // we want our size to be very small so the glow dominates it. Size = new Vector2(0.1f), EdgeEffect = new EdgeEffectParameters { Type = EdgeEffectType.Glow, Colour = Interpolation.ValueAt(0.1f, judgedObject.AccentColour, Color4.White, 0, 1), Radius = 100, }, Child = new Box { Alpha = 0, RelativeSizeAxes = Axes.Both, AlwaysPresent = true } }; }
public DrawableDrumRollTick(DrumRollTick tick) : base(tick) { this.tick = tick; Anchor = Anchor.CentreLeft; Origin = Anchor.Centre; RelativePositionAxes = Axes.X; Size = new Vector2(tick_size); Children = new[] { bodyContainer = new CircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Masking = true, BorderThickness = tick_border_width, BorderColour = Color4.White, Children = new[] { new Box { RelativeSizeAxes = Axes.Both, Alpha = tick.FirstTick ? 1 : 0, AlwaysPresent = true } } } }; }
private void load(OsuColour colours, OverlayColourProvider colourProvider) { InternalChild = new CircularContainer { Masking = true, AutoSizeAxes = Axes.Both, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = colourProvider?.Background5 ?? colours.Gray2, }, new OsuSpriteText { Margin = new MarginPadding { Horizontal = 10f, Vertical = 2f }, Text = BeatmapsetsStrings.FeaturedArtistBadgeLabel.ToUpper(), Font = OsuFont.GetFont(size: 10, weight: FontWeight.SemiBold), Colour = colours.Blue1 } } }; }
public ModSwitchTiny(IMod mod) { this.mod = mod; Size = new Vector2(73, DEFAULT_HEIGHT); InternalChild = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Children = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both }, acronymText = new OsuSpriteText { Anchor = Anchor.Centre, Origin = Anchor.Centre, Shadow = false, Font = OsuFont.Numeric.With(size: 24, weight: FontWeight.Black), Text = mod.Acronym, Margin = new MarginPadding { Top = 4 } } } }; }
private void load(DrawableHitObject drawableObject, ISkinSource skin) { var slider = (DrawableSlider)drawableObject; RelativeSizeAxes = Axes.Both; float radius = skin.GetConfig <OsuSkinConfiguration, float>(OsuSkinConfiguration.SliderPathRadius)?.Value ?? OsuHitObject.OBJECT_RADIUS; InternalChild = new CircularContainer { Masking = true, RelativeSizeAxes = Axes.Both, Scale = new Vector2(radius / OsuHitObject.OBJECT_RADIUS), Anchor = Anchor.Centre, Origin = Anchor.Centre, Blending = BlendingParameters.Additive, BorderThickness = 10, BorderColour = Color4.White, Alpha = 1, Child = box = new Box { Blending = BlendingParameters.Additive, RelativeSizeAxes = Axes.Both, Colour = Color4.White, AlwaysPresent = true, Alpha = 0 } }; slider.Tracking.BindValueChanged(trackingChanged, true); }
public CancelButton() { AutoSizeAxes = Axes.Both; Child = new CircularContainer { Masking = true, Height = 25, AutoSizeAxes = Axes.X, Children = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both }, new OsuSpriteText { Anchor = Anchor.Centre, Origin = Anchor.Centre, Font = OsuFont.GetFont(size: 12, weight: FontWeight.Bold), Margin = new MarginPadding { Horizontal = 20 }, Text = CommonStrings.ButtonsCancel } } }; }
public AudioBox(Container <Drawable> defaultParent, Container <ContainerWithEffect> effectContainers) { this.defaultParent = defaultParent; this.effectContainers = effectContainers; currentContainer = defaultParent; Origin = Anchor.Centre; Size = new Vector2(50); InternalChild = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.HotPink, }, new SpriteIcon { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Size = new Vector2(0.5f), Icon = FontAwesome.Solid.VolumeUp, } } }; }
public SupporterIcon() { AutoSizeAxes = Axes.X; InternalChild = content = new CircularContainer { RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, Masking = true, Alpha = 0, Children = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both }, iconContainer = new FillFlowContainer { Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, Height = 0.6f, Anchor = Anchor.Centre, Origin = Anchor.Centre } } }; }
private void load(OsuColour colours, OverlayColourProvider colourProvider) { InternalChild = new CircularContainer { Masking = true, AutoSizeAxes = Axes.Both, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = colourProvider?.Background5 ?? colours.Gray2, }, new OsuSpriteText { Margin = new MarginPadding { Horizontal = 10f, Vertical = 2f }, Text = "EXPLICIT", Font = OsuFont.GetFont(size: 10, weight: FontWeight.SemiBold), Colour = OverlayColourProvider.Orange.Colour2, } } }; }
private void load(OsuColour colours) { Size = new Vector2(50); Masking = true; CornerRadius = 25; CornerExponent = 2; activeColour = colours.PinkDarker; inactiveColour = OsuColour.Gray(0.8f); EdgeEffect = new EdgeEffectParameters { Colour = Color4.Black.Opacity(0.4f), Type = EdgeEffectType.Shadow, Radius = 5, }; Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.White, }, colouredPart = new CircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Size = new Vector2(0.8f), BorderThickness = 4, BorderColour = Color4.White, Colour = inactiveColour, Children = new Drawable[] { new Box { AlwaysPresent = true, //for border rendering RelativeSizeAxes = Axes.Both, Colour = Color4.Transparent, }, new SpriteIcon { Anchor = Anchor.Centre, Origin = Anchor.Centre, Shadow = false, Colour = OsuColour.Gray(0.95f), Icon = icon, Size = new Vector2(20), } } } }; }
private void load(TextureStore textures, APIController api, ImageFinderOverlay imageFinder, SplashInfoOverlay infoOverlay) { AutoSizeAxes = Axes.Both; Child = new CircularContainer { BorderColour = Colour4.Black, BorderThickness = 3.5f, Masking = true, Size = ButtonSize, Children = new Drawable[] { image = new Sprite { RelativeSizeAxes = Axes.Both, Texture = textures.Get($"https://gamestogo.company/api/Users/DownloadImage/{api.LocalUser.Value.ID}"), }, hoverContainer = new Container { RelativeSizeAxes = Axes.Both, Alpha = 0, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Colour4.Black.Opacity(0.5f), }, new SpriteIcon { Anchor = Anchor.Centre, Origin = Anchor.BottomCentre, Icon = FontAwesome.Regular.Images, Size = new Vector2(60), }, new SpriteText { Anchor = Anchor.Centre, Origin = Anchor.TopCentre, Font = new FontUsage(size: 40), Text = @"Cambiar imagen", }, }, }, }, }; Action = () => imageFinder.Show(i => { var req = new UploadUserImageRequest(i); req.Success += () => image.Texture = Texture.FromStream(new MemoryStream(i)); req.Failure += e => infoOverlay.Show(@"Falló como siempre", Colour4.DarkRed); api.Queue(req); }); }
public OsuColourPreview() { InternalChild = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Child = preview = new Box { RelativeSizeAxes = Axes.Both } }; }
public Handle() { Size = new Vector2(marker_size); InternalChild = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Child = new Box { RelativeSizeAxes = Axes.Both } }; }
private void load(OsuColour colours) { AddRangeInternal(new Drawable[] { fill = new Box { Alpha = 0, RelativeSizeAxes = Axes.Both, Colour = colours.Gray6 }, new CircularContainer { EdgeEffect = new EdgeEffectParameters { Colour = colours.GrayF.Opacity(0.8f), Type = EdgeEffectType.Shadow, Radius = 1, }, RelativeSizeAxes = Axes.Both, Masking = true, BorderThickness = 20, BorderColour = Color4.White, Anchor = Anchor.Centre, Origin = Anchor.Centre, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Alpha = 0, AlwaysPresent = true }, } }, content = new CircularContainer { EdgeEffect = new EdgeEffectParameters { Colour = Color4.Black.Opacity(0.2f), Type = EdgeEffectType.Shadow, Radius = 15, }, RelativeSizeAxes = Axes.Both, Masking = true, Size = new Vector2(0.88f), Anchor = Anchor.Centre, Origin = Anchor.Centre, } }); }
protected override void LoadComplete() { Child = new CircularContainer { Masking = true, RelativeSizeAxes = Axes.Both, EdgeEffect = new EdgeEffectParameters { Hollow = true, Type = EdgeEffectType.Glow, Radius = 15, Colour = Colour, } }; }
public RankChartLineGraph() { Add(ball = new CircularContainer { Size = new Vector2(8), Masking = true, Origin = Anchor.Centre, Alpha = 0, RelativePositionAxes = Axes.Both, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both } } }); }
public OsuMarker() { AutoSizeAxes = Axes.Both; InternalChild = new CircularContainer { Size = new Vector2(20), Masking = true, BorderColour = Colour4.White, BorderThickness = control_border_thickness, EdgeEffect = createShadowParameters(), Child = previewBox = new Box { RelativeSizeAxes = Axes.Both } }; }
public JudgementLine() { RelativeSizeAxes = Axes.X; RelativePositionAxes = Axes.Y; Height = 3; InternalChild = new CircularContainer { Masking = true, RelativeSizeAxes = Axes.Both, Child = new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.White, } }; }
public FlashPiece() { RelativeSizeAxes = Axes.Both; Size = new Vector2(1f); Anchor = Anchor.Centre; Origin = Anchor.Centre; Blending = BlendingParameters.Additive; Alpha = 0; Child = new CircularContainer { Masking = true, RelativeSizeAxes = Axes.Both, Child = new Box { RelativeSizeAxes = Axes.Both } }; }
public Visualiser(Easing easing) { Easing = easing; Size = new Vector2(default_size); Padding = new MarginPadding(5); InternalChildren = new Drawable[] { new Container { RelativeSizeAxes = Axes.Both, Anchor = Anchor.BottomCentre, Origin = Anchor.BottomCentre, Children = new Drawable[] { new Box { Colour = Color4.DimGray, RelativeSizeAxes = Axes.Both }, dot = new CircularContainer { Origin = Anchor.Centre, RelativePositionAxes = Axes.Both, Size = new Vector2(10), Masking = true, Child = new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.White } } } }, new SpriteText { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Y = 10, Text = easing.ToString() }, }; }
private void load() { Action += () => gameScreen.SelectPlayer(Model); Enabled.BindTo(gameScreen.EnablePlayerSelection); Enabled.Value = false; currentSelected.BindTo(gameScreen.CurrentSelectedPlayer); RelativeSizeAxes = Axes.Y; Width = 180; Child = new FillFlowContainer { RelativeSizeAxes = Axes.Both, Direction = FillDirection.Vertical, Children = new Drawable[] { borderContainer = new CircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, BorderColour = Colour4.White, BorderThickness = 3.5f, Masking = true, Size = new Vector2(100), Child = new Sprite { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Texture = textures.Get($"https://gamestogo.company/api/Users/DownloadImage/{Model.BackingUser.ID}"), }, }, new SpriteText { Anchor = Anchor.Centre, Origin = Anchor.Centre, Text = Model.BackingUser.Username, Font = new FontUsage(size: 40), }, }, }; }
private void load(OsuColour colours, Framework.Game game) { Size = new Vector2(60); Child = new CircularContainer { Masking = true, RelativeSizeAxes = Axes.Both, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = colours.Gray1, Alpha = 0.5f, }, circularProgress = new CircularProgress { RelativeSizeAxes = Axes.Both, InnerRadius = 1 }, overlayCircle = new Circle { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Colour = colours.Gray1, Size = new Vector2(0.9f), }, icon = new SpriteIcon { Shadow = false, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(15), Icon = FontAwesome.Solid.Times }, } }; bind(); gameActive.BindTo(game.IsActive); }
public DefaultFollowCircle() { RelativeSizeAxes = Axes.Both; InternalChild = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, BorderThickness = 5, BorderColour = Color4.Orange, Blending = BlendingParameters.Additive, Child = new Box { Colour = Color4.Orange, RelativeSizeAxes = Axes.Both, Alpha = 0.2f, } }; }
public DrawableHoldNoteTick(HoldNoteTick hitObject) : base(hitObject) { Container glowContainer; Anchor = Anchor.TopCentre; Origin = Anchor.TopCentre; RelativeSizeAxes = Axes.X; Size = new Vector2(1); AddRangeInternal(new[] { glowContainer = new CircularContainer { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, RelativeSizeAxes = Axes.Both, Masking = true, Children = new[] { new Box { RelativeSizeAxes = Axes.Both, Alpha = 0, AlwaysPresent = true } } } }); AccentColour.BindValueChanged(colour => { glowContainer.EdgeEffect = new EdgeEffectParameters { Type = EdgeEffectType.Glow, Radius = 2f, Roundness = 15f, Colour = colour.NewValue.Opacity(0.3f) }; }, true); }
public SliderNub(OsuHueSelector osuHueSelector) { hue = osuHueSelector.Hue.GetBoundCopy(); InternalChild = new CircularContainer { Height = 35, Width = 10, Origin = Anchor.Centre, Anchor = Anchor.Centre, Masking = true, BorderColour = Colour4.White, BorderThickness = control_border_thickness, EdgeEffect = createShadowParameters(), Child = fill = new Box { RelativeSizeAxes = Axes.Both } }; }
public ShadowPiece() { RelativeSizeAxes = Axes.Both; Anchor = Anchor.Centre; Origin = Anchor.Centre; Padding = new MarginPadding(1); Child = new CircularContainer { Alpha = .5f, Masking = true, RelativeSizeAxes = Axes.Both, EdgeEffect = new EdgeEffectParameters { Hollow = true, Type = EdgeEffectType.Shadow, Radius = 15, Colour = Color4.Black, } }; }
public ExtendableCircle() { Padding = new MarginPadding { Horizontal = -circle_size / 2f }; InternalChild = content = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, EdgeEffect = new EdgeEffectParameters { Type = EdgeEffectType.Shadow, Radius = 5, Colour = Color4.Black.Opacity(0.4f) }, Child = new Box { RelativeSizeAxes = Axes.Both } }; }
public HitPiece() { Origin = Anchor.Centre; InternalChild = new CircularContainer { Masking = true, BorderThickness = 10, BorderColour = Color4.Yellow, RelativeSizeAxes = Axes.Both, Children = new Drawable[] { new Box { AlwaysPresent = true, Alpha = 0, RelativeSizeAxes = Axes.Both } } }; }
public void TestLateSizing() { HookedContainer container; CircularContainer circular; Child = container = new HookedContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, Child = circular = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Child = new Box { RelativeSizeAxes = Axes.Both } } }; container.OnUpdate = () => onUpdate(container); container.OnUpdateAfterChildren = () => onUpdateAfterChildren(container, circular); bool hasCorrectCornerRadius = false; AddAssert("has correct corner radius", () => hasCorrectCornerRadius); void onUpdate(Container parent) { // Suppose the parent has some arbitrary size prior to the child being updated... parent.Size = Vector2.One; } void onUpdateAfterChildren(Container parent, CircularContainer nested) { // ... and the size of the parent is changed to the desired value after the child has been updated // This could happen just by ordering of events in the hierarchy, regardless of auto or relative size parent.Size = new Vector2(200); hasCorrectCornerRadius = nested.CornerRadius == 100; } }
public GameTypePickerItem(MatchType value) : base(value) { AutoSizeAxes = Axes.Both; Children = new Drawable[] { selection = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Alpha = 0, Child = new Box { RelativeSizeAxes = Axes.Both, }, }, new DrawableGameType(Value) { Size = new Vector2(height), Margin = new MarginPadding(selection_width), }, new Container { RelativeSizeAxes = Axes.Both, Padding = new MarginPadding(selection_width), Child = hover = new CircularContainer { RelativeSizeAxes = Axes.Both, Masking = true, Alpha = 0, Child = new Box { RelativeSizeAxes = Axes.Both, }, }, }, new HoverClickSounds(), }; }
public NetworkHandler(IList<HostInfo> hosts) { this.hosts = new CircularContainer<HostInfo>(hosts); }