Implement MVP for the statue decoration minigame (#65)

MVP implemented with:
- placing, removing etc. decorations
- saving the state, displaying it on the map, restoring when game restarts
- saving screenshots to folder on device

Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com>
Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #65
This commit is contained in:
2025-11-27 13:21:22 +00:00
parent 5ad84ca3e8
commit 83aa3d5e6d
71 changed files with 6421 additions and 976 deletions

View File

@@ -0,0 +1,28 @@
using UI.Core;
namespace Minigames.StatueDressup.UI
{
/// <summary>
/// UIPage wrapper for the photo gallery.
/// Simple stock page with no transition animations.
/// </summary>
public class PhotoGalleryPage : UIPage
{
protected override void DoTransitionIn(System.Action onComplete)
{
// Instant transition - just show
gameObject.SetActive(true);
onComplete?.Invoke();
}
protected override void DoTransitionOut(System.Action onComplete)
{
// Instant transition - just hide
gameObject.SetActive(false);
onComplete?.Invoke();
}
// OnBackPressed uses default behavior (pops the page)
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3136a7edf8de421e9860c6bd4e1dca10
timeCreated: 1764151460

View File

@@ -0,0 +1,32 @@
using UI.Core;
namespace Minigames.StatueDressup.UI
{
/// <summary>
/// UIPage wrapper for the statue decoration play area.
/// Simple stock page with no transition animations.
/// </summary>
public class PlayAreaPage : UIPage
{
protected override void DoTransitionIn(System.Action onComplete)
{
// Instant transition - just show
gameObject.SetActive(true);
onComplete?.Invoke();
}
protected override void DoTransitionOut(System.Action onComplete)
{
// Instant transition - just hide
gameObject.SetActive(false);
onComplete?.Invoke();
}
public override void OnBackPressed()
{
// Play area is the root page - don't allow back navigation
// Override if you want custom behavior (e.g., quit minigame)
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: edd2867b8a4f42d8af202f215c3ecc47
timeCreated: 1764151454