From a287c91dd8f7b72a05d0f3968365652e20a2ba17 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Tue, 10 Sep 2024 20:08:08 +0200 Subject: [PATCH] ModelEditor - Add model node icons --- PCK-Studio/Forms/Editor/ModelEditor.cs | 102 ++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 3 deletions(-) diff --git a/PCK-Studio/Forms/Editor/ModelEditor.cs b/PCK-Studio/Forms/Editor/ModelEditor.cs index 791e1e98..1cc24924 100644 --- a/PCK-Studio/Forms/Editor/ModelEditor.cs +++ b/PCK-Studio/Forms/Editor/ModelEditor.cs @@ -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 GetModelNodes(IEnumerable 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 GetModelPartNodeChildren(IEnumerable 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; } }