Skip to content

Commit 2f49d6d

Browse files
committed
remove unused usings, add zone models to model exporting system, new stage selector impl
Stage selector can open any kingdom and stage listed in WorldListFromDb.byml, makes things a bit easier to load into an existing game stage for editing. (when a stage is selected, the selection will load the stage if its found in the current mod directory, otherwise it'll load from the base dump path.)
1 parent 3c1c81b commit 2f49d6d

42 files changed

Lines changed: 164 additions & 215 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Plugins/SampleMapEditor/AssetMenu/AssetLoaderLiveActor.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
using ImGuiNET;
22
using MapStudio.UI;
3-
using RedStarLibrary.GameTypes;
43
using System;
54
using System.Collections.Generic;
65
using System.IO;
76
using System.Linq;
8-
using System.Text;
9-
using System.Threading.Tasks;
107
using Toolbox.Core;
118

129
namespace RedStarLibrary.AssetMenu

Plugins/SampleMapEditor/Database/ActorDataBase.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
using CafeLibrary.Rendering;
2-
using Newtonsoft.Json;
3-
using Newtonsoft.Json.Linq;
1+
using Newtonsoft.Json;
42
using RedStarLibrary.Extensions;
53
using RedStarLibrary.GameTypes;
64
using RedStarLibrary.JsonConverters;
75
using System;
86
using System.Collections.Generic;
97
using System.IO;
108
using System.Linq;
11-
using System.Text;
12-
using System.Threading.Tasks;
139
using Toolbox.Core;
1410

1511
namespace RedStarLibrary

Plugins/SampleMapEditor/Extensions/BfresExtensions.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
using CafeLibrary.Rendering;
22
using RedStarLibrary.Rendering;
3-
using System;
43
using System.Collections.Generic;
5-
using System.Linq;
6-
using System.Text;
7-
using System.Threading.Tasks;
84

95
namespace RedStarLibrary.Extensions
106
{

Plugins/SampleMapEditor/Extensions/MiscExtensions.cs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
using OpenTK;
1+
using CafeLibrary.ModelConversion;
2+
using CafeLibrary.Rendering;
3+
using OpenTK;
4+
using System;
25
using System.Collections.Generic;
6+
using System.IO;
7+
using Toolbox.Core;
38

49
namespace RedStarLibrary.Extensions
510
{
@@ -14,5 +19,32 @@ public static string TrimEnd(this string source, string value)
1419

1520
return source.Remove(source.LastIndexOf(value));
1621
}
22+
23+
public static bool ExportModel(this BfresRender bfresRender, string outPath, string outFolderName)
24+
{
25+
outPath = Path.Combine(outPath, outFolderName);
26+
if (!Directory.Exists(outPath))
27+
Directory.CreateDirectory(outPath);
28+
else // dont bother re-dumping if the model folder is already present
29+
return false;
30+
31+
var resFile = bfresRender.ResFile;
32+
33+
if (resFile == null)
34+
throw new NullReferenceException();
35+
36+
foreach (var model in resFile.Models)
37+
{
38+
var modelPath = Path.Combine(outPath, model.Key + ".dae");
39+
40+
var scene = BfresModelExporter.FromGeneric(resFile, model.Value);
41+
IONET.IOManager.ExportScene(scene, modelPath, new IONET.ExportSettings() { });
42+
}
43+
44+
foreach ((var texName, var arcTex) in bfresRender.Textures)
45+
arcTex.OriginalSource?.Export(Path.Combine(outPath, $"{texName}.png"), new TextureExportSettings());
46+
47+
return true;
48+
}
1749
}
1850
}

Plugins/SampleMapEditor/Extensions/NodeBase.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
6-
using Toolbox.Core.ViewModels;
1+
using Toolbox.Core.ViewModels;
72

