Merge branch 'HbmMods:master' into rulang3

This commit is contained in:
Raaaaaaaaaay 2026-07-29 14:30:55 +03:00 committed by GitHub
commit 6cee028b98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 257 additions and 89 deletions

View File

@ -7,8 +7,16 @@
* Can pinpoint exact locations, but is limited in its field of view
## Changed
* Updated russian and chinese localization
* AUTOCAL's `first` and `last` instructions now support variable substitution
* Spy satellites now have the `getsmog` command, checking for soot pollution on the current target coordinate
## Fixed
* Fixed pile fuel loader temperature reading not working
* Fixed mining satellite NEI handling
* Fixed mining satellite NEI handling
* Fixed crash caused by non-miner satellite ID chips in the cargo landing pad
* Potentially fixed ID-shift affecting satellites launched pre-update
* Fixed xenium resonator item mapping being incorrect, creating a relay satellite instead
* Fixed a potential crash caused by accessing out-of-range data on the radar satellite
* Fixed QMAW manual pages not being able to be overwritten by resource packs
* This feature was a major pain in the ass to actually make, and it apparently never even worked until now

View File

@ -1028,7 +1028,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BISMOID),
new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_ADVANCED)));
this.register(new GenericRecipe("ass.detectorsat").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.RAY_SCAN.ordinal()))
this.register(new GenericRecipe("ass.rayscansat").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.RAY_SCAN.ordinal()))
.inputItems(new OreDictStack(BIGMT.shell(), 16),
new ComparableStack(ModItems.photo_panel, 32),
new OreDictStack(SBD.wireDense(), 16),

View File

@ -169,8 +169,8 @@ public class QMAWLoader implements IResourceManagerReloadListener {
//FileReader reader = new FileReader(file);
InputStreamReader reader = new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8);
JsonObject obj = (JsonObject) parser.parse(reader);
registerJson(name, obj);
logFoundManual(name);
registerJson(name, obj);
} catch(Exception ex) {
MainRegistry.logger.info("[QMAW] Error reading manual " + name + ": " + ex);
}
@ -186,8 +186,7 @@ public class QMAWLoader implements IResourceManagerReloadListener {
String name = json.get("name").getAsString();
if(QMAWLoader.qmaw.containsKey(name)) {
MainRegistry.logger.info("[QMAW] Skipping existing entry " + file);
return;
MainRegistry.logger.info("[QMAW] Overriding existing entry " + file);
}
QuickManualAndWiki qmaw = new QuickManualAndWiki(name);

View File

@ -24,7 +24,7 @@ public abstract class SatelliteBase {
public String tx = "";
public int getID() {
return XSatelliteRegistry.satellites.indexOf(this.getClass());
return XSatelliteRegistry.idToClass.inverse().get(this.getClass());
}
public abstract String getType();

View File

@ -53,7 +53,7 @@ public class SatelliteDetector extends SatelliteBase {
public RadiationBurst getBurstFromIndex(String cmd) {
if(cachedResults.size() <= 0) return null;
int index = IRORInteractive.parseInt(cmd, 0, cachedResults.size()) - 1;
int index = IRORInteractive.parseInt(cmd, 1, cachedResults.size()) - 1;
return cachedResults.get(index);
}

View File

@ -4,12 +4,17 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import com.hbm.handler.pollution.PollutionHandler;
import com.hbm.handler.pollution.PollutionHandler.PollutionData;
import com.hbm.handler.pollution.PollutionHandler.PollutionType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
public class SatelliteMapper extends SatelliteBase {
public static final String CMD_TARGET_LOADED = "targetloaded";
public static final String CMD_GETSMOG = "getsmog";
public static final String CMD_SPOT_PLAYER = "spotplayers";
public static final int SPOT_PLAYER_MAX_RANGE = 250;
@ -28,6 +33,16 @@ public class SatelliteMapper extends SatelliteBase {
return;
}
if(cmd[0].equals(CMD_GETSMOG)) {
PollutionData data = PollutionHandler.getPollutionData(world, this.targetX, 255, this.targetZ);
if(data != null) {
float soot = data.pollution[PollutionType.SOOT.ordinal()];
this.tx = "" + (int) Math.ceil(soot);
}
return;
}
if(cmd[0].equals(CMD_SPOT_PLAYER)) {
List<String> names = new ArrayList();

View File

@ -103,7 +103,7 @@ public class SatelliteRadar extends SatelliteBase {
public Entity getTargetFromIndex(String cmd) {
if(filteredRadarResults.size() <= 0) return null;
int index = IRORInteractive.parseInt(cmd, 0, filteredRadarResults.size()) - 1;
int index = IRORInteractive.parseInt(cmd, 1, filteredRadarResults.size()) - 1;
Entity target = filteredRadarResults.get(index);
if(target.isDead) return null;
return target;

View File

@ -68,7 +68,7 @@ public class SatelliteRayScan extends SatelliteBase {
public RayEvent getEventFromIndex(String cmd) {
if(cachedResults.size() <= 0) return null;
int index = IRORInteractive.parseInt(cmd, 0, cachedResults.size()) - 1;
int index = IRORInteractive.parseInt(cmd, 1, cachedResults.size()) - 1;
return cachedResults.get(index);
}

View File

@ -1,5 +1,6 @@
package com.hbm.saveddata.satellites;
import com.google.common.collect.HashBiMap;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemSatellite.EnumSatType;
@ -8,23 +9,36 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class XSatelliteRegistry {
public static final List<Class<? extends SatelliteBase>> satellites = new ArrayList<>();
public static final HashBiMap<Integer, Class<? extends SatelliteBase>> idToClass = HashBiMap.create(20);
public static final HashMap<ComparableStack, Class<? extends SatelliteBase>> itemToClass = new HashMap<>();
public static void register() {
// ID mapping
idToClass.put(0, SatelliteMapper.class);
idToClass.put(1, SatelliteScanner.class);
idToClass.put(2, SatelliteRadar.class);
idToClass.put(3, SatelliteDeathRay.class);
idToClass.put(4, SatelliteResonator.class);
idToClass.put(5, SatelliteRelay.class);
idToClass.put(6, SatelliteMiner.class);
idToClass.put(7, SatelliteLunarMiner.class);
idToClass.put(8, SatelliteHorizons.class);
idToClass.put(9, SatellitePrecisionLaser.class);
idToClass.put(10, SatelliteDetector.class);
idToClass.put(11, SatelliteRayScan.class);
// item to sat type mapping
registerSatellite(SatelliteMapper.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.SPY));
registerSatellite(SatelliteScanner.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.SCANNER));
registerSatellite(SatelliteRadar.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.RADAR));
registerSatellite(SatelliteDeathRay.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.DEATH_RAY));
registerSatellite(SatelliteResonator.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.XENIUM_RESONATOR));
registerSatellite(SatelliteRelay.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.XENIUM_RESONATOR));
registerSatellite(SatelliteRelay.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.RELAY));
registerSatellite(SatelliteMiner.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.MINER_ASTRO));
registerSatellite(SatelliteLunarMiner.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.MINER_LUNAR));
registerSatellite(SatelliteHorizons.class, ModItems.sat_gerald);
@ -32,13 +46,12 @@ public class XSatelliteRegistry {
registerSatellite(SatelliteDetector.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.DETECTOR));
registerSatellite(SatelliteRayScan.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.RAY_SCAN));
// and all the legacy crap
registerSatellite(SatelliteMapper.class, ModItems.sat_mapper);
registerSatellite(SatelliteScanner.class, ModItems.sat_scanner);
registerSatellite(SatelliteRadar.class, ModItems.sat_radar);
registerSatellite(SatelliteDeathRay.class, ModItems.sat_laser);
registerSatellite(SatelliteResonator.class, ModItems.sat_resonator);
registerSatellite(SatelliteRelay.class, ModItems.sat_foeq);
registerSatellite(SatelliteMiner.class, ModItems.sat_miner);
registerSatellite(SatelliteLunarMiner.class, ModItems.sat_lunar_miner);
}
@ -51,14 +64,12 @@ public class XSatelliteRegistry {
@Deprecated
public static void registerSatellite(Class<? extends SatelliteBase> sat, Item item) {
if(!itemToClass.containsKey(item) && !itemToClass.containsValue(sat)) {
satellites.add(sat);
itemToClass.put(new ComparableStack(item), sat);
}
}
public static void registerSatellite(Class<? extends SatelliteBase> sat, ComparableStack item) {
if(!itemToClass.containsKey(item) && !itemToClass.containsValue(sat)) {
satellites.add(sat);
itemToClass.put(item, sat);
}
}
@ -67,7 +78,6 @@ public class XSatelliteRegistry {
if(world.isRemote) return;
SatelliteSavedData data = SatelliteSavedData.getData(world);
SatelliteBase existing = data.sats.get(freq);
if(existing != null) {
@ -87,7 +97,7 @@ public class XSatelliteRegistry {
public static SatelliteBase createFromId(int i) {
try {
return satellites.get(i).newInstance();
return idToClass.get(i).newInstance();
} catch(Exception e) { }
return null;
}

View File

@ -182,7 +182,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) {
SatelliteBase sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15]));
if(sat != null) unloadCargo((SatelliteMiner) sat);
if(sat instanceof SatelliteMiner) unloadCargo((SatelliteMiner) sat);
}
}

