Files
Cielonos/Assets/Scripts/MainGame/Items/Base/ItemViewObject.cs
SoulliesOfficial ef7b479712 initial
2025-11-25 08:19:33 -05:00

62 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Cielonos.MainGame.Inventory
{
public partial class ItemViewObject : SerializedMonoBehaviour
{
public GameObject item;
public Dictionary<string, GameObject> 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<string, GameObject>();
FindAndAssignPart("GrabPoint");
FindAndAssignPart("Muzzle");
FindAndAssignPart("AimingPoint");
if (!FindAndAssignPart("AudioPoint"))
{
functionalParts["AudioPoint"] = gameObject;
}
}
}
}