private void MeshSlotFilenameUpdated(object sender, ResourceBuilder.StringEventArgs e)
        {
            MeshSlotParameter updatedParam = MeshSlotParameter.IB;

            if (sender == ibResource)
            {
                updatedParam = MeshSlotParameter.IB;
                ModPackGui.CacheString(e.value, ref ModPackGui.ibList);
            }
            else if (sender == vbResource)
            {
                updatedParam = MeshSlotParameter.VB;
                ModPackGui.CacheString(e.value, ref ModPackGui.vbList);
            }
            else if (sender == sibResource)
            {
                updatedParam = MeshSlotParameter.SIB;
                ModPackGui.CacheString(e.value, ref ModPackGui.ibList);
            }
            else if (sender == svbResource)
            {
                updatedParam = MeshSlotParameter.SVB;
                ModPackGui.CacheString(e.value, ref ModPackGui.vbList);
            }
            else if (sender == ps0Resource)
            {
                updatedParam = MeshSlotParameter.PS0;
                ModPackGui.CacheString(e.value, ref ModPackGui.textureList);
            }
            else if (sender == ps1Resource)
            {
                updatedParam = MeshSlotParameter.PS1;
                ModPackGui.CacheString(e.value, ref ModPackGui.textureList);
            }
            else if (sender == ps2Resource)
            {
                updatedParam = MeshSlotParameter.PS2;
                ModPackGui.CacheString(e.value, ref ModPackGui.textureList);
            }
            else if (sender == pscb2Resource)
            {
                updatedParam = MeshSlotParameter.PSCB2;
                ModPackGui.CacheString(e.value, ref ModPackGui.constantBufferList);
            }
            if (sender is ResourceBuilder)
            {
                (sender as ResourceBuilder).SetValue(e.value);
            }

            MeshSlotUpdated?.Invoke(this, new MeshSlotParameterEventArgs(updatedParam, e.value));
        }
        private void MeshSlotFilenameUpdated(object sender, ResourceBuilder.StringEventArgs e)
        {
            Option selectedOption = this.optionsBox.SelectedItem as Option;

            if (selectedOption != null)
            {
                foreach (BodyMesh bodyMesh in selectedOption.BodyMeshes)
                {
                    switch (bodyMesh.MeshType)
                    {
                    case BodyMeshType.Torso:
                        if (sender == resourceNailIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.chestIBList);
                        }
                        else if (sender == resourceNailVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.chestVBList);
                        }
                        break;

                    case BodyMeshType.Breast:
                        if (sender == resourceSkinIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.breastIBList);
                        }
                        else if (sender == resourceSkinVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.breastVBList);
                        }
                        break;

                    case BodyMeshType.Groin:
                        if (sender == resourceSkinIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.groinIBList);
                        }
                        else if (sender == resourceSkinVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.groinVBList);
                        }
                        break;

                    case BodyMeshType.Arm:
                        if (sender == resourceSkinIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.armIBList);
                        }
                        else if (sender == resourceSkinVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.armVBList);
                        }
                        break;

                    case BodyMeshType.Leg:
                        if (sender == resourceSkinIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.legIBList);
                        }
                        else if (sender == resourceSkinVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.legVBList);
                        }
                        break;

                    case BodyMeshType.FingerNail:
                        if (sender == resourceNailIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.fingerNailIBList);
                        }
                        else if (sender == resourceNailVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.fingerNailVBList);
                        }
                        break;

                    case BodyMeshType.ToeNail:
                        if (sender == resourceNailIB)
                        {
                            bodyMesh.IndexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.IndexBuffer, ref ModPackGui.toeNailIBList);
                        }
                        else if (sender == resourceNailVB)
                        {
                            bodyMesh.VertexBuffer = e.value;
                            ModPackGui.CacheString(bodyMesh.VertexBuffer, ref ModPackGui.toeNailVBList);
                        }
                        break;
                    }
                }
            }
        }