using System; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; namespace Cielonos.MainGame.Inventory { public partial class ItemViewObject : SerializedMonoBehaviour { public Dictionary functionalParts; public GameObject Part(string partName) { if (functionalParts.TryGetValue(partName, out GameObject part)) { return part; } throw new Exception($"Part {partName} not found in ItemViewObject."); } public void Enable() { gameObject.SetActive(true); } public void Disable() { gameObject.SetActive(false); } } public partial class ItemViewObject { private bool FindAndAssignPart(string partName) { GameObject part = GameObject.Find(partName); if (part != null) { functionalParts[partName] = part; return true; } return false; } private void Reset() { functionalParts ??= new Dictionary(); FindAndAssignPart("GrabPoint"); FindAndAssignPart("Muzzle"); FindAndAssignPart("AimingPoint"); if (!FindAndAssignPart("AudioPoint")) { functionalParts["AudioPoint"] = gameObject; } } } }