403 lines
13 KiB
C#
403 lines
13 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Drawing;
|
|
using GL_EditorFramework.Interfaces;
|
|
using GL_EditorFramework.EditorDrawables;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Toolbox.Library
|
|
{
|
|
//Thanks to Smash Forge for a few of these!
|
|
// https://github.com/jam1garner/Smash-Forge/blob/master/Smash%20Forge/Runtime.cs
|
|
|
|
public class Runtime
|
|
{
|
|
//Disable loading 3k and higher texture res to prevent slowdown and memory issues
|
|
public static bool DisableLoadingGLHighResTextures = true;
|
|
|
|
public static bool EnableDragDrop = true;
|
|
|
|
public static bool DumpShadersDEBUG = false;
|
|
|
|
public static bool UseSingleInstance = false;
|
|
public static bool UseDirectXTexDecoder = true;
|
|
public static bool DEVELOPER_DEBUG_MODE = false;
|
|
public static bool AlwaysCompressOnSave = false;
|
|
|
|
public static class ResourceTables
|
|
{
|
|
public static bool TpTable = false;
|
|
public static bool BotwTable = false;
|
|
}
|
|
|
|
public static string PkSwShGamePath = "";
|
|
public static string Mk8GamePath = "";
|
|
public static string Mk8dGamePath = "";
|
|
public static string SmoGamePath = "";
|
|
public static string TpGamePath = "";
|
|
public static string BotwGamePath = "";
|
|
|
|
public class UVEditor
|
|
{
|
|
public static Color UVColor = Color.FromArgb(255, 128, 0);
|
|
}
|
|
|
|
public class SwitchKeys
|
|
{
|
|
public static string SwitchFolder = System.IO.Path.Combine(Environment.GetFolderPath(
|
|
Environment.SpecialFolder.UserProfile), ".switch");
|
|
|
|
public static string TitleKeys = System.IO.Path.Combine(SwitchFolder, "title.keys");
|
|
public static string ProdKeys = System.IO.Path.Combine(SwitchFolder, "prod.keys");
|
|
|
|
public static bool HasKeys()
|
|
{
|
|
Console.WriteLine($"ProdKeys {ProdKeys} Exists? {System.IO.File.Exists(ProdKeys)}");
|
|
Console.WriteLine($"TitleKeys {TitleKeys} Exists? {System.IO.File.Exists(TitleKeys)}");
|
|
|
|
return System.IO.File.Exists(ProdKeys) &&
|
|
System.IO.File.Exists(TitleKeys);
|
|
}
|
|
}
|
|
|
|
public class MessageEditor
|
|
{
|
|
public static FontFamily FontFamily = new FontFamily("Arial");
|
|
|
|
public static int FontSize = 12;
|
|
}
|
|
|
|
public class ByamlEditor {
|
|
public static ByamlTextFormat TextFormat = ByamlTextFormat.YAML;
|
|
}
|
|
|
|
public enum ByamlTextFormat
|
|
{
|
|
XML_EditorCore,
|
|
XML_YamlConv,
|
|
YAML,
|
|
}
|
|
|
|
public class MuuntEditor
|
|
{
|
|
public static bool Enable3DViewport = false;
|
|
}
|
|
|
|
public class LayoutEditor
|
|
{
|
|
public static bool AnimationEditMode = false;
|
|
|
|
public static bool TransformChidlren = false;
|
|
|
|
public static bool PartsAsNullPanes = false;
|
|
public static bool IsGamePreview = false;
|
|
public static bool DisplayNullPane = true;
|
|
public static bool DisplayTextPane = true;
|
|
public static bool DisplayBoundryPane = true;
|
|
public static bool DisplayPicturePane = true;
|
|
public static bool DisplayWindowPane = true;
|
|
public static bool DisplayAlignmentPane = true;
|
|
public static bool DisplayScissorPane = true;
|
|
|
|
//Index for which tab to choose when selected
|
|
//Defaults to last tab used
|
|
public static int PicturePaneTabIndex = 0;
|
|
public static int NullPaneTabIndex = 0;
|
|
public static int WindowPaneTabIndex = 0;
|
|
public static int TextPaneTabIndex = 0;
|
|
public static int MaterialTabIndex = 0;
|
|
|
|
public static bool DisplayGrid = true;
|
|
public static bool UseOrthographicView = true;
|
|
|
|
public static Color BackgroundColor = Color.FromArgb(130, 130, 130);
|
|
|
|
public static DebugShading Shading = DebugShading.Default;
|
|
|
|
public enum DebugShading
|
|
{
|
|
Default,
|
|
VertexColor,
|
|
WhiteColor,
|
|
BlackColor,
|
|
UVTestPattern,
|
|
}
|
|
}
|
|
|
|
public class ImageEditor
|
|
{
|
|
public static bool PreviewGammaFix = false;
|
|
|
|
public static bool ShowPropertiesPanel = true;
|
|
public static bool DisplayVertical = false;
|
|
|
|
|
|
public static bool DisplayAlpha = true;
|
|
public static bool UseComponetSelector = true;
|
|
|
|
public static bool EnableImageZoom = true;
|
|
public static bool EnablePixelGrid = false;
|
|
}
|
|
|
|
public class ObjectEditor
|
|
{
|
|
public static bool OpenModelsOnOpen = false;
|
|
|
|
public static Point Location = new Point(364, 0);
|
|
|
|
public static int EditorDiplayIndex = 0;
|
|
|
|
public static int ListPanelWidth;
|
|
}
|
|
|
|
//Used for experimental edits
|
|
public static bool useEditDebugMode = false;
|
|
public static bool UseEditDebugMode
|
|
{
|
|
get
|
|
{
|
|
if (useEditDebugMode == false)
|
|
{
|
|
var result = MessageBox.Show("This feature is experimental and could lead to potential crashes. Are you sure you want to continue?",
|
|
"", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
|
|
|
|
if (result == DialogResult.Yes)
|
|
useEditDebugMode = true;
|
|
}
|
|
return useEditDebugMode;
|
|
}
|
|
}
|
|
|
|
public static int SelectedBoneIndex = -1;
|
|
|
|
//These are so we can load multiple drawables in the viewport
|
|
//Each viewport can carry it's own set of drawables
|
|
//When a viewport is made it will add a ViewportEditor instance and add drawables
|
|
//These will be switchable in settings to load specic objects in the scene or display all of them at once
|
|
public static List<ViewportEditor> viewportEditors = new List<ViewportEditor>();
|
|
public class ViewportEditor
|
|
{
|
|
public List<EditableObject> editableDrawables = new List<EditableObject>();
|
|
public List<AbstractGlDrawable> staticDrawables = new List<AbstractGlDrawable>();
|
|
|
|
public static int Width = 638;
|
|
}
|
|
|
|
public static TEX_FORMAT PreferredTexFormat = TEX_FORMAT.BC1_UNORM_SRGB;
|
|
|
|
public static string ExecutableDir;
|
|
|
|
public static Form MainForm;
|
|
|
|
public static bool UseDebugDomainExceptionHandler;
|
|
public static bool DisableUpdatePrompt;
|
|
|
|
public static bool MaximizeMdiWindow = false;
|
|
|
|
public static bool AddFilesToActiveObjectEditor = true;
|
|
|
|
public class PBR
|
|
{
|
|
public static bool UseSkybox = false;
|
|
public static bool UseDiffuseSkyTexture = true;
|
|
|
|
public static string DiffuseCubeMapPath = "";
|
|
public static string SpecularCubeMapPath = "";
|
|
public static string BRSFMapPath = "";
|
|
}
|
|
|
|
public static GridSettings gridSettings = new GridSettings();
|
|
public class GridSettings
|
|
{
|
|
public float CellSize = 1.0f;
|
|
public uint CellAmount = 10;
|
|
public Color color = Color.FromArgb(90, 90, 90);
|
|
}
|
|
|
|
public static float MaxCameraSpeed = 0.1f;
|
|
|
|
public static CameraMode ViewportCameraMode = CameraMode.Perspective;
|
|
public enum CameraMode
|
|
{
|
|
Perspective,
|
|
Orthographic,
|
|
}
|
|
|
|
public static int Yaz0CompressionLevel = 3;
|
|
public static bool RenderModels = true;
|
|
public static bool RenderModelSelection = true;
|
|
public static bool RenderModelWireframe = false;
|
|
public static ViewportShading viewportShading;
|
|
public static bool IsDebugMode = true; //Enables experimental features and other things to debug.
|
|
public static bool EnableVersionCheck = true;
|
|
public static bool EnablePBR = true;
|
|
|
|
public static Color CustomPicureBoxBGColor = Color.DarkCyan;
|
|
|
|
public static bool enableVSync = false;
|
|
public static float floorSize = 30f;
|
|
public static Color floorColor = Color.Gray;
|
|
public static FloorStyle floorStyle = FloorStyle.WireFrame;
|
|
public static PictureBoxBG pictureBoxStyle = PictureBoxBG.Checkerboard;
|
|
public static float previewScale = 1.0f;
|
|
|
|
public static bool renderFloorLines = true;
|
|
|
|
public static bool UseOpenGL = true; //Removes all acess to opengl functionality. Useful for old PCs
|
|
public static bool DisplayViewport = true; //Only displays it in editors if true
|
|
|
|
//Viewport Background
|
|
public static BackgroundStyle backgroundStyle = BackgroundStyle.Gradient;
|
|
public static bool renderBackGround = true;
|
|
public static string backgroundTexFilePath = "";
|
|
public static Color backgroundGradientTop = Color.FromArgb(255, 26, 26, 26);
|
|
public static Color backgroundGradientBottom = Color.FromArgb(255, 77, 77, 77);
|
|
public static float zoomspeed = 1.25f;
|
|
public static float zoomModifierScale = 2.0f;
|
|
public static bool cameraLight = false;
|
|
public static bool DisplayPolyCount = true;
|
|
public static float PolyCount = 0;
|
|
public static float VertCount = 0;
|
|
|
|
public static bool enableOpenTKDebugOutput = false;
|
|
|
|
public static bool OpenStartupWindow = false;
|
|
|
|
// Toggle Render Passes
|
|
public static bool renderDiffuse = true;
|
|
public static bool renderFresnel = true;
|
|
public static bool renderSpecular = true;
|
|
public static bool renderReflection = true;
|
|
public static bool renderBoundingBoxes = false;
|
|
public static bool renderNormalMap = true;
|
|
public static bool renderVertColor = true;
|
|
public static bool renderBfresPbr = false;
|
|
public static bool renderNormalsPoints = false;
|
|
public static bool renderBones = true;
|
|
public static bool renderFog = true;
|
|
|
|
public static bool FrameCamera = false;
|
|
|
|
public static float bonePointSize = 0.2f;
|
|
|
|
public static bool boneXrayDisplay = false;
|
|
|
|
public static float normalsLineLength = 1;
|
|
|
|
public static bool stereoscopy = false;
|
|
public static bool UseLegacyGL = false;
|
|
public static bool OpenTKInitialized = false;
|
|
|
|
public static bool useNormalMap = true;
|
|
|
|
public static CameraMovement cameraMovement;
|
|
public static CameraView cameraView;
|
|
|
|
public static ThumbnailSize thumbnailSize = ThumbnailSize.Small;
|
|
|
|
public static float CameraNear = 0.1f;
|
|
public static float CameraFar = 100000.0f;
|
|
public static ActiveGame activeGame = ActiveGame.SMO;
|
|
|
|
public static string ProgramVersion = "0.0.0";
|
|
public static string CompileDate = "0/0/0000";
|
|
public static string CommitInfo = "";
|
|
|
|
public enum ActiveGame
|
|
{
|
|
SMO,
|
|
MK8D,
|
|
ARMs,
|
|
Splatoon2,
|
|
BOTW,
|
|
KSA,
|
|
Bezel,
|
|
}
|
|
|
|
public enum PictureBoxBG
|
|
{
|
|
Checkerboard,
|
|
Black,
|
|
White,
|
|
Custom,
|
|
}
|
|
|
|
public enum CameraMovement
|
|
{
|
|
Inspect,
|
|
Walk,
|
|
}
|
|
public enum CameraView
|
|
{
|
|
Perspective,
|
|
Orthographic,
|
|
}
|
|
|
|
public enum ThumbnailSize
|
|
{
|
|
Small,
|
|
Medium,
|
|
Large
|
|
}
|
|
|
|
public enum BackgroundStyle
|
|
{
|
|
Gradient = 0,
|
|
UserTexture = 1,
|
|
Solid = 2,
|
|
}
|
|
|
|
public enum FloorStyle
|
|
{
|
|
WireFrame = 0,
|
|
UserTexture = 1,
|
|
Solid = 2,
|
|
}
|
|
|
|
public enum ViewportShading
|
|
{
|
|
Default = 0,
|
|
Normal = 1,
|
|
Lighting = 2,
|
|
Diffuse = 3,
|
|
NormalMap = 4,
|
|
VertColor = 5,
|
|
AmbientOcclusion = 6,
|
|
UVCoords = 7,
|
|
UVTestPattern = 8,
|
|
Tangents = 9,
|
|
Bitangents = 10,
|
|
LightMap = 11,
|
|
SelectedBoneWeights = 12,
|
|
SpecularMap = 13,
|
|
ShadowMap = 14,
|
|
MetalnessMap = 15,
|
|
RoughnessMap = 16,
|
|
SubSurfaceScatteringMap = 17,
|
|
EmmissionMap = 18,
|
|
}
|
|
public enum UVChannel
|
|
{
|
|
Channel1 = 1,
|
|
Channel2 = 2,
|
|
Channel3 = 3
|
|
}
|
|
|
|
// Debug Shading
|
|
public static bool renderR = true;
|
|
public static bool renderG = true;
|
|
public static bool renderB = true;
|
|
public static bool renderAlpha = true;
|
|
public static UVChannel uvChannel = UVChannel.Channel1;
|
|
|
|
|
|
// OpenGL System Information
|
|
public static string renderer = "";
|
|
public static string openGLVersion = "";
|
|
public static string GLSLVersion = "";
|
|
}
|
|
}
|