MCPcopy Create free account
hub / github.com/esengine/esengine / setup

Method setup

packages/fairygui/src/core/Controller.ts:273–317  ·  view source on GitHub ↗

* Setup controller from buffer * 从缓冲区设置控制器

(buffer: ByteBuffer)

Source from the content-addressed store, hash-verified

271 * 从缓冲区设置控制器
272 */
273 public setup(buffer: ByteBuffer): void {
274 const beginPos = buffer.pos;
275 buffer.seek(beginPos, 0);
276
277 this.name = buffer.readS() || '';
278 if (buffer.readBool()) {
279 this.autoRadioGroupDepth = true;
280 }
281
282 buffer.seek(beginPos, 1);
283
284 const cnt = buffer.getInt16();
285 for (let i = 0; i < cnt; i++) {
286 this._pageIds.push(buffer.readS() || '');
287 this._pageNames.push(buffer.readS() || '');
288 }
289
290 // Home page index (simplified - ignore advanced home page types)
291 let homePageIndex = 0;
292 const homePageType = buffer.readByte();
293 if (homePageType === 1) {
294 homePageIndex = buffer.getInt16();
295 } else if (homePageType === 2 || homePageType === 3) {
296 // Skip variable name for type 3
297 if (homePageType === 3) {
298 buffer.readS();
299 }
300 }
301
302 buffer.seek(beginPos, 2);
303
304 // Skip actions for now
305 const actionCount = buffer.getInt16();
306 for (let i = 0; i < actionCount; i++) {
307 let nextPos = buffer.getInt16();
308 nextPos += buffer.pos;
309 buffer.pos = nextPos;
310 }
311
312 if (this.parent && this._pageIds.length > 0) {
313 this._selectedIndex = homePageIndex;
314 } else {
315 this._selectedIndex = -1;
316 }
317 }
318
319 /**
320 * Dispose

Callers 2

setup_afterAddMethod · 0.45

Calls 6

readSMethod · 0.80
readBoolMethod · 0.80
getInt16Method · 0.80
readByteMethod · 0.80
seekMethod · 0.65
pushMethod · 0.65

Tested by

no test coverage detected