1
0
Files
wheat-server-kubejs/kubejs/constants.d.ts

243 lines
5.7 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 注:需要在 `jsconfig.json` 配置文件的 `files` 字段中包含该文件(若在 `include` 字段中,定义会被覆盖)。
import type {
$BasicBlockJS$Builder,
} from 'dev.latvian.mods.kubejs.block.custom.BasicBlockJS$Builder';
import {
$BlockRenderType$$Type,
} from 'dev.latvian.mods.kubejs.block.BlockRenderType';
import type {
$ButtonBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.ButtonBlockBuilder';
import type {
$CarpetBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.CarpetBlockBuilder';
import type {
$CropBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.CropBlockBuilder';
import type {
$DetectorBlock$Builder,
} from 'dev.latvian.mods.kubejs.block.DetectorBlock$Builder';
import type {
$DoorBlockBuilder
} from 'dev.latvian.mods.kubejs.block.custom.DoorBlockBuilder';
import type {
$FallingBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.FallingBlockBuilder';
import type {
$FenceBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.FenceBlockBuilder';
import type {
$FenceGateBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.FenceGateBlockBuilder';
import type {
$HorizontalDirectionalBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.HorizontalDirectionalBlockBuilder';
import type {
$PressurePlateBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.PressurePlateBlockBuilder';
import type {
$SlabBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.SlabBlockBuilder';
import type {
$StairBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.StairBlockBuilder';
import type {
$TrapdoorBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.TrapdoorBlockBuilder';
import type {
$WallBlockBuilder,
} from 'dev.latvian.mods.kubejs.block.custom.WallBlockBuilder';
import type {
$Block,
} from 'moe.wolfgirl.probejs.generated.registry.minecraft.Block';
import {
$MapColor$$Type,
} from 'net.minecraft.world.level.material.MapColor';
import {
$SoundType$$Type,
} from 'net.minecraft.world.level.block.SoundType';
/** 方块构造器 */
type BlockBuilder = (
$BasicBlockJS$Builder &
$ButtonBlockBuilder &
$CarpetBlockBuilder &
$CropBlockBuilder &
$DetectorBlock$Builder &
$DoorBlockBuilder &
$FallingBlockBuilder &
$FenceBlockBuilder &
$FenceGateBlockBuilder &
$HorizontalDirectionalBlockBuilder &
$PressurePlateBlockBuilder &
$SlabBlockBuilder &
$StairBlockBuilder &
$TrapdoorBlockBuilder &
$WallBlockBuilder
);
/** 配置选项 */
type SetBlockPropsOpts = {
/** 碰撞箱配置默认null */
boxConfig?: [number, number, number, number, number, number, boolean?];
/** 碰撞箱类型,默认 full */
boxType?: 'custom' | 'full' | 'half';
/** 方块显示名称 */
displayName: string;
/** 坚硬程度默认8 */
hardness?: number;
/** 开启碰撞箱默认true */
hasCollision?: boolean;
/** 是否为完整方块默认true */
isSolid?: boolean;
/** 亮度等级范围0 ~ 1默认0 */
lightLevel?: number;
/** 地图颜色默认none */
mapColor?: $MapColor$$Type;
/** 模型文件路径配置 */
modelPath?: {
/** 方块所属命名空间,示例:`minecraft` */
blockNamespace: string;
/** 方块名称,示例:`stone` */
blockName: string;
/** 模型文件路径,示例:`minecraft:block/stone` */
filePath: string;
};
/**
* 方块渲染类型默认solid
* - `cutout`: required for blocks with texture like glass
* - `translucent`: required for blocks like stained glass
*/
renderType?: $BlockRenderType$$Type;
/** 坚固程度默认16 */
resistance?: number;
/** 声音类型默认stone */
soundType?: $SoundType$$Type;
/** 纹理文件路径,每一面都相同时指定 */
textureAll?: string;
/** 方块粒子效果纹理文件路径,不使用 `textureAll` 的情况下才需要指定 */
textureParticle?: string;
/** 纹理文件路径,侧面都相同时指定 */
textureSide?: string;
/** 纹理文件路径,南北面都相同时指定 */
textureSideNS?: string;
/** 纹理文件路径,东西面都相同时指定 */
textureSideWE?: string;
/** 纹理文件路径,上下面都相同时指定 */
textureUpDown?: string;
};
declare global {
/** 方块注册事件 */
type _RegistryBlock = $Block;
/** 配置选项 */
type _SetBlockPropsOpts = SetBlockPropsOpts;
const global: {
/**
* @description 传入值为空时返回指定的默认值
* @param v 传入值
* @param d 默认值
*/
defaults<TValue>(v: TValue, d: TValue): TValue;
/**
* @description 设置方块基础属性
* @param block 方块
* @param options 配置选项
*/
setBlockProps(block: BlockBuilder, options: SetBlockPropsOpts): boolean;
/**
* @description 设置方块水平旋转属性
* @param block 方块
* @param type 旋转类型
* @param model 模型路径
*/
setHorizontalFacing(
block: BlockBuilder,
type: 'revert' | 'same',
model: string
): boolean;
/**
* @description 写入 JSON 文件
* @param path 文件路径,相对于 `.minecraft`
* @param data JSON 内容对象
*/
writeJSON(path: string, data: object): void;
/** 颜色列表 */
COLORS: {
[key: string]: {
CODE: string;
HEX: string;
LABEL_CN: string;
LABEL_EN: string;
};
};
/** 需要在 `client.generate_assets` 生成的 JSON 文件 */
JSON_ASSETS: Array<{
/** JSON 完整路径,示例:`minecraft:models/block/stone` */
path: string;
data: object;
}>;
/** 日志前缀 */
LOG_PREFIX: string;
};
}
export { };