# @adatechnology/game-items 中文文档

规范地址：https://npmcn.com/package/%40adatechnology/game-items/

版本：0\.2\.5
npm 元数据更新时间：2026-11-06T05:12:31.612Z
中文译文更新时间：2026-11-06T11:32:12.522Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adatechnology/game-items
原文对照：https://npmcn.com/package/%40adatechnology/game-items/?lang=original
项目主页：https://github.com/Andersonfrfilho/adatechnology-game-kit#readme
源码仓库：https://github.com/Andersonfrfilho/adatechnology-game-kit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：507 kB，8 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-10-24T14:00:40.211Z
- 最新版本发布：2026-11-06T05:12:31.311Z
- 近 30 天下载量：3379（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 19 个）

## 中文简介

引擎不可识别项目编目引擎:项目定义(类别、大小、重量、稀有性、耐久性、保存寿命、保护、携带)、有补丁/重新移动/包含的可扩展登记簿,以及查找、新鲜、存储、携带重量和前缀的默认规则

## 安装

```sh
npm install @adatechnology/game-items
```

也可以使用：`pnpm add @adatechnology/game-items`、`yarn add @adatechnology/game-items`、`bun add @adatechnology/game-items`

## README

# @ adatechnology/ 游戏项目

引擎-不可知项目录引擎. 它定义了物品是什么(类别、实际体积(以米计)、重量(以公斤计)、稀有性、耐久性、储存寿命、营养、, 保护、携带能力、武器链接(在发现的地方)、游戏扩展和补丁的注册以及发现、更新、存储的默认规则, 携带重量和衣物保护。 它没有内容(目录生活在 `@adatechnology/game-items-goods`),没有渲染器(3D 生活于 `@adatechnology/game-items-three`)),它对于任何游戏一无所知.

> 状态:引擎完成(第001种的T3.1a和T3.1e):注册,规则,懒惰衰老,携带,保护,使用效果,食谱,发现和武库桥. 凡事都纯;宿主守州.

单位:米、公斤、升、日.

## 安装

```sh
pnpm add @adatechnology/game-items
```

一个平地 `<script src=".../dist/index.global.js">` 揭露 `GameItems` 全球.

## 使用量

```ts
import { createItems } from '@adatechnology/game-items'
import type { ItemDef } from '@adatechnology/game-items'

const beans: ItemDef = { id: 'canned_beans', category: 'food', size: [0.075, 0.11, 0.075], weight: 0.43, rarity: 'common', shelfLife: 1460, portions: 2 }

const items = createItems({
  packs: [{ id: 'mine', items: [beans], places: [{ id: 'house' }] }],
  patch: { canned_beans: { weight: 0.45 } },        // field by field; arrays replace
  rules: { carry: { baseKg: 10 } },                 // merged over DEFAULT_RULES
})
items.get('canned_beans').volume // 0.928 L, derived from size
items.byCategory('food')
```

顺序:包(一个后期物品,代用相同的代号), `patch`, (中文(简体) ), `remove`, (中文(简体) ), `include`。每个不一致之处(未知类别、罕见或地点、无效大小、, 重量、储存寿命、保护、携带或规则)在一个错误中报告.

## 逻辑

```ts
import { createFindsProvider, freshness, blockChance, maxLoadKg, placeFinds } from '@adatechnology/game-items'

freshness(milk, { ageDays: 0, since: 0, storage: 'fridge', storedAt: 0 }, 20)   // closes the account lazily, then 'fresh' | 'stale' | 'spoiled' | 'rotten'
blockChance(pieces, 'arms', 'bite')                                              // 1 - PROD(1 - value x condition), capped at 90%
maxLoadKg(strength)                                                              // (8 + 2.5 x strength) x 1.2
const stacks = createFindsProvider(items).findsFor({ place: 'house', container: 'fridge', state: 'fortified', rng, day: 12 })
const { contents, leftover } = placeFinds(stacks, slots, items)                  // the floorplan's `contents`
```

-   **衰老是懒惰.** 无勾选 : `advanceAge` 关闭 `ageDays += (now - since) x multiplier` 当项目移动或被查看时。 冰箱和冰箱需要电源(主机通过) `powered`;没有动力的冷藏机使食物新鲜而有两天时间;头两天的冷却年龄为x0.5;电池每月损失10%的电荷;过180天的汽油故障10%的起步.
-   **查找是一个提供者后面的两个端口.** 装有明确游泳池的容器(3D取景器) `sorteiaConteudo`:按足迹、加权顺序、加固的x2.5和+1对用品进行计算, 被废弃的40%空加垃圾)从中取出;其他任何像游戏中的 `rollItems` (计算范围、类别权重、地点项目中很少的60/28/9/2.5)。 都留着 随机绘制源的顺序; 堆栈首先选择,然后绘制每个(年龄、条件、充电、充电)的状态。 计数随着爆发的日子 (单位:千美元)`max(floor, 1 - perDay x days)`,0日没有),可以按区域进行分级.
-   **供货商是地板的 `FindsProvider` 按形状** (单位:千美元)`findsFor(query) -> FindStack[]`; 此软件包不导入 `game-floorplan`。 。 。 .
-   **武器库成为物项:** `itemsFromArsenal(arsenal, { records })` 制造 `ammo_<caliber>`, (中文(简体) ), `firearm_<id>` 财务报告和审定财务报表 `throwable_<id>`; 游戏的框 (`records`)给出弹道,重量和稀有性,其余部分为估算.
-   包装也携带 `pools` (什么样的家具持有), `poolAliases`, (中文(简体) ), `useEffects` 财务报告和审定财务报表 `recipes`· ; `resolveUse`, (中文(简体) ), `canCraft` 财务报告和审定财务报表 `craft` 读取,然后离开 将结果应用到主机.

