using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; using UnityEngine; public class Object : MonoBehaviour { [SerializeField] private ObjectSO _objectSo; [SerializeField] private Renderer _renderer; private IObjectParentHolder _objectParent; private float _paidPrice; private bool _isBroken; public ObjectSO ObjectSo { get => _objectSo; set => _objectSo = value; } public float PaidPrice { get => _paidPrice; set => _paidPrice = value; } //When its broken it should be a diff color public bool IsBroken { get => _isBroken; set { _isBroken = value; GetComponent().SetBroken(value); } } private void SetBroken(bool value) { //Set to red if broken if (value) { _renderer.material.color = Color.red; } else { _renderer.material.color = Color.white; } } 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?"); Debug.Break(); } objectParent.SetObject(this); transform.parent = _objectParent.GetHolderTransform(); transform.localPosition = Vector3.zero; } }