Skip to content

Commit 315587a

Browse files
committed
Multiblock re-instancing in case of failures
1 parent 012536f commit 315587a

File tree

15 files changed

+46
-18
lines changed

15 files changed

+46
-18
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ org.gradle.daemon=true
55
org.gradle.parallel=true
66
org.gradle.caching=true
77

8-
mod_version=1.2.14
8+
mod_version=1.2.15
99

1010
mc_version=1.20.1
1111
mappings_version=2023.09.03

src/main/java/igentuman/nc/block/entity/MultiblockControllerBE.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ public void tickServer() {
139139
assert level != null;
140140
if(level.getGameTime() % 5 == 0) {
141141
MultiblockHandler.tickMultiblockAsync((ServerLevel) level, getMultiblock());
142+
if(multiblock != null && multiblock.isMarkedForRemoval()) {
143+
multiblock = null;
144+
}
142145
}
143146
}
144147

@@ -241,6 +244,7 @@ public void runAnalyze() {
241244
analyzeDelay = 100;
242245
if (getMultiblock() != null) {
243246
getMultiblock().wipeCache();
247+
getMultiblock().setForRemoval();
244248
displayDetailedDataFlag = true;
245249
}
246250
}

src/main/java/igentuman/nc/block/fission/entity/FissionControllerBE.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ public FissionReactorMultiblock getMultiblock() {
534534
return null;
535535
}
536536
if(multiblock == null) {
537+
validationsCounter = 0;
537538
multiblock = new FissionReactorMultiblock(this);
538539
}
539540
return (FissionReactorMultiblock) multiblock;

src/main/java/igentuman/nc/block/fusion/entity/FusionCoreBE.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,7 @@ public FusionReactorMultiblock getMultiblock() {
600600
}
601601
if(multiblock == null) {
602602
multiblock = new FusionReactorMultiblock(this);
603+
validationsCounter = 0;
603604
}
604605
return (FusionReactorMultiblock) multiblock;
605606
}

src/main/java/igentuman/nc/block/kugelblitz/entity/ChamberTerminalBE.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,7 @@ public KugelblitzMultiblock getMultiblock() {
452452
}
453453
if(multiblock == null) {
454454
multiblock = new KugelblitzMultiblock(this);
455+
validationsCounter = 0;
455456
}
456457
return (KugelblitzMultiblock) multiblock;
457458
}

src/main/java/igentuman/nc/block/target_chamber/entity/TargetChamberControllerBE.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ public TargetChamberMultiblock getMultiblock() {
325325
}
326326
if(multiblock == null) {
327327
multiblock = new TargetChamberMultiblock(this);
328+
validationsCounter = 0;
328329
}
329330
return (TargetChamberMultiblock) multiblock;
330331
}

src/main/java/igentuman/nc/block/turbine/entity/TurbineControllerBE.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ public TurbineMultiblock getMultiblock() {
284284
}
285285
if(multiblock == null) {
286286
multiblock = new TurbineMultiblock(this);
287+
validationsCounter = 0;
287288
}
288289
return (TurbineMultiblock) multiblock;
289290
}

src/main/java/igentuman/nc/client/gui/MultiblockAnalyzeReportScreen.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import igentuman.nc.client.NcClient;
66
import igentuman.nc.client.gui.element.NCGuiElement;
77
import igentuman.nc.client.gui.element.button.Button;
8-
import igentuman.nc.container.MultiblockControllerContailer;
8+
import igentuman.nc.container.MultiblockControllerContainer;
99
import net.minecraft.ChatFormatting;
1010
import net.minecraft.client.Minecraft;
1111
import net.minecraft.client.gui.GuiGraphics;
@@ -21,7 +21,7 @@
2121
import static igentuman.nc.NuclearCraft.rl;
2222
import static igentuman.nc.util.TextUtils.__;
2323

24-
public class MultiblockAnalyzeReportScreen<T extends MultiblockControllerContailer> extends AbstractContainerScreen<T> {
24+
public class MultiblockAnalyzeReportScreen<T extends MultiblockControllerContainer> extends AbstractContainerScreen<T> {
2525
protected final ResourceLocation GUI = rl("textures/gui/window_no_inventory.png");
2626
protected int relX;
2727
protected int relY;
@@ -126,7 +126,7 @@ protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) {
126126
graphics.pose().popPose();
127127
}
128128

129-
private MultiblockControllerContailer container() {
129+
private MultiblockControllerContainer container() {
130130
return this.getMenu();
131131
}
132132

src/main/java/igentuman/nc/client/gui/element/button/Button.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import igentuman.nc.client.gui.element.NCGuiElement;
88
import igentuman.nc.client.gui.processor.side.SideConfigSlotSelectionScreen;
99
import igentuman.nc.compat.emi.EMIPlugin;
10-
import igentuman.nc.container.MultiblockControllerContailer;
10+
import igentuman.nc.container.MultiblockControllerContainer;
1111
import igentuman.nc.network.toServer.PacketBuildMultiblock;
1212
import igentuman.nc.network.toServer.PacketGuiButtonPress;
1313
import igentuman.nc.util.builder.ReactorDesignParser;
@@ -301,7 +301,7 @@ public static class MultiblockAnalyze extends Button {
301301

302302
public MultiblockAnalyze(int xPos, int yPos, AbstractContainerScreen<?> screen, BlockPos pos) {
303303
super(xPos, yPos, screen, BTN_ID);
304-
MultiblockControllerContailer container = new MultiblockControllerContailer(pos);
304+
MultiblockControllerContainer container = new MultiblockControllerContainer(pos);
305305
this.pos = pos;
306306
height = 18;
307307
width = 18;

src/main/java/igentuman/nc/container/MultiblockControllerContailer.java renamed to src/main/java/igentuman/nc/container/MultiblockControllerContainer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212

1313
import static igentuman.nc.setup.Registration.MULTIBLOCK_REPORT_CONTAINER;
1414

15-
public class MultiblockControllerContailer extends AbstractContainerMenu {
15+
public class MultiblockControllerContainer extends AbstractContainerMenu {
1616
protected final MultiblockControllerBE blockEntity;
1717
protected final Player playerEntity;
1818

19-
public MultiblockControllerContailer(int pContainerId, BlockPos pos, Inventory playerInventory) {
19+
public MultiblockControllerContainer(int pContainerId, BlockPos pos, Inventory playerInventory) {
2020
super(MULTIBLOCK_REPORT_CONTAINER.get(), pContainerId);
2121
this.playerEntity = playerInventory.player;
2222
blockEntity = (MultiblockControllerBE) playerEntity.getCommandSenderWorld().getBlockEntity(pos);
2323
}
2424

25-
public MultiblockControllerContailer(BlockPos pos) {
25+
public MultiblockControllerContainer(BlockPos pos) {
2626
super(MULTIBLOCK_REPORT_CONTAINER.get(), 777);
2727
playerEntity = Minecraft.getInstance().player;
2828
blockEntity = (MultiblockControllerBE) playerEntity.getCommandSenderWorld().getBlockEntity(pos);

0 commit comments

Comments
 (0)