8 public DynamicArray<byte>
Data = [];
16 public List<ClickTextWidget>
list = [];
17 public const string fName =
"EditMemoryBankDialogAPI";
52 public byte Read(
int address) => address >= 0 && address < Data.Count ?
Data.Array[address] : (byte)0;
54 public void Write(
int address,
byte data) {
56 && address <
Data.Count) {
57 Data.Array[address] = data;
62 Data.Count = Math.Max(
Data.Count, address + 1);
63 Data.Array[address] = data;
68 string[] array = data.Split(
';', StringSplitOptions.RemoveEmptyEntries);
69 if (array.Length >= 1) {
70 string text = array[0];
71 text = text.TrimEnd(
'0');
73 for (
int i = 0; i < Math.Min(text.Length, 256); i++) {
81 if (array.Length >= 2) {
82 string text2 = array[1];
94 StringBuilder stringBuilder =
new();
96 for (
int j = 0; j < num; j++) {
97 int index = Math.Clamp((
int)
Data.Array[j], 0, 15);
100 if (saveLastOutput) {
101 stringBuilder.Append(
';');
104 return stringBuilder.ToString();
114 for (
int i = 0; i < 17; i++) {
116 for (
int j = 0; j < 17; j++) {
117 int addr = (i - 1) * 16 + (j - 1);
122 $
"{MemoryBankData.m_hexChars[Read(addr)]}",
129 list.Add(clickTextWidget);
159 clickText.labelWidget.FontScale = txt.Length > 1 ? 0.7f : 1f;
185 for (
int i = 0; i < 6; i++) {
187 for (
int j = 0; j < 3; j++) {
193 $
"{MemoryBankData.m_hexChars[pp]}",
229 $
"{MemoryBankData.m_hexChars[0]}",
267 AudioManager.PlaySound(
"Audio/UI/ButtonClick", 1f, 0f, 0f);
268 for (int ai = 0; ai < Data.Count; ai++) {
281 AudioManager.PlaySound(
"Audio/UI/ButtonClick", 1f, 0f, 0f);
282 DynamicArray<byte> tmp = new();
285 for (int c = 0; c < 16; c++) {
286 for (int d = 0; d < 16; d++) {
287 Write(c + d * 16, tmp[c * 16 + d]);
299 LabelWidget labelWidget =
new() {
301 Text = LanguageControl.GetContentWidgets(fName, 3),
304 Color = Color.DarkGray
306 stack.Children.Add(labelWidget);
310 LoadString(textBoxWidget.Text);
320 for (int i = 0; i < Data.Count; i++) {
321 memory.Write(i, Data[i]);
331 LanguageControl.GetContentWidgets(fName, 5),
333 AudioManager.PlaySound(
"Audio/UI/ButtonClick", 1f, 0f, 0f);
334 DialogsManager.HideDialog(this);
353 textBox.FontScale = 0.7f;
355 textBox.TextChanged += ac;
364 clickTextWidget.labelWidget.FontScale = 0.7f;
365 clickTextWidget.labelWidget.Color =
Color.
Green;
366 return clickTextWidget;
381 for (
int i = 0; i <
list.Count; i++) {
388 list[i].labelWidget.Text = $
"{MemoryBankData.m_hexChars[Read(i)]}";
static void PlaySound(string name, float volume, float pitch, float pan)
static object Get(Type type, string name)
static void HideDialog(Dialog dialog)
void Write(int address, byte data)
EditMemoryBankDialogAPI(MemoryBankData memoryBankData, Action onCancel)
void ChangeNumber(char pp)
List< ClickTextWidget > list
StackPanelWidget InitButton()
static Widget MakeButton(string txt, Action tas)
void LoadString(string data)
StackPanelWidget MainView
Widget makeFuncButton(string txt, Action func)
Widget makeTextBox(Action< TextBoxWidget > ac, string text="")
DynamicArray< byte > Data
string SaveString(bool saveLastOutput)
static string GetContentWidgets(string name, string prop)
static List< char > m_hexChars