位移方块组(Transvector)
基本信息
| 属性 | 值 |
|---|---|
| 方块数 | 2(接口 + 位移器) |
| 基类 | BlockTransvectorInterface 继承 BlockMod;BlockTransvectorDislocator 继承 BlockCamo |
| TileEntity 包 | thaumic.tinkerer.common.block.tile.transvector:TileTransvector、TileTransvectorInterface、TileTransvectorDislocator |
| 注册位置 | TTRegistry.java:69(位移器)、TTRegistry.java:70(接口) |
| 注册门槛 | 两者均无条件注册(各自 shouldRegister() 显式 return true) |
两个方块是同一机制的一对:接口方块提供可移动容器,位移器方块负责跨位置搬运。TileTransvector 是二者共享的基类 TileEntity。
数值
| 方块 | 注册名 | Java 类 | TileEntity | 注册门槛 | 注册行 |
|---|---|---|---|---|---|
| 位移器 | dislocator |
BlockTransvectorDislocator |
TileTransvectorDislocator |
无条件 | TTRegistry.java:69 |
| 接口 | interface |
BlockTransvectorInterface |
TileTransvectorInterface |
无条件 | TTRegistry.java:70 |
功能
接口方块(Transvector Interface)
自身不定义固定槽位数,而是透传所绑定 TileEntity 的槽位大小:
getTileEntity()返回TileTransvectorInterface.class(BlockTransvectorInterface.java:71-73)TileTransvectorInterface.getSizeInventory()为return tile instanceof IInventory ? ((IInventory) tile).getSizeInventory() : 0;(TileTransvectorInterface.java:109-111)—— 目标不是IInventory时返回 0- 槽位索引由
int[] slots = new int[inv.getSizeInventory()];分配(TileTransvectorInterface.java:62)
位移器方块(Transvector Dislocator)
继承 BlockCamo(与 BlockPlatform、BlockGolemConnector、BlockRPlacer 同基类)。TileTransvectorDislocator 在搬运时会调用目标的 createTileEntity(worldObj, meta) 来实例化被搬运的方块实体(TileTransvectorDislocator.java:189),这是仓库中除 BlockForcefield 外另一处直接使用原版 createTileEntity() 路径的地方。
研究
| 方块 | 研究键 | 键值 | 要素 | 父研究 | 复杂度 |
|---|---|---|---|---|---|
| 接口 | KEY_INTERFACE |
INTERFACE |
ENTROPY 4 + ORDER 4 | KEY_DARK_QUARTZ |
-4 / 2 / 1 |
| 位移器 | KEY_DISLOCATOR |
DISLOCATOR |
TRAVEL 2 + MECHANISM 1 + ELDRITCH 1 | KEY_INTERFACE(另 setParentsHidden("MIRROR")) |
-6 / 1 / 3 |
接口研究来自 BlockTransvectorInterface.getResearchItem()(BlockTransvectorInterface.java:76-85);位移器研究来自 BlockTransvectorDislocator.getResearchItem()(BlockTransvectorDislocator.java:161-176),并调用了 setConcealed() 与 setSecondary()。
受 Thaumcraft Config.allowMirrors 门控
位移器的 getResearchItem() 与 getRecipeItem() 首行都是 if (!Config.allowMirrors) { return null; }(BlockTransvectorDislocator.java:162-164 与 :179-181)。方块本身仍会注册(shouldRegister() 恒 true),但当 Thaumcraft 关闭镜像时,位移器没有研究条目也没有合成配方。
合成配方
位移器的配方为 3 行 3 列的奥术配方(BlockTransvectorDislocator.java:181-195 起):
M
I
C
| 字符 | 物品 | 源码 |
|---|---|---|
M |
Thaumcraft 资源 ConfigItems.itemResource meta 10 |
BlockTransvectorDislocator.java:189-190 |
I |
位移接口方块本体 | BlockTransvectorDislocator.java:191-192 |
C |
见 BlockTransvectorDislocator.java:193 起的 'C' 分支 |
— |
所需 Aspects:EARTH 5 + ENTROPY 5。