Add items, Pickup logic works
This commit is contained in:
72
Assets/SellingPedestal/EmptyCounter.cs
Normal file
72
Assets/SellingPedestal/EmptyCounter.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class EmptyCounter : MonoBehaviour, IObjectParentHolder {
|
||||
|
||||
[SerializeField] private ObjectSO _objectSo;
|
||||
[SerializeField] private Transform _counterObjectHandle;
|
||||
|
||||
[SerializeField] private bool _shouldSpawnOnInteract;
|
||||
|
||||
private Object _currentObject;
|
||||
|
||||
public void Interact() {
|
||||
InteractionBehaviour interactionBehaviour = PlayerController.Instance.InteractionBehaviour;
|
||||
if (_shouldSpawnOnInteract) {
|
||||
if (_currentObject == null) {
|
||||
Transform objectTransform = Instantiate(_objectSo.prefab, _counterObjectHandle);
|
||||
objectTransform.GetComponent<Object>().setObjectParent(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!HasObject()) {
|
||||
//No item on the counter
|
||||
//Check player if he has something
|
||||
if (interactionBehaviour.HasObject()) {
|
||||
Object obj = interactionBehaviour.GetObject();
|
||||
obj.setObjectParent(this);
|
||||
}
|
||||
else {
|
||||
//Player has no item
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
//Item on Counter
|
||||
//Check player if he has something
|
||||
if (interactionBehaviour.HasObject()) {
|
||||
//Player has something
|
||||
}
|
||||
else {
|
||||
//Player has nothing
|
||||
//Take the object
|
||||
GetObject().setObjectParent(interactionBehaviour);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Transform GetHolderTransform() {
|
||||
return _counterObjectHandle;
|
||||
}
|
||||
|
||||
public void SetObject(Object obj) {
|
||||
this._currentObject = obj;
|
||||
}
|
||||
|
||||
public Object GetObject() {
|
||||
return this._currentObject;
|
||||
}
|
||||
|
||||
public void ClearObject() {
|
||||
this._currentObject = null;
|
||||
}
|
||||
|
||||
public bool HasObject() {
|
||||
return this._currentObject != null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user