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); }
// 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); }