Esempio n. 1
0
        public SnapshotPanel(IEditorPlugin editorPlugin, HotkeyManager hotkeyManager, UtINI ini) : base("Snapshot")
        {
            InitializeComponent();

            worldSnapshot = new WorldSnapshotImpl(this, editorPlugin, hotkeyManager);

            this.ini = ini;

            CreateSettings();
            ini.Load();

            txtNewNodeFilename.Text          = ini.GetString("Snapshot", "defaultNodeObjectFilename");
            chkEnableNodeEditing.Checked     = ini.GetBool("Snapshot", "autoEnableSnapshotEditing");
            chkAllowTargetEverything.Checked = ini.GetBool("Snapshot", "autoAllowTargetEverything");
        }
Esempio n. 2
0
        public FormObjectBrowser(IEditorPlugin editorPlugin)
        {
            InitializeComponent();

            this.editorPlugin = editorPlugin;
            ini = editorPlugin.GetConfig();

            CreateSettings();
            ini.Load();

            Width  = ini.GetInt("ObjectBrowser", "width");
            Height = ini.GetInt("ObjectBrowser", "height");
            chkKeepOnTop.Checked = ini.GetBool("ObjectBrowser", "keepOnTop");

            tvDirectories.BackColor = Colors.PrimaryHighlight();
            lbFiles.BackColor       = Colors.PrimaryHighlight();

            tvDirectories.ForeColor = Colors.Font();
            lbFiles.ForeColor       = Colors.Font();

            tvDirectories.BorderStyle = BorderStyle.None;
            lbFiles.BorderStyle       = BorderStyle.None;

            Task loadRepo = LoadRepo();

            GameDragDropEventHandlers.OnDragDrop  += OnDragDrop;
            GameDragDropEventHandlers.OnDragEnter += OnDragEnter;
            GameDragDropEventHandlers.OnDragOver  += OnDragOver;

            lbFiles.QueryContinueDrag += lbFiles_QueryContinueDrag;

            editorPlugin.GetHotkeyManager().Add(new Hotkey("ToggleObjectBrowserKeepOnTop", "Toggle Object Browser KeepOnTop", "Shift, Control + T", ToggleKeepOnTop, false));
        }
Esempio n. 3
0
        public void UpdateSceneAvailability(bool isSceneActive)
        {
            if (previousIsSceneActive == isSceneActive)
            {
                return;
            }

            btnUnloadScene.Enabled = isSceneActive;
            btnReloadScene.Enabled = isSceneActive;

            nudWeatherIndex.Enabled = isSceneActive;
            sldTimeOfDay.Enabled    = isSceneActive;

            if (!isSceneActive)
            {
                lblHoursAndMinute.Text = "00:00";
            }

            previousIsSceneActive = isSceneActive;

            if (ini.GetBool("Scene", "forceModalChat"))
            {
                groundScene.ForceModalChat(); // ToDo move this elsewhere
            }
        }
Esempio n. 4
0
        public GraphicsPanel(UtINI ini) : base("Graphics")
        {
            InitializeComponent();

            graphics = new GraphicsImpl();

            CreateSettings(ini);
            ini.Load();

            chkWireframe.Checked = ini.GetBool("Graphics", "autoEnableWireframe");
        }
        public GraphicsPanel(UtINI ini) : base("Graphics")
        {
            InitializeComponent();

            graphics = new GraphicsImpl();

            CreateSettings(ini);
            ini.Load();

            Log.InfoSimple(ini.GetString("Scene", "defaultTerrainFilename"));

            chkWireframe.Checked = ini.GetBool("Graphics", "autoEnableWireframe");
        }
Esempio n. 6
0
        private async Task LoadRepo()
        {
            while (!Game.IsRunning)
            {
                await Task.Delay(1);
            }

            var dirInfo = Game.Repository.GetDirectoryInfo("object");

            for (int i = 0; i < dirInfo.Size; i++)
            {
                string fn = Game.Repository.GetFilenameAt(dirInfo.StartIndex + i);

                if (fn.EndsWith(".iff"))
                {
                    int posStart = fn.IndexOf('/');
                    int posEnd   = fn.LastIndexOf('/');

                    if (posStart == posEnd)
                    {
                        // Skip root files as they're not proper Object files
                        continue;
                    }

                    string        dir = fn.Substring(posStart + 1, posEnd - posStart);
                    List <string> filenames;
                    if (objectRepo.TryGetValue(dir, out filenames))
                    {
                        filenames.Add(fn);
                    }
                    else
                    {
                        filenames = new List <string> {
                            fn
                        };
                        objectRepo.Add(dir, filenames);
                    }
                }
            }

            bool excludeJunkDirs = ini.GetBool("ObjectBrowser", "excludeJunkDirectories");

            TreeNode tmpRootNode = new TreeNode();

            foreach (KeyValuePair <string, List <string> > dir in objectRepo)
            {
                if (excludeJunkDirs)
                {
                    // ToDo do better
                    bool skip = false;
                    foreach (string excludeDir in excludeDirectories)
                    {
                        if (dir.Key.StartsWith(excludeDir))
                        {
                            skip = true;
                            break;
                        }
                    }

                    if (skip)
                    {
                        continue;
                    }
                }

                // Split and loop through the directory's subdirectories and created nested nodes
                TreeNode curNode = tmpRootNode;
                string   dirPath = dir.Key;
                string[] splitPaths;
                while ((splitPaths = dirPath.Split('/')).Length > 1)
                {
                    if (!curNode.Nodes.ContainsKey(splitPaths[0]))
                    {
                        curNode.Nodes.Add(splitPaths[0], splitPaths[0]);
                    }
                    curNode = curNode.Nodes[curNode.Nodes.IndexOfKey(splitPaths[0])];
                    dirPath = dirPath.Substring(splitPaths[0].Length + 1);
                }
            }

            tvDirectories.SuspendLayout();
            TreeNode[] tmpNodes = new TreeNode[tmpRootNode.Nodes.Count];
            tmpRootNode.Nodes.CopyTo(tmpNodes, 0);
            tvDirectories.Nodes.AddRange(tmpNodes);
            tvDirectories.ResumeLayout();
        }