From d057edaa15e1610d2b2a36abbcba95fecd24bbd0 Mon Sep 17 00:00:00 2001 From: Wizard Lizard Date: Tue, 21 Jan 2020 19:43:15 -0500 Subject: [PATCH] initial commit --- .gitignore | 352 +---------------- README.md | 2 +- bC7totif/App.config | 24 ++ bC7totif/MainForm.Designer.cs | 309 +++++++++++++++ bC7totif/MainForm.cs | 370 ++++++++++++++++++ bC7totif/MainForm.resx | 129 ++++++ bC7totif/Program.cs | 24 ++ bC7totif/Properties/AssemblyInfo.cs | 36 ++ bC7totif/Properties/Resources.Designer.cs | 63 +++ bC7totif/Properties/Resources.resx | 117 ++++++ bC7totif/Properties/Settings.Designer.cs | 26 ++ bC7totif/Properties/Settings.settings | 7 + bC7totif/appSettings.Designer.cs | 63 +++ bC7totif/appSettings.settings | 15 + bC7totif/bin/Debug/bulkTexConverter.exe | Bin 0 -> 20480 bytes .../bin/Debug/bulkTexConverter.exe.config | 24 ++ bC7totif/bin/Debug/presets.ini | 3 + bC7totif/bin/Release/bulkTexConverter.exe | Bin 0 -> 19456 bytes .../bin/Release/bulkTexConverter.exe.config | 24 ++ bC7totif/bulkTexConverter.csproj | 95 +++++ bulkTexConverter.sln | 25 ++ 21 files changed, 1359 insertions(+), 349 deletions(-) create mode 100644 bC7totif/App.config create mode 100644 bC7totif/MainForm.Designer.cs create mode 100644 bC7totif/MainForm.cs create mode 100644 bC7totif/MainForm.resx create mode 100644 bC7totif/Program.cs create mode 100644 bC7totif/Properties/AssemblyInfo.cs create mode 100644 bC7totif/Properties/Resources.Designer.cs create mode 100644 bC7totif/Properties/Resources.resx create mode 100644 bC7totif/Properties/Settings.Designer.cs create mode 100644 bC7totif/Properties/Settings.settings create mode 100644 bC7totif/appSettings.Designer.cs create mode 100644 bC7totif/appSettings.settings create mode 100644 bC7totif/bin/Debug/bulkTexConverter.exe create mode 100644 bC7totif/bin/Debug/bulkTexConverter.exe.config create mode 100644 bC7totif/bin/Debug/presets.ini create mode 100644 bC7totif/bin/Release/bulkTexConverter.exe create mode 100644 bC7totif/bin/Release/bulkTexConverter.exe.config create mode 100644 bC7totif/bulkTexConverter.csproj create mode 100644 bulkTexConverter.sln diff --git a/.gitignore b/.gitignore index dfcfd56..486e367 100644 --- a/.gitignore +++ b/.gitignore @@ -1,350 +1,6 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory + bin/ +obj/ +packages/ .vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ +*.pdb \ No newline at end of file diff --git a/README.md b/README.md index 918c0ec..fcb3b1f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # SETextureConverter -Small tool to convert DDS to TIFs +Tool for converting Space Engineers' DDS files to TIF for use in blender diff --git a/bC7totif/App.config b/bC7totif/App.config new file mode 100644 index 0000000..3646e38 --- /dev/null +++ b/bC7totif/App.config @@ -0,0 +1,24 @@ + + + + +
+ + + + + + + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineersModSDK\Tools\TexturePacking\Tools + + + + + + + \ No newline at end of file diff --git a/bC7totif/MainForm.Designer.cs b/bC7totif/MainForm.Designer.cs new file mode 100644 index 0000000..cca6f78 --- /dev/null +++ b/bC7totif/MainForm.Designer.cs @@ -0,0 +1,309 @@ +namespace bulkTexConverter +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tbToolPath = new System.Windows.Forms.TextBox(); + this.btnSelToolPath = new System.Windows.Forms.Button(); + this.lblToolPath1 = new System.Windows.Forms.Label(); + this.lbConsoleOutput = new System.Windows.Forms.ListBox(); + this.label2 = new System.Windows.Forms.Label(); + this.tbOutputDir = new System.Windows.Forms.TextBox(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.loadPresetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.btnBrowseGameDir = new System.Windows.Forms.Button(); + this.btnConvert = new System.Windows.Forms.Button(); + this.lblOutputDir = new System.Windows.Forms.Label(); + this.convertProgress = new System.Windows.Forms.ProgressBar(); + this.lblGameDirectory = new System.Windows.Forms.Label(); + this.tbGameDirectory = new System.Windows.Forms.TextBox(); + this.btnBrowseOut = new System.Windows.Forms.Button(); + this.appFolderBrowser = new System.Windows.Forms.FolderBrowserDialog(); + this.uiUpdate = new System.Windows.Forms.Timer(this.components); + this.lbfolderList = new System.Windows.Forms.ListBox(); + this.folderlist_text = new System.Windows.Forms.Label(); + this.btnRemove = new System.Windows.Forms.Button(); + this.btnAdd = new System.Windows.Forms.Button(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // tbToolPath + // + this.tbToolPath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); + this.tbToolPath.Location = new System.Drawing.Point(6, 39); + this.tbToolPath.Name = "tbToolPath"; + this.tbToolPath.Size = new System.Drawing.Size(215, 20); + this.tbToolPath.TabIndex = 3; + this.tbToolPath.TextChanged += new System.EventHandler(this.tbToolPath_TextChanged); + // + // btnSelToolPath + // + this.btnSelToolPath.Location = new System.Drawing.Point(227, 36); + this.btnSelToolPath.Name = "btnSelToolPath"; + this.btnSelToolPath.Size = new System.Drawing.Size(75, 23); + this.btnSelToolPath.TabIndex = 4; + this.btnSelToolPath.Text = "Browse..."; + this.btnSelToolPath.UseVisualStyleBackColor = true; + this.btnSelToolPath.Click += new System.EventHandler(this.btnSelToolPath_Click); + // + // lblToolPath1 + // + this.lblToolPath1.AutoSize = true; + this.lblToolPath1.ForeColor = System.Drawing.Color.Red; + this.lblToolPath1.Location = new System.Drawing.Point(3, 24); + this.lblToolPath1.Name = "lblToolPath1"; + this.lblToolPath1.Size = new System.Drawing.Size(53, 13); + this.lblToolPath1.TabIndex = 6; + this.lblToolPath1.Text = "Tool Path"; + // + // lbConsoleOutput + // + this.lbConsoleOutput.BackColor = System.Drawing.SystemColors.MenuText; + this.lbConsoleOutput.ForeColor = System.Drawing.Color.Lime; + this.lbConsoleOutput.FormattingEnabled = true; + this.lbConsoleOutput.Location = new System.Drawing.Point(6, 283); + this.lbConsoleOutput.Name = "lbConsoleOutput"; + this.lbConsoleOutput.Size = new System.Drawing.Size(303, 147); + this.lbConsoleOutput.TabIndex = 7; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(7, 267); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(80, 13); + this.label2.TabIndex = 8; + this.label2.Text = "Console Output"; + // + // tbOutputDir + // + this.tbOutputDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); + this.tbOutputDir.Location = new System.Drawing.Point(6, 78); + this.tbOutputDir.Name = "tbOutputDir"; + this.tbOutputDir.Size = new System.Drawing.Size(215, 20); + this.tbOutputDir.TabIndex = 9; + this.tbOutputDir.TextChanged += new System.EventHandler(this.tbOutputDir_TextChanged); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(317, 24); + this.menuStrip1.TabIndex = 10; + this.menuStrip1.Text = "menuStrip1"; + this.menuStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.menuStrip1_ItemClicked); + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.loadPresetsToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // loadPresetsToolStripMenuItem + // + this.loadPresetsToolStripMenuItem.Name = "loadPresetsToolStripMenuItem"; + this.loadPresetsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.loadPresetsToolStripMenuItem.Text = "Load Presets"; + this.loadPresetsToolStripMenuItem.Click += new System.EventHandler(this.LoadPresetsToolStripMenuItem_Click); + // + // btnBrowseGameDir + // + this.btnBrowseGameDir.Location = new System.Drawing.Point(227, 117); + this.btnBrowseGameDir.Name = "btnBrowseGameDir"; + this.btnBrowseGameDir.Size = new System.Drawing.Size(75, 23); + this.btnBrowseGameDir.TabIndex = 11; + this.btnBrowseGameDir.Text = "Browse..."; + this.btnBrowseGameDir.UseVisualStyleBackColor = true; + this.btnBrowseGameDir.Click += new System.EventHandler(this.btnBrowseGameDir_Click); + // + // btnConvert + // + this.btnConvert.Enabled = false; + this.btnConvert.Location = new System.Drawing.Point(6, 488); + this.btnConvert.Name = "btnConvert"; + this.btnConvert.Size = new System.Drawing.Size(303, 60); + this.btnConvert.TabIndex = 12; + this.btnConvert.Text = "CONVERT"; + this.btnConvert.UseVisualStyleBackColor = true; + this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); + // + // lblOutputDir + // + this.lblOutputDir.AutoSize = true; + this.lblOutputDir.ForeColor = System.Drawing.Color.Red; + this.lblOutputDir.Location = new System.Drawing.Point(3, 62); + this.lblOutputDir.Name = "lblOutputDir"; + this.lblOutputDir.Size = new System.Drawing.Size(84, 13); + this.lblOutputDir.TabIndex = 13; + this.lblOutputDir.Text = "Output Directory"; + // + // convertProgress + // + this.convertProgress.Location = new System.Drawing.Point(6, 436); + this.convertProgress.Name = "convertProgress"; + this.convertProgress.Size = new System.Drawing.Size(303, 46); + this.convertProgress.TabIndex = 14; + // + // lblGameDirectory + // + this.lblGameDirectory.AutoSize = true; + this.lblGameDirectory.ForeColor = System.Drawing.Color.Red; + this.lblGameDirectory.Location = new System.Drawing.Point(3, 101); + this.lblGameDirectory.Name = "lblGameDirectory"; + this.lblGameDirectory.Size = new System.Drawing.Size(80, 13); + this.lblGameDirectory.TabIndex = 15; + this.lblGameDirectory.Text = "Game Directory"; + // + // tbGameDirectory + // + this.tbGameDirectory.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); + this.tbGameDirectory.Location = new System.Drawing.Point(6, 117); + this.tbGameDirectory.Name = "tbGameDirectory"; + this.tbGameDirectory.Size = new System.Drawing.Size(215, 20); + this.tbGameDirectory.TabIndex = 16; + this.tbGameDirectory.TextChanged += new System.EventHandler(this.tbGameDirectory_TextChanged); + // + // btnBrowseOut + // + this.btnBrowseOut.Location = new System.Drawing.Point(227, 76); + this.btnBrowseOut.Name = "btnBrowseOut"; + this.btnBrowseOut.Size = new System.Drawing.Size(75, 23); + this.btnBrowseOut.TabIndex = 17; + this.btnBrowseOut.Text = "Browse..."; + this.btnBrowseOut.UseVisualStyleBackColor = true; + this.btnBrowseOut.Click += new System.EventHandler(this.btnBrowseOut_Click); + // + // uiUpdate + // + this.uiUpdate.Enabled = true; + this.uiUpdate.Interval = 4; + this.uiUpdate.Tick += new System.EventHandler(this.uiUpdate_Tick); + // + // lbfolderList + // + this.lbfolderList.FormattingEnabled = true; + this.lbfolderList.Location = new System.Drawing.Point(6, 156); + this.lbfolderList.Name = "lbfolderList"; + this.lbfolderList.Size = new System.Drawing.Size(215, 108); + this.lbfolderList.TabIndex = 18; + // + // folderlist_text + // + this.folderlist_text.AutoSize = true; + this.folderlist_text.Location = new System.Drawing.Point(7, 140); + this.folderlist_text.Name = "folderlist_text"; + this.folderlist_text.Size = new System.Drawing.Size(92, 13); + this.folderlist_text.TabIndex = 19; + this.folderlist_text.Text = "Folders to convert"; + // + // btnRemove + // + this.btnRemove.Location = new System.Drawing.Point(227, 185); + this.btnRemove.Name = "btnRemove"; + this.btnRemove.Size = new System.Drawing.Size(75, 23); + this.btnRemove.TabIndex = 20; + this.btnRemove.Text = "Remove"; + this.btnRemove.UseVisualStyleBackColor = true; + this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click); + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(227, 156); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 23); + this.btnAdd.TabIndex = 21; + this.btnAdd.Text = "Add"; + this.btnAdd.UseVisualStyleBackColor = true; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(317, 554); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.btnRemove); + this.Controls.Add(this.folderlist_text); + this.Controls.Add(this.lbfolderList); + this.Controls.Add(this.btnBrowseOut); + this.Controls.Add(this.tbGameDirectory); + this.Controls.Add(this.lblGameDirectory); + this.Controls.Add(this.convertProgress); + this.Controls.Add(this.lblOutputDir); + this.Controls.Add(this.btnConvert); + this.Controls.Add(this.btnBrowseGameDir); + this.Controls.Add(this.tbOutputDir); + this.Controls.Add(this.label2); + this.Controls.Add(this.lbConsoleOutput); + this.Controls.Add(this.lblToolPath1); + this.Controls.Add(this.btnSelToolPath); + this.Controls.Add(this.tbToolPath); + this.Controls.Add(this.menuStrip1); + this.MainMenuStrip = this.menuStrip1; + this.Name = "MainForm"; + this.Text = "Bulk Texture Converter"; + this.Load += new System.EventHandler(this.MainForm_Load); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.TextBox tbToolPath; + private System.Windows.Forms.Button btnSelToolPath; + private System.Windows.Forms.Label lblToolPath1; + private System.Windows.Forms.ListBox lbConsoleOutput; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox tbOutputDir; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.Button btnBrowseGameDir; + private System.Windows.Forms.Button btnConvert; + private System.Windows.Forms.Label lblOutputDir; + private System.Windows.Forms.ProgressBar convertProgress; + private System.Windows.Forms.Label lblGameDirectory; + private System.Windows.Forms.TextBox tbGameDirectory; + private System.Windows.Forms.Button btnBrowseOut; + private System.Windows.Forms.FolderBrowserDialog appFolderBrowser; + private System.Windows.Forms.Timer uiUpdate; + private System.Windows.Forms.ListBox lbfolderList; + private System.Windows.Forms.Label folderlist_text; + private System.Windows.Forms.Button btnRemove; + private System.Windows.Forms.Button btnAdd; + private System.Windows.Forms.ToolStripMenuItem loadPresetsToolStripMenuItem; + } +} + diff --git a/bC7totif/MainForm.cs b/bC7totif/MainForm.cs new file mode 100644 index 0000000..b9eee9e --- /dev/null +++ b/bC7totif/MainForm.cs @@ -0,0 +1,370 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; +using System.Windows.Forms; +using System.IO; +using System.Diagnostics; +using System.Runtime.InteropServices; + +namespace bulkTexConverter +{ + public partial class MainForm : Form + { + static string gamePath; + static string outDir; + static string toolPath; + static bool busy; + static Queue consoleBuffer; + static ListBox.ObjectCollection Items; + static int maxfiles; + static int currentfiles; + + public MainForm() + { + consoleBuffer = new Queue(); + InitializeComponent(); + this.MinimumSize = new Size(333, 593); + this.MaximumSize = new Size(333, 593); + + } + + + private void MainForm_Load(object sender, EventArgs e) + { + reloadSettings(); + + } + + private void reloadSettings() + { + gamePath = appSettings.Default.gamePath; + outDir = appSettings.Default.outDir; + toolPath = appSettings.Default.toolPath; + tbToolPath.Text = toolPath; + tbOutputDir.Text = outDir; + tbGameDirectory.Text = gamePath; + } + + private void updateSettings() + { + appSettings.Default.gamePath = gamePath; + appSettings.Default.outDir = outDir; + appSettings.Default.toolPath = toolPath; + appSettings.Default.Save(); + } + + + private void bigButton_Click(object sender, EventArgs e) + { + + } + + private void uiUpdate_Tick(object sender, EventArgs e) + { + if (toolPath == null || toolPath.Length < 2) + { + tbToolPath.BackColor = Color.Pink; + lblToolPath1.ForeColor = Color.Red; + } else + { + tbToolPath.BackColor = Color.White; + lblToolPath1.ForeColor = Color.Green; + } + + if (outDir == null || outDir.Length < 2) + { + tbOutputDir.BackColor = Color.Pink; + lblOutputDir.ForeColor = Color.Red; + } + else + { + tbOutputDir.BackColor = Color.White; + lblOutputDir.ForeColor = Color.Green; + } + + + if (gamePath == null || gamePath.Length < 2) + { + tbGameDirectory.BackColor = Color.Pink; + lblGameDirectory.ForeColor = Color.Red; + } + else + { + tbGameDirectory.BackColor = Color.White; + lblGameDirectory.ForeColor = Color.Green; + } + + if (gamePath == null || gamePath.Length < 2 || toolPath == null || toolPath.Length < 2 || gamePath == null || gamePath.Length < 2 || busy) + { + btnConvert.Enabled = false; + } else + { + btnConvert.Enabled = true; + } + if (consoleBuffer.Count > 0) + { + var op = consoleBuffer.Dequeue(); + if (op != null) + { + lbConsoleOutput.Items.Add(op); + int visibleItems = lbConsoleOutput.ClientSize.Height / lbConsoleOutput.ItemHeight; + lbConsoleOutput.TopIndex = Math.Max(lbConsoleOutput.Items.Count - visibleItems + 1, 0); + } + } + convertProgress.Maximum = maxfiles; + convertProgress.Value = currentfiles; + convertProgress.Minimum = 0; + + + } + + private void btnSelToolPath_Click(object sender, EventArgs e) + { + var diagRes = appFolderBrowser.ShowDialog(); + if (diagRes == DialogResult.OK) + { + toolPath = appFolderBrowser.SelectedPath; + tbToolPath.Text = toolPath; + updateSettings(); + } + + } + + private void btnBrowseOut_Click(object sender, EventArgs e) + { + var diagRes = appFolderBrowser.ShowDialog(); + if (diagRes == DialogResult.OK) + { + outDir = appFolderBrowser.SelectedPath; + tbOutputDir.Text = outDir; + updateSettings(); + } + } + + private void btnBrowseGameDir_Click(object sender, EventArgs e) + { + var diagRes = appFolderBrowser.ShowDialog(); + if (diagRes == DialogResult.OK) + { + gamePath = appFolderBrowser.SelectedPath; + tbGameDirectory.Text = gamePath; + updateSettings(); + } + } + + private void tbToolPath_TextChanged(object sender, EventArgs e) + { + toolPath = tbToolPath.Text; + updateSettings(); + } + + private void tbOutputDir_TextChanged(object sender, EventArgs e) + { + outDir = tbOutputDir.Text; + updateSettings(); + } + + private void tbGameDirectory_TextChanged(object sender, EventArgs e) + { + gamePath = tbGameDirectory.Text; + updateSettings(); + } + + + + private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) + { + + } + + + public static Process StartProcess(string executable, string commandline) + { + try + { + ProcessStartInfo sInfo = new ProcessStartInfo(); + var myProcess = new Process(); + myProcess.StartInfo = sInfo; + sInfo.CreateNoWindow = true; + sInfo.FileName = executable; + sInfo.Arguments = commandline; + myProcess.StartInfo.UseShellExecute = false; + myProcess.StartInfo.RedirectStandardOutput = true; + myProcess.OutputDataReceived += (sender, args) => { + //Console.WriteLine(args.Data); lock (consoleBuffer) { consoleBuffer.Enqueue(args.Data); } + }; + myProcess.Start(); + myProcess.BeginOutputReadLine(); + return myProcess; + } + catch { consoleBuffer.Enqueue("Error starting process."); } + return null; + } + + public static void doConvertAll() + { + busy = true; + var count = 0; + foreach (string obj in Items) + { + if (obj!=null) + { + count++; + } + } + + string[] finalDirList = new string[count]; + + var cdx = 0; + foreach (string obj in Items) + { + if (obj != null) + { + finalDirList[cdx] = obj; + cdx++; + } + } + + + var fileCount = 0; + + for (int i=0; i < finalDirList.Length;i++) + { + var iPth = gamePath + finalDirList[i]; + if (Directory.Exists(iPth)) + { + var w = Directory.GetFiles(iPth, "*", SearchOption.AllDirectories); + fileCount += w.Length; + } + } + + var fileList = new string[fileCount]; + var fIdx = 0; + for (int i = 0; i < finalDirList.Length; i++) + { + var iPth = gamePath + finalDirList[i]; + + if (Directory.Exists(iPth)) + { + var w = Directory.GetFiles(iPth, "*", SearchOption.AllDirectories); + for (int b = 0; b < w.Length; b++) + { + fileList[fIdx] = w[b]; + fIdx++; + } + } + } + + maxfiles = fileList.Length; + + for (int i=0; i < fileList.Length; i++) + { + var currentFilePath = fileList[i]; + var DirName = Path.GetDirectoryName(currentFilePath); + var relDir = DirName.Replace(gamePath,""); + var destDir = outDir + relDir; + Directory.CreateDirectory(destDir); + currentfiles = i; + var cmdArgs = string.Format("-ft TIF -if LINEAR -sRGB -y -o \"{0}\" \"{1}\"", destDir, currentFilePath); + var newProcess = StartProcess(toolPath + "\\texconv.exe", cmdArgs); + consoleBuffer.Enqueue("Converting " + currentFilePath); + if (newProcess!=null) + { + newProcess.WaitForExit(); + } + // Console.WriteLine(cmdArgs); + + + } + busy = false; + + } + + private void btnConvert_Click(object sender, EventArgs e) + { +#if !DEBUG + if (!File.Exists(toolPath + "/texconv.exe")) + { + MessageBox.Show("Cannot find texconv.exe under tool directory."); + return; + } + if (!Directory.Exists(gamePath)) + { + MessageBox.Show("Game path is wrong."); + return; + } +#endif + Items = lbfolderList.Items; + var asyncThreadParamInit = new ThreadStart(doConvertAll); + //doConvertAll(); + var mthd = new Thread(asyncThreadParamInit); + mthd.Start(); + } + + private void performTestToolStripMenuItem_Click(object sender, EventArgs e) + { + StartProcess(@"C:\WINDOWs\SYSTEM32\PING.exe", "google.com"); + } + + private void btnAdd_Click(object sender, EventArgs e) + { + var diagRes = appFolderBrowser.ShowDialog(); + if (diagRes == DialogResult.OK) + { + var pth1 = appFolderBrowser.SelectedPath; + var pth2 = pth1.Replace(gamePath + "\\", "\\"); + if (pth2 == pth1) + { + MessageBox.Show("Path must be inside game directory."); + return; + } + lbfolderList.Items.Add(pth2); + } + } + + private void btnRemove_Click(object sender, EventArgs e) + { + object oc = null; + try + { + oc = lbfolderList.Items[lbfolderList.SelectedIndex]; + } catch { } + + if (oc!=null) + { + lbfolderList.Items.RemoveAt(lbfolderList.SelectedIndex); + } + } + + private void LoadPresetsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (File.Exists("presets.ini")) + { + lbfolderList.Items.Clear(); + var sparr = File.ReadAllLines("presets.ini"); + for (int i = 0; i < sparr.Length; i++) + { + if (sparr[i] == null) + continue; + var pth1 = sparr[i]; + var pth2 = pth1.Replace(gamePath + "\\", "\\"); + if (pth2 == pth1) + { + consoleBuffer.Enqueue("Path must be inside game directory " + sparr[i]); + return; + } + lbfolderList.Items.Add(pth2); + } + } else + { + MessageBox.Show("presets.ini not found in application directory."); + } + } + } +} diff --git a/bC7totif/MainForm.resx b/bC7totif/MainForm.resx new file mode 100644 index 0000000..adf628d --- /dev/null +++ b/bC7totif/MainForm.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 132, 17 + + + 280, 17 + + \ No newline at end of file diff --git a/bC7totif/Program.cs b/bC7totif/Program.cs new file mode 100644 index 0000000..4d8aa76 --- /dev/null +++ b/bC7totif/Program.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace bulkTexConverter +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + appSettings.Default.Reload(); /// sync call to reload app settings object. + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + } +} diff --git a/bC7totif/Properties/AssemblyInfo.cs b/bC7totif/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..318cc1c --- /dev/null +++ b/bC7totif/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("bulkTexConverter")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("bulkTexConverter")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("972b0d12-74e8-43a0-ae4f-4a583741a473")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/bC7totif/Properties/Resources.Designer.cs b/bC7totif/Properties/Resources.Designer.cs new file mode 100644 index 0000000..93864ba --- /dev/null +++ b/bC7totif/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace bulkTexConverter.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("bulkTexConverter.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/bC7totif/Properties/Resources.resx b/bC7totif/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/bC7totif/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/bC7totif/Properties/Settings.Designer.cs b/bC7totif/Properties/Settings.Designer.cs new file mode 100644 index 0000000..97511e0 --- /dev/null +++ b/bC7totif/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace bulkTexConverter.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/bC7totif/Properties/Settings.settings b/bC7totif/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/bC7totif/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/bC7totif/appSettings.Designer.cs b/bC7totif/appSettings.Designer.cs new file mode 100644 index 0000000..457f559 --- /dev/null +++ b/bC7totif/appSettings.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace bulkTexConverter { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")] + internal sealed partial class appSettings : global::System.Configuration.ApplicationSettingsBase { + + private static appSettings defaultInstance = ((appSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new appSettings()))); + + public static appSettings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("C:\\Program Files (x86)\\Steam\\steamapps\\common\\SpaceEngineers")] + public string gamePath { + get { + return ((string)(this["gamePath"])); + } + set { + this["gamePath"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("C:\\Program Files (x86)\\Steam\\steamapps\\common\\SpaceEngineersModSDK\\Tools\\TextureP" + + "acking\\Tools")] + public string toolPath { + get { + return ((string)(this["toolPath"])); + } + set { + this["toolPath"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string outDir { + get { + return ((string)(this["outDir"])); + } + set { + this["outDir"] = value; + } + } + } +} diff --git a/bC7totif/appSettings.settings b/bC7totif/appSettings.settings new file mode 100644 index 0000000..399141a --- /dev/null +++ b/bC7totif/appSettings.settings @@ -0,0 +1,15 @@ + + + + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineersModSDK\Tools\TexturePacking\Tools + + + + + + \ No newline at end of file diff --git a/bC7totif/bin/Debug/bulkTexConverter.exe b/bC7totif/bin/Debug/bulkTexConverter.exe new file mode 100644 index 0000000000000000000000000000000000000000..01b5e4f4bfd7be9dc9537102ea2d15964738796c GIT binary patch literal 20480 zcmeHv4RjpUmFBHd|EZ;JyCh5UkBrLl4~-=Y`43~T0sYwsTUc1K`BN}0sU$bFx|*tP zW7*)ehmed(fS8|5Lc$Wm$)2z?$qW-_f-{={$+EqXYl0D6#{=d zD4{yp_N62}UHj6iXSBU9tr|U?am~DAPdn)ub0VF~*#&dlGM!@1%;e1eeIw?KJ!y3% z67e;j=-~mPy;=<&xcB^<{N8>*?Nq0A6YT;erl`j(JWYH{__B5;9=g&SC5kZM&vW>K z&Yv2(`EH`c^0)HzP{l$i$lb@~64Bp=J!0_jX`*`IKc66K4btDOY?f6Q&KU4318uqr z*3km+(f|PJ#8yvlVDd4EZtiki2VE=ON+__QK|w&Tz~3&%%GzLLUFp;KvaGA|4ScR3 z>J6Y$9E1J*VUaq8=|62J`fQ4Qr?Xm-(l}9GV~+RsY3$ah4yzk~`xl=&9w*MeYhbN*D!D+ITqDuOmGLx1$96*iN`ieNvDRu^}r` z0thJ-O(P{tIS<9eiOzbb^aEA}vn(afEK@1he`CC>lD!q7-5MFG*x75*Q;M zE^VR}T!eo4pQ|&2Q0rIU72Gc@na_ zndA{_nXs`!Xtp;of-ZSJT!EH|EVdJKC}eL&T|CnAmWDB3?-RFx_zv?Rg+PM~*8i`` z;`o|Bh5q+saTw{x=gdCcmo)_&c<$O;%QmR0^<2ZTs%k`|Kn=@NH6q`uAzFbs`APT; zAz~omAVbFE?l!=>XvDr4Pl~kI$kTZ0_9gPHu`lIk)ZT$dv%Rx|wAhykassgsTDzfT z-3i1-=q;pViny1fYHf*YYzz{&@4;hT)b16m{`F<+RHQi=v%KBMRC=A3)OS#9J!vqF zGyVHZ)P#AWt>_NXMKA?pWl&3rBfL3ICy<9ic0ZanMmkm*5qkhdN&AgaGNK&1F(cL) zfl=2%Iv93=VZ&d(-fTpQh*hnz)~M}_8MXFq?*4m`dwI#IYpxGUj(4mx;sMEZWYn?b zdZWIxj-oN6?(ta5b;#1-67jDky_!qUE~Agpr8emw7AHXc)$ZKdlvg8$->F;pWDMjV9@c$@q4JY6%_F>*Nv)Eb zjaFs(N@Hbe2;_CfvJ%g8Cj&-fCE8oKrc`go_%)i2uxl=HOt303C#zX383 zP@GFljw=Lnyu=Z<}wHkKLzMbdJToDOCg1z}xBV?f1Pm5OQo3fRE= zO?c9vC7eLZW_ZN|Xlx$@h|}xgbv)f7a3oUYdGEx0EtruWz4=%}=4uM_d~C#gd=7n~ z(jdoW&8}m)k?o%bH7L!#p1Bmu4JcxEb>uN^9$E61#_LO`-tj(QiQ0Gc1KVG#Ji!am z3NLMZ7@eY_I8CLGjx7O`jgaRTo}4iiwoxOx;RDo>Am>|UU#i@XWWak%gK9eK^y9D! zgI?32HDiC0gf&c1IfC?>)QxNr?{C8N1x!r&=b)IbCW+ipR#;QxJnKu6oEqXTA-0nk65kkUGknLiT8D+xhNcrXf{uh%?REjHztjQX!a_ zlGL`uy_Fd;6@A8K_DluQ--^IJ5jV$7wxaVunQw68HC4SZ-5Ct@!i2UxZ7o$@Fmbux zg*2JwCKxbQfC(*jzJfpj47R7hZHms}(PBFlB(MqAk8|y^wxw07G0iz1P>l&~TiX&< zsxh(ES52Bc98irTG3BCD+f+RZp}+(TAuG>>7Q0wMTFn(2HW0y~U>@hmfF?{ZF9e(U zAY59d4_B@9_2K9*8_mc{vu>_%COhW>!kN%EJjYBXo);ABd?#QgPp#h;UtHhXc6F6e zOmqHwpkEQPKzuR1t=8|GF^n%JU3Gv-)E|KxTkai18eQA0ALpt4xP7~FE!Q_US82c` zCs9+0a3+{L;UGjpFv6MM7WXx%H1pz*2~Y_$KH?rlZ}zO}lKZ!hp}eB35~rBQ*S6@# zIl(->cBy`x)63&)m+8kjxjephxqh5yaanDa;jCsIk5`1Yt@Wqi9TlRpkGbwt1n$SV zKG2K_=F>d?nw4o@OJV#_pd~BjJQ!%ngoRoPD$~pd}L)YAKA-P(@od-7%Qp z8Oel&S_RRUzfvbM{roW(Tfa{=|3&^9_JGYB!^>n3ep4Cuz|V5|A`T+^BC z{5T++3Ci@YD$|+Xmh{E*Qd%~Gkt!pYu&m9hGJz*SEG+hZ@tI!9d3%mzKUU{A-Y%$!-dklK)16G98z#() zXdxPYAJQfm(M%`@5F^k4S*<#NcvI41zh8wMBg^el1wjj}5nhXvif&4aVg+e6KLz`% z^k*LDu7LhbP}_`bRUk0Et-&{8m56qfXhv3=ADJtf$)SxWtz)ZQh(CzwCOhg(J~*wd;A0r<9oIKdy4ZkxG0s zVV)8~Z1RrH&jzNCsk88?Nw7a4OdfmrKqOxUZ$GD+pKB|@8_y1yveMl@CLY= z!khPM3U5+8iaH{seplS**chmkS`D3(m6*VIL5Lc!)G1+=lSQ+APX)0*Eam2uqNM~~ z|1ou;ZDT^lDRnQy=G1-saN`h}x}S^d*XgN`azV~}I&H`7f*rWeUJFfegv9}|ot!^} zMlXkP?oFKrv;6>o`yfDFw8VUhTitB&y`_4O0S`gWI@HTcigwaVjNtx2)x)Q#Ki{uE z=%UtphY&$mC9YZDHZV+A9^F5zVmqS;KlmU-E1YJ@O1E{leytyvYprt;> z1VvFS{w*AC1fr4D?{W3_)Y)IBCOU7kyndnHk*j(&+|BU^zMvypy1KhIcW>Uv&Y`f} zeN3WaHRjLDczzm6tR5*incTF?9C=LV-@t;^2SzB1DT4T-)w>T2_Tza6@J={#b#K-l zXJ&jbx3p`U9tKRE2s+~ppV-as9i$!sBK+JYgfHZI z+V2S~D(PG3*ieioiz&{;9y93(vhZ?}LQ% z1g;T!UFb8&cr`V5)WxZ@W95{4^G!KJ*f&XHZVkBe6H@?_NO0}L_1w!~g8O~E_9|$*qHawhLf_PwzdQL5w0(>o3dd=CoO!-b&pbcZ zxi%L66w1eHsWwip=*OaQD%3Fi0xUvb;rn65A49hWYN~q~a_S;X`98FY&<7UX2v3gJ zGQ1_i@Czs>X{*@vd9;d9t$riyy$$v@keOr&196t{sLnFCCD@AR#nSBpe^%rSUS3hM>8pu-nxenZFo=208xQ>z}54q z`Um2Jf@z4(kHsE{UyrDXQweoniarp(m)4RA{>Ah}-Qs%2R!O^$)Gw|dL>#WAnpKOb z1de+tg+B&8q4nwpZHnvy{92shl$7sVG>GyqYxe^FqJ9LhxBgndt$-TYi5mbfjobvd zD>4pv0ZjpZCV2~BkCgvB&b1d&4zMBS06r0C&K*gHe;H@~YZ6BQXBKh!eT$fXRBDgM zkE8r`y##nv+Wsoa5(cDvqrlzL*K0{`+Y@G)|Be`@P;1Z^V|N4ItKS3ogm%Av5#IJb zs5irRzo!qgi{QN%5}yM9VZlBaTNOEt+Iu{#3s)c-eagcQpiZZ+c-T1Vbb8sto{pc! zjQ)EMdp5opm=3oSeQ@bk#Ab-<1UtR-(z;i*5Ur}J>l5rG{UM#vLp1DRw<0nk^c4>~ zCfIL0tTB2g?XE{}344>1RXbt^9u#=c55k&1{7jxZd zdMWm*ww7KH>@M-{T6$Tq2V_QJaslNd1V!?Ra|3Y6^HAd@b zpVX-_T1QqDcAH>oG}qA`g58BB=M_ldxp`4|F8mp0xK0lU{r_h9uQcv=k{2fWr}X>p z0~RSc=jv-|D=xo~0T9#60OOeRTk96nMuFP}_6Qslc#Xj81*QR;C?nJgR!~xTv)b7(RrKhA^FYv7PVsbI)JCLQH z((K4}^t^Ucbd1hwzle{c{0-vr8&du+`WPr*i!tSZ)`b1Sy5x0$t>FwkPp{VJ=p4OB zE^3d2kJ1I&V+ly3e*<_EkbVAem};r6RWnSJ%;it8bv-#wc29jjkDTU zlBa1`LD?)z&6aoK`otFOg-8MYd?!}EX?$KP(raHr?gLM z%RxD@$VB;c;(V<~JBxKTExlv_w`m#l!V(@_bfxxdjTT+4X?pV_w)(5l8?K-<7fWp}-#td|u!$1pZo}CVr?DXaE+qvsxPcKCk8I zxV8*(J^;$=v3mfU;hzh@!<3uDrvYo>^Ht#aJbe2t`nYz1{&u_x<$o3VIBGNS-bVf9 zB#-Y-jIySuF}~aNSL+|sdh{2x&uG_3+wJ;*_Bri({YRh=>fFnq&hiI!j-o-Gr5O?% zhBh5Vgd5XSK`)$B~4c*RaHpcO+ zb_c9GO30BKy1%B6j?-&^chO(h4AO^D9;62aeiA>C$p|GQlnma}KNmVBlv6@E1Z2P@L~OL0DqeJJ88wg<>KFVX;_WJ zD1{(_Wkpd&)S?^()cIF;fU5};2CGg2<+V7Q^i!zBIW+irAg*@lKCN57U5X)}fM+-M zZj4sb-o%c*nzmi%Lz((;FQ3Cv;2Au*{0hoZIU~@H%eEgnv}xm^ZrU+YNIQjL$DXiU z_p))1dQH(PS~qW`?09z6wzI?O!r_fHW95o`sL6w#9=EcaSPbnLvL}mK>oOY29J6-O z$gEqiX1WIV(X>@K)SoV-X_sTq^f=SwG~-U#PBt@+b`w5hpPkKG6NQYObGvq1Im^jR z(CA^uN>5UHa`Mn#8-<~CCb!FWW)!v`zs&=2ypZdeoRnVnTZ(xUzXI$#oX$-HFO2(& zAF3wrD;Dy_LVw1YL*JdAu|S0`wliB*SF!uhAZ+W)W+ra+dJN(&>>bFZ$Fr#8GHaYJ z6mSOgscewfJ^ZrYny@lQz&tXWn>g&)Irwjq_FMUEdcvYfYbssL76x-}A)N!x5_^gT zdt@S=wcv7#VEul!l?MAWZr*meXR?l36UBlQ_ZM@8%#1ZUo42k^=O$6P+bS@|u)Ur9El{L8G!;guvsv7lNtRn$F~uJ^L|UdowwUu5~g6OG*>=%nWzS zRPI$qst+a=9o2(hb}ZK}Iun+U_ZABUJJ*}W8`qwE9?nj4bc|TyN>}L0V2g^G1Nq5x z!J>i542G@Ov2PbQAf`cNMXx;!eQ0E~N5xc60r5Lt1gX!S$-_iPVh-Gsm8#vvOc3Ls zWQIOCy~5OQjTfh}aMCl+mw( z!t=$!bha4ifYlh8u=CcWS6}I(EY3+!S~F?q)=JfA+JT>T;U~t{?RK!jZ^I#S&~jXi zL8X;niO`wKOc&vw1*`ilcLMpMx>9*wT3{-tk4nj%FB>^&vN%zgU(sjhXPwOS;RUN^ z^6A`crHwZUxKH#mp2=nkfm)7uxNYRHmCX*w%(1B7x{Z?`4dm35dBoFng#Aq;=_3{= zpZ(U1&81@YRwNiW;)vxGET;=IP$m$k!^*5>gyRv(!^#!Pbpg~%oGMO{H2ehVS3jq53u$->Dw8FwKI0EKaoX6#26}brq(PIeQ0H%%e(W zH&^gLj~0Da&1Etot3 z!ibf2CJyhD)JH0?2s4?yMQ$)RWs3>2`x1<2Sq1YpWEDbr4Ho9|P$^#_TzJf6NJ&Bj zo4MY!Lw#B30iGOE08OZMzPC6v1&pI~zqj991V1iftT#PzYXw8v$EsUQBVWvBtxDbCK&}Xt)7Vb%ekp);@y?LCCgd@M z?HZ$=-AJa>IomB{CS0H7=WR&RsQ8CGkthw;S3@lDQMke{1OJCkY>Lpu85 zgNcU^!DCnRzw_eE#WsqUrN9(UfPyHUve4;J!RPA3fwEv-ZL6Ut-v40TII1M1#|M!g zkBVG>7o;ex-Kd>c$PjWWvShD)R90kua)12f{{1a6PM%dqNlr`E1f@(lp<{x(vt;KF z4cvxwg#9Uw>c%vsX@)Es#ga%p%&}N0;EH^jeYKk6&(I3th%= zdvra%qv&l2H%yyA85WM+m6lD@V*NDiw?JjdGq7QdXt(bn6O^J@ZsOmJS{z&e3R(V!tzb@V#^3j;aLPW>1l3a1oQZl zg%%SM1sQPUP`jZ1O_+i3;hY#*IS$!5c-MlQd9{tb5*4?L)m^X|epr@;ocX*P@eZ>wp~U_9T2*R?JpMuOTO22~yF6anz}l#J^B&sO^_013^9Vy_R3=lFY&v23`iCC_x#mR70Q2*$u}j23&_ z_q^gzqjp5(6!1fXK8(`UbP)4(Kcx8)6C8K1{i-0%^rQyo9kuaH<{ZJ+6%bdP!KMLK zo}yJM8mslHlCaXRTUb8Fl+U5Gs%pJ#z7Len$}09ZPG_RsUW^+1oZ5m^o}ElRgfEXQ z>eucHv~n^21>j~m8!AhwQT4nZt!7Zq9-u@urZ{@g|0FJMz328UxYMApuPXWKy+p!Z zuO-jlU|TYVAd&MOYtHdS8+sArS={2QcwxJW(#G^=yFX%V4ec5CxH-0tF2K>{jjW1d zUX@t$F2oN%c|PKFB4zwI=a2t>`(0muuJ`1NcR%{nj=x(;Ayd<0H703c6bysWBm+Hc z>RK`xVQT56P*iJ()kLMLH7QlCG13}J-^Sl?Q^WhTWFlIt^CzjtjMBr97{gV$QTm~h z@WYUa_Z|QZ7No~o!zSt;#tnZg7K=o6qx1=M2+}9eFj*I^X()ZBp>zg+xj7J23e>gM zrHXVGoM@wIjno}&kF89`_}fr=GO0I|J}1vuQeO#m7{+uw`2&$UcLfFrXoUtKhVZs2 zSxYr5Q8r4y0GebYfkoKJU*l1eOt!YhqLBSmL+MYH3QyHW!>oBSsY4DP;0B%yMfFx4 zX12!aqA~6q4Cs_J$cGa}>xN8>YTzE&&+dd5*wZHy@+dtl9h@{+(UYs9s9M=@a;+j> z!2I>~ihrYeY!}9z!ccmRz0xp?pDSsw1l<8NTwfclf$}flFAv~9*N1aJ#4u(o&D_%b^$=*Q6*JMgfcr&oOZ+-t)@K9y$-NeQ8v0 zzSc?SanU?*bi$Gw1zZy10Hc8quMhEQ!jE?5UPR(|X;RmMAIX$&OwF%8X_}k5H+ADT zWOyyLecPt-?#YdtHf-BsUA$q-=5+Ulw6$ew!?tfgE0qShzJO8pjWi{wWf0LLcehGbUP(@qq*HPlj=o z0mBs$uPHUWUF6Tx_S=tl^NjZ`B-oAQ%XX*`<-zNr9sR_;S z8Sd%lzpV4WRK3{@|NmNH(^}#9`bm6u5$zx8ANlArn_s-)FD}^q#b{sg?V8OpE{Fww zQ{#^Hr*qaAU)1sii942e?1Fy{ykRDdxN;VxjrVOU*oDm0m_2^WnB3!x&7JyP`N?rs z?Vs&u*s7>@3zy9b9xVC)pNgU#>f@Uai?6@bt7OaSn#6@Uf8Jh8<`q)<=L2;4ov%q$ zS_-9x@vPR3lRFW9WHyh^d~=APD1O`p%&B52_&;s1ntl{DWBemv?=x1j1*L;HIUNGz z{rU(_*1UT^Bq!`$DD&sbp`X3Q^3|6qN+$oFnm-|Y6-7`1{X#p4ouh+&qdJQXVh_o? zWB#m>R->p*gX&^8$u}A53@Z%uN1=adzMJ=&=sbazZkF8PH9;nMp|Ff`Joo!U#gx`i3;PU(Hm)++CwB_?{&L?<;Ad~~slmZB4gXX$e78Q!H!A4+N@{?ty^u34Quwr%$GMX& znZ{YQ0G|0Y{O*lR{MiJ(_$&Y7y-JQ6IX?T$K(2$cfbU)8Hqn2d*9V^*SbyJ_jPWTF zYu~$`3;4XCl0mPGhdKdHq8;DPR6O$Tvd|rEk#VS&F?TfPj>W~&rU%yX-Omhk&dRC% z-P--;E~1|VCdJSG?AaZcADzjXxEkdfAJIh)^gh~zbp|?#CN29q>)j1A{^n={_86C>-I=Z<8{19% zx*{`$H=6#!E&V~5X_kczPU8LydWKhtnIqV#Oa!e;;zk)_17?|K$ItJ@7vP|LC+o literal 0 HcmV?d00001 diff --git a/bC7totif/bin/Debug/bulkTexConverter.exe.config b/bC7totif/bin/Debug/bulkTexConverter.exe.config new file mode 100644 index 0000000..3646e38 --- /dev/null +++ b/bC7totif/bin/Debug/bulkTexConverter.exe.config @@ -0,0 +1,24 @@ + + + + +
+ + + + + + + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineersModSDK\Tools\TexturePacking\Tools + + + + + + + \ No newline at end of file diff --git a/bC7totif/bin/Debug/presets.ini b/bC7totif/bin/Debug/presets.ini new file mode 100644 index 0000000..ff6784d --- /dev/null +++ b/bC7totif/bin/Debug/presets.ini @@ -0,0 +1,3 @@ +E:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Textures\Debug +E:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Textures\GUI +E:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Textures\GUI\HelpScreen \ No newline at end of file diff --git a/bC7totif/bin/Release/bulkTexConverter.exe b/bC7totif/bin/Release/bulkTexConverter.exe new file mode 100644 index 0000000000000000000000000000000000000000..0cd24e046798c03822f4c0d524112fcaf4d38f90 GIT binary patch literal 19456 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 + + + +
+ + + + + + + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers + + + C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineersModSDK\Tools\TexturePacking\Tools + + + + + + + \ No newline at end of file diff --git a/bC7totif/bulkTexConverter.csproj b/bC7totif/bulkTexConverter.csproj new file mode 100644 index 0000000..63e7b98 --- /dev/null +++ b/bC7totif/bulkTexConverter.csproj @@ -0,0 +1,95 @@ + + + + + Debug + AnyCPU + {972B0D12-74E8-43A0-AE4F-4A583741A473} + WinExe + bulkTexConverter + bulkTexConverter + v4.6.1 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + True + True + appSettings.settings + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + appSettings.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/bulkTexConverter.sln b/bulkTexConverter.sln new file mode 100644 index 0000000..00ddd18 --- /dev/null +++ b/bulkTexConverter.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29102.190 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bulkTexConverter", "bC7totif\bulkTexConverter.csproj", "{972B0D12-74E8-43A0-AE4F-4A583741A473}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {972B0D12-74E8-43A0-AE4F-4A583741A473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {972B0D12-74E8-43A0-AE4F-4A583741A473}.Debug|Any CPU.Build.0 = Debug|Any CPU + {972B0D12-74E8-43A0-AE4F-4A583741A473}.Release|Any CPU.ActiveCfg = Release|Any CPU + {972B0D12-74E8-43A0-AE4F-4A583741A473}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {34ACA1E6-574C-4887-B564-976A424E81AA} + EndGlobalSection +EndGlobal