Skip to content

Commit

Permalink
Implemented LayerData.IsHidden
Browse files Browse the repository at this point in the history
  • Loading branch information
Floogen committed Mar 9, 2023
1 parent f5e9347 commit fc78e73
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 12 deletions.
5 changes: 5 additions & 0 deletions FashionSense/Framework/Managers/DrawManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ public void DrawLayers(Farmer who, List<LayerData> layers)
{
foreach (var layer in layers)
{
if (layer.IsHidden)
{
continue;
}

if (layer.IsVanilla)
{
DrawVanillaLayer(who, layer);
Expand Down
25 changes: 13 additions & 12 deletions FashionSense/Framework/Managers/LayerManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ internal class LayerManager
{
private IMonitor _monitor;
private int _facingDirection;
private List<AppearanceMetadata> _metadata;

public LayerManager(IMonitor monitor)
{
Expand All @@ -30,6 +31,9 @@ public List<LayerData> SortModelsForDrawing(Farmer who, int facingDirection, Lis
{
// Set the required variables
_facingDirection = facingDirection;
_metadata = metadata;

// Establish the models list
List<AppearanceModel> models = metadata.Where(m => m.Model is not null).Select(m => m.Model).ToList();

// Establish the rawLayerData list
Expand Down Expand Up @@ -174,7 +178,7 @@ private void AddPants(Farmer who, PantsModel pantsModel, Color color, ref List<L
var layerData = new LayerData(AppearanceContentPack.Type.Pants, pantsModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, pantsModel))
{
layerData.IsVanilla = true;
layerData.IsHidden = true;
}
layerData.Color = color;

Expand All @@ -186,7 +190,7 @@ private void AddShoes(Farmer who, ShoesModel shoesModel, Color color, ref List<L
var layerData = new LayerData(AppearanceContentPack.Type.Shoes, shoesModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, shoesModel) || AppearanceHelpers.ShouldHideLegs(who, _facingDirection))
{
layerData.IsVanilla = true;
layerData.IsHidden = true;
}
layerData.Color = color;

Expand All @@ -198,7 +202,7 @@ private void AddShirt(Farmer who, ShirtModel shirtModel, Color color, ref List<L
var layerData = new LayerData(AppearanceContentPack.Type.Shirt, shirtModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, shirtModel))
{
layerData.IsVanilla = true;
layerData.IsHidden = true;
}
layerData.Color = color;

Expand All @@ -210,7 +214,7 @@ private void AddAccessory(Farmer who, AccessoryModel accessoryModel, Color color
var layerData = new LayerData(AppearanceContentPack.Type.Accessory, accessoryModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, accessoryModel))
{
layerData.IsVanilla = true;
layerData.IsHidden = true;
}
layerData.Color = color;

Expand All @@ -220,12 +224,9 @@ private void AddAccessory(Farmer who, AccessoryModel accessoryModel, Color color
private void AddHair(Farmer who, HairModel hairModel, Color color, ref List<LayerData> rawLayerData)
{
var layerData = new LayerData(AppearanceContentPack.Type.Hair, hairModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, hairModel))
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, hairModel) || AppearanceHelpers.IsHatHidingHair(_metadata))
{
if (IsHatHidingHair(rawLayerData))
{
layerData.IsVanilla = true;
}
layerData.IsHidden = true;
}
layerData.Color = color;

Expand All @@ -235,9 +236,9 @@ private void AddHair(Farmer who, HairModel hairModel, Color color, ref List<Laye
private void AddSleeves(Farmer who, SleevesModel sleevesModel, Color color, ref List<LayerData> rawLayerData)
{
var layerData = new LayerData(AppearanceContentPack.Type.Sleeves, sleevesModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, sleevesModel) || AreSleevesForcedHidden(rawLayerData))
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, sleevesModel) || AppearanceHelpers.AreSleevesForcedHidden(_metadata))
{
layerData.IsVanilla = true;
layerData.IsHidden = true;
}
layerData.Color = color;

Expand All @@ -249,7 +250,7 @@ private void AddHat(Farmer who, HatModel hatModel, Color color, ref List<LayerDa
var layerData = new LayerData(AppearanceContentPack.Type.Hat, hatModel);
if (AppearanceHelpers.ShouldHideWhileSwimmingOrWearingBathingSuit(who, hatModel))
{
layerData.IsVanilla = true;
layerData.IsHidden = true;
}
layerData.Color = color;

Expand Down
1 change: 1 addition & 0 deletions FashionSense/Framework/Models/General/LayerData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ internal class LayerData
public AppearanceModel AppearanceModel { get; set; }
public Color Color { get; set; }
public bool IsVanilla { get; set; }
public bool IsHidden { get; set; }

public LayerData(AppearanceContentPack.Type type, AppearanceModel model, bool isVanilla = false)
{
Expand Down

0 comments on commit fc78e73

Please sign in to comment.