空白 Antique Atlas
合成材料。右键后消耗 1 个,向世界申请一个新的 atlasID 并把玩家当前位置设为该图册的浏览中心,返回一本刚建好但还没有任何已扫描数据的地图册。
基本信息
| 属性 |
值 |
| 注册名 |
antiqueatlas:emptyAntiqueAtlas(GameRegistry.registerItem(itemEmptyAtlas, "emptyAntiqueAtlas")) |
| 内部类 |
hunternif.mc.atlas.item.ItemEmptyAtlas |
| 本地化名 |
item.emptyAntiqueAtlas.name = Empty Antique Atlas |
| 物品组 |
CreativeTabs.tabTools |
| 子类型 |
否 |
| 最大堆叠 |
64(Item 默认值,未覆写) |
| 附魔适用 |
否(未覆写 getItemEnchantability) |
| 耐久度 |
无 |
| 图标 |
antiqueatlas:item/emptyAntiqueAtlas |
功能
onItemRightClick 的完整流程(客户端直接 return stack,不消耗):
atlasID = world.getUniqueDataId(ItemAtlas.WORLD_ATLAS_DATA_ID),其中常量 WORLD_ATLAS_DATA_ID = "aAtlas"。
- 构造
new ItemStack(AntiqueAtlasMod.itemAtlas, 1, atlasID)。
- 取得
AtlasDataHandler.getAtlasData(atlasID, world),把玩家所在维度的浏览位置设为
x = round(-player.posX * settings.defaultScale)、y = round(-player.posZ * settings.defaultScale)、
zoom = settings.defaultScale,然后 atlasData.markDirty()。
注意 X/Z 取负——地图界面里世界坐标向屏幕上方/左为正方向。
- 取得
MarkersDataHandler.getMarkersData(atlasID, world) 并 markDirty(),建一张空的标记数据表。
stack.stackSize--:堆叠数减 1。若减到 0,直接返回新图册;否则把新图册的副本塞进背包,塞不进则用 ForgeHooks.onPlayerTossEvent 丢在脚下。
使用方式
| 使用方式 |
触发条件 |
使用效果 |
条件/限制 |
| 快捷栏右键 |
服务端(world.isRemote 时直接返回,不消耗) |
消耗 1 个,换取 1 本新 ID 的 Antique Atlas |
多人游戏在服务端判定;新图册只有一个空的数据表 |
合成配方
无序(shapeless)配方,来自 GameRegistry.addShapelessRecipe:
| 原料 |
数量 |
minecraft:book |
1 |
minecraft:compass |
1 |
也可与已填充图册配合克隆:RecipeAtlasCloning 接受 1 本 Antique Atlas + ≥1 本空白地图册,产出 N+1 本同 ID 的地图册。
数值
| 属性 |
值 |
| 消耗 |
每次右键 1 个 |
| 新图册初始浏览缩放 |
settings.default_scale(默认 0.5) |
| 新图册 atlasID 来源 |
world.getUniqueDataId("aAtlas") 递增 |
耐久与消耗
| 项目 |
值 |
| 最大耐久 |
无 |
| 每次使用消耗 |
1 个物品 |
| 使用后是否消失 |
堆叠数为 1 时消失;>1 时剩余数量留存并额外产出 1 本地图册 |
相关条目