107 lines
3.4 KiB
C#
107 lines
3.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using XFramework;
|
|
|
|
public class SubjectEditorBase : BasePanel
|
|
{
|
|
public Dropdown dropdown_Terrain;
|
|
public Text subName;
|
|
public Image image_Map;
|
|
public Button button_Save;
|
|
public Button button_finish;
|
|
|
|
public InputField input_TaskIntr;
|
|
public InputField input_FileIntr;
|
|
|
|
private string subNameKey;
|
|
|
|
public SubjectEditorBase(string panelName) : base(new UIType(panelName))
|
|
{
|
|
}
|
|
|
|
protected override void InitEvent()
|
|
{
|
|
dropdown_Terrain = ActivePanel.FindChildTrans("Dropdown_terrain").GetComponent<Dropdown>();
|
|
subName = ActivePanel.FindChildTrans("Text_subName").GetComponent<Text>();
|
|
image_Map = ActivePanel.FindChildTrans("Image_map").GetComponent<Image>();
|
|
button_Save = ActivePanel.Find("Button_save").GetComponent<Button>();
|
|
button_finish = ActivePanel.Find("Button_finish").GetComponent<Button>();
|
|
input_TaskIntr = ActivePanel.Find("InputField_renwujianjie").GetComponent<InputField>();
|
|
input_FileIntr = ActivePanel.Find("InputField_renwujianjie (1)").GetComponent<InputField>();
|
|
|
|
string[] terrainNames = DBManager.Instance.GetABNames(ABType.地形);
|
|
dropdown_Terrain.options.Clear();
|
|
for (int i = 0; i < terrainNames.Length; i++)
|
|
{
|
|
dropdown_Terrain.options.Add(new Dropdown.OptionData(terrainNames[i]));
|
|
}
|
|
dropdown_Terrain.value = 0;
|
|
TerrainChange(0);
|
|
dropdown_Terrain.onValueChanged.AddListener(TerrainChange);
|
|
button_Save?.onClick.AddListener(SaveFile);
|
|
button_finish?.onClick.AddListener(FinishEditor);
|
|
|
|
LocalizationManager.LanguageChanged += OnLanguageChanged;
|
|
}
|
|
|
|
private void OnLanguageChanged()
|
|
{
|
|
if (subName != null && !string.IsNullOrEmpty(subNameKey))
|
|
subName.text = LocalizationManager.Get(subNameKey);
|
|
// Refresh dropdown options with localized terrain names
|
|
if (dropdown_Terrain != null)
|
|
{
|
|
string[] terrainNames = DBManager.Instance.GetABNames(ABType.地形);
|
|
for (int i = 0; i < terrainNames.Length && i < dropdown_Terrain.options.Count; i++)
|
|
{
|
|
dropdown_Terrain.options[i].text = LocalizationManager.Get(terrainNames[i]);
|
|
}
|
|
dropdown_Terrain.RefreshShownValue();
|
|
}
|
|
}
|
|
|
|
|
|
void ShowTerrainMap(Sprite texture)
|
|
{
|
|
image_Map.sprite = texture;
|
|
image_Map.SetNativeSize();
|
|
image_Map.GetComponent<MyDragMap>()?.InitSize();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 结束编辑
|
|
/// </summary>
|
|
protected void FinishEditor()
|
|
{
|
|
Pop();
|
|
}
|
|
|
|
public void SetSubName(string subNameStr)
|
|
{
|
|
subNameKey = subNameStr;
|
|
subName.text = LocalizationManager.Get(subNameStr);
|
|
}
|
|
|
|
async void TerrainChange(int terrainIndex)
|
|
{
|
|
Sprite sprite = await OutSpriteLoader.LoadSprite(StreamingAssetsManager.GetPath($"{dropdown_Terrain.options[terrainIndex].text}_Map"));
|
|
ShowTerrainMap(sprite);
|
|
}
|
|
|
|
public virtual void SaveFile()
|
|
{
|
|
|
|
}
|
|
|
|
public override void OnDestroy(bool isDestroy = false)
|
|
{
|
|
base.OnDestroy(isDestroy);
|
|
LocalizationManager.LanguageChanged -= OnLanguageChanged;
|
|
input_TaskIntr.text = "";
|
|
input_FileIntr.text = "";
|
|
}
|
|
}
|