diff --git a/PCK-Studio/Forms/Editor/CustomSkinEditor.cs b/PCK-Studio/Forms/Editor/CustomSkinEditor.cs index 7b7b4e52..a997d98e 100644 --- a/PCK-Studio/Forms/Editor/CustomSkinEditor.cs +++ b/PCK-Studio/Forms/Editor/CustomSkinEditor.cs @@ -91,23 +91,7 @@ namespace PckStudio.Forms.Editor private void LoadModelData() { - SkinModel modelInfo = EditorValue.Model; - - List boxProperties = modelInfo.AdditionalBoxes; - List offsetProperties = modelInfo.PartOffsets; - - renderer3D1.ANIM = EditorValue.Anim; - - renderer3D1.ModelData.Clear(); - foreach (SkinBOX box in boxProperties) - { - renderer3D1.ModelData.Add(box); - } - renderer3D1.ResetOffsets(); - foreach (SkinPartOffset offset in offsetProperties) - { - renderer3D1.SetPartOffset(offset); - } + renderer3D1?.LoadSkin(EditorValue); if (EditorValue.Texture is not null) { diff --git a/PCK-Studio/Rendering/SkinRenderer.cs b/PCK-Studio/Rendering/SkinRenderer.cs index 390ed0b6..cfbbbeb7 100644 --- a/PCK-Studio/Rendering/SkinRenderer.cs +++ b/PCK-Studio/Rendering/SkinRenderer.cs @@ -178,6 +178,18 @@ namespace PckStudio.Rendering return bmp; } + public void LoadSkin(Skin skin, Image cape = default) + { + ResetOffsets(); + ModelData.Clear(); + ANIM = skin.Anim; + Texture = skin.Texture; + CapeTexture = cape; + + skin.Model.PartOffsets.ForEach(SetPartOffset); + skin.Model.AdditionalBoxes.ForEach(ModelData.Add); + } + private enum GuidelineMode { None = -1,