techage.add_to_manual('RU', { "1,Дополнения к TA4", "2,Сенсорный экран", "3,Поддерживаемые элементы и их свойства", "3,Пример", "2,Матричный экран", }, { "В настоящее время доступны следующие расширения для TA4:\n".. "\n".. " - Сенсорный экран\n".. "\n", "\n".. "\n".. "Сенсорный экран может использоваться как обычный дисплей TA4.\n".. "Кроме того\\, он поддерживает следующие команды\\, которые позволяют создавать форму\\, открываемую щелчком правой кнопкой мыши по сенсорному экрану:\n".. "\n".. " - add_content: Пытается добавить элемент в форму сенсорного экрана. Принимает определение элемента в качестве полезной нагрузки. При успешном выполнении возвращает ID только что созданного элемента.\n".. " - update_content: Пытается изменить уже существующий элемент формы сенсорного экрана. Принимает определение элемента с дополнительным полем id\\, которое можно использовать для выбора элемента\\, который нужно обновить. При успешном выполнении возвращает true.\n".. " - remove_content: Пытается удалить существующий элемент из формы сенсорного экрана. Принимает хранилище в качестве полезной нагрузки. Единственным полем в этом хранилище должно быть поле id. При успешном выполнении возвращает true.\n".. " - private: Делает сенсорный экран частным. Форму могут отправлять только игроки с доступом к защите.\n".. " - public: Делает сенсорный экран общедоступным. Все игроки могут отправлять форму.\n".. "\n".. "Определение элемента представляет собой структуру данных хранилища. Вы можете установить тип элемента в поле \"type\" этого хранилища.\n".. "Вы можете устанавливать свойства элемента в качестве дополнительных полей в этом хранилище.\n".. "Всегда предоставляются более или менее разумные значения по умолчанию для этих дополнительных свойств\\,\n".. "но настоятельно рекомендуется всегда предоставлять значения самостоятельно\\, поскольку значения по умолчанию не задокументированы и могут измениться.\n".. "\n".. "При отправке формы в контроллер возвращается хранилище в качестве сообщения.\n".. "Поля\\, доступные в обратных вызовах Minetest on_receive_fields\\, устанавливаются в этом хранилище.\n".. "Поле \"_sent_by\" содержит имя отправителя.\n".. "Вы можете получить доступ к этому хранилищу\\, используя функцию $get_msg(true) контроллера Lua.\n".. "Пожалуйста\\, не забудьте о \"true\" в качестве первого параметра\\; в противном случае вы получите доступ только к строковому представлению сообщения.\n".. "\n".. "Форма отображается с использованием формы версии 3 (включены реальные координаты)\\, поэтому используйте последнюю версию клиента Minetest.\n".. "\n".. "Когда кто-то открывает сенсорный экран\\, сообщение будет отправлено контроллеру.\n".. "Это сообщение содержит хранилище\\, в котором поле \"_touchscreen_opened_by\" устанавливается в соответствующее имя игрока.\n".. "\n", "\n".. "\n".. "Обратите внимание: Этот список может быть изменен.\n".. "\n".. "button: x\\, y\\, w\\, h\\, name\\, label\n".. "label: x\\, y\\, label\n".. "image: x\\, y\\, w\\, h\\, texture_name\n".. "animated_image: x\\, y\\, w\\, h\\, name\\, texture_name\\, frame_count\\, frame_duration\\, frame_start\n".. "item_image: x\\, y\\, w\\, h\\, item_name\n".. "pwdfield: x\\, y\\, w\\, h\\, name\\, label\n".. "field: x\\, y\\, w\\, h\\, name\\, label\\, default\n".. "field_close_on_enter: name\\, close_on_enter\n".. "textarea: x\\, y\\, w\\, h\\, name\\, label\\, default\n".. "image_button: x\\, y\\, w\\, h\\, texture_name\\, name\\, label\n".. "item_image_button: x\\, y\\, w\\, h\\, item_name\\, name\\, label\n".. "button_exit: x\\, y\\, w\\, h\\, name\\, label\n".. "image_button_exit: x\\, y\\, w\\, h\\, texture_name\\, name\\, label\n".. "box: x\\, y\\, w\\, h\\, color\n".. "checkbox: x\\, y\\, name\\, label\\, selected\n".. "\n".. "Для получения дополнительной информации о значении этих элементов рекомендуется обратиться к файлу lua_api.txt в документации Minetest.\n".. "\n", "\n".. "\n".. "*Init:*\n".. "\n".. " $events(true)\n$loopcycle(0)\n\nTOUCHSCREEN_NUM = 338\n\ncounter = 1\n\n$send_cmnd(TOUCHSCREEN_NUM\\, \"remove_content\")\n\nres = $send_cmnd(TOUCHSCREEN_NUM\\, \"add_content\"\\, Store(\"type\"\\, \"button\"\\, \"w\"\\, 5\\, \"label\"\\, counter))\nres2 = $send_cmnd(TOUCHSCREEN_NUM\\, \"add_content\"\\, Store(\"type\"\\, \"button\"\\, \"w\"\\, 5\\, \"y\"\\, 2\\, \"label\"\\, counter))\n\n$print(\"ID: \"..res)\n".. "\n".. "*Loop:*\n".. "\n".. " local num\\,msg = $get_msg(true)\n\nif num == tostring(TOUCHSCREEN_NUM) and msg.next then\n for k\\,v in msg.next() do\n if k == \"button\" then\n counter = counter + 1\n $print(res)\n $send_cmnd(TOUCHSCREEN_NUM\\, \"update_content\"\\, Store(\"type\"\\, \"button\"\\, \"w\"\\, \"5\"\\, \"label\"\\, counter\\, \"id\"\\, res))\n if counter > 10 then\n $send_cmnd(TOUCHSCREEN_NUM\\, \"remove_content\"\\, Store(\"id\"\\, res2))\n else\n $send_cmnd(TOUCHSCREEN_NUM\\, \"update_content\"\\, Store(\"type\"\\, \"button\"\\, \"w\"\\, \"5\"\\, \"y\"\\, 2\\, \"label\"\\, counter\\, \"id\"\\, res2))\n end\n end\n $print(k..\": \"..v)\n $display(TOUCHSCREEN_NUM\\, 0\\, k)\n $display(TOUCHSCREEN_NUM\\, 0\\, v)\n end\nend\n".. "\n", "\n".. "\n".. "Экран Matrix имеет разрешение 16x16 пикселей.\n".. "Доступны различные палитры с 64 цветами каждая.\n".. "\n".. "Для программирования экрана вы можете отправить строку\\, закодированную в формате base64\\, в качестве данных для команды \"pixels\".\n".. "Эта строка должна содержать 256 символов. Каждый символ соответствует одному пикселю\\, построчно от верхнего левого угла до нижнего правого угла.\n".. "\n".. "Рекомендуется использовать программу TA4 Matrix Screen Programmer для удобного создания таких строк.\n".. "\n".. "Палитру цветов можно изменить с помощью команды \"palette\".\n".. "\n", }, { "", "ta4_addons_touchscreen", "ta4_addons_touchscreen", "ta4_addons_touchscreen", "ta4_addons_matrix_screen", }, { "", "", "", "", "", })