예제 #1
0
    public void ToLevelSelection()
    {
        GameObject      menu            = SpawnMenu(_titleMenu);
        TitleScreenMenu titleScreenMenu = menu.GetComponent <TitleScreenMenu>();

        titleScreenMenu.ForceOpenLevelMenu();
    }
예제 #2
0
 // Start is called before the first frame update
 void Start()
 {
     mainMenu = FindObjectOfType <TitleScreenMenu>();
     GameObject eventSystemObject = GameObject.FindWithTag("EventSystem");
 }
예제 #3
0
 private void Start()
 {
     mainMenu = FindObjectOfType <TitleScreenMenu>();
 }
예제 #4
0
        // private TitleScreenMenu _titleScreenMenu;

        public TitleEditPlugin(
            [RequiredVersion("1.0")] DalamudPluginInterface pluginInterface,
            [RequiredVersion("1.0")] CommandManager commandManager,
            [RequiredVersion("1.0")] DataManager dataManager,
            [RequiredVersion("1.0")] ClientState clientState,
            [RequiredVersion("1.0")] Framework framework,
            [RequiredVersion("1.0")] KeyState keyState,
            [RequiredVersion("1.0")] SigScanner sigScanner,
            [RequiredVersion("1.0")] GameGui gameGui,
            [RequiredVersion("1.0")] TitleScreenMenu titleScreenMenu)
        {
            PluginLog.Log("===== T I T L E E D I T =====");
            _pluginInterface = pluginInterface;
            _commandManager  = commandManager;
            _dataManager     = dataManager;
            _clientState     = clientState;
            _framework       = framework;
            _keyState        = keyState;

            // Load menu_icon.png from dll resources
            var assembly       = Assembly.GetExecutingAssembly();
            var resourceStream = assembly.GetManifestResourceStream("TitleEdit.menu_icon.png");

            if (resourceStream != null)
            {
                var imageBytes = new byte[resourceStream.Length];
                resourceStream.Read(imageBytes, 0, (int)resourceStream.Length);
                PluginLog.Information($"image is {imageBytes.Length} bytes");
                try
                {
                    var image = pluginInterface.UiBuilder.LoadImage(imageBytes);
                    titleScreenMenu.AddEntry("Title Edit Menu", image, () => { _isImguiTitleEditOpen = true; });
                }
                catch (Exception e)
                {
                    PluginLog.Error(e, "Title Edit encountered an error loading menu icon");
                }
            }

            _commandManager.AddHandler(TitleEditCommand, new CommandInfo(OnTitleEditCommand)
            {
                HelpMessage = "Display the Title Edit configuration interface."
            });

            _configuration = pluginInterface.GetPluginConfig() as TitleEditConfiguration ?? new TitleEditConfiguration();
            _configuration.Initialize(pluginInterface);

            _titleScreenFolder = _pluginInterface.GetPluginConfigDirectory();
            if (!Directory.Exists(_titleScreenFolder))
            {
                Directory.CreateDirectory(_titleScreenFolder);
            }
            PrepareAssets();
            EnumerateTitleScreenFiles();

            _territoryPaths = dataManager.GetExcelSheet <TerritoryType>()
                              .ToDictionary(row => row.RowId, row => row);
            _weathers = dataManager.GetExcelSheet <Weather>()
                        .ToDictionary(row => row.RowId, row => row.Name.ToString());
            var bgms = dataManager.GetExcelSheet <BGM>()
                       .ToDictionary(row => (ushort)row.RowId, row => row.File.ToString());

            _bgmSheet = new BgmSheetManager(_titleScreenFolder, bgms);

            _titleEdit = new TitleEdit(sigScanner, clientState, gameGui, dataManager, _pluginInterface, _configuration, _titleScreenFolder);
            _titleEdit.Enable();

            _pluginInterface.UiBuilder.Draw += UiBuilder_OnBuildUi;
            _framework.Update += CheckHotkey;
            _pluginInterface.UiBuilder.OpenConfigUi += () => _isImguiTitleEditOpen = true;
            PluginLog.Log("Init complete.");
        }