ModelEditor - Add model node icons

This commit is contained in:
miku-666
2024-09-10 20:08:08 +02:00
parent c75d64aa93
commit a287c91dd8

View File

@@ -11,6 +11,7 @@ using OMI.Formats.Model;
using MetroFramework.Forms;
using PckStudio.Internal;
using PckStudio.Internal.App;
namespace PckStudio.Forms.Editor
{
@@ -30,6 +31,97 @@ namespace PckStudio.Forms.Editor
_models = models;
_tryGetTexture = tryGetTexture;
_trySetTexture = trySetTexture;
modelTreeView.ImageList = new ImageList();
modelTreeView.ImageList.ColorDepth = ColorDepth.Depth32Bit;
modelTreeView.ImageList.ImageSize = new Size(32, 32);
ApplicationScope.EntityImages.ToList().ForEach(modelTreeView.ImageList.Images.Add);
}
// TODO: move to json file. -miku
private static int GetModelImageIndex(string modelName)
{
return modelName switch
{
"bat" => 3,
"blaze" => 4,
"boat" => 5,
"cat" => 6,
"spider" => 107,
"chicken" => 9,
"cod" => 10,
"cow" => 12,
"creeper" => 13,
"creeper_head" => 13,
"dolphin" => 14,
"horse.v2" => 110,
"guardian" => 109,
"bed" => 108,
"dragon" => 21,
"dragon_head" => 21,
"enderman" => 23,
"ghast" => 34,
"irongolem" => 40,
"lavaslime" => 46,
"llama" => 44,
"llamaspit" => 45,
"minecart" => 47,
"ocelot" => 50,
"parrot" => 53,
"phantom" => 54,
"pig" => 55,
"pigzombie" => 94,
"polarbear" => 57,
"rabbit" => 60,
"sheep" => 63,
"sheep.sheared" => 113,
"shulker" => 64,
"silverfish" => 66,
"skeleton" => 67,
"skeleton_head" => 67,
"skeleton.stray" => 77,
"skeleton.wither" => 89,
"skeleton_wither_head" => 89,
"slime" => 115,
"slime.armor" => 116,
"snowgolem" => 71,
"squid" => 76,
"trident" => 80,
"turtle" => 82,
"villager" => 84,
"villager.witch" => 87,
"vex" => 83,
"evoker" => 25,
"vindicator" => 25,
"witherBoss" => 88,
"wolf" => 91,
"zombie" => 92,
"zombie_head" => 92,
"zombie.husk" => 39,
"zombie.villager" => 95,
"zombie.drowned" => 17,
"endermite" => 24,
"pufferfish.small" => 111,
"pufferfish.mid" => 112,
"pufferfish.large" => 59,
"salmon" => 62,
"stray.armor" => 118,
"stray_armor" => 118,
"tropicalfish_a" => 81,
"tropicalfish_b" => 81,
"mooshroom" => 48,
"witherBoss.armor" => 90,
"panda" => 52,
"ravager" => 61,
"pillager" => 56,
"villager_v2" => 101,
"zombie.villager_v2" => 102,
_ => 127
};
}
private class ModelNode : TreeNode
@@ -41,6 +133,8 @@ namespace PckStudio.Forms.Editor
: base(model.Name)
{
_model = model;
ImageIndex = GetModelImageIndex(model.Name);
SelectedImageIndex = GetModelImageIndex(model.Name);
Nodes.AddRange(GetModelNodes(_model.GetParts()).ToArray());
}
private static IEnumerable<TreeNode> GetModelNodes(IEnumerable<ModelPart> parts)
@@ -59,13 +153,13 @@ namespace PckStudio.Forms.Editor
: base(part.Name)
{
_part = part;
ImageIndex = 126;
SelectedImageIndex = 126;
Nodes.AddRange(GetModelPartNodeChildren(part.GetBoxes()).ToArray());
}
private static IEnumerable<TreeNode> GetModelPartNodeChildren(IEnumerable<ModelBox> boxes)
{
return boxes.Select(box => new ModelBoxNode(box));
=> boxes.Select(box => new ModelBoxNode(box));
}
}
private class ModelBoxNode : TreeNode
{
@@ -73,6 +167,8 @@ namespace PckStudio.Forms.Editor
public ModelBoxNode(ModelBox modelBox)
: base($"Box: pos:{modelBox.Position} size:{modelBox.Size}")
{
ImageIndex = 126;
SelectedImageIndex = 126;
_modelBox = modelBox;
}
}