projectEli/Assets/Inventory System/Scripts/Inventory/DisplayMessageSystem.cs

92 lines
2.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
namespace SimpleInventorySystem
{
public class DisplayMessageSystem : MonoBehaviour
{
public static DisplayMessageSystem instance;
public DisplayMessage[] displayMessages;
protected InventorySystem.States currentState;
[HideInInspector] public string NameOfItemInWorldWithFocus;
private void Awake()
{
instance = this;
}
// Start is called before the first frame update
void Start()
{
foreach (DisplayMessage displayMessage in displayMessages)
{
TextMeshProUGUI message = displayMessage.message;
if (displayMessage != null && message != null)
{
string text = message.text;
if (text.Contains("{key:interactKey}"))
message.text = message.text.Replace("{key:interactKey}", "[ " + InventorySystem.instance.interactKey.ToString() + " ]");
}
displayMessage.SetOriginalMessage();
}
}
// Update is called once per frame
void Update()
{
if(currentState != InventorySystem.instance.CurrentState)
{
currentState = InventorySystem.instance.CurrentState;
foreach (DisplayMessage displayMessage in displayMessages)
{
if (currentState == InventorySystem.States.Undefined)
{
displayMessage.message.gameObject.SetActive(false);
}
else if (currentState == displayMessage.displayState)
{
displayMessage.message.gameObject.SetActive(true);
}
else
{
displayMessage.message.gameObject.SetActive(false);
}
}
}
//if(NameOfItemInWorldWithFocus != )
foreach (DisplayMessage displayMessage in displayMessages)
{
TextMeshProUGUI message = displayMessage.message;
if (displayMessage != null && message != null && displayMessage.originalMessage.Contains("{item:name}"))
{
message.text = displayMessage.originalMessage.Replace("{item:name}", NameOfItemInWorldWithFocus);
}
}
}
}
[Serializable]
public class DisplayMessage
{
public TextMeshProUGUI message;
public InventorySystem.States displayState;
[HideInInspector] public string originalMessage;
public DisplayMessage()
{
}
public void SetOriginalMessage()
{
originalMessage = message.text;
}
}
}