[Fix] Config & auto-property
This commit is contained in:
@@ -12,7 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: b4e8d5c36f36bb443b640a85df3e7077, type: 3}
|
m_Script: {fileID: 11500000, guid: b4e8d5c36f36bb443b640a85df3e7077, type: 3}
|
||||||
m_Name: MinesweeperGameConfig
|
m_Name: MinesweeperGameConfig
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Config.MinesweeperGameConfig
|
m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Config.MinesweeperGameConfig
|
||||||
width: 9
|
<Width>k__BackingField: 9
|
||||||
height: 9
|
<Height>k__BackingField: 9
|
||||||
minesCount: 10
|
<MinesCount>k__BackingField: 10
|
||||||
restartKey: 114
|
<RestartKey>k__BackingField: 114
|
||||||
|
|||||||
@@ -12,15 +12,15 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: a3b0d5a2a71d45ad9f4ac4f77158c101, type: 3}
|
m_Script: {fileID: 11500000, guid: a3b0d5a2a71d45ad9f4ac4f77158c101, type: 3}
|
||||||
m_Name: MinesweeperUiConfig
|
m_Name: MinesweeperUiConfig
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Config.MinesweeperUiConfig
|
m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Config.MinesweeperUiConfig
|
||||||
smileSprite: {fileID: -1742511488406231654, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
<SmileSprite>k__BackingField: {fileID: -1742511488406231654, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
||||||
surprisedSprite: {fileID: 3671161086415039645, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
<SurprisedSprite>k__BackingField: {fileID: 3671161086415039645, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
||||||
coolSprite: {fileID: -4087064840323337479, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
<CoolSprite>k__BackingField: {fileID: -4087064840323337479, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
||||||
deadSprite: {fileID: -3219474053889490514, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
<DeadSprite>k__BackingField: {fileID: -3219474053889490514, guid: 4c4c10e49c2777748899d811a0e67689, type: 3}
|
||||||
cellButtonPrefab: {fileID: 6406400753494049822, guid: 266915ac0173ea44b81985eb253dfa88, type: 3}
|
<CellButtonPrefab>k__BackingField: {fileID: 6406400753494049822, guid: 266915ac0173ea44b81985eb253dfa88, type: 3}
|
||||||
mineSprite: {fileID: 0}
|
<MineSprite>k__BackingField: {fileID: 0}
|
||||||
flagSprite: {fileID: 0}
|
<FlagSprite>k__BackingField: {fileID: 0}
|
||||||
closedCellSprite: {fileID: 0}
|
<ClosedCellColor>k__BackingField: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||||
openedCellSprite: {fileID: 0}
|
<OpenedCellColor>k__BackingField: {r: 1, g: 1, b: 1, a: 1}
|
||||||
defaultTextColor: {r: 0, g: 0, b: 0, a: 1}
|
defaultTextColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
oneMineTextColor: {r: 0, g: 0, b: 1, a: 1}
|
oneMineTextColor: {r: 0, g: 0, b: 1, a: 1}
|
||||||
twoMineTextColor: {r: 0, g: 1, b: 0, a: 1}
|
twoMineTextColor: {r: 0, g: 1, b: 0, a: 1}
|
||||||
@@ -30,7 +30,7 @@ MonoBehaviour:
|
|||||||
sixMineTextColor: {r: 0, g: 1, b: 1, a: 1}
|
sixMineTextColor: {r: 0, g: 1, b: 1, a: 1}
|
||||||
sevenMineTextColor: {r: 0, g: 0, b: 0, a: 1}
|
sevenMineTextColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
eightMineTextColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
eightMineTextColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||||
referenceCellSize: 100
|
<ReferenceCellSize>k__BackingField: 100
|
||||||
boardPaddingRatio: 0.15
|
<BoardPaddingRatio>k__BackingField: 0.15
|
||||||
gridSpacingRatio: 0.02
|
<GridSpacingRatio>k__BackingField: 0.02
|
||||||
minimumCellSize: 8
|
<MinimumCellSize>k__BackingField: 8
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -5,16 +5,11 @@ namespace Minesweeper.Config
|
|||||||
[CreateAssetMenu(fileName = "MinesweeperGameConfig", menuName = "Minesweeper/Game Config")]
|
[CreateAssetMenu(fileName = "MinesweeperGameConfig", menuName = "Minesweeper/Game Config")]
|
||||||
public sealed class MinesweeperGameConfig : ScriptableObject
|
public sealed class MinesweeperGameConfig : ScriptableObject
|
||||||
{
|
{
|
||||||
[SerializeField, Min(1)] private int width = 9;
|
[field: SerializeField, Min(1)] public int Width { get; private set; } = 9;
|
||||||
[SerializeField, Min(1)] private int height = 9;
|
[field: SerializeField, Min(1)] public int Height { get; private set; } = 9;
|
||||||
[SerializeField, Min(1)] private int minesCount = 10;
|
[field: SerializeField, Min(1)] public int MinesCount { get; private set; } = 10;
|
||||||
[SerializeField] private KeyCode restartKey = KeyCode.R;
|
[field: SerializeField] public KeyCode RestartKey { get; private set; } = KeyCode.R;
|
||||||
|
|
||||||
public int Width => width;
|
public bool IsValid => Width > 0 && Height > 0 && MinesCount > 0 && MinesCount < Width * Height;
|
||||||
public int Height => height;
|
|
||||||
public int MinesCount => minesCount;
|
|
||||||
public KeyCode RestartKey => restartKey;
|
|
||||||
|
|
||||||
public bool IsValid => width > 0 && height > 0 && minesCount > 0 && minesCount < width * height;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@ namespace Minesweeper.Config
|
|||||||
public const float DefaultGridSpacingRatio = 0.02f;
|
public const float DefaultGridSpacingRatio = 0.02f;
|
||||||
public const float DefaultMinimumCellSize = 8f;
|
public const float DefaultMinimumCellSize = 8f;
|
||||||
|
|
||||||
[SerializeField] private Sprite smileSprite;
|
[field: SerializeField] public Sprite SmileSprite { get; private set; }
|
||||||
[SerializeField] private Sprite surprisedSprite;
|
[field: SerializeField] public Sprite SurprisedSprite { get; private set; }
|
||||||
[SerializeField] private Sprite coolSprite;
|
[field: SerializeField] public Sprite CoolSprite { get; private set; }
|
||||||
[SerializeField] private Sprite deadSprite;
|
[field: SerializeField] public Sprite DeadSprite { get; private set; }
|
||||||
[SerializeField] private GameObject cellButtonPrefab;
|
[field: SerializeField] public GameObject CellButtonPrefab { get; private set; }
|
||||||
[SerializeField] private Sprite mineSprite;
|
[field: SerializeField] public Sprite MineSprite { get; private set; }
|
||||||
[SerializeField] private Sprite flagSprite;
|
[field: SerializeField] public Sprite FlagSprite { get; private set; }
|
||||||
[SerializeField] private Sprite closedCellSprite;
|
[field: SerializeField] public Color ClosedCellColor { get; private set; } = Color.gray;
|
||||||
[SerializeField] private Sprite openedCellSprite;
|
[field: SerializeField] public Color OpenedCellColor { get; private set; } = Color.white;
|
||||||
[SerializeField] private Color defaultTextColor = Color.black;
|
[SerializeField] private Color defaultTextColor = Color.black;
|
||||||
[SerializeField] private Color oneMineTextColor = Color.blue;
|
[SerializeField] private Color oneMineTextColor = Color.blue;
|
||||||
[SerializeField] private Color twoMineTextColor = Color.green;
|
[SerializeField] private Color twoMineTextColor = Color.green;
|
||||||
@@ -28,33 +28,23 @@ namespace Minesweeper.Config
|
|||||||
[SerializeField] private Color sixMineTextColor = Color.cyan;
|
[SerializeField] private Color sixMineTextColor = Color.cyan;
|
||||||
[SerializeField] private Color sevenMineTextColor = Color.black;
|
[SerializeField] private Color sevenMineTextColor = Color.black;
|
||||||
[SerializeField] private Color eightMineTextColor = Color.gray;
|
[SerializeField] private Color eightMineTextColor = Color.gray;
|
||||||
[SerializeField, Min(DefaultMinimumCellSize)] private float referenceCellSize = DefaultReferenceCellSize;
|
[field: SerializeField, Min(DefaultMinimumCellSize)] public float ReferenceCellSize { get; private set; } = DefaultReferenceCellSize;
|
||||||
[SerializeField, Min(0f)] private float boardPaddingRatio = DefaultBoardPaddingRatio;
|
[field: SerializeField, Min(0f)] public float BoardPaddingRatio { get; private set; } = DefaultBoardPaddingRatio;
|
||||||
[SerializeField, Min(0f)] private float gridSpacingRatio = DefaultGridSpacingRatio;
|
[field: SerializeField, Min(0f)] public float GridSpacingRatio { get; private set; } = DefaultGridSpacingRatio;
|
||||||
[SerializeField, Min(DefaultMinimumCellSize)] private float minimumCellSize = DefaultMinimumCellSize;
|
[field: SerializeField, Min(DefaultMinimumCellSize)] public float MinimumCellSize { get; private set; } = DefaultMinimumCellSize;
|
||||||
|
|
||||||
public GameObject CellButtonPrefab => cellButtonPrefab;
|
|
||||||
public Sprite MineSprite => mineSprite;
|
|
||||||
public Sprite FlagSprite => flagSprite;
|
|
||||||
public Sprite ClosedCellSprite => closedCellSprite;
|
|
||||||
public Sprite OpenedCellSprite => openedCellSprite;
|
|
||||||
public float ReferenceCellSize => referenceCellSize;
|
|
||||||
public float BoardPaddingRatio => boardPaddingRatio;
|
|
||||||
public float GridSpacingRatio => gridSpacingRatio;
|
|
||||||
public float MinimumCellSize => minimumCellSize;
|
|
||||||
|
|
||||||
public Sprite GetSmileSprite(SmileFaceState state)
|
public Sprite GetSmileSprite(SmileFaceState state)
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
case SmileFaceState.Surprised:
|
case SmileFaceState.Surprised:
|
||||||
return surprisedSprite != null ? surprisedSprite : smileSprite;
|
return SurprisedSprite != null ? SurprisedSprite : SmileSprite;
|
||||||
case SmileFaceState.Cool:
|
case SmileFaceState.Cool:
|
||||||
return coolSprite != null ? coolSprite : smileSprite;
|
return CoolSprite != null ? CoolSprite : SmileSprite;
|
||||||
case SmileFaceState.Dead:
|
case SmileFaceState.Dead:
|
||||||
return deadSprite != null ? deadSprite : smileSprite;
|
return DeadSprite != null ? DeadSprite : SmileSprite;
|
||||||
default:
|
default:
|
||||||
return smileSprite;
|
return SmileSprite;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,7 @@ namespace Minesweeper.Presentation.Views
|
|||||||
if (backgroundImage != null)
|
if (backgroundImage != null)
|
||||||
{
|
{
|
||||||
backgroundImage.pixelsPerUnitMultiplier = pixelsPerUnitMultiplier;
|
backgroundImage.pixelsPerUnitMultiplier = pixelsPerUnitMultiplier;
|
||||||
backgroundImage.sprite = cell.IsOpened ? config.OpenedCellSprite : config.ClosedCellSprite;
|
backgroundImage.color = cell.IsOpened ? config.OpenedCellColor : config.ClosedCellColor;
|
||||||
backgroundImage.color = Color.white;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contentImage != null)
|
if (contentImage != null)
|
||||||
|
|||||||
Reference in New Issue
Block a user