init
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using VOID.Generic.Objects.Container;
|
||||
using VOID.Generic.Objects.Container.Events;
|
||||
using VOID.Generic.Objects.Item.Events;
|
||||
using VOID.Generic.Objects.Unit;
|
||||
|
||||
namespace VOID.Generic.Objects.Item
|
||||
{
|
||||
[System.Serializable]
|
||||
public class ItemObjectState : ObjectComponent<ItemObject>
|
||||
{
|
||||
#region Initialize
|
||||
|
||||
protected override void EventInitialize()
|
||||
{
|
||||
parent.itemEvents.onPickedAfter.AddListener(OnPicked);
|
||||
parent.itemEvents.onDroppedAfter.AddListener(OnDropped);
|
||||
parent.itemEvents.onMovedIntoContainer.AddListener(OnMovedIntoContainer);
|
||||
parent.itemEvents.onMovedOutOfContainer.AddListener(OnMovedOutOfContainer);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public UnitObject carriedBy { get; private set; }
|
||||
public ContainerObject inContainer { get; private set; }
|
||||
|
||||
private void OnPicked(PickEvent pickEvent)
|
||||
{
|
||||
carriedBy = pickEvent.unit;
|
||||
parent.gameObject.SetActive(!carriedBy && !inContainer);
|
||||
}
|
||||
|
||||
private void OnDropped(DropEvent dropEvent)
|
||||
{
|
||||
carriedBy = null;
|
||||
parent.gameObject.SetActive(!carriedBy && !inContainer);
|
||||
}
|
||||
|
||||
private void OnMovedIntoContainer(ContainerMoveInEvent containerMoveInEvent)
|
||||
{
|
||||
inContainer = containerMoveInEvent.container;
|
||||
parent.gameObject.SetActive(!carriedBy && !inContainer);
|
||||
}
|
||||
|
||||
private void OnMovedOutOfContainer(ContainerMoveOutEvent containerMoveOutEvent)
|
||||
{
|
||||
inContainer = null;
|
||||
parent.gameObject.SetActive(!carriedBy && !inContainer);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user