Skip to content

Commit 41f957a

Browse files
authored
Fix changing bogey style not updating the block properly (#6273)
* Fix bogey block's placing the wrong block * Clean the code up a bit * Fix bitflag
1 parent 7d3d4a1 commit 41f957a

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

Diff for: src/main/java/com/simibubi/create/content/trains/bogey/AbstractBogeyBlock.java

+16-10
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,21 @@ public final InteractionResult use(BlockState state, Level level, BlockPos pos,
227227
sbbe.setBogeyData(sbbe.getBogeyData().merge(defaultData));
228228

229229
if (size == getSize()) {
230+
if (state.getBlock() != style.getBlockOfSize(size)) {
231+
CompoundTag oldData = sbbe.getBogeyData();
232+
level.setBlock(pos, copyProperties(state, getStateOfSize(sbbe, size)), Block.UPDATE_ALL);
233+
if (!(level.getBlockEntity(pos) instanceof AbstractBogeyBlockEntity bogeyBlockEntity))
234+
return InteractionResult.FAIL;
235+
bogeyBlockEntity.setBogeyData(oldData);
236+
}
230237
player.displayClientMessage(Lang.translateDirect("bogey.style.updated_style")
231238
.append(": ").append(style.displayName), true);
232239
} else {
233240
CompoundTag oldData = sbbe.getBogeyData();
234-
level.setBlock(pos, this.getStateOfSize(sbbe, size), 3);
235-
BlockEntity newBlockEntity = level.getBlockEntity(pos);
236-
if (!(newBlockEntity instanceof AbstractBogeyBlockEntity newBlockEntity1))
241+
level.setBlock(pos, this.getStateOfSize(sbbe, size), Block.UPDATE_ALL);
242+
if (!(level.getBlockEntity(pos) instanceof AbstractBogeyBlockEntity bogeyBlockEntity))
237243
return InteractionResult.FAIL;
238-
newBlockEntity1.setBogeyData(oldData);
244+
bogeyBlockEntity.setBogeyData(oldData);
239245
player.displayClientMessage(Lang.translateDirect("bogey.style.updated_style_and_size")
240246
.append(": ").append(style.displayName), true);
241247
}
@@ -312,18 +318,18 @@ private BlockState copyProperties(BlockState source, BlockState target) {
312318
return target;
313319
}
314320

315-
public BlockState getNextSize(AbstractBogeyBlockEntity sbte) {
321+
public BlockState getNextSize(AbstractBogeyBlockEntity sbbe) {
316322
BogeySizes.BogeySize size = this.getSize();
317-
BogeyStyle style = sbte.getStyle();
323+
BogeyStyle style = sbbe.getStyle();
318324
BlockState nextBlock = style.getNextBlock(size).defaultBlockState();
319-
nextBlock = copyProperties(sbte.getBlockState(), nextBlock);
325+
nextBlock = copyProperties(sbbe.getBlockState(), nextBlock);
320326
return nextBlock;
321327
}
322328

323-
public BlockState getStateOfSize(AbstractBogeyBlockEntity sbte, BogeySizes.BogeySize size) {
324-
BogeyStyle style = sbte.getStyle();
329+
public BlockState getStateOfSize(AbstractBogeyBlockEntity sbbe, BogeySizes.BogeySize size) {
330+
BogeyStyle style = sbbe.getStyle();
325331
BlockState state = style.getBlockOfSize(size).defaultBlockState();
326-
return copyProperties(sbte.getBlockState(), state);
332+
return copyProperties(sbbe.getBlockState(), state);
327333
}
328334

329335
public BogeyStyle getNextStyle(Level level, BlockPos pos) {

0 commit comments

Comments
 (0)