Update the photo taking mode to automatic and hone in visual feedback

This commit is contained in:
Michal Pikulski
2025-12-16 21:31:06 +01:00
parent ecb9bf1b2b
commit 4063e66362
15 changed files with 1581 additions and 99 deletions

View File

@@ -1,7 +1,7 @@
using Core.Settings;
using AppleHills.Core.Settings;
using UnityEngine;
namespace AppleHills.Core.Settings
namespace Core.Settings
{
/// <summary>
/// Settings related to minigames
@@ -139,6 +139,12 @@ namespace AppleHills.Core.Settings
[Header("Photo Input")]
[Tooltip("Input mode for photo taking sequence")]
[SerializeField] private PhotoInputModes photoInputMode = PhotoInputModes.Tap;
[Tooltip("Photo taking mode - whether photo sequence is triggered by input or automatically")]
[SerializeField] private PhotoTakingMode photoTakingMode = PhotoTakingMode.Input;
[Tooltip("Delay before automatic photo when PhotoTakingMode is Automatic (in seconds)")]
[SerializeField] private float autoPhotoDelay = 0.5f;
[Tooltip("Padding factor to add space around the monster (1.0 = exact size, 1.2 = 20% extra)")]
[SerializeField] private float paddingFactor = 1.2f;
@@ -222,6 +228,8 @@ namespace AppleHills.Core.Settings
public float MaxSizePercent => maxSizePercent;
public float MinSizePercent => minSizePercent;
public PhotoInputModes PhotoInputMode => photoInputMode;
public PhotoTakingMode PhotoTakingMode => photoTakingMode;
public float AutoPhotoDelay => autoPhotoDelay;
public override void OnValidate()
{
@@ -294,6 +302,9 @@ namespace AppleHills.Core.Settings
{
viewfinderProgressThresholds[i] = Mathf.Clamp01(viewfinderProgressThresholds[i]);
}
// Validate photo taking settings
autoPhotoDelay = Mathf.Max(0f, autoPhotoDelay);
}
}
}

View File

@@ -14,6 +14,15 @@ namespace Core.Settings
Hold // New hold-based input
}
/// <summary>
/// Enum defining when photos are taken
/// </summary>
public enum PhotoTakingMode
{
Input, // Player must tap/hold to initiate photo sequence
Automatic // Photos are taken automatically when player enters range
}
/// <summary>
/// Interface for player movement settings (used by all player controllers)
/// </summary>
@@ -149,6 +158,10 @@ namespace Core.Settings
float MaxSizePercent { get; }
public float MinSizePercent { get; }
public PhotoInputModes PhotoInputMode { get; }
// Photo Taking Mode
PhotoTakingMode PhotoTakingMode { get; } // Whether photos are taken via input or automatically
float AutoPhotoDelay { get; } // Delay before automatic photo (when PhotoTakingMode is Automatic)
}
/// <summary>