添加内部属性标记

This commit is contained in:
宫欣海
2025-03-07 16:02:00 +08:00
parent b6551e9bbf
commit 897d618a0b
71 changed files with 909 additions and 220 deletions

View File

@@ -80,6 +80,7 @@ export class Binary {
* @param view DataView对象
* @param offset 当前偏移量
* @returns 下一个数据的偏移量
* @internal
*/
private static validateBinaryFormat(view: DataView, offset: number): number {
const type = view.getUint8(offset);
@@ -118,6 +119,7 @@ export class Binary {
}
}
/** @internal */
private static readValue(view: DataView, offset: number): any {
const type = view.getUint8(offset++);
@@ -166,6 +168,7 @@ export class Binary {
}
}
/** @internal */
private static writeValue(value: any, chunks: Uint8Array[]): void {
if (value === null) {
chunks.push(new Uint8Array([0]));
@@ -235,6 +238,7 @@ export class Binary {
}
}
/** @internal */
private static getNextOffset(view: DataView, offset: number): number {
const type = view.getUint8(offset);
switch (type) {

View File

@@ -11,8 +11,11 @@ export abstract class HeapNode {
export class BinaryHeap<T extends HeapNode> {
/** @internal */
private _nodes: Array<T>;
/** @internal */
private _size: number;
/** @internal */
private _capacity: number;
constructor(capacity: number) {
@@ -132,6 +135,7 @@ export class BinaryHeap<T extends HeapNode> {
return true;
}
/** @internal */
private _parent(index: number): number {
return (index - 1) >> 1;
}
@@ -144,6 +148,7 @@ export class BinaryHeap<T extends HeapNode> {
return this._size == 0;
}
/** @internal */
private _sortUp(node: T, index: number): void {
let parentIndex = this._parent(index);
const nodes = this._nodes;
@@ -159,6 +164,7 @@ export class BinaryHeap<T extends HeapNode> {
nodes[index] = node;
}
/** @internal */
private _sortDown(node: T, index: number): void {
let childIndex = (index << 1) + 1;
const nodes = this._nodes;

View File

@@ -25,8 +25,11 @@ export class DoublyNode<T> extends LinkedNode<T> {
/** 单向链表 */
export class LinkedList<T> {
/** @internal */
protected _equalsFn: (a: T, b: T) => boolean;
/** @internal */
protected _count: number;
/** @internal */
protected _head: LinkedNode<T>;
/**
* create
@@ -172,7 +175,9 @@ export class LinkedList<T> {
/** 双向链表 */
export class DoublyLinkedList<T> extends LinkedList<T> {
/** @internal */
protected _head: DoublyNode<T>; // 重新定义 head 类型
/** @internal */
protected _tail: DoublyNode<T>;
/**
* create

View File

@@ -1,6 +1,7 @@
import { DoublyLinkedList } from "./LinkedList";
export class Stack<T> {
/** @internal */
private _items: DoublyLinkedList<T>;
constructor(equalsFn?: (a: T, b: T) => boolean) {
this._items = new DoublyLinkedList<T>(equalsFn);

View File

@@ -44,4 +44,27 @@ export class MathTool {
}
return out;
}
/**
* 内部使用的辅助方法,用于计算平滑过渡的因子
* @internal
*/
public static calculateSmoothFactor(elapsedTime: number, responseTime: number): number {
return elapsedTime / (elapsedTime + responseTime);
}
/**
* 内部使用的工具方法,不应该在库外部使用
* @internal
*/
public static internalRoundToDecimal(value: number, decimals: number): number {
const factor = Math.pow(10, decimals);
return Math.round(value * factor) / factor;
}
/**
* 内部使用的辅助常量
* @internal
*/
public static readonly INTERNAL_EPSILON = 0.00001;
}

View File

@@ -11,16 +11,28 @@ import { log } from "./log";
let TimeCache: Date = null;
export class Time {
/** 游戏系统启动时间戳 */
/**
* 游戏系统启动时间戳
* @internal
*/
private static _osBootTime: number = 0;
/** 主动设置的网络时间 单位ms */
/**
* 主动设置的网络时间 单位ms
* @internal
*/
private static _netTime: number = 0;
/** 本地时间与网路时间的偏移量 单位ms */
/**
* 本地时间与网路时间的偏移量 单位ms
* @internal
*/
private static _netTimeDiff: number = 0;
/** 获取当前毫秒时间戳 */
/**
* 获取当前毫秒时间戳
* @internal
*/
private static _nowTimestamp: () => number;
/** 获取游戏系统启动时间戳 */

View File

@@ -1,7 +0,0 @@
/**
* @Author: Gongxh
* @Date: 2024-12-14
* @Description: tools 导出
*/

View File

@@ -4,6 +4,13 @@
* @Description: 对象帮助类
*/
export class ObjectHelper {
/**
* 获取对象属性
* @param obj 对象
* @param key 属性名
* @returns 属性值
* @internal
*/
public static getObjectProp(obj: Record<string, any>, key: string): any {
if (obj.hasOwnProperty(key)) {
return obj[key];

View File

@@ -9,15 +9,18 @@ import { TimerNode } from "./TimerNode";
import { TimerNodePool } from "./TimerNodePool";
export class Timer {
/** @internal */
private _timerNodeOrder: number = 0;
/** 经过的时间 */
/** 经过的时间 @internal */
private _elapsedTime: number = 0;
/** @internal */
private _pool: TimerNodePool;
/** @internal */
private _heap: BinaryHeap<TimerNode>;
/** 暂停的计时器 */
/** 暂停的计时器 @internal */
private _pausedTimers: Map<number, TimerNode>;
/**
@@ -31,9 +34,7 @@ export class Timer {
/**
* 定时器管理类
*
* @param {number} initTimerCapacity 初始定时器容量
* @memberof Timer
*/
public constructor(initTimerCapacity: number) {
this._heap = new BinaryHeap<TimerNode>(initTimerCapacity);
@@ -56,7 +57,6 @@ export class Timer {
/**
* 删除指定计时器
*
* @param {number} timerId 定时器ID
* @memberof Timer
*/
@@ -106,34 +106,10 @@ export class Timer {
}
}
// /**
// * 根据回调更新定时器
// *
// * @param {number} timerId 定时器ID
// * @param {number} interval 回调间隔
// * @param {number} loop 重复次数
// * @param {boolean} [resetTime=false] 是否更新下次回调时间(从当前时间开始计时)
// * @returns {boolean} 如果TimerID存在则返回true
// * @memberof Timer
// */
// public updateTimer(timerId: number, interval: number, loop: number, resetTime: boolean = false): boolean {
// const timerNode = this._pool.get(timerId);
// if (!timerNode) {
// return false;
// }
// timerNode.interval = interval;
// timerNode.loop = loop;
// if (resetTime) {
// timerNode.expireTime = this._elapsedTime + interval;
// }
// return this._heap.update(timerNode);
// }
/**
* 更新时钟
*
* @param {number} deltaTime 更新间隔
* @memberof Timer
* @internal
*/
public update(deltaTime: number): void {
const elapsedTime = (this._elapsedTime += deltaTime);
@@ -170,8 +146,6 @@ export class Timer {
/**
* 清空所有定时器
*
* @memberof Timer
*/
public clear(): void {
this._heap.clear();
@@ -180,6 +154,7 @@ export class Timer {
this._timerNodeOrder = 0;
}
/** @internal */
private _getTimerNode(callback: () => void, interval: number, loop: number): TimerNode {
const timerNode = this._pool.allocate();
@@ -193,6 +168,7 @@ export class Timer {
return timerNode;
}
/** @internal */
private _recycle(timerNode: TimerNode): void {
this._pool.recycle(timerNode.id);
}

View File

@@ -5,6 +5,7 @@
*/
import { HeapNode } from "../DataStruct/BinaryHeap";
/** @internal */
export class TimerNode extends HeapNode {
/** 定时器ID */
public id: number;

View File

@@ -11,12 +11,15 @@ const TimerVersionMask = (1 << TimerIdBit) - 1;
const TimerMaxVersion = TimerVersionMask;
export class TimerNodePool {
/** @internal */
private _pool: Array<TimerNode> = new Array<TimerNode>();
/** @internal */
private _freeIndices: Array<number> = new Array<number>();
/**
* 定时器池
* @param {number} capacity 初始容量
* @internal
*/
public constructor(capacity: number) {
for (let i = 0; i < capacity; ++i) {
@@ -31,6 +34,7 @@ export class TimerNodePool {
/**
* 分配定时器节点
* @returns {TimerNode} 定时器节点
* @internal
*/
public allocate(): TimerNode {
let timerNode: TimerNode;
@@ -59,6 +63,7 @@ export class TimerNodePool {
/**
* 回收定时器节点
* @param {number} timerId 定时器ID
* @internal
*/
public recycle(timerId: number): void {
const index = timerId >>> TimerIdBit;
@@ -82,6 +87,7 @@ export class TimerNodePool {
* 根据TimerID获取定时器节点
* @param {number} timerId 定时器ID
* @returns {TimerNode}
* @internal
*/
public get(timerId: number): TimerNode | undefined {
const index = timerId >>> TimerIdBit;
@@ -107,6 +113,7 @@ export class TimerNodePool {
/**
* 清空正在使用的Timer
* @internal
*/
public clear(): void {
const pools = this._pool;