Skip to content

Commit 7ed18cf

Browse files
committed
Added option at Object to rebuild all instances under it
1 parent ce3d742 commit 7ed18cf

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

Mafia2Libs/Forms/Docking/DockSceneTree.Designer.cs

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mafia2Libs/Forms/Docking/DockSceneTree.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ private void OpenEntryContext(object sender, System.ComponentModel.CancelEventAr
324324
FrameActions.DropDownItems[3].Visible = false;
325325
EntryMenuStrip.Items[5].Visible = false;
326326
EntryMenuStrip.Items[6].Visible = false;
327+
EntryMenuStrip.Items[7].Visible = false;
327328

328329
if (TreeView_Explorer.SelectedNode != null && TreeView_Explorer.SelectedNode.Tag != null)
329330
{
@@ -368,6 +369,7 @@ private void OpenEntryContext(object sender, System.ComponentModel.CancelEventAr
368369
if (TreeView_Explorer.SelectedNode.Tag is Object)
369370
{
370371
EntryMenuStrip.Items[5].Visible = true;
372+
EntryMenuStrip.Items[7].Visible = true;
371373
}
372374

373375
if (TreeView_Explorer.SelectedNode.Tag is ActorEntry && hasTranslokatorData)

Mafia2Libs/Forms/MapEditor.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ private void InitDockingControls()
153153
dPropertyGrid.OnObjectUpdated += ApplyEntryChanges;
154154
dSceneTree.TranslokatorNewInstanceButton.Click += new EventHandler(TranslokatorNewInstanceButton_Click);
155155
dSceneTree.ActorEntryNewTRObjectButton.Click += new EventHandler(ActorEntryNewTRObjectButton_Click);
156+
dSceneTree.TRRebuildObjectButton.Click += new EventHandler(TRRebuildObjectButton_Click);
156157
}
157158

158159
private void RenderPanel_MouseWheel(object sender, MouseEventArgs e)
@@ -2851,6 +2852,35 @@ private void RebuildTranslokatorGrids()
28512852
}
28522853
}
28532854
}
2855+
2856+
private void TRRebuildObjectButton_Click(object sender, EventArgs e)
2857+
{
2858+
TreeNode ObjectNode = dSceneTree.SelectedNode;
2859+
Object obj = ObjectNode.Tag as Object;
2860+
if (ObjectNode == null || obj == null || ObjectNode.Nodes.Count == 0)
2861+
{
2862+
return;
2863+
}
2864+
FrameObjectBase groupRef = SceneData.FrameResource.GetObjectByHash<FrameObjectBase>(obj.Name.Hash);
2865+
2866+
foreach (TreeNode instanceNode in ObjectNode.Nodes)//deleting all instances under selected object and rebuilding them
2867+
{
2868+
Instance instance = instanceNode.Tag as Instance;
2869+
if (groupRef != null && groupRef.HasMeshObject())
2870+
{
2871+
Graphics.DeleteInstance(groupRef,instance.RefID);//maybe add optionable bool to delete in rendermodel so it doesnt reload every instance here
2872+
for (int i = 0; i < groupRef.Children.Count; i++)
2873+
{
2874+
InstanceTranslokatorPart(Graphics.Assets, groupRef.Children[i], Matrix4x4.Identity, instance,true);
2875+
}
2876+
}
2877+
else
2878+
{
2879+
Graphics.DeleteInstance(instance.RefID);
2880+
Graphics.InstanceGizmo.InstanceTranslokator(instance,Graphics.GetId3D11Device());
2881+
}
2882+
}
2883+
}
28542884
}
28552885
}
28562886

0 commit comments

Comments
 (0)