View File

@ -1712,13 +1712,6 @@ item.battery_potatos.name=马铃薯OS
item.battery_red_cell.name=红石电池组(遗留)
item.battery_red_cell_24.name=二十四联红石电池组(遗留)
item.battery_red_cell_6.name=六联红石电池组(遗留)
item.battery_sc_americium.name=自充电 镅-241电池遗留
item.battery_sc_gold.name=自充电 金-198电池遗留
item.battery_sc_lead.name=自充电 铅-209电池遗留
item.battery_sc_plutonium.name=自充电 钚-238电池遗留
item.battery_sc_polonium.name=自充电 钋-210电池遗留
item.battery_sc_technetium.name=自充电 锝-99电池遗留
item.battery_sc_uranium.name=自充电 铀-238电池遗留
item.battery_schrabidium.name=Sa326电池遗留
item.battery_schrabidium_cell.name=Sa326电池组遗留
item.battery_schrabidium_cell_2.name=双联Sa326电池组遗留
@ -2318,7 +2311,7 @@ item.debris_fuel.name=RBMK石墨式反应堆燃料块
item.debris_graphite.name=热石墨块
item.debris_metal.name=断裂金属棒
item.debris_shrapnel.name=走道碎片
item.definitelyfood.name=军粮
item.definitelyfood.name=完全不脏牌军粮
item.defuser.name=高科技拆弹装置
item.defuser_gold.name=黄金剪线钳
item.demon_core_closed.name=封闭的恶魔核心
@ -3334,20 +3327,20 @@ item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸
item.pellet_rtg_weak.desc=更便宜更弱的靶丸含有更多的铀238
item.pellet_schrabidium.name=纯Sa326Watz靶丸
item.photo_panel.name=光伏板
item.pile_rod_boron.name=芝加哥反应堆 控制棒
item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换
item.pile_rod_detector.name=芝加哥反应堆控制/探测棒
item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量
item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒
item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯
item.pile_rod_plutonium.name=芝加哥反应堆 钚棒
item.pile_rod_plutonium.desc=§d[中子源棒]
item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒
item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239
item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源
item.pile_rod_source.desc=§d[中子源棒]
item.pile_rod_uranium.name=芝加哥反应堆 铀棒
item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本
item.pile_rod_boron.name=芝加哥反应堆 控制棒(遗留)
item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换(遗留)
item.pile_rod_detector.name=芝加哥反应堆控制/探测棒(遗留)
item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量(遗留)
item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒(遗留)
item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯(遗留)
item.pile_rod_plutonium.name=芝加哥反应堆 钚棒(遗留)
item.pile_rod_plutonium.desc=§d[中子源棒](遗留)
item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒(遗留)
item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239(遗留)
item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源(遗留)
item.pile_rod_source.desc=§d[中子源棒](遗留)
item.pile_rod_uranium.name=芝加哥反应堆 铀棒(遗留)
item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本(遗留)
item.pill_iodine.name=碘丸
item.pill_iodine.desc=消除负面buff
item.pill_herbal.name=草药膏
@ -3882,26 +3875,20 @@ item.rune_isa.name=冷却催化剂基质
item.rune_jera.name=增殖催化剂基质
item.rune_thurisaz.name=添加剂催化剂基质
item.safety_fuse.name=安全保险丝
item.sat_base.name=卫星基座
item.sat_chip.name=卫星ID芯片
item.sat_coord.name=卫星指示器
item.sat_designator.name=卫星激光指示器
item.sat_relay.name=卫星雷达中继器
item.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器
item.sat_relay.name=卫星雷达中继器(遗留)
item.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器(遗留)
item.sat_gerald.name=Gerald建筑机器人
item.sat_head_laser.name=死光发射器
item.sat_head_mapper.name=高增益光学摄像头
item.sat_head_radar.name=雷达天线
item.sat_head_resonator.name=Xenium共振器
item.sat_head_scanner.name=M700测量扫描仪
item.sat_interface.name=卫星操作接口
item.sat_laser.name=轨道死光炮
item.sat_lunar_miner.name=月球采矿飞船
item.sat_mapper.name=地表测绘卫星
item.sat_miner.name=小行星采矿飞船
item.sat_radar.name=雷达探测卫星
item.sat_resonator.name=X晶体共振卫星
item.sat_scanner.name=绘测和资源探测卫星
item.sat_laser.name=轨道死光炮(遗留)
item.sat_lunar_miner.name=月球采矿飞船(遗留)
item.sat_mapper.name=地表测绘卫星(遗留)
item.sat_miner.name=小行星采矿飞船(遗留)
item.sat_radar.name=雷达探测卫星(遗留)
item.sat_resonator.name=X晶体共振卫星(遗留)
item.sat_scanner.name=绘测和资源探测卫星(遗留)
item.sawblade.name=锯片
item.schnitzel_vegan.name=“素”肉排
item.schrabidium_axe.name=Sa326斧
@ -4448,14 +4435,14 @@ tile.block_fluorite.name=氟石块
tile.block_foam.name=泡沫
tile.block_insulator.name=绝缘卷
tile.block_graphite.name=石墨块
tile.block_graphite_detector.name=反应堆中子探测棒
tile.block_graphite_drilled.name=钻孔石墨
tile.block_graphite_fuel.name=反应堆燃料
tile.block_graphite_lithium.name=反应堆锂燃料
tile.block_graphite_plutonium.name=反应堆燃料(增殖)
tile.block_graphite_rod.name=反应堆控制棒
tile.block_graphite_source.name=反应堆中子源
tile.block_graphite_tritium.name=反应堆锂燃料(增殖)
tile.block_graphite_detector.name=反应堆中子探测棒(遗留)
tile.block_graphite_drilled.name=钻孔石墨(遗留)
tile.block_graphite_fuel.name=反应堆燃料(遗留)
tile.block_graphite_lithium.name=反应堆锂燃料(遗留)
tile.block_graphite_plutonium.name=反应堆燃料(增殖)(遗留)
tile.block_graphite_rod.name=反应堆控制棒(遗留)
tile.block_graphite_source.name=反应堆中子源(遗留)
tile.block_graphite_tritium.name=反应堆锂燃料(增殖)(遗留)
tile.block_lead.name=铅块
tile.block_lanthanium.name=镧块
tile.block_lithium.name=锂块
@ -5128,7 +5115,7 @@ tile.machine_transformer.name=10k-20Hz变频器
tile.machine_transformer_20.name=10k-1Hz变频器
tile.machine_transformer_dnt.name=DNT-20Hz变频器
tile.machine_transformer_dnt_20.name=DNT-1Hz变频器
tile.machine_turbine.name=汽轮机
tile.machine_turbine.name=汽轮机(遗留)
tile.machine_turbine.desc=效率: 85%%
tile.machine_turbinegas.name=联合循环燃气轮机
tile.machine_turbofan.name=涡扇发动机
@ -5513,7 +5500,7 @@ tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨”
tile.turret_heavy.name=重型机枪炮塔
tile.turret_himars.name=火箭炮塔“亨利”
tile.turret_howard.name=双联守门员近防系统“霍华德”
tile.turret_howard_damaged.name=CIWS双联守门员近防系统 “玛撒拉”
tile.turret_howard_damaged.name=CIWS双联守门员近防系统 “玛撒拉”
tile.turret_jeremy.name=重炮炮塔“杰里米”
tile.turret_light.name=轻型机枪炮塔
tile.turret_maxwell.name=高能微波炮塔 “麦克斯韦”
@ -6026,17 +6013,6 @@ item.med_ipecac.desс=一种能强行让你的胃$排空所有内容物的苦味
item.med_ptsd.desc=这甚至不是PTSD治疗药物$其实就是换了个罐子的吐根酊!
item.med_schizophrenia.desc=驱散所有的声音,就一小会……$……$还是别吃了。
item.meteorite_sword.desc=用陨星锻造而成$比大多数地球的造物更加锋利
item.meteorite_sword.seared.desc=剑刃经过烈火的淬炼$变得更加强大
item.meteorite_sword.reforged.desc=此剑经过重锻$以修正过往的缺陷
item.meteorite_sword.hardened.desc=极端压力加在此剑之上$以进一步硬化其刃
item.meteorite_sword.alloyed.desc=钴填充其裂缝$以强化此刃
item.meteorite_sword.machined.desc=借助先进的机械$剑刃得到进一步的强化
item.meteorite_sword.treated.desc=经过化学品的洗礼$此剑更加强大
item.meteorite_sword.etched.desc=经过酸液的清洗$此剑趋向完美
item.meteorite_sword.bred.desc=巨大的热量和辐射$将其刃压缩
item.meteorite_sword.irradiated.desc=原子的能量$赐予此剑力量
item.meteorite_sword.fused.desc=此剑已与$恒星之力相遇
item.meteorite_sword.baleful.desc=此剑已与通常材料$远无法承受的温度相会
item.missile.desc.warhead=弹头
item.missile.desc.strength=强度
item.missile.desc.fuelType=燃料种类
@ -6377,16 +6353,143 @@ tile.machine_thresher.desc=收割并重新种植作物,$可接受:$-木油$-
tile.machine_thresher.suspended=暂停
tile.nospawn=生物不会在这个方块上生成!
tile.radio_autocal.name=AUTOCAL自动计算机
tile.vending_machine.name=自动售货机
item.coin_token.name=自动售货机代币
tile.vending_machine.name= 自动售货机
autoswitch.pilerod=芝加哥反应堆燃料棒
container.pneumoStorageAccess=PSN访问终端
container.pneumoStorageClutter=PSN杂项
container.pneumoStorageClutter=PSN杂项储
container.pneumoStorageExporter=PSN导出器
container.pneumoStorageImporter=PSN导入器
container.pneumoStorageMono=PSN大宗存储
tile.pneumatic_storage_access.name=气动存储网络 - 访问终端
tile.pneumatic_storage_clutter.name=气动存储网络 - 杂项储存
tile.pneumatic_storage_exporter.name=气动存储网络 - 导出器
tile.pneumatic_storage_importer.name=气动存储网络 - 导入器
tile.pneumatic_storage_mono.name=气动存储网络 - 大宗储存
container.pneumoStorageMono=PSN大宗储存
desc.gui.keyforge.key=第一个槽位将复制钥匙或者锁的弹子配置$并将其复制到第二个槽位。
desc.gui.keyforge.random=第三个槽位则会随机化锁或者钥匙的弹子配置。
desc.gui.satdock.desc=需要采矿飞船的卫星芯片。$货运飞船将会定期降落以运送货物。
desc.gui.satlinker.chip=第一个槽位将复制卫星或者芯片的频率配置$并将其复制到第二个槽位。
desc.gui.satlinker.random=第三个槽位则会随机化锁卫星或者芯片的频率配置。
desc.gui.soyuz.cargo=货运模式
desc.gui.soyuz.desc=仅用于货运模式的标识符$卫星模式的有效载荷
desc.gui.soyuz.satellite=卫星模式
item.battery_sc.desc=放射性同位素电池不适用于电池座$输出功率不稳定且会产生危险的电弧!
item.coal_eternal.name=永恒之煤
item.meteorite_sword_seared.desc=剑刃经过烈火的淬炼$变得更加强大
item.meteorite_sword_reforged.desc=此剑经过重锻$以修正过往的缺陷
item.meteorite_sword_hardened.desc=极端压力加在此剑之上$以进一步硬化其刃
item.meteorite_sword_alloyed.desc=钴填充其裂缝$以强化此刃
item.meteorite_sword_machined.desc=借助先进的机械$剑刃得到进一步的强化
item.meteorite_sword_treated.desc=经过化学品的洗礼$此剑更加强大
item.meteorite_sword_etched.desc=经过酸液的清洗$此剑趋向完美
item.meteorite_sword_bred.desc=巨大的热量和辐射$将其刃压缩
item.meteorite_sword_irradiated.desc=原子的能量$赐予此剑力量
item.meteorite_sword_fused.desc=此剑已与$恒星之力相遇
item.meteorite_sword_baleful.desc=此剑已与通常材料$远无法承受的温度相会
item.pile_rod.nu.name=芝加哥反应堆天然铀棒
item.pile_rod.nu.desc=生产钚-239的基本增殖靶件。
item.pile_rod.po210be.name=芝加哥反应堆钋210-铍中子源
item.pile_rod.po210be.desc=用于启动芝加哥反应堆的先进钋-铍中子源。
item.pile_rod.pu239.name=芝加哥反应堆钚-239棒
item.pile_rod.pu239.desc=由天然铀增殖而来的钚,可以继续增殖成反应堆级钚。
item.pile_rod.ra226be.name=芝加哥反应堆 镭226-铍中子源
item.pile_rod.ra226be.desc=用于启动芝加哥反应堆最基础的镭-铍中子源。
item.pile_rod.rgp.name=芝加哥反应堆 反应堆级钚棒
item.pile_rod.rgp.desc=反应堆级钚棒,主要为钚-239其中含有钚-240杂质。
item.pile_rod.waste.name=芝加哥反应堆核废料棒
item.pile_rod.waste.desc=燃料棒在芝加哥反应堆内停留时间过长从而产生的强放射性最终产物。
item.pile_rod.zr.name=芝加哥反应堆锆棒
item.pile_rod.zr.desc=对中子呈现出透明的惰性锆棒,是将其他燃料棒安全推出反应堆的理想选择。
item.satellite.death_ray.name=轨道死光炮
item.satellite.detector.name=宽带无线电探测卫星
item.satellite.miner_astro.name=小行星采矿飞船
item.satellite.miner_lunar.name=月球采矿飞船
item.satellite.precision_laser.name=轨道精确激光炮
item.satellite.radar.name=雷达探测卫星
item.satellite.ray_scan.name=窄带发射扫描卫星
item.satellite.relay.name=中继卫星
item.satellite.scanner.name=深度扫描卫星
item.satellite.spy.name=间谍卫星
item.satellite.xenium_resonator.name=X晶体共振卫星
tile.brick_forgotten.name=块
tile.cargo_door.name=货运大门
tile.platemetal.base.name=金属板装饰块
tile.platemetal.black.name=黑色金属板装饰块
tile.platemetal.white.name=白色金属板装饰块
tile.platemetal.red.name=红色金属板装饰块
tile.platemetal.green.name=绿色金属板装饰块
tile.platemetal.light_gray.name=淡灰色金属板装饰块
tile.platemetal.blue.name=蓝色金属板装饰块
tile.platemetal.purple.name=紫色金属板装饰块
tile.platemetal.cyan.name=青色金属板装饰块
tile.platemetal.pink.name=粉色金属板装饰块
tile.platemetal.lime.name=黄绿色金属板装饰块
tile.platemetal.yellow.name=黄色金属板装饰块
tile.platemetal.light_blue.name=淡蓝色金属板装饰块
tile.platemetal.magenta.name=品红色金属板装饰块
tile.platemetal.orange.name=橙色金属板装饰块
tile.machine_satlink.name=卫星地面站
tile.pile_block.name=芝加哥反应堆
tile.pile_brick.name=芝加哥反应堆石墨砖
tile.pile_device.control.name=芝加哥反应堆控制棒
tile.pile_device.loader.name=芝加哥反应堆燃料导入器
tile.pile_device.vent.name=芝加哥反应堆通风口
tile.pneumatic_storage_access.name=气动储存网络 - 访问终端
tile.pneumatic_storage_clutter.name=气动储存网络 - 杂项储存
tile.pneumatic_storage_exporter.name=气动储存网络 - 导出器
tile.pneumatic_storage_importer.name=气动储存网络 - 导入器
tile.pneumatic_storage_mono.name=气动储存网络 - 大宗储存
tile.red_pylon_steel.name=钢制电线杆
tile.stalactite.ice.name=冰钟乳石
tile.stalactite.snow.name=雪钟乳石
tile.stalactite.glyphid1.name=异虫钟乳石
tile.stalactite.glyphid2.name=臃肿的异虫钟乳石
tile.stalactite.glyphid3.name=腐烂的异虫钟乳石
tile.stalagmite.ice.name=冰石笋
tile.stalagmite.snow.name=雪石笋
tile.stalagmite.glyphid1.name=异虫石笋
tile.stalagmite.glyphid2.name=臃肿的异虫石笋
tile.stalagmite.glyphid3.name=腐烂的异虫石笋
hbmfluid.trait.antimatter=反物质
hbmfluid.trait.boilable=可被加热沸腾
hbmfluid.trait.burned=当燃烧时
hbmfluid.trait.combustible=作为燃料时
hbmfluid.trait.coolable=可冷却的
hbmfluid.trait.coolantICF=ICF反应堆冷却剂
hbmfluid.trait.coolantPA=粒子加速器冷却剂
hbmfluid.trait.coolantPWR=PWR冷却剂
hbmfluid.trait.corrosive=腐蚀性
hbmfluid.trait.corrosiveStrong=强腐蚀性
hbmfluid.trait.delicious=美味
hbmfluid.trait.efficiency=效率
hbmfluid.trait.flammable=易燃
hbmfluid.trait.fuel.aviation=航空级
hbmfluid.trait.fuel.gaseous=气体
hbmfluid.trait.fuel.high=高
hbmfluid.trait.fuel.low=低
hbmfluid.trait.fuel.medium=中等
hbmfluid.trait.fuelGrade=燃料等级
hbmfluid.trait.gaseous=气态
hbmfluid.trait.gaseousRoom=室温下为气体
hbmfluid.trait.glyphidPheromones=异虫信息素
hbmfluid.trait.hazmat=需要防护服
hbmfluid.trait.heatable=可被加热
hbmfluid.trait.leadContainer=需要危险品罐作为容器
hbmfluid.trait.liquid=液态
hbmfluid.trait.modifiedPheromones=增强信息素
hbmfluid.trait.perBucket=每桶
hbmfluid.trait.perDamage=每秒伤害
hbmfluid.trait.perMB=每mB
hbmfluid.trait.perTU=每TU
hbmfluid.trait.polluting=污染物
hbmfluid.trait.provides=提供
hbmfluid.trait.pwrFluxCore=堆芯通量
hbmfluid.trait.pwrFluxMultiplier=PWR通量倍增
hbmfluid.trait.radioactive=放射性
hbmfluid.trait.spilled=泄漏时
hbmfluid.trait.steam=汽轮机蒸汽
hbmfluid.trait.thermalCapacity=热容量
hbmfluid.trait.toxin=毒性
hbmfluid.trait.unsiphonable=无法使用虹吸管提取
hbmfluid.trait.viscous=浆体
pollution.soot=烟尘
pollution.poison=有毒物质
pollution.heavymetal=重金属
pollution.trait.soot=烟尘
pollution.trait.poison=有毒物质
pollution.trait.heavymetal=重金属

