Skip to content

Commit

Permalink
Fix parameter binding after replace parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
KirillGutyrchik committed Dec 23, 2024
1 parent 5f3e21e commit c06c3f0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
7 changes: 6 additions & 1 deletion src/TechObject/Base/Properties/ActionParameter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,12 @@ public override string Value
{
var parameterNumber = Parameter.GetParameterNumber;
if (parameterNumber == 0)
SetNewValue("-1"); // Параметр удален
{
if (Parameters.GetParam(Parameter.GetNameLua()) == null)
SetNewValue("-1"); // Параметр удален
else
SetNewValue(Parameters.GetParam(Parameter.GetNameLua()).GetParameterNumber.ToString()); // Параметр заменен
}
else if (OnlyParameterNumber && parameterNumber.ToString() != value.ToString())
SetNewValue(parameterNumber.ToString()); // Параметр задан номером и перемещен
}
Expand Down
15 changes: 6 additions & 9 deletions src/TechObject/ObjectsTree/UniversalObject/ParamsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -289,17 +289,15 @@ override public bool Delete(object child)
return false;
}

override public ITreeViewItem Replace(object child,
object copyObject)
override public ITreeViewItem Replace(object child, object copyObject)
{
var parsManager = child as ParamsManager;
if (copyObject is ParamsManager && parsManager != null)
if (copyObject is ParamsManager && child is ParamsManager parsManager)
{
Clear();
var copyPars = copyObject as ParamsManager;
foreach (Params parGroup in copyPars.Items)
foreach (var parGroup in copyPars.Items.OfType<Params>())
{
foreach (Param par in parGroup.Items)
foreach (var par in parGroup.Items.OfType<Param>())
{
Param addedParam = AddParam(parGroup.LuaName,
par.GetName(), float.Parse(par.GetValue()),
Expand All @@ -312,12 +310,11 @@ override public ITreeViewItem Replace(object child,
return parsManager;
}

Params pars = child as Params;
if (copyObject is Params && pars != null)
if (copyObject is Params && child is Params pars)
{
pars.Clear();
Params copyPars = copyObject as Params;
foreach (Param par in copyPars.Items)
foreach (var par in copyPars.Items.OfType<Param>())
{
pars.InsertCopy(par);
}
Expand Down

0 comments on commit c06c3f0

Please sign in to comment.