Skip to content

Commit

Permalink
Move EffectType to shared lib and rename to MapEffectType
Browse files Browse the repository at this point in the history
  • Loading branch information
flustix committed Aug 24, 2024
1 parent 53823a8 commit 2db1687
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 39 deletions.
20 changes: 3 additions & 17 deletions fluXis.Game/Database/Maps/RealmMapFilters.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using fluXis.Shared.Components.Maps;
using Realms;

namespace fluXis.Game.Database.Maps;
Expand Down Expand Up @@ -35,14 +36,14 @@ public float LongNotePercentage
public string EffectsString { get; set; } = string.Empty;

[Ignored]
public EffectType Effects
public MapEffectType Effects
{
get
{
if (string.IsNullOrEmpty(EffectsString))
return 0;

return (EffectType)Enum.Parse(typeof(EffectType), EffectsString);
return (MapEffectType)Enum.Parse(typeof(MapEffectType), EffectsString);
}
set => EffectsString = ((ulong)value).ToString();
}
Expand All @@ -59,18 +60,3 @@ public void Reset()
}
}

[Flags]
public enum EffectType : ulong
{
ScrollVelocity = 1 << 0, // 1
LaneSwitch = 1 << 1, // 2
Flash = 1 << 2, // 4
Pulse = 1 << 3, // 8
PlayfieldMove = 1 << 4, // 16
PlayfieldScale = 1 << 5, // 32
PlayfieldRotate = 1 << 6, // 64
PlayfieldFade = 1 << 7, // 128
Shake = 1 << 8, // 256
Shader = 1 << 9, // 512
BeatPulse = 1 << 10, // 1024
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using fluXis.Game.Map;
using fluXis.Game.Map.Drawables;
using fluXis.Game.Scoring;
using fluXis.Shared.Components.Maps;
using fluXis.Shared.Scoring.Enums;
using JetBrains.Annotations;
using osu.Framework.Allocation;
Expand Down Expand Up @@ -305,31 +306,31 @@ private GimmickIcon[] getIcons()

var effects = map.Filters.Effects;

if (effects.HasFlag(EffectType.LaneSwitch))
if (effects.HasFlag(MapEffectType.LaneSwitch))
icons.Add(new GimmickIcon(FluXisIconType.LaneSwitch, "Contains lane switches"));

if (effects.HasFlag(EffectType.Flash))
if (effects.HasFlag(MapEffectType.Flash))
icons.Add(new GimmickIcon(FluXisIconType.Flash, "Contains flashes"));

if (effects.HasFlag(EffectType.Pulse))
if (effects.HasFlag(MapEffectType.Pulse))
icons.Add(new GimmickIcon(FluXisIconType.Pulse, "Contains pulses"));

if (effects.HasFlag(EffectType.PlayfieldMove))
if (effects.HasFlag(MapEffectType.PlayfieldMove))
icons.Add(new GimmickIcon(FluXisIconType.PlayfieldMove, "Contains playfield moves"));

if (effects.HasFlag(EffectType.PlayfieldScale))
if (effects.HasFlag(MapEffectType.PlayfieldScale))
icons.Add(new GimmickIcon(FluXisIconType.PlayfieldScale, "Contains playfield scales"));

if (effects.HasFlag(EffectType.PlayfieldFade))
if (effects.HasFlag(MapEffectType.PlayfieldFade))
icons.Add(new GimmickIcon(FluXisIconType.PlayfieldFade, "Contains playfield fades"));

if (effects.HasFlag(EffectType.Shake))
if (effects.HasFlag(MapEffectType.Shake))
icons.Add(new GimmickIcon(FluXisIconType.Shake, "Contains shakes"));

if (effects.HasFlag(EffectType.Shader))
if (effects.HasFlag(MapEffectType.Shader))
icons.Add(new GimmickIcon(FluXisIconType.Shader, "Contains shaders"));

if (effects.HasFlag(EffectType.BeatPulse))
if (effects.HasFlag(MapEffectType.BeatPulse))
icons.Add(new GimmickIcon(FluXisIconType.BeatPulse, "Contains beat pulses"));

return icons.ToArray();
Expand Down
27 changes: 14 additions & 13 deletions fluXis.Game/Utils/MapUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using fluXis.Game.Database.Maps;
using fluXis.Game.Map;
using fluXis.Game.Map.Structures;
using fluXis.Shared.Components.Maps;

namespace fluXis.Game.Utils;

Expand Down Expand Up @@ -132,7 +133,7 @@ public static RealmMapFilters UpdateFilters(this RealmMapFilters filters, MapInf
{
if (scrollVelocity.Multiplier != 1)
{
filters.Effects |= EffectType.ScrollVelocity;
filters.Effects |= MapEffectType.ScrollVelocity;
break;
}
}
Expand All @@ -143,39 +144,39 @@ public static RealmMapFilters UpdateFilters(this RealmMapFilters filters, MapInf
return filters;
}

private static EffectType getEffects(MapEvents events)
private static MapEffectType getEffects(MapEvents events)
{
EffectType effects = 0;
MapEffectType effects = 0;

if (events.LaneSwitchEvents.Count > 0)
effects |= EffectType.LaneSwitch;
effects |= MapEffectType.LaneSwitch;

if (events.FlashEvents.Count > 0)
effects |= EffectType.Flash;
effects |= MapEffectType.Flash;

if (events.PulseEvents.Count > 0)
effects |= EffectType.Pulse;
effects |= MapEffectType.Pulse;

if (events.PlayfieldMoveEvents.Count > 0)
effects |= EffectType.PlayfieldMove;
effects |= MapEffectType.PlayfieldMove;

if (events.PlayfieldScaleEvents.Count > 0)
effects |= EffectType.PlayfieldScale;
effects |= MapEffectType.PlayfieldScale;

if (events.PlayfieldRotateEvents.Count > 0)
effects |= EffectType.PlayfieldRotate;
effects |= MapEffectType.PlayfieldRotate;

if (events.PlayfieldFadeEvents.Count > 0)
effects |= EffectType.PlayfieldFade;
effects |= MapEffectType.PlayfieldFade;

if (events.ShakeEvents.Count > 0)
effects |= EffectType.Shake;
effects |= MapEffectType.Shake;

if (events.ShaderEvents.Count > 0)
effects |= EffectType.Shader;
effects |= MapEffectType.Shader;

if (events.BeatPulseEvents.Count > 0)
effects |= EffectType.BeatPulse;
effects |= MapEffectType.BeatPulse;

return effects;
}
Expand Down
3 changes: 3 additions & 0 deletions fluXis.Shared/Components/Maps/APIMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ public class APIMap
[JsonProperty("rating")]
public double Rating { get; init; }

[JsonProperty("effects")]
public MapEffectType Effects { get; init; }

[JsonProperty("ups")]
public long UpVotes { get; init; }

Expand Down
18 changes: 18 additions & 0 deletions fluXis.Shared/Components/Maps/MapEffectType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
namespace fluXis.Shared.Components.Maps;

[Flags]
public enum MapEffectType : ulong
{
ScrollVelocity = 1 << 0, // 1
LaneSwitch = 1 << 1, // 2
Flash = 1 << 2, // 4
Pulse = 1 << 3, // 8
PlayfieldMove = 1 << 4, // 16
PlayfieldScale = 1 << 5, // 32
PlayfieldRotate = 1 << 6, // 64
PlayfieldFade = 1 << 7, // 128
Shake = 1 << 8, // 256
Shader = 1 << 9, // 512
BeatPulse = 1 << 10, // 1024
}

0 comments on commit 2db1687

Please sign in to comment.