jiuyhfdj/wdsm_cocos_lua_debug_shell
# WDSM Cocos-Lua Debug Shell 这是从 D:\UU\23707_wdsm_wdsm_3k_20260319_28719_m0.apk 逆向整理出的 Cocos2d-x Lua Win32 调试壳工程,用于继续恢复、修改和预览游戏 UI / 建筑功能。 给 Max 接手先读 D:\UU\wdsm_cocos_lua_debug_shell\MAX_START_HERE.md D:\UU\wdsm_cocos_lua_debug_shell\MAX_RUNBOOK.md D:\UU\wdsm_cocos_lua_debug_shell\MAX_TASK_STATE.md D:\UU\wdsm_cocos_lua_debug_shell\MAX_PROJECT_INDEX.md D:\UU\wdsm_cocos_lua_debug_shell\work\mission-state.md 快速启动… See the full description on the dataset page: https://huggingface.co/datasets/jiuyhfdj/wdsm_cocos_lua_debug_shell.
028
1 2local Event = class("Event")3 4local EXPORTED_METHODS = {5 "addEventListener",6 "dispatchEvent",7 "removeEventListener",8 "removeEventListenersByTag",9 "removeEventListenersByEvent",10 "removeAllEventListeners",11 "hasEventListener",12 "dumpAllEventListeners",13}14 15function Event:init_()16 self.target_ = nil17 self.listeners_ = {}18 self.nextListenerHandleIndex_ = 019end20 21function Event:bind(target)22 self:init_()23 cc.setmethods(target, self, EXPORTED_METHODS)24 self.target_ = target25end26 27function Event:unbind(target)28 cc.unsetmethods(target, EXPORTED_METHODS)29 self:init_()30end31 32function Event:on(eventName, listener, tag)33 assert(type(eventName) == "string" and eventName ~= "",34 "Event:addEventListener() - invalid eventName")35 eventName = string.upper(eventName)36 if self.listeners_[eventName] == nil then37 self.listeners_[eventName] = {}38 end39 40 self.nextListenerHandleIndex_ = self.nextListenerHandleIndex_ + 141 local handle = tostring(self.nextListenerHandleIndex_)42 tag = tag or ""43 self.listeners_[eventName][handle] = {listener, tag}44 45 if DEBUG > 1 then46 printInfo("%s [Event] addEventListener() - event: %s, handle: %s, tag: \"%s\"",47 tostring(self.target_), eventName, handle, tostring(tag))48 end49 50 return self.target_, handle51end52 53Event.addEventListener = Event.on54 55function Event:dispatchEvent(event)56 event.name = string.upper(tostring(event.name))57 local eventName = event.name58 if DEBUG > 1 then59 printInfo("%s [Event] dispatchEvent() - event %s", tostring(self.target_), eventName)60 end61 62 if self.listeners_[eventName] == nil then return end63 event.target = self.target_64 event.stop_ = false65 event.stop = function(self)66 self.stop_ = true67 end68 69 for handle, listener in pairs(self.listeners_[eventName]) do70 if DEBUG > 1 then71 printInfo("%s [Event] dispatchEvent() - dispatching event %s to listener %s", tostring(self.target_), eventName, handle)72 end73 -- listener[1] = listener74 -- listener[2] = tag75 event.tag = listener[2]76 listener[1](event)77 if event.stop_ then78 if DEBUG > 1 then79 printInfo("%s [Event] dispatchEvent() - break dispatching for event %s", tostring(self.target_), eventName)80 end81 break82 end83 end84 85 return self.target_86end87 88function Event:removeEventListener(handleToRemove)89 for eventName, listenersForEvent in pairs(self.listeners_) do90 for handle, _ in pairs(listenersForEvent) do91 if handle == handleToRemove then92 listenersForEvent[handle] = nil93 if DEBUG > 1 then94 printInfo("%s [Event] removeEventListener() - remove listener [%s] for event %s", tostring(self.target_), handle, eventName)95 end96 return self.target_97 end98 end99 end100 101 return self.target_102end103 104function Event:removeEventListenersByTag(tagToRemove)105 for eventName, listenersForEvent in pairs(self.listeners_) do106 for handle, listener in pairs(listenersForEvent) do107 -- listener[1] = listener108 -- listener[2] = tag109 if listener[2] == tagToRemove then110 listenersForEvent[handle] = nil111 if DEBUG > 1 then112 printInfo("%s [Event] removeEventListener() - remove listener [%s] for event %s", tostring(self.target_), handle, eventName)113 end114 end115 end116 end117 118 return self.target_119end120 121function Event:removeEventListenersByEvent(eventName)122 self.listeners_[string.upper(eventName)] = nil123 if DEBUG > 1 then124 printInfo("%s [Event] removeAllEventListenersForEvent() - remove all listeners for event %s", tostring(self.target_), eventName)125 end126 return self.target_127end128 129function Event:removeAllEventListeners()130 self.listeners_ = {}131 if DEBUG > 1 then132 printInfo("%s [Event] removeAllEventListeners() - remove all listeners", tostring(self.target_))133 end134 return self.target_135end136 137function Event:hasEventListener(eventName)138 eventName = string.upper(tostring(eventName))139 local t = self.listeners_[eventName]140 for _, __ in pairs(t) do141 return true142 end143 return false144end145 146function Event:dumpAllEventListeners()147 print("---- Event:dumpAllEventListeners() ----")148 for name, listeners in pairs(self.listeners_) do149 printf("-- event: %s", name)150 for handle, listener in pairs(listeners) do151 printf("-- listener: %s, handle: %s", tostring(listener[1]), tostring(handle))152 end153 end154 return self.target_155end156 157return Event158 