mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 06:44:40 +01:00
Reflecting on my choices
- Fixed wrench radial menu duping and gui depth - Fixed contraptions with legacy data not sending update tags
This commit is contained in:
parent
a268ced35a
commit
0c21da9899
4 changed files with 13 additions and 4 deletions
|
@ -9,6 +9,7 @@ import com.simibubi.create.infrastructure.config.AllConfigs;
|
|||
|
||||
import dev.ftb.mods.ftbchunks.client.gui.LargeMapScreen;
|
||||
import dev.ftb.mods.ftbchunks.client.gui.RegionMapPanel;
|
||||
import dev.ftb.mods.ftblibrary.ui.BaseScreen;
|
||||
import dev.ftb.mods.ftblibrary.ui.ScreenWrapper;
|
||||
import dev.ftb.mods.ftblibrary.ui.Widget;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -152,7 +153,7 @@ public class FTBChunksTrainMap {
|
|||
private static LargeMapScreen getAsLargeMapScreen(Screen screen) {
|
||||
if (!(screen instanceof ScreenWrapper screenWrapper))
|
||||
return null;
|
||||
Object wrapped = ObfuscationReflectionHelper.getPrivateValue(ScreenWrapper.class, screenWrapper, "wrappedGui");
|
||||
BaseScreen wrapped = screenWrapper.getGui();
|
||||
if (!(wrapped instanceof LargeMapScreen largeMapScreen))
|
||||
return null;
|
||||
return largeMapScreen;
|
||||
|
|
|
@ -905,6 +905,10 @@ public abstract class Contraption {
|
|||
if (updateTag != null) {
|
||||
c.put("Data", updateTag);
|
||||
}
|
||||
// legacy: use full data if update tag is not available
|
||||
if (updateTag == null && block.nbt() != null) {
|
||||
c.put("Data", block.nbt());
|
||||
}
|
||||
} else {
|
||||
// otherwise, write actual data as the data, save updateTag on its own
|
||||
if (block.nbt() != null) {
|
||||
|
|
|
@ -173,7 +173,8 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
|
|||
@Override
|
||||
public void tick() {
|
||||
ticksOpen++;
|
||||
|
||||
if (!level.getBlockState(pos).is(state.getBlock()))
|
||||
Minecraft.getInstance().setScreen(null);
|
||||
super.tick();
|
||||
}
|
||||
|
||||
|
@ -184,8 +185,6 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
|
|||
|
||||
PoseStack ms = graphics.pose();
|
||||
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
|
||||
ms.pushPose();
|
||||
ms.translate(x, y, 0);
|
||||
|
||||
|
@ -271,6 +270,8 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
|
|||
.translateY(-(sectorWidth / 2f + innerRadius))
|
||||
.rotateZDegrees(-i * sectorAngle);
|
||||
|
||||
poseStack.translate(0, 0, 100);
|
||||
|
||||
try {
|
||||
GuiGameElement.of(blockState, blockEntity)
|
||||
.rotateBlock(player.getXRot(), player.getYRot() + 180, 0f)
|
||||
|
|
|
@ -40,6 +40,9 @@ public class RadialWrenchMenuSubmitPacket extends SimplePacketBase {
|
|||
ServerPlayer player = context.getSender();
|
||||
Level level = player.level();
|
||||
|
||||
if (!level.getBlockState(blockPos).is(newState.getBlock()))
|
||||
return;
|
||||
|
||||
BlockState updatedState = Block.updateFromNeighbourShapes(newState, level, blockPos);
|
||||
KineticBlockEntity.switchToBlockState(level, blockPos, updatedState);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue