范围触发器
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | IC2NuclearControl:blockNuclearControlMain,metadata 8 |
| 常量 | BlockDamages.DAMAGE_RANGE_TRIGGER = 8(BlockDamages.java:15) |
| 子方块类 | blocks/subblocks/RangeTrigger.java |
| TileEntity | TileEntityRangeTrigger,注册名 IC2NCRangeTrigger(CommonProxy.java:42) |
| 实现接口 | ISlotItemFilter、INetworkDataProvider、INetworkUpdateListener、IWrenchable、ITextureHelper、IRotation、IInventory、INetworkClientTileEntityEventListener(TileEntityRangeTrigger.java:38-40) |
| 中文名 | 范围触发器(zh_CN.lang:49) |
| 需依附方块 | 否(RangeTrigger.java:44-46) |
| 碰撞箱 | 0,0,0 → 1,1,1(RangeTrigger.java:17) |
| GUI | ContainerRangeTrigger + GuiRangeTrigger(RangeTrigger.java:60,68) |
| 库存格数 | 2(TileEntityRangeTrigger.java:188) |
功能
范围触发器是本模组中唯一可自由设定上下阈值的红石输出设备。与温度监控器「跟随反应堆热量」不同,它读取所插卡片的数据,并与 levelStart / levelEnd 两个阈值比较,超出范围时输出红石信号。
库存 2 格(TileEntityRangeTrigger.java:42-43,188):
| 槽位 | 常量 | 用途 |
|---|---|---|
| 0 | SLOT_CARD |
传感卡片 |
| 1 | SLOT_UPGRADE |
范围升级(提升定位范围) |
状态用 onFire 表达,取三个常量(TileEntityRangeTrigger.java:47-49):
| 常量 | 值 | 含义 |
|---|---|---|
STATE_UNKNOWN |
-1 | 尚未初始化 / 未知 |
STATE_PASSIVE |
0 | 数据在阈值区间内(静默) |
STATE_ACTIVE |
1 | 数据超出阈值区间(触发) |
数值
| 数值名 | 值 | 引用 |
|---|---|---|
默认上限 levelStart |
10000000 | TileEntityRangeTrigger.java:199 |
默认下限 levelEnd |
9000000 | TileEntityRangeTrigger.java:200 |
| 定位范围 | 8 | LOCATION_RANGE(TileEntityRangeTrigger.java:44) |
| 刷新周期 | 取自配置项 rangeTriggerRefreshPeriod,默认 20 |
TileEntityRangeTrigger.java:191 |
| 网络同步字段 | 7 个 | facing/rotation/card/onFire/invertRedstone/levelStart/levelEnd(TileEntityRangeTrigger.java:204-212) |
| 贴图索引常量 | 背面 0、侧面 1 | RangeTrigger.java:19-20 |
updateEntity() 以 updateTicker 递减实现定时刷新,计数为 0 时重置为 tickRate 并调用 markDirty()(TileEntityRangeTrigger.java:227-237)。rangeTriggerRefreshPeriod 配置项见 ConfigurationHandler.java:40-41。
交互:红石输出
BlockNuclearControlMain.isProvidingStrongPower 为范围触发器提供了独立分支(BlockNuclearControlMain.java:513-514):
getOnFire() > 0 ^ isInvertRedstone() ? 15 : 0
即默认状态下超出阈值输出 15,开启「反转红石」后逻辑取反。onFire 可由 setOnFire 修改(TileEntityRangeTrigger.java:158)。
客户端可通过网络事件修改阈值:onNetworkEvent 处理 -1 / -2 两种情况(TileEntityRangeTrigger.java:143-149)。levelStart 与 levelEnd 标注了 @ClientModifiable,允许客户端修改后同步回服务端(TileEntityRangeTrigger.java:71,78)。
合成配方
RecipesNew.java:178-181:
PFP
AMA
R
| 字符 | 物品 |
|---|---|
P |
plateIron(铁板) |
F |
IC2 frequencyTransmitter(频率发射器) |
A |
circuitAdvanced(高级电路) |
M |
IC2 machine(机器) |
R |
dustRedstone(红石粉) |