Make a reapply event.

This commit is contained in:
Ottermandias 2024-02-18 13:05:04 +01:00
parent 0bc9fc872e
commit 22a8ba3f35
9 changed files with 22 additions and 16 deletions

View file

@ -341,6 +341,8 @@ public class StateApplier(
ChangeMetaState(actors, MetaIndex.VisorState, state.ModelData.IsVisorToggled());
ChangeCrests(actors, state.ModelData.CrestVisibility);
ChangeParameters(actors, state.OnlyChangedParameters(), state.ModelData.Parameters, state.IsLocked);
foreach (var material in state.Materials.Values)
ChangeMaterialValue(actors, MaterialValueIndex.FromKey(material.Key), material.Value.Model, state.IsLocked);
}
return actors;

View file

@ -334,14 +334,14 @@ public sealed class StateManager(
}
}
public void ReapplyState(Actor actor)
public void ReapplyState(Actor actor, StateSource source)
{
if (!GetOrCreate(actor, out var state))
return;
Applier.ApplyAll(state,
!actor.Model.IsHuman || CustomizeArray.Compare(actor.Model.GetCustomize(), state.ModelData.Customize).RequiresRedraw(),
false);
var data = Applier.ApplyAll(state,
!actor.Model.IsHuman || CustomizeArray.Compare(actor.Model.GetCustomize(), state.ModelData.Customize).RequiresRedraw(), false);
StateChanged.Invoke(StateChanged.Type.Reapply, source, state, data, null);
}
public void DeleteState(ActorIdentifier identifier)