forked from Shardstone/trail-into-darkness
34 lines
1.3 KiB
C#
34 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using static AYellowpaper.SerializedCollections.Editor.SerializedDictionaryDrawer;
|
|
|
|
namespace AYellowpaper.SerializedCollections.Editor.States
|
|
{
|
|
internal abstract class ListState
|
|
{
|
|
public abstract int ListSize { get; }
|
|
public virtual string NoElementsText => "List is Empty.";
|
|
|
|
public readonly SerializedDictionaryInstanceDrawer Drawer;
|
|
|
|
public ListState(SerializedDictionaryInstanceDrawer serializedDictionaryDrawer)
|
|
{
|
|
Drawer = serializedDictionaryDrawer;
|
|
}
|
|
|
|
public abstract SerializedProperty GetPropertyAtIndex(int index);
|
|
public abstract ListState OnUpdate();
|
|
public abstract void OnEnter();
|
|
public abstract void OnExit();
|
|
public abstract void DrawElement(Rect rect, SerializedProperty property, DisplayType displayType);
|
|
public abstract void RemoveElementAt(int index);
|
|
public abstract void InserElementAt(int index);
|
|
|
|
public virtual float GetHeightAtIndex(int index, bool drawKeyAsList, bool drawValueAsList)
|
|
{
|
|
return SerializedDictionaryInstanceDrawer.CalculateHeightOfElement(GetPropertyAtIndex(index), drawKeyAsList, drawValueAsList);
|
|
}
|
|
}
|
|
} |