mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2026-02-18 05:27:43 +01:00
Fix problem with mare colors not resetting, reduce redraws again, use material texture instead of GPU.
This commit is contained in:
parent
d36e4f891b
commit
80a6e89aa5
8 changed files with 20 additions and 26 deletions
|
|
@ -301,11 +301,11 @@ public class StateApplier(
|
|||
}
|
||||
}
|
||||
|
||||
public ActorData ChangeMaterialValues(ActorState state, bool apply)
|
||||
public ActorData ChangeMaterialValue(ActorState state, MaterialValueIndex index, bool apply)
|
||||
{
|
||||
var data = GetData(state);
|
||||
if (apply)
|
||||
ChangeMaterialValues(data, state.Materials, state.IsLocked);
|
||||
ChangeMaterialValue(data, index, state.Materials.TryGetValue(index, out var v) ? v.Model : null, state.IsLocked);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
@ -326,7 +326,7 @@ public class StateApplier(
|
|||
if (!mainKey.TryGetTexture(actor, out var texture))
|
||||
continue;
|
||||
|
||||
if (!_directX.TryGetColorTable(*texture, out var table))
|
||||
if (!PrepareColorSet.TryGetColorTable(actor, mainKey, out var table))
|
||||
continue;
|
||||
|
||||
foreach (var (key, value) in values)
|
||||
|
|
@ -337,14 +337,6 @@ public class StateApplier(
|
|||
}
|
||||
}
|
||||
|
||||
public ActorData ChangeMaterialValue(ActorState state, MaterialValueIndex index, bool apply)
|
||||
{
|
||||
var data = GetData(state);
|
||||
if (apply)
|
||||
ChangeMaterialValue(data, index, state.Materials.TryGetValue(index, out var v) ? v.Model : null, state.IsLocked);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary> Apply the entire state of an actor to all relevant actors, either via immediate redraw or piecewise. </summary>
|
||||
/// <param name="state"> The state to apply. </param>
|
||||
/// <param name="redraw"> Whether a redraw should be forced. </param>
|
||||
|
|
@ -377,7 +369,6 @@ public class StateApplier(
|
|||
ChangeMetaState(actors, MetaIndex.VisorState, state.ModelData.IsVisorToggled());
|
||||
ChangeCrests(actors, state.ModelData.CrestVisibility);
|
||||
ChangeParameters(actors, state.OnlyChangedParameters(), state.ModelData.Parameters, state.IsLocked);
|
||||
// This should never be applied when caused through IPC, then redraw should be true.
|
||||
ChangeMaterialValues(actors, state.Materials, state.IsLocked);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -296,6 +296,9 @@ public class StateEditor(
|
|||
Editor.ChangeMetaState(state, meta, mergedDesign.Design.DesignData.GetMeta(meta), Source(meta), out _, settings.Key);
|
||||
}
|
||||
|
||||
if (settings.ResetMaterials)
|
||||
state.Materials.Clear();
|
||||
|
||||
foreach (var (key, value) in mergedDesign.Design.Materials)
|
||||
{
|
||||
if (!value.Enabled)
|
||||
|
|
@ -321,8 +324,6 @@ public class StateEditor(
|
|||
settings.Source, out _, settings.Key);
|
||||
}
|
||||
}
|
||||
|
||||
requiresRedraw |= mergedDesign.Design.Materials.Count > 0 && settings.Source.IsIpc();
|
||||
}
|
||||
|
||||
var actors = settings.Source.RequiresChange()
|
||||
|
|
|
|||
|
|
@ -224,7 +224,6 @@ public sealed class StateManager(
|
|||
|| !state.ModelData.IsHuman
|
||||
|| CustomizeArray.Compare(state.ModelData.Customize, state.BaseData.Customize).RequiresRedraw();
|
||||
|
||||
redraw |= state.Materials.Values.Count > 0 && source.IsIpc();
|
||||
state.ModelData = state.BaseData;
|
||||
state.ModelData.SetIsWet(false);
|
||||
foreach (var index in Enum.GetValues<CustomizeIndex>())
|
||||
|
|
@ -346,7 +345,7 @@ public sealed class StateManager(
|
|||
public void ReapplyState(Actor actor, ActorState state, StateSource source)
|
||||
{
|
||||
var data = Applier.ApplyAll(state,
|
||||
!actor.Model.IsHuman || CustomizeArray.Compare(actor.Model.GetCustomize(), state.ModelData.Customize).RequiresRedraw() || state.Materials.Values.Count > 0 && source.IsIpc(), false);
|
||||
!actor.Model.IsHuman || CustomizeArray.Compare(actor.Model.GetCustomize(), state.ModelData.Customize).RequiresRedraw(), false);
|
||||
StateChanged.Invoke(StateChanged.Type.Reapply, source, state, data, null);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue