111
This commit is contained in:
134
Project/RepairWorldMap/RepairWorldMap.nut
Normal file
134
Project/RepairWorldMap/RepairWorldMap.nut
Normal file
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
文件名:RepairWorldMap.nut
|
||||
路径:Project/RepairWorldMap/RepairWorldMap.nut
|
||||
创建日期:2024-08-10 08:04
|
||||
文件用途:修补世界地图
|
||||
*/
|
||||
class RepairWorldMapC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//开启状态
|
||||
OpenState = false;
|
||||
|
||||
//不是窗口
|
||||
NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
Visible = false;
|
||||
|
||||
//世界地图信息
|
||||
Info = null;
|
||||
|
||||
//当前城镇编号
|
||||
AreaId = 0;
|
||||
|
||||
//下拉框打开Flag
|
||||
TabbarFlag = false;
|
||||
|
||||
//选中Flag
|
||||
MarkFlag = -1;
|
||||
|
||||
function GetWorldMap_CallBack(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
Info = Jso;
|
||||
}
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
|
||||
Pack_Control.rawset(20240802, GetWorldMap_CallBack.bindenv(this));
|
||||
L_sq_WAB(0x1031B33, 0x90);
|
||||
L_sq_WAB(0x1031B34, 0x90);
|
||||
L_sq_WAB(0x1031B35, 0x90);
|
||||
L_sq_WAB(0x1031B36, 0x90);
|
||||
L_sq_WAB(0x1031B37, 0x90);
|
||||
L_sq_WAB(0x1031B38, 0x90);
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
//三角按钮
|
||||
local Button = LenheartNewUI_BaseButton(7, 8, 21, 21, "interface/windowcommon.img", 59);
|
||||
Button.OnClick = function() {
|
||||
TabbarFlag = !TabbarFlag;
|
||||
}.bindenv(this);
|
||||
Childrens.append(Button);
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
if (!getroottable().rawin("RINDRO_CONFIG")) {
|
||||
return;
|
||||
}
|
||||
//黑框
|
||||
L_sq_DrawImg("interface/minimap_minimap_town.img", 8, 131, 7);
|
||||
//绘制区域名称
|
||||
L_sq_DrawCode(getroottable().RINDRO_CONFIG.region[AreaId].Name, 135, 10, 0xFFFFFFFF, 1, 1);
|
||||
|
||||
if (TabbarFlag) {
|
||||
foreach(Pos, Value in getroottable().RINDRO_CONFIG.region) {
|
||||
L_sq_DrawImg("interface/minimap_minimap_town.img", 9, 131, 25 + (Pos * 18));
|
||||
// L_sq_DrawWindow(128, 24 + (Pos * 18), 108, 10, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
|
||||
L_sq_DrawCode(Value.Name, 135, 28 + (Pos * 18), 0xFFFFFFFF, 1, 1);
|
||||
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, 131, 25 + (Pos * 18), 108, 18)) {
|
||||
MarkFlag = Pos;
|
||||
L_sq_SetDrawImgModel(2, 0);
|
||||
L_sq_DrawImg("interface/minimap_minimap_town.img", 16, 131, 25 + (Pos * 18));
|
||||
L_sq_ReleaseDrawImgModel();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//鼠标左键弹起回调 overr
|
||||
function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
||||
//还原编队的鼠标指针
|
||||
if (this.MarkFlag != -1) {
|
||||
AreaId = MarkFlag;
|
||||
L_sq_Select_MiniMap_Index(AreaId + 1);
|
||||
this.MarkFlag = -1;
|
||||
}
|
||||
if (TabbarFlag) TabbarFlag = false;
|
||||
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
if (!OpenState) {
|
||||
CloseWindow();
|
||||
}
|
||||
OpenState = false;
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y);
|
||||
if (OpenState) {
|
||||
Visible = true;
|
||||
ResetFocus();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//回调函数
|
||||
function Sq_DrawMiniMapUI(obj) {
|
||||
if ("RepairWorldMap_Obj" in getroottable()) {
|
||||
RepairWorldMap_Obj.OpenState = true;
|
||||
}
|
||||
}
|
||||
|
||||
getroottable().rawdelete("RepairWorldMap_Obj");
|
||||
|
||||
function Lenheart_RepairWorldMap_Fun(obj) {
|
||||
local RootTab = getroottable();
|
||||
if (!RootTab.rawin("RepairWorldMap_Obj")) {
|
||||
RootTab.rawset("RepairWorldMap_Obj", LenheartNewUI_CreateWindow(RepairWorldMapC, "世界地图修补", 230, 0, 30, 30, 0));
|
||||
}
|
||||
}
|
||||
|
||||
getroottable()["LenheartFuncTab"].rawset("RepairWorldMapFuncN", Lenheart_RepairWorldMap_Fun);
|
||||
Reference in New Issue
Block a user