private void load() { Add(bottomBox = new Box { Colour = Colour4.Black, RelativeSizeAxes = Axes.Both, }); Add(bottomOverlay = new SplashInfoOverlay(SplashPosition.Bottom, 80, 30)); Add(topOverlay = new SplashInfoOverlay(SplashPosition.Top, 150, 60)); AddStep("Show short", shortText); AddUntilStep("Wait for hide and no transforms", allHiddenAndNoTransforms); AddStep("Show long", longText); }
private void load() { Resources.AddStore(new DllResourceStore(@"GamesToGo.Game.dll")); Textures.AddStore(Host.CreateTextureLoaderStore(new OnlineStore())); Textures.AddStore(Host.CreateTextureLoaderStore(new StorageBackedResourceStore(store))); dependencies.CacheAs(this); base.Content.Add(content = new DrawSizePreservingFillContainer { TargetDrawSize = new Vector2(1080, 1920), Strategy = DrawSizePreservationStrategy.Minimum, }); content.Add(stack = new ScreenStack { RelativeSizeAxes = Axes.Both, Depth = 0, }); content.Add(api = new APIController()); dependencies.Cache(api); dependencies.Cache(stack); content.Add(infoOverlay = new SplashInfoOverlay(SplashPosition.Top, 150, 60) { Depth = -1 }); dependencies.Cache(infoOverlay); Invitations.BindCollectionChanged((_, e) => { switch (e.Action) { case NotifyCollectionChangedAction.Add: infoOverlay.Show(@$ "{e.NewItems.Cast<Invitation>().Last().Sender.Username} te ha invitado a jugar", Colour4.LightBlue); break; case NotifyCollectionChangedAction.Remove: break; } }); }
private void load(FrameworkConfigManager config, Storage store) //Esta es la manera en la que se acceden a elementos de las dependencias, su tipo y un nombre local. { Host.Window.Title = Name; Resources.AddStore(new DllResourceStore(@"GamesToGo.Editor.dll")); Textures.AddStore(Host.CreateTextureLoaderStore(new OnlineStore())); Textures.AddStore(Host.CreateTextureLoaderStore(new StorageBackedResourceStore(store))); Textures.AddExtension(""); dependencies.CacheAs(dbContext = new Context(Host.Storage.GetDatabaseConnectionString(Name))); previewEvents(); previewActions(); previewArguments(); try { dbContext.Database.Migrate(); } catch { Host.Storage.DeleteDatabase(Name); try { dbContext.Database.Migrate(); } catch { //Can't get a database going, bail! Exit(); } store.DeleteDirectory("files"); } finally { foreach (var _ in dbContext.Projects) { } foreach (var _ in dbContext.Files) { } foreach (var _ in dbContext.Relations) { } } //Ventana sin bordes, sin requerir modo exclusivo. config.GetBindable <WindowMode>(FrameworkSetting.WindowMode).Value = WindowMode.Borderless; config.GetBindable <FrameSync>(FrameworkSetting.FrameSync).Value = FrameSync.VSync; config.GetBindable <ConfineMouseMode>(FrameworkSetting.ConfineMouseMode).Value = ConfineMouseMode.Never; //Para agregar un elemento a las dependencias se agrega a su caché. En este caso se agrega el "juego" como un GamesToGoEditor dependencies.CacheAs(this); base.Content.Add(content = new DrawSizePreservingFillContainer { TargetDrawSize = new Vector2(1920, 1080) }); //Cargamos y agregamos nuestra pila de pantallas a la ventana. content.Add(stack = new ScreenStack { RelativeSizeAxes = Axes.Both, Depth = 0 }); content.Add(api = new APIController()); dependencies.Cache(api); content.Add(splashOverlay = new SplashInfoOverlay(SplashPosition.Bottom, 80, 30) { Depth = -2 }); dependencies.Cache(splashOverlay); content.Add(imageFinder = new ImageFinderOverlay { Depth = -1 }); dependencies.Cache(imageFinder); content.Add(optionsOverlay = new MultipleOptionOverlay { Depth = -3 }); dependencies.Cache(optionsOverlay); }
private void load(SplashInfoOverlay infoOverlay) { RelativePositionAxes = Axes.X; InternalChildren = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = new Colour4(106, 100, 104, 255), //Color fondo general }, new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.Relative, 0.25f), new Dimension(), }, Content = new [] { new Drawable[] { userInformation = new Container { RelativeSizeAxes = Axes.Both, RelativePositionAxes = Axes.Both, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = new Colour4(145, 144, 144, 255), //Color userInformation }, new UserImageChangerButton { Position = new Vector2(0, 125), Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, ButtonSize = new Vector2(250), }, new SpriteText { Text = api.LocalUser.Value.Username, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Position = new Vector2(0, 450), }, new GamesToGoButton { Text = @"Perfil", BackgroundColour = new Colour4(106, 100, 104, 255), //Color Boton userInformation BorderColour = Colour4.Black, BorderThickness = 2f, RelativeSizeAxes = Axes.X, Masking = true, Height = 40, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Position = new Vector2(0, 600), Action = showProfile, }, new GamesToGoButton { Text = @"Cerrar Sesión", BackgroundColour = new Colour4(106, 100, 104, 255), //Color Boton userInformation BorderColour = Colour4.Black, BorderThickness = 2f, RelativeSizeAxes = Axes.X, Masking = true, Height = 40, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Position = new Vector2(0, 700), Action = logout, }, }, }, new GridContainer { RelativeSizeAxes = Axes.Both, RowDimensions = new[] { new Dimension(), new Dimension(GridSizeMode.AutoSize), }, Content = new [] { new Drawable[] { new BasicScrollContainer { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, ClampExtension = 10, Padding = new MarginPadding { Top = 200, Horizontal = 150 }, RelativeSizeAxes = Axes.Both, Child = new FillFlowContainer { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Spacing = Vector2.Zero, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, Children = new Drawable[] { projectsList = new FillFlowContainer <LocalProjectSummaryContainer> { BorderColour = Colour4.Black, BorderThickness = 3f, Masking = true, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Spacing = Vector2.Zero, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, }, onlineProjectsList = new FillFlowContainer <OnlineProjectSummaryContainer> { BorderColour = Colour4.Black, BorderThickness = 3f, Masking = true, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Spacing = Vector2.Zero, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, }, }, }, }, }, new Drawable[] { new GamesToGoButton { Text = @"Crear Nuevo Proyecto", BackgroundColour = new Colour4(145, 144, 144, 255), BorderColour = Colour4.Black, BorderThickness = 2f, RelativeSizeAxes = Axes.X, Masking = true, Height = 100, Anchor = Anchor.BottomCentre, Origin = Anchor.BottomCentre, Action = createProject, }, }, }, }, }, }, }, }; populateProjectList(); }
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); }); }