View File

@ -0,0 +1,11 @@
{
"name": "Cracked Light Oil",
"icon": ["hbm:item.fluid_icon", 1, 65],
"trigger": [["hbm:item.fluid_icon", 1, 65]],
"title": {
"en_US": "Cracked Light Oil"
},
"content": {
"en_US": "Obtained after [[refining|Oil Refinery]] [[heated|Boiler]] cracked crude oil. Cracked light oil has a variety of uses, it may be [[reformed|Catalytic Reformer]] or [[bred|Fusion Reactor Breeding Chamber]] to obtain [[reformate gas|Reformate Gas]] and other byproducts. It may also be used as an alternate to [[light oil|Light Oil]] in the production of [[desh|Desh]]. It can also be [[fractioned|Fractioning Tower]].<br><br>See also:<br>[[Basic Oil Processing]]<br>[[Advanced Oil Processing]]<br>[[Vacuum Oil Processing]]"
}
}

View File

@ -0,0 +1,11 @@
{
"name": "Wideband Radio Emission Detector Satellite",
"icon": ["hbm:item.satellite", 1, 9],
"trigger": [["hbm:item.satellite", 1, 9]],
"title": {
"en_US": "Wideband Radio Emission Detector Satellite"
},
"content": {
"en_US": "The wideband radio emission detector is a type of [[satellite|Satellite]] that can detect certain types of high-energy events from the entire map, albeit with low accuracy. The detector can only give a very rough idea of where such an event is taking place, for more accurate results, the area needs to be scanned wither with a [[spy satellite|Spy Satellite]] or [[narrowband scanner|Narrowband Emission Scanning Satellite]].<br><br>The types of events this satellite can pick up are as follows:<br>* Mini nuke explosions (low intensity, accuracy <10,000m)<br>* Radar (medium intensity, accuracy <2,500m)<br>* Particle accelerator operations (medium intensity, accuracy <2,500m)<br>Nuclear explosions (high intensity, accuracy <500m)<br><br>Events are timed, medium intense ones are the shortest lived as they only show up for half a second, while other events can show up for multiple seconds or even up to a minute. It is therefore important to scan any given area multiple times in rapid succession to get an accurate result.<br><br>* '§esurvey§r' will report any recent events that have not timed out yet. The detector's field of view covers the entire map, so there is no range limitations. All detected results are saved to an internal list.<br>* '§ecount§r' will write the amount of detected events to RX.<br>* '§egettype §eindex§r' will write the type (LOW/MEDIUM/HIGH) of the specified event to RX.<br>* '§egetposition §eindex§r' will write the estimated X/Z position of the specified event to RX. The coordinated are separated by semicolon.<br><br>See also:<br>* [[Satellite]]<br>* [[Satellite Ground Station]]"
}
}

