Skip to content

Commit cf9ac48

Browse files
authored
Merge pull request #949 from DragonsPlusMinecraft/1.21.1-PonderFluidTankCrash-fix
Fix ponder crashes when calling FluidTankBlockEntity#getControllerBE
2 parents 26fd023 + 8c4c64d commit cf9ac48

File tree

4 files changed

+36
-5
lines changed

4 files changed

+36
-5
lines changed

src/main/java/com/mrh0/createaddition/index/CAPonders.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package com.mrh0.createaddition.index;
22

33
import com.mrh0.createaddition.CreateAddition;
4+
import com.mrh0.createaddition.ponder.DebugScenes;
45
import com.mrh0.createaddition.ponder.PonderScenes;
56
import com.simibubi.create.AllBlocks;
67

8+
import com.simibubi.create.AllItems;
79
import com.simibubi.create.infrastructure.ponder.AllCreatePonderTags;
810
import com.tterrag.registrate.util.entry.ItemProviderEntry;
911
import net.createmod.ponder.api.registration.PonderSceneRegistrationHelper;
1012
import net.createmod.ponder.api.registration.PonderTagRegistrationHelper;
1113
import net.minecraft.resources.ResourceLocation;
1214
import com.tterrag.registrate.util.entry.RegistryEntry;
15+
import net.neoforged.fml.loading.FMLEnvironment;
16+
import net.neoforged.neoforge.data.loading.DatagenModLoader;
1317

1418
public class CAPonders {
1519
public static final ResourceLocation ELECTRIC = CreateAddition.asResource("electric");
@@ -63,5 +67,8 @@ public static void registerScenes(PonderSceneRegistrationHelper<ResourceLocation
6367

6468
if(CreateAddition.CC_ACTIVE)
6569
HELPER.addStoryBoard(CABlocks.ELECTRIC_MOTOR, "cc_electric_motor", PonderScenes::ccMotor, AllCreatePonderTags.KINETIC_SOURCES, ELECTRIC);
70+
71+
if(!FMLEnvironment.production && !DatagenModLoader.isRunningDataGen())
72+
HELPER.addStoryBoard(AllItems.WRENCH,"debug/fluidtank", DebugScenes::controllerBEDebug);
6673
}
6774
}

src/main/java/com/mrh0/createaddition/ponder/CAPonderPlugin.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ public void registerSharedText(SharedTextRegistrationHelper helper) {
3434
// helper.registerSharedText("rpm8", "8 RPM");
3535
}
3636

37-
@Override
38-
public void onPonderLevelRestore(PonderLevel ponderLevel) {
39-
PonderWorldBlockEntityFix.fixControllerBlockEntities(ponderLevel);
40-
}
41-
4237
@Override
4338
public void indexExclusions(IndexExclusionHelper helper) {
4439
// helper.excludeBlockVariants(ValveHandleBlock.class, AllBlocks.COPPER_VALVE_HANDLE.get());
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.mrh0.createaddition.ponder;
2+
3+
import com.simibubi.create.AllFluids;
4+
import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity;
5+
import com.simibubi.create.foundation.ponder.CreateSceneBuilder;
6+
import net.createmod.ponder.api.scene.SceneBuilder;
7+
import net.createmod.ponder.api.scene.SceneBuildingUtil;
8+
import net.minecraft.core.Direction;
9+
import net.neoforged.neoforge.fluids.FluidStack;
10+
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
11+
12+
public class DebugScenes {
13+
public static void controllerBEDebug(SceneBuilder builder, SceneBuildingUtil util){
14+
CreateSceneBuilder scene = new CreateSceneBuilder(builder);
15+
scene.title("debug.fluidtank_controller_be_issue", "Debug Fluid Tank Controller BE");
16+
scene.configureBasePlate(0, 0, 3);
17+
scene.world().showSection(util.select().everywhere(), Direction.DOWN);
18+
19+
scene.world().modifyBlockEntity(util.grid().at(1, 1, 1), FluidTankBlockEntity.class,
20+
be -> be.getControllerBE().getTankInventory().fill(new FluidStack(AllFluids.CHOCOLATE, 5000), IFluidHandler.FluidAction.EXECUTE));
21+
scene.idle(20);
22+
scene.world().modifyBlockEntity(util.grid().at(2, 2, 2), FluidTankBlockEntity.class,
23+
be -> be.getControllerBE().getTankInventory().fill(new FluidStack(AllFluids.CHOCOLATE, 5000), IFluidHandler.FluidAction.EXECUTE));
24+
scene.idle(20);
25+
scene.world().modifyBlockEntity(util.grid().at(0, 3, 0), FluidTankBlockEntity.class,
26+
be -> be.getControllerBE().getTankInventory().fill(new FluidStack(AllFluids.CHOCOLATE, 5000), IFluidHandler.FluidAction.EXECUTE));
27+
scene.idle(20);
28+
}
29+
}
740 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)