Behaviour editor redesigned to match MainForm.

This commit is contained in:
EternalModz
2025-03-15 13:33:20 -07:00
parent 07ac804af9
commit ef90735615
2 changed files with 228 additions and 233 deletions

View File

@@ -60,10 +60,11 @@
//
this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15)))));
this.treeView1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.treeView1.ContextMenuStrip = this.metroContextMenu1;
this.treeView1.ForeColor = System.Drawing.Color.White;
this.treeView1.Location = new System.Drawing.Point(24, 97);
this.treeView1.Location = new System.Drawing.Point(24, 60);
this.treeView1.Margin = new System.Windows.Forms.Padding(0);
this.treeView1.Name = "treeView1";
this.treeView1.Size = new System.Drawing.Size(217, 203);
@@ -122,7 +123,7 @@
// menuStrip
//
this.menuStrip.AutoSize = false;
this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.helpToolStripMenuItem});
@@ -161,8 +162,8 @@
//
this.MobIsTamedCheckbox.AutoSize = true;
this.MobIsTamedCheckbox.Enabled = false;
this.MobIsTamedCheckbox.Location = new System.Drawing.Point(258, 120);
this.MobIsTamedCheckbox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MobIsTamedCheckbox.Location = new System.Drawing.Point(258, 83);
this.MobIsTamedCheckbox.Margin = new System.Windows.Forms.Padding(4);
this.MobIsTamedCheckbox.Name = "MobIsTamedCheckbox";
this.MobIsTamedCheckbox.Size = new System.Drawing.Size(96, 15);
this.MobIsTamedCheckbox.TabIndex = 22;
@@ -175,8 +176,8 @@
//
this.MobHasSaddleCheckbox.AutoSize = true;
this.MobHasSaddleCheckbox.Enabled = false;
this.MobHasSaddleCheckbox.Location = new System.Drawing.Point(258, 157);
this.MobHasSaddleCheckbox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MobHasSaddleCheckbox.Location = new System.Drawing.Point(258, 120);
this.MobHasSaddleCheckbox.Margin = new System.Windows.Forms.Padding(4);
this.MobHasSaddleCheckbox.Name = "MobHasSaddleCheckbox";
this.MobHasSaddleCheckbox.Size = new System.Drawing.Size(106, 15);
this.MobHasSaddleCheckbox.TabIndex = 23;
@@ -191,8 +192,8 @@
this.zUpDown.DecimalPlaces = 3;
this.zUpDown.Enabled = false;
this.zUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
this.zUpDown.Location = new System.Drawing.Point(297, 254);
this.zUpDown.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.zUpDown.Location = new System.Drawing.Point(297, 217);
this.zUpDown.Margin = new System.Windows.Forms.Padding(4);
this.zUpDown.Maximum = new decimal(new int[] {
255,
0,
@@ -214,8 +215,8 @@
this.yUpDown.DecimalPlaces = 3;
this.yUpDown.Enabled = false;
this.yUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
this.yUpDown.Location = new System.Drawing.Point(297, 224);
this.yUpDown.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.yUpDown.Location = new System.Drawing.Point(297, 187);
this.yUpDown.Margin = new System.Windows.Forms.Padding(4);
this.yUpDown.Maximum = new decimal(new int[] {
255,
0,
@@ -234,7 +235,7 @@
// zLabel
//
this.zLabel.AutoSize = true;
this.zLabel.Location = new System.Drawing.Point(258, 254);
this.zLabel.Location = new System.Drawing.Point(258, 217);
this.zLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.zLabel.Name = "zLabel";
this.zLabel.Size = new System.Drawing.Size(20, 19);
@@ -245,7 +246,7 @@
// yLabel
//
this.yLabel.AutoSize = true;
this.yLabel.Location = new System.Drawing.Point(259, 224);
this.yLabel.Location = new System.Drawing.Point(259, 187);
this.yLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.yLabel.Name = "yLabel";
this.yLabel.Size = new System.Drawing.Size(20, 19);
@@ -259,8 +260,8 @@
this.xUpDown.DecimalPlaces = 3;
this.xUpDown.Enabled = false;
this.xUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
this.xUpDown.Location = new System.Drawing.Point(297, 194);
this.xUpDown.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.xUpDown.Location = new System.Drawing.Point(297, 157);
this.xUpDown.Margin = new System.Windows.Forms.Padding(4);
this.xUpDown.Maximum = new decimal(new int[] {
255,
0,
@@ -279,7 +280,7 @@
// xLabel
//
this.xLabel.AutoSize = true;
this.xLabel.Location = new System.Drawing.Point(259, 194);
this.xLabel.Location = new System.Drawing.Point(259, 157);
this.xLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.xLabel.Name = "xLabel";
this.xLabel.Size = new System.Drawing.Size(20, 19);
@@ -307,7 +308,7 @@
this.ForeColor = System.Drawing.Color.White;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Location = new System.Drawing.Point(0, 0);
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "BehaviourEditor";
this.Text = "Behaviour Editor";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BehaviourEditor_FormClosing);

View File

@@ -1,275 +1,269 @@
using System;
using OMI.Formats.Behaviour;
using OMI.Formats.Pck;
using OMI.Workers.Behaviour;
using PckStudio.Extensions;
using PckStudio.Forms.Additional_Popups.EntityForms;
using PckStudio.Internal.App;
using PckStudio.Internal.Json;
using PckStudio.Properties;
using PckStudio.ToolboxItems;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using MetroFramework.Forms;
using PckStudio.Forms.Additional_Popups.EntityForms;
using Newtonsoft.Json.Linq;
using OMI.Formats.Behaviour;
using OMI.Workers.Behaviour;
using OMI.Formats.Pck;
using PckStudio.Properties;
using PckStudio.Internal;
using PckStudio.Extensions;
using PckStudio.Internal.Json;
using PckStudio.Internal.App;
using PckStudio.ToolboxItems;
namespace PckStudio.Forms.Editor
{
public partial class BehaviourEditor : ThemeForm
{
// Behaviours File Format research by Miku and MattNL
private readonly PckAsset _asset;
public partial class BehaviourEditor : ThemeForm
{
// Behaviours File Format research by Miku and MattNL
private readonly PckAsset _asset;
BehaviourFile _behaviourFile;
private readonly List<EntityInfo> BehaviourData = Entities.BehaviourInfos;
private readonly List<EntityInfo> BehaviourData = Entities.BehaviourInfos;
void SetUpTree()
{
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
foreach (var entry in _behaviourFile.entries)
{
TreeNode EntryNode = new TreeNode(entry.name);
void SetUpTree()
{
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
foreach (var entry in _behaviourFile.entries)
{
TreeNode EntryNode = new TreeNode(entry.name);
var behaviour = BehaviourData.Find(b => b.InternalName == entry.name);
EntryNode.Text = behaviour.DisplayName;
EntryNode.ImageIndex = BehaviourData.IndexOf(behaviour);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
EntryNode.Tag = entry;
var behaviour = BehaviourData.Find(b => b.InternalName == entry.name);
EntryNode.Text = behaviour.DisplayName;
EntryNode.ImageIndex = BehaviourData.IndexOf(behaviour);
EntryNode.SelectedImageIndex = EntryNode.ImageIndex;
EntryNode.Tag = entry;
foreach (var posOverride in entry.overrides)
{
TreeNode OverrideNode = new TreeNode("Position Override");
OverrideNode.Tag = posOverride;
EntryNode.Nodes.Add(OverrideNode);
OverrideNode.ImageIndex = 103;
OverrideNode.SelectedImageIndex = OverrideNode.ImageIndex;
}
foreach (var posOverride in entry.overrides)
{
TreeNode OverrideNode = new TreeNode("Position Override");
OverrideNode.Tag = posOverride;
EntryNode.Nodes.Add(OverrideNode);
OverrideNode.ImageIndex = 103;
OverrideNode.SelectedImageIndex = OverrideNode.ImageIndex;
}
treeView1.Nodes.Add(EntryNode);
}
treeView1.EndUpdate();
}
treeView1.Nodes.Add(EntryNode);
}
treeView1.EndUpdate();
}
public BehaviourEditor(PckAsset asset)
{
InitializeComponent();
public BehaviourEditor(PckAsset asset)
{
InitializeComponent();
saveToolStripMenuItem1.Visible = !Settings.Default.AutoSaveChanges;
saveToolStripMenuItem1.Visible = !Settings.Default.AutoSaveChanges;
_asset = asset;
_behaviourFile = asset.GetData(new BehavioursReader());
_behaviourFile = asset.GetData(new BehavioursReader());
treeView1.ImageList = new ImageList();
treeView1.ImageList = new ImageList();
treeView1.ImageList.Images.AddRange(ApplicationScope.EntityImages);
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
SetUpTree();
}
treeView1.ImageList.ColorDepth = ColorDepth.Depth32Bit;
SetUpTree();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode is null)
return;
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode is null)
return;
bool isValidOverride = treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride;
MobIsTamedCheckbox.Enabled = isValidOverride;
MobHasSaddleCheckbox.Enabled = isValidOverride;
xUpDown.Enabled = isValidOverride;
yUpDown.Enabled = isValidOverride;
zUpDown.Enabled = isValidOverride;
renameToolStripMenuItem.Visible = !isValidOverride;
bool isValidOverride = treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride;
MobIsTamedCheckbox.Enabled = isValidOverride;
MobHasSaddleCheckbox.Enabled = isValidOverride;
xUpDown.Enabled = isValidOverride;
yUpDown.Enabled = isValidOverride;
zUpDown.Enabled = isValidOverride;
renameToolStripMenuItem.Visible = !isValidOverride;
if (isValidOverride)
{
if (isValidOverride)
{
var posOverride = treeView1.SelectedNode.Tag as BehaviourFile.RiderPositionOverride.PositionOverride;
MobIsTamedCheckbox.Checked = posOverride.EntityIsTamed;
MobHasSaddleCheckbox.Checked = posOverride.EntityHasSaddle;
xUpDown.Value = (decimal)posOverride.x;
yUpDown.Value = (decimal)posOverride.y;
zUpDown.Value = (decimal)posOverride.z;
}
}
MobHasSaddleCheckbox.Checked = posOverride.EntityHasSaddle;
xUpDown.Value = (decimal)posOverride.x;
yUpDown.Value = (decimal)posOverride.y;
zUpDown.Value = (decimal)posOverride.z;
}
}
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode is null)
return;
treeView1.SelectedNode.Remove();
}
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode is null)
return;
treeView1.SelectedNode.Remove();
}
private void MobIsTamedCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.EntityIsTamed = MobIsTamedCheckbox.Checked;
}
}
private void MobIsTamedCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.EntityIsTamed = MobIsTamedCheckbox.Checked;
}
}
private void MobHasSaddleCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.EntityHasSaddle = MobHasSaddleCheckbox.Checked;
}
}
private void MobHasSaddleCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.EntityHasSaddle = MobHasSaddleCheckbox.Checked;
}
}
private void xUpDown_ValueChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.x = (float)xUpDown.Value;
}
}
private void xUpDown_ValueChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.x = (float)xUpDown.Value;
}
}
private void yUpDown_ValueChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.y = (float)yUpDown.Value;
}
}
private void yUpDown_ValueChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.y = (float)yUpDown.Value;
}
}
private void zUpDown_ValueChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.z = (float)zUpDown.Value;
}
}
private void zUpDown_ValueChanged(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride posOverride)
{
posOverride.z = (float)zUpDown.Value;
}
}
private void changeToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode == null)
return;
if (!(treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride entry))
return;
private void changeToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode == null)
return;
if (!(treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride entry))
return;
var diag = new AddEntry("behaviours", ApplicationScope.EntityImages);
var diag = new AddEntry("behaviours", ApplicationScope.EntityImages);
if (diag.ShowDialog(this) == DialogResult.OK)
{
if (string.IsNullOrEmpty(diag.SelectedEntity))
return;
if (_behaviourFile.entries.FindAll(behaviour => behaviour.name == diag.SelectedEntity).Count() > 0)
{
MessageBox.Show(this, "You cannot have two entries for one entity. Please use the \"Add New Position Override\" tool to add multiple overrides for entities", "Error", MessageBoxButtons.OK);
return;
}
if (diag.ShowDialog(this) == DialogResult.OK)
{
if (string.IsNullOrEmpty(diag.SelectedEntity))
return;
if (_behaviourFile.entries.FindAll(behaviour => behaviour.name == diag.SelectedEntity).Count() > 0)
{
MessageBox.Show(this, "You cannot have two entries for one entity. Please use the \"Add New Position Override\" tool to add multiple overrides for entities", "Error", MessageBoxButtons.OK);
return;
}
entry.name = diag.SelectedEntity;
treeView1.SelectedNode.Tag = entry;
entry.name = diag.SelectedEntity;
treeView1.SelectedNode.Tag = entry;
EntityInfo behaviour = BehaviourData.Find(b => b.InternalName == entry.name);
treeView1.SelectedNode.Text = behaviour.DisplayName;
treeView1.SelectedNode.ImageIndex = BehaviourData.IndexOf(behaviour);
treeView1.SelectedNode.SelectedImageIndex = treeView1.SelectedNode.ImageIndex;
}
}
treeView1.SelectedNode.Text = behaviour.DisplayName;
treeView1.SelectedNode.ImageIndex = BehaviourData.IndexOf(behaviour);
treeView1.SelectedNode.SelectedImageIndex = treeView1.SelectedNode.ImageIndex;
}
}
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
MobIsTamedCheckbox.Enabled = false;
MobHasSaddleCheckbox.Enabled = false;
xUpDown.Enabled = false;
yUpDown.Enabled = false;
zUpDown.Enabled = false;
}
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
MobIsTamedCheckbox.Enabled = false;
MobHasSaddleCheckbox.Enabled = false;
xUpDown.Enabled = false;
yUpDown.Enabled = false;
zUpDown.Enabled = false;
}
private void addNewPositionOverrideToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride)
treeView1.SelectedNode = treeView1.SelectedNode.Parent;
private void addNewPositionOverrideToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride)
treeView1.SelectedNode = treeView1.SelectedNode.Parent;
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride)
{
TreeNode OverrideNode = new TreeNode("Position Override");
OverrideNode.Tag = new BehaviourFile.RiderPositionOverride.PositionOverride();
OverrideNode.ImageIndex = 103;
OverrideNode.SelectedImageIndex = 103;
treeView1.SelectedNode.Nodes.Add(OverrideNode);
}
}
if (treeView1.SelectedNode.Tag is BehaviourFile.RiderPositionOverride)
{
TreeNode OverrideNode = new TreeNode("Position Override");
OverrideNode.Tag = new BehaviourFile.RiderPositionOverride.PositionOverride();
OverrideNode.ImageIndex = 103;
OverrideNode.SelectedImageIndex = 103;
treeView1.SelectedNode.Nodes.Add(OverrideNode);
}
}
private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e)
{
var diag = new AddEntry("behaviours", ApplicationScope.EntityImages);
private void addNewEntryToolStripMenuItem_Click(object sender, EventArgs e)
{
var diag = new AddEntry("behaviours", ApplicationScope.EntityImages);
if(diag.ShowDialog(this) == DialogResult.OK)
{
if (string.IsNullOrEmpty(diag.SelectedEntity))
return;
if (_behaviourFile.entries.FindAll(behaviour => behaviour.name == diag.SelectedEntity).Count() > 0)
{
MessageBox.Show(this, "You cannot have two entries for one entity. Please use the \"Add New Position Override\" tool to add multiple overrides for entities", "Error", MessageBoxButtons.OK);
return;
}
BehaviourFile.RiderPositionOverride NewOverride = new BehaviourFile.RiderPositionOverride(diag.SelectedEntity);
if (diag.ShowDialog(this) == DialogResult.OK)
{
if (string.IsNullOrEmpty(diag.SelectedEntity))
return;
if (_behaviourFile.entries.FindAll(behaviour => behaviour.name == diag.SelectedEntity).Count() > 0)
{
MessageBox.Show(this, "You cannot have two entries for one entity. Please use the \"Add New Position Override\" tool to add multiple overrides for entities", "Error", MessageBoxButtons.OK);
return;
}
BehaviourFile.RiderPositionOverride NewOverride = new BehaviourFile.RiderPositionOverride(diag.SelectedEntity);
TreeNode NewOverrideNode = new TreeNode(NewOverride.name);
NewOverrideNode.Tag = NewOverride;
TreeNode NewOverrideNode = new TreeNode(NewOverride.name);
NewOverrideNode.Tag = NewOverride;
EntityInfo behaviour = BehaviourData.Find(b => b.InternalName == NewOverride.name);
NewOverrideNode.Text = behaviour.DisplayName;
NewOverrideNode.ImageIndex = BehaviourData.IndexOf(behaviour);
NewOverrideNode.SelectedImageIndex = NewOverrideNode.ImageIndex;
NewOverrideNode.Text = behaviour.DisplayName;
NewOverrideNode.ImageIndex = BehaviourData.IndexOf(behaviour);
NewOverrideNode.SelectedImageIndex = NewOverrideNode.ImageIndex;
treeView1.Nodes.Add(NewOverrideNode);
treeView1.SelectedNode = NewOverrideNode;
treeView1.Nodes.Add(NewOverrideNode);
treeView1.SelectedNode = NewOverrideNode;
addNewPositionOverrideToolStripMenuItem_Click(sender, e); // adds a Position Override to the new Override
}
}
addNewPositionOverrideToolStripMenuItem_Click(sender, e); // adds a Position Override to the new Override
}
}
private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
removeToolStripMenuItem_Click(sender, e);
}
private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
removeToolStripMenuItem_Click(sender, e);
}
private void treeView1_MouseHover(object sender, EventArgs e)
{
addNewPositionOverrideToolStripMenuItem.Visible = treeView1.SelectedNode != null;
}
private void treeView1_MouseHover(object sender, EventArgs e)
{
addNewPositionOverrideToolStripMenuItem.Visible = treeView1.SelectedNode != null;
}
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
{
_behaviourFile = new BehaviourFile();
foreach (TreeNode node in treeView1.Nodes)
{
if(node.Tag is BehaviourFile.RiderPositionOverride entry)
{
entry.overrides.Clear();
Console.WriteLine();
foreach (TreeNode overrideNode in node.Nodes)
{
if(overrideNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride overrideEntry)
{
entry.overrides.Add(overrideEntry);
}
}
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
{
_behaviourFile = new BehaviourFile();
foreach (TreeNode node in treeView1.Nodes)
{
if (node.Tag is BehaviourFile.RiderPositionOverride entry)
{
entry.overrides.Clear();
Console.WriteLine();
foreach (TreeNode overrideNode in node.Nodes)
{
if (overrideNode.Tag is BehaviourFile.RiderPositionOverride.PositionOverride overrideEntry)
{
entry.overrides.Add(overrideEntry);
}
}
_behaviourFile.entries.Add(entry);
}
}
_behaviourFile.entries.Add(entry);
}
}
_asset.SetData(new BehavioursWriter(_behaviourFile));
_asset.SetData(new BehavioursWriter(_behaviourFile));
DialogResult = DialogResult.OK;
}
DialogResult = DialogResult.OK;
}
private void BehaviourEditor_FormClosing(object sender, FormClosingEventArgs e)
{
if (Settings.Default.AutoSaveChanges)
{
saveToolStripMenuItem1_Click(sender, EventArgs.Empty);
}
if (Settings.Default.AutoSaveChanges)
{
saveToolStripMenuItem1_Click(sender, EventArgs.Empty);
}
}
}
}