mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-05-27 05:44:43 +00:00
ModelEditor - Add model node icons
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user