fix:默认样板不翻倍,避免导致未进行适配的供应器无法发配材料。去掉对高级ae的样板供应器翻倍支持
This commit is contained in:
parent
f78fb6e977
commit
6f941ed928
|
|
@ -80,13 +80,14 @@ dependencies {
|
||||||
|
|
||||||
annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor"
|
annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor"
|
||||||
|
|
||||||
modCompileOnly "curse.maven:applied-flux-965012:${applied_flux_version}"
|
modCompileOnly "curse.maven:applied-flux-965012:${applied_flux_version}"
|
||||||
modCompileOnly "curse.maven:mega-cells-622112:${mega_cells_version}"
|
modCompileOnly "curse.maven:mega-cells-622112:${mega_cells_version}"
|
||||||
modCompileOnly "curse.maven:jade-324717:${jade_version}"
|
modCompileOnly "curse.maven:jade-324717:${jade_version}"
|
||||||
|
|
||||||
// GregTech
|
// GregTech
|
||||||
modCompileOnly "curse.maven:gregtechceu-modern-890405:${gregtech_version}"
|
modCompileOnly "curse.maven:gregtechceu-modern-890405:${gregtech_version}"
|
||||||
modCompileOnly "curse.maven:ldlib-626676:${ldlib_version}"
|
modCompileOnly "curse.maven:ldlib-626676:${ldlib_version}"
|
||||||
|
modCompileOnly files('libs/gtlcore-1.2.2.1-fix5.jar')
|
||||||
|
|
||||||
//curios
|
//curios
|
||||||
modRuntimeOnly "curse.maven:curios-309927:${curios_version}"
|
modRuntimeOnly "curse.maven:curios-309927:${curios_version}"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
|
||||||
loom.platform = forge
|
loom.platform = forge
|
||||||
|
|
||||||
# Mod properties
|
# Mod properties
|
||||||
mod_version = 1.4.1.beta
|
mod_version = 1.4.1-beta-gtm
|
||||||
maven_group = com.extendedae_plus
|
maven_group = com.extendedae_plus
|
||||||
archives_name = extendedae_plus
|
archives_name = extendedae_plus
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ rei_version=12.0.622
|
||||||
cloth_config_version=9.0.94
|
cloth_config_version=9.0.94
|
||||||
projecte_version=4901949
|
projecte_version=4901949
|
||||||
appliede_version=5364294
|
appliede_version=5364294
|
||||||
gregtech_version=5369020
|
gregtech_version=5753724
|
||||||
ldlib_version=5394816
|
ldlib_version=5394816
|
||||||
ie_version=5224387
|
ie_version=5224387
|
||||||
mixin_version=0.8.4
|
mixin_version=0.8.4
|
||||||
|
|
|
||||||
BIN
libs/gtlcore-1.2.2.1-fix5.jar
Normal file
BIN
libs/gtlcore-1.2.2.1-fix5.jar
Normal file
Binary file not shown.
|
|
@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.Unique;
|
||||||
@Mixin(value = AEProcessingPattern.class, remap = false)
|
@Mixin(value = AEProcessingPattern.class, remap = false)
|
||||||
public class AEProcessingPatternMixin implements SmartDoublingAwarePattern {
|
public class AEProcessingPatternMixin implements SmartDoublingAwarePattern {
|
||||||
@Unique
|
@Unique
|
||||||
private boolean eap$allowScaling = true; // 默认允许缩放
|
private boolean eap$allowScaling = false; // 默认不允许缩放
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean eap$allowScaling() {
|
public boolean eap$allowScaling() {
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
package com.extendedae_plus.mixin.ae2.autopattern.adaptation;
|
|
||||||
|
|
||||||
import appeng.api.crafting.IPatternDetails;
|
|
||||||
import com.extendedae_plus.content.ScaledProcessingPattern;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.Pseudo;
|
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**适配
|
|
||||||
* Redirect PatternProviderLogic.pushPattern 中对 List.contains 的调用,
|
|
||||||
* 在遇到缩放样板时回退匹配到原始样板实例。
|
|
||||||
*/
|
|
||||||
@Pseudo
|
|
||||||
@Mixin(targets = "net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogic", remap = false)
|
|
||||||
public class AdvPatternProviderLogicContainsRedirectMixin {
|
|
||||||
|
|
||||||
@Redirect(method = "pushPattern",
|
|
||||||
at = @At(
|
|
||||||
value = "INVOKE",
|
|
||||||
target = "Ljava/util/List;contains(Ljava/lang/Object;)Z")
|
|
||||||
)
|
|
||||||
private boolean eap$patternsContains(List<?> list, Object o) {
|
|
||||||
try {
|
|
||||||
if (o instanceof ScaledProcessingPattern scaled) {
|
|
||||||
IPatternDetails base = scaled.getOriginal();
|
|
||||||
if (base != null && list.indexOf(base) != -1) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 使用 indexOf 避免再次触发对 List.contains 的 redirect(防止递归)
|
|
||||||
return list.indexOf(o) != -1;
|
|
||||||
} catch (Throwable t) {
|
|
||||||
return list.indexOf(o) != -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +1,47 @@
|
||||||
package com.extendedae_plus.mixin.ae2.autopattern.gtceu;
|
package com.extendedae_plus.mixin.ae2.autopattern.gtceu;
|
||||||
|
|
||||||
import appeng.api.crafting.IPatternDetails;
|
import appeng.api.crafting.IPatternDetails;
|
||||||
|
import appeng.crafting.pattern.AEProcessingPattern;
|
||||||
|
import com.extendedae_plus.api.SmartDoublingAwarePattern;
|
||||||
import com.extendedae_plus.content.ScaledProcessingPattern;
|
import com.extendedae_plus.content.ScaledProcessingPattern;
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
|
import org.gtlcore.gtlcore.common.machine.multiblock.part.ae.MEPatternBufferPartMachine;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Pseudo;
|
import org.spongepowered.asm.mixin.Pseudo;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import static com.extendedae_plus.util.ExtendedAELogger.LOGGER;
|
||||||
|
|
||||||
@Pseudo
|
@Pseudo
|
||||||
@Mixin(targets = "org.gtlcore.gtlcore.common.machine.multiblock.part.ae.MEPatternBufferPartMachine",remap = false)
|
@Mixin(value = MEPatternBufferPartMachine.class, remap = false)
|
||||||
public class GTLCoreMEPatternBufferPartMachineMixin {
|
public class GTLCoreMEPatternBufferPartMachineMixin {
|
||||||
|
|
||||||
|
@Final
|
||||||
|
@Shadow
|
||||||
|
private BiMap<IPatternDetails, Integer> patternSlotMap;
|
||||||
|
|
||||||
|
// 设置样板总成是否翻倍
|
||||||
|
@Inject(method = "getAvailablePatterns", at = @At(value = "INVOKE", target = "Ljava/util/stream/Stream;toList()Ljava/util/List;", shift = At.Shift.BEFORE))
|
||||||
|
private void beforeToList(CallbackInfoReturnable<List<IPatternDetails>> cir) {
|
||||||
|
if (patternSlotMap == null) return;
|
||||||
|
for (Map.Entry<IPatternDetails, Integer> entry : patternSlotMap.entrySet()) {
|
||||||
|
IPatternDetails key = entry.getKey();
|
||||||
|
if (key instanceof AEProcessingPattern proc && proc instanceof SmartDoublingAwarePattern aware) {
|
||||||
|
aware.eap$setAllowScaling(true);
|
||||||
|
LOGGER.info("设置true,{}", aware);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 重定向containsKey检查
|
// 重定向containsKey检查
|
||||||
@Redirect(method = "pushPattern(Lappeng/api/crafting/IPatternDetails;[Lappeng/api/stacks/KeyCounter;)Z",
|
@Redirect(method = "pushPattern(Lappeng/api/crafting/IPatternDetails;[Lappeng/api/stacks/KeyCounter;)Z",
|
||||||
at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;containsKey(Ljava/lang/Object;)Z"))
|
at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;containsKey(Ljava/lang/Object;)Z"))
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,47 @@
|
||||||
package com.extendedae_plus.mixin.ae2.autopattern.gtceu;
|
package com.extendedae_plus.mixin.ae2.autopattern.gtceu;
|
||||||
|
|
||||||
import appeng.api.crafting.IPatternDetails;
|
import appeng.api.crafting.IPatternDetails;
|
||||||
|
import appeng.crafting.pattern.AEProcessingPattern;
|
||||||
|
import com.extendedae_plus.api.SmartDoublingAwarePattern;
|
||||||
import com.extendedae_plus.content.ScaledProcessingPattern;
|
import com.extendedae_plus.content.ScaledProcessingPattern;
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
|
import com.gregtechceu.gtceu.integration.ae2.machine.MEPatternBufferPartMachine;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Pseudo;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
;
|
import static com.extendedae_plus.util.ExtendedAELogger.LOGGER;
|
||||||
|
|
||||||
@Mixin(targets = "com.gregtechceu.gtceu.integration.ae2.machine.MEPatternBufferPartMachine",remap = false)
|
@Pseudo
|
||||||
|
@Mixin(value = MEPatternBufferPartMachine.class, remap = false)
|
||||||
public class MEPatternBufferPartMachineMixin {
|
public class MEPatternBufferPartMachineMixin {
|
||||||
|
|
||||||
|
@Shadow
|
||||||
|
@Final
|
||||||
|
private BiMap<IPatternDetails, Integer> detailsSlotMap;
|
||||||
|
|
||||||
|
// 设置样板总成是否翻倍
|
||||||
|
@Inject(method = "getAvailablePatterns", at = @At(value = "INVOKE", target = "Ljava/util/stream/Stream;toList()Ljava/util/List;", shift = At.Shift.BEFORE))
|
||||||
|
private void beforeToList(CallbackInfoReturnable<List<IPatternDetails>> cir) {
|
||||||
|
if (detailsSlotMap == null) return;
|
||||||
|
for (Map.Entry<IPatternDetails, Integer> entry : detailsSlotMap.entrySet()) {
|
||||||
|
IPatternDetails key = entry.getKey();
|
||||||
|
if (key instanceof AEProcessingPattern proc && proc instanceof SmartDoublingAwarePattern aware) {
|
||||||
|
aware.eap$setAllowScaling(true);
|
||||||
|
LOGGER.info("设置true,{}", aware);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 重定向containsKey检查
|
// 重定向containsKey检查
|
||||||
@Redirect(method = "pushPattern(Lappeng/api/crafting/IPatternDetails;[Lappeng/api/stacks/KeyCounter;)Z",
|
@Redirect(method = "pushPattern(Lappeng/api/crafting/IPatternDetails;[Lappeng/api/stacks/KeyCounter;)Z",
|
||||||
at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;containsKey(Ljava/lang/Object;)Z"))
|
at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;containsKey(Ljava/lang/Object;)Z"))
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,6 @@
|
||||||
"ae2.autopattern.CraftingTreeNodeMixin",
|
"ae2.autopattern.CraftingTreeNodeMixin",
|
||||||
"ae2.autopattern.CraftingTreeProcessMixin",
|
"ae2.autopattern.CraftingTreeProcessMixin",
|
||||||
"ae2.autopattern.PatternProviderLogicContainsRedirectMixin",
|
"ae2.autopattern.PatternProviderLogicContainsRedirectMixin",
|
||||||
"ae2.autopattern.adaptation.AdvPatternProviderLogicContainsRedirectMixin",
|
|
||||||
"ae2.autopattern.gtceu.GTLCoreMEPatternBufferPartMachineMixin",
|
"ae2.autopattern.gtceu.GTLCoreMEPatternBufferPartMachineMixin",
|
||||||
"ae2.autopattern.gtceu.MEPatternBufferPartMachineMixin",
|
"ae2.autopattern.gtceu.MEPatternBufferPartMachineMixin",
|
||||||
"ae2.helpers.PatternProviderLogicAdvancedMixin",
|
"ae2.helpers.PatternProviderLogicAdvancedMixin",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user