Add testing support for changing weapon types in gpose only.

This commit is contained in:
Ottermandias 2023-07-26 14:59:06 +02:00
parent 89f2e78690
commit 73589adac9
6 changed files with 127 additions and 48 deletions

View file

@ -167,12 +167,11 @@ public class StateApplier
public ActorData ChangeWeapon(ActorState state, EquipSlot slot, bool apply, bool onlyGPose)
{
var data = GetData(state);
if (onlyGPose)
data = data.OnlyGPose();
if (apply)
{
if (onlyGPose)
data.Objects.RemoveAll(a => a.Index is < (int)ScreenActor.GPosePlayer or >= (int)ScreenActor.CutsceneEnd);
ChangeWeapon(data, slot, state.ModelData.Item(slot), state.ModelData.Stain(slot));
}
return data;
}
@ -187,20 +186,6 @@ public class StateApplier
_weapon.LoadWeapon(actor, slot, weapon.Weapon().With(stain));
}
/// <inheritdoc cref="ChangeMainhand(ActorData,EquipItem,StainId)"/>
public ActorData ChangeMainhand(ActorState state, bool apply, bool onlyGPose)
{
var data = GetData(state);
if (apply)
{
if (onlyGPose)
data.Objects.RemoveAll(a => a.Index is < (int)ScreenActor.GPosePlayer or >= (int)ScreenActor.CutsceneEnd);
ChangeMainhand(data, state.ModelData.Item(EquipSlot.MainHand), state.ModelData.Stain(EquipSlot.MainHand));
}
return data;
}
/// <summary> Apply a weapon to the offhand. </summary>
public void ChangeOffhand(ActorData data, EquipItem weapon, StainId stain)
{
@ -209,20 +194,6 @@ public class StateApplier
_weapon.LoadWeapon(actor, EquipSlot.OffHand, weapon.Weapon().With(stain));
}
/// <inheritdoc cref="ChangeOffhand(ActorData,EquipItem,StainId)"/>
public ActorData ChangeOffhand(ActorState state, bool apply, bool onlyGPose)
{
var data = GetData(state);
if (apply)
{
if (onlyGPose)
data.Objects.RemoveAll(a => a.Index is < (int)ScreenActor.GPosePlayer or >= (int)ScreenActor.CutsceneEnd);
ChangeOffhand(data, state.ModelData.Item(EquipSlot.OffHand), state.ModelData.Stain(EquipSlot.OffHand));
}
return data;
}
/// <summary> Change the visor state of actors only on the draw object. </summary>
public void ChangeVisor(ActorData data, bool value)
{