├── README.md
├── kbengine.js
└── kbengine_ts
├── kbengine.bat
├── kbengine
├── kbengine.d.ts
├── kbengine.js
└── kbengine.min.js
├── package.json
├── src
└── KBEngine.ts
└── tsconfig.json
/README.md:
--------------------------------------------------------------------------------
1 | kbengine_js_plugins
2 | ========================
3 |
4 |
5 |
6 | Usage
7 | ---------------------
8 |
9 | 1: Create KBEngine
10 | // Initialization
11 | var args = new KBEngine.KBEngineArgs();
12 |
13 | args.ip = "127.0.0.1";
14 | args.port = 20013;
15 | KBEngine.create(args);
16 |
17 | 2: Implment the KBE defined entity (including the client part)
18 | See: kbengine\kbengine_demos_assets\scripts\entities.xml(hasClient="true") need to implment
19 |
20 |
21 |
22 |
23 |
24 | KBEngine.Account = KBEngine.Entity.extend(
25 | {
26 | // entity initialization
27 | __init__ : function()
28 | {
29 | this._super();
30 | }
31 | }
32 |
33 | Call entity server method
34 | entity.baseCall("base_func", 1, "arg2", "argN")
35 | entity.cellCall("cell_func", 1, "arg2", "argN")
36 |
37 | 3: Monitor KBE-plugins event
38 | For example:
39 | var StartSceneLayer = Class.extend({
40 | {
41 | installEvents : function()
42 | {
43 | KBEngine.Event.register("onConnectionState", this, "onConnectionState");
44 | }
45 |
46 | onConnectionState : function(success)
47 | {
48 | // KBE-plugins event fired
49 | }
50 | }
51 |
52 | 4: Fire events to the KBE-plugins
53 | For example:
54 | KBEngine.Event.fire("login", this.usernamebox.getString(), this.passwordbox.getString(), "kbengine_cocos2d_js_demo");
55 |
56 |
57 |
58 | KBE-Plugin fire-out events(KBE => Unity):
59 | ---------------------
60 |
61 | Entity events:
62 | onEnterWorld
63 | Description:
64 | Entity enter the client-world.
65 |
66 | Event-datas:
67 | Enity
68 |
69 |
70 | onLeaveWorld
71 | Description:
72 | Entity leave the client-world.
73 |
74 | Event-datas:
75 | Enity
76 |
77 | onEnterSpace
78 | Description:
79 | Player enter the new space.
80 |
81 | Event-datas:
82 | Enity
83 |
84 | onLeaveSpace
85 | Description:
86 | Player enter the space.
87 |
88 | Event-datas:
89 | Enity
90 |
91 | onCreateAccountResult
92 | Description:
93 | Create account feedback results.
94 |
95 | Event-datas:
96 | uint16: retcode
97 | http://kbengine.org/docs/configuration/server_errors.html
98 |
99 | bytes: datas
100 | If you use third-party account system, the system may fill some of the third-party additional datas.
101 |
102 | onControlled
103 | Description:
104 | Triggered when the entity is controlled or out of control.
105 |
106 | Event-datas:
107 | Enity
108 | bool: isControlled
109 |
110 | onLoseControlledEntity
111 | Description:
112 | Lose controlled entity.
113 |
114 | Event-datas:
115 | Enity
116 |
117 | set_position
118 | Description:
119 | Sets the current position of the entity.
120 |
121 | Event-datas:
122 | Enity
123 |
124 | set_direction
125 | Description:
126 | Sets the current direction of the entity.
127 |
128 | Event-datas:
129 | Enity
130 |
131 | updatePosition
132 | Description:
133 | The entity position is updated, you can smooth the moving entity to new location.
134 |
135 | Event-datas:
136 | Enity
137 |
138 | Protocol events:
139 | onVersionNotMatch
140 | Description:
141 | Engine version mismatch.
142 |
143 | Event-datas:
144 | string: clientVersion
145 | string: serverVersion
146 |
147 | onScriptVersionNotMatch
148 | Description:
149 | script version mismatch.
150 |
151 | Event-datas:
152 | string: clientScriptVersion
153 | string: serverScriptVersion
154 |
155 | Loginapp_importClientMessages
156 | Description:
157 | Importing the message protocol for loginapp and client.
158 |
159 | Event-datas:
160 | No datas.
161 |
162 | Baseapp_importClientMessages
163 | Description:
164 | Importing the message protocol for baseapp and client.
165 |
166 | Event-datas:
167 | No datas.
168 |
169 | Baseapp_importClientEntityDef
170 | Description:
171 | Protocol description for importing entities.
172 |
173 | Event-datas:
174 | No datas.
175 |
176 | Login and Logout status:
177 | onLoginBaseapp
178 | Description:
179 | Login to baseapp.
180 |
181 | Event-datas:
182 | No datas.
183 |
184 | onReloginBaseapp
185 | Description:
186 | Relogin to baseapp.
187 |
188 | Event-datas:
189 | No datas.
190 |
191 | onKicked
192 | Description:
193 | Kicked of the current server.
194 |
195 | Event-datas:
196 | uint16: retcode
197 | http://kbengine.org/docs/configuration/server_errors.html
198 |
199 | onLoginFailed
200 | Description:
201 | Login failed.
202 |
203 | Event-datas:
204 | uint16: retcode
205 | bytes: serverdatas
206 | http://kbengine.org/docs/configuration/server_errors.html
207 |
208 | onLoginBaseappFailed
209 | Description:
210 | Login baseapp failed.
211 |
212 | Event-datas:
213 | uint16: retcode
214 | http://kbengine.org/docs/configuration/server_errors.html
215 |
216 | onReloginBaseappFailed
217 | Description:
218 | Relogin baseapp failed.
219 |
220 | Event-datas:
221 | uint16: retcode
222 | http://kbengine.org/docs/configuration/server_errors.html
223 |
224 | onReloginBaseappSuccessfully
225 | Description:
226 | Relogin baseapp success.
227 |
228 | Event-datas:
229 | No datas.
230 |
231 | Space events:
232 | addSpaceGeometryMapping
233 | Description:
234 | The current space is specified by the geometry mapping.
235 | Popular said is to load the specified Map Resources.
236 |
237 | Event-datas:
238 | string: resPath
239 |
240 | onSetSpaceData
241 | Description:
242 | Server spaceData set data.
243 |
244 | Event-datas:
245 | int32: spaceID
246 | string: key
247 | string value
248 |
249 | onDelSpaceData
250 | Description:
251 | Server spaceData delete data.
252 |
253 | Event-datas:
254 | int32: spaceID
255 | string: key
256 |
257 | Network events:
258 | onConnectionState
259 | Description:
260 | Status of connection server.
261 |
262 | Event-datas:
263 | bool: success or fail
264 |
265 | onDisconnected
266 | Description:
267 | Status of connection server.
268 |
269 | Event-datas:
270 | No datas.
271 |
272 | Download events:
273 | onStreamDataStarted
274 | Description:
275 | Start downloading data.
276 |
277 | Event-datas:
278 | uint16: resouce id
279 | uint32: data size
280 | string: description
281 |
282 | onStreamDataRecv
283 | Description:
284 | Receive data.
285 |
286 | Event-datas:
287 | uint16: resouce id
288 | bytes: datas
289 |
290 | onStreamDataCompleted
291 | Description:
292 | The downloaded data is completed.
293 |
294 | Event-datas:
295 | uint16: resouce id
296 |
297 |
298 |
299 | KBE-Plugin fire-in events(Unity => KBE):
300 | ---------------------
301 |
302 | createAccount
303 | Description:
304 | Create new account.
305 |
306 | Event-datas:
307 | string: accountName
308 | string: password
309 | bytes: datas
310 | Datas by user defined.
311 | Data will be recorded into the KBE account database, you can access the datas through the script layer.
312 | If you use third-party account system, datas will be submitted to the third-party system.
313 |
314 |
315 | login
316 | Description:
317 | Login to server.
318 |
319 | Event-datas:
320 | string: accountName
321 | string: password
322 | bytes: datas
323 | Datas by user defined.
324 | Data will be recorded into the KBE account database, you can access the datas through the script layer.
325 | If you use third-party account system, datas will be submitted to the third-party system.
326 |
327 | reloginBaseapp
328 | Description:
329 | Relogin to baseapp.
330 |
331 | Event-datas:
332 | No datas.
333 |
334 | resetPassword
335 | Description:
336 | Reset password.
337 |
338 | Event-datas:
339 | string: accountName
340 |
341 | newPassword
342 | Description:
343 | Request to set up a new password for the account.
344 | Note: account must be online
345 |
346 | Event-datas:
347 | string: old_password
348 | string: new_password
349 |
350 | bindAccountEmail
351 | Description:
352 | Request server binding account Email.
353 | Note: account must be online
354 |
355 | Event-datas:
356 | string: emailAddress
357 |
358 |
359 |
360 |
--------------------------------------------------------------------------------
/kbengine_ts/kbengine.bat:
--------------------------------------------------------------------------------
1 | REM 将这个脚本放于项目之中,项目框架更新后双击执行即可
2 | REM 首次使用会问是文件或文件夹,一律选文件
3 | REM 如果不是cocos creator,需要改下路径
4 |
5 | REM 这里需要设置kbengine_ts路径
6 | set kbengine=%cd%\..\..\kbengine_js_plugins\kbengine_ts
7 |
8 | set libs=%cd%\assets\Libs
9 | if not exist %libs% (
10 | mkdir %libs%
11 | )
12 |
13 | xcopy /y /c /h /r %kbengine%\bin\kbengine.d.ts %cd%\kbengine.d.ts
14 |
15 | xcopy /y /c /h /r %kbengine%\bin\kbengine.js %libs%\kbengine.js
16 |
--------------------------------------------------------------------------------
/kbengine_ts/kbengine/kbengine.d.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * KBEngine的html5客户端扩展ts版 2.x版本
3 | * cocos creator 环境下使用方法
4 | *
5 | * 注:(下面的是重点)
6 | * 1、实体声明的命名空间为KBEngine.Entities,与官方的KBEngine不同
7 | * 2、 @KBEngine.registerEntity() /// TODO: <---组件使用@KBEngine.registerComponent()
8 | export default class Account extends KBEngine.Entity { /// TODO: 组件继承自KBEngine.EntityComponent,类名等于服务器(实体/组件)名
9 | __comps__ = {组件名:组件类型} ///TODO: 因为组件类型不会从服务器同步,只能获取到EntityComponent,无法获取具体类型,所以需要在实体里进行手动设置,需要代码提示可以手动声明一下
10 | __init__() {
11 | console.log('创建account')
12 | }
13 | }
14 | //这里加入声明用于vscode代码提示
15 | declare global {
16 | namespace KBEngine {
17 | interface IEntities{
18 | Account:new ()=>Account
19 | }
20 | }
21 | }
22 |
23 | * 3、cocos creator编辑器下会出现KBEngine未找到的问题,不影响运行,如果想去掉,将允许编辑器加载勾选
24 | 4、因为下班了,组件的basecall和cellcall还未测试,改天再继续
25 | */
26 | declare namespace KBEngine {
27 | const CLIENT_VERSION = "2.5.0";
28 | const CLIENT_SCRIPT_VERSION = "0.1.0";
29 | const PACKET_MAX_SIZE = 1500;
30 | const PACKET_MAX_SIZE_TCP = 1460;
31 | const PACKET_MAX_SIZE_UDP = 1472;
32 | const MESSAGE_ID_LENGTH = 2;
33 | const MESSAGE_LENGTH_LENGTH = 2;
34 | const MESSAGE_LENGTH1_LENGTH = 4;
35 | const MESSAGE_MAX_SIZE = 65535;
36 | const CLIENT_NO_FLOAT = 0;
37 | const KBE_FLT_MAX = 3.402823466e+38;
38 | }
39 | declare namespace KBEngine {
40 | class INT64 {
41 | constructor(lo: any, hi: any);
42 | lo: number;
43 | hi: number;
44 | sign: number;
45 | toString(): string;
46 | }
47 | class UINT64 {
48 | constructor(lo: any, hi: any);
49 | lo: number;
50 | hi: number;
51 | toString(): string;
52 | }
53 | }
54 | declare namespace KBEngine {
55 | function getQualifiedClassName(value: any): any;
56 | }
57 | declare namespace KBEngine {
58 | /** todo 调试输出模块,这里需要根据使用的引擎不同在这里加入判断条件 */
59 | function INFO_MSG(...args: any[]): void;
60 | function DEBUG_MSG(...args: any[]): void;
61 | function ERROR_MSG(...args: any[]): void;
62 | function WARNING_MSG(...args: any[]): void;
63 | }
64 | declare namespace KBEngine {
65 | function utf8ArrayToString(array: Array): any;
66 | function stringToUTF8Bytes(str: string): any[];
67 | }
68 | declare namespace KBEngine {
69 | class EventInfo {
70 | classinst: any;
71 | callbackfn: any;
72 | constructor(classinst: any, callbackfn: any);
73 | }
74 | class FiredEvent {
75 | evtName: any;
76 | evtInfo: any;
77 | ars: any;
78 | constructor(evtName: any, evtInfo: any, ars: any);
79 | }
80 | interface IEvents {
81 | [evtName: string]: EventInfo[];
82 | }
83 | class Events {
84 | constructor();
85 | _events: IEvents;
86 | _isPause: boolean;
87 | _firedEvents: FiredEvent[];
88 | register(evtName: string, classinst: any, strCallback: string): void;
89 | deregisterAll(classinst: any): void;
90 | deregister(evtName: string, classinst: any): void;
91 | removeAllFiredEvent(classinst: any): void;
92 | removeFiredEvent(evtName: string, classinst: any): void;
93 | fire(evtName: string, ...args: any[]): void;
94 | pasue(): void;
95 | resume(): void;
96 | clear(): void;
97 | }
98 | const Event: Events;
99 | }
100 | declare namespace KBEngine {
101 | class PackFloatXType {
102 | _unionData: ArrayBuffer;
103 | fv: Float32Array;
104 | uv: Uint32Array;
105 | iv: Int32Array;
106 | }
107 | const _xPackData: PackFloatXType;
108 | const _yPackData: PackFloatXType;
109 | const _zPackData: PackFloatXType;
110 | class MemoryStream {
111 | constructor(size_or_buffer: number | ArrayBuffer);
112 | buffer: ArrayBuffer;
113 | rpos: number;
114 | wpos: number;
115 | readInt8(): number;
116 | readInt16(): number;
117 | readInt32(): number;
118 | readInt64(): INT64;
119 | readUint8(): number;
120 | readUint16(): number;
121 | readUint32(): number;
122 | readUint64(): UINT64;
123 | readFloat(): any;
124 | readDouble(): any;
125 | readString(): string;
126 | readBlob(): Uint8Array;
127 | readStream(): MemoryStream;
128 | readPackXZ(): any[];
129 | readPackY(): number;
130 | writeInt8(v: any): void;
131 | writeInt16(v: any): void;
132 | writeInt32(v: any): void;
133 | writeInt64(v: any): void;
134 | writeUint8(v: any): void;
135 | writeUint16(v: any): void;
136 | writeUint32(v: any): void;
137 | writeUint64(v: UINT64): void;
138 | writeFloat(v: any): void;
139 | writeDouble(v: any): void;
140 | writeBlob(v: any): void;
141 | writeString(v: any): void;
142 | append(stream: MemoryStream, offset: number, size: number): void;
143 | readSkip(v: any): void;
144 | space(): number;
145 | length(): number;
146 | readEOF(): boolean;
147 | done(): void;
148 | getbuffer(): ArrayBuffer;
149 | setbuffer(buffer: ArrayBuffer): void;
150 | size(): number;
151 | clear(): void;
152 | reclaimObject(): void;
153 | }
154 | module MemoryStream {
155 | const _objects: MemoryStream[];
156 | function createObject(): MemoryStream;
157 | }
158 | }
159 | declare namespace KBEngine {
160 | class Bundle {
161 | static _objects: Bundle[];
162 | static createObject(): Bundle;
163 | constructor();
164 | memorystreams: Array;
165 | stream: MemoryStream;
166 | numMessage: number;
167 | messageLengthBuffer: Uint8Array;
168 | msgtype: any;
169 | messageLength: number;
170 | newMessage(msgtype: any): void;
171 | writeMsgLength(v: any): void;
172 | fini(issend: any): void;
173 | send(network: any): void;
174 | checkStream(v: any): void;
175 | writeInt8(v: any): void;
176 | writeInt16(v: any): void;
177 | writeInt32(v: any): void;
178 | writeInt64(v: any): void;
179 | writeUint8(v: any): void;
180 | writeUint16(v: any): void;
181 | writeUint32(v: any): void;
182 | writeUint64(v: any): void;
183 | writeFloat(v: any): void;
184 | writeDouble(v: any): void;
185 | writeString(v: any): void;
186 | writeBlob(v: any): void;
187 | clear(): void;
188 | reclaimObject(): void;
189 | }
190 | const reader: MemoryStream;
191 | interface IDataType2Id {
192 | [type: string]: number;
193 | }
194 | let datatype2id: IDataType2Id;
195 | function mappingDataType(): void;
196 | function bindWriter(writer: any, argType: number): any;
197 | function bindReader(argType: number): () => any;
198 | class Message {
199 | id: any;
200 | name: any;
201 | length: any;
202 | argsType: any;
203 | args: any;
204 | handler: any;
205 | constructor(id: any, name: any, length: any, argsType: any, args: any, handler: any);
206 | createFromStream(msgstream: any): any;
207 | handleMessage(msgstream: any): void;
208 | }
209 | module messages {
210 | const loginapp: {};
211 | const baseapp: {};
212 | const Loginapp_importClientMessages: Message;
213 | const Baseapp_importClientMessages: Message;
214 | const Baseapp_importClientEntityDef: Message;
215 | const onImportClientMessages: Message;
216 | }
217 | let clientmessages: {};
218 | let bufferedCreateEntityMessages: {};
219 | }
220 | declare namespace KBEngine {
221 | class Vector2 {
222 | x: number;
223 | y: number;
224 | constructor(x: number, y: number);
225 | distance(pos: Vector2): number;
226 | add(vec2: Vector2): this;
227 | sub(vec2: Vector2): this;
228 | mul(num: number): this;
229 | div(num: number): this;
230 | neg(): this;
231 | }
232 | class Vector3 {
233 | x: number;
234 | y: number;
235 | z: number;
236 | constructor(x: number, y: number, z: number);
237 | distance(pos: Vector3): number;
238 | add(vec3: Vector3): this;
239 | sub(vec3: Vector3): this;
240 | mul(num: number): this;
241 | div(num: number): this;
242 | neg(): this;
243 | }
244 | class Vector4 {
245 | x: number;
246 | y: number;
247 | z: number;
248 | w: number;
249 | constructor(x: number, y: number, z: number, w: number);
250 | distance(pos: Vector4): number;
251 | add(vec4: Vector4): this;
252 | sub(vec4: Vector4): this;
253 | mul(num: number): this;
254 | div(num: number): this;
255 | neg(): this;
256 | }
257 | function clampf(value: any, min_inclusive: any, max_inclusive: any): any;
258 | function int82angle(angle: number, half: boolean): number;
259 | function angle2int8(v: number, half: boolean): number;
260 | }
261 | declare namespace KBEngine {
262 | interface IEntities {
263 | }
264 | const Entities: IEntities;
265 | class Entity {
266 | constructor();
267 | protected __comps__: {
268 | [compName: string]: new () => EntityComponent;
269 | };
270 | id: number;
271 | className: string;
272 | position: Vector3;
273 | direction: Vector3;
274 | velocity: number;
275 | cell: any;
276 | base: any;
277 | inWorld: boolean;
278 | inited: boolean;
279 | isControlled: boolean;
280 | entityLastLocalPos: Vector3;
281 | entityLastLocalDir: Vector3;
282 | isOnGround: boolean;
283 | __init__(): void;
284 | attachComponents(): void;
285 | getComponents(compName: string, all?: boolean): any;
286 | detachComponents(): void;
287 | callPropertysSetMethods(): void;
288 | onDestroy(): void;
289 | onControlled(bIsControlled: any): void;
290 | isPlayer(): boolean;
291 | baseCall(type: string, ...params: any[]): void;
292 | cellCall(type: string, ...params: any[]): void;
293 | enterWorld(): void;
294 | onComponentsEnterworld(): void;
295 | onComponentsLeaveworld(): void;
296 | onEnterWorld(): void;
297 | leaveWorld(): void;
298 | onLeaveWorld(): void;
299 | enterSpace(): void;
300 | onEnterSpace(): void;
301 | leaveSpace(): void;
302 | onLeaveSpace(): void;
303 | set_position(): void;
304 | onUpdateVolatileData(): void;
305 | onUpdatePropertys(stream: MemoryStream): void;
306 | set_direction(old: any): void;
307 | onRemoteMethodCall(stream: MemoryStream): void;
308 | }
309 | function registerEntity(): (ctor: new () => Entity) => void;
310 | }
311 | declare namespace KBEngine {
312 | class EntityComponent {
313 | id: number;
314 | entityComponentPropertyID: number;
315 | componentType: number;
316 | ownerID: number;
317 | owner: Entity;
318 | className: string;
319 | base: EntityComponentCall;
320 | cell: EntityComponentCall;
321 | protected onAttached(owner: Entity): void;
322 | protected onDetached(owner: Entity): void;
323 | protected onEnterWorld(): void;
324 | protected onLeaveWorld(): void;
325 | baseCall(type: string, ...params: any[]): void;
326 | cellCall(type: string, ...params: any[]): void;
327 | onUpdatePropertys(propUtype: number, stream: MemoryStream, maxCount: number): void;
328 | onRemoteMethodCall(propUtype: number, stream: MemoryStream): void;
329 | createFromStream(stream: MemoryStream, ecpId: number): void;
330 | }
331 | function registerComponent(): (ctor: new () => EntityComponent) => void;
332 | }
333 | declare namespace KBEngine {
334 | const ENTITYCALL_TYPE_CELL = 0;
335 | const ENTITYCALL_TYPE_BASE = 1;
336 | class EntityCall {
337 | constructor();
338 | id: number;
339 | className: string;
340 | type: number;
341 | networkInterface: KBEngineApp;
342 | bundle: any;
343 | isBase(): boolean;
344 | isCell(): boolean;
345 | newCall(): any;
346 | sendCall(bundle?: Bundle): void;
347 | }
348 | class EntityComponentCall extends EntityCall {
349 | entityComponentPropertyID: number;
350 | constructor(ecpId: number, eid: number, className: string);
351 | }
352 | class DATATYPE_UINT8 {
353 | bind(): void;
354 | createFromStream(stream: any): any;
355 | addToStream(stream: any, v: any): void;
356 | parseDefaultValStr(v: any): number;
357 | isSameType(v: any): boolean;
358 | }
359 | class DATATYPE_UINT16 {
360 | bind(): void;
361 | createFromStream(stream: any): any;
362 | addToStream(stream: any, v: any): void;
363 | parseDefaultValStr(v: any): number;
364 | isSameType(v: any): boolean;
365 | }
366 | class DATATYPE_UINT32 {
367 | bind(): void;
368 | createFromStream(stream: any): any;
369 | addToStream(stream: any, v: any): void;
370 | parseDefaultValStr(v: any): number;
371 | isSameType(v: any): boolean;
372 | }
373 | class DATATYPE_UINT64 {
374 | bind(): void;
375 | createFromStream(stream: any): any;
376 | addToStream(stream: any, v: any): void;
377 | parseDefaultValStr(v: any): number;
378 | isSameType(v: any): boolean;
379 | }
380 | class DATATYPE_INT8 {
381 | bind(): void;
382 | createFromStream(stream: any): any;
383 | addToStream(stream: any, v: any): void;
384 | parseDefaultValStr(v: any): number;
385 | isSameType(v: any): boolean;
386 | }
387 | class DATATYPE_INT16 {
388 | bind(): void;
389 | createFromStream(stream: any): any;
390 | addToStream(stream: any, v: any): void;
391 | parseDefaultValStr(v: any): number;
392 | isSameType(v: any): boolean;
393 | }
394 | class DATATYPE_INT32 {
395 | bind(): void;
396 | createFromStream(stream: any): any;
397 | addToStream(stream: any, v: any): void;
398 | parseDefaultValStr(v: any): number;
399 | isSameType(v: any): boolean;
400 | }
401 | class DATATYPE_INT64 {
402 | bind(): void;
403 | createFromStream(stream: any): any;
404 | addToStream(stream: any, v: any): void;
405 | parseDefaultValStr(v: any): number;
406 | isSameType(v: any): boolean;
407 | }
408 | class DATATYPE_FLOAT {
409 | bind(): void;
410 | createFromStream(stream: any): any;
411 | addToStream(stream: any, v: any): void;
412 | parseDefaultValStr(v: any): number;
413 | isSameType(v: any): boolean;
414 | }
415 | class DATATYPE_DOUBLE extends DATATYPE_FLOAT {
416 | createFromStream(stream: any): any;
417 | addToStream(stream: any, v: any): void;
418 | }
419 | class DATATYPE_STRING {
420 | bind(): void;
421 | createFromStream(stream: any): any;
422 | addToStream(stream: any, v: any): void;
423 | parseDefaultValStr(v: any): string;
424 | isSameType(v: any): boolean;
425 | }
426 | class DATATYPE_VECTOR2 {
427 | bind(): void;
428 | createFromStream(stream: any): Vector2;
429 | addToStream(stream: any, v: any): void;
430 | parseDefaultValStr(v: any): Vector2;
431 | isSameType(v: any): boolean;
432 | }
433 | class DATATYPE_VECTOR3 {
434 | bind(): void;
435 | createFromStream(stream: any): Vector3;
436 | addToStream(stream: any, v: any): void;
437 | parseDefaultValStr(v: any): Vector3;
438 | isSameType(v: any): boolean;
439 | }
440 | class DATATYPE_VECTOR4 {
441 | bind(): void;
442 | createFromStream(stream: any): Vector4;
443 | addToStream(stream: any, v: any): void;
444 | parseDefaultValStr(v: any): Vector4;
445 | isSameType(v: any): boolean;
446 | }
447 | class DATATYPE_PYTHON {
448 | bind(): void;
449 | createFromStream(stream: any): any;
450 | addToStream(stream: any, v: any): void;
451 | parseDefaultValStr(v: any): Uint8Array;
452 | isSameType(v: any): boolean;
453 | }
454 | class DATATYPE_UNICODE {
455 | bind(): void;
456 | createFromStream(stream: any): any;
457 | addToStream(stream: any, v: any): void;
458 | parseDefaultValStr(v: any): string;
459 | isSameType(v: any): boolean;
460 | }
461 | class DATATYPE_ENTITYCALL {
462 | bind(): void;
463 | createFromStream(stream: any): void;
464 | addToStream(stream: any, v: any): void;
465 | parseDefaultValStr(v: any): Uint8Array;
466 | isSameType(v: any): boolean;
467 | }
468 | class DATATYPE_BLOB {
469 | bind(): void;
470 | createFromStream(stream: any): Uint8Array;
471 | addToStream(stream: any, v: any): void;
472 | parseDefaultValStr(v: any): Uint8Array;
473 | isSameType(v: any): boolean;
474 | }
475 | class DATATYPE_ARRAY {
476 | type: any;
477 | bind(): void;
478 | createFromStream(stream: any): any[];
479 | addToStream(stream: any, v: any): void;
480 | parseDefaultValStr(v: any): any[];
481 | isSameType(v: any): boolean;
482 | }
483 | class DATATYPE_FIXED_DICT {
484 | dicttype: {};
485 | implementedBy: any;
486 | bind(): void;
487 | createFromStream(stream: any): {};
488 | addToStream(stream: any, v: any): void;
489 | parseDefaultValStr(v: any): {};
490 | isSameType(v: any): boolean;
491 | }
492 | module datatypes {
493 | const UINT8: DATATYPE_UINT8;
494 | const UINT16: DATATYPE_UINT16;
495 | const UINT32: DATATYPE_UINT32;
496 | const UINT64: DATATYPE_UINT64;
497 | const INT8: DATATYPE_INT8;
498 | const INT16: DATATYPE_INT16;
499 | const INT32: DATATYPE_INT32;
500 | const INT64: DATATYPE_INT64;
501 | const FLOAT: DATATYPE_FLOAT;
502 | const DOUBLE: DATATYPE_DOUBLE;
503 | const STRING: DATATYPE_STRING;
504 | const VECTOR2: DATATYPE_VECTOR2;
505 | const VECTOR3: DATATYPE_VECTOR3;
506 | const VECTOR4: DATATYPE_VECTOR4;
507 | const PYTHON: DATATYPE_PYTHON;
508 | const UNICODE: DATATYPE_UNICODE;
509 | const ENTITYCALL: DATATYPE_ENTITYCALL;
510 | const BLOB: DATATYPE_BLOB;
511 | }
512 | }
513 | declare namespace KBEngine {
514 | class KBEngineArgs {
515 | ip: string;
516 | port: number;
517 | updateHZ: number;
518 | serverHeartbeatTick: number;
519 | isWss: boolean;
520 | readonly protocol: string;
521 | forceBasePort: number;
522 | clientType: number;
523 | isOnInitCallPropertysSetMethods: boolean;
524 | }
525 | const EventTypes: {
526 | createAccount: string;
527 | login: string;
528 | logout: string;
529 | reloginBaseapp: string;
530 | bindAccountEmail: string;
531 | newPassword: string;
532 | onKicked: string;
533 | onDisconnected: string;
534 | onConnectionState: string;
535 | onCreateAccountResult: string;
536 | onVersionNotMatch: string;
537 | onScriptVersionNotMatch: string;
538 | onLoginFailed: string;
539 | onLoginBaseapp: string;
540 | onLoginBaseappFailed: string;
541 | onReloginBaseapp: string;
542 | onReloginBaseappSuccessfully: string;
543 | onReloginBaseappFailed: string;
544 | onEnterWorld: string;
545 | onLeaveWorld: string;
546 | onEnterSpace: string;
547 | onLeaveSpace: string;
548 | set_position: string;
549 | set_direction: string;
550 | updatePosition: string;
551 | addSpaceGeometryMapping: string;
552 | onSetSpaceData: string;
553 | onDelSpaceData: string;
554 | onControlled: string;
555 | onLoseControlledEntity: string;
556 | onStreamDataStarted: string;
557 | onStreamDataRecv: string;
558 | onStreamDataCompleted: string;
559 | };
560 | }
561 | declare namespace KBEngine {
562 | const moduledefs: {};
563 | class KBEngineApp {
564 | args: KBEngineArgs;
565 | constructor(args: KBEngineArgs);
566 | baseappIp: string;
567 | username: string;
568 | password: string;
569 | clientdatas: string;
570 | encryptedKey: string;
571 | loginappMessageImported: boolean;
572 | baseappMessageImported: boolean;
573 | serverErrorsDescrImported: boolean;
574 | entitydefImported: boolean;
575 | useAliasEntityID: boolean;
576 | serverErrs: {
577 | [err: string]: ServerErr;
578 | };
579 | baseappIP: string;
580 | baseappPort: number;
581 | baseappUdpPort: number;
582 | currMsgID: number;
583 | currMsgCount: number;
584 | currMsgLen: number;
585 | fragmentStream: any;
586 | fragmentDatasFlag: number;
587 | fragmentDatasRemain: number;
588 | socket: any;
589 | currserver: string;
590 | currstate: string;
591 | currconnect: string;
592 | serverdatas: string;
593 | serverVersion: string;
594 | serverScriptVersion: string;
595 | serverProtocolMD5: string;
596 | serverEntityDefMD5: string;
597 | clientVersion: string;
598 | clientScriptVersion: string;
599 | entity_uuid: any;
600 | entity_id: number;
601 | entity_type: string;
602 | entityServerPos: Vector3;
603 | entities: {};
604 | entityIDAliasIDList: any[];
605 | controlledEntities: any[];
606 | spacedata: {};
607 | spaceID: number;
608 | spaceResPath: string;
609 | isLoadedGeometry: boolean;
610 | lastTickTime: number;
611 | lastTickCBTime: number;
612 | component: any;
613 | msgStream: MemoryStream;
614 | resetSocket(): void;
615 | reset(): void;
616 | installEvents(): void;
617 | uninstallEvents(): void;
618 | hello(): void;
619 | player(): any;
620 | findEntity(entityID: any): any;
621 | connect(host: any, port: any): void;
622 | disconnect(): void;
623 | onopen(): void;
624 | onerror_before_onopen(evt: any): void;
625 | onerror_after_onopen(evt: any): void;
626 | onmessage(msg: any): void;
627 | writeFragmentMessage(FragmentDataType: any, stream: MemoryStream, datasize: any): void;
628 | mergeFragmentMessage(stream: MemoryStream): boolean | 0;
629 | onclose(): void;
630 | send(msg: any): void;
631 | close(): void;
632 | update(): void;
633 | Client_onAppActiveTickCB(): void;
634 | serverErr(id: any): string;
635 | Client_onImportServerErrorsDescr(stream: any): void;
636 | Client_onImportClientSdk(stream: MemoryStream): void;
637 | onOpenLoginapp_login(): void;
638 | onOpenLoginapp_createAccount(): void;
639 | onImportClientMessagesCompleted(): void;
640 | createDataTypeFromStreams(stream: any, canprint: any): void;
641 | createDataTypeFromStream(stream: any, canprint: any): void;
642 | Client_onImportClientEntityDef(stream: any): void;
643 | Client_onVersionNotMatch(stream: any): void;
644 | Client_onScriptVersionNotMatch(stream: any): void;
645 | onImportEntityDefCompleted(): void;
646 | importClientMessages(stream: any): void;
647 | Client_onImportClientMessages(msg: any): void;
648 | createAccount(username: any, password: any, datas: any): void;
649 | createAccount_loginapp(noconnect: any): void;
650 | bindAccountEmail(emailAddress: any): void;
651 | newPassword(old_password: any, new_password: any): void;
652 | logout(): void;
653 | login(username: any, password: any, datas: any): void;
654 | login_loginapp(noconnect: any): void;
655 | onOpenLoginapp_resetpassword(): void;
656 | reset_password(username: any): void;
657 | resetpassword_loginapp(noconnect: any): void;
658 | onOpenBaseapp(): void;
659 | login_baseapp(noconnect: any): void;
660 | reloginBaseapp(): void;
661 | onReOpenBaseapp(): void;
662 | Client_onHelloCB(args: any): void;
663 | Client_onLoginFailed(args: any): void;
664 | Client_onLoginSuccessfully(args: any): void;
665 | Client_onLoginBaseappFailed(failedcode: any): void;
666 | Client_onReloginBaseappFailed(failedcode: any): void;
667 | Client_onReloginBaseappSuccessfully(stream: any): void;
668 | entityclass: {};
669 | getentityclass(entityType: any): any;
670 | Client_onCreatedProxies(rndUUID: any, eid: any, entityType: any): void;
671 | getViewEntityIDFromStream(stream: any): number;
672 | onUpdatePropertys_(eid: any, stream: any): void;
673 | Client_onUpdatePropertysOptimized(stream: any): void;
674 | Client_onUpdatePropertys(stream: any): void;
675 | onRemoteMethodCall_(eid: any, stream: any): void;
676 | Client_onRemoteMethodCallOptimized(stream: any): void;
677 | Client_onRemoteMethodCall(stream: any): void;
678 | Client_onEntityEnterWorld(stream: any): void;
679 | Client_onEntityLeaveWorldOptimized(stream: any): void;
680 | Client_onEntityLeaveWorld(eid: any): void;
681 | Client_onEntityDestroyed(eid: any): void;
682 | Client_onEntityEnterSpace(stream: any): void;
683 | Client_onEntityLeaveSpace(eid: any): void;
684 | Client_onKicked(failedcode: any): void;
685 | Client_onCreateAccountResult(stream: any): void;
686 | Client_onControlEntity(eid: any, isControlled: any): void;
687 | updatePlayerToServer(): void;
688 | addSpaceGeometryMapping(spaceID: any, respath: any): void;
689 | clearSpace(isAll: any): void;
690 | clearEntities(isAll: any): void;
691 | Client_initSpaceData(stream: any): void;
692 | Client_setSpaceData(spaceID: any, key: any, value: any): void;
693 | Client_delSpaceData(spaceID: any, key: any): void;
694 | Client_getSpaceData(spaceID: any, key: any): any;
695 | Client_onUpdateBasePos(x: any, y: any, z: any): void;
696 | Client_onUpdateBasePosXZ(x: any, z: any): void;
697 | Client_onUpdateData(stream: any): void;
698 | Client_onSetEntityPosAndDir(stream: any): void;
699 | Client_onUpdateData_ypr(stream: any): void;
700 | Client_onUpdateData_yp(stream: any): void;
701 | Client_onUpdateData_yr(stream: any): void;
702 | Client_onUpdateData_pr(stream: any): void;
703 | Client_onUpdateData_y(stream: any): void;
704 | Client_onUpdateData_p(stream: any): void;
705 | Client_onUpdateData_r(stream: any): void;
706 | Client_onUpdateData_xz(stream: any): void;
707 | Client_onUpdateData_xz_ypr(stream: any): void;
708 | Client_onUpdateData_xz_yp(stream: any): void;
709 | Client_onUpdateData_xz_yr(stream: any): void;
710 | Client_onUpdateData_xz_pr(stream: any): void;
711 | Client_onUpdateData_xz_y(stream: any): void;
712 | Client_onUpdateData_xz_p(stream: any): void;
713 | Client_onUpdateData_xz_r(stream: any): void;
714 | Client_onUpdateData_xyz(stream: any): void;
715 | Client_onUpdateData_xyz_ypr(stream: any): void;
716 | Client_onUpdateData_xyz_yp(stream: any): void;
717 | Client_onUpdateData_xyz_yr(stream: any): void;
718 | Client_onUpdateData_xyz_pr(stream: any): void;
719 | Client_onUpdateData_xyz_y(stream: any): void;
720 | Client_onUpdateData_xyz_p(stream: any): void;
721 | Client_onUpdateData_xyz_r(stream: any): void;
722 | Client_onUpdateData_ypr_optimized(stream: any): void;
723 | Client_onUpdateData_yp_optimized(stream: any): void;
724 | Client_onUpdateData_yr_optimized(stream: any): void;
725 | Client_onUpdateData_pr_optimized(stream: any): void;
726 | Client_onUpdateData_y_optimized(stream: any): void;
727 | Client_onUpdateData_p_optimized(stream: any): void;
728 | Client_onUpdateData_r_optimized(stream: any): void;
729 | Client_onUpdateData_xz_optimized(stream: any): void;
730 | Client_onUpdateData_xz_ypr_optimized(stream: any): void;
731 | Client_onUpdateData_xz_yp_optimized(stream: any): void;
732 | Client_onUpdateData_xz_yr_optimized(stream: any): void;
733 | Client_onUpdateData_xz_pr_optimized(stream: any): void;
734 | Client_onUpdateData_xz_y_optimized(stream: any): void;
735 | Client_onUpdateData_xz_p_optimized(stream: any): void;
736 | Client_onUpdateData_xz_r_optimized(stream: any): void;
737 | Client_onUpdateData_xyz_optimized(stream: any): void;
738 | Client_onUpdateData_xyz_ypr_optimized(stream: any): void;
739 | Client_onUpdateData_xyz_yp_optimized(stream: any): void;
740 | Client_onUpdateData_xyz_yr_optimized(stream: any): void;
741 | Client_onUpdateData_xyz_pr_optimized(stream: any): void;
742 | Client_onUpdateData_xyz_y_optimized(stream: any): void;
743 | Client_onUpdateData_xyz_p_optimized(stream: any): void;
744 | Client_onUpdateData_xyz_r_optimized(stream: any): void;
745 | _updateVolatileData(entityID: any, x: any, y: any, z: any, yaw: any, pitch: any, roll: any, isOnGround: any, isOptimized?: boolean): void;
746 | Client_onStreamDataStarted(id: any, datasize: any, descr: any): void;
747 | Client_onStreamDataRecv(stream: any): void;
748 | Client_onStreamDataCompleted(id: any): void;
749 | Client_onReqAccountResetPasswordCB(failedcode: any): void;
750 | Client_onReqAccountBindEmailCB(failedcode: any): void;
751 | Client_onReqAccountNewPasswordCB(failedcode: any): void;
752 | }
753 | class ServerErr {
754 | name: string;
755 | descr: string;
756 | id: number;
757 | }
758 | const FragmentDataTypes: {
759 | FRAGMENT_DATA_UNKNOW: number;
760 | FRAGMENT_DATA_MESSAGE_ID: number;
761 | FRAGMENT_DATA_MESSAGE_LENGTH: number;
762 | FRAGMENT_DATA_MESSAGE_LENGTH1: number;
763 | FRAGMENT_DATA_MESSAGE_BODY: number;
764 | };
765 | let app: KBEngineApp;
766 | function create(args: KBEngineArgs): void;
767 | function destroy(): void;
768 | }
769 |
--------------------------------------------------------------------------------
/kbengine_ts/kbengine/kbengine.min.js:
--------------------------------------------------------------------------------
1 | var __reflect=this&&this.__reflect||function(t,e,n){t.__class__=e,n?n.push(e):n=[e],t.__types__=t.__types__?n.concat(t.__types__):n},__extends=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);n.prototype=e.prototype,t.prototype=new n},KBEngine;!function(t){t.CLIENT_VERSION="2.5.0",t.CLIENT_SCRIPT_VERSION="0.1.0",t.PACKET_MAX_SIZE=1500,t.PACKET_MAX_SIZE_TCP=1460,t.PACKET_MAX_SIZE_UDP=1472,t.MESSAGE_ID_LENGTH=2,t.MESSAGE_LENGTH_LENGTH=2,t.MESSAGE_LENGTH1_LENGTH=4,t.MESSAGE_MAX_SIZE=65535,t.CLIENT_NO_FLOAT=0,t.KBE_FLT_MAX=3.402823466e38}(KBEngine||(KBEngine={})),window.KBEngine=KBEngine,ArrayBuffer.transfer||(ArrayBuffer.transfer=function(t,e){var n=new ArrayBuffer(e);if(!(t instanceof ArrayBuffer&&n instanceof ArrayBuffer))throw new TypeError("ArrayBuffer.transfer, error: Source and destination must be ArrayBuffer instances");if(!(n.byteLength>=t.byteLength))throw new RangeError("ArrayBuffer.transfer, error: destination has not enough space");var r=new Uint8Array(n);return r.set(new Uint8Array(t),0),n}),function(t){var e=function(){function t(t,e){this.sign=1,this.lo=t,this.hi=e,e>=2147483648&&(this.sign=-1,this.lo>0?(this.lo=4294967296-this.lo&4294967295,this.hi=4294967295-this.hi):(this.lo=4294967296-this.lo&4294967295,this.hi=4294967296-this.hi))}return t.prototype.toString=function(){var t="";this.sign<0&&(t+="-");var e=this.lo.toString(16),n=this.hi.toString(16);if(this.hi>0){t+=n;for(var r=8-e.length;r>0;--r)t+="0"}return t+=e},t}();t.INT64=e,__reflect(e.prototype,"KBEngine.INT64");var n=function(){function t(t,e){this.lo=t,this.hi=e}return t.prototype.toString=function(){var t=this.lo.toString(16),e=this.hi.toString(16),n="";if(this.hi>0){n+=e;for(var r=8-t.length;r>0;--r)n+="0"}return n+=t},t}();t.UINT64=n,__reflect(n.prototype,"KBEngine.UINT64")}(KBEngine||(KBEngine={})),function(t){function e(t){var e=typeof t;if(!t||"object"!=e&&!t.prototype)return e;var n=t.prototype?t.prototype:Object.getPrototypeOf(t);if(n.hasOwnProperty("__class__"))return n.__class__;var r=n.constructor.toString().trim(),a=r.indexOf("("),i=r.substring(9,a),o=i.split(".");return Object.defineProperty(n,"__class__",{value:o[o.length-1],enumerable:!1,writable:!0}),o[o.length-1]}t.getQualifiedClassName=e}(KBEngine||(KBEngine={})),function(t){function e(){for(var t=[],e=0;en;)switch(a=t[n++],a>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e+=String.fromCharCode(a);break;case 12:case 13:i=t[n++],e+=String.fromCharCode((31&a)<<6|63&i);break;case 14:i=t[n++],o=t[n++],e+=String.fromCharCode((15&a)<<12|(63&i)<<6|(63&o)<<0)}return e}function n(t){for(var e=[],n=0;nr?e.push(r):2048>r?e.push(192|r>>6,128|63&r):55296>r||r>=57344?e.push(224|r>>12,128|r>>6&63,128|63&r):(n++,r=65536+((1023&r)<<10|1023&t.charCodeAt(n)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}t.utf8ArrayToString=e,t.stringToUTF8Bytes=n}(KBEngine||(KBEngine={})),function(t){var e=function(){function t(t,e){this.classinst=t,this.callbackfn=e}return t}();t.EventInfo=e,__reflect(e.prototype,"KBEngine.EventInfo");var n=function(){function t(t,e,n){this.evtName=t,this.evtInfo=e,this.ars=n}return t}();t.FiredEvent=n,__reflect(n.prototype,"KBEngine.FiredEvent");var r=function(){function r(){this._events={},this._isPause=!1,this._firedEvents=[]}return r.prototype.register=function(n,r,a){var i=r[a];if(void 0==i)return void t.ERROR_MSG("export class Event::fire: not found strCallback("+r+")!"+a);var o=this._events[n];void 0==o&&(o=[],this._events[n]=o);var p=new e(r,i);o.push(p)},r.prototype.deregisterAll=function(t){for(var e in this._events)this.deregister(e,t)},r.prototype.deregister=function(t,e){var n=this._events[t];if(n)for(var r=n.length-1;r>=0;r--){var a=n[r];a.classinst==e&&n.splice(r,1)}},r.prototype.removeAllFiredEvent=function(t){this.removeFiredEvent("",t)},r.prototype.removeFiredEvent=function(t,e){for(var n=this._firedEvents,r=n.length-1;r>=0;r--){var a=n[r];""!=t&&a.evtName!=t||a.evtInfo.classinst!=e||n.splice(r,1)}},r.prototype.fire=function(e){for(var r=[],a=1;a0;){var e=t.shift(),n=e.evtInfo,r=e.ars;r.length<1?n.callbackfn.apply(n.classinst):n.callbackfn.apply(n.classinst,r)}},r.prototype.clear=function(){this._events={},this._firedEvents.splice(0,this._firedEvents.length)},r}();t.Events=r,__reflect(r.prototype,"KBEngine.Events"),t.Event=new r}(KBEngine||(KBEngine={})),function(t){var e=function(){function t(){this._unionData=new ArrayBuffer(4),this.fv=new Float32Array(this._unionData,0,1),this.uv=new Uint32Array(this._unionData,0,1),this.iv=new Int32Array(this._unionData,0,1)}return t}();t.PackFloatXType=e,__reflect(e.prototype,"KBEngine.PackFloatXType"),t._xPackData=new e,t._yPackData=new e,t._zPackData=new e;var n=function(){function e(t){this.rpos=0,this.wpos=0,t instanceof ArrayBuffer?this.buffer=t:this.buffer=new ArrayBuffer(t),this.rpos=0,this.wpos=0}return e.prototype.readInt8=function(){var t=new Int8Array(this.buffer,this.rpos,1);return this.rpos+=1,t[0]},e.prototype.readInt16=function(){var t=this.readUint16();return t>=32768&&(t-=65536),t},e.prototype.readInt32=function(){var t=this.readUint32();return t>=2147483648&&(t-=4294967296),t},e.prototype.readInt64=function(){var e=this.readUint32(),n=this.readUint32();return new t.INT64(e,n)},e.prototype.readUint8=function(){var t=new Uint8Array(this.buffer,this.rpos,1);return this.rpos+=1,t[0]},e.prototype.readUint16=function(){var t=new Uint8Array(this.buffer,this.rpos);return this.rpos+=2,((255&t[1])<<8)+(255&t[0])},e.prototype.readUint32=function(){var t=new Uint8Array(this.buffer,this.rpos);return this.rpos+=4,(t[3]<<24)+(t[2]<<16)+(t[1]<<8)+t[0]},e.prototype.readUint64=function(){var e=this.readUint32(),n=this.readUint32();return new t.UINT64(e,n)},e.prototype.readFloat=function(){var t;try{t=new Float32Array(this.buffer,this.rpos,1)}catch(e){t=new Float32Array(this.buffer.slice(this.rpos,this.rpos+4))}return this.rpos+=4,t[0]},e.prototype.readDouble=function(){var t;try{t=new Float64Array(this.buffer,this.rpos,1)}catch(e){t=new Float64Array(this.buffer.slice(this.rpos,this.rpos+8),0,1)}return this.rpos+=8,t[0]},e.prototype.readString=function(){for(var t=new Uint8Array(this.buffer,this.rpos),e=0,n="";;){if(0==t[e]){e++;break}if(n+=String.fromCharCode(t[e]),e++,this.rpos+e>=this.buffer.byteLength)throw new Error("export class MemoryStream::readString: rpos("+(this.rpos+e)+")>="+this.buffer.byteLength+" overflow!")}return this.rpos+=e,n},e.prototype.readBlob=function(){var t=this.readUint32(),e=new Uint8Array(this.buffer,this.rpos,t);return this.rpos+=t,e},e.prototype.readStream=function(){var t=new Uint8Array(this.buffer,this.rpos,this.buffer.byteLength-this.rpos);return this.rpos=this.buffer.byteLength,new e(t)},e.prototype.readPackXZ=function(){var e=t._xPackData,n=t._zPackData;e.fv[0]=0,n.fv[0]=0,e.uv[0]=1073741824,n.uv[0]=1073741824;var r=this.readUint8(),a=this.readUint8(),i=this.readUint8(),o=0;o|=r<<16,o|=a<<8,o|=i,e.uv[0]|=(8384512&o)<<3,n.uv[0]|=(2047&o)<<15,e.fv[0]-=2,n.fv[0]-=2,e.uv[0]|=(8388608&o)<<8,n.uv[0]|=(2048&o)<<20;var p=new Array(2);return p[0]=e.fv[0],p[1]=n.fv[0],p},e.prototype.readPackY=function(){var e=this.readUint16(),n=t._yPackData;return n.uv[0]=1073741824,n.uv[0]|=(32767&e)<<12,n.fv[0]-=2,n.uv[0]|=(32768&e)<<16,n.fv[0]},e.prototype.writeInt8=function(t){var e=new Int8Array(this.buffer,this.wpos,1);e[0]=t,this.wpos+=1},e.prototype.writeInt16=function(t){this.writeInt8(255&t),this.writeInt8(t>>8&255)},e.prototype.writeInt32=function(t){for(var e=0;4>e;e++)this.writeInt8(t>>8*e&255)},e.prototype.writeInt64=function(t){this.writeInt32(t.lo),this.writeInt32(t.hi)},e.prototype.writeUint8=function(t){var e=new Uint8Array(this.buffer,this.wpos,1);e[0]=t,this.wpos+=1},e.prototype.writeUint16=function(t){this.writeUint8(255&t),this.writeUint8(t>>8&255)},e.prototype.writeUint32=function(t){for(var e=0;4>e;e++)this.writeUint8(t>>8*e&255)},e.prototype.writeUint64=function(t){this.writeUint32(t.lo),this.writeUint32(t.hi)},e.prototype.writeFloat=function(t){try{var e=new Float32Array(this.buffer,this.wpos,1);e[0]=t}catch(n){var e=new Float32Array(1);e[0]=t;var r=new Uint8Array(this.buffer),a=new Uint8Array(e.buffer);r.set(a,this.wpos)}this.wpos+=4},e.prototype.writeDouble=function(t){try{var e=new Float64Array(this.buffer,this.wpos,1);e[0]=t}catch(n){var e=new Float64Array(1);e[0]=t;var r=new Uint8Array(this.buffer),a=new Uint8Array(e.buffer);r.set(a,this.wpos)}this.wpos+=8},e.prototype.writeBlob=function(e){var n=e.length;if(n+4>this.space())return void t.ERROR_MSG("memorystream::writeBlob: no free!");this.writeUint32(n);var r=new Uint8Array(this.buffer,this.wpos,n);if("string"==typeof e)for(var a=0;n>a;a++)r[a]=e.charCodeAt(a);else for(var a=0;n>a;a++)r[a]=e[a];this.wpos+=n},e.prototype.writeString=function(e){if(e.length>this.space())return void t.ERROR_MSG("memorystream::writeString: no free!");for(var n=new Uint8Array(this.buffer,this.wpos),r=0,a=0;athis.space()&&(this.buffer=ArrayBuffer.transfer(this.buffer,this.buffer.byteLength+2*n));var r=new Uint8Array(this.buffer,this.wpos,n);r.set(new Uint8Array(t.buffer,e,n),0),this.wpos+=n},e.prototype.readSkip=function(t){this.rpos+=t},e.prototype.space=function(){return this.buffer.byteLength-this.wpos},e.prototype.length=function(){return this.wpos-this.rpos},e.prototype.readEOF=function(){return this.buffer.byteLength-this.rpos<=0},e.prototype.done=function(){this.rpos=this.wpos},e.prototype.getbuffer=function(){return this.buffer.slice(this.rpos,this.wpos)},e.prototype.setbuffer=function(t){this.clear(),this.buffer=t},e.prototype.size=function(){return this.buffer.byteLength},e.prototype.clear=function(){this.rpos=this.wpos=0,this.buffer.byteLength>t.PACKET_MAX_SIZE&&(this.buffer=new ArrayBuffer(t.PACKET_MAX_SIZE))},e.prototype.reclaimObject=function(){this.clear(),void 0!=e._objects&&e._objects.push(this)},e}();t.MemoryStream=n,__reflect(n.prototype,"KBEngine.MemoryStream"),function(e){function n(){return e._objects.length>0?e._objects.pop():new e(t.PACKET_MAX_SIZE_TCP)}e._objects=[],e.createObject=n}(n=t.MemoryStream||(t.MemoryStream={}))}(KBEngine||(KBEngine={})),function(t){function e(){t.datatype2id={},t.datatype2id.STRING=1,t.datatype2id["STD::STRING"]=1,t.datatype2id.UINT8=2,t.datatype2id.BOOL=2,t.datatype2id.DATATYPE=2,t.datatype2id.CHAR=2,t.datatype2id.DETAIL_TYPE=2,t.datatype2id.ENTITYCALL_CALL_TYPE=2,t.datatype2id.UINT16=3,t.datatype2id["UNSIGNED SHORT"]=3,t.datatype2id.SERVER_ERROR_CODE=3,t.datatype2id.ENTITY_TYPE=3,t.datatype2id.ENTITY_PROPERTY_UID=3,t.datatype2id.ENTITY_METHOD_UID=3,t.datatype2id.ENTITY_SCRIPT_UID=3,t.datatype2id.DATATYPE_UID=3,t.datatype2id.UINT32=4,t.datatype2id.UINT=4,t.datatype2id["UNSIGNED INT"]=4,t.datatype2id.ARRAYSIZE=4,t.datatype2id.SPACE_ID=4,t.datatype2id.GAME_TIME=4,t.datatype2id.TIMER_ID=4,t.datatype2id.UINT64=5,t.datatype2id.DBID=5,t.datatype2id.COMPONENT_ID=5,t.datatype2id.INT8=6,t.datatype2id.COMPONENT_ORDER=6,t.datatype2id.INT16=7,t.datatype2id.SHORT=7,t.datatype2id.INT32=8,t.datatype2id.INT=8,t.datatype2id.ENTITY_ID=8,t.datatype2id.CALLBACK_ID=8,t.datatype2id.COMPONENT_TYPE=8,t.datatype2id.INT64=9,t.datatype2id.PYTHON=10,t.datatype2id.PY_DICT=10,t.datatype2id.PY_TUPLE=10,t.datatype2id.PY_LIST=10,t.datatype2id.ENTITYCALL=10,t.datatype2id.BLOB=11,t.datatype2id.UNICODE=12,t.datatype2id.FLOAT=13,t.datatype2id.DOUBLE=14,t.datatype2id.VECTOR2=15,t.datatype2id.VECTOR3=16,t.datatype2id.VECTOR4=17,t.datatype2id.FIXED_DICT=18,t.datatype2id.ARRAY=19,t.datatype2id.ENTITYCALL=20}function n(e,n){switch(n){case t.datatype2id.UINT8:return e.writeUint8;case t.datatype2id.UINT16:return e.writeUint16;case t.datatype2id.UINT32:return e.writeUint32;case t.datatype2id.UINT64:return e.writeUint64;case t.datatype2id.INT8:return e.writeInt8;case t.datatype2id.INT16:return e.writeInt16;case t.datatype2id.INT32:return e.writeInt32;case t.datatype2id.INT64:return e.writeInt64;case t.datatype2id.FLOAT:return e.writeFloat;case t.datatype2id.DOUBLE:return e.writeDouble;case t.datatype2id.STRING:return e.writeString;case t.datatype2id.FIXED_DICT:return e.writeStream;case t.datatype2id.ARRAY:return e.writeStream;default:return e.writeStream}}function r(e){switch(e){case t.datatype2id.UINT8:return t.reader.readUint8;case t.datatype2id.UINT16:return t.reader.readUint16;case t.datatype2id.UINT32:return t.reader.readUint32;case t.datatype2id.UINT64:return t.reader.readUint64;case t.datatype2id.INT8:return t.reader.readInt8;case t.datatype2id.INT16:return t.reader.readInt16;case t.datatype2id.INT32:return t.reader.readInt32;case t.datatype2id.INT64:return t.reader.readInt64;case t.datatype2id.FLOAT:return t.reader.readFloat;case t.datatype2id.DOUBLE:return t.reader.readDouble;case t.datatype2id.STRING:return t.reader.readString;case t.datatype2id.FIXED_DICT:return t.reader.readStream;case t.datatype2id.ARRAY:return t.reader.readStream;default:return t.reader.readStream}}var a=function(){function e(){this.memorystreams=new Array,this.numMessage=0,this.messageLengthBuffer=null,this.msgtype=null,this.messageLength=0,this.stream=t.MemoryStream.createObject()}return e.createObject=function(){return e._objects.length>0?e._objects.pop():new e},e.prototype.newMessage=function(e){this.fini(!1),this.msgtype=e,this.numMessage+=1,-1==this.msgtype.length&&(this.messageLengthBuffer=new Uint8Array(this.stream.buffer,this.stream.wpos+t.MESSAGE_ID_LENGTH,2)),this.writeUint16(e.id),this.messageLengthBuffer&&(this.writeUint16(0),this.messageLengthBuffer[0]=0,this.messageLengthBuffer[1]=0,this.messageLength=0)},e.prototype.writeMsgLength=function(t){this.messageLengthBuffer&&(this.messageLengthBuffer[0]=255&t,this.messageLengthBuffer[1]=t>>8&255)},e.prototype.fini=function(e){this.numMessage>0&&(this.writeMsgLength(this.messageLength),this.stream&&this.memorystreams.push(this.stream),this.stream=t.MemoryStream.createObject()),e&&(this.messageLengthBuffer=null,this.numMessage=0,this.msgtype=null)},e.prototype.send=function(t){this.fini(!0);for(var e=0;ethis.stream.space()&&(this.memorystreams.push(this.stream),this.stream=t.MemoryStream.createObject()),this.messageLength+=e},e.prototype.writeInt8=function(t){this.checkStream(1),this.stream.writeInt8(t)},e.prototype.writeInt16=function(t){this.checkStream(2),this.stream.writeInt16(t)},e.prototype.writeInt32=function(t){this.checkStream(4),this.stream.writeInt32(t)},e.prototype.writeInt64=function(t){this.checkStream(8),this.stream.writeInt64(t)},e.prototype.writeUint8=function(t){this.checkStream(1),this.stream.writeUint8(t)},e.prototype.writeUint16=function(t){this.checkStream(2),this.stream.writeUint16(t)},e.prototype.writeUint32=function(t){this.checkStream(4),this.stream.writeUint32(t)},e.prototype.writeUint64=function(t){this.checkStream(8),this.stream.writeUint64(t)},e.prototype.writeFloat=function(t){this.checkStream(4),this.stream.writeFloat(t)},e.prototype.writeDouble=function(t){this.checkStream(8),this.stream.writeDouble(t)},e.prototype.writeString=function(t){this.checkStream(t.length+1),this.stream.writeString(t)},e.prototype.writeBlob=function(t){this.checkStream(t.length+4),this.stream.writeBlob(t)},e.prototype.clear=function(){for(var e=0;en){var r=e;e=n,n=r}return e>t?e:n>t?t:n}function n(t,e){return t*(Math.PI/(e?254:128))}function r(t,n){var r=0;return r=n?e(Math.floor(254*t/Math.PI+.5),-128,127):Math.floor(128*t/Math.PI+.5)}var a=function(){function t(t,e){this.x=t,this.y=e}return t.prototype.distance=function(t){var e=t.x-this.x,n=t.y-this.y;return Math.sqrt(e*e+n*n)},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.mul=function(t){return this.x*=t,this.y*=t,this},t.prototype.div=function(t){return this.x/=t,this.y/=t,this},t.prototype.neg=function(){return this.x=-this.x,this.y=-this.y,this},t}();t.Vector2=a,__reflect(a.prototype,"KBEngine.Vector2");var i=function(){function t(t,e,n){this.x=t,this.y=e,this.z=n,this.x=t,this.y=e,this.z=n}return t.prototype.distance=function(t){var e=t.x-this.x,n=t.y-this.y,r=t.z-this.z;return Math.sqrt(e*e+n*n+r*r)},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this},t.prototype.mul=function(t){return this.x*=t,this.y*=t,this.z*=t,this},t.prototype.div=function(t){return this.x/=t,this.y/=t,this.z/=t,this},t.prototype.neg=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},t}();t.Vector3=i,__reflect(i.prototype,"KBEngine.Vector3");var o=function(){function t(t,e,n,r){this.x=t,this.y=e,this.z=n,this.w=r,this.x=t,this.y=e,this.z=n,this.w=r}return t.prototype.distance=function(t){var e=t.x-this.x,n=t.y-this.y,r=t.z-this.z,a=t.w-this.w;return Math.sqrt(e*e+n*n+r*r+a*a)},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this},t.prototype.mul=function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},t.prototype.div=function(t){return this.x/=t,this.y/=t,this.z/=t,this.w/=t,this},t.prototype.neg=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},t}();t.Vector4=o,__reflect(o.prototype,"KBEngine.Vector4"),t.clampf=e,t.int82angle=n,t.angle2int8=r}(KBEngine||(KBEngine={})),function(t){function e(){return function(e){var n=t.getQualifiedClassName(e);t.Entities[n]=e}}t.Entities={};var n=function(){function e(){this.__comps__={},this.id=0,this.className="",this.position=new t.Vector3(0,0,0),this.direction=new t.Vector3(0,0,0),this.velocity=0,this.cell=null,this.base=null,this.inWorld=!1,this.inited=!1,this.isControlled=!1,this.entityLastLocalPos=new t.Vector3(0,0,0),this.entityLastLocalDir=new t.Vector3(0,0,0),this.isOnGround=!1;for(var e in this.__comps__)this[e]=new this.__comps__[e]}return e.prototype.__init__=function(){},e.prototype.attachComponents=function(){for(var t in this.__comps__)this[t].onAttached(this)},e.prototype.getComponents=function(e,n){void 0===n&&(n=!1);var r=[];for(var a in this.__comps__)if(t.getQualifiedClassName(this.__comps__[a])===e){if(!n)return this[a];r.push(this[a])}return r},e.prototype.detachComponents=function(){for(var t in this.__comps__)this[t].onDetached(this)},e.prototype.callPropertysSetMethods=function(){var e=t.moduledefs[this.className];for(var n in e.propertys){var r=e.propertys[n];r[0];n=r[2];var a=r[5],i=r[6],o=this[n];if(null!=a)if(32==i||64==i)this.inited&&!this.inWorld&&a.call(this,o);else if(this.inWorld){if((8==i||16==i)&&!this.isPlayer())continue;a.call(this,o)}}},e.prototype.onDestroy=function(){this.detachComponents()},e.prototype.onControlled=function(t){},e.prototype.isPlayer=function(){return this.id==t.app.entity_id},e.prototype.baseCall=function(e){for(var n=[],r=1;r0;){var a=0,i=0;if(n.usePropertyDescrAlias?(i=e.readUint8(),a=e.readUint8()):(i=e.readUint16(),a=e.readUint16()),0===i){var o=r[a],p=o[5],s=o[6];if(o[4]){var l=o[4].createFromStream(e),c=this[o[2]];t.INFO_MSG("KBEngineApp::Client_onUpdatePropertys: "+this.className+"(id="+this.id+" "+o[2]+", val="+l+")!"),this[o[2]]=l,null!=p&&(32==s||64==s?this.inited&&p.call(this,c):this.inWorld&&p.call(this,c))}else this[o[2]]&&"function"==typeof this[o[2]].createFromStream&&this[o[2]].createFromStream(e,o[0])}else{var d=r[i];this[d[2]]&&this[d[2]].onUpdatePropertys(a,e,-1)}}},e.prototype.set_direction=function(e){t.DEBUG_MSG(this.className+"::set_direction: "+this.direction),t.Event.fire("set_direction",this)},e.prototype.onRemoteMethodCall=function(e){var n=t.moduledefs[this.className],r=n.usePropertyDescrAlias?e.readUint8():e.readUint16(),a=n.useMethodDescrAlias?e.readUint8():e.readUint16();if(0!==r){var i=this[n.propertys[r][2]];return void(i&&i.onRemoteMethodCall(a,e))}for(var o=t.moduledefs[this.className].methods[a],p=[],s=o[3],l=0;l0&&0!=r--;){var p=e,s=0;0===p&&(i.usePropertyDescrAlias?(s=n.readUint8(),p=n.readUint8()):(s=n.readUint16(),p=n.readUint16()));var l=o[p],c=l[5],d=l[6],u=l[4].createFromStream(n),y=this[l[2]];t.INFO_MSG("KBEngineApp::Client_onUpdatePropertys: "+a+"(id="+this.id+" "+l[2]+", val="+u+")!"),this[l[2]]=u,null!=c&&(32==d||64==d?this.owner.inited&&c.call(this,y):this.owner.inWorld&&c.call(this,y))}},e.prototype.onRemoteMethodCall=function(e,n){for(var r=t.moduledefs[this.className].methods[e],a=[],i=r[3],o=0;o0&&this.onUpdatePropertys(0,e,r),this.className=t.getQualifiedClassName(this),this.base=new t.EntityComponentCall(this.entityComponentPropertyID,this.ownerID,this.className),this.base.type=t.ENTITYCALL_TYPE_BASE,this.cell=new t.EntityComponentCall(this.entityComponentPropertyID,this.ownerID,this.className),this.cell.type=t.ENTITYCALL_TYPE_CELL},e}();t.EntityComponent=n,__reflect(n.prototype,"KBEngine.EntityComponent"),t.registerComponent=e}(KBEngine||(KBEngine={})),function(t){t.ENTITYCALL_TYPE_CELL=0,t.ENTITYCALL_TYPE_BASE=1;var e=function(){function e(){this.id=0,this.className="",this.type=t.ENTITYCALL_TYPE_CELL,this.networkInterface=t.app,this.bundle=null}return e.prototype.isBase=function(){return this.type==t.ENTITYCALL_TYPE_BASE},e.prototype.isCell=function(){return this.type==t.ENTITYCALL_TYPE_CELL},e.prototype.newCall=function(){return null==this.bundle&&(this.bundle=t.Bundle.createObject()),this.type==t.ENTITYCALL_TYPE_CELL?this.bundle.newMessage(t.messages.Baseapp_onRemoteCallCellMethodFromClient):this.bundle.newMessage(t.messages.Entity_onRemoteMethodCall),this.bundle.writeInt32(this.id),this.bundle},e.prototype.sendCall=function(t){void 0==t&&(t=this.bundle),t.send(this.networkInterface),this.bundle==t&&(this.bundle=null)},e}();t.EntityCall=e,__reflect(e.prototype,"KBEngine.EntityCall");var n=function(t){function e(e,n,r){var a=t.call(this)||this;return a.entityComponentPropertyID=0,a.entityComponentPropertyID=e,a.id=n,a.className=r,a}return __extends(e,t),e}(e);t.EntityComponentCall=n,__reflect(n.prototype,"KBEngine.EntityComponentCall");var r=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readUint8.call(e)},e.prototype.addToStream=function(t,e){t.writeUint8(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(t){return"number"!=typeof t?!1:0>t||t>255?!1:!0},e}();t.DATATYPE_UINT8=r,__reflect(r.prototype,"KBEngine.DATATYPE_UINT8");var a=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readUint16.call(e)},e.prototype.addToStream=function(t,e){t.writeUint16(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(t){return"number"!=typeof t?!1:0>t||t>65535?!1:!0},e}();t.DATATYPE_UINT16=a,__reflect(a.prototype,"KBEngine.DATATYPE_UINT16");var i=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readUint32.call(e)
2 | },e.prototype.addToStream=function(t,e){t.writeUint32(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(t){return"number"!=typeof t?!1:0>t||t>4294967295?!1:!0},e}();t.DATATYPE_UINT32=i,__reflect(i.prototype,"KBEngine.DATATYPE_UINT32");var o=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readUint64.call(e)},e.prototype.addToStream=function(t,e){t.writeUint64(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(e){return e instanceof t.UINT64},e}();t.DATATYPE_UINT64=o,__reflect(o.prototype,"KBEngine.DATATYPE_UINT64");var p=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readInt8.call(e)},e.prototype.addToStream=function(t,e){t.writeInt8(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(t){return"number"!=typeof t?!1:-128>t||t>127?!1:!0},e}();t.DATATYPE_INT8=p,__reflect(p.prototype,"KBEngine.DATATYPE_INT8");var s=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readInt16.call(e)},e.prototype.addToStream=function(t,e){t.writeInt16(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(t){return"number"!=typeof t?!1:-32768>t||t>32767?!1:!0},e}();t.DATATYPE_INT16=s,__reflect(s.prototype,"KBEngine.DATATYPE_INT16");var l=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readInt32.call(e)},e.prototype.addToStream=function(t,e){t.writeInt32(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(t){return"number"!=typeof t?!1:-2147483648>t||t>2147483647?!1:!0},e}();t.DATATYPE_INT32=l,__reflect(l.prototype,"KBEngine.DATATYPE_INT32");var c=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readInt64.call(e)},e.prototype.addToStream=function(t,e){t.writeInt64(e)},e.prototype.parseDefaultValStr=function(t){return parseInt(t)},e.prototype.isSameType=function(e){return e instanceof t.INT64},e}();t.DATATYPE_INT64=c,__reflect(c.prototype,"KBEngine.DATATYPE_INT64");var d=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readFloat.call(e)},e.prototype.addToStream=function(t,e){t.writeFloat(e)},e.prototype.parseDefaultValStr=function(t){return parseFloat(t)},e.prototype.isSameType=function(t){return"number"==typeof t},e}();t.DATATYPE_FLOAT=d,__reflect(d.prototype,"KBEngine.DATATYPE_FLOAT");var u=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return __extends(n,e),n.prototype.createFromStream=function(e){return t.reader.readDouble.call(e)},n.prototype.addToStream=function(t,e){t.writeDouble(e)},n}(d);t.DATATYPE_DOUBLE=u,__reflect(u.prototype,"KBEngine.DATATYPE_DOUBLE");var y=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.reader.readString.call(e)},e.prototype.addToStream=function(t,e){t.writeString(e)},e.prototype.parseDefaultValStr=function(t){return"string"==typeof t?t:""},e.prototype.isSameType=function(t){return"string"==typeof t},e}();t.DATATYPE_STRING=y,__reflect(y.prototype,"KBEngine.DATATYPE_STRING");var _=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){if(t.CLIENT_NO_FLOAT){var n=t.reader.readInt32.call(e),r=t.reader.readInt32.call(e);return new t.Vector2(n,r)}var n=t.reader.readFloat.call(e),r=t.reader.readFloat.call(e);return new t.Vector2(n,r)},e.prototype.addToStream=function(e,n){t.CLIENT_NO_FLOAT?(e.writeInt32(n.x),e.writeInt32(n.y)):(e.writeFloat(n.x),e.writeFloat(n.y))},e.prototype.parseDefaultValStr=function(e){return new t.Vector2(0,0)},e.prototype.isSameType=function(e){return e instanceof t.Vector2?!0:!1},e}();t.DATATYPE_VECTOR2=_,__reflect(_.prototype,"KBEngine.DATATYPE_VECTOR2");var f=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.CLIENT_NO_FLOAT?new t.Vector3(t.reader.readInt32.call(e),t.reader.readInt32.call(e),t.reader.readInt32.call(e)):new t.Vector3(t.reader.readFloat.call(e),t.reader.readFloat.call(e),t.reader.readFloat.call(e))},e.prototype.addToStream=function(e,n){t.CLIENT_NO_FLOAT?(e.writeInt32(n.x),e.writeInt32(n.y),e.writeInt32(n.z)):(e.writeFloat(n.x),e.writeFloat(n.y),e.writeFloat(n.z))},e.prototype.parseDefaultValStr=function(e){return new t.Vector3(0,0,0)},e.prototype.isSameType=function(e){return e instanceof t.Vector3?!0:!1},e}();t.DATATYPE_VECTOR3=f,__reflect(f.prototype,"KBEngine.DATATYPE_VECTOR3");var h=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.CLIENT_NO_FLOAT?new t.Vector4(t.reader.readInt32.call(e),t.reader.readInt32.call(e),t.reader.readInt32.call(e),t.reader.readInt32.call(e)):new t.Vector4(t.reader.readFloat.call(e),t.reader.readFloat.call(e),t.reader.readFloat.call(e),t.reader.readFloat.call(e))},e.prototype.addToStream=function(e,n){t.CLIENT_NO_FLOAT?(e.writeInt32(n.x),e.writeInt32(n.y),e.writeInt32(n.z),e.writeInt32(n.w)):(e.writeFloat(n.x),e.writeFloat(n.y),e.writeFloat(n.z),e.writeFloat(n.w))},e.prototype.parseDefaultValStr=function(e){return new t.Vector4(0,0,0,0)},e.prototype.isSameType=function(e){return e instanceof t.Vector4?!0:!1},e}();t.DATATYPE_VECTOR4=h,__reflect(h.prototype,"KBEngine.DATATYPE_VECTOR4");var E=function(){function t(){}return t.prototype.bind=function(){},t.prototype.createFromStream=function(t){return t.readBlob()},t.prototype.addToStream=function(t,e){t.writeBlob(e)},t.prototype.parseDefaultValStr=function(t){return new Uint8Array(0)},t.prototype.isSameType=function(t){return!1},t}();t.DATATYPE_PYTHON=E,__reflect(E.prototype,"KBEngine.DATATYPE_PYTHON");var g=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){return t.utf8ArrayToString(t.reader.readBlob.call(e))},e.prototype.addToStream=function(e,n){e.writeBlob(t.stringToUTF8Bytes(n))},e.prototype.parseDefaultValStr=function(t){return"string"==typeof t?t:""},e.prototype.isSameType=function(t){return"string"==typeof t},e}();t.DATATYPE_UNICODE=g,__reflect(g.prototype,"KBEngine.DATATYPE_UNICODE");var m=function(){function t(){}return t.prototype.bind=function(){},t.prototype.createFromStream=function(t){},t.prototype.addToStream=function(t,e){},t.prototype.parseDefaultValStr=function(t){return new Uint8Array(0)},t.prototype.isSameType=function(t){return!1},t}();t.DATATYPE_ENTITYCALL=m,__reflect(m.prototype,"KBEngine.DATATYPE_ENTITYCALL");var v=function(){function e(){}return e.prototype.bind=function(){},e.prototype.createFromStream=function(e){var n=t.reader.readUint32.call(e),r=new Uint8Array(e.buffer,e.rpos,n);return e.rpos+=n,r},e.prototype.addToStream=function(t,e){t.writeBlob(e)},e.prototype.parseDefaultValStr=function(t){return new Uint8Array(0)},e.prototype.isSameType=function(t){return!0},e}();t.DATATYPE_BLOB=v,__reflect(v.prototype,"KBEngine.DATATYPE_BLOB");var T=function(){function t(){this.type=null}return t.prototype.bind=function(){"number"==typeof this.type&&(this.type=A[this.type])},t.prototype.createFromStream=function(t){for(var e=t.readUint32(),n=[];e>0;)e--,n.push(this.type.createFromStream(t));return n},t.prototype.addToStream=function(t,e){t.writeUint32(e.length);for(var n=0;n0||null!=t.app.fragmentStream;)if(t.app.fragmentDatasFlag==t.FragmentDataTypes.FRAGMENT_DATA_UNKNOW){if(0==t.app.currMsgID){if(t.MESSAGE_ID_LENGTH>1&&n.length()=t.app.currMsgLen)r.handleMessage(t.app.fragmentStream),t.app.fragmentStream=null;else{if(n.length()0){t.app.writeFragmentMessage(t.FragmentDataTypes.FRAGMENT_DATA_MESSAGE_BODY,n,t.app.currMsgLen);break}var i=n.wpos,o=n.rpos+a;n.wpos=o,r.handleMessage(n),n.wpos=i,n.rpos=o}t.app.currMsgID=0,t.app.currMsgLen=0,t.app.fragmentStream=null}else if(t.app.mergeFragmentMessage(n))break},e.prototype.writeFragmentMessage=function(e,n,r){var a=n.length();t.app.fragmentDatasRemain=r-a,t.app.fragmentDatasFlag=e,t.app.fragmentStream=n},e.prototype.mergeFragmentMessage=function(e){var n=e.length();if(0==n)return 0;var r=t.app.fragmentStream;if(n>=t.app.fragmentDatasRemain){switch(r.append(e,e.rpos,t.app.fragmentDatasRemain),t.app.fragmentDatasFlag){case t.FragmentDataTypes.FRAGMENT_DATA_MESSAGE_ID:t.app.currMsgID=r.readUint16(),t.app.fragmentStream=null;break;case t.FragmentDataTypes.FRAGMENT_DATA_MESSAGE_LENGTH:t.app.currMsgLen=r.readUint16(),t.app.fragmentStream=null;break;case t.FragmentDataTypes.FRAGMENT_DATA_MESSAGE_LENGTH1:t.app.currMsgLen=r.readUint32(),t.app.fragmentStream=null;break;case t.FragmentDataTypes.FRAGMENT_DATA_MESSAGE_BODY:}return e.rpos+=t.app.fragmentDatasRemain,t.app.fragmentDatasFlag=t.FragmentDataTypes.FRAGMENT_DATA_UNKNOW,t.app.fragmentDatasRemain=0,!1}return r.append(e,e.rpos,n),t.app.fragmentDatasRemain-=n,e.done(),!0},e.prototype.onclose=function(){t.INFO_MSG("connect close:"+t.app.currserver),t.app.currconnect==t.app.currstate&&(t.app.resetSocket(),t.Event.fire(t.EventTypes.onDisconnected))},e.prototype.send=function(e){t.app.socket.send(e)},e.prototype.close=function(){t.INFO_MSG("KBEngine::close()"),t.app.socket.close(),t.app.reset()},e.prototype.update=function(){if(null!=t.app.socket){var e=new Date;if((e.getTime()-t.app.lastTickTime)/1e3>t.app.args.serverHeartbeatTick/2){if(t.app.lastTickCBTime0;){n-=1;var r=new a;r.id=e.readUint16(),r.name=t.utf8ArrayToString(e.readBlob()),r.descr=t.utf8ArrayToString(e.readBlob()),t.app.serverErrs[r.id]=r,t.INFO_MSG("Client_onImportServerErrorsDescr: id="+r.id+", name="+r.name+", descr="+r.descr)}},e.prototype.Client_onImportClientSdk=function(e){var n=e.readInt32(),r=e.readString(),a=e.readInt32(),i=e.readBlob();t.Event.fire("onImportClientSDK",n,r,a,i)},e.prototype.onOpenLoginapp_login=function(){if(t.INFO_MSG("KBEngineApp::onOpenLoginapp_login: successfully!"),t.Event.fire(t.EventTypes.onConnectionState,!0),t.app.currserver="loginapp",t.app.currstate="login",t.app.loginappMessageImported)t.app.onImportClientMessagesCompleted();else{var e=t.Bundle.createObject();e.newMessage(t.messages.Loginapp_importClientMessages),e.send(t.app),t.app.socket.onmessage=t.app.Client_onImportClientMessages,t.INFO_MSG("KBEngineApp::onOpenLoginapp_login: start importClientMessages ..."),t.Event.fire("Loginapp_importClientMessages")}},e.prototype.onOpenLoginapp_createAccount=function(){if(t.Event.fire("onConnectionState",!0),t.INFO_MSG("KBEngineApp::onOpenLoginapp_createAccount: successfully!"),t.app.currserver="loginapp",t.app.currstate="createAccount",t.app.loginappMessageImported)t.app.onImportClientMessagesCompleted();else{var e=t.Bundle.createObject();e.newMessage(t.messages.Loginapp_importClientMessages),e.send(t.app),t.app.socket.onmessage=t.app.Client_onImportClientMessages,t.INFO_MSG("KBEngineApp::onOpenLoginapp_createAccount: start importClientMessages ..."),t.Event.fire("Loginapp_importClientMessages")}},e.prototype.onImportClientMessagesCompleted=function(){if(t.INFO_MSG("KBEngineApp::onImportClientMessagesCompleted: successfully!"),t.app.socket.onmessage=t.app.onmessage,t.app.hello(),"loginapp"==t.app.currserver){if(!t.app.serverErrorsDescrImported){t.INFO_MSG("KBEngine::onImportClientMessagesCompleted(): send importServerErrorsDescr!"),t.app.serverErrorsDescrImported=!0;var e=t.Bundle.createObject();e.newMessage(t.messages.Loginapp_importServerErrorsDescr),e.send(t.app)}"login"==t.app.currstate?t.app.login_loginapp(!1):"resetpassword"==t.app.currstate?t.app.resetpassword_loginapp(!1):t.app.createAccount_loginapp(!1),t.app.loginappMessageImported=!0}else if(t.app.baseappMessageImported=!0,t.app.entitydefImported)t.app.onImportEntityDefCompleted();else{t.INFO_MSG("KBEngineApp::onImportClientMessagesCompleted: start importEntityDef ...");var e=t.Bundle.createObject();e.newMessage(t.messages.Baseapp_importClientEntityDef),e.send(t.app),t.Event.fire("Baseapp_importClientEntityDef")}},e.prototype.createDataTypeFromStreams=function(e,n){var r=e.readUint16();for(t.INFO_MSG("KBEngineApp::createDataTypeFromStreams: importAlias(size="+r+")!");r>0;)r--,t.app.createDataTypeFromStream(e,n);for(var a in t.datatypes)void 0!=t.datatypes[a]&&t.datatypes[a].bind()},e.prototype.createDataTypeFromStream=function(e,n){var r,a=e.readUint16(),i=e.readString(),o=e.readString();if(0==o.length&&(r="Null_"+a),n&&t.INFO_MSG("KBEngineApp::Client_onImportClientEntityDef: importAlias("+i+":"+o+")!"),"FIXED_DICT"==i){var p=new t.DATATYPE_FIXED_DICT,s=e.readUint8();for(p.implementedBy=e.readString();s>0;){s--;var l=e.readString(),c=e.readUint16();p.dicttype[l]=c}t.datatypes[o]=p}else if("ARRAY"==i){var d=e.readUint16(),p=new t.DATATYPE_ARRAY;p.type=d,t.datatypes[o]=p}else t.datatypes[o]=t.datatypes[i];t.datatypes[a]=t.datatypes[o],t.datatype2id[o]=a},e.prototype.Client_onImportClientEntityDef=function(e){for(t.app.createDataTypeFromStreams(e,!0);e.length()>0;){var n=e.readString(),r=e.readUint16(),a=e.readUint16(),i=e.readUint16(),o=e.readUint16(),p=e.readUint16();t.INFO_MSG("KBEngineApp::Client_onImportClientEntityDef: import("+n+"), propertys("+a+"), clientMethods("+i+"), baseMethods("+o+"), cellMethods("+p+")!"),t.moduledefs[n]={};var s=t.moduledefs[n];s.name=n,s.propertys={},s.methods={},s.base_methods={},s.cell_methods={},t.moduledefs[r]=s;for(var l=s.propertys,c=s.methods,d=s.base_methods,u=s.cell_methods,y=t.Entities[n];a>0;){a--;var _=e.readUint16(),f=e.readUint32(),h=e.readInt16(),E=e.readString(),g=e.readString(),m=t.datatypes[e.readUint16()],v=null;void 0!=y&&(v=y.prototype["set_"+E],void 0==v&&(v=null));var T=[_,h,E,g,m,v,f];l[E]=T,-1!=h?(l[h]=T,s.usePropertyDescrAlias=!0):(l[_]=T,s.usePropertyDescrAlias=!1),t.INFO_MSG("KBEngineApp::Client_onImportClientEntityDef: add("+n+"), property("+E+"/"+_+").")}for(;i>0;){i--;for(var S=e.readUint16(),h=e.readInt16(),A=e.readString(),I=e.readUint8(),D=[];I>0;)I--,D.push(t.datatypes[e.readUint16()]);var T=[S,h,A,D];c[A]=T,-1!=h?(c[h]=T,s.useMethodDescrAlias=!0):(c[S]=T,s.useMethodDescrAlias=!1),t.INFO_MSG("KBEngineApp::Client_onImportClientEntityDef: add("+n+"), method("+A+").")}for(;o>0;){o--;for(var S=e.readUint16(),h=e.readInt16(),M=e.readString(),I=e.readUint8(),D=[];I>0;)I--,D.push(t.datatypes[e.readUint16()]);d[M]=[S,h,M,D],t.INFO_MSG("KBEngineApp::Client_onImportClientEntityDef: add("+n+"), base_method("+M+").")}for(;p>0;){p--;for(var S=e.readUint16(),h=e.readInt16(),w=e.readString(),I=e.readUint8(),D=[];I>0;)I--,D.push(t.datatypes[e.readUint16()]);u[w]=[S,h,w,D],t.INFO_MSG("KBEngineApp::Client_onImportClientEntityDef: add("+n+"), cell_method("+w+").")}var F=void 0;try{F=t.Entities[n]}catch(C){t.ERROR_MSG("KBEngineApp::Client_onImportClientEntityDef: module("+n+") not found!"),F=void 0}for(var B in s.propertys){var L=s.propertys[B],_=L[0],h=L[1],R=L[2],g=L[3],m=L[4];void 0!=F&&m&&(F.prototype[R]=m.parseDefaultValStr(g))}for(var b in s.methods){var L=s.methods[b],_=L[0],h=L[1],R=L[2],D=L[3];void 0!=F&&void 0==F.prototype[R]&&t.WARNING_MSG(n+":: method("+R+") no implement!")}}t.app.onImportEntityDefCompleted()},e.prototype.Client_onVersionNotMatch=function(e){t.app.serverVersion=e.readString(),t.ERROR_MSG("Client_onVersionNotMatch: verInfo="+t.app.clientVersion+" not match(server: "+t.app.serverVersion+")"),t.Event.fire(t.EventTypes.onVersionNotMatch,t.app.clientVersion,t.app.serverVersion)},e.prototype.Client_onScriptVersionNotMatch=function(e){t.app.serverScriptVersion=e.readString(),t.ERROR_MSG("Client_onScriptVersionNotMatch: verInfo="+t.app.clientScriptVersion+" not match(server: "+t.app.serverScriptVersion+")"),t.Event.fire(t.EventTypes.onScriptVersionNotMatch,t.app.clientScriptVersion,t.app.serverScriptVersion)},e.prototype.onImportEntityDefCompleted=function(){t.INFO_MSG("KBEngineApp::onImportEntityDefCompleted: successfully!"),t.app.entitydefImported=!0,t.app.login_baseapp(!1)},e.prototype.importClientMessages=function(e){for(;t.app.currMsgCount>0;){t.app.currMsgCount--;for(var n=e.readUint16(),r=e.readInt16(),a=e.readString(),i=e.readInt8(),o=e.readUint8(),p=new Array(o),s=0;o>s;s++)p[s]=e.readUint8();var l=null,c=a.indexOf("Client_")>=0;c&&(l=t.app[a],null==l||void 0==l?(t.WARNING_MSG("KBEngineApp::onImportClientMessages["+t.app.currserver+"]: interface("+a+"/"+n+") no implement!"),l=null):t.INFO_MSG("KBEngineApp::onImportClientMessages: import("+a+") successfully!")),a.length>0?(t.messages[a]=new t.Message(n,a,r,i,p,l),c?t.clientmessages[n]=t.messages[a]:t.messages[t.app.currserver][n]=t.messages[a]):t.messages[t.app.currserver][n]=new t.Message(n,a,r,i,p,l)}t.app.onImportClientMessagesCompleted(),t.app.currMsgID=0,t.app.currMsgLen=0,t.app.currMsgCount=0,t.app.fragmentStream=null},e.prototype.Client_onImportClientMessages=function(e){var n=new t.MemoryStream(e.data);n.wpos=e.data.byteLength,0==t.app.currMsgID&&(t.app.currMsgID=n.readUint16()),t.app.currMsgID==t.messages.onImportClientMessages.id?(0==t.app.currMsgLen&&(t.app.currMsgLen=n.readUint16(),t.app.currMsgCount=n.readUint16()),n.length()+2=t.app.currMsgLen&&t.app.importClientMessages(t.app.fragmentStream)):t.app.importClientMessages(n)):t.ERROR_MSG("KBEngineApp::onmessage: not found msg("+t.app.currMsgID+")!")},e.prototype.createAccount=function(e,n,r){t.app.reset(),t.app.username=e,t.app.password=n,t.app.clientdatas=r,t.app.createAccount_loginapp(!0)},e.prototype.createAccount_loginapp=function(e){if(e)t.INFO_MSG("KBEngineApp::createAccount_loginapp: start connect to ws://"+t.app.args.ip+":"+t.app.args.port+"!"),t.app.currconnect="loginapp",t.app.connect(t.app.args.ip,t.app.args.port),t.app.socket.onopen=t.app.onOpenLoginapp_createAccount;else{var n=t.Bundle.createObject();n.newMessage(t.messages.Loginapp_reqCreateAccount),n.writeString(t.app.username),n.writeString(t.app.password),n.writeBlob(t.app.clientdatas),n.send(t.app)}},e.prototype.bindAccountEmail=function(e){var n=t.Bundle.createObject();n.newMessage(t.messages.Baseapp_reqAccountBindEmail),n.writeInt32(t.app.entity_id),n.writeString(t.app.password),n.writeString(e),n.send(t.app)},e.prototype.newPassword=function(e,n){var r=t.Bundle.createObject();r.newMessage(t.messages.Baseapp_reqAccountNewPassword),r.writeInt32(t.app.entity_id),r.writeString(e),r.writeString(n),r.send(t.app)},e.prototype.logout=function(){var e=new t.Bundle;e.newMessage(t.messages.Baseapp_logoutBaseapp),e.writeUint64(t.app.entity_uuid),e.writeInt32(t.app.entity_id),e.send(t.app)},e.prototype.login=function(e,n,r){t.app.reset(),t.app.username=e,t.app.password=n,t.app.clientdatas=r,t.app.login_loginapp(!0)},e.prototype.login_loginapp=function(e){if(e)t.INFO_MSG("KBEngineApp::login_loginapp: start connect to ws://"+t.app.args.ip+":"+t.app.args.port+"!"),t.app.currconnect="loginapp",t.app.connect(t.app.args.ip,t.app.args.port),t.app.socket.onopen=t.app.onOpenLoginapp_login;else{var n=t.Bundle.createObject();n.newMessage(t.messages.Loginapp_login),n.writeInt8(t.app.args.clientType),n.writeBlob(t.app.clientdatas),n.writeString(t.app.username),n.writeString(t.app.password),n.send(t.app)}},e.prototype.onOpenLoginapp_resetpassword=function(){if(t.INFO_MSG("KBEngineApp::onOpenLoginapp_resetpassword: successfully!"),t.app.currserver="loginapp",t.app.currstate="resetpassword",t.app.loginappMessageImported)t.app.onImportClientMessagesCompleted();else{var e=t.Bundle.createObject();e.newMessage(t.messages.Loginapp_importClientMessages),e.send(t.app),t.app.socket.onmessage=t.app.Client_onImportClientMessages,t.INFO_MSG("KBEngineApp::onOpenLoginapp_resetpassword: start importClientMessages ...")}},e.prototype.reset_password=function(e){t.app.reset(),t.app.username=e,t.app.resetpassword_loginapp(!0)},e.prototype.resetpassword_loginapp=function(e){if(e)t.INFO_MSG("KBEngineApp::createAccount_loginapp: start connect to ws://"+t.app.args.ip+":"+t.app.args.port+"!"),t.app.currconnect="loginapp",t.app.connect(t.app.args.ip,t.app.args.port),t.app.socket.onopen=t.app.onOpenLoginapp_resetpassword;else{var n=t.Bundle.createObject();n.newMessage(t.messages.Loginapp_reqAccountResetPassword),n.writeString(t.app.username),n.send(t.app)}},e.prototype.onOpenBaseapp=function(){if(t.INFO_MSG("KBEngineApp::onOpenBaseapp: successfully!"),t.app.currserver="baseapp",t.app.baseappMessageImported)t.app.onImportClientMessagesCompleted();else{var e=t.Bundle.createObject();e.newMessage(t.messages.Baseapp_importClientMessages),e.send(t.app),t.app.socket.onmessage=t.app.Client_onImportClientMessages,t.Event.fire("Baseapp_importClientMessages")}},e.prototype.login_baseapp=function(e){if(e)t.Event.fire("onLoginBaseapp"),t.INFO_MSG("KBEngineApp::login_baseapp: start connect to ws://"+t.app.baseappIp+":"+t.app.baseappPort+"!"),t.app.currconnect="baseapp",t.app.connect(t.app.baseappIp,t.app.baseappPort),void 0!=t.app.socket&&null!=t.app.socket&&(t.app.socket.onopen=t.app.onOpenBaseapp);else{var n=t.Bundle.createObject();n.newMessage(t.messages.Baseapp_loginBaseapp),n.writeString(t.app.username),n.writeString(t.app.password),n.send(t.app)}},e.prototype.reloginBaseapp=function(){t.app.lastTickCBTime=t.app.lastTickTime=Date.now(),(void 0==t.app.socket||null==t.app.socket)&&(t.app.resetSocket(),t.Event.fire(t.EventTypes.onReloginBaseapp),t.INFO_MSG("KBEngineApp::reloginBaseapp: start connect to ws://"+t.app.baseappIp+":"+t.app.baseappPort+"!"),t.app.currconnect="baseapp",t.app.connect(t.app.baseappIp,t.app.baseappPort),void 0!=t.app.socket&&null!=t.app.socket&&(t.app.socket.onopen=t.app.onReOpenBaseapp))},e.prototype.onReOpenBaseapp=function(){t.INFO_MSG("KBEngineApp::onReOpenBaseapp: successfully!"),t.app.currserver="baseapp";var e=t.Bundle.createObject();e.newMessage(t.messages.Baseapp_reloginBaseapp),e.writeString(t.app.username),e.writeString(t.app.password),e.writeUint64(t.app.entity_uuid),e.writeInt32(t.app.entity_id),e.send(t.app);var n=new Date;t.app.lastTickCBTime=n.getTime()},e.prototype.Client_onHelloCB=function(e){t.app.serverVersion=e.readString(),t.app.serverScriptVersion=e.readString(),t.app.serverProtocolMD5=e.readString(),t.app.serverEntityDefMD5=e.readString();var n=e.readInt32();t.INFO_MSG("KBEngineApp::Client_onHelloCB: verInfo("+t.app.serverVersion+"), scriptVerInfo("+t.app.serverScriptVersion+"), serverProtocolMD5("+t.app.serverProtocolMD5+"), serverEntityDefMD5("+t.app.serverEntityDefMD5+"), ctype("+n+")!");var r=new Date;t.app.lastTickCBTime=r.getTime()},e.prototype.Client_onLoginFailed=function(e){var n=e.readUint16();
3 | t.app.serverdatas=e.readBlob(),t.ERROR_MSG("KBEngineApp::Client_onLoginFailed: failedcode("+t.app.serverErrs[n].name+"), datas("+t.app.serverdatas.length+")!"),t.Event.fire("onLoginFailed",n)},e.prototype.Client_onLoginSuccessfully=function(e){var n=e.readString();t.app.username=n,t.app.baseappIp=e.readString(),t.app.baseappPort=e.readUint16(),t.app.baseappUdpPort=e.readUint16(),t.app.serverdatas=e.readBlob(),t.INFO_MSG("KBEngineApp::Client_onLoginSuccessfully: accountName("+n+"), addr("+t.app.baseappIp+":"+t.app.baseappPort+"), datas("+t.app.serverdatas.length+")!"),t.app.disconnect(),t.app.login_baseapp(!0)},e.prototype.Client_onLoginBaseappFailed=function(e){t.ERROR_MSG("KBEngineApp::Client_onLoginBaseappFailed: failedcode("+t.app.serverErrs[e].name+")!"),t.Event.fire(t.EventTypes.onLoginBaseappFailed,e)},e.prototype.Client_onReloginBaseappFailed=function(e){t.ERROR_MSG("KBEngineApp::Client_onReloginBaseappFailed: failedcode("+t.app.serverErrs[e].name+")!"),t.Event.fire(t.EventTypes.onReloginBaseappFailed,e)},e.prototype.Client_onReloginBaseappSuccessfully=function(e){t.app.entity_uuid=e.readUint64(),t.DEBUG_MSG("KBEngineApp::Client_onReloginBaseappSuccessfully: "+t.app.username),t.Event.fire(t.EventTypes.onReloginBaseappSuccessfully)},e.prototype.getentityclass=function(e){var n=t.Entities[e];return void 0==n?(t.ERROR_MSG("KBEngineApp::getentityclass: entityType("+e+") is error!"),n):n},e.prototype.Client_onCreatedProxies=function(e,n,r){t.INFO_MSG("KBEngineApp::Client_onCreatedProxies: eid("+n+"), entityType("+r+")!");var a=t.app.entities[n];if(t.app.entity_uuid=e,t.app.entity_id=n,void 0==a){var i=t.app.getentityclass(r);if(void 0==i)return;var o=new i;o.id=n,o.className=r,o.base=new t.EntityCall,o.base.id=n,o.base.className=r,o.base.type=t.ENTITYCALL_TYPE_BASE,t.app.entities[n]=o;var p=t.bufferedCreateEntityMessages[n];void 0!=p&&(t.app.Client_onUpdatePropertys(p),delete t.bufferedCreateEntityMessages[n]),o.__init__(),o.attachComponents(),o.inited=!0,t.app.args.isOnInitCallPropertysSetMethods&&o.callPropertysSetMethods()}else{var p=t.bufferedCreateEntityMessages[n];void 0!=p&&(t.app.Client_onUpdatePropertys(p),delete t.bufferedCreateEntityMessages[n])}},e.prototype.getViewEntityIDFromStream=function(e){var n=0;if(t.app.entityIDAliasIDList.length>255)n=e.readInt32();else{var r=e.readUint8();if(t.app.entityIDAliasIDList.length<=r)return 0;n=t.app.entityIDAliasIDList[r]}return n},e.prototype.onUpdatePropertys_=function(e,n){var r=t.app.entities[e];if(void 0==r){var a=t.bufferedCreateEntityMessages[e];if(void 0!=a)return void t.ERROR_MSG("KBEngineApp::Client_onUpdEntityComponentatePropertys: entity("+e+") not found!");var i=new t.MemoryStream(n.buffer);return i.wpos=n.wpos,i.rpos=n.rpos-4,void(t.bufferedCreateEntityMessages[e]=i)}r.onUpdatePropertys(n)},e.prototype.Client_onUpdatePropertysOptimized=function(e){var n=t.app.getViewEntityIDFromStream(e);t.app.onUpdatePropertys_(n,e)},e.prototype.Client_onUpdatePropertys=function(e){var n=e.readInt32();t.app.onUpdatePropertys_(n,e)},e.prototype.onRemoteMethodCall_=function(e,n){var r=t.app.entities[e];return void 0==r?void t.ERROR_MSG("KBEngineApp::Client_onRemoteMethodCall: entity("+e+") not found!"):void r.onRemoteMethodCall(n)},e.prototype.Client_onRemoteMethodCallOptimized=function(e){var n=t.app.getViewEntityIDFromStream(e);t.app.onRemoteMethodCall_(n,e)},e.prototype.Client_onRemoteMethodCall=function(e){var n=e.readInt32();t.app.onRemoteMethodCall_(n,e)},e.prototype.Client_onEntityEnterWorld=function(e){var n=e.readInt32();t.app.entity_id>0&&n!=t.app.entity_id&&t.app.entityIDAliasIDList.push(n);var r;r=t.moduledefs.Length>255?e.readUint16():e.readUint8();var a=!0;e.length()>0&&(a=e.readInt8()),r=t.moduledefs[r].name,t.INFO_MSG("KBEngineApp::Client_onEntityEnterWorld: "+r+"("+n+"), spaceID("+t.app.spaceID+"), isOnGround("+a+")!");var i=t.app.entities[n];if(void 0==i){var o=t.bufferedCreateEntityMessages[n];if(void 0==o)return void t.ERROR_MSG("KBEngineApp::Client_onEntityEnterWorld: entity("+n+") not found!");var p=t.app.getentityclass(r);if(void 0==p)return;var s=new p;s.id=n,s.className=r,s.cell=new t.EntityCall,s.cell.id=n,s.cell.className=r,s.cell.type=t.ENTITYCALL_TYPE_CELL,t.app.entities[n]=s,t.app.Client_onUpdatePropertys(o),delete t.bufferedCreateEntityMessages[n],s.isOnGround=a,s.__init__(),s.attachComponents(),s.inited=!0,s.inWorld=!0,s.enterWorld(),t.app.args.isOnInitCallPropertysSetMethods&&s.callPropertysSetMethods(),s.set_direction(s.direction),s.set_position(s.position)}else i.inWorld||(i.cell=new t.EntityCall,i.cell.id=n,i.cell.className=r,i.cell.type=t.ENTITYCALL_TYPE_CELL,t.app.entityIDAliasIDList=[],t.app.entities={},t.app.entities[i.id]=i,i.set_direction(i.direction),i.set_position(i.position),t.app.entityServerPos.x=i.position.x,t.app.entityServerPos.y=i.position.y,t.app.entityServerPos.z=i.position.z,i.isOnGround=a,i.inWorld=!0,i.enterWorld(),t.app.args.isOnInitCallPropertysSetMethods&&i.callPropertysSetMethods())},e.prototype.Client_onEntityLeaveWorldOptimized=function(e){var n=t.app.getViewEntityIDFromStream(e);t.app.Client_onEntityLeaveWorld(n)},e.prototype.Client_onEntityLeaveWorld=function(e){var n=t.app.entities[e];if(void 0==n)return void t.ERROR_MSG("KBEngineApp::Client_onEntityLeaveWorld: entity("+e+") not found!");if(n.inWorld&&n.leaveWorld(),t.app.entity_id>0&&e!=t.app.entity_id){for(var r=[],a=0;a0&&(r=e.readInt8());var a=t.app.entities[n];return void 0==a?void t.ERROR_MSG("KBEngineApp::Client_onEntityEnterSpace: entity("+n+") not found!"):(a.isOnGround=r,t.app.entityServerPos.x=a.position.x,t.app.entityServerPos.y=a.position.y,t.app.entityServerPos.z=a.position.z,void a.enterSpace())},e.prototype.Client_onEntityLeaveSpace=function(e){var n=t.app.entities[e];return void 0==n?void t.ERROR_MSG("KBEngineApp::Client_onEntityLeaveSpace: entity("+e+") not found!"):(t.app.clearSpace(!1),void n.leaveSpace())},e.prototype.Client_onKicked=function(e){t.ERROR_MSG("KBEngineApp::Client_onKicked: failedcode("+t.app.serverErrs[e].name+")!"),t.Event.fire(t.EventTypes.onKicked,e)},e.prototype.Client_onCreateAccountResult=function(e){var n=e.readUint16(),r=e.readBlob();return t.Event.fire("onCreateAccountResult",n,r),0!=n?void t.ERROR_MSG("KBEngineApp::Client_onCreateAccountResult: "+t.app.username+" create is failed! code="+t.app.serverErrs[n].name+"!"):void t.INFO_MSG("KBEngineApp::Client_onCreateAccountResult: "+t.app.username+" create is successfully!")},e.prototype.Client_onControlEntity=function(e,n){var r=t.app.entities[e];if(void 0==r)return void t.ERROR_MSG("KBEngineApp::Client_onControlEntity: entity("+e+") not found!");var a=0!=n;if(a)t.app.player().id!=r.id&&t.app.controlledEntities.push(r);else{for(var i=[],o=0;o.001||e.entityLastLocalDir.distance(e.direction)>.001){e.entityLastLocalPos.x=e.position.x,e.entityLastLocalPos.y=e.position.y,e.entityLastLocalPos.z=e.position.z,e.entityLastLocalDir.x=e.direction.x,e.entityLastLocalDir.y=e.direction.y,e.entityLastLocalDir.z=e.direction.z;var n=t.Bundle.createObject();n.newMessage(t.messages.Baseapp_onUpdateDataFromClient),n.writeFloat(e.position.x),n.writeFloat(e.position.y),n.writeFloat(e.position.z),n.writeFloat(e.direction.x),n.writeFloat(e.direction.y),n.writeFloat(e.direction.z),n.writeUint8(e.isOnGround),n.writeUint32(t.app.spaceID),n.send(t.app)}for(var r in t.app.controlledEntities){var a=t.app.controlledEntities[r],i=a.position,o=a.direction,p=a.entityLastLocalPos.distance(i)>.001,s=a.entityLastLocalDir.distance(o)>.001;if(p||s){a.entityLastLocalPos=i,a.entityLastLocalDir=o;var n=t.Bundle.createObject();n.newMessage(t.messages.Baseapp_onUpdateDataFromClientForControlledEntity),n.writeInt32(a.id),n.writeFloat(i.x),n.writeFloat(i.y),n.writeFloat(i.z),n.writeFloat(o.x),n.writeFloat(o.y),n.writeFloat(o.z),n.writeUint8(a.isOnGround),n.writeUint32(t.app.spaceID),n.send(t.app)}}}},e.prototype.addSpaceGeometryMapping=function(e,n){t.INFO_MSG("KBEngineApp::addSpaceGeometryMapping: spaceID("+e+"), respath("+n+")!"),t.app.spaceID=e,t.app.spaceResPath=n,t.Event.fire(t.EventTypes.addSpaceGeometryMapping,n)},e.prototype.clearSpace=function(e){t.app.entityIDAliasIDList=[],t.app.spacedata={},t.app.clearEntities(e),t.app.isLoadedGeometry=!1,t.app.spaceID=0},e.prototype.clearEntities=function(e){if(t.app.controlledEntities=[],e){for(var n in t.app.entities)t.app.entities[n].inWorld&&t.app.entities[n].leaveWorld(),t.app.entities[n].onDestroy();t.app.entities={}}else{var r=t.app.player();for(var n in t.app.entities)n!=r.id&&(t.app.entities[n].inWorld&&t.app.entities[n].leaveWorld(),t.app.entities[n].onDestroy());t.app.entities={},t.app.entities[r.id]=r}},e.prototype.Client_initSpaceData=function(e){for(t.app.clearSpace(!1),t.app.spaceID=e.readInt32();e.length()>0;){var n=e.readString(),r=e.readString();t.app.Client_setSpaceData(t.app.spaceID,n,r)}t.INFO_MSG("KBEngineApp::Client_initSpaceData: spaceID("+t.app.spaceID+"), datas("+t.app.spacedata+")!")},e.prototype.Client_setSpaceData=function(e,n,r){t.INFO_MSG("KBEngineApp::Client_setSpaceData: spaceID("+e+"), key("+n+"), value("+r+")!"),t.app.spacedata[n]=r,"_mapping"==n&&t.app.addSpaceGeometryMapping(e,r),t.Event.fire("onSetSpaceData",e,n,r)},e.prototype.Client_delSpaceData=function(e,n){t.INFO_MSG("KBEngineApp::Client_delSpaceData: spaceID("+e+"), key("+n+")!"),delete t.app.spacedata[n],t.Event.fire("onDelSpaceData",e,n)},e.prototype.Client_getSpaceData=function(e,n){return t.app.spacedata[n]},e.prototype.Client_onUpdateBasePos=function(e,n,r){t.app.entityServerPos.x=e,t.app.entityServerPos.y=n,t.app.entityServerPos.z=r},e.prototype.Client_onUpdateBasePosXZ=function(e,n){t.app.entityServerPos.x=e,t.app.entityServerPos.z=n},e.prototype.Client_onUpdateData=function(e){var n=t.app.getViewEntityIDFromStream(e),r=t.app.entities[n];return void 0==r?void t.ERROR_MSG("KBEngineApp::Client_onUpdateData: entity("+n+") not found!"):void 0},e.prototype.Client_onSetEntityPosAndDir=function(e){var n=e.readInt32(),r=t.app.entities[n];return void 0==r?void t.ERROR_MSG("KBEngineApp::Client_onSetEntityPosAndDir: entity("+n+") not found!"):(r.position.x=e.readFloat(),r.position.y=e.readFloat(),r.position.z=e.readFloat(),r.direction.x=e.readFloat(),r.direction.y=e.readFloat(),r.direction.z=e.readFloat(),r.entityLastLocalPos.x=r.position.x,r.entityLastLocalPos.y=r.position.y,r.entityLastLocalPos.z=r.position.z,r.entityLastLocalDir.x=r.direction.x,r.entityLastLocalDir.y=r.direction.y,r.entityLastLocalDir.z=r.direction.z,r.set_direction(r.direction),void r.set_position(r.position))},e.prototype.Client_onUpdateData_ypr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,a,i,-1)},e.prototype.Client_onUpdateData_yp=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,a,t.KBE_FLT_MAX,-1)},e.prototype.Client_onUpdateData_yr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,t.KBE_FLT_MAX,a,-1)},e.prototype.Client_onUpdateData_pr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,a,-1)},e.prototype.Client_onUpdateData_y=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,t.KBE_FLT_MAX,t.KBE_FLT_MAX,-1)},e.prototype.Client_onUpdateData_p=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,t.KBE_FLT_MAX,-1)},e.prototype.Client_onUpdateData_r=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,-1)},e.prototype.Client_onUpdateData_xz=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,1)},e.prototype.Client_onUpdateData_xz_ypr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat(),p=e.readFloat();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,i,o,p,1)},e.prototype.Client_onUpdateData_xz_yp=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,i,o,t.KBE_FLT_MAX,1)},e.prototype.Client_onUpdateData_xz_yr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,i,t.KBE_FLT_MAX,o,1)},e.prototype.Client_onUpdateData_xz_pr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,t.KBE_FLT_MAX,i,o,1)},e.prototype.Client_onUpdateData_xz_y=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,i,t.KBE_FLT_MAX,t.KBE_FLT_MAX,1)},e.prototype.Client_onUpdateData_xz_p=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readInt8();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,t.KBE_FLT_MAX,i,t.KBE_FLT_MAX,1)},e.prototype.Client_onUpdateData_xz_r=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readInt8();t.app._updateVolatileData(n,r,t.KBE_FLT_MAX,a,t.KBE_FLT_MAX,t.KBE_FLT_MAX,i,1)},e.prototype.Client_onUpdateData_xyz=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat();t.app._updateVolatileData(n,r,a,i,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,0)},e.prototype.Client_onUpdateData_xyz_ypr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat(),p=e.readFloat(),s=e.readFloat();t.app._updateVolatileData(n,r,a,i,o,p,s,0)},e.prototype.Client_onUpdateData_xyz_yp=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat(),p=e.readFloat();t.app._updateVolatileData(n,r,i,a,o,p,t.KBE_FLT_MAX,0)},e.prototype.Client_onUpdateData_xyz_yr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat(),p=e.readFloat();t.app._updateVolatileData(n,r,i,a,o,t.KBE_FLT_MAX,p,0)},e.prototype.Client_onUpdateData_xyz_pr=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat(),p=e.readFloat();t.app._updateVolatileData(n,r,i,a,t.KBE_FLT_MAX,o,p,0)},e.prototype.Client_onUpdateData_xyz_y=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat();t.app._updateVolatileData(n,r,i,a,o,t.KBE_FLT_MAX,t.KBE_FLT_MAX,0)},e.prototype.Client_onUpdateData_xyz_p=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat();t.app._updateVolatileData(n,r,i,a,t.KBE_FLT_MAX,o,t.KBE_FLT_MAX,0)},e.prototype.Client_onUpdateData_xyz_r=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readFloat(),a=e.readFloat(),i=e.readFloat(),o=e.readFloat();t.app._updateVolatileData(n,r,i,a,o,t.KBE_FLT_MAX,t.KBE_FLT_MAX,0)},e.prototype.Client_onUpdateData_ypr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8(),a=e.readInt8(),i=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,a,i,-1,!0)},e.prototype.Client_onUpdateData_yp_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8(),a=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,a,t.KBE_FLT_MAX,-1,!0)},e.prototype.Client_onUpdateData_yr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8(),a=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,t.KBE_FLT_MAX,a,-1,!0)},e.prototype.Client_onUpdateData_pr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8(),a=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,a,-1,!0)},e.prototype.Client_onUpdateData_y_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,t.KBE_FLT_MAX,t.KBE_FLT_MAX,-1,!0)},e.prototype.Client_onUpdateData_p_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,t.KBE_FLT_MAX,-1,!0)},e.prototype.Client_onUpdateData_r_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readInt8();t.app._updateVolatileData(n,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,r,-1,!0)},e.prototype.Client_onUpdateData_xz_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,1,!0)},e.prototype.Client_onUpdateData_xz_ypr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8(),i=e.readInt8(),o=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],a,i,o,1,!0)},e.prototype.Client_onUpdateData_xz_yp_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8(),i=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],a,i,t.KBE_FLT_MAX,1,!0)},e.prototype.Client_onUpdateData_xz_yr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8(),i=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],a,t.KBE_FLT_MAX,i,1,!0)},e.prototype.Client_onUpdateData_xz_pr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8(),i=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],t.KBE_FLT_MAX,a,i,1,!0)},e.prototype.Client_onUpdateData_xz_y_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],a,t.KBE_FLT_MAX,t.KBE_FLT_MAX,1,!0)},e.prototype.Client_onUpdateData_xz_p_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],t.KBE_FLT_MAX,a,t.KBE_FLT_MAX,1,!0)},e.prototype.Client_onUpdateData_xz_r_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readInt8();t.app._updateVolatileData(n,r[0],t.KBE_FLT_MAX,r[1],t.KBE_FLT_MAX,t.KBE_FLT_MAX,a,1,!0)},e.prototype.Client_onUpdateData_xyz_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY();t.app._updateVolatileData(n,r[0],a,r[1],t.KBE_FLT_MAX,t.KBE_FLT_MAX,t.KBE_FLT_MAX,0,!0)},e.prototype.Client_onUpdateData_xyz_ypr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8(),o=e.readInt8(),p=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],i,o,p,0,!0)},e.prototype.Client_onUpdateData_xyz_yp_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8(),o=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],i,o,t.KBE_FLT_MAX,0,!0)},e.prototype.Client_onUpdateData_xyz_yr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8(),o=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],i,t.KBE_FLT_MAX,o,0,!0)},e.prototype.Client_onUpdateData_xyz_pr_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8(),o=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],t.KBE_FLT_MAX,i,o,0,!0)},e.prototype.Client_onUpdateData_xyz_y_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],i,t.KBE_FLT_MAX,t.KBE_FLT_MAX,0,!0)},e.prototype.Client_onUpdateData_xyz_p_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],t.KBE_FLT_MAX,i,t.KBE_FLT_MAX,0,!0)},e.prototype.Client_onUpdateData_xyz_r_optimized=function(e){var n=t.app.getViewEntityIDFromStream(e),r=e.readPackXZ(),a=e.readPackY(),i=e.readInt8();t.app._updateVolatileData(n,r[0],a,r[1],i,t.KBE_FLT_MAX,t.KBE_FLT_MAX,0,!0)},e.prototype._updateVolatileData=function(e,n,r,a,i,o,p,s,l){void 0===l&&(l=!1);var c=t.app.entities[e];if(void 0==c)return void t.ERROR_MSG("KBEngineApp::_updateVolatileData: entity("+e+") not found!");s>=0&&(c.isOnGround=s>0);var d=!1;p!=t.KBE_FLT_MAX&&(d=!0,c.direction.x=t.int82angle(p,!1)),o!=t.KBE_FLT_MAX&&(d=!0,c.direction.y=t.int82angle(o,!1)),i!=t.KBE_FLT_MAX&&(d=!0,c.direction.z=t.int82angle(i,!1));var u=!1;1==d&&(t.Event.fire("set_direction",c),u=!0);var y=!1;(n!=t.KBE_FLT_MAX||r!=t.KBE_FLT_MAX||a!=t.KBE_FLT_MAX)&&(y=!0),n==t.KBE_FLT_MAX&&(n=0),r==t.KBE_FLT_MAX&&(r=0),a==t.KBE_FLT_MAX&&(a=0),y&&(l?(c.position.x=n+t.app.entityServerPos.x,c.position.y=r+t.app.entityServerPos.y,c.position.z=a+t.app.entityServerPos.z):(c.position.x=n,c.position.y=r,c.position.z=a),u=!0,t.Event.fire("updatePosition",c)),u&&c.onUpdateVolatileData()},e.prototype.Client_onStreamDataStarted=function(e,n,r){t.Event.fire(t.EventTypes.onStreamDataStarted,e,n,r)},e.prototype.Client_onStreamDataRecv=function(e){var n=e.readUint16(),r=e.readBlob();t.Event.fire(t.EventTypes.onStreamDataRecv,n,r)},e.prototype.Client_onStreamDataCompleted=function(e){t.Event.fire(t.EventTypes.onStreamDataCompleted,e)},e.prototype.Client_onReqAccountResetPasswordCB=function(e){return 0!=e?void t.ERROR_MSG("KBEngineApp::Client_onReqAccountResetPasswordCB: "+t.app.username+" is failed! code="+t.app.serverErrs[e].name+"!"):void t.INFO_MSG("KBEngineApp::Client_onReqAccountResetPasswordCB: "+t.app.username+" is successfully!")},e.prototype.Client_onReqAccountBindEmailCB=function(e){return 0!=e?void t.ERROR_MSG("KBEngineApp::Client_onReqAccountBindEmailCB: "+t.app.username+" is failed! code="+t.app.serverErrs[e].name+"!"):void t.INFO_MSG("KBEngineApp::Client_onReqAccountBindEmailCB: "+t.app.username+" is successfully!")},e.prototype.Client_onReqAccountNewPasswordCB=function(e){return 0!=e?void t.ERROR_MSG("KBEngineApp::Client_onReqAccountNewPasswordCB: "+t.app.username+" is failed! code="+t.app.serverErrs[e].name+"!"):void t.INFO_MSG("KBEngineApp::Client_onReqAccountNewPasswordCB: "+t.app.username+" is successfully!")},e}();t.KBEngineApp=r,__reflect(r.prototype,"KBEngine.KBEngineApp");var a=function(){function t(){this.name="",this.descr="",this.id=0}return t}();t.ServerErr=a,__reflect(a.prototype,"KBEngine.ServerErr"),t.FragmentDataTypes={FRAGMENT_DATA_UNKNOW:0,FRAGMENT_DATA_MESSAGE_ID:1,FRAGMENT_DATA_MESSAGE_LENGTH:2,FRAGMENT_DATA_MESSAGE_LENGTH1:3,FRAGMENT_DATA_MESSAGE_BODY:4};var i;t.create=e,t.destroy=n}(KBEngine||(KBEngine={}));
--------------------------------------------------------------------------------
/kbengine_ts/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "kbengine_ts",
3 | "compilerVersion": "5.2.18"
4 | }
--------------------------------------------------------------------------------
/kbengine_ts/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "noImplicitAny": false,
5 | "sourceMap": false,
6 | "declaration": true,
7 | "experimentalDecorators": true,
8 | "outFile": "kbengine/kbengine.js"
9 | },
10 | "include": [
11 | "libs",
12 | "src"
13 | ],
14 | "exclude": [
15 | "kbengine"
16 | ]
17 | }
--------------------------------------------------------------------------------