Update other things.

This commit is contained in:
Ottermandias 2024-07-16 18:19:34 +02:00
parent 81059411e5
commit 9529963aa2
31 changed files with 575 additions and 294 deletions

View file

@ -306,6 +306,8 @@ public class StateApplier(
public unsafe void ChangeMaterialValue(ActorData data, MaterialValueIndex index, ColorRow? value, bool force)
{
// TODO fix when working
return;
if (!force && !_config.UseAdvancedDyes)
return;
@ -338,6 +340,8 @@ public class StateApplier(
public unsafe void ChangeMaterialValues(ActorData data, in StateMaterialManager materials, bool force)
{
// TODO: fix when working
return;
if (!force && !_config.UseAdvancedDyes)
return;
@ -383,6 +387,11 @@ public class StateApplier(
ChangeCustomize(actors, state.ModelData.Customize);
foreach (var slot in EquipSlotExtensions.EqdpSlots)
ChangeArmor(actors, slot, state.ModelData.Armor(slot), !state.Sources[slot, false].IsIpc(), state.ModelData.IsHatVisible());
foreach (var slot in BonusExtensions.AllFlags)
{
var item = state.ModelData.BonusItem(slot);
ChangeBonusItem(actors, slot, item.ModelId, item.Variant);
}
var mainhandActors = state.ModelData.MainhandType != state.BaseData.MainhandType ? actors.OnlyGPose() : actors;
ChangeMainhand(mainhandActors, state.ModelData.Item(EquipSlot.MainHand), state.ModelData.Stain(EquipSlot.MainHand));

View file

@ -175,7 +175,7 @@ public class StateEditor(
var @new = state.ModelData.Parameters[flag];
var actors = Applier.ChangeParameters(state, flag, settings.Source.RequiresChange());
Glamourer.Log.Verbose(
$"Set {flag} crest in state {state.Identifier.Incognito(null)} from {old} to {@new}. [Affecting {actors.ToLazyString("nothing")}.]");
$"Set {flag} in state {state.Identifier.Incognito(null)} from {old} to {@new}. [Affecting {actors.ToLazyString("nothing")}.]");
StateChanged.Invoke(StateChangeType.Parameter, settings.Source, state, actors, (old, @new, flag));
}

View file

@ -110,7 +110,9 @@ public readonly record struct StateIndex(int Value) : IEqualityOperators<StateIn
CustomizeParameterFlag.HairSpecular => new StateIndex(ParamHairSpecular),
CustomizeParameterFlag.HairHighlight => new StateIndex(ParamHairHighlight),
CustomizeParameterFlag.LeftEye => new StateIndex(ParamLeftEye),
CustomizeParameterFlag.LeftScleraIntensity => new StateIndex(ParamLeftScleraIntensity),
CustomizeParameterFlag.RightEye => new StateIndex(ParamRightEye),
CustomizeParameterFlag.RightScleraIntensity => new StateIndex(ParamRightScleraIntensity),
CustomizeParameterFlag.FeatureColor => new StateIndex(ParamFeatureColor),
CustomizeParameterFlag.FacePaintUvMultiplier => new StateIndex(ParamFacePaintUvMultiplier),
CustomizeParameterFlag.FacePaintUvOffset => new StateIndex(ParamFacePaintUvOffset),
@ -199,8 +201,10 @@ public readonly record struct StateIndex(int Value) : IEqualityOperators<StateIn
public const int ParamHairSpecular = ParamHairDiffuse + 1;
public const int ParamHairHighlight = ParamHairSpecular + 1;
public const int ParamLeftEye = ParamHairHighlight + 1;
public const int ParamRightEye = ParamLeftEye + 1;
public const int ParamFeatureColor = ParamRightEye + 1;
public const int ParamLeftScleraIntensity = ParamLeftEye + 1;
public const int ParamRightEye = ParamLeftScleraIntensity + 1;
public const int ParamRightScleraIntensity = ParamRightEye + 1;
public const int ParamFeatureColor = ParamRightScleraIntensity + 1;
public const int ParamFacePaintUvMultiplier = ParamFeatureColor + 1;
public const int ParamFacePaintUvOffset = ParamFacePaintUvMultiplier + 1;
public const int ParamDecalColor = ParamFacePaintUvOffset + 1;
@ -309,7 +313,9 @@ public readonly record struct StateIndex(int Value) : IEqualityOperators<StateIn
ParamHairSpecular => CustomizeParameterFlag.HairSpecular,
ParamHairHighlight => CustomizeParameterFlag.HairHighlight,
ParamLeftEye => CustomizeParameterFlag.LeftEye,
ParamLeftScleraIntensity => CustomizeParameterFlag.LeftScleraIntensity,
ParamRightEye => CustomizeParameterFlag.RightEye,
ParamRightScleraIntensity => CustomizeParameterFlag.RightScleraIntensity,
ParamFeatureColor => CustomizeParameterFlag.FeatureColor,
ParamFacePaintUvMultiplier => CustomizeParameterFlag.FacePaintUvMultiplier,
ParamFacePaintUvOffset => CustomizeParameterFlag.FacePaintUvOffset,
@ -320,103 +326,6 @@ public readonly record struct StateIndex(int Value) : IEqualityOperators<StateIn
_ => -1,
};
public object? GetValue(in DesignData data)
{
return Value switch
{
EquipHead => data.Item(EquipSlot.Head),
EquipBody => data.Item(EquipSlot.Body),
EquipHands => data.Item(EquipSlot.Hands),
EquipLegs => data.Item(EquipSlot.Legs),
EquipFeet => data.Item(EquipSlot.Feet),
EquipEars => data.Item(EquipSlot.Ears),
EquipNeck => data.Item(EquipSlot.Neck),
EquipWrist => data.Item(EquipSlot.Wrists),
EquipRFinger => data.Item(EquipSlot.RFinger),
EquipLFinger => data.Item(EquipSlot.LFinger),
EquipMainhand => data.Item(EquipSlot.MainHand),
EquipOffhand => data.Item(EquipSlot.OffHand),
StainHead => data.Stain(EquipSlot.Head),
StainBody => data.Stain(EquipSlot.Body),
StainHands => data.Stain(EquipSlot.Hands),
StainLegs => data.Stain(EquipSlot.Legs),
StainFeet => data.Stain(EquipSlot.Feet),
StainEars => data.Stain(EquipSlot.Ears),
StainNeck => data.Stain(EquipSlot.Neck),
StainWrist => data.Stain(EquipSlot.Wrists),
StainRFinger => data.Stain(EquipSlot.RFinger),
StainLFinger => data.Stain(EquipSlot.LFinger),
StainMainhand => data.Stain(EquipSlot.MainHand),
StainOffhand => data.Stain(EquipSlot.OffHand),
CustomizeRace => data.Customize[CustomizeIndex.Race],
CustomizeGender => data.Customize[CustomizeIndex.Gender],
CustomizeBodyType => data.Customize[CustomizeIndex.BodyType],
CustomizeHeight => data.Customize[CustomizeIndex.Height],
CustomizeClan => data.Customize[CustomizeIndex.Clan],
CustomizeFace => data.Customize[CustomizeIndex.Face],
CustomizeHairstyle => data.Customize[CustomizeIndex.Hairstyle],
CustomizeHighlights => data.Customize[CustomizeIndex.Highlights],
CustomizeSkinColor => data.Customize[CustomizeIndex.SkinColor],
CustomizeEyeColorRight => data.Customize[CustomizeIndex.EyeColorRight],
CustomizeHairColor => data.Customize[CustomizeIndex.HairColor],
CustomizeHighlightsColor => data.Customize[CustomizeIndex.HighlightsColor],
CustomizeFacialFeature1 => data.Customize[CustomizeIndex.FacialFeature1],
CustomizeFacialFeature2 => data.Customize[CustomizeIndex.FacialFeature2],
CustomizeFacialFeature3 => data.Customize[CustomizeIndex.FacialFeature3],
CustomizeFacialFeature4 => data.Customize[CustomizeIndex.FacialFeature4],
CustomizeFacialFeature5 => data.Customize[CustomizeIndex.FacialFeature5],
CustomizeFacialFeature6 => data.Customize[CustomizeIndex.FacialFeature6],
CustomizeFacialFeature7 => data.Customize[CustomizeIndex.FacialFeature7],
CustomizeLegacyTattoo => data.Customize[CustomizeIndex.LegacyTattoo],
CustomizeTattooColor => data.Customize[CustomizeIndex.TattooColor],
CustomizeEyebrows => data.Customize[CustomizeIndex.Eyebrows],
CustomizeEyeColorLeft => data.Customize[CustomizeIndex.EyeColorLeft],
CustomizeEyeShape => data.Customize[CustomizeIndex.EyeShape],
CustomizeSmallIris => data.Customize[CustomizeIndex.SmallIris],
CustomizeNose => data.Customize[CustomizeIndex.Nose],
CustomizeJaw => data.Customize[CustomizeIndex.Jaw],
CustomizeMouth => data.Customize[CustomizeIndex.Mouth],
CustomizeLipstick => data.Customize[CustomizeIndex.Lipstick],
CustomizeLipColor => data.Customize[CustomizeIndex.LipColor],
CustomizeMuscleMass => data.Customize[CustomizeIndex.MuscleMass],
CustomizeTailShape => data.Customize[CustomizeIndex.TailShape],
CustomizeBustSize => data.Customize[CustomizeIndex.BustSize],
CustomizeFacePaint => data.Customize[CustomizeIndex.FacePaint],
CustomizeFacePaintReversed => data.Customize[CustomizeIndex.FacePaintReversed],
CustomizeFacePaintColor => data.Customize[CustomizeIndex.FacePaintColor],
MetaWetness => data.GetMeta(MetaIndex.Wetness),
MetaHatState => data.GetMeta(MetaIndex.HatState),
MetaVisorState => data.GetMeta(MetaIndex.VisorState),
MetaWeaponState => data.GetMeta(MetaIndex.WeaponState),
MetaModelId => data.ModelId,
CrestHead => data.Crest(CrestFlag.Head),
CrestBody => data.Crest(CrestFlag.Body),
CrestOffhand => data.Crest(CrestFlag.OffHand),
ParamSkinDiffuse => data.Parameters[CustomizeParameterFlag.SkinDiffuse],
ParamMuscleTone => data.Parameters[CustomizeParameterFlag.MuscleTone],
ParamSkinSpecular => data.Parameters[CustomizeParameterFlag.SkinSpecular],
ParamLipDiffuse => data.Parameters[CustomizeParameterFlag.LipDiffuse],
ParamHairDiffuse => data.Parameters[CustomizeParameterFlag.HairDiffuse],
ParamHairSpecular => data.Parameters[CustomizeParameterFlag.HairSpecular],
ParamHairHighlight => data.Parameters[CustomizeParameterFlag.HairHighlight],
ParamLeftEye => data.Parameters[CustomizeParameterFlag.LeftEye],
ParamRightEye => data.Parameters[CustomizeParameterFlag.RightEye],
ParamFeatureColor => data.Parameters[CustomizeParameterFlag.FeatureColor],
ParamFacePaintUvMultiplier => data.Parameters[CustomizeParameterFlag.FacePaintUvMultiplier],
ParamFacePaintUvOffset => data.Parameters[CustomizeParameterFlag.FacePaintUvOffset],
ParamDecalColor => data.Parameters[CustomizeParameterFlag.DecalColor],
BonusItemGlasses => data.BonusItem(BonusItemFlag.Glasses),
_ => null,
};
}
private static string GetName(EquipFlag flag)
{
var slot = flag.ToSlot(out var stain);