// Required to make Schedule calls run in OsuScreen even when we are not visible.
AlwaysPresent=true;
EarlyActivationMilliseconds=early_activation;
Size=newVector2(default_size);
Origin=Anchor.Centre;
AutoSizeAxes=Axes.Both;
Children=newDrawable[]
{
intro=newIntroSequence
{
RelativeSizeAxes=Axes.Both,
},
logoHoverContainer=newContainer
{
AutoSizeAxes=Axes.Both,
Children=newDrawable[]
{
logoBounceContainer=newContainer
{
AutoSizeAxes=Axes.Both,
Children=newDrawable[]
{
rippleContainer=newContainer
{
Anchor=Anchor.Centre,
Origin=Anchor.Centre,
RelativeSizeAxes=Axes.Both,
Children=newDrawable[]
{
ripple=newSprite
{
Anchor=Anchor.Centre,
Origin=Anchor.Centre,
Blending=BlendingMode.Additive,
Alpha=0
}
}
},
logoAmplitudeContainer=newContainer
{
AutoSizeAxes=Axes.Both,
Children=newDrawable[]
{
logoBeatContainer=newContainer
{
AutoSizeAxes=Axes.Both,
Children=newDrawable[]
{
visualizer=newLogoVisualisation
{
RelativeSizeAxes=Axes.Both,
Origin=Anchor.Centre,
Anchor=Anchor.Centre,
Alpha=0.5f,
Size=newVector2(0.96f)
},
newContainer
{
AutoSizeAxes=Axes.Both,
Children=newDrawable[]
{
logoContainer=newCircularContainer
{
Anchor=Anchor.Centre,
Origin=Anchor.Centre,
RelativeSizeAxes=Axes.Both,
Scale=newVector2(0.88f),
Masking=true,
Children=newDrawable[]
{
colourAndTriangles=newContainer
{
RelativeSizeAxes=Axes.Both,
Anchor=Anchor.Centre,
Origin=Anchor.Centre,
Children=newDrawable[]
{
newBox
{
RelativeSizeAxes=Axes.Both,
Colour=OsuPink,
},
triangles=newTriangles
{
TriangleScale=4,
ColourLight=OsuColour.FromHex(@"ff7db7"),
ColourDark=OsuColour.FromHex(@"de5b95"),
RelativeSizeAxes=Axes.Both,
},
}
},
flashLayer=newBox
{
RelativeSizeAxes=Axes.Both,
Blending=BlendingMode.Additive,
Colour=Color4.White,
Alpha=0,
},
},
},
logo=newSprite
{
Anchor=Anchor.Centre,
Origin=Anchor.Centre,
},
}
},
impactContainer=newCircularContainer
{
Anchor=Anchor.Centre,
Origin=Anchor.Centre,
Alpha=0,
BorderColour=Color4.White,
RelativeSizeAxes=Axes.Both,
BorderThickness=10,
Masking=true,
Children=newDrawable[]
{
newBox
{
RelativeSizeAxes=Axes.Both,
AlwaysPresent=true,
Alpha=0,
}
}
}
}
}
}
}
}
}
}
}
};
}
/// <summary>
/// Schedule a new extenral animation. Handled queueing and finishing previous animations in a sane way.
/// </summary>
/// <param name="action">The animation to be performed</param>
/// <param name="waitForPrevious">If true, the new animation is delayed until all previous transforms finish. If false, existing transformed are cleared.</param>