Merge branch 'main' of https://github.com/26F-Studio/Techmino into VietnameseTranslation
This commit is contained in:
12
.github/build/iOS/love.patch
vendored
12
.github/build/iOS/love.patch
vendored
@@ -8,7 +8,7 @@ index c1932555..552e432e 100644
|
|||||||
**/
|
**/
|
||||||
-void vibrate();
|
-void vibrate();
|
||||||
+void vibrate(const double seconds);
|
+void vibrate(const double seconds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable mix mode (e.g. with background music apps) and playback with a muted device.
|
* Enable mix mode (e.g. with background music apps) and playback with a muted device.
|
||||||
diff --git a/src/common/ios.mm b/src/common/ios.mm
|
diff --git a/src/common/ios.mm b/src/common/ios.mm
|
||||||
@@ -18,16 +18,16 @@ index 7730991e..4ba8e708 100644
|
|||||||
@@ -36,6 +36,8 @@
|
@@ -36,6 +36,8 @@
|
||||||
#include <SDL_video.h>
|
#include <SDL_video.h>
|
||||||
#include <SDL_syswm.h>
|
#include <SDL_syswm.h>
|
||||||
|
|
||||||
+#include <sys/utsname.h>
|
+#include <sys/utsname.h>
|
||||||
+
|
+
|
||||||
static NSArray *getLovesInDocuments();
|
static NSArray *getLovesInDocuments();
|
||||||
static bool deleteFileInDocuments(NSString *filename);
|
static bool deleteFileInDocuments(NSString *filename);
|
||||||
|
|
||||||
@@ -391,10 +393,40 @@ std::string getExecutablePath()
|
@@ -391,10 +393,40 @@ std::string getExecutablePath()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-void vibrate()
|
-void vibrate()
|
||||||
+void vibrate(const double seconds)
|
+void vibrate(const double seconds)
|
||||||
{
|
{
|
||||||
@@ -73,7 +73,7 @@ index c8af8596..ae7a5e32 100644
|
|||||||
@@ -140,6 +140,10 @@ enum DoneAction
|
@@ -140,6 +140,10 @@ enum DoneAction
|
||||||
DONE_RESTART,
|
DONE_RESTART,
|
||||||
};
|
};
|
||||||
|
|
||||||
+extern "C" {
|
+extern "C" {
|
||||||
+ int luaopen_CCloader(lua_State *L);
|
+ int luaopen_CCloader(lua_State *L);
|
||||||
+}
|
+}
|
||||||
@@ -84,7 +84,7 @@ index c8af8596..ae7a5e32 100644
|
|||||||
@@ -158,6 +162,9 @@ static DoneAction runlove(int argc, char **argv, int &retval)
|
@@ -158,6 +162,9 @@ static DoneAction runlove(int argc, char **argv, int &retval)
|
||||||
lua_State *L = luaL_newstate();
|
lua_State *L = luaL_newstate();
|
||||||
luaL_openlibs(L);
|
luaL_openlibs(L);
|
||||||
|
|
||||||
+ // Init CCloader
|
+ // Init CCloader
|
||||||
+ luaopen_CCloader(L);
|
+ luaopen_CCloader(L);
|
||||||
+
|
+
|
||||||
|
|||||||
1
.github/build/web/game.js
vendored
1
.github/build/web/game.js
vendored
@@ -90,7 +90,6 @@ Module.expectedDataFileDownloads++;
|
|||||||
function assert(check, msg) {
|
function assert(check, msg) {
|
||||||
if (!check) throw msg + new Error().stack;
|
if (!check) throw msg + new Error().stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function DataRequest(start, end, crunched, audio) {
|
function DataRequest(start, end, crunched, audio) {
|
||||||
this.start = start;
|
this.start = start;
|
||||||
|
|||||||
Submodule Zframework updated: 9ecedcbf7e...3595390738
@@ -33,8 +33,8 @@ end
|
|||||||
|
|
||||||
local function generateGuide(num)
|
local function generateGuide(num)
|
||||||
local l=#F
|
local l=#F
|
||||||
if l>num then
|
if l>num then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
for i=l,num do
|
for i=l,num do
|
||||||
F[i] = {}
|
F[i] = {}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- Automatically generated by a Python script, from a markdown source file.
|
-- Automatically generated by a Python script, from a markdown source file.
|
||||||
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
||||||
return {
|
return {
|
||||||
{"Translator Note 1",
|
{"Translator Note 1",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- Automatically generated by a Python script, from a markdown source file.
|
-- Automatically generated by a Python script, from a markdown source file.
|
||||||
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
||||||
return {
|
return {
|
||||||
{"翻訳者からのメッセージ 1",
|
{"翻訳者からのメッセージ 1",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- Automatically generated by a Python script, from a markdown source file.
|
-- Automatically generated by a Python script, from a markdown source file.
|
||||||
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
-- The script can be found here: https://github.com/user670/techmino-dictionary-converter/blob/master/tool.py
|
||||||
return {
|
return {
|
||||||
{"新人须知",
|
{"新人须知",
|
||||||
"读我 必读 萌新 xinren new noob readme",
|
"读我 必读 萌新 xinren new noob readme",
|
||||||
|
|||||||
@@ -385,50 +385,34 @@ return {
|
|||||||
[[
|
[[
|
||||||
INSTRUCTIONS FOR NAVIGATION IN TETRODICTIONARY
|
INSTRUCTIONS FOR NAVIGATION IN TETRODICTIONARY
|
||||||
|
|
||||||
A. Mouse and Touchscreen
|
A. Mouse / Touchscreen
|
||||||
- Press/touch [$13] to open Help.
|
- Press/touch a term in the list on the left to select the entry
|
||||||
- Hold and drag up/down or scroll the mouse to navigate through the text.
|
|
||||||
|
|
||||||
- Press/touch a term in the list on the left to select the entry you want to look up.
|
|
||||||
- Press/touch [$16] or [$17] to quickly scroll through the list. You can also click the middle mouse button or right mouse button and then scroll the mouse to switch between entries.
|
|
||||||
|
|
||||||
- Press/touch [aA] to display the font control buttons.
|
|
||||||
- Press/touch [a] to decrease the font size and [A] to increase the font size.
|
|
||||||
- To reset the font size to the default size, wait for a few seconds until the [100%] button appears, then press [100%].
|
|
||||||
|
|
||||||
- Press/touch [$14] to copy the content of the current entry.
|
|
||||||
- Press/touch [$15] to open the link of the current entry (if available).
|
|
||||||
|
|
||||||
- Click the back button in the top right corner to exit TetroDictionary.
|
|
||||||
|
|
||||||
|
- Press/touch [$14] to copy the content of the current entry
|
||||||
|
- Press/touch [$15] to open the link of the current entry (if available)
|
||||||
|
|
||||||
B. Keyboard
|
B. Keyboard
|
||||||
Press...
|
Press...
|
||||||
- [F1] to display Help.
|
- [F1] to display Help
|
||||||
- [$1] or [$2] to scroll through the text.
|
- [$1] or [$2] to scroll through the text
|
||||||
- [$3] to open the previous entry and [$4] to open the next entry.
|
- [$3] to open the previous entry and [$4] to open the next entry, speed up with [Ctrl]
|
||||||
|
|
||||||
- [Ctrl] + [-] to decrease the font size, [Ctrl] + [+] to increase the font size.
|
- [-] to decrease the font size, [+] to increase the font size
|
||||||
- [Ctrl] + [0] to restore the default font size.
|
- [0] to restore the default font size
|
||||||
|
|
||||||
- [Ctrl] + [C] to copy text.
|
- [Ctrl + C] to copy text
|
||||||
- [$18] (Context Menu key/Application key)
|
- [$16] (Context Menu key/Application key) to open the link of the current entry (if available)
|
||||||
- to open the link of the current entry (if available).
|
|
||||||
|
|
||||||
- [Esc] to exit TetroDictionary.
|
|
||||||
|
|
||||||
C. Gamepad
|
C. Gamepad
|
||||||
- Press $10 to display Help.
|
- Press $10 to display Help
|
||||||
- Press $5 or $6 to scroll through the text.
|
- Press $5 or $6 to scroll through the text, speed up with $11
|
||||||
- Press $7 to open the previous entry and $8 to open the next entry.
|
- Press $7 to open the previous entry and $8 to open the next entry. Speed up with $11
|
||||||
- Hold $11 and press $7 or $8 to scroll quickly through the list.
|
- Hold $11 and press $6 to decrease the font size or $5 to increase
|
||||||
- Hold $11 and press $6 to decrease the font size or $5 to increase the font size.
|
|
||||||
- Press [BACK] to exit TetroDictionary.
|
|
||||||
]]
|
]]
|
||||||
-- 1-4: Up, Down, Left, Right
|
-- 1-4: Up, Down, Left, Right
|
||||||
-- 5-8: Up, Down, Left, Right but D-Pad
|
-- 5-8: Up, Down, Left, Right but D-Pad
|
||||||
-- 9-12: X, Y, A, B
|
-- 9-12: X, Y, A, B
|
||||||
-- 13-18: Help, Copy, Open, Forward, Backward, MENU
|
-- 13-16: Help, Copy, Open, MENU
|
||||||
},
|
},
|
||||||
WidgetText={
|
WidgetText={
|
||||||
main={
|
main={
|
||||||
|
|||||||
@@ -394,45 +394,28 @@ return {
|
|||||||
HƯỚNG DẪN ĐIỀU HƯỚNG TRONG TETRODICTIONARY
|
HƯỚNG DẪN ĐIỀU HƯỚNG TRONG TETRODICTIONARY
|
||||||
|
|
||||||
A. Chuột và màn hình cảm ứng
|
A. Chuột và màn hình cảm ứng
|
||||||
- Nhấn/chạm [$13] để mở Trợ giúp.
|
- Giữ và kéo lên/xuống hoặc lăn chuột để cuộn văn bản
|
||||||
- Giữ và kéo lên/xuống hoặc lăn chuột để cuộn văn bản.
|
|
||||||
|
|
||||||
- Nhấn/chạm vào một mục trong danh sách ở bên trái để chọn mục cần tra.
|
|
||||||
- Nhấn/chạm [$16] hoặc [$17] để nhanh chóng cuộn qua danh sách. Bạn cũng có thể nhấn giữ chuột giữa hoặc chuột phải sau đó lăn chuột để chuyển qua các mục.
|
|
||||||
|
|
||||||
- Nhấn/chạm [aA] để hiện 2 nút điều khiển cỡ chữ.
|
|
||||||
- Nhấn/chạm [a] để giảm cỡ chữ và [A] để tăng cỡ chữ.
|
|
||||||
- Để đặt cỡ chữ về cỡ mặc định, chờ một vài giây để nút [100%] xuất hiện, sau đó nhấn [100%].
|
|
||||||
|
|
||||||
- Nhấn/chạm [$14] để sao chép nội dung của mục đang xem.
|
|
||||||
- Nhấn/chạm [$15] để mở link của mục đang xem (nếu có).
|
|
||||||
|
|
||||||
- Nhấp vào nút quay lại ở góc trên bên phải để thoát TetroDictionary
|
|
||||||
|
|
||||||
|
- Nhấn/chạm [$14] để sao chép nội dung của mục đang xem
|
||||||
|
- Nhấn/chạm [$15] để mở link của mục đang xem (nếu có)
|
||||||
|
|
||||||
B. Bàn phím
|
B. Bàn phím
|
||||||
Nhấn…
|
Nhấn…
|
||||||
- [F1] để hiển thị Trợ giúp.
|
- [F1] để hiển thị Trợ giúp
|
||||||
- [$1] hoặc [$2] để cuộn qua văn bản.
|
- [$1] hoặc [$2] để cuộn qua văn bản
|
||||||
- [$3] để mở mục trước đó và [$4] để mở mục tiếp theo.
|
- [$3] để mở mục trước đó và [$4] để mở mục tiếp theo
|
||||||
|
|
||||||
- [Ctrl] + [-] để giảm cỡ chữ, [Ctrl] + [+] để tăng cỡ chữ.
|
- [-] để giảm cỡ chữ, [+] để tăng cỡ chữ
|
||||||
- [Ctrl] + [0] để khôi phục về cỡ chữ mặc định
|
- [0] để khôi phục về cỡ chữ mặc định
|
||||||
|
|
||||||
- [Ctrl] + [C] để sao chép văn bản
|
|
||||||
- [$18] (phím Menu ngữ cảnh/phím Ứng dụng)
|
|
||||||
để mở liên kết của mục đang xem (nếu có)
|
|
||||||
|
|
||||||
- [Esc] để thoát TetroDictionary
|
|
||||||
|
|
||||||
|
- [Ctrl + C] để sao chép văn bản
|
||||||
|
- [$16] (phím Menu ngữ cảnh/phím Ứng dụng)
|
||||||
|
|
||||||
C. Tay cầm chơi game (Gamepad)
|
C. Tay cầm chơi game (Gamepad)
|
||||||
Nhấn $10 để hiển thị trợ giúp.
|
Nhấn $10 để hiển thị trợ giúp
|
||||||
Nhấn $5 hoặc $6 để cuộn văn bản.
|
Nhấn $5 hoặc $6 để cuộn văn bản, speed up with $11
|
||||||
Nhấn $7 để mở mục trước và $8 để mở mục tiếp theo.
|
Nhấn $7 để mở mục trước và $8 để mở mục tiếp theo
|
||||||
Giữ $11 và nhấn $7 hoặc $8 để cuộn nhanh qua danh sách.
|
Giữ $11 và nhấn $7 hoặc $8 để cuộn nhanh qua danh sách
|
||||||
Giữ $11 và nhấn $6 để giảm cỡ chữ hoặc $5 để tăng cỡ chữ.
|
|
||||||
Nhấn [BACK] để thoát TetroDictionary.
|
|
||||||
]]
|
]]
|
||||||
-- 1-4: Up, Down, Left, Right
|
-- 1-4: Up, Down, Left, Right
|
||||||
-- 5-8: Up, Down, Left, Right but D-Pad
|
-- 5-8: Up, Down, Left, Right but D-Pad
|
||||||
@@ -1248,7 +1231,7 @@ C. Tay cầm chơi game (Gamepad)
|
|||||||
"Techmino đã đột ngột dừng lại",
|
"Techmino đã đột ngột dừng lại",
|
||||||
-- If you have a real interest in programming, I recommend Lua. Easy installation, simple syntax, and fast execution speed. Stay away from boring school programming (haha)
|
-- If you have a real interest in programming, I recommend Lua. Easy installation, simple syntax, and fast execution speed. Stay away from boring school programming (haha)
|
||||||
{"Nếu bạn thực sự có hứng thú trong lập trình, tôi đề xuất sử dụng Lua. Dễ xài, cú pháp đơn giản, và tốc độ thực thi nhanh. Rồi tránh xa chương trình học nhàm chán ở trên trường luôn! (haha) - ",C.W,"Z",C.white," said."},
|
{"Nếu bạn thực sự có hứng thú trong lập trình, tôi đề xuất sử dụng Lua. Dễ xài, cú pháp đơn giản, và tốc độ thực thi nhanh. Rồi tránh xa chương trình học nhàm chán ở trên trường luôn! (haha) - ",C.W,"Z",C.white," said."},
|
||||||
-- COLD CLEAR PATH
|
-- COLD CLEAR PATH
|
||||||
"Đường dẫn của Cold Clear: "..(
|
"Đường dẫn của Cold Clear: "..(
|
||||||
SYSTEM=='Windows' and "<root>\\CCloader.dll" or
|
SYSTEM=='Windows' and "<root>\\CCloader.dll" or
|
||||||
SYSTEM=='Linux' and "<root>/CCloader.so" or
|
SYSTEM=='Linux' and "<root>/CCloader.so" or
|
||||||
@@ -1256,7 +1239,7 @@ C. Tay cầm chơi game (Gamepad)
|
|||||||
SYSTEM=='OS X' and "<root/CCloader.dylib" or
|
SYSTEM=='OS X' and "<root/CCloader.dylib" or
|
||||||
"(… Tui… không biết :3)"
|
"(… Tui… không biết :3)"
|
||||||
),
|
),
|
||||||
--
|
--
|
||||||
-- CHANGELOG
|
-- CHANGELOG
|
||||||
{C.lW, "V0.0.091726",": ",C.white, "Đã thêm hệ thống xoay TRS"},
|
{C.lW, "V0.0.091726",": ",C.white, "Đã thêm hệ thống xoay TRS"},
|
||||||
{C.lW, "V0.7.9 " ,": ",C.white, "Đã thêm ",C.yellow,"O-spin"},
|
{C.lW, "V0.7.9 " ,": ",C.white, "Đã thêm ",C.yellow,"O-spin"},
|
||||||
|
|||||||
@@ -386,35 +386,29 @@ return {
|
|||||||
[[
|
[[
|
||||||
小Z词典操作说明
|
小Z词典操作说明
|
||||||
|
|
||||||
鼠标与触摸屏:
|
鼠标/触摸屏:
|
||||||
点击 [$13] 显示帮助。
|
点击左侧列表中的项目以选择词条
|
||||||
拖动或使用鼠标滚轮以滚动文本。
|
点击 [$14] 复制词条文本
|
||||||
点击左侧列表中的项目以选择词条,点击 [$16] 或 [$17] 快速滚动列表。
|
点击 [$15] 打开词条中的链接(如有)
|
||||||
点击 [aA] 显示字号控制,然后点击 [a] 缩小字号,[A] 增大字号。要重置字号为默认大小,稍等片刻直到 [100%] 按钮显示,然后点击 [100%]。
|
|
||||||
点击 [$14] 复制词条文本。
|
|
||||||
点击 [$15] 打开词条中的链接(如有)。
|
|
||||||
点击右上角的返回按钮退出小Z词典。
|
|
||||||
|
|
||||||
键盘:
|
键盘:
|
||||||
按 [F1] 显示帮助。
|
按 [F1] 显示帮助
|
||||||
按 [$1] 或 [$2] 滚动文本。
|
按 [$1] 或 [$2] 滚动文本
|
||||||
按 [$3] 打开上一词条,按 [$4] 打开下一词条。使用 [Ctrl + $3] 或 [Ctrl + $4] 快速滚动列表。
|
按 [$3] 打开上一词条,按 [$4] 打开下一词条。按住 [Ctrl] 加速
|
||||||
按 [Ctrl + 减号键] 缩小字号,[Ctrl + 等号键] 增大字号,[Ctrl + 0] 恢复默认字号。
|
按 [-] 缩小字号,[+] 增大字号,[0] 恢复默认字号
|
||||||
按 [Ctrl + C] 复制词条文本。
|
按 [Ctrl + C] 复制词条文本
|
||||||
按 [$18] (上下文菜单键,应用程序键)打开词条中的链接(如有)。
|
按 [$16] (上下文菜单键/应用程序键)打开词条中的链接(如有)
|
||||||
按 [Esc] 退出小Z词典。
|
|
||||||
|
|
||||||
游戏手柄:
|
手柄:
|
||||||
按 $10 显示帮助。
|
按 $10 to 显示帮助
|
||||||
按 $5 或 $6 滚动文本。
|
按 $5 或 $6 滚动文本, 按 $11 加速
|
||||||
按 $7 打开上一词条,按 $8 打开下一词条。按住 $11 并按 $7 或 $8 快速滚动列表。
|
按 $7 打开上一词条,按 $8 打开下一词条。按住 $11 加速
|
||||||
按住 $11 并按 $6 缩小字号,或 $5 增大字号。
|
按住 $11 并按 $6 缩小字号,或 $5 增大字号
|
||||||
按 [BACK] 退出小Z词典。
|
|
||||||
]]
|
]]
|
||||||
-- 1-4: Up, Down, Left, Right
|
-- 1-4: Up, Down, Left, Right
|
||||||
-- 5-8: Up, Down, Left, Right but D-Pad
|
-- 5-8: Up, Down, Left, Right but D-Pad
|
||||||
-- 9-12: X, Y, A, B
|
-- 9-12: X, Y, A, B
|
||||||
-- 13-18: Help, Copy, Open, Forward, Backward, MENU
|
-- 13-16: Help, Copy, Open, MENU
|
||||||
},
|
},
|
||||||
WidgetText={
|
WidgetText={
|
||||||
main={
|
main={
|
||||||
|
|||||||
@@ -681,7 +681,7 @@ local function _drawMission(curMission,L,missionkill)
|
|||||||
gc_print("×"..RLEMissions[1][2],98,130)
|
gc_print("×"..RLEMissions[1][2],98,130)
|
||||||
gc_translate(-30,0)
|
gc_translate(-30,0)
|
||||||
end
|
end
|
||||||
|
|
||||||
setFont(35)
|
setFont(35)
|
||||||
gc_print(ENUM_MISSION[RLEMissions[1][1]],85,110)
|
gc_print(ENUM_MISSION[RLEMissions[1][1]],85,110)
|
||||||
|
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ local seqGenerators={
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
fixed=function(rndGen,seq0)
|
fixed=function(rndGen,seq0)
|
||||||
for i=#seq0,1,-1 do
|
for i=1,#seq0 do
|
||||||
yield(seq0[i])
|
yield(seq0[i])
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ local function drawChar(char,x,y,scale,alignLeft)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local levels={
|
local levels={
|
||||||
function()-- 1~3 <+> [,10]
|
function()-- 1~3 <+> [,10]
|
||||||
local s=rnd(2,9)
|
local s=rnd(2,9)
|
||||||
local a=rnd(1,s)
|
local a=rnd(1,s)
|
||||||
return a.."+"..s-a,s,function()
|
return a.."+"..s-a,s,function()
|
||||||
|
|||||||
@@ -152,11 +152,10 @@ function player:click(y,x)
|
|||||||
self.board[y][x]=rem(self.nexts,1)
|
self.board[y][x]=rem(self.nexts,1)
|
||||||
SFX.play('touch')
|
SFX.play('touch')
|
||||||
|
|
||||||
local merged
|
local cur,merged
|
||||||
repeat-- ::REPEAT_merge::
|
repeat
|
||||||
local repeating
|
|
||||||
local cur=self.board[y][x]
|
|
||||||
local b1=TABLE.shift(self.board)
|
local b1=TABLE.shift(self.board)
|
||||||
|
cur=b1[y][x]
|
||||||
self.mergedTiles={}
|
self.mergedTiles={}
|
||||||
local count=self:merge(b1,cur,y,x)
|
local count=self:merge(b1,cur,y,x)
|
||||||
if count>2 then
|
if count>2 then
|
||||||
@@ -178,9 +177,8 @@ function player:click(y,x)
|
|||||||
for i=1,#self.mergedTiles do
|
for i=1,#self.mergedTiles do
|
||||||
newMergeFX(self.mergedTiles[i][1],self.mergedTiles[i][2],cur+1)
|
newMergeFX(self.mergedTiles[i][1],self.mergedTiles[i][2],cur+1)
|
||||||
end
|
end
|
||||||
repeating=true-- goto REPEAT_merge
|
|
||||||
end
|
end
|
||||||
until not repeating
|
until count<=2
|
||||||
|
|
||||||
ins(self.nexts,self:newTile())
|
ins(self.nexts,self:newTile())
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
|
|
||||||
local int,abs=math.floor,math.abs
|
local int,abs=math.floor,math.abs
|
||||||
local min,sin=math.min,math.sin
|
|
||||||
local ins=table.insert
|
local ins=table.insert
|
||||||
local find=string.find
|
local find=string.find
|
||||||
|
|
||||||
@@ -15,14 +14,8 @@ local searchWait-- Searching animation timer
|
|||||||
|
|
||||||
local lastSearch-- Last searched string
|
local lastSearch-- Last searched string
|
||||||
local lastSelected -- Last selected item
|
local lastSelected -- Last selected item
|
||||||
local justSearched -- Just searched or not?
|
|
||||||
|
|
||||||
local currentFontSize=25 -- Current font size, default: 25
|
local currentFontSize=25 -- Current font size, default: 25
|
||||||
local showingHelp=false -- Help is triggered or not
|
|
||||||
local zoomWait=0 -- The last time zoom is triggered
|
|
||||||
|
|
||||||
local lastScrollPos
|
|
||||||
local lastMouseX,lastMouseY,lastTouchX,lastTouchY
|
|
||||||
|
|
||||||
local typeColor={
|
local typeColor={
|
||||||
help=COLOR.Y,
|
help=COLOR.Y,
|
||||||
@@ -58,32 +51,23 @@ local function _scanDict(D)
|
|||||||
end
|
end
|
||||||
local function _getList() return result[1] and result or dict end
|
local function _getList() return result[1] and result or dict end
|
||||||
|
|
||||||
-- Drawing objects
|
local textBox =WIDGET.newTextBox {name='infoBox',x=320,y=180,w=862,h=526,font=25,fix=true}
|
||||||
local infoBox =WIDGET.newTextBox {name='infoBox',x=320,y=180,w=862,h=526,font=25,fix=true}
|
|
||||||
local inputBox=WIDGET.newInputBox{name='input', x=20, y=110,w=762,h=60, font=40,limit=32}
|
local inputBox=WIDGET.newInputBox{name='input', x=20, y=110,w=762,h=60, font=40,limit=32}
|
||||||
local listBox =WIDGET.newListBox {name='listBox',x=20, y=180,w=280,h=526,font=30,lineH=35,drawF=function(item,id,ifSel)
|
local listBox =WIDGET.newListBox {name='listBox',x=20, y=180,w=280,h=526,font=30,lineH=35,drawF=function(item,id,ifSel)
|
||||||
-- Draw list box
|
-- Background
|
||||||
-- Background
|
|
||||||
if ifSel then
|
if ifSel then
|
||||||
gc.setColor(1,1,1,.4)
|
gc.setColor(1,1,1,.4)
|
||||||
gc.rectangle('fill',0,0,280,35)
|
gc.rectangle('fill',0,0,280,35)
|
||||||
end
|
end
|
||||||
|
-- Name & color
|
||||||
-- Name & color
|
|
||||||
local item=_getList()[id]
|
|
||||||
GC.shadedPrint(item.title,10,-3,'left',1,COLOR.D,typeColor[item.type])
|
GC.shadedPrint(item.title,10,-3,'left',1,COLOR.D,typeColor[item.type])
|
||||||
-- Draw list box /
|
|
||||||
end}
|
end}
|
||||||
-- Drawing object /
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Necessary local functions
|
-- Necessary local functions
|
||||||
-- Clear the result
|
-- Clear the result
|
||||||
local function _clearResult()
|
local function _clearResult()
|
||||||
TABLE.cut(result)
|
TABLE.cut(result)
|
||||||
listBox.selected=1
|
listBox.selected=1
|
||||||
justSearched=true
|
|
||||||
searchWait,lastSearch=0,false
|
searchWait,lastSearch=0,false
|
||||||
scene.widgetList.copy.hide=false
|
scene.widgetList.copy.hide=false
|
||||||
end
|
end
|
||||||
@@ -102,17 +86,16 @@ local function _search()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
listBox:setList(_getList())
|
||||||
|
|
||||||
if #result>0 then SFX.play('reach') end
|
if #result>0 then SFX.play('reach') end
|
||||||
justSearched=true
|
|
||||||
lastSearch=input
|
lastSearch=input
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Jump over n items
|
-- Jump over n items
|
||||||
local function _jumpover(key,n)
|
local function _jumpover(key,n)
|
||||||
n=n or 1
|
local dir=(key=='left' or key=='pageup') and 'up' or 'down'
|
||||||
if key=='left' or key=='pageup' then
|
for _=1,n or 1 do scene.widgetList.listBox:arrowKey(dir) end
|
||||||
for _=1,n do scene.widgetList.listBox:arrowKey('up') end
|
|
||||||
else for _=1,n do scene.widgetList.listBox:arrowKey('down') end end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Copy the content
|
-- Copy the content
|
||||||
@@ -128,17 +111,16 @@ end
|
|||||||
local function _updateInfoBox(c)
|
local function _updateInfoBox(c)
|
||||||
local _t,t
|
local _t,t
|
||||||
if c==nil then
|
if c==nil then
|
||||||
if showingHelp then
|
if listBox.selected==0 then
|
||||||
if text.dict.helpText then
|
if text.dict.helpText then
|
||||||
t,_t=text.dict.helpText:repD(
|
_t,t=true,text.dict.helpText:repD(
|
||||||
CHAR.key.up, CHAR.key.down, CHAR.key.left, CHAR.key.right,
|
CHAR.key.up,CHAR.key.down,CHAR.key.left,CHAR.key.right,
|
||||||
CHAR.controller.dpadU,CHAR.controller.dpadD,CHAR.controller.dpadL,CHAR.controller.dpadR,
|
CHAR.controller.dpadU,CHAR.controller.dpadD,CHAR.controller.dpadL,CHAR.controller.dpadR,
|
||||||
CHAR.controller.xboxX,CHAR.controller.xboxY,CHAR.controller.xboxA,CHAR.controller.xboxB,
|
CHAR.controller.xboxX,CHAR.controller.xboxY,CHAR.controller.xboxA,CHAR.controller.xboxB,
|
||||||
|
CHAR.icon.help,CHAR.icon.copy,CHAR.icon.globe,CHAR.key.winMenu
|
||||||
CHAR.icon.help,CHAR.icon.copy, CHAR.icon.globe,
|
)
|
||||||
CHAR.icon.toUp,CHAR.icon.toDown,CHAR.key.winMenu
|
else
|
||||||
),true
|
_t,t=true,{
|
||||||
else _t,t=true,{
|
|
||||||
"OUCH! I can't seem to find any translated Help text anywhere.",
|
"OUCH! I can't seem to find any translated Help text anywhere.",
|
||||||
"\nI guess you'll have to switch to English and try again to read it instead!",
|
"\nI guess you'll have to switch to English and try again to read it instead!",
|
||||||
"\n\nOn another note, you could make an issue on GitHub or send this to Techmino's Discord server.",
|
"\n\nOn another note, you could make an issue on GitHub or send this to Techmino's Discord server.",
|
||||||
@@ -146,77 +128,34 @@ local function _updateInfoBox(c)
|
|||||||
"\n\nOh, and it would be nice if you could let us know about it or you can fix it by yourself!",
|
"\n\nOh, and it would be nice if you could let us know about it or you can fix it by yourself!",
|
||||||
"\n\n-- Sea, the one who rewrote the Zictionary scene and left this message just in case."
|
"\n\n-- Sea, the one who rewrote the Zictionary scene and left this message just in case."
|
||||||
} end
|
} end
|
||||||
else _t,t=pcall(function() return _getList()[listBox.selected].content end) end
|
else
|
||||||
|
_t,t=pcall(function() return _getList()[listBox.selected].content end)
|
||||||
|
end
|
||||||
if _t then c=t else c={""} end
|
if _t then c=t else c={""} end
|
||||||
_t,t=nil,nil
|
_t,t=nil,nil
|
||||||
end
|
end
|
||||||
local _w,c=FONT.get(currentFontSize):getWrap(c,840)
|
local _w,c=FONT.get(currentFontSize):getWrap(c,840)
|
||||||
infoBox:setTexts(c)
|
textBox:setTexts(c)
|
||||||
end
|
|
||||||
|
|
||||||
-- Show Help or not
|
|
||||||
local function _toggleHelp()
|
|
||||||
local listBox = scene.widgetList.listBox
|
|
||||||
showingHelp = not showingHelp
|
|
||||||
if not showingHelp then
|
|
||||||
listBox.selected=lastSelected
|
|
||||||
scene.widgetList.copy.hide=false
|
|
||||||
end
|
|
||||||
_updateInfoBox()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Zoom and reset zoom
|
-- Zoom and reset zoom
|
||||||
local function _openZoom() zoomWait=2 end
|
|
||||||
local function _resetZoom()
|
local function _resetZoom()
|
||||||
currentFontSize,infoBox.font=25,25
|
currentFontSize,textBox.font=25,25
|
||||||
infoBox.lineH,infoBox.capacity=35,math.ceil((infoBox.h-10)/35)
|
textBox.lineH,textBox.capacity=35,math.ceil((textBox.h-10)/35)
|
||||||
_updateInfoBox()
|
_updateInfoBox()
|
||||||
MES.new("check",text.dict.sizeReset,1.26)
|
MES.new("check",text.dict.sizeReset,1.26)
|
||||||
end
|
end
|
||||||
local function _setZoom(z)
|
local function _setZoom(z)
|
||||||
if z~=0 then
|
if z~=0 then
|
||||||
currentFontSize=MATH.clamp(currentFontSize+z,15,40)
|
currentFontSize=MATH.clamp(currentFontSize+z,15,40)
|
||||||
infoBox.font=currentFontSize
|
textBox.font=currentFontSize
|
||||||
infoBox.lineH=currentFontSize*7/5 -- Recalculate the line's height
|
textBox.lineH=currentFontSize*7/5 -- Recalculate the line's height
|
||||||
infoBox.capacity=math.ceil((infoBox.h-10)/infoBox.lineH)
|
textBox.capacity=math.ceil((textBox.h-10)/textBox.lineH)
|
||||||
_updateInfoBox()
|
_updateInfoBox()
|
||||||
_openZoom()
|
|
||||||
MES.new("check",text.dict.sizeChanged:repD(currentFontSize),1.26)
|
MES.new("check",text.dict.sizeChanged:repD(currentFontSize),1.26)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Checking if waiting countdown reach 0 to run the function.
|
|
||||||
--
|
|
||||||
-- currentCountdown: the variable that tracking waiting time
|
|
||||||
-- timeEndF: run this function if the time reach 0
|
|
||||||
-- nTimeEndF: run this function if the time has not reached 0
|
|
||||||
--
|
|
||||||
-- NOTE: This function will return the modified value of currentcountdown
|
|
||||||
local function _waitingfor(currentcountdown, timeEndF, nTimeEndF)
|
|
||||||
currentcountdown = currentcountdown or 0
|
|
||||||
timeEndF = timeEndF or function() end
|
|
||||||
nTimeEndF= nTimeEndF or function() end
|
|
||||||
|
|
||||||
if currentcountdown>0 then
|
|
||||||
currentcountdown=currentcountdown-love.timer.getDelta()
|
|
||||||
if currentcountdown<=0 then timeEndF() else nTimeEndF() end
|
|
||||||
end
|
|
||||||
return currentcountdown
|
|
||||||
end
|
|
||||||
|
|
||||||
local function fixScrollingByTouch(x,y,lastX,lastY)
|
|
||||||
if WIDGET.isFocus(listBox) then
|
|
||||||
if abs(lastScrollPos-listBox.scrollPos)>26 then
|
|
||||||
lastScrollPos=listBox.scrollPos
|
|
||||||
listBox.selected=lastSelected
|
|
||||||
else
|
|
||||||
lastSelected=listBox.selected
|
|
||||||
scene.widgetList.copy.hide=false
|
|
||||||
_updateInfoBox()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Reset everything when opening Zictionary
|
-- Reset everything when opening Zictionary
|
||||||
function scene.enter()
|
function scene.enter()
|
||||||
dict=require("parts.language.dict_"..(SETTING.locale:find'zh' and 'zh' or SETTING.locale:find'ja' and 'ja' or SETTING.locale:find'vi' and 'vi' or 'en'))
|
dict=require("parts.language.dict_"..(SETTING.locale:find'zh' and 'zh' or SETTING.locale:find'ja' and 'ja' or SETTING.locale:find'vi' and 'vi' or 'en'))
|
||||||
@@ -225,13 +164,10 @@ function scene.enter()
|
|||||||
inputBox:clear()
|
inputBox:clear()
|
||||||
result={}
|
result={}
|
||||||
|
|
||||||
if showingHelp then _toggleHelp() end
|
|
||||||
|
|
||||||
searchWait=0
|
searchWait=0
|
||||||
lastSelected=0
|
lastSelected=0
|
||||||
listBox.selected=1
|
listBox.selected=1
|
||||||
listBox.scrollPos=0
|
listBox.scrollPos=0
|
||||||
lastScrollPos=0
|
|
||||||
lastSearch=false
|
lastSearch=false
|
||||||
|
|
||||||
if not MOBILE then WIDGET.focus(inputBox) end
|
if not MOBILE then WIDGET.focus(inputBox) end
|
||||||
@@ -239,57 +175,51 @@ function scene.enter()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function scene.wheelMoved(_,y)
|
function scene.wheelMoved(_,y)
|
||||||
WHEELMOV(y)
|
if WIDGET.sel==listBox then
|
||||||
|
listBox:scroll(-y)
|
||||||
|
else
|
||||||
|
textBox:scroll(-y)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
function scene.keyDown(key)
|
function scene.keyDown(key)
|
||||||
-- Switching selected items
|
-- Switching selected items
|
||||||
if key=='up' or key=='down' then
|
if key=='up' or key=='down' then
|
||||||
if not showingHelp then
|
textBox:scroll(key=='up' and -1 or 1)
|
||||||
if love.mouse.isDown(2,3) then
|
|
||||||
listBox:arrowKey(key)
|
elseif (key=='left' or key=='pageup' or key=='right' or key=='pagedown') then
|
||||||
return
|
_jumpover(key,love.keyboard.isDown('lctrl','rctrl','lalt','ralt','lshift','rshift') and 12)
|
||||||
elseif WIDGET.isFocus(listBox) then
|
|
||||||
listBox:scroll(key=='up' and -1 or 1)
|
elseif key=='cC' or key=='c' and love.keyboard.isDown('lctrl','rctrl') then
|
||||||
lastScrollPos=listBox.scrollPos
|
if listBox.selected>0 then
|
||||||
return
|
_copy()
|
||||||
end
|
|
||||||
end
|
end
|
||||||
infoBox:scroll(key=='up' and -3 or 3)
|
|
||||||
|
|
||||||
elseif (key=='left' or key=='pageup' or key=='right' or key=='pagedown')
|
elseif key=='-' or key=='=' then
|
||||||
then
|
_setZoom((key=='-' or key=='kp-') and -5 or 5)
|
||||||
if love.keyboard.isDown('lctrl','rctrl','lalt','ralt','lshift','rshift')
|
elseif key=='0' then
|
||||||
then _jumpover(key,12)
|
_resetZoom()
|
||||||
else _jumpover(key,1)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Copy & Zoom
|
elseif key=='application' and listBox.selected>=0 then
|
||||||
elseif key=='cC' then _copy()
|
|
||||||
elseif love.keyboard.isDown('lctrl','rctrl') then
|
|
||||||
if key == 'c' and not showingHelp then _copy() return
|
|
||||||
elseif love.keyboard.isDown('-','=','kp-','kp+') then _setZoom((key=='-' or key=='kp-') and -5 or 5)
|
|
||||||
elseif love.keyboard.isDown('0','kp0') then _resetZoom() end
|
|
||||||
|
|
||||||
-- Clear search input, open URL
|
|
||||||
elseif key=='application' and not showingHelp then
|
|
||||||
local url=_getList()[listBox.selected].url
|
local url=_getList()[listBox.selected].url
|
||||||
if url then love.system.openURL(url) end
|
if url then love.system.openURL(url) end
|
||||||
elseif key=='delete' and not showingHelp then
|
elseif key=='delete' then
|
||||||
if inputBox:hasText() then
|
if inputBox:hasText() then
|
||||||
_clearResult()
|
_clearResult()
|
||||||
inputBox:clear()
|
inputBox:clear()
|
||||||
SFX.play('hold')
|
SFX.play('hold')
|
||||||
|
_updateInfoBox()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Get out of Zictionary
|
|
||||||
elseif key=='escape' then
|
elseif key=='escape' then
|
||||||
if inputBox:hasText() then scene.keyDown('delete')
|
if inputBox:hasText() then
|
||||||
elseif showingHelp then _toggleHelp()
|
scene.keyDown('delete')
|
||||||
else SCN.back()
|
else
|
||||||
|
SCN.back()
|
||||||
end
|
end
|
||||||
-- Calling Help
|
elseif key=='f1' then
|
||||||
elseif key=='f1' then _toggleHelp()
|
listBox.selected=0
|
||||||
-- Focus on the search box
|
inputBox:clear()
|
||||||
|
searchWait=0
|
||||||
|
_updateInfoBox()
|
||||||
else
|
else
|
||||||
if not WIDGET.isFocus(inputBox) then WIDGET.focus(inputBox) end
|
if not WIDGET.isFocus(inputBox) then WIDGET.focus(inputBox) end
|
||||||
return true
|
return true
|
||||||
@@ -299,105 +229,61 @@ end
|
|||||||
function scene.gamepadDown(key)
|
function scene.gamepadDown(key)
|
||||||
local Joystick=love.joystick.getJoysticks()[love.joystick.getJoystickCount()]
|
local Joystick=love.joystick.getJoysticks()[love.joystick.getJoystickCount()]
|
||||||
|
|
||||||
-- Scrolling text & zooming
|
if key=='dpup' or key=='dpdown' then
|
||||||
if (key=='dpup' or key=='dpdown') then
|
if Joystick:isGamepadDown('a') then
|
||||||
if Joystick:isGamepadDown('a')
|
_setZoom(key=='dpup' and 5 or -5)
|
||||||
then _setZoom(key=='dpup' and 5 or -5)
|
else
|
||||||
else infoBox:scroll(key=='dpup' and -3 or 3)
|
textBox:scroll(key=='dpup' and -3 or 3)
|
||||||
end
|
end
|
||||||
-- Switching selected items
|
|
||||||
elseif key=='dpleft' or key=='dpright' then
|
elseif key=='dpleft' or key=='dpright' then
|
||||||
_jumpover(key:gsub('dp',''),Joystick:isGamepadDown('a') and 12 or 1)
|
_jumpover(key:gsub('dp',''),Joystick:isGamepadDown('a') and 12)
|
||||||
-- Activate help
|
elseif key=='y' then
|
||||||
elseif key=='y' then _toggleHelp()
|
listBox.selected=0
|
||||||
-- Exit
|
inputBox:clear()
|
||||||
elseif key=='back' then SCN.back()
|
searchWait=0
|
||||||
|
_updateInfoBox()
|
||||||
|
elseif key=='back' then
|
||||||
|
SCN.back()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function scene.mouseDown(mx,my)
|
|
||||||
lastMouseX,lastMouseY=mx,my
|
|
||||||
end
|
|
||||||
function scene.touchDown(mx,my)
|
|
||||||
lastTouchX,lastTouchY=mx,my
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Check if left mouse key is released
|
|
||||||
function scene.mouseUp(mx,my)
|
|
||||||
fixScrollingByTouch(mx,my,lastMouseX,lastMouseY)
|
|
||||||
end
|
|
||||||
function scene.touchUp(mx,my)
|
|
||||||
fixScrollingByTouch(mx,my,lastTouchX,lastTouchY)
|
|
||||||
end
|
|
||||||
|
|
||||||
function scene.update(dt)
|
function scene.update(dt)
|
||||||
-- It's time to search?
|
|
||||||
local input=inputBox:getText()
|
local input=inputBox:getText()
|
||||||
if input~=lastTickInput then
|
if input~=lastTickInput then
|
||||||
if #input==0 then
|
if #input==0 then
|
||||||
_clearResult()
|
_clearResult()
|
||||||
|
listBox:setList(_getList())
|
||||||
else
|
else
|
||||||
searchWait=.8
|
searchWait=.8
|
||||||
end
|
end
|
||||||
lastTickInput=input
|
lastTickInput=input
|
||||||
end
|
end
|
||||||
searchWait=_waitingfor(
|
if searchWait>0 then
|
||||||
searchWait,
|
searchWait=searchWait-dt
|
||||||
function() if #input>0 and input~=lastSearch then _search() end end
|
if searchWait<=0 and #input>0 and input~=lastSearch then
|
||||||
)
|
_search()
|
||||||
-- It's time to swap zoom buttons?
|
|
||||||
zoomWait=_waitingfor(
|
|
||||||
zoomWait,
|
|
||||||
function()
|
|
||||||
scene.widgetList.openzoom .hide=false
|
|
||||||
scene.widgetList.resetzoom.hide=false
|
|
||||||
scene.widgetList.zoomin .hide=true
|
|
||||||
scene.widgetList.zoomout .hide=true
|
|
||||||
end,
|
|
||||||
function()
|
|
||||||
scene.widgetList.openzoom .hide=true
|
|
||||||
scene.widgetList.resetzoom.hide=true
|
|
||||||
scene.widgetList.zoomin .hide=false
|
|
||||||
scene.widgetList.zoomout .hide=false
|
|
||||||
end
|
end
|
||||||
)
|
end
|
||||||
end
|
|
||||||
|
|
||||||
local function listStencil()
|
if lastSelected~=listBox.selected then
|
||||||
GC.rectangle('fill',20,180,280,526)
|
|
||||||
end
|
|
||||||
function scene.draw()
|
|
||||||
-- Order: list, info, keys
|
|
||||||
-- Draw background
|
|
||||||
gc.setColor(COLOR.dX)
|
|
||||||
gc.rectangle('fill',1194,180,80,526,5) -- keys
|
|
||||||
-- Draw outline
|
|
||||||
gc.setLineWidth(2)
|
|
||||||
gc.setColor(COLOR.Z)
|
|
||||||
gc.rectangle('line',1194,180,80,526,5) -- keys
|
|
||||||
-- Draw key seperating outline
|
|
||||||
gc.rectangle('line',1194,260,80,1,0) -- A | B
|
|
||||||
gc.rectangle('line',1194,410,80,1,0) -- B | C
|
|
||||||
gc.rectangle('line',1194,560,80,1,0) -- C | D
|
|
||||||
|
|
||||||
local list=_getList()
|
|
||||||
setFont(30)
|
|
||||||
|
|
||||||
-- Showing Help?
|
|
||||||
if showingHelp then
|
|
||||||
listBox.selected=0
|
|
||||||
scene.widgetList.copy.hide,scene.widgetList.link.hide=true,true
|
|
||||||
-- If not then, check the selected item if it is changed or not?
|
|
||||||
-- If yes, update lastSelected then update the textbox!
|
|
||||||
elseif justSearched then
|
|
||||||
listBox:setList(_getList())
|
|
||||||
_updateInfoBox()
|
|
||||||
justSearched=false
|
|
||||||
elseif lastSelected~=listBox.selected and not love.mouse.isDown(1) then
|
|
||||||
_updateInfoBox()
|
_updateInfoBox()
|
||||||
lastSelected=listBox.selected
|
lastSelected=listBox.selected
|
||||||
scene.widgetList.copy.hide=false
|
scene.widgetList.copy.hide=false
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function scene.draw()
|
||||||
|
-- Order: list, info, keys
|
||||||
|
-- Draw background
|
||||||
|
gc.setColor(COLOR.dX)
|
||||||
|
gc.rectangle('fill',1194,340,80,366,5)
|
||||||
|
-- Draw outline
|
||||||
|
gc.setLineWidth(2)
|
||||||
|
gc.setColor(COLOR.Z)
|
||||||
|
gc.rectangle('line',1194,340,80,366,5)
|
||||||
|
gc.line(1194,560,1274,560)
|
||||||
|
|
||||||
|
setFont(30)
|
||||||
|
|
||||||
if searchWait>0 then
|
if searchWait>0 then
|
||||||
local r=TIME()*2
|
local r=TIME()*2
|
||||||
@@ -412,23 +298,15 @@ scene.widgetList={
|
|||||||
WIDGET.newText {name='title', x=100, y=15, font=70,align='L'},
|
WIDGET.newText {name='title', x=100, y=15, font=70,align='L'},
|
||||||
listBox,
|
listBox,
|
||||||
inputBox,
|
inputBox,
|
||||||
infoBox,
|
textBox,
|
||||||
WIDGET.newKey {name='link', x=1234,y=600,w=60,font=45,fText=CHAR.icon.globe, code=pressKey'application',hideF=function() return not ((not (showingHelp or listBox.selected==0)) and _getList()[listBox.selected].url) end},
|
WIDGET.newKey {name='link', x=1234,y=600,w=60,font=45,fText=CHAR.icon.globe, code=pressKey'application',hideF=function() return not (listBox.selected>0 and _getList()[listBox.selected].url) end},
|
||||||
WIDGET.newKey {name='copy', x=1234,y=670,w=60,font=40,fText=CHAR.icon.copy, code=pressKey'cC'},
|
WIDGET.newKey {name='copy', x=1234,y=670,w=60,font=40,fText=CHAR.icon.copy, code=pressKey'cC',hideF=function() return not (listBox.selected>0) end},
|
||||||
|
|
||||||
WIDGET.newKey {name='openzoom', x=1234,y=300,w=60,font=30,fText="aA", code=function() _openZoom() end,hide=false},
|
|
||||||
WIDGET.newKey {name='resetzoom',x=1234,y=370,w=60,font=25,fText="100%", code=function() _resetZoom() end,hide=false},
|
|
||||||
WIDGET.newKey {name='zoomin', x=1234,y=300,w=60,font=40,fText="A", code=function() _setZoom(5) end,hide=true},
|
|
||||||
WIDGET.newKey {name='zoomout', x=1234,y=370,w=60,font=40,fText="a", code=function() _setZoom(-5) end,hide=true},
|
|
||||||
|
|
||||||
WIDGET.newKey {name='pageup', x=1234,y=450,w=60,font=40,fText=CHAR.icon.toUp, hideF=function() return love.mouse.isDown(2,3) or showingHelp end,code=function() _jumpover('left') end},
|
WIDGET.newKey {name='zoomin', x=1234,y=380,w=60,font=40,fText="A", code=function() _setZoom(5) end},
|
||||||
WIDGET.newKey {name='pagedown', x=1234,y=520,w=60,font=40,fText=CHAR.icon.toDown,hideF=function() return love.mouse.isDown(2,3) or showingHelp end,code=function() _jumpover('right') end},
|
WIDGET.newKey {name='zoomout', x=1234,y=450,w=60,font=40,fText="a", code=function() _setZoom(-5) end},
|
||||||
|
WIDGET.newKey {name='resetzoom',x=1234,y=520,w=60,font=25,fText="100%", code=function() _resetZoom() end},
|
||||||
|
|
||||||
WIDGET.newKey {name='pageup1', x=1234,y=450,w=60,font=40,fText=CHAR.key.up, hideF=function() return not love.mouse.isDown(2,3) or showingHelp end,color="A"},
|
WIDGET.newKey {name='help', x=1234,y=220,w=60,font=40,fText=CHAR.icon.help, code=pressKey'f1'},
|
||||||
WIDGET.newKey {name='pagedown1',x=1234,y=520,w=60,font=40,fText=CHAR.key.down, hideF=function() return not love.mouse.isDown(2,3) or showingHelp end,color="A"},
|
|
||||||
|
|
||||||
WIDGET.newKey {name='help0', x=1234,y=220,w=60,font=40,fText=CHAR.icon.help, code=pressKey'f1',hideF=function() return showingHelp end},
|
|
||||||
WIDGET.newKey {name='help1', x=1234,y=220,w=60,font=40,fText=CHAR.icon.help, code=pressKey'f1',hideF=function() return not showingHelp end,color='lF'},
|
|
||||||
|
|
||||||
WIDGET.newButton{name='back', x=1165,y=60, w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
|
WIDGET.newButton{name='back', x=1165,y=60, w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
|
||||||
WIDGET.newText {name='buttontip',x=1274,y=110,w=762,h=60,font=40,align='R',fText=CHAR.controller.xboxY.."/[F1]: "..CHAR.icon.help}
|
WIDGET.newText {name='buttontip',x=1274,y=110,w=762,h=60,font=40,align='R',fText=CHAR.controller.xboxY.."/[F1]: "..CHAR.icon.help}
|
||||||
|
|||||||
Reference in New Issue
Block a user