83
namespace RedStarLibrary.Extensions
94
{

Plugins/SampleMapEditor/Extensions/SARC.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using System.IO;
7-
using System.Linq;
8-
using System.Text;
9-
using System.Threading.Tasks;
107
using Toolbox.Core;
11-
using static CafeLibrary.SARC;
128

139
namespace RedStarLibrary.Extensions
1410
{

Plugins/SampleMapEditor/Extensions/TextureWrappers.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
using CafeLibrary;
22
using MapStudio.UI;
3-
using System;
4-
using System.Collections.Generic;
53
using System.IO;
6-
using System.Linq;
7-
using System.Text;
8-
using System.Threading.Tasks;
94
using Toolbox.Core;
105

116
namespace RedStarLibrary.Extensions

Plugins/SampleMapEditor/GameTypes/ActorList.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
using System;
2-
using System.Collections;
1+
using System.Collections;
32
using System.Collections.Generic;
43
using System.Linq;
5-
using System.Text;
6-
using System.Threading.Tasks;
74

85
namespace RedStarLibrary.GameTypes
96
{

Plugins/SampleMapEditor/GameTypes/LiveActor.cs

Lines changed: 11 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
using System;
55
using System.Collections.Generic;
66
using System.IO;
7-
using OpenTK;
8-
using OpenTK.Graphics.OpenGL;
97
using Toolbox.Core.ViewModels;
108
using CafeLibrary.Rendering;
119
using MapStudio.UI;
@@ -15,13 +13,9 @@
1513
using ImGuiNET;
1614
using RedStarLibrary.Rendering;
1715
using RedStarLibrary.MapData;
18-
using BfresLibrary;
19-
using CafeLibrary.ModelConversion;
2016
using RedStarLibrary.Extensions;
2117
using UIFramework;
22-
using Newtonsoft.Json.Linq;
2318
using RedStarLibrary.Helpers;
24-
using System.IO.Pipes;
2519

2620
namespace RedStarLibrary.GameTypes
2721
{
@@ -319,7 +313,7 @@ public void CreateZoneRenderer()
319313

320314
Console.WriteLine($"Creating Zone Render of Actor: {Placement.Id} {Placement.UnitConfigName}");
321315

322-
var zoneRenderer = new StageZoneRenderer();
316+
var zoneRenderer = new StageZoneRenderer(Placement.ObjectName);
323317

324318
objectRender = zoneRenderer;
325319
RenderMode = ActorRenderMode.Zone;
@@ -405,31 +399,9 @@ public void PlaceLinkedObjects(PlacementFileEditor loader)
405399
public bool TryExportModel(string outPath)
406400
{
407401
if (objectRender is BfresRender bfresRender)
408-
{
409-
outPath = Path.Combine(outPath, ArchiveName);
410-
if (!Directory.Exists(outPath))
411-
Directory.CreateDirectory(outPath);
412-
else // dont bother re-dumping if the model folder is already present
413-
return true;
414-
415-
var resFile = bfresRender.ResFile;
416-
417-
if (resFile == null)
418-
throw new NullReferenceException();
419-
420-
foreach (var model in resFile.Models)
421-
{
422-
var modelPath = Path.Combine(outPath, model.Key + ".dae");
423-
424-
var scene = BfresModelExporter.FromGeneric(resFile, model.Value);
425-
IONET.IOManager.ExportScene(scene, modelPath, new IONET.ExportSettings() { });
426-
}
427-
428-
foreach ((var texName, var arcTex) in bfresRender.Textures)
429-
arcTex.OriginalSource?.Export(Path.Combine(outPath, $"{texName}.png"), new TextureExportSettings());
430-
431-
return true;
432-
}
402+
return bfresRender.ExportModel(outPath, ArchiveName);
403+
else if(objectRender is StageZoneRenderer zoneRender)
404+
zoneRender.DumpModels(outPath);
433405
return false;
434406
}
435407

@@ -488,6 +460,8 @@ public ITransformableObject GetTransformObj()
488460
}
489461

490462
public EditableObject GetEditObj() => objectRender;
463+
public StageZoneRenderer GetZoneRenderer() => GetEditObj() as StageZoneRenderer;
464+
public BfresRender GetBfresRender() => GetEditObj() as BfresRender;
491465

492466
private List<string> GetUsedTextureNames()
493467
{
@@ -516,11 +490,11 @@ private void UpdateRenderer()
516490
objectRender.UINode.TagUI.UIDrawer += (o, e) => PropertyDrawer.Draw(Placement.ActorParams);
517491
objectRender.UINode.TagUI.UIDrawer += DrawLayerConfig;
518492

519-
if (RenderMode == ActorRenderMode.Bfres)
493+
if (RenderMode == ActorRenderMode.Bfres || RenderMode == ActorRenderMode.Zone)
520494
objectRender.UINode.TagUI.UIDrawer += DrawModelProperties;
521-
else if (RenderMode == ActorRenderMode.Area)
495+
if (RenderMode == ActorRenderMode.Area)
522496
objectRender.UINode.TagUI.UIDrawer += DrawAreaProperties;
523-
else if (RenderMode == ActorRenderMode.Zone)
497+
if (RenderMode == ActorRenderMode.Zone)
524498
objectRender.UINode.TagUI.UIDrawer += DrawZoneProperties;
525499

526500
objectRender.Transform.TransformUpdated += delegate
@@ -568,7 +542,7 @@ private void DrawModelProperties(object sender, EventArgs e)
568542
float width = ImGui.GetWindowWidth();
569543
var btnSize = new System.Numerics.Vector2(width, 22);
570544

571-
if (ImGui.Button("Open Model", btnSize))
545+
if (RenderMode == ActorRenderMode.Bfres && ImGui.Button("Open Model", btnSize))
572546
Framework.QueueWindowFileDrop(modelPath);
573547

574548
if (ImGui.Button("Export Model", btnSize))
@@ -579,7 +553,7 @@ private void DrawModelProperties(object sender, EventArgs e)
579553
TryExportModel(dlg.SelectedPath);
580554
}
581555

582-
if (ImGui.Button("Reload Model", btnSize))
556+
if (RenderMode == ActorRenderMode.Bfres && ImGui.Button("Reload Model", btnSize))
583557
{
584558
var arcName = !string.IsNullOrEmpty(Placement.ModelName) ? Placement.ModelName : Placement.UnitConfigName;
585559
var arcPath = ResourceManager.FindResourcePath(Path.Combine("ObjectData", $"{arcName}.szs"));
@@ -740,8 +714,6 @@ internal void TryLoadModelRenderer()
740714
{
741715
LoadModel(modelARC, modelStream);
742716

743-
CreateBfresRenderer(modelStream, modelARC.GetTexArchive());
744-
745717
var fileStream = modelARC.GetInitFileStream("InitClipping");
746718

747719
if (fileStream != null)

Plugins/SampleMapEditor/GameTypes/PlacementId.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
using HakoniwaByml.Iter;
2-
using HakoniwaByml.Writer;
3-
using RedStarLibrary.Interfaces;
42
using System;
5-
using System.Collections.Generic;
6-
using System.Linq;
7-
using System.Text;
8-
using System.Threading.Tasks;
93

104
namespace RedStarLibrary.GameTypes
115
{

0 commit comments

Comments
 (0)