diff --git a/GeometryDashAPI/Levels/GameObjects/Default/Block.cs b/GeometryDashAPI/Levels/GameObjects/Default/Block.cs index 2a4d1c0..eda1000 100644 --- a/GeometryDashAPI/Levels/GameObjects/Default/Block.cs +++ b/GeometryDashAPI/Levels/GameObjects/Default/Block.cs @@ -45,6 +45,40 @@ public Layer ZLayer [GameProperty("32", 1f)] public float Scale { get; set; } = 1f; [GameProperty("34", false)] public bool GroupParent { get; set; } + [GameProperty("43", null)] + private Hsv? hsv; + + [GameProperty("44", null)] + private Hsv? additionalHsv; + + [GameProperty("41", false)] + public bool HasHsv { get; protected set; } + + [GameProperty("42", false)] + public bool HasAdditionalHsv { get; protected set; } + + /// + public Hsv? Hsv + { + get => hsv; + set + { + hsv = value; + HasHsv = value != null; + } + } + + /// + public Hsv? AdditionalHsv + { + get => additionalHsv; + set + { + additionalHsv = value; + HasAdditionalHsv = value != null; + } + } + public Block() { } diff --git a/GeometryDashAPI/Levels/GameObjects/IBlock.cs b/GeometryDashAPI/Levels/GameObjects/IBlock.cs index 57e7835..382694c 100644 --- a/GeometryDashAPI/Levels/GameObjects/IBlock.cs +++ b/GeometryDashAPI/Levels/GameObjects/IBlock.cs @@ -1,27 +1,42 @@ using GeometryDashAPI.Levels.Enums; -namespace GeometryDashAPI.Levels.GameObjects +namespace GeometryDashAPI.Levels.GameObjects; + +public interface IBlock : IGameObject { - public interface IBlock : IGameObject - { - int Id { get; set; } - float PositionX { get; set; } - float PositionY { get; set; } - bool HorizontalReflection { get; set; } - bool VerticalReflection { get; set; } - int Rotation { get; set; } - bool Glow { get; set; } - int LinkControl { get; set; } - short EditorL { get; set; } - short EditorL2 { get; set; } - bool HighDetail { get; set; } - int[] Groups { get; set; } - bool DontFade { get; set; } - bool DontEnter { get; set; } - int ZOrder { get; set; } - Layer ZLayer { get; set; } - float Scale { get; set; } - bool GroupParent { get; set; } - bool IsTrigger { get; set; } - } + int Id { get; set; } + float PositionX { get; set; } + float PositionY { get; set; } + bool HorizontalReflection { get; set; } + bool VerticalReflection { get; set; } + int Rotation { get; set; } + bool Glow { get; set; } + int LinkControl { get; set; } + short EditorL { get; set; } + short EditorL2 { get; set; } + bool HighDetail { get; set; } + int[] Groups { get; set; } + bool DontFade { get; set; } + bool DontEnter { get; set; } + int ZOrder { get; set; } + Layer ZLayer { get; set; } + float Scale { get; set; } + bool GroupParent { get; set; } + bool IsTrigger { get; set; } + + bool HasHsv { get; } + bool HasAdditionalHsv { get; } + + /// + /// If block has 1 color: base or detail
+ /// The value takes either base or detail

+ /// If block has 2 colors, is base + ///
+ Hsv? Hsv { get; set; } + + /// + /// If block has 2 colors: base and detail
+ /// is detail, otherwise null + ///
+ Hsv? AdditionalHsv { get; set; } }