135 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名: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) {
 | |
|     return;
 | |
|     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); |