Esempio n. 1
0
        private async Task DeletePanel(PanelListItem panel)
        {
            panelList.Remove(panel);
            await db.Panels.DeleteAsync(await db.Panels.SelectByIdAsync(panel.ID));

            UpdateAdapter();
        }
Esempio n. 2
0
        public ActorShopScreen(Game game) : base("Actor Shop")
        {
            this.game      = game;
            Title.Position = new CPos(0, -4096, 0);

            Add(new Panel(new MPos(8 * 1024, 2 * 1024), "wooden")
            {
                Position = new CPos(0, 920, 0)
            });

            actors = new PanelList(new MPos(8120, 1024), new MPos(1024, 1024), "stone")
            {
                Position = new CPos(0, -2048, 0)
            };
            foreach (var a in ActorCache.Types.Values)
            {
                if (a.Playable == null)
                {
                    continue;
                }

                var sprite = a.GetPreviewSprite();
                var scale  = MasterRenderer.PixelSize / (float)Math.Max(sprite.Width, sprite.Height) - 0.1f;
                var item   = new PanelListItem(new BatchObject(sprite), new MPos(1024, 1024), a.Playable.Name, new string[0], () => selectActor(a))
                {
                    Scale = scale * 2
                };

                if (!game.Stats.ActorAvailable(a.Playable))
                {
                    item.SetColor(Color.Black);
                }

                actors.Add(item);
                actorTypes.Add(a.Playable.InternalName);
            }
            Add(actors);

            Add(new Button("Buy", "wooden", () => buyActor(selected))
            {
                Position = new CPos(-6144, 3072, 0)
            });
            Add(new Button("Resume", "wooden", () => game.ShowScreen(ScreenType.DEFAULT, false))
            {
                Position = new CPos(0, 6144, 0)
            });

            information = new UITextBlock(FontManager.Default, TextOffset.LEFT, "Select an actor for further information.", "", "", "Cost: -")
            {
                Position = new CPos(-7900, 0, 0)
            };
            Add(information);

            Add(new MoneyDisplay(game)
            {
                Position = new CPos(Left + 2048, Bottom - 1024, 0)
            });
        }
Esempio n. 3
0
        public async Task AddPanel(Panel panel)
        {
            PanelListItem pli = new PanelListItem(panel);

            pli.ID = (int)await db.Panels.InsertAsync(panel);

            panelList.Add(pli);
            UpdateAdapter();
        }
Esempio n. 4
0
        private async void LoadPanels()
        {
            solarNetwork = await db.SolarNetworks.SelectByIdAsync(netID);

            var pl = (await db.Panels.SelectAllAsync()).ToList();

            foreach (var p in pl)
            {
                if (p.NetworkID == netID)
                {
                    PanelListItem pli = new PanelListItem(p);
                    panelList.Add(pli);
                }
            }
            UpdateAdapter();
        }
Esempio n. 5
0
        public TrophyScreen(Game game) : base("Trophy Collection")
        {
            this.game      = game;
            Title.Position = new CPos(0, -4096, 0);

            trophies = new PanelList(new MPos(8120, 1024), new MPos(512, 1024), "wooden")
            {
                Position = new CPos(0, -1024, 0)
            };
            foreach (var key in TrophyCache.Trophies.Keys)
            {
                var value = TrophyCache.Trophies[key];

                var sprite = value.Image.GetTextures()[0];
                var scale  = MasterRenderer.PixelSize / (float)Math.Max(sprite.Width, sprite.Height) - 0.1f;
                var item   = new PanelListItem(new BatchObject(sprite), new MPos(512, 1024), value.Name, new string[0], () => selectTrophy(key, value))
                {
                    Scale = scale * 2f
                };
                if (!game.Stats.TrophyUnlocked(key))
                {
                    item.SetColor(Color.Black);
                }

                trophies.Add(item);
            }
            Add(trophies);

            Add(new Panel(new MPos(8 * 1024, 1024), "stone")
            {
                Position = new CPos(0, 1024, 0)
            });

            information = new UITextBlock(FontManager.Default, TextOffset.LEFT, "Select a trophy for further information.", "", "", "")
            {
                Position = new CPos(-7900, 512 - 128, 0)
            };
            Add(information);

            Add(new Button("Resume", "wooden", () => game.ShowScreen(ScreenType.DEFAULT, false))
            {
                Position = new CPos(0, 6144, 0)
            });
        }
Esempio n. 6
0
        private PanelRotation GetRotation(PanelListItem panel)
        {
            double elevation = GetElevation();

            switch (panel.ArrayType)
            {
            case PanelArrayType.FixedOpenRack:
            case PanelArrayType.FixedRoofMounted:
                return(new PanelRotation((float)panel.Rotation.Value, false));

            case PanelArrayType.OneAxis:
            case PanelArrayType.OneAxisBacktracking:
            case PanelArrayType.TwoAxis:
                return(new PanelRotation((float)(elevation > 180.0 ? 90.0 : elevation), true));

            default:
                throw new NotSupportedException();
            }
        }