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 秒 |
| 上方两个尺寸变量 |
见 地图扫描效果 |
耐久与消耗
| 项目 |
值 |
| 最大耐久 |
无 |
| 每次使用消耗 |
无 |
| 使用后是否消失 |
否 |
相关条目