虚拟合成卡适配adv的量子计算机
This commit is contained in:
parent
d10c26d3e3
commit
444f682ca0
|
|
@ -0,0 +1,13 @@
|
|||
package com.extendedae_plus.mixin.advancedae.accessor;
|
||||
|
||||
import net.pedroksl.advanced_ae.common.logic.AdvCraftingCPULogic;
|
||||
import net.pedroksl.advanced_ae.common.logic.ExecutingCraftingJob;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(value = AdvCraftingCPULogic.class, remap = false)
|
||||
public interface AdvCraftingCPULogicAccessor {
|
||||
|
||||
@Accessor("job")
|
||||
ExecutingCraftingJob eap$getAdvJob();
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.extendedae_plus.mixin.advancedae.accessor;
|
||||
|
||||
import appeng.api.crafting.IPatternDetails;
|
||||
import net.pedroksl.advanced_ae.common.logic.ExecutingCraftingJob;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Mixin(value = ExecutingCraftingJob.class, remap = false)
|
||||
public interface AdvExecutingCraftingJobAccessor {
|
||||
|
||||
@Accessor("tasks")
|
||||
Map<IPatternDetails, Object> eap$getAdvTasks();
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.extendedae_plus.mixin.advancedae.accessor;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(targets = "net.pedroksl.advanced_ae.common.logic.ExecutingCraftingJob$TaskProgress", remap = false)
|
||||
public interface AdvExecutingCraftingJobTaskProgressAccessor {
|
||||
|
||||
@Accessor("value")
|
||||
long eap$getAdvValue();
|
||||
}
|
||||
|
|
@ -15,6 +15,9 @@ import appeng.me.cluster.implementations.CraftingCPUCluster;
|
|||
import com.extendedae_plus.ae.items.ChannelCardItem;
|
||||
import com.extendedae_plus.bridge.CompatUpgradeProvider;
|
||||
import com.extendedae_plus.bridge.InterfaceWirelessLinkBridge;
|
||||
import com.extendedae_plus.mixin.advancedae.accessor.AdvCraftingCPULogicAccessor;
|
||||
import com.extendedae_plus.mixin.advancedae.accessor.AdvExecutingCraftingJobAccessor;
|
||||
import com.extendedae_plus.mixin.advancedae.accessor.AdvExecutingCraftingJobTaskProgressAccessor;
|
||||
import com.extendedae_plus.compat.UpgradeSlotCompat;
|
||||
import com.extendedae_plus.init.ModItems;
|
||||
import com.extendedae_plus.mixin.ae2.accessor.CraftingCpuLogicAccessor;
|
||||
|
|
@ -26,6 +29,7 @@ import com.extendedae_plus.wireless.endpoint.GenericNodeEndpointImpl;
|
|||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.pedroksl.advanced_ae.common.cluster.AdvCraftingCPU;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
|
@ -530,6 +534,41 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (cpu instanceof AdvCraftingCPU advCpu) {
|
||||
var logic = advCpu.craftingLogic;
|
||||
if (logic instanceof AdvCraftingCPULogicAccessor advLogicAccessor) {
|
||||
var job = advLogicAccessor.eap$getAdvJob();
|
||||
if (job != null && job instanceof AdvExecutingCraftingJobAccessor advJobAccessor) {
|
||||
var tasks = advJobAccessor.eap$getAdvTasks();
|
||||
var progress = tasks.get(patternDetails);
|
||||
if (progress == null && patternDetails != null) {
|
||||
var patternDefinition = patternDetails.getDefinition();
|
||||
for (var entry : tasks.entrySet()) {
|
||||
var taskPattern = entry.getKey();
|
||||
if (taskPattern == patternDetails) {
|
||||
progress = entry.getValue();
|
||||
break;
|
||||
}
|
||||
if (taskPattern != null && patternDefinition != null) {
|
||||
var taskDefinition = taskPattern.getDefinition();
|
||||
if (taskDefinition != null && taskDefinition.equals(patternDefinition)) {
|
||||
progress = entry.getValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (progress instanceof AdvExecutingCraftingJobTaskProgressAccessor advProgressAccessor) {
|
||||
if (advProgressAccessor.eap$getAdvValue() <= 1) {
|
||||
advCpu.cancelJob();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@
|
|||
"advancedae.AdvPatternProviderLogicContainsRedirectMixin",
|
||||
"advancedae.accessor.AdvPatternProviderLogicPatternsAccessor",
|
||||
"advancedae.accessor.AdvPatternProviderMenuAdvancedAccessor",
|
||||
"advancedae.accessor.AdvCraftingCPULogicAccessor",
|
||||
"advancedae.accessor.AdvExecutingCraftingJobAccessor",
|
||||
"advancedae.accessor.AdvExecutingCraftingJobTaskProgressAccessor",
|
||||
"advancedae.helpers.AdvPatternProviderLogicAdvancedMixin",
|
||||
"advancedae.helpers.AdvPatternProviderLogicDoublingMixin",
|
||||
"advancedae.menu.AdvPatternProviderMenuAdvancedMixin",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user