mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-07-09 10:38:14 +00:00
Behaviour editor redesigned to match MainForm.
This commit is contained in:
35
PCK-Studio/Forms/Editor/BehaviourEditor.Designer.cs
generated
35
PCK-Studio/Forms/Editor/BehaviourEditor.Designer.cs
generated
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user