using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;

public class Object : MonoBehaviour {
    [SerializeField] private ObjectSO _objectSo;

    private IObjectParentHolder _objectParent;
    
    public ObjectSO ObjectSo {
        get => _objectSo;
        set => _objectSo = value;
    }
    
    public IObjectParentHolder getObjectParent() {
        return _objectParent; 
    }

    public void setObjectParent(IObjectParentHolder objectParent) {
        if (this._objectParent != null) {
            this._objectParent.ClearObject();
        }

        this._objectParent = objectParent;
        if (objectParent.HasObject()) {
            Debug.LogError("Parent has already something on it?");
        }
        objectParent.SetObject(this);


        transform.parent = _objectParent.GetHolderTransform();
        transform.localPosition = Vector3.zero;
    }
}