Skip to content

Commit 277fa8f

Browse files
author
Circulate233
committed
修复数据库在未通电的情况下仍然可被识别的问题
阻止了斗轮式挖掘机破坏方块 暂时切断解包机弹出物品的功能,等待修复bug
1 parent 31bc3de commit 277fa8f

File tree

10 files changed

+95
-27
lines changed

10 files changed

+95
-27
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ dependencies {
297297
implementation(rfg.deobf("curse.maven:Flux-Networks-248020:3178199"))
298298
implementation(rfg.deobf("curse.maven:BloodMagic-224791:2822288"))
299299
implementation(rfg.deobf("curse.maven:dme-737252:5985530"))
300+
implementation(rfg.deobf("curse.maven:packagedauto-308380:6312996"))
300301
implementation(kotlin("stdlib-jdk8"))
301302
}
302303

src/main/java/github/kasuminova/novaeng/common/hypernet/old/Database.java

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package github.kasuminova.novaeng.common.hypernet.old;
22

3+
import com.github.bsideup.jabel.Desugar;
34
import crafttweaker.annotations.ZenRegister;
45
import github.kasuminova.mmce.common.event.recipe.FactoryRecipeTickEvent;
56
import github.kasuminova.novaeng.common.hypernet.old.research.ResearchCognitionData;
@@ -212,17 +213,8 @@ public Status createStatus() {
212213
return new Status(type, storedResearchCognition.size(), researchingCognition.size());
213214
}
214215

215-
@SuppressWarnings("unused")
216-
public static class Status {
217-
private final DatabaseType type;
218-
private final int storedCognition;
219-
private final int researchingCognition;
220-
221-
public Status(final DatabaseType type, final int storedCognition, final int researchingCognition) {
222-
this.type = type;
223-
this.storedCognition = storedCognition;
224-
this.researchingCognition = researchingCognition;
225-
}
216+
@Desugar
217+
public record Status(DatabaseType type, int storedCognition, int researchingCognition) {
226218

227219
public static Status readFromNBT(final NBTTagCompound tag) {
228220
if (!tag.hasKey("t") || !tag.hasKey("s") || !tag.hasKey("r")) {
@@ -249,17 +241,5 @@ public NBTTagCompound writeToNBT() {
249241
public boolean hasDatabaseSpace() {
250242
return type.getMaxResearchDataStoreSize() > storedCognition + researchingCognition;
251243
}
252-
253-
public DatabaseType getType() {
254-
return type;
255-
}
256-
257-
public int getStoredCognition() {
258-
return storedCognition;
259-
}
260-
261-
public int getResearchingCognition() {
262-
return researchingCognition;
263-
}
264244
}
265245
}

src/main/java/github/kasuminova/novaeng/common/hypernet/old/DatabaseType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void registerRecipesAndThreads() {
3636
String name = typeName;
3737
MachineModifier.addCoreThread(name, FactoryRecipeThread.createCoreThread(DATABASE_WORKING_THREAD_NAME));
3838

39-
RecipeBuilder.newBuilder(name + "_working", name, 20, 100, false)
39+
RecipeBuilder.newBuilder(name + "_working", name, 20, 100, true)
4040
.addEnergyPerTickInput(energyUsage)
4141
.addFactoryPreTickHandler(event -> {
4242
Database database = NetNodeCache.getCache(event.getController(), Database.class);

src/main/java/github/kasuminova/novaeng/common/hypernet/old/research/ResearchStation.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Collection;
2828
import java.util.Objects;
2929
import java.util.UUID;
30+
import java.util.stream.Collectors;
3031

3132
/**
3233
* TODO: 硬编码喵
@@ -172,7 +173,9 @@ public void completeRecipe(FactoryRecipeThread thread) {
172173
ActiveMachineRecipe recipe = thread.getActiveRecipe();
173174
recipe.setTick(recipe.getTotalTick() + 1);
174175

175-
Collection<Database> databases = center.getNode(Database.class);
176+
Collection<Database> databases = center.getNode(Database.class).stream()
177+
.filter(Database::isWorking)
178+
.collect(Collectors.toList());
176179
if (databases.isEmpty()) {
177180
return;
178181
}

src/main/java/github/kasuminova/novaeng/common/network/PktTerminalGuiData.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ public void toBytes(final ByteBuf buf) {
7979
return;
8080
}
8181

82-
Collection<Database> databases = center.getNode(Database.class);
82+
Collection<Database> databases = center.getNode(Database.class).stream()
83+
.filter(Database::isWorking)
84+
.collect(Collectors.toList());
8385

8486
Set<ResearchCognitionData> researchCognition = databases.stream()
8587
.flatMap(database -> database.getStoredResearchCognition().stream())

src/main/java/github/kasuminova/novaeng/mixin/NovaEngCoreLateMixinLoader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class NovaEngCoreLateMixinLoader implements ILateMixinLoader {
3939
addModdedMixinCFG("mixins.novaeng_core_lootoverhaul.json","lootoverhaul");
4040
addModdedMixinCFG("mixins.novaeng_core_fluxnetworks.json","fluxnetworks");
4141
addModdedMixinCFG("mixins.novaeng_core_extrabotany.json","extrabotany");
42+
addModdedMixinCFG("mixins.novaeng_core_packagedauto.json","packagedauto");
4243

4344
addMixinCFG("mixins.novaeng_core_forge_late.json");
4445
addMixinCFG("mixins.novaeng_core_dme.json",

src/main/java/github/kasuminova/novaeng/mixin/immersiveengineering/MixinTileEntityExcavator.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package github.kasuminova.novaeng.mixin.immersiveengineering;
22

3+
import blusunrize.immersiveengineering.common.blocks.metal.TileEntityBucketWheel;
34
import blusunrize.immersiveengineering.common.blocks.metal.TileEntityExcavator;
45
import net.minecraft.item.ItemStack;
56
import net.minecraft.util.EnumFacing;
67
import net.minecraft.util.math.BlockPos;
78
import net.minecraft.world.World;
89
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.Overwrite;
911
import org.spongepowered.asm.mixin.injection.At;
1012
import org.spongepowered.asm.mixin.injection.Redirect;
1113

@@ -24,5 +26,28 @@ public class MixinTileEntityExcavator {
2426
private void redirectDoProcessOutput(final World ei, final BlockPos world, final ItemStack pos, final EnumFacing stack) {
2527
// 销毁物品!为什么不做掉落物清理!
2628
}
27-
29+
30+
@Redirect(method = "update",at = @At(value = "INVOKE", target = "Lblusunrize/immersiveengineering/common/blocks/metal/TileEntityExcavator;digBlocksInTheWay(Lblusunrize/immersiveengineering/common/blocks/metal/TileEntityBucketWheel;)Lnet/minecraft/item/ItemStack;",remap = false))
31+
public ItemStack preventBlockDestruction(TileEntityExcavator instance, TileEntityBucketWheel wheel){
32+
// 好吧,我觉得斗轮用来挖生成在斗轮下面的刷石机太荒缪了
33+
return ItemStack.EMPTY;
34+
}
35+
36+
/**
37+
* @author circulation
38+
* @reason 彻底清理
39+
*/
40+
@Overwrite(remap = false)
41+
ItemStack digBlocksInTheWay(TileEntityBucketWheel wheel) {
42+
return ItemStack.EMPTY;
43+
}
44+
45+
/**
46+
* @author circulation
47+
* @reason 彻底清理
48+
*/
49+
@Overwrite(remap = false)
50+
ItemStack digBlock(BlockPos pos) {
51+
return ItemStack.EMPTY;
52+
}
2853
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package github.kasuminova.novaeng.mixin.packagedauto;
2+
3+
import net.minecraft.client.gui.GuiButton;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.injection.At;
6+
import org.spongepowered.asm.mixin.injection.Redirect;
7+
import thelm.packagedauto.client.gui.GuiContainerTileBase;
8+
import thelm.packagedauto.client.gui.GuiUnpackager;
9+
import thelm.packagedauto.container.ContainerUnpackager;
10+
11+
@Mixin(GuiUnpackager.class)
12+
public abstract class MixinGuiUnpackager extends GuiContainerTileBase<ContainerUnpackager> {
13+
14+
public MixinGuiUnpackager(ContainerUnpackager containerUnpackager) {
15+
super(containerUnpackager);
16+
}
17+
18+
@Redirect(method = "initGui",at = @At(value = "INVOKE", target = "Lthelm/packagedauto/client/gui/GuiUnpackager;addButton(Lnet/minecraft/client/gui/GuiButton;)Lnet/minecraft/client/gui/GuiButton;"))
19+
public GuiButton initGui(GuiUnpackager instance, GuiButton guiButton) {
20+
if (guiButton.getClass().getSimpleName().equals("GuiButtonTracker")){
21+
return null;
22+
}
23+
return this.addButton(guiButton);
24+
}
25+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package github.kasuminova.novaeng.mixin.packagedauto;
2+
3+
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
4+
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Inject;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
9+
import thelm.packagedauto.network.packet.PacketEjectTracker;
10+
11+
@Mixin(value = PacketEjectTracker.class,remap = false)
12+
public class MixinPacketEjectTracker {
13+
14+
@Inject(method = "onMessage",at = @At("HEAD"), cancellable = true)
15+
public void onMessage(MessageContext ctx, CallbackInfoReturnable<IMessage> cir) {
16+
cir.setReturnValue(null);
17+
}
18+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"package": "github.kasuminova.novaeng.mixin.packagedauto",
3+
"refmap": "mixins.novaeng_core.refmap.json",
4+
"target": "@env(DEFAULT)",
5+
"minVersion": "0.8",
6+
"compatibilityLevel": "JAVA_8",
7+
"client": [
8+
"MixinGuiUnpackager"
9+
],
10+
"mixins": [
11+
"MixinPacketEjectTracker"
12+
]
13+
}

0 commit comments

Comments
 (0)