/tools/PhyreFly/src/forms/MainForm.cs
C# | 130 lines | 111 code | 19 blank | 0 comment | 28 complexity | 7a818ddf3ac46a57b32d5dc476aadf5f MD5 | raw file
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.IO;
-
- namespace PhyreFly
- {
- public partial class MainForm : Form
- {
- string args_xmlFile = String.Empty;
- string args_platform = String.Empty;
- AssetProcessAction args_action;
-
- public MainForm(string[] args)
- {
- InitializeComponent();
- PFGlobals.MainWindow = this;
-
- if (args.Length > 0 && File.Exists(args[0]))
- {
- args_xmlFile = Path.GetFullPath(args[0]);
- if (args.Length >= 2)
- {
- string workingDir = args[1].Replace("\"", "").TrimEnd('\\', '/');
- workingDir = Path.GetFullPath(workingDir);
- if(Directory.Exists(workingDir))
- PFAssetProcessor.WorkingDir = workingDir;
- }
-
- if (args.Length >= 3)
- args_platform = args[2];
-
- if (args.Length == 4)
- {
- if (args[3] == "build")
- args_action = AssetProcessAction.Build;
- else if(args[3] == "rebuild")
- args_action = AssetProcessAction.Rebuild;
- else if(args[3] == "clean")
- args_action = AssetProcessAction.Clean;
- }
- }
- }
-
- private void MainWindow_Load(object sender, EventArgs e)
- {
- PFGlobals.PhyreEngineSDKRoot = Environment.GetEnvironmentVariable("SCE_PHYRE");
- if (PFGlobals.PhyreEngineSDKRoot == null)
- {
- MessageBox.Show("Please make sure the SCE_PHYRE is set and try again");
- Close();
- }
- if(args_xmlFile != String.Empty)
- BeginSession(args_xmlFile, args_platform, args_action);
- }
-
- private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
- {
- if (PFAssetProcessor.IsWorking)
- {
- PFConsole.WriteLine(PFConsole.Severity.ERROR, "Busy, please wait...");
- e.Cancel = true;
- }
- }
-
- #region Drag & Drop Logic
- private void MainWindow_DragEnter(object sender, DragEventArgs e)
- {
- if (m_bIsFileLoaded)
- return;
-
- ui_lbl_multiple.Visible = ui_lbl_good.Visible = ui_lbl_xml.Visible = false;
- e.Effect = DragDropEffects.None;
-
- if (!e.Data.GetDataPresent(DataFormats.FileDrop))
- return;
-
- string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop));
- if (filePaths.Length > 1)
- {
- ui_lbl_multiple.Visible = true;
- return;
- }
-
- if (Path.GetExtension(filePaths[0]).ToUpper() != ".XML")
- {
- ui_lbl_xml.Visible = true;
- return;
- }
-
- ui_lbl_good.Visible = true;
- ui_lbl_good.Text = String.Format("{0} Looks Good :)", Path.GetFileName(filePaths[0]));
- e.Effect = DragDropEffects.Copy;
- }
-
- private void MainWindow_DragDrop(object sender, DragEventArgs e)
- {
- if (!e.Data.GetDataPresent(DataFormats.FileDrop) || m_bIsFileLoaded)
- return;
-
- string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop));
- if(filePaths.Length > 1)
- return;
-
- BeginSession(filePaths[0], null, AssetProcessAction.None);
- }
-
- private void MainWindow_DragLeave(object sender, EventArgs e)
- {
- ui_lbl_multiple.Visible = ui_lbl_good.Visible = ui_lbl_xml.Visible = false;
- }
- #endregion
-
- private void BeginSession(string filePath, string platform, AssetProcessAction action)
- {
- Controls.Clear();
- Controls.Add(new AssetManager(filePath, platform, action));
- m_bIsFileLoaded = true;
- MaximumSize = Size.Empty;
- MaximizeBox = true;
- }
-
- private bool m_bIsFileLoaded = false;
- }
- }