Ejemplo n.º 1
0
        public static byte currentSlotGroup;         // Tracks which wheel menu is currently selected (relevant for the Utility Bar).

        public EditorUI(EditorScene scene)
        {
            this.scene = scene;

            // UI Components
            this.gridUI     = new GridOverlay(null, (byte)TilemapEnum.TileWidth, (byte)TilemapEnum.TileHeight);
            this.utilityBar = new UtilityBar(null, (byte)TilemapEnum.TileWidth, (short)(Systems.screen.viewHeight - (byte)TilemapEnum.TileHeight));
            this.scroller   = new EditorScroller(null, (short)(Systems.screen.viewWidth - (byte)TilemapEnum.TileWidth), 0);
            this.statusText = new UIStatusText(null, (short)Systems.screen.viewHalfWidth, 5);

            // Tab Menu - TileTool Listings
            this.contextMenu = new ContextMenu(null, (short)(Systems.screen.viewWidth * 0.5f), (short)(Systems.screen.viewHeight * 0.5f));

            this.contextMenu.SetMenuOption((byte)SlotGroup.Ground, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Grass/S", "Ground");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Blocks, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Brick/Brown", "Blocks");
            this.contextMenu.SetMenuOption((byte)SlotGroup.ColorToggles, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "ToggleOn/BoxBR", "Toggles");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Platforms, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Platform/Fixed/S", "Platforms");
            this.contextMenu.SetMenuOption((byte)SlotGroup.EnemiesLand, Systems.mapper.atlas[(byte)AtlasGroup.Objects], "Shroom/Red/Left2", "Enemies");
            this.contextMenu.SetMenuOption((byte)SlotGroup.EnemiesFly, Systems.mapper.atlas[(byte)AtlasGroup.Objects], "Buzz/Left2", "Flying");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Interactives, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "NPC/MasterNinja", "Interactives");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Upgrades, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "SuitCollect/WhiteWizard", "Upgrades");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Collectables, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Health/Pack1", "Collectables");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Decor, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Decor/Grass2", "Decor");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Prompts, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Prompt/DPad/Right", "Prompts");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Fixtures, Systems.mapper.atlas[(byte)AtlasGroup.Tiles], "Cannon/UpRight", "Fixtures");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Items, Systems.mapper.atlas[(byte)AtlasGroup.Objects], "Shell/Red/Spin1", "Items");
            this.contextMenu.SetMenuOption((byte)SlotGroup.Scripting, Systems.mapper.atlas[(byte)AtlasGroup.Objects], "Cluster/Basic", "Scripting");

            // Param Menus - Wand Tool
            this.moveParamMenu = new ParamMenu(null);
            this.actParamMenu  = new ParamMenu(null, true);
        }
Ejemplo n.º 2
0
        // Initialize Wand Data
        public static bool InitializeWandData(EditorRoomScene scene, short gridX, short gridY)
        {
            // Get Scene References
            WandData.editorScene   = scene;
            WandData.moveParamMenu = WandData.editorScene.scene.editorUI.moveParamMenu;
            WandData.actParamMenu  = WandData.editorScene.scene.editorUI.actParamMenu;
            WandData.levelContent  = WandData.editorScene.levelContent;

            RoomFormat roomData = WandData.levelContent.data.rooms[WandData.editorScene.roomID];

            // Verify that Tile is Valid:
            WandData.validTile = false;

            if (LevelContent.VerifyTiles(roomData.main, gridX, gridY))
            {
                WandData.layerData = roomData.main;
                WandData.isObject  = false;
            }

            else if (LevelContent.VerifyTiles(roomData.fg, gridX, gridY))
            {
                WandData.layerData = roomData.fg;
                WandData.isObject  = false;
            }

            else if (LevelContent.VerifyTiles(roomData.obj, gridX, gridY))
            {
                WandData.layerData = roomData.obj;
                WandData.isObject  = true;
            }

            else
            {
                return(false);
            }

            WandData.validTile = true;

            WandData.gridX = gridX;
            WandData.gridY = gridY;

            // Get Tile Content Data
            WandData.wandTileData = LevelContent.GetTileDataWithParams(WandData.layerData, WandData.gridX, WandData.gridY);

            // Get the Param Set Used
            Params moveParamSet = null;
            Params actParamSet  = null;

            if (WandData.isObject)
            {
                moveParamSet = Systems.mapper.ObjectMetaData[byte.Parse(WandData.wandTileData[0].ToString())].moveParamSet;
                actParamSet  = Systems.mapper.ObjectMetaData[byte.Parse(WandData.wandTileData[0].ToString())].actParamSet;
            }
            else
            {
                TileObject wandTile = Systems.mapper.TileDict[byte.Parse(WandData.wandTileData[0].ToString())];
                moveParamSet = wandTile.moveParamSet;
                actParamSet  = wandTile.actParamSet;
            }

            // If the tile has param sets, it can be used here. Otherwise, return.
            WandData.validTile = (moveParamSet != null || actParamSet != null);
            if (WandData.validTile == false)
            {
                return(false);
            }

            WandData.moveParamSet = moveParamSet;
            WandData.actParamSet  = actParamSet;

            return(true);
        }