You've already forked Darklings-FightingGame
mirror of
https://github.com/izzy2lost/Darklings-FightingGame.git
synced 2026-03-10 11:35:19 -07:00
148 lines
6.2 KiB
C#
148 lines
6.2 KiB
C#
using PlayFab.PfEditor.EditorModels;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace PlayFab.PfEditor
|
|
{
|
|
// TODO: Clean up the copy paste between this and TitleDataViewer
|
|
public class TitleInternalDataViewer : UnityEditor.Editor
|
|
{
|
|
public readonly List<KvpItem> items = new List<KvpItem>();
|
|
public static TitleInternalDataEditor tdEditor;
|
|
public Vector2 scrollPos = Vector2.zero;
|
|
private bool showSave = false;
|
|
|
|
// this gets called after the Base draw loop
|
|
public void Draw()
|
|
{
|
|
using (new UnityHorizontal(PlayFabEditorHelper.uiStyle.GetStyle("gpStyleGray1")))
|
|
EditorGUILayout.LabelField("Internal TitleData provides Key-Value storage available only to Admin & Server API sets. This is useful for storing configuration data that should be hidden from players.", PlayFabEditorHelper.uiStyle.GetStyle("genTxt"));
|
|
|
|
using (new UnityHorizontal())
|
|
{
|
|
GUILayout.FlexibleSpace();
|
|
if (GUILayout.Button("REFRESH", PlayFabEditorHelper.uiStyle.GetStyle("Button")))
|
|
{
|
|
RefreshInternalTitleData();
|
|
}
|
|
|
|
if (GUILayout.Button("+", PlayFabEditorHelper.uiStyle.GetStyle("Button"), GUILayout.MaxWidth(25)))
|
|
{
|
|
AddRecord();
|
|
}
|
|
}
|
|
|
|
if (items.Count > 0)
|
|
{
|
|
scrollPos = GUILayout.BeginScrollView(scrollPos, PlayFabEditorHelper.uiStyle.GetStyle("gpStyleGray1"));
|
|
var keyInputBoxWidth = EditorGUIUtility.currentViewWidth > 200 ? 170 : (EditorGUIUtility.currentViewWidth - 100) / 2;
|
|
var valueInputBoxWidth = EditorGUIUtility.currentViewWidth > 200 ? EditorGUIUtility.currentViewWidth - 290 : (EditorGUIUtility.currentViewWidth - 100) / 2;
|
|
|
|
for (var z = 0; z < items.Count; z++)
|
|
{
|
|
items[z].DataEditedCheck();
|
|
if (items[z].isDirty)
|
|
{
|
|
showSave = true;
|
|
}
|
|
|
|
if (items[z].Value != null)
|
|
{
|
|
var keyStyle = items[z].isDirty ? PlayFabEditorHelper.uiStyle.GetStyle("listKey_dirty") : PlayFabEditorHelper.uiStyle.GetStyle("listKey");
|
|
var valStyle = items[z].isDirty ? PlayFabEditorHelper.uiStyle.GetStyle("listValue_dirty") : PlayFabEditorHelper.uiStyle.GetStyle("listValue");
|
|
|
|
using (new UnityHorizontal(PlayFabEditorHelper.uiStyle.GetStyle("gpStyleClear")))
|
|
{
|
|
items[z].Key = EditorGUILayout.TextField(items[z].Key, keyStyle, GUILayout.Width(keyInputBoxWidth));
|
|
|
|
EditorGUILayout.LabelField(":", GUILayout.MaxWidth(10));
|
|
EditorGUILayout.LabelField("" + items[z].Value, valStyle, GUILayout.MaxWidth(valueInputBoxWidth), GUILayout.MaxHeight(25));
|
|
|
|
if (GUILayout.Button("EDIT", PlayFabEditorHelper.uiStyle.GetStyle("Button"), GUILayout.MaxHeight(19), GUILayout.MinWidth(35)))
|
|
{
|
|
if (tdEditor == null)
|
|
{
|
|
tdEditor = EditorWindow.GetWindow<TitleInternalDataEditor>();
|
|
tdEditor.titleContent = new GUIContent("Internal Title Data");
|
|
tdEditor.minSize = new Vector2(300, 400);
|
|
}
|
|
|
|
tdEditor.LoadData(items[z].Key, items[z].Value);
|
|
tdEditor.Show();
|
|
}
|
|
if (GUILayout.Button("X", PlayFabEditorHelper.uiStyle.GetStyle("Button"), GUILayout.MaxHeight(19), GUILayout.MinWidth(20)))
|
|
{
|
|
items[z].isDirty = true;
|
|
items[z].Value = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
GUILayout.EndScrollView();
|
|
|
|
if (showSave)
|
|
{
|
|
using (new UnityHorizontal())
|
|
{
|
|
GUILayout.FlexibleSpace();
|
|
if (GUILayout.Button("SAVE", PlayFabEditorHelper.uiStyle.GetStyle("Button"), GUILayout.MaxWidth(200)))
|
|
{
|
|
SaveRecords();
|
|
}
|
|
GUILayout.FlexibleSpace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void AddRecord()
|
|
{
|
|
items.Add(new KvpItem("", "NewValue") { isDirty = true });
|
|
}
|
|
|
|
public void RefreshInternalTitleData()
|
|
{
|
|
Action<PlayFab.PfEditor.EditorModels.GetTitleDataResult> cb = (result) =>
|
|
{
|
|
items.Clear();
|
|
showSave = false;
|
|
foreach (var kvp in result.Data)
|
|
{
|
|
items.Add(new KvpItem(kvp.Key, kvp.Value));
|
|
}
|
|
|
|
PlayFabEditorPrefsSO.Instance.InternalTitleDataCache.Clear();
|
|
foreach (var pair in result.Data)
|
|
PlayFabEditorPrefsSO.Instance.InternalTitleDataCache.Add(pair.Key, pair.Value);
|
|
PlayFabEditorDataService.SaveEnvDetails();
|
|
};
|
|
|
|
PlayFabEditorApi.GetTitleInternalData(cb, PlayFabEditorHelper.SharedErrorCallback);
|
|
}
|
|
|
|
public void SaveRecords()
|
|
{
|
|
//reset dirty status.
|
|
showSave = false;
|
|
Dictionary<string, string> dirtyItems = new Dictionary<string, string>();
|
|
foreach (var item in items)
|
|
if (item.isDirty)
|
|
dirtyItems.Add(item.Key, item.Value);
|
|
|
|
if (dirtyItems.Count > 0)
|
|
{
|
|
PlayFabEditorApi.SetTitleInternalData(dirtyItems, (result) =>
|
|
{
|
|
foreach (var item in items)
|
|
{
|
|
item.CleanItem();
|
|
}
|
|
}, PlayFabEditorHelper.SharedErrorCallback);
|
|
}
|
|
}
|
|
}
|
|
}
|