Add docs, cleanup structure

This commit is contained in:
Michal Pikulski
2025-11-27 14:19:01 +01:00
parent a57fca63bf
commit bb0fa0712f
21 changed files with 675 additions and 180 deletions

View File

@@ -1,6 +1,7 @@
using Core;
using Minigames.StatueDressup.Controllers;
using Minigames.StatueDressup.Data;
using Minigames.StatueDressup.Events;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
@@ -155,6 +156,10 @@ namespace Minigames.StatueDressup.DragDrop
{
isDragging = true;
// Broadcast started dragging event (from grid)
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: false);
DecorationEventsManager.BroadcastDecorationStartedDragging(eventDataObj);
// Calculate offset from cursor to object center
RectTransformUtility.ScreenPointToLocalPointInRectangle(
canvas.transform as RectTransform,
@@ -193,6 +198,10 @@ namespace Minigames.StatueDressup.DragDrop
Logging.Debug($"[DecorationDraggableInstance] Drag ended: {decorationData?.DecorationName}");
// Broadcast finished dragging event
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: isPlacedOnStatue);
DecorationEventsManager.BroadcastDecorationFinishedDragging(eventDataObj);
// Check if overlapping with statue
if (IsOverlappingStatue())
{
@@ -250,6 +259,10 @@ namespace Minigames.StatueDressup.DragDrop
isPlacedOnStatue = true;
// Broadcast dropped on statue event
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: false);
DecorationEventsManager.BroadcastDecorationDroppedOnStatue(eventDataObj);
// Move to statue parent if specified
if (statueParent != null && transform.parent != statueParent)
{
@@ -273,14 +286,22 @@ namespace Minigames.StatueDressup.DragDrop
{
Logging.Debug($"[DecorationDraggableInstance] Pop-out and destroy: {decorationData?.DecorationName}");
// Broadcast dropped out event (animation starting)
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: false);
DecorationEventsManager.BroadcastDecorationDroppedOut(eventDataObj);
// Notify menu controller to hide outline immediately
onFinishedCallback?.Invoke();
float duration = settings?.PlacementAnimationDuration ?? 0.3f;
float duration = settings?.PlacementAnimationDuration ?? StatueDressupConstants.DefaultAnimationDuration;
// Play pop-out with fade animation
TweenAnimationUtility.PopOutWithFade(transform, canvasGroup, duration, () =>
{
// Broadcast finished dropping out event (animation complete)
var finalEventData = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: false);
DecorationEventsManager.BroadcastDecorationFinishedDroppingOut(finalEventData);
Destroy(gameObject);
});
}
@@ -301,6 +322,10 @@ namespace Minigames.StatueDressup.DragDrop
isPlacedOnStatue = false;
isDragging = true;
// Broadcast started dragging event (from statue)
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: true);
DecorationEventsManager.BroadcastDecorationStartedDragging(eventDataObj);
// Show statue outline when picking up from statue
if (onShowOutlineCallback != null)
{
@@ -345,6 +370,10 @@ namespace Minigames.StatueDressup.DragDrop
Logging.Debug($"[DecorationDraggableInstance] Decoration tapped: {decorationData?.DecorationName}");
// Broadcast tap event
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: true);
DecorationEventsManager.BroadcastDecorationTappedOnStatue(eventDataObj);
// Future: Open detail view, play sound effect, show info popup, etc.
}

View File

@@ -1,5 +1,7 @@
using Core;
using Minigames.StatueDressup.Controllers;
using Minigames.StatueDressup.Data;
using Minigames.StatueDressup.Events;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
@@ -17,7 +19,7 @@ namespace Minigames.StatueDressup.DragDrop
[SerializeField] private Image iconImage;
[SerializeField] private DecorationData decorationData;
private Controllers.DecorationMenuController _menuController;
private DecorationMenuController _menuController;
private DecorationDraggableInstance _activeDraggableInstance;
// Properties
@@ -26,7 +28,7 @@ namespace Minigames.StatueDressup.DragDrop
/// <summary>
/// Initialize the icon with decoration data
/// </summary>
public void Initialize(DecorationData data, Controllers.DecorationMenuController controller)
public void Initialize(DecorationData data, DecorationMenuController controller)
{
decorationData = data;
_menuController = controller;
@@ -46,6 +48,11 @@ namespace Minigames.StatueDressup.DragDrop
if (_activeDraggableInstance == null)
{
Logging.Debug($"[DecorationGridIcon] Item tapped: {decorationData?.DecorationName}");
// Broadcast tapped in grid event
var eventDataObj = new DecorationEventData(decorationData, gameObject, transform.position, fromStatue: false);
DecorationEventsManager.BroadcastDecorationTappedInGrid(eventDataObj);
// Future: Open detail view, preview, etc.
}
}