Remove BonusItem and replace with normal EquipItems everywhere.

This commit is contained in:
Ottermandias 2024-10-11 18:18:33 +02:00
parent 415ac63767
commit 9d99d936aa
25 changed files with 112 additions and 118 deletions

View file

@ -152,7 +152,7 @@ public class InternalStateEditor(
}
/// <summary> Change a single bonus item. </summary>
public bool ChangeBonusItem(ActorState state, BonusItemFlag slot, BonusItem item, StateSource source, out BonusItem oldItem, uint key = 0)
public bool ChangeBonusItem(ActorState state, BonusItemFlag slot, EquipItem item, StateSource source, out EquipItem oldItem, uint key = 0)
{
oldItem = state.ModelData.BonusItem(slot);
if (!state.CanUnlock(key))

View file

@ -146,7 +146,7 @@ public class StateApplier(
if (apply)
{
var item = state.ModelData.BonusItem(slot);
ChangeBonusItem(data, slot, item.ModelId, item.Variant);
ChangeBonusItem(data, slot, item.PrimaryId, item.Variant);
}
return data;
@ -391,7 +391,7 @@ public class StateApplier(
foreach (var slot in BonusExtensions.AllFlags)
{
var item = state.ModelData.BonusItem(slot);
ChangeBonusItem(actors, slot, item.ModelId, item.Variant);
ChangeBonusItem(actors, slot, item.PrimaryId, item.Variant);
}
var mainhandActors = state.ModelData.MainhandType != state.BaseData.MainhandType ? actors.OnlyGPose() : actors;

View file

@ -109,7 +109,7 @@ public class StateEditor(
}
}
public void ChangeBonusItem(object data, BonusItemFlag slot, BonusItem item, ApplySettings settings = default)
public void ChangeBonusItem(object data, BonusItemFlag slot, EquipItem item, ApplySettings settings = default)
{
var state = (ActorState)data;
if (!Editor.ChangeBonusItem(state, slot, item, settings.Source, out var old, settings.Key))

View file

@ -250,11 +250,11 @@ public class StateListener : IDisposable
else
apply = true;
if (apply)
item = state.ModelData.BonusItem(slot).ToArmor();
item = state.ModelData.BonusItem(slot).Armor();
break;
// Use current model data.
case UpdateState.NoChange:
item = state.ModelData.BonusItem(slot).ToArmor();
item = state.ModelData.BonusItem(slot).Armor();
break;
case UpdateState.Transformed: break;
}
@ -453,12 +453,12 @@ public class StateListener : IDisposable
return UpdateState.NoChange;
// The actor item does not correspond to the model item, thus the actor is transformed.
if (actorItem.ModelId != item.Set || actorItem.Variant != item.Variant)
if (actorItem.PrimaryId != item.Set || actorItem.Variant != item.Variant)
return UpdateState.Transformed;
var baseData = state.BaseData.BonusItem(slot);
var change = UpdateState.NoChange;
if (baseData.Id != actorItem.Id || baseData.ModelId != item.Set || baseData.Variant != item.Variant)
if (baseData.Id != actorItem.Id || baseData.PrimaryId != item.Set || baseData.Variant != item.Variant)
{
var identified = _items.Identify(slot, item.Set, item.Variant);
state.BaseData.SetBonusItem(slot, identified);

View file

@ -356,7 +356,7 @@ public sealed class StateManager(
foreach (var slot in BonusExtensions.AllFlags)
{
var item = state.ModelData.BonusItem(slot);
Applier.ChangeBonusItem(actors, slot, item.ModelId, item.Variant);
Applier.ChangeBonusItem(actors, slot, item.PrimaryId, item.Variant);
}
var mainhandActors = state.ModelData.MainhandType != state.BaseData.MainhandType ? actors.OnlyGPose() : actors;