Antique Atlas
地图册本体。手持即自动扫描周围区块并把群系画进地图,右键打开可缩放、可滚动的地图界面。
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | antiqueatlas:antiqueAtlas(GameRegistry.registerItem(itemAtlas, "antiqueAtlas")) |
| 内部类 | hunternif.mc.atlas.item.ItemAtlas |
| 本地化名 | item.antiqueAtlas.name = Antique Atlas |
| 物品组 | 无(构造时未调用 setCreativeTab,只有 ItemEmptyAtlas 进 tabTools) |
| 子类型 | 开启(setHasSubtypes(true)) |
| 最大堆叠 | 64(ItemAtlas 未覆写 setMaxStackSize,取 Item 默认值) |
| 附魔适用 | 否(未覆写 getItemEnchantability) |
| 耐久度 | 无 |
| 图标 | antiqueatlas:item/antiqueAtlas(registerIcons 用 item. 前缀截断后的 unlocalizedName) |
功能
- 子类型即数据 ID:物品的 metadata(
ItemStack.getItemDamage())就是 atlasID。显示名覆写为原名 + " #" + itemDamage,所以世界里能同时存在多本不同 ID 的地图册,ID 由world.getUniqueDataId("aAtlas")递增分配。 - 数据落盘键:生物群系数据存于
WorldSavedData键aAtlas_<atlasID>,标记数据存于aaMarkers_<atlasID>(见 地图数据模型)。 - 自动扫描:
onUpdate每 tick 调用,按settings.area_scan_interval间隔以玩家为中心扫描半径area_scan_radius的圆形区域,详见 地图扫描效果。 - 右键开图:
onItemRightClick客户端调proxy.openAtlasGUI(stack),服务端直接返回原 stack(不消耗)。ClientProxy.openAtlasGUI仅当currentScreen == null(即无其他 GUI 打开)时才displayGuiScreen(guiAtlas.setAtlasItemStack(stack))。 - 标记系统入口:地图界面内可增删标记,标记本体模型见 标记系统。
- 伪群系支持:扫描时优先查
ExtBiomeData(全局自定义 tile),命中则覆盖已扫描的自然群系,即使该区块早已被记录。
使用方式
| 使用方式 | 触发条件 | 使用效果 | 条件/限制 |
|---|---|---|---|
| 快捷栏右键 | 无方块目标 | 打开地图 GUI | 已有其它 GUI 打开时不响应;不消耗物品 |
容器内更新(onUpdate) |
物品在玩家主物品栏内 | 向服务器请求同步地图/标记数据;按间隔扫描周边区块 | entity 必须是 EntityPlayer |
| 装备/穿戴 | — | 未覆写任何护甲/穿戴接口,无效果 | — |
合成配方
本物品无法直接合成,只能通过以下两条路径获得:
| 配方 | 输入 | 输出 | 说明 |
|---|---|---|---|
| 空白地图册 右键 | 任意本空白地图册 | 1 本 Antique Atlas,ID = world.getUniqueDataId("aAtlas") |
见 空白 Antique Atlas |
克隆(RecipeAtlasCloning) |
1 本 Antique Atlas + ≥1 本空白地图册 | (N+1) 本 Antique Atlas,沿用原图册 ID | 保留自定义名(hasDisplayName 时 setStackDisplayName) |
合并(RecipeAtlasCombining) |
≥2 本 Antique Atlas | 1 本 Antique Atlas(返回第一本占位),数据全部并入 | 见 地图数据模型 的合并说明 |
RecipeAtlasCloning 与 RecipeAtlasCombining 均以 SHAPELESS 类别注册,优先级 after:minecraft:shapeless,getRecipeSize() 返回 9。
数值
| 数值 | 值 |
|---|---|
| 扫描半径 | settings.area_scan_radius 默认 11(区块) |
| 新区块扫描间隔 | area_scan_interval 默认 1 秒(换算为 round(1f*20)=20 tick) |
| 完全重扫间隔 | 20 tick × area_rescan_rate(默认 4)= 80 tick = 4 秒 |
| 上方两个尺寸变量 | 见 地图扫描效果 |
耐久与消耗
| 项目 | 值 |
|---|---|
| 最大耐久 | 无 |
| 每次使用消耗 | 无 |
| 使用后是否消失 | 否 |
相关条目
- 空白 Antique Atlas - 唯一可合成入口,右键后变成本物品
- 地图扫描效果 - 携带本物品时持续触发的被动效果
- 自动标记 - 本物品携带时由 watcher 自动写入的标记
- 地图数据模型 - 本物品的 NBT 存储结构与 Tile/TileGroup
- 网络消息 - 本物品触发的 11 条封包
- SettingsConfig - 扫描半径等 14 项配置