Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard.Dialog.Setting/ItemSelect.cs
gamer147 957af3d1ec feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)
Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
2026-06-05 17:22:20 -04:00

306 lines
8.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Wizard.Dialog.Setting;
public class ItemSelect : Item
{
[SerializeField]
private UILabel _title;
[SerializeField]
private GameObject _state;
[SerializeField]
private GameObject _separatorLineObj;
[SerializeField]
private UIButton _button;
[SerializeField]
private GameObject _list;
[SerializeField]
private UITable _table;
[SerializeField]
private BoxCollider _listCollider;
private EventDelegate.Callback _onClick;
[SerializeField]
private GameObject _resolutionItem;
[SerializeField]
private UIPanel _panel;
private string _currentValue;
private const int BOTTOM_PADDING = -10;
private const int NORMAL_ITEM_SIZE = 188;
private Color _originalColor;
private const int PANEL_DEPTH_CLOSE = 30;
private const int PANEL_DEPTH_OPEN = 50;
private UIScrollView _parentScrollView;
private List<string> _possibleValues;
private List<GameObject> _items;
private const int DIRECTION_UP_TABLE_POSITION = 14;
private const int DIRECTION_UP_LIST_POSITION = 12;
public bool _isOpenDirectionUp;
public List<string> PossibleValues => _possibleValues;
private void Awake()
{
_button.onClick.Add(new EventDelegate(delegate
{
if (_list.activeSelf)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_CANCEL);
}
else
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
}
SetListVisible(!_list.activeSelf);
}));
UIEventListener.Get(_listCollider.gameObject).onPress = delegate
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_CANCEL);
SetListVisible(b: false);
};
}
public void SetPossibleResolutionValues(List<string> possibleValues, bool resizeListSprite)
{
for (int i = 0; i < possibleValues.Count; i++)
{
GameObject o = NGUITools.AddChild(_table.gameObject, _resolutionItem);
string str = possibleValues[i];
string[] array = str.Split('×');
o.transform.Find("width").gameObject.GetComponent<UILabel>().text = array[0];
o.transform.Find("height").gameObject.GetComponent<UILabel>().text = array[1];
o.SetActive(value: true);
if ((bool)_parentScrollView)
{
o.AddMissingComponent<UIDragScrollView>().scrollView = _parentScrollView;
}
if (resizeListSprite && i == possibleValues.Count - 1)
{
UISprite component = _list.GetComponent<UISprite>();
component.bottomAnchor.target = o.transform;
component.bottomAnchor.relative = 0f;
component.bottomAnchor.absolute = -10;
}
_originalColor = o.GetComponentInChildren<UISprite>().color;
UIEventListener.Get(o).onHover = delegate(GameObject g, bool b)
{
o.GetComponentInChildren<UISprite>().enabled = b;
};
UIEventListener.Get(o).onClick = delegate
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_TOGGLE_ON);
o.GetComponentInChildren<UISprite>().enabled = false;
SetListVisible(b: false);
SetResolutionValue(str);
if (_onClick != null)
{
_onClick();
}
};
}
}
public void SetPossibleIdValues(List<string> possibleValues, bool resizeListSprite)
{
SetPossibleValues(possibleValues, resizeListSprite, (string s) => Data.SystemText.Get(s));
}
public void SetPossibleValues(List<string> possibleValues, bool resizeListSprite, Func<string, string> textChange = null)
{
if (_possibleValues != null)
{
_possibleValues.Clear();
}
else
{
_possibleValues = new List<string>();
}
if (_items != null)
{
foreach (GameObject item in _items)
{
UnityEngine.Object.Destroy(item);
}
_items.Clear();
}
else
{
_items = new List<GameObject>();
}
List<string> list = new List<string>(possibleValues);
if (_isOpenDirectionUp)
{
list.Reverse();
}
for (int i = 0; i < list.Count; i++)
{
if (string.IsNullOrEmpty(list[i]))
{
continue;
}
GameObject o = NGUITools.AddChild(_table.gameObject, _resolutionItem);
_items.Add(o);
string str = list[i];
if (textChange != null)
{
str = textChange(str);
}
_possibleValues.Add(str);
o.transform.Find("width").gameObject.SetActive(value: false);
o.transform.Find("height").gameObject.SetActive(value: false);
UILabel component = o.transform.Find("center").gameObject.GetComponent<UILabel>();
component.width = 188;
component.text = str;
o.SetActive(value: true);
if ((bool)_parentScrollView)
{
o.AddMissingComponent<UIDragScrollView>().scrollView = _parentScrollView;
}
_originalColor = o.GetComponentInChildren<UISprite>().color;
UIEventListener.Get(o).onHover = delegate(GameObject g, bool b)
{
o.GetComponentInChildren<UISprite>().enabled = b;
};
UIEventListener.Get(o).onClick = delegate
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_TOGGLE_ON);
o.GetComponentInChildren<UISprite>().enabled = false;
SetListVisible(b: false);
SetValue(str);
if (_onClick != null)
{
_onClick();
}
};
}
if (_isOpenDirectionUp)
{
_possibleValues.Reverse();
}
if (resizeListSprite && _items.Count > 0)
{
GameObject gameObject = _items[_items.Count - 1];
UISprite component2 = _list.GetComponent<UISprite>();
if (_isOpenDirectionUp)
{
component2.topAnchor.target = gameObject.transform;
component2.topAnchor.relative = 1f;
component2.topAnchor.absolute = 10;
}
else
{
component2.bottomAnchor.target = gameObject.transform;
component2.bottomAnchor.relative = 0f;
component2.bottomAnchor.absolute = -10;
}
}
if (_isOpenDirectionUp)
{
_table.GetComponent<UIWidget>().pivot = UIWidget.Pivot.BottomLeft;
Vector3 localPosition = _table.transform.localPosition;
localPosition.y = 14f;
_table.transform.localPosition = localPosition;
_table.direction = UITable.Direction.Up;
_list.GetComponent<UIWidget>().pivot = UIWidget.Pivot.Bottom;
Vector3 localPosition2 = _list.transform.localPosition;
localPosition2.y = 12f;
_list.transform.localPosition = localPosition2;
}
_table.repositionNow = true;
_list.GetComponent<UISprite>().ResetAndUpdateAnchors();
}
private void SetListVisible(bool b)
{
_list.SetActive(b);
_listCollider.enabled = b;
_panel.depth = (b ? 50 : 30);
UISprite component = _list.GetComponent<UISprite>();
component.ResetAndUpdateAnchors();
component.gameObject.SetActive(b);
}
public void SetResolutionValue(string value)
{
_currentValue = value;
string[] array = value.Split('×');
_state.transform.Find("width").gameObject.GetComponent<UILabel>().text = array[0];
_state.transform.Find("height").gameObject.GetComponent<UILabel>().text = array[1];
}
public void SetValue(string value)
{
_currentValue = value;
_state.transform.Find("width").gameObject.SetActive(value: false);
_state.transform.Find("height").gameObject.SetActive(value: false);
UILabel component = _state.transform.Find("center").gameObject.GetComponent<UILabel>();
component.width = 188;
component.text = value;
}
public string GetValue()
{
return _currentValue;
}
public void SetTitleLabel(string title)
{
_title.text = title;
}
public override void AddChangeCallback(EventDelegate.Callback callback)
{
_onClick = (EventDelegate.Callback)Delegate.Combine(_onClick, callback);
}
public override void SetActive_SeparatorLine(bool isActive)
{
_separatorLineObj.SetActive(isActive);
}
public void SetTitleTextLocalPos(Vector3 localPos)
{
_title.transform.localPosition = localPos;
}
public void SetToGrey(bool b)
{
UIManager.SetObjectToGrey(base.gameObject, b);
UIManager.SetObjectToGrey(_separatorLineObj, b: false);
UISprite[] componentsInChildren = _table.GetComponentsInChildren<UISprite>(includeInactive: true);
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].color = _originalColor;
}
}
public void SetScrollView(UIScrollView view)
{
_listCollider.gameObject.AddMissingComponent<UIDragScrollView>().scrollView = view;
_parentScrollView = view;
_button.gameObject.AddMissingComponent<UIDragScrollView>().scrollView = view;
}
}