Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
e88b4d0
删除FastFluidIngredient
nutant233 Jan 19, 2026
2fbd8f7
更新
nutant233 Jan 19, 2026
b9e972c
重构
nutant233 Jan 19, 2026
3e8a64d
.
nutant233 Jan 19, 2026
a5c9e39
更新
nutant233 Jan 20, 2026
5722d49
更新
nutant233 Jan 21, 2026
dd10cac
Merge remote-tracking branch 'origin/main' into update
nutant233 Jan 21, 2026
ec4b71e
异步更新监控器
nutant233 Jan 21, 2026
c559cc1
fix: 可编程仓 虚拟物品发配 (#380)
FYWinds Jan 23, 2026
f2e7831
修复 “%s块” 英文显示名称
Hophenby Jan 25, 2026
cc88795
feat: add temporary crafting order functionality and update related i…
Hophenby Jan 27, 2026
35ac2f1
config (#377)
remakefactory Jan 27, 2026
f056850
修复配置路径
Hophenby Jan 27, 2026
128f623
fix (#381)
remakefactory Jan 27, 2026
1688c3f
feat: AdvancedNumberEntry for AE Parts (#383)
FYWinds Jan 27, 2026
b1abdb9
fix: 修复各处Tooltip问题 (#382)
FYWinds Jan 27, 2026
f261988
切换订阅端
Hophenby Jan 27, 2026
e568b5b
more
remakefactory Jan 27, 2026
ae1c522
修复错误物品
wanggugu197 Jan 28, 2026
8edaa2d
限制藻类农场仓种类https://github.com/GregTech-Odyssey/GregTech-Odyssey/issues/…
Hophenby Jan 31, 2026
6ec6e04
fix: 蒸汽裂化机的tooltips (#384)
MuuuShin Jan 31, 2026
d0c50c1
更好的多语言支持、在保存搜索的情况下优化样板管理终端 (#386)
remakefactory Jan 31, 2026
f345a13
多语言改为可选
Hophenby Feb 1, 2026
089d098
重构样板自动补充逻辑以修复getAvailableStacks()非即时的问题
Hophenby Feb 1, 2026
667aa00
末影手杖使用手持模型 https://github.com/GregTech-Odyssey/GTOCore/pull/379#issue…
Hophenby Feb 1, 2026
3316cd7
允许使用带线缆的框架来成型多方块https://github.com/GregTech-Odyssey/GregTech-Odyssey/…
Hophenby Feb 1, 2026
2de0d12
修复PipeBlockEntity的状态检查以确保世界已加载
Hophenby Feb 1, 2026
a300bb1
fix可选兼容
Hophenby Feb 1, 2026
db85bb8
削弱基岩矿脉词缀,添加假玩家乘数与限制上限
Hophenby Feb 1, 2026
bfbc227
修复进气仓
Hophenby Feb 2, 2026
cca928c
为可被艾萨处理的矿石添加一个独特的物品标签
Hophenby Feb 2, 2026
14ac30f
Lang (#389)
remakefactory Feb 2, 2026
ef10cbc
更新依赖
remakefactory Feb 2, 2026
6b13d5a
样板上传
Hophenby Feb 3, 2026
be8a85f
过滤空项以改进多块信息配方的输入处理
Hophenby Feb 3, 2026
1ba8256
魔力温室
Hophenby Feb 3, 2026
6e9062a
更新
Hophenby Feb 4, 2026
861cb64
修复耐久计算
remakefactory Feb 4, 2026
3cea416
fix Digital Miner Lang
remakefactory Feb 4, 2026
2c98c18
修复检查条件
Hophenby Feb 4, 2026
56c5960
Merge remote-tracking branch 'gto/update' into update
Hophenby Feb 4, 2026
7abeee5
由于持久化与同步字段注解,去除插入null值操作
Hophenby Feb 4, 2026
ee293b3
修复样板上传若干问题
Hophenby Feb 4, 2026
5b7e059
feat: 样板总成tooltips修改,虚空流体钻机和虚空采矿机统一tooltips
MuuuShin Feb 4, 2026
65e5dcb
Merge remote-tracking branch 'origin/update' into update
MuuuShin Feb 4, 2026
c155687
fix tooltip
remakefactory Feb 4, 2026
2d37ecc
结构修复
remakefactory Feb 4, 2026
9a0f6d0
整理旅行目标相关类,调整包结构
Hophenby Feb 5, 2026
7f0f4df
上传样板检查,藻类农场仓室
Hophenby Feb 5, 2026
9cd4baa
添加奇点gt配方
Hophenby Feb 5, 2026
f2d24bf
清理
Hophenby Feb 5, 2026
a41f674
feat: 给附属模块可以增加能源仓的补充tooltips描述.
MuuuShin Feb 5, 2026
0fdb8dd
旅行锚hook补充
Hophenby Feb 6, 2026
3dbc617
放置样板总成时不使用缓存的配方
Hophenby Feb 7, 2026
4a726d5
调整加速仓衰减机制,为电极加入tooltip (#390)
LeoDreamer2004 Feb 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ dependencies {
modImplementation("curse.maven:ars-meteorites-1278083:7125271")

modImplementation("curse.maven:glodium-957920:5006780")
modImplementation("curse.maven:ex-pattern-provider-892005:7248944")
modImplementation("curse.maven:ex-pattern-provider-892005:7472662")

modImplementation("curse.maven:merequester-688367:5689932")

Expand All @@ -86,7 +86,10 @@ dependencies {

modImplementation("curse.maven:deeperdarker-659011:5906086")

modImplementation("curse.maven:modernfix-790626:6719008")
modImplementation("curse.maven:modernfix-790626:7515215")

modCompileOnly("curse.maven:moremorelang-1444917:7565351")
modRuntimeOnly("curse.maven:moremorelang-1444917:7565351")

modImplementation("curse.maven:render-blender-1346485:7035162")

Expand Down
Binary file modified libs/appliedenergistics2-forge-15.5.0.jar
Binary file not shown.
Binary file modified libs/gtceu-1.20.1-1.8.0.jar
Binary file not shown.
Binary file modified libs/gtolib-1.0.jar
Binary file not shown.
274 changes: 147 additions & 127 deletions src/generated/resources/assets/gtocore/lang/en_ud.json

Large diffs are not rendered by default.

274 changes: 147 additions & 127 deletions src/generated/resources/assets/gtocore/lang/en_us.json

Large diffs are not rendered by default.

274 changes: 147 additions & 127 deletions src/generated/resources/assets/gtocore/lang/zh_cn.json

Large diffs are not rendered by default.

274 changes: 147 additions & 127 deletions src/generated/resources/assets/gtocore/lang/zh_tw.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "gtocore:item/temporary_order"
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"parent": "minecraft:item/generated",
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "gtocore:item/travel_staff"
}
Expand Down
80 changes: 80 additions & 0 deletions src/generated/resources/data/gt/tags/items/isa_processable.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{
"values": [
"gtceu:nickel_ore",
"gtceu:platinum_ore",
"gtceu:enriched_naquadah_ore",
"gtceu:almandine_ore",
"gtceu:chalcopyrite_ore",
"gtceu:grossular_ore",
"gtceu:pyrope_ore",
"gtceu:spessartine_ore",
"gtceu:sphalerite_ore",
"gtceu:pentlandite_ore",
"gtceu:monazite_ore",
"gtceu:redstone_ore",
"gtceu:deepslate_nickel_ore",
"gtceu:deepslate_platinum_ore",
"gtceu:deepslate_almandine_ore",
"gtceu:deepslate_chalcopyrite_ore",
"gtceu:deepslate_grossular_ore",
"gtceu:deepslate_pyrope_ore",
"gtceu:deepslate_spessartine_ore",
"gtceu:deepslate_sphalerite_ore",
"gtceu:deepslate_pentlandite_ore",
"gtceu:deepslate_monazite_ore",
"gtceu:deepslate_redstone_ore",
"gtceu:netherrack_grossular_ore",
"gtceu:netherrack_spessartine_ore",
"gtceu:netherrack_sphalerite_ore",
"gtceu:netherrack_redstone_ore",
"gtocore:moon_stone_pentlandite_ore",
"gtocore:moon_stone_monazite_ore",
"gtocore:mars_stone_platinum_ore",
"gtocore:mars_stone_chalcopyrite_ore",
"gtocore:venus_stone_sphalerite_ore",
"gtocore:mercury_stone_nickel_ore",
"gtocore:mercury_stone_platinum_ore",
"gtocore:mercury_stone_chalcopyrite_ore",
"gtocore:mercury_stone_grossular_ore",
"gtocore:mercury_stone_spessartine_ore",
"gtocore:mercury_stone_pentlandite_ore",
"gtocore:glacio_stone_platinum_ore",
"gtocore:glacio_stone_monazite_ore",
"gtocore:titan_stone_almandine_ore",
"gtocore:titan_stone_pyrope_ore",
"gtocore:io_stone_sphalerite_ore",
"gtocore:ganymede_stone_nickel_ore",
"gtocore:ganymede_stone_chalcopyrite_ore",
"gtocore:ganymede_stone_pentlandite_ore",
"gtocore:enceladus_stone_platinum_ore",
"gtocore:enceladus_stone_chalcopyrite_ore",
"gtocore:enceladus_stone_redstone_ore",
"gtocore:ceres_stone_chalcopyrite_ore",
"gtocore:ceres_stone_grossular_ore",
"gtocore:ceres_stone_spessartine_ore",
"gtocore:ceres_stone_pentlandite_ore",
"gtocore:ceres_stone_monazite_ore",
"gtocore:sculk_stone_nickel_ore",
"gtocore:sculk_stone_platinum_ore",
"gtocore:sculk_stone_almandine_ore",
"gtocore:sculk_stone_chalcopyrite_ore",
"gtocore:sculk_stone_grossular_ore",
"gtocore:sculk_stone_pyrope_ore",
"gtocore:sculk_stone_spessartine_ore",
"gtocore:sculk_stone_sphalerite_ore",
"gtocore:sculk_stone_pentlandite_ore",
"gtocore:sculk_stone_monazite_ore",
"gtocore:sculk_stone_redstone_ore",
"gtocore:gloomslate_nickel_ore",
"gtocore:gloomslate_platinum_ore",
"gtocore:gloomslate_almandine_ore",
"gtocore:gloomslate_chalcopyrite_ore",
"gtocore:gloomslate_grossular_ore",
"gtocore:gloomslate_pyrope_ore",
"gtocore:gloomslate_spessartine_ore",
"gtocore:gloomslate_sphalerite_ore",
"gtocore:gloomslate_pentlandite_ore",
"gtocore:gloomslate_monazite_ore",
"gtocore:gloomslate_redstone_ore"
]
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.gtocore.api.ae2.crafting;

import com.gtocore.common.data.GTOItems;

import com.gtolib.api.ae2.pattern.IParallelPatternDetails;
import com.gtolib.utils.holder.LongHolder;

Expand Down Expand Up @@ -42,6 +44,7 @@ class ExecutingCraftingJob {
final ElapsedTimeTracker timeTracker;
final IElapsedTimeTracker tt;
GenericStack finalOutput;
boolean isOrder;
long remainingAmount;
Integer playerId;
boolean paused = false;
Expand All @@ -65,6 +68,7 @@ class ExecutingCraftingJob {

private ExecutingCraftingJob(ICraftingPlan plan, ListCraftingInventory.ChangeListener changeListener, CraftingLink link, @Nullable Integer playerId) {
this.finalOutput = plan.finalOutput();
this.isOrder = isOrder(this.finalOutput);
this.remainingAmount = this.finalOutput.amount();
this.waitingFor = new ListCraftingInventory(changeListener);

Expand Down Expand Up @@ -110,6 +114,7 @@ private ExecutingCraftingJob(ICraftingPlan plan, ListCraftingInventory.ChangeLis
}

this.finalOutput = GenericStack.readTag(data.getCompound(NBT_FINAL_OUTPUT));
this.isOrder = isOrder(this.finalOutput);
this.remainingAmount = data.getLong(NBT_REMAINING_AMOUNT);
this.waitingFor = new ListCraftingInventory(changeListener);
this.waitingFor.readFromNBT(data.getList(NBT_WAITING_FOR, Tag.TAG_COMPOUND));
Expand Down Expand Up @@ -211,4 +216,11 @@ CompoundTag writeToNBT() {

return data;
}

private static boolean isOrder(GenericStack finalOutput) {
if (finalOutput == null) {
return false;
}
return finalOutput.what() instanceof AEItemKey itemKey && (itemKey.getItem() == GTOItems.ORDER.get() || itemKey.getItem() == GTOItems.TEMP_ORDER.get());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.gtocore.common.data.GTOItems;
import com.gtocore.config.GTOConfig;
import com.gtocore.integration.ae.CraftingCpuHelperExtended;
import com.gtocore.integration.ae.hooks.ITemporaryCraftableService;

import com.gtolib.GTOCore;
import com.gtolib.api.ae2.IPatternProviderLogic;
Expand Down Expand Up @@ -86,7 +87,7 @@ public ICraftingSubmitResult trySubmitJob(IGrid grid, ICraftingPlan plan, IActio
if (!inventory.list.isEmpty()) GTOCore.LOGGER.error("Crafting CPU inventory is not empty yet a job was submitted.");

KeyCounter missingIng;
if (GTOConfig.INSTANCE.allowMissingCraftingJobs && src.player().isPresent()) {
if (GTOConfig.INSTANCE.gamePlay.allowMissingCraftingJobs && src.player().isPresent()) {
missingIng = CraftingCpuHelperExtended.tryExtractInitialItemsIgnoreMissing(plan, grid, inventory, src);
} else {
var missingIngredient = CraftingCpuHelper.tryExtractInitialItems(plan, grid, inventory, src);
Expand All @@ -103,6 +104,7 @@ public ICraftingSubmitResult trySubmitJob(IGrid grid, ICraftingPlan plan, IActio
cluster.updateOutput(plan.finalOutput());
cluster.markDirty();
notifyJobOwner(job, CraftingJobStatusPacket.Status.STARTED);
((ITemporaryCraftableService) grid.getCraftingService()).gto$setTempPatternDetails(null);
if (requester != null) {
var linkReq = new CraftingLink(CraftingCpuHelper.generateLinkData(craftId, false, true), requester);

Expand Down Expand Up @@ -134,19 +136,25 @@ public void tickCraftingLogic(IEnergyService eg, CraftingService cc) {

if (executeCrafting(cluster.getCoProcessors(), cc, eg, cluster.getLevel()) == 0) {
GenericStack stack = getFinalJobOutput();
if (stack != null && stack.what() instanceof AEItemKey itemKey && itemKey.getItem() == GTOItems.ORDER.get()) {
if (job != null && job.isOrder && stack != null) {
// the job is crafting an order and is waiting for an order, which means its dependencies have been
// crafted
final var waitingFor = getWaitingFor(itemKey);
job.waitingFor.list.removeZeros();
final var waitingFor = getWaitingFor(stack.what());
if (waitingFor > 0) {
final var remainingAmount = job.remainingAmount - waitingFor;
// Simulate inserting final result with the same logic as CraftingCpuLogic.insert
if (remainingAmount <= 0) {
finishJob(true);
cluster.updateOutput(null);
} else {
cluster.updateOutput(new GenericStack(itemKey, remainingAmount));
cluster.updateOutput(new GenericStack(stack.what(), remainingAmount));
}
} else if (job.waitingFor.list.isEmpty() && job.tasks.size() == 1 && stack.what() instanceof AEItemKey item && item.getItem() == GTOItems.TEMP_ORDER.asItem()) {
// Temp order item has no real pattern details, so if it's the only task left, and we're not waiting
// for anything, we can assume the job is done
finishJob(true);
cluster.updateOutput(null);
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/com/gtocore/api/data/tag/GTOTagPrefix.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.gtolib.GTOCore;
import com.gtolib.api.annotation.DataGeneratorScanned;
import com.gtolib.api.annotation.NewDataAttributes;
import com.gtolib.api.annotation.language.RegisterLanguage;
import com.gtolib.api.data.chemical.material.GTOMaterialBuilder;
import com.gtolib.utils.RLUtils;
Expand Down Expand Up @@ -39,6 +40,7 @@
import static com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags.NO_SMASHING;
import static com.gregtechceu.gtceu.api.data.tag.TagPrefix.Conditions.*;
import static com.gregtechceu.gtceu.common.data.GTMaterials.Boron;
import static com.gtocore.common.machine.multiblock.generator.FullCellGenerator.Wrapper.MEMBRANE_MATS;

@DataGeneratorScanned
@SuppressWarnings("unused")
Expand Down Expand Up @@ -146,7 +148,7 @@ private static TagPrefix ore(String name) {
public static final TagPrefix FIBER_MESH = new GTOTagPrefix("carbon_fiber_mesh").idPattern("%s_carbon_fiber_mesh").defaultTagPath("carbon_fiber_meshes/%s").unformattedTagPath("carbon_fiber_meshes").materialAmount(GTValues.M * 2).materialIconType(new MaterialIconType("carbon_fiber_mesh")).unificationEnabled(true).generateItem(true).generationCondition(mat -> mat.hasFlag(GTOMaterialFlags.GENERATE_FIBER));
public static final TagPrefix NANO = new GTOTagPrefix("nano").idPattern("nano_%s").defaultTagPath("nanos/%s").unformattedTagPath("nanos").materialAmount(GTValues.M / 16).materialIconType(MaterialIconType.dust).unificationEnabled(true).generateItem(true).generationCondition(mat -> mat.hasFlag(GTOMaterialFlags.HAS_NANOSCALE_FORM));

public static final TagPrefix MEMBRANE_ELECTRODE = new GTOTagPrefix("membrane_electrode").idPattern("%s_membrane_electrode").defaultTagPath("membrane_electrodes/%s").unformattedTagPath("membrane_electrodes").materialAmount(GTValues.M).materialIconType(new MaterialIconType("membrane_electrode")).unificationEnabled(true).generateItem(true).generationCondition(mat -> mat.hasFlag(GTOMaterialFlags.GENERATE_MEMBRANE_ELECTRODE));
public static final TagPrefix MEMBRANE_ELECTRODE = new GTOTagPrefix("membrane_electrode").idPattern("%s_membrane_electrode").defaultTagPath("membrane_electrodes/%s").unformattedTagPath("membrane_electrodes").materialAmount(GTValues.M).materialIconType(new MaterialIconType("membrane_electrode")).unificationEnabled(true).generateItem(true).tooltip((mat,tooltips) -> tooltips.addAll(NewDataAttributes.LEVEL.create(MEMBRANE_MATS.indexOf(mat) + 1).get())).generationCondition(mat -> mat.hasFlag(GTOMaterialFlags.GENERATE_MEMBRANE_ELECTRODE));

private GTOTagPrefix useRenderer(final ICustomRenderer renderer) {
this.customRenderer = renderer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,12 +125,12 @@ fun LayoutBuilder<*>.multiPageAdvanced(width: Int, height: Int, style: (Style.()
val pageSuppliers: MutableList<Supplier<VBoxBuilder.() -> Unit>> = mutableListOf()
init {
currentPage.setReceiverListener { side, old, newV ->
if (GTOConfig.INSTANCE.aeLog) println("Page changed from $old to $newV on $side")
if (GTOConfig.INSTANCE.devMode.aeLog) println("Page changed from $old to $newV on $side")
runOnUpdate.run()
refresh()
}
currentPage.setSenderListener { side, old, newV ->
if (GTOConfig.INSTANCE.aeLog) println("Page changed from $old to $newV on $side")
if (GTOConfig.INSTANCE.devMode.aeLog) println("Page changed from $old to $newV on $side")
runOnUpdate.run()
refresh()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ public final class GTOPartAbility extends PartAbility {
public static final PartAbility STEAM_IMPORT_FLUIDS = new GTOPartAbility("steam_import_fluids", "蒸汽流体输入仓", "Steam Import Fluids");
public static final PartAbility STEAM_EXPORT_FLUIDS = new GTOPartAbility("steam_export_fluids", "蒸汽流体输出仓", "Steam Export Fluids");

// 仅用于放入附属模块的描述中
public static final PartAbility EXTRA_ENERGY_HATCH = new GTOPartAbility("extra_energy_hatch", "额外能源仓", "Extra Energy Hatch");

public GTOPartAbility(String name, String cn, String en) {
super(name);
if (LANG != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,11 +142,11 @@ default void customText(@NotNull List<Component> list) {

enum ConnectType {

CONJUNCTION(0xFFFF00, () -> blocks(GTOBlocks.TITANIUM_ALLOY_INTERNAL_FRAME.get())
CONJUNCTION(0xFFFF00, () -> blocks(GTOBlocks.TITANIUM_ALLOY_FRAME_INTERNAL.get())
.or(checkIsConjunction).or(checkIsModule)),
MODULE(0x00FFFF, () -> blocks(GTOBlocks.TITANIUM_ALLOY_INTERNAL_FRAME.get())
MODULE(0x00FFFF, () -> blocks(GTOBlocks.TITANIUM_ALLOY_FRAME_INTERNAL.get())
.or(checkIsConjunction)),
CORE(0xFF0000, () -> blocks(GTOBlocks.TITANIUM_ALLOY_INTERNAL_FRAME.get())
CORE(0xFF0000, () -> blocks(GTOBlocks.TITANIUM_ALLOY_FRAME_INTERNAL.get())
.or(checkIsConjunction));

public final int color;
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/com/gtocore/api/pattern/GTOPredicates.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@
import com.gtolib.utils.GTOUtils;

import com.gregtechceu.gtceu.api.block.MetaMachineBlock;
import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity;
import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability;
import com.gregtechceu.gtceu.api.data.chemical.ChemicalHelper;
import com.gregtechceu.gtceu.api.data.chemical.material.Material;
import com.gregtechceu.gtceu.api.data.tag.TagPrefix;
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IRotorHolderMachine;
Expand All @@ -20,6 +24,7 @@
import com.gregtechceu.gtceu.api.pattern.Predicates;
import com.gregtechceu.gtceu.api.pattern.TraceabilityPredicate;
import com.gregtechceu.gtceu.api.pattern.error.PatternStringError;
import com.gregtechceu.gtceu.api.pattern.predicates.PredicateBlocks;
import com.gregtechceu.gtceu.api.pattern.predicates.SimplePredicate;
import com.gregtechceu.gtceu.api.pattern.util.RelativeDirection;
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
Expand Down Expand Up @@ -317,6 +322,23 @@ public boolean isAir() {
};
}

public static TraceabilityPredicate frame(Material frameMaterial) {
var block = ChemicalHelper.getBlock(TagPrefix.frameGt, frameMaterial);
if (block == null) {
throw new IllegalArgumentException("No frame block found for material: " + frameMaterial.getName());
}
return new TraceabilityPredicate(
new PredicateBlocks(block)) {

@Override
public boolean test(MultiblockState blockWorldState) {
if (super.test(blockWorldState)) return true;
if (blockWorldState.world.isLoaded(blockWorldState.getPos()) && blockWorldState.getTileEntity() instanceof PipeBlockEntity<?, ?> pipeTile) return pipeTile.getFrameMaterial() == frameMaterial;
return false;
}
};
}

static {
BlockPattern.addWhitelistBlockEntity(ManaPoolBlockEntity.class);
}
Expand Down
12 changes: 0 additions & 12 deletions src/main/java/com/gtocore/api/pattern/PredicatePlaceholder.java

This file was deleted.

16 changes: 13 additions & 3 deletions src/main/java/com/gtocore/api/report/MaterialReport.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package com.gtocore.api.report;

import com.gtocore.api.data.material.GTOMaterialFlags;
import com.gtocore.client.forge.GTOComponentHandler;
import com.gtocore.integration.Mods;
import com.gtocore.integration.lang.LangAdaptor;

import com.gtolib.GTOCore;
import com.gtolib.api.annotation.DataGeneratorScanned;
Expand Down Expand Up @@ -34,6 +35,9 @@ public class MaterialReport {
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();

public static void generateReport() {
if (!Mods.LANG.isLoaded()) {
GTOCore.LOGGER.warn("MoreMoreLang 未加载,无法使用多语言功能,跳过材料报告语言相关部分生成");
}
StringBuilder report = new StringBuilder();
StringBuilder report_json = new StringBuilder();
StringBuilder report_table = new StringBuilder();
Expand Down Expand Up @@ -170,8 +174,14 @@ public static class Entry {

public static Entry fromMaterial(Material material) {
Entry entry = new Entry();
entry.cnName = material.getLocalizedName().getString();
entry.enName = GTOComponentHandler.INSTANCE.getEnglishLanguage().getOrDefault(material.getUnlocalizedName(), material.getUnlocalizedName());

if (Mods.LANG.isLoaded()) {
entry.cnName = LangAdaptor.langCn(material.getLocalizedName());
entry.enName = LangAdaptor.langEn(material.getLocalizedName());
} else {
entry.cnName = material.getLocalizedName().getString();
entry.enName = material.getUnlocalizedName();
}
entry.symbol = material.getChemicalFormula();
entry.hexColor1 = getHexColorString(material.getMaterialRGB());
entry.hexColor2 = getHexColorString(material.getMaterialSecondaryRGB());
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/com/gtocore/client/KeyBind.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.gtolib.utils.ClientUtil;

import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraftforge.client.settings.KeyConflictContext;
import net.minecraftforge.client.settings.KeyModifier;
Expand All @@ -21,10 +22,11 @@ public final class KeyBind {
@Override
public void setDown(boolean isDown) {
if (isDownOld != isDown && isDown && ClientUtil.getPlayer() != null) {
GTOConfig.set("nightVision", !GTOConfig.INSTANCE.nightVision);
ClientUtil.getPlayer().displayClientMessage(GTOConfig.INSTANCE.nightVision ?
GTOConfig.set("nightVision", !GTOConfig.INSTANCE.client.nightVision, "client");
ClientUtil.getPlayer().displayClientMessage(GTOConfig.INSTANCE.client.nightVision ?
Component.translatable("metaarmor.message.nightvision.enabled") :
Component.translatable("metaarmor.message.nightvision.disabled"), true);
Minecraft.getInstance().gameRenderer.lightTexture().updateLightTexture(Minecraft.getInstance().getPartialTick());
}
super.setDown(isDown);
}
Expand Down
Loading