## API 密码

| 名称 | 这是什么 |
| --- | --- |
| `createItems(options?)` | `ItemsCatalog`: 地图 `items`, (中文(简体) ), `categories`, (中文(简体) ), `places`, (中文(简体) ), `containers`, (中文(简体) ), `pools`, (中文(简体) ), `recipes`, (中文(简体) ), `useEffects`, (中文(简体) ), `rules`· ; `has`, (中文(简体) ), `get` (在未知的情况下), `list`, (中文(简体) ), `byCategory`, (中文(简体) ), `byPlace`, (中文(简体) ), `byTag` |
| `ItemDef` | 扩展可交互性 `ItemDef`; 字段在 `src/types.ts` |
| `ITEM_CATEGORIES` | 14个类别`food`, (中文(简体) ), `drink`, (中文(简体) ), `medical`, (中文(简体) ), `tools`, (中文(简体) ), `melee`, (中文(简体) ), `materials`, (中文(简体) ), `clothing`, (中文(简体) ), `bags`, (中文(简体) ), `electronics`, (中文(简体) ), `fuel`, (中文(简体) ), `outdoors`, (中文(简体) ), `books`, (中文(简体) ), `collectibles`, (中文(简体) ), `keys`; 游戏添加更多 `categories` |
| `DEFAULT_RULES`, (中文(简体) ), `ItemRules` | 稀有重量 60/28/9/2.5/0.5(仅限固定地点),新鲜度0.5/1/1.5,存储乘数,载体 `(8 + 2.5 × strength) × 1.2` 100%/150%,保护上限为90%,佩戴-8/-3,撕破25%, `aging`, (中文(简体) ), `inventory`, (中文(简体) ), `use` (过去最好的食物), `spawn` (新商店库存,按稀有程度、年龄、收费、填充), `finds` (按日,州,池数减 |
| `advanceAge`, (中文(简体) ), `moveToStorage`, (中文(简体) ), `storageMultiplier`, (中文(简体) ), `freshness`, (中文(简体) ), `shelfRatio`, (中文(简体) ), `chargeLevel`, (中文(简体) ), `failsToStart` | 衰老和衰变 |
| `blockChance`, (中文(简体) ), `wearBlocked`, (中文(简体) ), `repairPiece`, (中文(简体) ), `pieceBlock` | 分层服装保护 |
| `maxLoadKg`, (中文(简体) ), `carriedKg`, (中文(简体) ), `loadState`, (中文(简体) ), `bagOption`, (中文(简体) ), `canTake` | 携带重量和槽 |
| `resolveUse` | 将某一项用作数据是做什么的 `UseContext.seal` 密封物品(`ItemDef.seal`页:1 `SealSpec` 仍被关闭、打洞或漏水者不吃(`blocked`(中文(简体) ) |
| `canCraft`, (中文(简体) ), `craft` | 食谱 |
| `createFindsProvider`, (中文(简体) ), `rollByCategory`, (中文(简体) ), `rollExplicitPool`, (中文(简体) ), `spawnData`, (中文(简体) ), `depletionFactor`, (中文(简体) ), `placeFinds`, (中文(简体) ), `toLootTables` | 发现 |
| `itemsFromArsenal` | 作为物项的武库 |
| `checkItems(parts)` | 一致性检查 `createItems` 运行 |
| `RARITIES`, (中文(简体) ), `BODY_SLOTS`, (中文(简体) ), `DURABILITY_KINDS` | 封闭的词汇表 |

地点也是登记地点:没有船只、包装或游戏宣布; `finds.places` 仅当至少一个地方注册时才选中.

## 黄金与球队的密码对抗

`tests/team-golden.test.ts` 比较两个端口与团队自己的代码答案: `rollByCategory` 游戏的 `rollItems` (2 400个案件)和 `rollExplicitPool` 3D 室内取景器 `sorteiaConteudo` (1875个病例),结果和随机抽取的数量相同. 装入 `tests/fixtures/team-golden/` 记录一次 `pnpm --filter @adatechnology/game-items record:team-golden`,从而切断了已交付源的功能,将其运行在一个 `vm` 与种子随机流.

## 常见问题

### @adatechnology/game-items 是什么？

引擎不可识别项目编目引擎:项目定义\(类别、大小、重量、稀有性、耐久性、保存寿命、保护、携带\)、有补丁/重新移动/包含的可扩展登记簿,以及查找、新鲜、存储、携带重量和前缀的默认规则

### 如何安装 @adatechnology/game-items？

在项目目录运行 npm install @adatechnology/game-items，或使用 pnpm add / yarn add / bun add。

### @adatechnology/game-items 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @adatechnology/game-items 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @adatechnology/game-items 可以商用吗？

@adatechnology/game-items 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @adatechnology/game-items 的下载量有多少？

根据 npm 官方下载统计，@adatechnology/game-items 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,379 次，日均约 113 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @adatechnology/game-items 还在维护吗？

最新版本 0\.2\.5 发布于 2026/11/06（今天）；至今共发布 19 个版本，其中过去 12 个月发布了 19 个；首次发布于 2026/10/24。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

