public enum WallOrientation { Horizontal, Vertical } public enum WallType { Empty, Full } public class Wall { public Stage Stage { get; } public int X { get; } public int Y { get; } public WallOrientation Orientation { get; } WallType _type; public WallType Type { get => _type; set { _type = value; Stage.OnWallChanged?.Invoke(this); } } public Wall(Stage stage, int x, int y, WallOrientation orientation) { Stage = stage; X = x; Y = y; Orientation = orientation; } }