Add docs, cleanup structure
This commit is contained in:
@@ -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.
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user