72 lines
1.9 KiB
C#
72 lines
1.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class KitchenObject : MonoBehaviour
|
|
{
|
|
|
|
[SerializeField] private KitchenObjectSO kitchenObjectSO;
|
|
|
|
private IKitchenObjectParent kitchenObjectParent;
|
|
|
|
public KitchenObjectSO GetKitchenObjectSO()
|
|
{
|
|
return kitchenObjectSO;
|
|
}
|
|
|
|
public void SetKitchenObjectParent(IKitchenObjectParent kitchenObjectParent)
|
|
{
|
|
if (this.kitchenObjectParent != null)
|
|
{
|
|
this.kitchenObjectParent.ClearKitchenObject();
|
|
}
|
|
|
|
this.kitchenObjectParent = kitchenObjectParent;
|
|
|
|
if (kitchenObjectParent.HasKitchenObject())
|
|
{
|
|
Debug.LogError("IKitchenObjectParent already has KitchenObject!");
|
|
}
|
|
|
|
kitchenObjectParent.SetKitchenObject(this);
|
|
|
|
transform.parent = kitchenObjectParent.GetKitchenObjectFollowTransform();
|
|
transform.localPosition = Vector3.zero;
|
|
}
|
|
|
|
public IKitchenObjectParent GetKitchenObjectParent()
|
|
{
|
|
return kitchenObjectParent;
|
|
}
|
|
|
|
public void DestroySelf()
|
|
{
|
|
kitchenObjectParent.ClearKitchenObject();
|
|
|
|
Destroy(gameObject);
|
|
}
|
|
|
|
public bool TryGetPlate(out PlateKitchenObject plateKitchenObject)
|
|
{
|
|
if (this is PlateKitchenObject)
|
|
{
|
|
plateKitchenObject = this as PlateKitchenObject;
|
|
return true;
|
|
} else
|
|
{
|
|
plateKitchenObject = null;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
static public KitchenObject SpawnKitchenObject(KitchenObjectSO kitchenObjectSO, IKitchenObjectParent kitchenObjectParent)
|
|
{
|
|
Transform kitchenObjectTransform = Instantiate(kitchenObjectSO.prefab);
|
|
KitchenObject kitchenObject = kitchenObjectTransform.GetComponent<KitchenObject>();
|
|
|
|
kitchenObject.SetKitchenObjectParent(kitchenObjectParent);
|
|
|
|
return kitchenObject;
|
|
}
|
|
|
|
}
|