View File

@ -0,0 +1,11 @@
{
"name": "Narrowband Emission Scanning Satellite",
"icon": ["hbm:item.satellite", 1, 10],
"trigger": [["hbm:item.satellite", 1, 10]],
"title": {
"en_US": "Narrowband Emission Scanning Satellite"
},
"content": {
"en_US": "The narrowband scanner can detect certain high-energy events with high precision in a small area. While the [[wideband detector|Wideband Radio Emission Detector Satellite]] can only give a rough estimation of where a small number of things are happening, the narrowband scanner can detect more types of emission and pinpint their location.<br><br>Types of emissions that can be detected include:<br>* '§6NEUTRON_EMISSION§r' from nuclear reactors<br>* '§6HIGH_ENERGY_PARTICLES§r' from fusion reacotrs and particle accelerators<br>* '§6RADAR_WAVES§r' from terrestrial radar<br>* '§6RADIO_WAVES§r' from satellite ground stations with active TX<br><br>Like with the wideband detector, these emissions are timed, certain events only happen once or in a time interval, so for best results, repeated scans over a timespan are recommended.<br><br>* '§esurvey§r' will perform a scan with a radius of 250m around the target location. The results are saved in an internal list.<br>* '§ecount§r' will write the amount of scan results to RX.<br>* '§egetinfo §eindex§r' will write the specified entry's emission type to RX.<br>* '§egetposition §eindex§r' will write the X/Z position of the specified event to RX. The coordinated are separated by semicolon.<br><br>See also:<br>* [[Satellite]]<br>* [[Satellite Ground Station]]"
}
}

