private void MeshSlotSIBFormatUpdated(object sender, EventArgs e)
        {
            shadowFormatValue = this.shadowFormat.Text;
            ModPackGui.CacheString(shadowFormatValue, ref ModPackGui.formatList);

            MeshSlotUpdated?.Invoke(this, new MeshSlotParameterEventArgs(MeshSlotParameter.SIB_FORMAT, this.shadowFormat.Text));
        }
        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 radioShadows_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton radioOption = sender as RadioButton;

            if (radioOption != null && radioOption.Checked)
            {
                if (sender == customShadows)
                {
                    this.sibResource.Enabled  = true;
                    this.svbResource.Enabled  = true;
                    this.shadowFormat.Enabled = true;
                    this.ShadowStride.Enabled = true;

                    MeshSlotUpdated?.Invoke(this, new MeshSlotParameterEventArgs(MeshSlotParameter.SHADOW, "CUSTOM"));
                }
                else if (sender == enableShadows)
                {
                    this.sibResource.SetValue("");
                    this.sibResource.Enabled = false;
                    this.svbResource.SetValue("");
                    this.svbResource.Enabled  = false;
                    this.shadowFormat.Text    = "";
                    this.shadowFormat.Enabled = false;
                    this.ShadowStride.Text    = "";
                    this.ShadowStride.Enabled = false;

                    MeshSlotUpdated?.Invoke(this, new MeshSlotParameterEventArgs(MeshSlotParameter.SHADOW, "DEFAULT"));
                }
                else if (sender == disableShadows)
                {
                    this.sibResource.Enabled = false;
                    this.svbResource.SetValue("");
                    this.svbResource.Enabled  = false;
                    this.shadowFormat.Text    = "";
                    this.shadowFormat.Enabled = false;
                    this.ShadowStride.Text    = "";
                    this.ShadowStride.Enabled = false;

                    MeshSlotUpdated?.Invoke(this, new MeshSlotParameterEventArgs(MeshSlotParameter.SHADOW, null));
                }
            }
        }
 private void MeshSlotSVBStrideUpdated(object sender, EventArgs e)
 {
     MeshSlotUpdated?.Invoke(this, new MeshSlotParameterEventArgs(MeshSlotParameter.SVB_STRIDE, this.ShadowStride.Text));
 }