1.1.0 • Published 5 months ago

@tsmugen/global v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

@tsmugen/global 使用文档

目录

介绍

@tsmugen/global 可将 @tsmugen/core 中的所有 triggers 注册到全局。因此若您想在自己的项目中集成 ts-mugen,请不要安装该插件。

使用方法

由于 parentname 属性与 typescript 自带的 lib.dom.d.ts 中的声名冲突,因此需在项目的 tsconfig.json 文件中追加如下配置:

// tsconfig.json
{
    "compilerOptions": {
        // ...其余配置
    },
    "exclude": [
        // 追加排除
        "node_modules/typescript/lib/lib.dom.d.ts"
    ],
    // ...其余配置
}

然后在项目入口顶部直接引入即可。

// 项目入口文件
import '@tsmugen/global';

import { Character, Mugen } from '@tsmugen/core';
import states from './skills';

const char = new Character();

char.injectStates(states);

const mugen = new Mugen();

mugen.injectCharacter(char);

mugen.build();

此后对人物的编写无需再单独引入 triggers

import { Null, useStatedef } from '@tsmugen/core';

function start() {
    useStatedef({
        id: 1000,
        anim: 2000
    });

    Null({
        // 此处不必再引入 time
        triggers: time.equal(0)
    });
}

API

名称说明类型
injectGlobalVars向全局的 root、parent、partner、enemy、enemynear、target 中注入自定义整型变量(vars) => void
injectGlobalFVars向全局的 root、parent、partner、enemy、enemynear、target 中注入自定义浮点型变量(fvars) => void
injectGlobalSysVars向全局的 root、parent、partner、enemy、enemynear、target 中注入自定义系统整型变量(sysVars) => void
injectGlobalSysFVars向全局的 root、parent、partner、enemy、enemynear、target 中注入自定义系统浮点型变量(sysFVars) => void
injectGlobalHelpers向全局的 root、parent、partner、enemy、enemynear、target 中注入自定义 helper(helpers) => void
injectPlayerVars向某一全局实例注入自定义整型变量(player, vars) => void
injectPlayerFVars向某一全局实例注入自定义浮点型变量(player, fvars) => void
injectPlayerSysVars向某一全局实例注入自定义系统整型变量(player, sysVars) => void
injectPlayerSysFVars向某一全局实例注入自定义系统浮点型变量(player, sysFVars) => void
injectPlayerHelper向某一全局实例注入自定义 helper(player, helpers) => void

在调用任意 injectGlobalXXX API 后,实例已成功注入,但却无法自动映射语法提示,需手动创建全局声名扩展。 在项目任意位置添加 *.d.ts 文件。

// src/types/index.d.ts

declare global {
    interface Root extends GlobalExtend { }
    interface Parent extends GlobalExtend { }
    interface Partner extends GlobalExtend { }
    interface Enemynear extends GlobalExtend { }
    interface Enemy extends GlobalExtend { }
    interface Target extends GlobalExtend { }
    interface PlayerId extends GlobalExtend { }
}

其中 GlobalExtend 为你的自定义变量、helper 类型集合。 例如:

// 全局 helper
export const testHelper = new Helper(3000);

export const customHelpers = {
    testHelper
};

export type CustomHelpers = typeof customHelpers;

// 全局变量
export const AISwitch = new Var(59, 'AI 开关');

export const customVars = {
    AISwitch
};

export type CustomVars = typeof customVars;

export type GlobalExtend = CustomVars & CustomHelpers;
  • customHelpers 为自定义 helper 集合
  • customVars 为自定义整型变量集合

每次新增(变量/helper)便可向 (customVars/customHelpers)中追加属性,typescript 便可自动推导类型。

注意: 使用以上任意注入 helper 的 API 时,请注意 helper 的 id 应为明确的值而非表达式,即 new Helper(ID.add(1000)) 等形式的 helper 需避免。

1.1.0

5 months ago

1.0.2

2 years ago

1.0.1

2 years ago