Files
Cielonos/Assets/Scripts/MainGame/Items/Base/ItemViewObject.cs

64 lines
1.6 KiB
C#
Raw Normal View History

2025-11-25 08:19:33 -05:00
using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
2026-02-13 09:22:11 -05:00
using SLSUtilities.AllInOneAssistance;
2025-11-25 08:19:33 -05:00
using UnityEngine;
2026-05-23 08:27:50 -04:00
namespace Cielonos.MainGame.Inventory
2025-11-25 08:19:33 -05:00
{
2026-01-12 03:22:16 -05:00
public partial class ItemViewObject : General3DObject
2025-11-25 08:19:33 -05:00
{
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;
}
2026-01-12 03:22:16 -05:00
protected override void Reset()
2025-11-25 08:19:33 -05:00
{
2026-01-12 03:22:16 -05:00
base.Reset();
2025-11-25 08:19:33 -05:00
functionalParts ??= new Dictionary<string, GameObject>();
FindAndAssignPart("GrabPoint");
FindAndAssignPart("Muzzle");
FindAndAssignPart("AimingPoint");
if (!FindAndAssignPart("AudioPoint"))
{
functionalParts["AudioPoint"] = gameObject;
}
}
}
}