View File

@ -6,6 +6,6 @@
"en_US": "Satellite"
},
"content": {
"en_US": "Satellites can be launched into earth orbit using a [[Soyuz]] rocket. Satellites communicate with items and blocks on earth using frequencies, so in order to actually use one, it's necessary to set a random frequency in the satellite ID manager, and then copying that ID to another item, for example a satellite chip.<br><br>Some satellites can perform minor tasks when linked with certain items, like the [[depth scanning satellite|Depth Scanning Satellite]] enabling the neutrino lens, or the [[xenium resonator satellite|Xenium Resonator Satellite]] connected to a satellite laser designator allowing for short range line of sight teleportation. Satellites however are the most powerful when paired with [[Redstone over Radio]] by linking them to a [[ground station|Satellite Ground Station]].<br><br>By using a [[RoR reader|Redstone-over-Radio Reader]], ground stations can receive the RX value, which is received from the connected satellite. Each satellite can only provide one RX value at a time, and the value persists until it changes. The contents of RX depend on what function the satellite has performed prior.<br><br>By using a ground station's TX command, commands can be relayed to the connected satellite. Most commands vary between satellite types, however all satellites have a ground target, i.e. the spot on the surface they are aiming at.<br><br>The common target commands are as follows:<br>* '§esettarget §ex §ez§r' (Example RoR: '§6tx!settarget §6200 §6300§r')<br>* '§egettarget§r' (Example RoR: '§6tx!gettarget§r'), writes the current target X and Z separated by semicolon to the ground station's RX<br>* '§egettargetx§r'<br>* '§egettargetz§r'<br><br>See also:<br>* [[Spy Satellite]]<br>* [[Depth Scanning Satellite]]<br>* [[Radar Satellite]]<br>* [[Asteroid Mining Ship]]<br>* [[Lunar Mining Ship]]<br>* [[Orbital Precision Laser]]<br>* [[Orbital Death Ray]]<br>* [[Xenium Resonator Satellite]]<br>* [[Relay Satellite]]"
"en_US": "Satellites can be launched into earth orbit using a [[Soyuz]] rocket. Satellites communicate with items and blocks on earth using frequencies, so in order to actually use one, it's necessary to set a random frequency in the satellite ID manager, and then copying that ID to another item, for example a satellite chip.<br><br>Some satellites can perform minor tasks when linked with certain items, like the [[depth scanning satellite|Depth Scanning Satellite]] enabling the neutrino lens, or the [[xenium resonator satellite|Xenium Resonator Satellite]] connected to a satellite laser designator allowing for short range line of sight teleportation. Satellites however are the most powerful when paired with [[Redstone over Radio]] by linking them to a [[ground station|Satellite Ground Station]].<br><br>By using a [[RoR reader|Redstone-over-Radio Reader]], ground stations can receive the RX value, which is received from the connected satellite. Each satellite can only provide one RX value at a time, and the value persists until it changes. The contents of RX depend on what function the satellite has performed prior.<br><br>By using a ground station's TX command, commands can be relayed to the connected satellite. Most commands vary between satellite types, however all satellites have a ground target, i.e. the spot on the surface they are aiming at.<br><br>The common target commands are as follows:<br>* '§esettarget §ex §ez§r' (Example RoR: '§6tx!settarget §6200 §6300§r')<br>* '§egettarget§r' (Example RoR: '§6tx!gettarget§r'), writes the current target X and Z separated by semicolon to the ground station's RX<br>* '§egettargetx§r'<br>* '§egettargetz§r'<br><br>See also:<br>* [[Spy Satellite]]<br>* [[Depth Scanning Satellite]]<br>* [[Radar Satellite]]<br>* [[Asteroid Mining Ship]]<br>* [[Lunar Mining Ship]]<br>* [[Orbital Precision Laser]]<br>* [[Orbital Death Ray]]<br>* [[Xenium Resonator Satellite]]<br>* [[Relay Satellite]]<br>* [[Wideband Radio Emission Detector Satellite]]"
}
}

