Skip to content

Commit 190bbe5

Browse files
committed
made reactor chambers set their reactors on first tick
1 parent d22c683 commit 190bbe5

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

src/main/java/org/gtreimagined/gt4r/reactor/tile/BlockEntityReactorChamber.java

+41-1
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,68 @@
11
package org.gtreimagined.gt4r.reactor.tile;
22

3+
import lombok.Getter;
34
import muramasa.antimatter.blockentity.BlockEntityFakeBlock;
45
import muramasa.antimatter.blockentity.BlockEntityMachine;
6+
import muramasa.antimatter.machine.Tier;
57
import muramasa.antimatter.machine.types.Machine;
68
import muramasa.antimatter.tool.AntimatterToolType;
79
import net.minecraft.core.BlockPos;
810
import net.minecraft.core.Direction;
11+
import net.minecraft.nbt.CompoundTag;
912
import net.minecraft.server.level.ServerPlayer;
1013
import net.minecraft.world.InteractionHand;
1114
import net.minecraft.world.InteractionResult;
1215
import net.minecraft.world.entity.player.Player;
1316
import net.minecraft.world.level.Level;
17+
import net.minecraft.world.level.block.entity.BlockEntity;
1418
import net.minecraft.world.level.block.state.BlockState;
1519
import net.minecraft.world.phys.BlockHitResult;
1620
import net.minecraftforge.common.capabilities.Capability;
1721
import net.minecraftforge.common.util.LazyOptional;
1822
import net.minecraftforge.network.NetworkHooks;
23+
import org.gtreimagined.gt4r.data.Machines;
1924
import org.jetbrains.annotations.NotNull;
2025
import org.jetbrains.annotations.Nullable;
2126

2227
public class BlockEntityReactorChamber extends BlockEntityMachine<BlockEntityReactorChamber> {
23-
BlockEntityReactorCore reactor;
28+
@Getter
29+
private BlockEntityReactorCore reactor;
30+
private Direction reactorSide;
2431

2532
public BlockEntityReactorChamber(Machine<?> type, BlockPos pos, BlockState state) {
2633
super(type, pos, state);
2734
}
2835

36+
@Override
37+
public void onFirstTickServer(Level level, BlockPos pos, BlockState state) {
38+
super.onFirstTickServer(level, pos, state);
39+
if (reactor == null) {
40+
for (var d : Direction.values()) {
41+
BlockEntity be = level.getBlockEntity(pos.relative(d));
42+
if (be instanceof BlockEntityReactorCore core){
43+
setReactor(core);
44+
reactorSide = d;
45+
break;
46+
}
47+
}
48+
}
49+
}
50+
51+
@Override
52+
public void onFirstTickClient(Level level, BlockPos pos, BlockState state) {
53+
super.onFirstTickClient(level, pos, state);
54+
if (reactor == null) {
55+
for (var d : Direction.values()) {
56+
BlockEntity be = level.getBlockEntity(pos.relative(d));
57+
if (be instanceof BlockEntityReactorCore core){
58+
reactor = core;
59+
reactorSide = d;
60+
break;
61+
}
62+
}
63+
}
64+
}
65+
2966
@Override
3067
public @NotNull <U> LazyOptional<U> getCapability(@NotNull Capability<U> cap, @Nullable Direction side) {
3168
if (reactor != null) {
@@ -49,5 +86,8 @@ public InteractionResult onInteractServer(BlockState state, Level world, BlockPo
4986

5087
public void setReactor(BlockEntityReactorCore reactor) {
5188
this.reactor = reactor;
89+
if (this.level != null && isServerSide()) {
90+
sidedSync(true);
91+
}
5292
}
5393
}

src/main/java/org/gtreimagined/gt4r/reactor/tile/BlockEntityReactorCore.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.minecraft.world.level.Explosion.BlockInteraction;
3232
import net.minecraft.world.level.Level;
3333
import net.minecraft.world.level.block.Blocks;
34+
import net.minecraft.world.level.block.entity.BlockEntity;
3435
import net.minecraft.world.level.block.state.BlockState;
3536
import net.minecraft.world.phys.AABB;
3637
import net.minecraftforge.fluids.FluidStack;
@@ -235,7 +236,7 @@ private void saveNbt(CompoundTag updateTag) {
235236
updateTag.putBoolean("isFluid", isFluid);
236237
}
237238

238-
public static int getAttachedChambers(Level worldIn, BlockPos pos) {
239+
public int getAttachedChambers(Level worldIn, BlockPos pos) {
239240
int chamberCount = 0;
240241

241242
for (var d : Direction.values()) {

0 commit comments

Comments
 (0)