HeavenStudioPlus/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs

61 lines
1.8 KiB
C#
Raw Normal View History

2022-02-03 22:20:26 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
2022-08-19 01:28:05 +00:00
using System.Linq;
2022-02-03 22:20:26 +00:00
using TMPro;
2022-02-03 22:20:26 +00:00
2022-03-14 14:21:05 +00:00
using HeavenStudio.Util;
using Jukebox;
2022-02-04 22:16:22 +00:00
2022-03-14 14:21:05 +00:00
namespace HeavenStudio.Editor
2022-02-03 22:20:26 +00:00
{
public class EventPropertyPrefab : MonoBehaviour
{
public TMP_Text caption;
protected string _captionText;
public EventParameterManager parameterManager;
public string propertyName;
public List<PropertyCollapse> propertyCollapses = new List<PropertyCollapse>();
2022-02-04 22:16:22 +00:00
public void SetProperties(string propertyName, object type, string caption) {}
public virtual void SetCollapses(object type) { }
2022-02-03 22:20:26 +00:00
public void InitProperties(string propertyName, string caption)
2022-02-03 22:20:26 +00:00
{
this.parameterManager = EventParameterManager.instance;
2022-02-03 22:20:26 +00:00
this.propertyName = propertyName;
_captionText = caption;
this.caption.text = _captionText;
2022-02-03 22:20:26 +00:00
}
public void UpdateCollapse(object type)
{
foreach (var p in propertyCollapses)
{
foreach (var c in p.collapseables)
{
if (c != null) c.SetActive(p.collapseOn(type, p.entity) && gameObject.activeSelf);
}
}
}
public class PropertyCollapse
{
public List<GameObject> collapseables;
public Func<object, RiqEntity, bool> collapseOn;
public RiqEntity entity;
public PropertyCollapse(List<GameObject> collapseables, Func<object, RiqEntity, bool> collapseOn, RiqEntity entity)
{
this.collapseables = collapseables;
this.collapseOn = collapseOn;
this.entity = entity;
}
}
2022-02-03 22:20:26 +00:00
}
}