View File

@ -6,6 +6,6 @@
"en_US": "Spy Satellite"
},
"content": {
"en_US": "The spy satellite allows remote viewing of earth's surface. Due to RoR pixel displays not existing as of now, surface mapping functionality does not yet work. However, they can be used in detecting loaded chunks and spotting players in a small radius.<br><br>* '§etargetloaded§r' writes 'TRUE' or 'FALSE' to RX depending on if the chunk that the satellite is pointed at is loaded or not.<br>* '§espotplayers§r' detects surface players in a 250 block radius and writes all names separated by semicolon to RX.<br><br>See also:<br>* [[Satellite]]<br>* [[Satellite Ground Station]]"
"en_US": "The spy satellite allows remote viewing of earth's surface. Due to RoR pixel displays not existing as of now, surface mapping functionality does not yet work. However, they can be used in detecting loaded chunks and spotting players in a small radius.<br><br>* '§etargetloaded§r' writes 'TRUE' or 'FALSE' to RX depending on if the chunk that the satellite is pointed at is loaded or not.<br>* '$egetsmog$r' writes the numeric value (rounded up) of the current target position's soot pollution to RX.<br>* '§espotplayers§r' detects surface players in a 250 block radius and writes all names separated by semicolon to RX.<br><br>See also:<br>* [[Satellite]]<br>* [[Satellite Ground Station]]"
}
}