示例#1
0
        public static Room ParseRoomCSV(ZeldaGame game2, int RoomNumber)
        {
            game    = game2;
            utility = new ParserUtility(game);
            storage = new ParserStorage();

            roomNumber   = RoomNumber;
            windowWidth  = game.GraphicsDevice.Viewport.Width;
            windowHeight = game.GraphicsDevice.Viewport.Height;

            windowHeightFloor = ((windowHeight / ParserUtility.SCALE_FACTOR - ParserUtility.WINDOW_X_ADJUST / ParserUtility.SCALE_FACTOR) / ParserUtility.GEN_ADJUST) + ParserUtility.GAME_FRAME_ADJUST;
            windowWidthFloor  = (windowWidth / ParserUtility.SCALE_FACTOR - ParserUtility.WINDOW_Y_ADJUST / ParserUtility.SCALE_FACTOR) / ParserUtility.GEN_ADJUST;


            tiles   = new List <ITile>();
            items   = new List <IItem>();
            enemies = new List <IEnemy>();
            doors   = new List <IDoor>();

            ParseRoomCSVFile();
            ParseWallsCSVFile();
            ParseDoorsCSVFile();
            return(new Room(game, RoomNumber, tiles, items, enemies, doors));
        }
示例#2
0
        public override void Draw(Rect canvas)
        {
            UserInterface.CurrentPage = "SelectColumnsPage".UiTranslate();

            // Page header
            const float splitCanvasHight = 60f;
            Rect        top    = canvas.TopPartPixels(canvas.height - splitCanvasHight);;
            Rect        bottom = canvas.BottomPartPixels(splitCanvasHight); // 2 buttons

            Listing_Styled imui = new();

            imui.Begin(top, elementHeight: UserInterface.ElementHeight, gapSize: UserInterface.GapSize);

            // Select columns btns
            imui.ScrollStart("SelectColumnPage.Parsers");
            var apparelParser = ParserStorage.OfType <ApparelParser>().First();

            foreach (var table in TableManager.Tables)
            {
                if (table.Name.Equals(apparelParser.Name))
                {
                    imui.SameLinePercent(0.85f, 0.15f);
                    if (imui.ButtonText(table.Name))
                    {
                        _ = Open <ColumnsPage>(table);
                    }
                    if (imui.ButtonText("!"))
                    {
                        List <FloatMenuOption> options = new()
                        {
                            new FloatMenuOption("ApparelFilterPageTitle".UiTranslate(), delegate()
                            {
                                _ = Open <ApparelFilterPage>(table);
                            })
                        };
                        Find.WindowStack.Add(new FloatMenu(options));
                    }
                }
                else
                {
                    if (imui.ButtonText(table.Name))
                    {
                        _ = Open <ColumnsPage>(table);
                    }
                }
            }
            imui.ScrollEnd("SelectColumnPage.Parsers");
            imui.End();

            // Bottom panel
            imui.Begin(bottom, elementHeight: 25f);
            imui.SameLine(imui.CurElementWidth - 25f, 25f);
            string btnSaveName = "SaveAndOpen".UiTranslate();

            if (Settings.SaveAndOpenAction != SaveAndOpenAction.Nothing)
            {
                btnSaveName += ". ";
                switch (Settings.SaveAndOpenAction)
                {
                case SaveAndOpenAction.OpenDirectory:
                    btnSaveName += "SaveAction_OpenDirectory".UiTranslate();
                    break;

                case SaveAndOpenAction.OpenDocument:
                    btnSaveName += "SaveAction_OpenDocument".UiTranslate();
                    break;
                }
            }
            if (imui.ButtonText(btnSaveName))
            {
                var waitingPage = Open <WaitingPage>();
                TableManager.ExportAsync(() => waitingPage.Close());
            }
            if (imui.ButtonImage(AutoRebuildIcon))
            {
                Open <DumpSettingsPage>();
            }

            // Back on bottom
            if (TableManager.Tables.Count > 0 && imui.ButtonText("Previous".UiTranslate()))
            {
                Close();
            }
            imui.End();
        }
    }