mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-29 18:32:55 +08:00
Fixed issues with light editor, upgraded ModelForm toolbar
This commit is contained in:
parent
f91ef89580
commit
8af20945cb
@ -4547,7 +4547,45 @@ namespace CodeWalker.GameFiles
|
||||
public MetaHash ProjectedTextureHash { get; set; }
|
||||
public uint Unknown_A4h { get; set; } // 0x00000000
|
||||
|
||||
public bool HasChanged = false; //used by model light form
|
||||
public bool UpdateRenderable = false; //used by model light form
|
||||
|
||||
|
||||
public Quaternion Orientation
|
||||
{
|
||||
get
|
||||
{
|
||||
Vector3 tx = new Vector3();
|
||||
Vector3 ty = new Vector3();
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
case LightType.Point:
|
||||
return Quaternion.Identity;
|
||||
case LightType.Spot:
|
||||
tx = Vector3.Normalize(Tangent);
|
||||
ty = Vector3.Normalize(Vector3.Cross(Direction, Tangent));
|
||||
break;
|
||||
case LightType.Capsule:
|
||||
tx = -Vector3.Normalize(Tangent);
|
||||
ty = Vector3.Normalize(Vector3.Cross(Direction, Tangent));
|
||||
break;
|
||||
}
|
||||
|
||||
var m = new Matrix();
|
||||
m.Row1 = new Vector4(tx, 0);
|
||||
m.Row2 = new Vector4(ty, 0);
|
||||
m.Row3 = new Vector4(Direction, 0);
|
||||
return Quaternion.RotationMatrix(m);
|
||||
}
|
||||
set
|
||||
{
|
||||
var inv = Quaternion.Invert(Orientation);
|
||||
var delta = value * inv;
|
||||
Direction = Vector3.Normalize(delta.Multiply(Direction));
|
||||
Tangent = Vector3.Normalize(delta.Multiply(Tangent));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override void Read(ResourceDataReader reader, params object[] parameters)
|
||||
{
|
||||
@ -4729,39 +4767,6 @@ namespace CodeWalker.GameFiles
|
||||
ProjectedTextureHash = XmlMeta.GetHash(Xml.GetChildInnerText(node, "ProjectedTextureHash"));
|
||||
}
|
||||
|
||||
public Quaternion GetRotation()
|
||||
{
|
||||
Vector3 tx = new Vector3();
|
||||
Vector3 ty = new Vector3();
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
case LightType.Point:
|
||||
return Quaternion.Identity;
|
||||
case LightType.Spot:
|
||||
tx = Vector3.Normalize(Direction.GetPerpVec());
|
||||
ty = Vector3.Normalize(Vector3.Cross(Direction, Tangent));
|
||||
break;
|
||||
case LightType.Capsule:
|
||||
tx = -Vector3.Normalize(Direction.GetPerpVec());
|
||||
ty = Vector3.Normalize(Vector3.Cross(Direction, Tangent));
|
||||
break;
|
||||
}
|
||||
|
||||
var m = new Matrix();
|
||||
m.Row1 = new Vector4(tx, 0);
|
||||
m.Row2 = new Vector4(ty, 0);
|
||||
m.Row3 = new Vector4(Direction, 0);
|
||||
return Quaternion.RotationMatrix(m);
|
||||
}
|
||||
|
||||
public void SetRotation(Quaternion rot)
|
||||
{
|
||||
var inv = Quaternion.Invert(GetRotation());
|
||||
var delta = rot * inv;
|
||||
Direction = Vector3.Normalize(delta.Multiply(Direction));
|
||||
Tangent = Vector3.Normalize(Direction.GetPerpVec());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
314
CodeWalker/Forms/ModelForm.Designer.cs
generated
314
CodeWalker/Forms/ModelForm.Designer.cs
generated
@ -40,6 +40,14 @@
|
||||
this.ToolsPanel = new System.Windows.Forms.Panel();
|
||||
this.MainToolbarPanel = new System.Windows.Forms.Panel();
|
||||
this.MainToolbar = new System.Windows.Forms.ToolStrip();
|
||||
this.ToolbarMaterialEditorButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.ToolbarTextureEditorButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.ToolbarLightEditorButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.ToolbarMoveButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.ToolbarRotateButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.ToolbarScaleButton = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.SaveButton = new System.Windows.Forms.ToolStripSplitButton();
|
||||
this.SaveMenuButton = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.SaveAsMenuButton = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@ -52,13 +60,14 @@
|
||||
this.ClipDictComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.ModelsTreeView = new CodeWalker.WinForms.TreeViewFix();
|
||||
this.ToolsMaterialsTabPage = new System.Windows.Forms.TabPage();
|
||||
this.TextureViewerButton = new System.Windows.Forms.Button();
|
||||
this.TextureEditorButton = new System.Windows.Forms.Button();
|
||||
this.TexturesTreeView = new CodeWalker.WinForms.TreeViewFix();
|
||||
this.MaterialEditorButton = new System.Windows.Forms.Button();
|
||||
this.ToolsDetailsTabPage = new System.Windows.Forms.TabPage();
|
||||
this.DetailsPropertyGrid = new CodeWalker.WinForms.ReadOnlyPropertyGrid();
|
||||
this.ToolsOptionsTabPage = new System.Windows.Forms.TabPage();
|
||||
this.OptionsTabControl = new System.Windows.Forms.TabControl();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.OptionsRenderTabPage = new System.Windows.Forms.TabPage();
|
||||
this.RenderModeComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.FragGlassCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
@ -78,8 +87,9 @@
|
||||
this.GridSizeComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.StatusBarCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||
this.OptionsLightingTabPage = new System.Windows.Forms.TabPage();
|
||||
this.DeferredShadingCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.LightEditorButton = new System.Windows.Forms.Button();
|
||||
this.HDLightsCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.label19 = new System.Windows.Forms.Label();
|
||||
this.HDRRenderingCheckBox = new System.Windows.Forms.CheckBox();
|
||||
@ -88,9 +98,6 @@
|
||||
this.ControlLightDirCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.SkydomeCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.TimeOfDayLabel = new System.Windows.Forms.Label();
|
||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||
this.LightEditorButton = new System.Windows.Forms.Button();
|
||||
this.MaterialEditorButton = new System.Windows.Forms.Button();
|
||||
this.ToolsPanelHideButton = new System.Windows.Forms.Button();
|
||||
this.ToolsDragPanel = new System.Windows.Forms.Panel();
|
||||
this.ToolsPanelShowButton = new System.Windows.Forms.Button();
|
||||
@ -106,10 +113,9 @@
|
||||
this.ToolsDetailsTabPage.SuspendLayout();
|
||||
this.ToolsOptionsTabPage.SuspendLayout();
|
||||
this.OptionsTabControl.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
this.tabPage2.SuspendLayout();
|
||||
this.OptionsRenderTabPage.SuspendLayout();
|
||||
this.OptionsLightingTabPage.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.TimeOfDayTrackBar)).BeginInit();
|
||||
this.tabPage3.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// StatsUpdateTimer
|
||||
@ -195,27 +201,110 @@
|
||||
//
|
||||
// MainToolbarPanel
|
||||
//
|
||||
this.MainToolbarPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.MainToolbarPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.MainToolbarPanel.BackColor = System.Drawing.SystemColors.ControlDark;
|
||||
this.MainToolbarPanel.Controls.Add(this.MainToolbar);
|
||||
this.MainToolbarPanel.Location = new System.Drawing.Point(193, 2);
|
||||
this.MainToolbarPanel.Location = new System.Drawing.Point(39, 2);
|
||||
this.MainToolbarPanel.Name = "MainToolbarPanel";
|
||||
this.MainToolbarPanel.Size = new System.Drawing.Size(34, 24);
|
||||
this.MainToolbarPanel.Size = new System.Drawing.Size(188, 24);
|
||||
this.MainToolbarPanel.TabIndex = 4;
|
||||
//
|
||||
// MainToolbar
|
||||
//
|
||||
this.MainToolbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
|
||||
this.MainToolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.ToolbarMaterialEditorButton,
|
||||
this.ToolbarTextureEditorButton,
|
||||
this.ToolbarLightEditorButton,
|
||||
this.toolStripSeparator1,
|
||||
this.ToolbarMoveButton,
|
||||
this.ToolbarRotateButton,
|
||||
this.ToolbarScaleButton,
|
||||
this.toolStripSeparator2,
|
||||
this.SaveButton});
|
||||
this.MainToolbar.Location = new System.Drawing.Point(0, 0);
|
||||
this.MainToolbar.Name = "MainToolbar";
|
||||
this.MainToolbar.Size = new System.Drawing.Size(34, 25);
|
||||
this.MainToolbar.Size = new System.Drawing.Size(188, 25);
|
||||
this.MainToolbar.TabIndex = 7;
|
||||
this.MainToolbar.Text = "Main Toolbar";
|
||||
//
|
||||
// ToolbarMaterialEditorButton
|
||||
//
|
||||
this.ToolbarMaterialEditorButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.ToolbarMaterialEditorButton.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarMaterialEditorButton.Image")));
|
||||
this.ToolbarMaterialEditorButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.ToolbarMaterialEditorButton.Name = "ToolbarMaterialEditorButton";
|
||||
this.ToolbarMaterialEditorButton.Size = new System.Drawing.Size(23, 22);
|
||||
this.ToolbarMaterialEditorButton.Text = "Material Editor";
|
||||
this.ToolbarMaterialEditorButton.Click += new System.EventHandler(this.ToolbarMaterialEditorButton_Click);
|
||||
//
|
||||
// ToolbarTextureEditorButton
|
||||
//
|
||||
this.ToolbarTextureEditorButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.ToolbarTextureEditorButton.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarTextureEditorButton.Image")));
|
||||
this.ToolbarTextureEditorButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.ToolbarTextureEditorButton.Name = "ToolbarTextureEditorButton";
|
||||
this.ToolbarTextureEditorButton.Size = new System.Drawing.Size(23, 22);
|
||||
this.ToolbarTextureEditorButton.Text = "Texture Editor";
|
||||
this.ToolbarTextureEditorButton.Click += new System.EventHandler(this.ToolbarTextureEditorButton_Click);
|
||||
//
|
||||
// ToolbarLightEditorButton
|
||||
//
|
||||
this.ToolbarLightEditorButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.ToolbarLightEditorButton.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarLightEditorButton.Image")));
|
||||
this.ToolbarLightEditorButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.ToolbarLightEditorButton.Name = "ToolbarLightEditorButton";
|
||||
this.ToolbarLightEditorButton.Size = new System.Drawing.Size(23, 22);
|
||||
this.ToolbarLightEditorButton.Text = "Light Editor";
|
||||
this.ToolbarLightEditorButton.Click += new System.EventHandler(this.ToolbarLightEditorButton_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// ToolbarMoveButton
|
||||
//
|
||||
this.ToolbarMoveButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.ToolbarMoveButton.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarMoveButton.Image")));
|
||||
this.ToolbarMoveButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.ToolbarMoveButton.Name = "ToolbarMoveButton";
|
||||
this.ToolbarMoveButton.Size = new System.Drawing.Size(23, 22);
|
||||
this.ToolbarMoveButton.Text = "Move";
|
||||
this.ToolbarMoveButton.ToolTipText = "Move";
|
||||
this.ToolbarMoveButton.Click += new System.EventHandler(this.ToolbarMoveButton_Click);
|
||||
//
|
||||
// ToolbarRotateButton
|
||||
//
|
||||
this.ToolbarRotateButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.ToolbarRotateButton.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarRotateButton.Image")));
|
||||
this.ToolbarRotateButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.ToolbarRotateButton.Name = "ToolbarRotateButton";
|
||||
this.ToolbarRotateButton.Size = new System.Drawing.Size(23, 22);
|
||||
this.ToolbarRotateButton.Text = "Rotate";
|
||||
this.ToolbarRotateButton.ToolTipText = "Rotate";
|
||||
this.ToolbarRotateButton.Click += new System.EventHandler(this.ToolbarRotateButton_Click);
|
||||
//
|
||||
// ToolbarScaleButton
|
||||
//
|
||||
this.ToolbarScaleButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.ToolbarScaleButton.Image = ((System.Drawing.Image)(resources.GetObject("ToolbarScaleButton.Image")));
|
||||
this.ToolbarScaleButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.ToolbarScaleButton.Name = "ToolbarScaleButton";
|
||||
this.ToolbarScaleButton.Size = new System.Drawing.Size(23, 22);
|
||||
this.ToolbarScaleButton.Text = "Scale";
|
||||
this.ToolbarScaleButton.ToolTipText = "Scale";
|
||||
this.ToolbarScaleButton.Click += new System.EventHandler(this.ToolbarScaleButton_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// SaveButton
|
||||
//
|
||||
this.SaveButton.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||
this.SaveButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.SaveButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.SaveMenuButton,
|
||||
@ -223,7 +312,7 @@
|
||||
this.SaveButton.Image = ((System.Drawing.Image)(resources.GetObject("SaveButton.Image")));
|
||||
this.SaveButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.SaveButton.Name = "SaveButton";
|
||||
this.SaveButton.Size = new System.Drawing.Size(32, 22);
|
||||
this.SaveButton.Size = new System.Drawing.Size(32, 20);
|
||||
this.SaveButton.Text = "Save";
|
||||
this.SaveButton.ButtonClick += new System.EventHandler(this.SaveButton_ButtonClick);
|
||||
//
|
||||
@ -349,8 +438,9 @@
|
||||
//
|
||||
// ToolsMaterialsTabPage
|
||||
//
|
||||
this.ToolsMaterialsTabPage.Controls.Add(this.TextureViewerButton);
|
||||
this.ToolsMaterialsTabPage.Controls.Add(this.TextureEditorButton);
|
||||
this.ToolsMaterialsTabPage.Controls.Add(this.TexturesTreeView);
|
||||
this.ToolsMaterialsTabPage.Controls.Add(this.MaterialEditorButton);
|
||||
this.ToolsMaterialsTabPage.Location = new System.Drawing.Point(4, 22);
|
||||
this.ToolsMaterialsTabPage.Name = "ToolsMaterialsTabPage";
|
||||
this.ToolsMaterialsTabPage.Padding = new System.Windows.Forms.Padding(3);
|
||||
@ -359,27 +449,37 @@
|
||||
this.ToolsMaterialsTabPage.Text = "Materials";
|
||||
this.ToolsMaterialsTabPage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// TextureViewerButton
|
||||
// TextureEditorButton
|
||||
//
|
||||
this.TextureViewerButton.Location = new System.Drawing.Point(111, 6);
|
||||
this.TextureViewerButton.Name = "TextureViewerButton";
|
||||
this.TextureViewerButton.Size = new System.Drawing.Size(91, 23);
|
||||
this.TextureViewerButton.TabIndex = 2;
|
||||
this.TextureViewerButton.Text = "Texture viewer";
|
||||
this.TextureViewerButton.UseVisualStyleBackColor = true;
|
||||
this.TextureViewerButton.Click += new System.EventHandler(this.TextureViewerButton_Click);
|
||||
this.TextureEditorButton.Location = new System.Drawing.Point(111, 3);
|
||||
this.TextureEditorButton.Name = "TextureEditorButton";
|
||||
this.TextureEditorButton.Size = new System.Drawing.Size(100, 23);
|
||||
this.TextureEditorButton.TabIndex = 2;
|
||||
this.TextureEditorButton.Text = "Texture editor...";
|
||||
this.TextureEditorButton.UseVisualStyleBackColor = true;
|
||||
this.TextureEditorButton.Click += new System.EventHandler(this.TextureEditorButton_Click);
|
||||
//
|
||||
// TexturesTreeView
|
||||
//
|
||||
this.TexturesTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TexturesTreeView.Location = new System.Drawing.Point(0, 34);
|
||||
this.TexturesTreeView.Location = new System.Drawing.Point(0, 32);
|
||||
this.TexturesTreeView.Name = "TexturesTreeView";
|
||||
this.TexturesTreeView.ShowRootLines = false;
|
||||
this.TexturesTreeView.Size = new System.Drawing.Size(205, 466);
|
||||
this.TexturesTreeView.Size = new System.Drawing.Size(217, 468);
|
||||
this.TexturesTreeView.TabIndex = 1;
|
||||
//
|
||||
// MaterialEditorButton
|
||||
//
|
||||
this.MaterialEditorButton.Location = new System.Drawing.Point(6, 3);
|
||||
this.MaterialEditorButton.Name = "MaterialEditorButton";
|
||||
this.MaterialEditorButton.Size = new System.Drawing.Size(100, 23);
|
||||
this.MaterialEditorButton.TabIndex = 3;
|
||||
this.MaterialEditorButton.Text = "Material editor...";
|
||||
this.MaterialEditorButton.UseVisualStyleBackColor = true;
|
||||
this.MaterialEditorButton.Click += new System.EventHandler(this.MaterialEditorButton_Click);
|
||||
//
|
||||
// ToolsDetailsTabPage
|
||||
//
|
||||
this.ToolsDetailsTabPage.Controls.Add(this.DetailsPropertyGrid);
|
||||
@ -400,7 +500,7 @@
|
||||
this.DetailsPropertyGrid.Name = "DetailsPropertyGrid";
|
||||
this.DetailsPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.NoSort;
|
||||
this.DetailsPropertyGrid.ReadOnly = true;
|
||||
this.DetailsPropertyGrid.Size = new System.Drawing.Size(205, 497);
|
||||
this.DetailsPropertyGrid.Size = new System.Drawing.Size(217, 497);
|
||||
this.DetailsPropertyGrid.TabIndex = 1;
|
||||
this.DetailsPropertyGrid.ToolbarVisible = false;
|
||||
//
|
||||
@ -416,9 +516,8 @@
|
||||
//
|
||||
// OptionsTabControl
|
||||
//
|
||||
this.OptionsTabControl.Controls.Add(this.tabPage1);
|
||||
this.OptionsTabControl.Controls.Add(this.tabPage2);
|
||||
this.OptionsTabControl.Controls.Add(this.tabPage3);
|
||||
this.OptionsTabControl.Controls.Add(this.OptionsRenderTabPage);
|
||||
this.OptionsTabControl.Controls.Add(this.OptionsLightingTabPage);
|
||||
this.OptionsTabControl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.OptionsTabControl.Location = new System.Drawing.Point(0, 0);
|
||||
this.OptionsTabControl.Name = "OptionsTabControl";
|
||||
@ -426,34 +525,34 @@
|
||||
this.OptionsTabControl.Size = new System.Drawing.Size(217, 500);
|
||||
this.OptionsTabControl.TabIndex = 26;
|
||||
//
|
||||
// tabPage1
|
||||
// OptionsRenderTabPage
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.RenderModeComboBox);
|
||||
this.tabPage1.Controls.Add(this.FragGlassCheckBox);
|
||||
this.tabPage1.Controls.Add(this.label14);
|
||||
this.tabPage1.Controls.Add(this.HDTexturesCheckBox);
|
||||
this.tabPage1.Controls.Add(this.AnisotropicFilteringCheckBox);
|
||||
this.tabPage1.Controls.Add(this.SkeletonsCheckBox);
|
||||
this.tabPage1.Controls.Add(this.label10);
|
||||
this.tabPage1.Controls.Add(this.TextureCoordsComboBox);
|
||||
this.tabPage1.Controls.Add(this.TextureSamplerComboBox);
|
||||
this.tabPage1.Controls.Add(this.label11);
|
||||
this.tabPage1.Controls.Add(this.WireframeCheckBox);
|
||||
this.tabPage1.Controls.Add(this.ShowCollisionMeshesCheckBox);
|
||||
this.tabPage1.Controls.Add(this.GridCheckBox);
|
||||
this.tabPage1.Controls.Add(this.GridCountComboBox);
|
||||
this.tabPage1.Controls.Add(this.label2);
|
||||
this.tabPage1.Controls.Add(this.ErrorConsoleCheckBox);
|
||||
this.tabPage1.Controls.Add(this.GridSizeComboBox);
|
||||
this.tabPage1.Controls.Add(this.StatusBarCheckBox);
|
||||
this.tabPage1.Controls.Add(this.label1);
|
||||
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage1.Size = new System.Drawing.Size(209, 474);
|
||||
this.tabPage1.TabIndex = 0;
|
||||
this.tabPage1.Text = "Render";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
this.OptionsRenderTabPage.Controls.Add(this.RenderModeComboBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.FragGlassCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.label14);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.HDTexturesCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.AnisotropicFilteringCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.SkeletonsCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.label10);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.TextureCoordsComboBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.TextureSamplerComboBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.label11);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.WireframeCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.ShowCollisionMeshesCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.GridCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.GridCountComboBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.label2);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.ErrorConsoleCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.GridSizeComboBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.StatusBarCheckBox);
|
||||
this.OptionsRenderTabPage.Controls.Add(this.label1);
|
||||
this.OptionsRenderTabPage.Location = new System.Drawing.Point(4, 22);
|
||||
this.OptionsRenderTabPage.Name = "OptionsRenderTabPage";
|
||||
this.OptionsRenderTabPage.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.OptionsRenderTabPage.Size = new System.Drawing.Size(209, 474);
|
||||
this.OptionsRenderTabPage.TabIndex = 0;
|
||||
this.OptionsRenderTabPage.Text = "Render";
|
||||
this.OptionsRenderTabPage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// RenderModeComboBox
|
||||
//
|
||||
@ -681,24 +780,25 @@
|
||||
this.label1.TabIndex = 18;
|
||||
this.label1.Text = "Grid unit size:";
|
||||
//
|
||||
// tabPage2
|
||||
// OptionsLightingTabPage
|
||||
//
|
||||
this.tabPage2.Controls.Add(this.DeferredShadingCheckBox);
|
||||
this.tabPage2.Controls.Add(this.HDLightsCheckBox);
|
||||
this.tabPage2.Controls.Add(this.label19);
|
||||
this.tabPage2.Controls.Add(this.HDRRenderingCheckBox);
|
||||
this.tabPage2.Controls.Add(this.TimeOfDayTrackBar);
|
||||
this.tabPage2.Controls.Add(this.ShadowsCheckBox);
|
||||
this.tabPage2.Controls.Add(this.ControlLightDirCheckBox);
|
||||
this.tabPage2.Controls.Add(this.SkydomeCheckBox);
|
||||
this.tabPage2.Controls.Add(this.TimeOfDayLabel);
|
||||
this.tabPage2.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage2.Name = "tabPage2";
|
||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage2.Size = new System.Drawing.Size(209, 474);
|
||||
this.tabPage2.TabIndex = 1;
|
||||
this.tabPage2.Text = "Lighting";
|
||||
this.tabPage2.UseVisualStyleBackColor = true;
|
||||
this.OptionsLightingTabPage.Controls.Add(this.DeferredShadingCheckBox);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.LightEditorButton);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.HDLightsCheckBox);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.label19);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.HDRRenderingCheckBox);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.TimeOfDayTrackBar);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.ShadowsCheckBox);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.ControlLightDirCheckBox);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.SkydomeCheckBox);
|
||||
this.OptionsLightingTabPage.Controls.Add(this.TimeOfDayLabel);
|
||||
this.OptionsLightingTabPage.Location = new System.Drawing.Point(4, 22);
|
||||
this.OptionsLightingTabPage.Name = "OptionsLightingTabPage";
|
||||
this.OptionsLightingTabPage.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.OptionsLightingTabPage.Size = new System.Drawing.Size(209, 474);
|
||||
this.OptionsLightingTabPage.TabIndex = 1;
|
||||
this.OptionsLightingTabPage.Text = "Lighting";
|
||||
this.OptionsLightingTabPage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// DeferredShadingCheckBox
|
||||
//
|
||||
@ -711,6 +811,16 @@
|
||||
this.DeferredShadingCheckBox.UseVisualStyleBackColor = true;
|
||||
this.DeferredShadingCheckBox.CheckedChanged += new System.EventHandler(this.DeferredShadingCheckBox_CheckedChanged);
|
||||
//
|
||||
// LightEditorButton
|
||||
//
|
||||
this.LightEditorButton.Location = new System.Drawing.Point(7, 214);
|
||||
this.LightEditorButton.Name = "LightEditorButton";
|
||||
this.LightEditorButton.Size = new System.Drawing.Size(90, 23);
|
||||
this.LightEditorButton.TabIndex = 37;
|
||||
this.LightEditorButton.Text = "Light editor...";
|
||||
this.LightEditorButton.UseVisualStyleBackColor = true;
|
||||
this.LightEditorButton.Click += new System.EventHandler(this.LightEditorButton_Click);
|
||||
//
|
||||
// HDLightsCheckBox
|
||||
//
|
||||
this.HDLightsCheckBox.AutoSize = true;
|
||||
@ -788,6 +898,8 @@
|
||||
// SkydomeCheckBox
|
||||
//
|
||||
this.SkydomeCheckBox.AutoSize = true;
|
||||
this.SkydomeCheckBox.Checked = true;
|
||||
this.SkydomeCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.SkydomeCheckBox.Location = new System.Drawing.Point(7, 75);
|
||||
this.SkydomeCheckBox.Name = "SkydomeCheckBox";
|
||||
this.SkydomeCheckBox.Size = new System.Drawing.Size(70, 17);
|
||||
@ -805,38 +917,6 @@
|
||||
this.TimeOfDayLabel.TabIndex = 5;
|
||||
this.TimeOfDayLabel.Text = "12:00";
|
||||
//
|
||||
// tabPage3
|
||||
//
|
||||
this.tabPage3.Controls.Add(this.LightEditorButton);
|
||||
this.tabPage3.Controls.Add(this.MaterialEditorButton);
|
||||
this.tabPage3.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage3.Name = "tabPage3";
|
||||
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage3.Size = new System.Drawing.Size(209, 474);
|
||||
this.tabPage3.TabIndex = 2;
|
||||
this.tabPage3.Text = "Editors";
|
||||
this.tabPage3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// LightEditorButton
|
||||
//
|
||||
this.LightEditorButton.Location = new System.Drawing.Point(6, 35);
|
||||
this.LightEditorButton.Name = "LightEditorButton";
|
||||
this.LightEditorButton.Size = new System.Drawing.Size(197, 23);
|
||||
this.LightEditorButton.TabIndex = 37;
|
||||
this.LightEditorButton.Text = "Light editor";
|
||||
this.LightEditorButton.UseVisualStyleBackColor = true;
|
||||
this.LightEditorButton.Click += new System.EventHandler(this.LightEditorButton_Click);
|
||||
//
|
||||
// MaterialEditorButton
|
||||
//
|
||||
this.MaterialEditorButton.Location = new System.Drawing.Point(6, 6);
|
||||
this.MaterialEditorButton.Name = "MaterialEditorButton";
|
||||
this.MaterialEditorButton.Size = new System.Drawing.Size(197, 23);
|
||||
this.MaterialEditorButton.TabIndex = 3;
|
||||
this.MaterialEditorButton.Text = "Material editor";
|
||||
this.MaterialEditorButton.UseVisualStyleBackColor = true;
|
||||
this.MaterialEditorButton.Click += new System.EventHandler(this.MaterialEditorButton_Click);
|
||||
//
|
||||
// ToolsPanelHideButton
|
||||
//
|
||||
this.ToolsPanelHideButton.Location = new System.Drawing.Point(3, 3);
|
||||
@ -911,12 +991,11 @@
|
||||
this.ToolsDetailsTabPage.ResumeLayout(false);
|
||||
this.ToolsOptionsTabPage.ResumeLayout(false);
|
||||
this.OptionsTabControl.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.tabPage1.PerformLayout();
|
||||
this.tabPage2.ResumeLayout(false);
|
||||
this.tabPage2.PerformLayout();
|
||||
this.OptionsRenderTabPage.ResumeLayout(false);
|
||||
this.OptionsRenderTabPage.PerformLayout();
|
||||
this.OptionsLightingTabPage.ResumeLayout(false);
|
||||
this.OptionsLightingTabPage.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.TimeOfDayTrackBar)).EndInit();
|
||||
this.tabPage3.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@ -967,7 +1046,7 @@
|
||||
private System.Windows.Forms.Label label19;
|
||||
private System.Windows.Forms.TrackBar TimeOfDayTrackBar;
|
||||
private System.Windows.Forms.CheckBox SkeletonsCheckBox;
|
||||
private System.Windows.Forms.Button TextureViewerButton;
|
||||
private System.Windows.Forms.Button TextureEditorButton;
|
||||
private System.Windows.Forms.CheckBox HDTexturesCheckBox;
|
||||
private System.Windows.Forms.Button MaterialEditorButton;
|
||||
private System.Windows.Forms.Panel MainToolbarPanel;
|
||||
@ -983,11 +1062,18 @@
|
||||
private System.Windows.Forms.ComboBox ClipDictComboBox;
|
||||
private System.Windows.Forms.CheckBox FragGlassCheckBox;
|
||||
private System.Windows.Forms.TabControl OptionsTabControl;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private System.Windows.Forms.TabPage tabPage2;
|
||||
private System.Windows.Forms.TabPage OptionsRenderTabPage;
|
||||
private System.Windows.Forms.TabPage OptionsLightingTabPage;
|
||||
private System.Windows.Forms.CheckBox HDLightsCheckBox;
|
||||
private System.Windows.Forms.CheckBox DeferredShadingCheckBox;
|
||||
private System.Windows.Forms.TabPage tabPage3;
|
||||
private System.Windows.Forms.Button LightEditorButton;
|
||||
private System.Windows.Forms.ToolStripButton ToolbarMaterialEditorButton;
|
||||
private System.Windows.Forms.ToolStripButton ToolbarTextureEditorButton;
|
||||
private System.Windows.Forms.ToolStripButton ToolbarLightEditorButton;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripButton ToolbarMoveButton;
|
||||
private System.Windows.Forms.ToolStripButton ToolbarRotateButton;
|
||||
private System.Windows.Forms.ToolStripButton ToolbarScaleButton;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
}
|
||||
}
|
@ -176,9 +176,11 @@ namespace CodeWalker.Forms
|
||||
Widget.Position = new Vector3(0f, 0f, 0f);
|
||||
Widget.Rotation = Quaternion.Identity;
|
||||
Widget.Scale = Vector3.One;
|
||||
Widget.SnapAngleDegrees = 0;
|
||||
Widget.Visible = false;
|
||||
Widget.OnPositionChange += Widget_OnPositionChange;
|
||||
Widget.OnRotationChange += Widget_OnRotationChange;
|
||||
Widget.OnScaleChange += Widget_OnScaleChange;
|
||||
|
||||
ShaderParamNames[] texsamplers = RenderableGeometry.GetTextureSamplerList();
|
||||
foreach (var texsampler in texsamplers)
|
||||
@ -568,50 +570,24 @@ namespace CodeWalker.Forms
|
||||
{
|
||||
Widget.Update(camera);
|
||||
}
|
||||
public void UpdateWidget(bool rotate = false)
|
||||
public void SetWidgetTransform(Vector3 p, Quaternion q, Vector3 s)
|
||||
{
|
||||
if(selectedLight != null)
|
||||
{
|
||||
if (!rotate)
|
||||
{
|
||||
SetWidgetPosition(selectedLight.Position);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetWidgetRotation(selectedLight.GetRotation());
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SetWidgetPosition(Vector3 pos)
|
||||
{
|
||||
SetWidgetMode("Position");
|
||||
Widget.Position = pos;
|
||||
}
|
||||
public void SetWidgetRotation(Quaternion q)
|
||||
{
|
||||
SetWidgetMode("Rotation");
|
||||
Widget.Position = p;
|
||||
Widget.Rotation = q;
|
||||
Widget.Scale = s;
|
||||
}
|
||||
public void SetWidgetMode(string mode)
|
||||
public void SetWidgetMode(WidgetMode mode)
|
||||
{
|
||||
lock (Renderer.RenderSyncRoot)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case "Default":
|
||||
Widget.Mode = WidgetMode.Default;
|
||||
break;
|
||||
case "Position":
|
||||
Widget.Mode = WidgetMode.Position;
|
||||
break;
|
||||
case "Rotation":
|
||||
Widget.Mode = WidgetMode.Rotation;
|
||||
break;
|
||||
case "Scale":
|
||||
Widget.Mode = WidgetMode.Scale;
|
||||
break;
|
||||
}
|
||||
Widget.Mode = mode;
|
||||
}
|
||||
|
||||
ToolbarMoveButton.Checked = (mode == WidgetMode.Position);
|
||||
ToolbarRotateButton.Checked = (mode == WidgetMode.Rotation);
|
||||
ToolbarScaleButton.Checked = (mode == WidgetMode.Scale);
|
||||
|
||||
lightForm?.SetWidgetModeUI(mode);
|
||||
}
|
||||
private void Widget_OnPositionChange(Vector3 newpos, Vector3 oldpos)
|
||||
{
|
||||
@ -619,15 +595,23 @@ namespace CodeWalker.Forms
|
||||
if (newpos == oldpos) return;
|
||||
if (selectedLight == null || lightForm == null || !editingLights) return;
|
||||
selectedLight.Position = newpos;
|
||||
selectedLight.HasChanged = true;
|
||||
selectedLight.UpdateRenderable = true;
|
||||
}
|
||||
private void Widget_OnRotationChange(Quaternion newrot, Quaternion oldrot)
|
||||
{
|
||||
//called during UpdateWidgets()
|
||||
if (newrot == oldrot) return;
|
||||
if (selectedLight == null || lightForm == null || !editingLights) return;
|
||||
selectedLight.SetRotation(newrot);
|
||||
selectedLight.HasChanged = true;
|
||||
selectedLight.Orientation = newrot;
|
||||
selectedLight.UpdateRenderable = true;
|
||||
}
|
||||
private void Widget_OnScaleChange(Vector3 newscale, Vector3 oldscale)
|
||||
{
|
||||
//called during UpdateWidgets()
|
||||
if (newscale == oldscale) return;
|
||||
if (selectedLight == null || lightForm == null || !editingLights) return;
|
||||
selectedLight.Falloff = newscale.Z;
|
||||
selectedLight.UpdateRenderable = true;
|
||||
}
|
||||
|
||||
|
||||
@ -2053,7 +2037,7 @@ namespace CodeWalker.Forms
|
||||
StatusStrip.Visible = StatusBarCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void TextureViewerButton_Click(object sender, EventArgs e)
|
||||
private void TextureEditorButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
TextureDictionary td = null;
|
||||
|
||||
@ -2189,6 +2173,7 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
lightForm.Focus();
|
||||
}
|
||||
DeferredShadingCheckBox.Checked = true; //make sure we can see the lights we're editing (maybe this is bad for potatoes but meh)
|
||||
}
|
||||
|
||||
private void SaveButton_ButtonClick(object sender, EventArgs e)
|
||||
@ -2230,5 +2215,35 @@ namespace CodeWalker.Forms
|
||||
{
|
||||
Renderer.renderlights = HDLightsCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void ToolbarMaterialEditorButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
MaterialEditorButton_Click(sender, e);
|
||||
}
|
||||
|
||||
private void ToolbarTextureEditorButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
TextureEditorButton_Click(sender, e);
|
||||
}
|
||||
|
||||
private void ToolbarLightEditorButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
LightEditorButton_Click(sender, e);
|
||||
}
|
||||
|
||||
private void ToolbarMoveButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
SetWidgetMode(ToolbarMoveButton.Checked ? WidgetMode.Default : WidgetMode.Position);
|
||||
}
|
||||
|
||||
private void ToolbarRotateButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
SetWidgetMode(ToolbarRotateButton.Checked ? WidgetMode.Default : WidgetMode.Rotation);
|
||||
}
|
||||
|
||||
private void ToolbarScaleButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
SetWidgetMode(ToolbarScaleButton.Checked ? WidgetMode.Default : WidgetMode.Scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -126,11 +126,75 @@
|
||||
<metadata name="MainToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>276, 17</value>
|
||||
</metadata>
|
||||
<metadata name="MainToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>276, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="SaveButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="ToolbarMaterialEditorButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKmSURBVDhPjVPbTlpREOUL+jn8gIn3xHiPEW8YNHIIKiJq
|
||||
rKAiQUtVij2aoqA0Ira1SSWRi1a8Ja0WqtZL40MrDaXxwfqoDz64emZA09Y+dJLJSfaZWbPWmr1lf8fl
|
||||
5aX86urKKX3jUl6nM54+k6fL7sfNzc0DqcB78fMC0WgUS0sBzPvmMT09A8+MB8FgCGdnZ6Aaqk23pYIO
|
||||
pAk7Jycn3Ph2ZRWrqxEEAyEsLLyGy+XGyMgo+vv7sbW5Bar9A4RQj48/w7/ox+bGFvZ29/Fp/wDb2zsI
|
||||
h8LwSUzGxycwMGCBXq9HJBJhJrfN8vPzc6YbCoYRi8YQP/2GZPIHDg+PsL6+wSycz5wYtA7CYDBAUAvS
|
||||
/ySByGVkzlpkDd5ZLwNEP8Tw9cspvieSODyQANbW7wCsVisDNKga4Ha7SYqTGMRJ44xk1uIbP0/8GNvF
|
||||
3t4+3r/bZtC5OR9EcZwltLXpUV9fD41GQwziBHA9NDTEGokF+bC8vMJGBiRDX71cgGvKheHhEfT0GKHV
|
||||
alFTU4OSkhICuGYAk6kXtkc2TEggHs9zNm3e9wKzEuDk5BTs9icwm81obzegsbERFRUVKCgouAOIWywW
|
||||
GI1GNsk+aof4VGTKY44x2GyPpfWZ0dHRCUEQUF1djaKiItTW1qYkkBGksaWlBV2dXTAZTTyNsq+3D93d
|
||||
D3l1arWam0pLS5GXlweHw3FnopxWQtSamprQrG1Ga6sOOp2OQQVBA5VKxZOpOT8/Hzk5OUgkEqk1pu+C
|
||||
NxwOo7Kykg2qq1NCqVTyxCpFFcrLy1FYWIjc3FxkZGTA7/dTc+oiUdxe5UAggLKyMhQXF3OSVjKLKGdm
|
||||
ZiI7O5ubqfaf74FQiZooijydGrKysqBQKFhzmvb9x/R7kC4yR/r+x3OWyX4BFI2EuwQc/DwAAAAASUVO
|
||||
RK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ToolbarTextureEditorButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC3SURBVDhPrZPREcIgEEQpxVqoxDpozhJSStQIfOK98+Jg
|
||||
JMFJ3Blmsne7O3AQt0TO+RxjvKSUSr2o0TPZN6R5EuEQH7GEEIr3vlzHmy6+qdFDg9ZsL5h5nO7T27AM
|
||||
mDkatB8hpNLYMtbcQgY1cy62tmVocTx4HcNpnbnHdSbiZfs/GVocrwb0hGv8fwE94RrXgMNDPHyNQLay
|
||||
/yEBnqUU9j9lYCH7fqYanIvhiFCnPC9q9ExmcO4J1fij9+UBu9sAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ToolbarLightEditorButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEcSURBVDhPnZI7boQwEIY5wh4hR8gRcpQcJQV9aqocJUdI
|
||||
w0NAESGEEAhwwav0+iO2Fzksq+SXRtY8/n/GY3suhBCXeZ7flmURwzDIruskp/IlcV12DMiq8KttW5kk
|
||||
iQzD0FoURbKua0Q+dPlv0AHynuiaFjmehLHdzq4xCXWacsM0Tc/c1RT2fS/VlazhQybHXtZ1fdHUHxDY
|
||||
C0Aqy1JmWSaLongsANi0KYrjeBNJ03Q78YmTH8eR2EXTblAC7yxpP4URMLHTl0BVJT+rqrLFCDRNs/nE
|
||||
eebD7gZa5DvPc9sV43XY/inZQC3o1f0Pp+/vgi4s1LXDzd8DBN/3rf1LwLW/CoggCLbunFrgSacfg6+t
|
||||
fp/gJ6qd3OnueVecFABPrjJDigAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="ToolbarMoveButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACrSURBVDhPpVJbDoAgDONInoHD8c9J/SH8Kl02rZORGJs0
|
||||
DNaWh6YZWmtb730vpRwgaqxpew0255yFn0K82YeoLMYQXQY2Y0RPZU/YsSEAdbcrgNeU93X8nVUoYRww
|
||||
00jIpLGkD0m24AnxrGbC+z8Ax7CQWquIVzQtxjHfo0cU2k429+bXl2AhRg7g4MH4rzSj7cY1eiqLgXQ2
|
||||
cwh6Kovh34TN4bE9OGRtTukExpYH+BWfUFQAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ToolbarRotateButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFRSURBVDhPfZMxboNAEEU5Qo6QI+QIET1SWncp6OmpUrm1
|
||||
6JFSuuQGuKaioQ89xRYYKDfz1jt4TYhX+trRnz9/2Z0h+m9N0/Q1z7MFxJ5+vpZleRfx9ziOP03T2MPh
|
||||
4EAMRw6Nl9+XkK+SvHDaMAy2KAobx/ED4Mj5L7oYY17WYiENApJd19k0Tf8YwJFDU5Ylu3iIiQQVBCKS
|
||||
SZLYuq6dSIuJ4cihUY4rYbAKwzjPc3d3QLynIV4NjsfjQxJwIgg5NGg1dgacIHu7NdgDGoHxNTcDf7oz
|
||||
oG17hUC/Mqi5X+F8Pjti20Z9VKCdQkvuwQBkWeaEcDwerdOdPAZoVO8MGIrwRE0I2r7vd2cCUENtdL1e
|
||||
30Rs9GUBBhRvO6Dw9zfUumn0Jq32HIOtKdDZ4L9Yi8MlY/0phRUGahpOZGB+8iXPF7OOiXbB/0yV3P3j
|
||||
poiiXxmvX1sw0rqWAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="ToolbarScaleButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB4SURBVDhP3ZC7DcAgDEQZKTMwHOvSIFriS7BlEB+HMic9
|
||||
QJbvFThLUkpXzjkSpaeuzMPlEELx3jdsBauyCHBY6UWYPQI93KEljQD3jL6EGzN6x0bASyNYwkKU8Udm
|
||||
gd6TMnIikDJyIqjVNz8T7FgKrAwFX6lVinM3aJ05lWDPRRcAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="SaveMenuButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABWSURBVDhPY6AK+Pbt238S8PsvX74YQLVCAEjCyckJjj+8
|
||||
@ -138,7 +202,7 @@
|
||||
lQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="SaveMenuButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="SaveButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABWSURBVDhPY6AK+Pbt238S8PsvX74YQLVCAEjCyckJjj+8
|
||||
|
960
CodeWalker/Forms/ModelLightForm.Designer.cs
generated
960
CodeWalker/Forms/ModelLightForm.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,5 @@
|
||||
using CodeWalker.GameFiles;
|
||||
using CodeWalker.World;
|
||||
using SharpDX;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -92,7 +93,7 @@ namespace CodeWalker.Forms
|
||||
{
|
||||
var tnc = LightsTreeView.Nodes;
|
||||
var light = lights[mi];
|
||||
string mprefix = "Light" + (mi + 1).ToString();
|
||||
string mprefix = "Light" + (mi + 1).ToString() + " : " + light.Type.ToString();
|
||||
var mnode = parent == null ? tnc.Add(mprefix) : parent.Nodes.Add(mprefix);
|
||||
mnode.Tag = light;
|
||||
mnode.Expand();
|
||||
@ -108,37 +109,40 @@ namespace CodeWalker.Forms
|
||||
|
||||
if(light == null)
|
||||
{
|
||||
DeleteLightButton.Enabled = false;
|
||||
EditDeleteLightMenu.Enabled = false;
|
||||
populatingui = true;
|
||||
PositionTextBox.Text = "";
|
||||
DirectionTextBox.Text = "";
|
||||
TangentTextBox.Text = "";
|
||||
TypeComboBox.SelectedItem = "Point";
|
||||
ColourRUpDown.Value = 0;
|
||||
ColourGUpDown.Value = 0;
|
||||
ColourBUpDown.Value = 0;
|
||||
IntensityUpDown.Value = 0;
|
||||
FlashinessTextBox.Text = "";
|
||||
BoneIDTextBox.Text = "";
|
||||
GroupIDTextBox.Text = "";
|
||||
IntensityTextBox.Text = "";
|
||||
FlashinessUpDown.Value = 0;
|
||||
BoneIDUpDown.Value = 0;
|
||||
GroupIDUpDown.Value = 0;
|
||||
FalloffTextBox.Text = "";
|
||||
FalloffExponentTextBox.Text = "";
|
||||
InnerAngleUpDown.Value = 0;
|
||||
OuterAngleUpDown.Value = 0;
|
||||
InnerAngleTextBox.Text = "";
|
||||
OuterAngleTextBox.Text = "";
|
||||
CoronaSizeTextBox.Text = "";
|
||||
CoronaIntensityUpDown.Value = 0;
|
||||
CoronaIntensityTextBox.Text = "";
|
||||
ExtentTextBox.Text = "";
|
||||
ShadowBlurTextBox.Text = "";
|
||||
LightFadeDistanceTextBox.Text = "";
|
||||
ShadowBlurUpDown.Value = 0;
|
||||
LightFadeDistanceUpDown.Value = 0;
|
||||
CoronaZBiasTextBox.Text = "";
|
||||
HashTextBox.Text = "";
|
||||
TextureHashTextBox.Text = "";
|
||||
VolumeIntensityTextBox.Text = "";
|
||||
VolumeSizeScaleTextBox.Text = "";
|
||||
VolumeColorRUpDown.Value = 0;
|
||||
VolumeColorGUpDown.Value = 0;
|
||||
VolumeColorBUpDown.Value = 0;
|
||||
VolumeOuterExponentTextBox.Text = "";
|
||||
ShadowFadeDistanceTextBox.Text = "";
|
||||
SpecularFadeDistanceTextBox.Text = "";
|
||||
VolumetricFadeDistanceTextBox.Text = "";
|
||||
ShadowFadeDistanceUpDown.Value = 0;
|
||||
SpecularFadeDistanceUpDown.Value = 0;
|
||||
VolumetricFadeDistanceUpDown.Value = 0;
|
||||
ShadowNearClipTextBox.Text = "";
|
||||
CullingPlaneNormalTextBox.Text = "";
|
||||
CullingPlaneOffsetTextBox.Text = "";
|
||||
@ -147,29 +151,32 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteLightButton.Enabled = true;
|
||||
EditDeleteLightMenu.Enabled = true;
|
||||
populatingui = true;
|
||||
PositionTextBox.Text = FloatUtil.GetVector3String(light.Position);
|
||||
DirectionTextBox.Text = FloatUtil.GetVector3String(light.Direction);
|
||||
TangentTextBox.Text = FloatUtil.GetVector3String(light.Tangent);
|
||||
TypeComboBox.SelectedItem = light.Type.ToString();
|
||||
ColourRUpDown.Value = light.ColorR;
|
||||
ColourGUpDown.Value = light.ColorG;
|
||||
ColourBUpDown.Value = light.ColorB;
|
||||
ColourLabel.BackColor = System.Drawing.Color.FromArgb(light.ColorR, light.ColorG, light.ColorB);
|
||||
IntensityUpDown.Value = (decimal)light.Intensity > IntensityUpDown.Maximum ? IntensityUpDown.Maximum : (decimal)light.Intensity;
|
||||
FlashinessTextBox.Text = FloatUtil.ToString(light.Flashiness);
|
||||
BoneIDTextBox.Text = FloatUtil.ToString(light.BoneId);
|
||||
GroupIDTextBox.Text = FloatUtil.ToString(light.GroupId);
|
||||
IntensityTextBox.Text = FloatUtil.ToString(light.Intensity);
|
||||
FlashinessUpDown.Value = light.Flashiness;
|
||||
BoneIDUpDown.Value = light.BoneId;
|
||||
GroupIDUpDown.Value = light.GroupId;
|
||||
FalloffTextBox.Text = FloatUtil.ToString(light.Falloff);
|
||||
FalloffExponentTextBox.Text = FloatUtil.ToString(light.FalloffExponent);
|
||||
InnerAngleUpDown.Value = (decimal)light.ConeInnerAngle > InnerAngleUpDown.Maximum ? InnerAngleUpDown.Maximum : (decimal)light.ConeInnerAngle;
|
||||
OuterAngleUpDown.Value = (decimal)light.ConeOuterAngle > OuterAngleUpDown.Maximum ? OuterAngleUpDown.Maximum : (decimal)light.ConeOuterAngle;
|
||||
InnerAngleTextBox.Text = FloatUtil.ToString(light.ConeInnerAngle);
|
||||
OuterAngleTextBox.Text = FloatUtil.ToString(light.ConeOuterAngle);
|
||||
CoronaSizeTextBox.Text = FloatUtil.ToString(light.CoronaSize);
|
||||
CoronaIntensityUpDown.Value = (decimal)light.CoronaIntensity > CoronaIntensityUpDown.Maximum ? CoronaIntensityUpDown.Maximum : (decimal)light.CoronaIntensity;
|
||||
CoronaIntensityTextBox.Text = FloatUtil.ToString(light.CoronaIntensity);
|
||||
ExtentTextBox.Text = FloatUtil.GetVector3String(light.Extent);
|
||||
ShadowBlurTextBox.Text = FloatUtil.ToString(light.ShadowBlur);
|
||||
LightFadeDistanceTextBox.Text = FloatUtil.ToString(light.LightFadeDistance);
|
||||
ShadowBlurUpDown.Value = light.ShadowBlur;
|
||||
LightFadeDistanceUpDown.Value = light.LightFadeDistance;
|
||||
CoronaZBiasTextBox.Text = FloatUtil.ToString(light.CoronaZBias);
|
||||
HashTextBox.Text = light.ProjectedTextureHash.Hash.ToString();
|
||||
TextureHashTextBox.Text = light.ProjectedTextureHash.ToCleanString();
|
||||
VolumeIntensityTextBox.Text = FloatUtil.ToString(light.VolumeIntensity);
|
||||
VolumeSizeScaleTextBox.Text = FloatUtil.ToString(light.VolumeSizeScale);
|
||||
VolumeColorRUpDown.Value = light.VolumeOuterColorR;
|
||||
@ -177,9 +184,9 @@ namespace CodeWalker.Forms
|
||||
VolumeColorBUpDown.Value = light.VolumeOuterColorB;
|
||||
VolumeColorLabel.BackColor = System.Drawing.Color.FromArgb(light.VolumeOuterColorR, light.VolumeOuterColorG, light.VolumeOuterColorB);
|
||||
VolumeOuterExponentTextBox.Text = FloatUtil.ToString(light.VolumeOuterExponent);
|
||||
ShadowFadeDistanceTextBox.Text = FloatUtil.ToString(light.ShadowFadeDistance);
|
||||
SpecularFadeDistanceTextBox.Text = FloatUtil.ToString(light.SpecularFadeDistance);
|
||||
VolumetricFadeDistanceTextBox.Text = FloatUtil.ToString(light.VolumetricFadeDistance);
|
||||
ShadowFadeDistanceUpDown.Value = light.ShadowFadeDistance;
|
||||
SpecularFadeDistanceUpDown.Value = light.SpecularFadeDistance;
|
||||
VolumetricFadeDistanceUpDown.Value = light.VolumetricFadeDistance;
|
||||
ShadowNearClipTextBox.Text = FloatUtil.ToString(light.ShadowNearClip);
|
||||
CullingPlaneNormalTextBox.Text = FloatUtil.GetVector3String(light.CullingPlaneNormal);
|
||||
CullingPlaneOffsetTextBox.Text = FloatUtil.ToString(light.CullingPlaneOffset);
|
||||
@ -191,7 +198,8 @@ namespace CodeWalker.Forms
|
||||
|
||||
public void UpdateLightParams()
|
||||
{
|
||||
selectedLight.HasChanged = true;
|
||||
if (selectedLight == null) return;
|
||||
selectedLight.UpdateRenderable = true;
|
||||
}
|
||||
|
||||
|
||||
@ -199,8 +207,8 @@ namespace CodeWalker.Forms
|
||||
{
|
||||
LightAttributes light = new LightAttributes();
|
||||
light.Direction = Vector3.BackwardLH;
|
||||
light.Tangent = Vector3.Normalize(Vector3.BackwardLH.GetPerpVec());
|
||||
light.Intensity = 20;
|
||||
light.Tangent = Vector3.Right;
|
||||
light.Intensity = 5;
|
||||
light.ConeInnerAngle = 5;
|
||||
light.ConeOuterAngle = 35;
|
||||
light.Extent = Vector3.One;
|
||||
@ -209,6 +217,7 @@ namespace CodeWalker.Forms
|
||||
light.ColorR = 255;
|
||||
light.ColorG = 255;
|
||||
light.ColorB = 255;
|
||||
light.TimeFlags = 14680191;
|
||||
return light;
|
||||
}
|
||||
private void SelectLight(LightAttributes light)
|
||||
@ -218,30 +227,57 @@ namespace CodeWalker.Forms
|
||||
selectedLight = null;
|
||||
ModelForm.selectedLight = null;
|
||||
UpdateUI();
|
||||
ModelForm.UpdateWidget();
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedLight = light;
|
||||
ModelForm.selectedLight = light;
|
||||
UpdateUI();
|
||||
ModelForm.UpdateWidget();
|
||||
ModelForm.SetWidgetTransform(light.Position, light.Orientation, new Vector3(light.Falloff));
|
||||
}
|
||||
}
|
||||
private void SelectLightTreeNode(LightAttributes light)
|
||||
{
|
||||
foreach (TreeNode rn in LightsTreeView.Nodes)
|
||||
{
|
||||
if (rn.Tag == light)
|
||||
{
|
||||
LightsTreeView.SelectedNode = rn;
|
||||
break;
|
||||
}
|
||||
var found = false;
|
||||
foreach (TreeNode tn in rn.Nodes)
|
||||
{
|
||||
if (tn.Tag == light)
|
||||
{
|
||||
LightsTreeView.SelectedNode = tn;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void CreateLight()
|
||||
{
|
||||
selectedLight = NewLightAttribute();
|
||||
if(Drawable != null)
|
||||
{
|
||||
List<LightAttributes> lights = Drawable.LightAttributes.data_items.ToList();
|
||||
lights.Add(NewLightAttribute());
|
||||
if (Drawable.LightAttributes == null) Drawable.LightAttributes = new ResourceSimpleList64<LightAttributes>();
|
||||
List<LightAttributes> lights = Drawable.LightAttributes.data_items?.ToList() ?? new List<LightAttributes>();
|
||||
lights.Add(selectedLight);
|
||||
Drawable.LightAttributes.data_items = lights.ToArray();
|
||||
UpdateLightParams();
|
||||
LoadModel(Drawable);
|
||||
}
|
||||
else if(FragDrawable != null)
|
||||
{
|
||||
List<LightAttributes> lights = FragDrawable.OwnerFragment.LightAttributes.data_items.ToList();
|
||||
lights.Add(NewLightAttribute());
|
||||
if (FragDrawable.OwnerFragment.LightAttributes == null) FragDrawable.OwnerFragment.LightAttributes = new ResourceSimpleList64<LightAttributes>();
|
||||
List<LightAttributes> lights = FragDrawable.OwnerFragment.LightAttributes.data_items?.ToList() ?? new List<LightAttributes>();
|
||||
lights.Add(selectedLight);
|
||||
FragDrawable.OwnerFragment.LightAttributes.data_items = lights.ToArray();
|
||||
UpdateLightParams();
|
||||
LoadModel(FragDrawable);
|
||||
@ -255,14 +291,16 @@ namespace CodeWalker.Forms
|
||||
if (dr == null) { dr = n.Parent.Tag as Drawable; } //try parent node tag also
|
||||
if (dr!= null)
|
||||
{
|
||||
List<LightAttributes> lights = dr.LightAttributes.data_items.ToList();
|
||||
lights.Add(NewLightAttribute());
|
||||
if (dr.LightAttributes == null) dr.LightAttributes = new ResourceSimpleList64<LightAttributes>();
|
||||
List<LightAttributes> lights = dr.LightAttributes.data_items?.ToList() ?? new List<LightAttributes>();
|
||||
lights.Add(selectedLight);
|
||||
dr.LightAttributes.data_items = lights.ToArray();
|
||||
UpdateLightParams();
|
||||
LoadModels(DrawableDict);
|
||||
}
|
||||
}
|
||||
}
|
||||
SelectLightTreeNode(selectedLight);
|
||||
}
|
||||
private void DeleteLight()
|
||||
{
|
||||
@ -372,6 +410,21 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void SetWidgetModeUI(WidgetMode mode)
|
||||
{
|
||||
MoveMenuItem.Checked = (mode == WidgetMode.Position);
|
||||
MoveMenuItem.BackColor = (mode == WidgetMode.Position) ? SystemColors.GradientActiveCaption : SystemColors.Control;
|
||||
RotateMenuItem.Checked = (mode == WidgetMode.Rotation);
|
||||
RotateMenuItem.BackColor = (mode == WidgetMode.Rotation) ? SystemColors.GradientActiveCaption : SystemColors.Control;
|
||||
ScaleMenuItem.Checked = (mode == WidgetMode.Scale);
|
||||
ScaleMenuItem.BackColor = (mode == WidgetMode.Scale) ? SystemColors.GradientActiveCaption : SystemColors.Control;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void LightsTreeView_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
SelectLight(e.Node.Tag as LightAttributes);
|
||||
@ -387,12 +440,6 @@ namespace CodeWalker.Forms
|
||||
ModelForm.SetCameraPosition(selectedLight.Position, selectedLight.Falloff * 2f);
|
||||
}
|
||||
|
||||
private void NormalizeDirectionButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Vector3 d = Vector3.Normalize(FloatUtil.ParseVector3String(DirectionTextBox.Text));
|
||||
DirectionTextBox.Text = FloatUtil.GetVector3String(d);
|
||||
}
|
||||
|
||||
private void PositionTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
@ -425,11 +472,11 @@ namespace CodeWalker.Forms
|
||||
UpdateLightParams();
|
||||
}
|
||||
|
||||
private void IntensityUpDown_ValueChanged(object sender, EventArgs e)
|
||||
private void IntensityTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(IntensityUpDown.Text);
|
||||
float v = FloatUtil.Parse(IntensityTextBox.Text);
|
||||
if (selectedLight.Intensity != v)
|
||||
{
|
||||
selectedLight.Intensity = v;
|
||||
@ -488,11 +535,11 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void InnerAngleUpDown_ValueChanged(object sender, EventArgs e)
|
||||
private void InnerAngleTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(InnerAngleUpDown.Text);
|
||||
float v = FloatUtil.Parse(InnerAngleTextBox.Text);
|
||||
if (selectedLight.ConeInnerAngle != v)
|
||||
{
|
||||
selectedLight.ConeInnerAngle = v;
|
||||
@ -500,11 +547,11 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void OuterAngleUpDown_ValueChanged(object sender, EventArgs e)
|
||||
private void OuterAngleTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(OuterAngleUpDown.Text);
|
||||
float v = FloatUtil.Parse(OuterAngleTextBox.Text);
|
||||
if (selectedLight.ConeOuterAngle != v)
|
||||
{
|
||||
selectedLight.ConeOuterAngle = v;
|
||||
@ -512,11 +559,11 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void CoronaIntensityUpDown_ValueChanged(object sender, EventArgs e)
|
||||
private void CoronaIntensityTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(CoronaIntensityUpDown.Text);
|
||||
float v = FloatUtil.Parse(CoronaIntensityTextBox.Text);
|
||||
if (selectedLight.CoronaIntensity != v)
|
||||
{
|
||||
selectedLight.CoronaIntensity = v;
|
||||
@ -544,43 +591,79 @@ namespace CodeWalker.Forms
|
||||
if (selectedLight.Direction != v)
|
||||
{
|
||||
selectedLight.Direction = v;
|
||||
selectedLight.Tangent = Vector3.Normalize(selectedLight.Direction.GetPerpVec());
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void FlashinessTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void NormalizeDirectionButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Vector3 d = Vector3.Normalize(FloatUtil.ParseVector3String(DirectionTextBox.Text));
|
||||
DirectionTextBox.Text = FloatUtil.GetVector3String(d);
|
||||
}
|
||||
|
||||
private void TangentTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(FlashinessTextBox.Text);
|
||||
Vector3 v = FloatUtil.ParseVector3String(TangentTextBox.Text);
|
||||
if (selectedLight.Tangent != v)
|
||||
{
|
||||
selectedLight.Tangent = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void NormalizeTangentButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Vector3 t = Vector3.Normalize(FloatUtil.ParseVector3String(TangentTextBox.Text));
|
||||
TangentTextBox.Text = FloatUtil.GetVector3String(t);
|
||||
}
|
||||
|
||||
private void FlagsTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
uint.TryParse(FlagsTextBox.Text, out uint v);
|
||||
if (selectedLight.Flags != v)
|
||||
{
|
||||
selectedLight.Flags = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void FlashinessUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
var v = (byte)FlashinessUpDown.Value;
|
||||
if (selectedLight.Flashiness != v)
|
||||
{
|
||||
selectedLight.Flashiness = (byte)v;
|
||||
selectedLight.Flashiness = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void BoneIDTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void BoneIDUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(BoneIDTextBox.Text);
|
||||
var v = (ushort)BoneIDUpDown.Value;
|
||||
if (selectedLight.BoneId != v)
|
||||
{
|
||||
selectedLight.BoneId = (ushort)v;
|
||||
selectedLight.BoneId = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void GroupIDTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void GroupIDUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(GroupIDTextBox.Text);
|
||||
var v = (byte)GroupIDUpDown.Value;
|
||||
if (selectedLight.GroupId != v)
|
||||
{
|
||||
selectedLight.GroupId = (byte)v;
|
||||
selectedLight.GroupId = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
@ -597,26 +680,26 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void ShadowBlurTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void ShadowBlurUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(ShadowBlurTextBox.Text);
|
||||
var v = (byte)ShadowBlurUpDown.Value;
|
||||
if (selectedLight.ShadowBlur != v)
|
||||
{
|
||||
selectedLight.ShadowBlur = (byte)v;
|
||||
selectedLight.ShadowBlur = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void LightFadeDistanceTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void LightFadeDistanceUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(LightFadeDistanceTextBox.Text);
|
||||
var v = (byte)LightFadeDistanceUpDown.Value;
|
||||
if (selectedLight.LightFadeDistance != v)
|
||||
{
|
||||
selectedLight.LightFadeDistance = (byte)v;
|
||||
selectedLight.LightFadeDistance = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
@ -669,38 +752,38 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void ShadowFadeDistanceTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void ShadowFadeDistanceUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(ShadowFadeDistanceTextBox.Text);
|
||||
var v = (byte)ShadowFadeDistanceUpDown.Value;
|
||||
if (selectedLight.ShadowFadeDistance != v)
|
||||
{
|
||||
selectedLight.ShadowFadeDistance = (byte)v;
|
||||
selectedLight.ShadowFadeDistance = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void SpecularFadeDistanceTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void SpecularFadeDistanceUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(SpecularFadeDistanceTextBox.Text);
|
||||
var v = (byte)SpecularFadeDistanceUpDown.Value;
|
||||
if (selectedLight.SpecularFadeDistance != v)
|
||||
{
|
||||
selectedLight.SpecularFadeDistance = (byte)v;
|
||||
selectedLight.SpecularFadeDistance = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
|
||||
private void VolumetricFadeDistance_TextChanged(object sender, EventArgs e)
|
||||
private void VolumetricFadeDistanceUpDown_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
float v = FloatUtil.Parse(VolumetricFadeDistanceTextBox.Text);
|
||||
var v = (byte)VolumetricFadeDistanceUpDown.Value;
|
||||
if (selectedLight.VolumetricFadeDistance != v)
|
||||
{
|
||||
selectedLight.VolumetricFadeDistance = (byte)v;
|
||||
selectedLight.VolumetricFadeDistance = v;
|
||||
UpdateLightParams();
|
||||
}
|
||||
}
|
||||
@ -790,11 +873,14 @@ namespace CodeWalker.Forms
|
||||
populatingui = false;
|
||||
}
|
||||
|
||||
private void HashTextBox_TextChanged(object sender, EventArgs e)
|
||||
private void TextureHashTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (populatingui) return;
|
||||
if (selectedLight == null) return;
|
||||
uint.TryParse(HashTextBox.Text, out uint v);
|
||||
if (!uint.TryParse(TextureHashTextBox.Text, out uint v))
|
||||
{
|
||||
v = JenkHash.GenHash(TextureHashTextBox.Text);
|
||||
}
|
||||
if (selectedLight.ProjectedTextureHash != v)
|
||||
{
|
||||
selectedLight.ProjectedTextureHash = v;
|
||||
@ -824,54 +910,51 @@ namespace CodeWalker.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void lightToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void EditNewLightMenu_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateLight();
|
||||
}
|
||||
|
||||
private void deleteLightToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void EditDeleteLightMenu_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteLight();
|
||||
}
|
||||
|
||||
private void showGizmosToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void OptionsShowOutlinesMenu_Click(object sender, EventArgs e)
|
||||
{
|
||||
showGizmosToolStripMenuItem.Checked = !showGizmosToolStripMenuItem.Checked;
|
||||
ModelForm.showLightGizmos = showGizmosToolStripMenuItem.Checked;
|
||||
OptionsShowOutlinesMenu.Checked = !OptionsShowOutlinesMenu.Checked;
|
||||
ModelForm.showLightGizmos = OptionsShowOutlinesMenu.Checked;
|
||||
}
|
||||
|
||||
private void moveToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void MoveMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
moveToolStripMenuItem.Checked = !moveToolStripMenuItem.Checked;
|
||||
if (moveToolStripMenuItem.Checked)
|
||||
{
|
||||
moveToolStripMenuItem.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
|
||||
rotateToolStripMenuItem.Checked = false;
|
||||
rotateToolStripMenuItem.BackColor = System.Drawing.SystemColors.Control;
|
||||
ModelForm.SetWidgetMode("Position");
|
||||
}
|
||||
else
|
||||
{
|
||||
moveToolStripMenuItem.BackColor = System.Drawing.SystemColors.Control;
|
||||
ModelForm.SetWidgetMode("Default");
|
||||
}
|
||||
var mode = MoveMenuItem.Checked ? WidgetMode.Default : WidgetMode.Position;
|
||||
SetWidgetModeUI(mode);
|
||||
ModelForm.SetWidgetMode(mode);
|
||||
}
|
||||
|
||||
private void rotateToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void RotateMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
rotateToolStripMenuItem.Checked = !rotateToolStripMenuItem.Checked;
|
||||
if (rotateToolStripMenuItem.Checked)
|
||||
{
|
||||
rotateToolStripMenuItem.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
|
||||
moveToolStripMenuItem.Checked = false;
|
||||
moveToolStripMenuItem.BackColor = System.Drawing.SystemColors.Control;
|
||||
ModelForm.SetWidgetMode("Rotation");
|
||||
}
|
||||
else
|
||||
{
|
||||
rotateToolStripMenuItem.BackColor = System.Drawing.SystemColors.Control;
|
||||
ModelForm.SetWidgetMode("Default");
|
||||
}
|
||||
var mode = RotateMenuItem.Checked ? WidgetMode.Default : WidgetMode.Rotation;
|
||||
SetWidgetModeUI(mode);
|
||||
ModelForm.SetWidgetMode(mode);
|
||||
}
|
||||
|
||||
private void ScaleMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var mode = ScaleMenuItem.Checked ? WidgetMode.Default : WidgetMode.Scale;
|
||||
SetWidgetModeUI(mode);
|
||||
ModelForm.SetWidgetMode(mode);
|
||||
}
|
||||
|
||||
private void NewLightButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateLight();
|
||||
}
|
||||
|
||||
private void DeleteLightButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteLight();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -117,11 +117,11 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStripFix1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="MainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="moveToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="MoveMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
vAAADrwBlbxySQAAAKtJREFUOE+lUlsOgCAM40iegcPxz0n9IfwqXTatk5EYmzQM1paHphlaa1vvfS+l
|
||||
@ -130,7 +130,7 @@
|
||||
ZG1O6QTGlgf4FZ9QVAAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="rotateToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="RotateMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
vAAADrwBlbxySQAAAVFJREFUOE99kzFug0AQRTlCjpAj5AgRPVJadyno6alSubXokVK65Aa4pqKhDz3F
|
||||
@ -140,6 +140,14 @@
|
||||
O2LbRn1UoJ1CS+7BAGRZ5oRwPB6t0508BmhU7wwYivBETQjavu93ZwJQQ210vV7fRGz0ZQEGFG87oPD3
|
||||
N9S6afQmrfYcg60p0Nngv1iLwyVj/SmFFQZqGk5kYH7yJc8Xs46JdsH/TJXc/eOmiKJfGa9fWzDSupYA
|
||||
AAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ScaleMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAAAHhJREFUOE/dkLsNwCAMRBkpMzAc69IgWuJLsGUQH4cyJz1Alu8VOEtSSlfOORKl
|
||||
p67Mw+UQQvHeN2wFq7IIcFjpRZg9Aj3coSWNAPeMvoQbM3rHRsBLI1jCQpTxR2aB3pMyciKQMnIiqNU3
|
||||
PxPsWAqsDAVfqVWKczdonTmVYM9FFwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
|
@ -325,15 +325,7 @@ namespace CodeWalker.Rendering
|
||||
}
|
||||
if (lights != null)
|
||||
{
|
||||
var rlights = new RenderableLight[lights.Length];
|
||||
for (int i = 0; i < lights.Length; i++)
|
||||
{
|
||||
var rlight = new RenderableLight();
|
||||
rlight.Owner = this;
|
||||
rlight.Init(lights[i]);
|
||||
rlights[i] = rlight;
|
||||
}
|
||||
Lights = rlights;
|
||||
InitLights(lights);
|
||||
}
|
||||
|
||||
|
||||
@ -341,6 +333,19 @@ namespace CodeWalker.Rendering
|
||||
|
||||
}
|
||||
|
||||
public void InitLights(LightAttributes[] lights)
|
||||
{
|
||||
var rlights = new RenderableLight[lights.Length];
|
||||
for (int i = 0; i < lights.Length; i++)
|
||||
{
|
||||
var rlight = new RenderableLight();
|
||||
rlight.Owner = this;
|
||||
rlight.Init(lights[i]);
|
||||
rlights[i] = rlight;
|
||||
}
|
||||
Lights = rlights;
|
||||
}
|
||||
|
||||
private RenderableModel InitModel(DrawableModel dm)
|
||||
{
|
||||
var rmodel = new RenderableModel();
|
||||
|
@ -3304,16 +3304,32 @@ namespace CodeWalker.Rendering
|
||||
{
|
||||
entity?.EnsureLights(rndbl.Key);
|
||||
|
||||
|
||||
|
||||
//reinit lights when added/removed from editor
|
||||
var dd = rndbl.Key as Drawable;
|
||||
var fd = rndbl.Key as FragDrawable;
|
||||
var lights = dd?.LightAttributes?.data_items;
|
||||
if ((lights == null) && (fd != null) && (fd?.OwnerFragment?.Drawable == fd))
|
||||
{
|
||||
lights = fd.OwnerFragment.LightAttributes?.data_items;
|
||||
}
|
||||
if ((lights != null) && (lights.Length != rndbl.Lights.Length))
|
||||
{
|
||||
rndbl.InitLights(lights);
|
||||
}
|
||||
|
||||
|
||||
var linst = new RenderableLightInst();
|
||||
for (int i = 0; i < rndbl.Lights.Length; i++)
|
||||
{
|
||||
var rndlight = rndbl.Lights[i];
|
||||
var light = rndlight.OwnerLight;
|
||||
|
||||
if (light.HasChanged == true)
|
||||
if (light.UpdateRenderable == true)
|
||||
{
|
||||
rndlight.Init(light);
|
||||
light.HasChanged = false;
|
||||
light.UpdateRenderable = false;
|
||||
}
|
||||
|
||||
linst.EntityPosition = position;
|
||||
|
Loading…
Reference in New Issue
Block a user