Allow editing villager cached pattern

Closes #191
This commit is contained in:
Kurt 2020-05-10 09:56:26 -07:00
parent 71089b0103
commit a801b1854f
3 changed files with 27 additions and 2 deletions

View File

@ -103,5 +103,11 @@ public GSaveRoomFloorWall Room
get => Data.Slice(0x12100, GSaveRoomFloorWall.SIZE).ToStructure<GSaveRoomFloorWall>();
set => value.ToBytes().CopyTo(Data, 0x12100);
}
public DesignPatternPRO Design
{
get => new DesignPatternPRO(Data.Slice(0x12128, DesignPatternPRO.SIZE));
set => value.Data.CopyTo(Data, 0x12128);
}
}
}

View File

@ -51,6 +51,7 @@ private void InitializeComponent()
this.CM_EditVillager = new System.Windows.Forms.ContextMenuStrip(this.components);
this.B_EditFurniture = new System.Windows.Forms.ToolStripMenuItem();
this.B_EditVillagerRoom = new System.Windows.Forms.ToolStripMenuItem();
this.B_EditVillagerDesign = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.NUD_Variant)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUD_Species)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.PB_Villager)).BeginInit();
@ -253,9 +254,10 @@ private void InitializeComponent()
//
this.CM_EditVillager.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.B_EditFurniture,
this.B_EditVillagerRoom});
this.B_EditVillagerRoom,
this.B_EditVillagerDesign});
this.CM_EditVillager.Name = "CM_EditPlayer";
this.CM_EditVillager.Size = new System.Drawing.Size(146, 48);
this.CM_EditVillager.Size = new System.Drawing.Size(175, 70);
//
// B_EditFurniture
//
@ -271,6 +273,13 @@ private void InitializeComponent()
this.B_EditVillagerRoom.Text = "Edit Room";
this.B_EditVillagerRoom.Click += new System.EventHandler(this.B_EditVillagerRoom_Click);
//
// B_EditVillagerDesign
//
this.B_EditVillagerDesign.Name = "B_EditVillagerDesign";
this.B_EditVillagerDesign.Size = new System.Drawing.Size(180, 22);
this.B_EditVillagerDesign.Text = "Edit Design Pattern";
this.B_EditVillagerDesign.Click += new System.EventHandler(this.B_EditVillagerDesign_Click);
//
// VillagerEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -330,5 +339,6 @@ private void InitializeComponent()
private System.Windows.Forms.ContextMenuStrip CM_EditVillager;
private System.Windows.Forms.ToolStripMenuItem B_EditFurniture;
private System.Windows.Forms.ToolStripMenuItem B_EditVillagerRoom;
private System.Windows.Forms.ToolStripMenuItem B_EditVillagerDesign;
}
}

View File

@ -199,5 +199,14 @@ private void B_EditVillagerRoom_Click(object sender, EventArgs e)
if (editor.ShowDialog() == DialogResult.OK)
v.Room = editor.Entity;
}
private void B_EditVillagerDesign_Click(object sender, EventArgs e)
{
var v = Villagers[VillagerIndex];
var tmp = new[] {v.Design};
using var editor = new PatternEditorPRO(tmp);
if (editor.ShowDialog() == DialogResult.OK)
v.Design = tmp[0];
}
}
}