Skip to content

Commit 3b81d45

Browse files
committed
Get screen opening yay \0/
[no ci]
1 parent b9cb96e commit 3b81d45

File tree

4 files changed

+73
-10
lines changed

4 files changed

+73
-10
lines changed

forge-main/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,9 @@ dependencies {
180180
}
181181

182182
// Gander
183-
compileOnly(compactmods.bundles.gander)
184-
additionalRuntimeClasspath(compactmods.bundles.gander)
183+
modImplementation(compactmods.bundles.gander)
184+
accessTransformers(compactmods.ganderRendering)
185+
// additionalRuntimeClasspath(compactmods.bundles.gander)
185186
jarJar(compactmods.bundles.gander)
186187

187188
// JEI

forge-main/src/main/java/dev/compactmods/machines/room/client/MachineRoomScreen.java

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package dev.compactmods.machines.room.client;
22

3+
import com.mojang.blaze3d.platform.InputConstants;
4+
import dev.compactmods.gander.level.VirtualLevel;
35
import dev.compactmods.gander.render.baked.BakedLevel;
46
import dev.compactmods.gander.ui.widget.SpatialRenderer;
57
import dev.compactmods.machines.client.gui.widget.PSDIconButton;
6-
import dev.compactmods.machines.room.network.RoomNetworkHandler;
78
import dev.compactmods.machines.shrinking.Shrinking;
89
import net.minecraft.client.gui.GuiGraphics;
910
import net.minecraft.client.gui.screens.Screen;
1011
import net.minecraft.core.GlobalPos;
1112
import net.minecraft.network.chat.Component;
12-
import net.minecraft.world.entity.player.Inventory;
1313
import net.minecraft.world.item.ItemStack;
1414
import net.minecraft.world.level.ChunkPos;
1515

@@ -62,7 +62,15 @@ private boolean hasPsdItem() {
6262
@Override
6363
public void tick() {
6464
super.tick();
65-
psdButton.setEnabled(minecraft.player.isCreative() || hasPsdItem());
65+
66+
if (this.scene != null) {
67+
var level = ((VirtualLevel) scene.originalLevel().get());
68+
level.tick(minecraft.getPartialTick());
69+
level.animateTick();
70+
}
71+
72+
if(psdButton != null)
73+
psdButton.setEnabled(minecraft.player.isCreative() || hasPsdItem());
6674
}
6775

6876
@Override
@@ -75,7 +83,55 @@ public boolean mouseDragged(double mx, double my, int mButton, double dx, double
7583
return true;
7684
}
7785

78-
// @Override
86+
@Override
87+
public boolean mouseScrolled(double p_94686_, double p_94687_, double p_94688_) {
88+
this.renderer.zoom(p_94688_);
89+
return super.mouseScrolled(p_94686_, p_94687_, p_94688_);
90+
}
91+
92+
@Override
93+
public boolean keyPressed(int code, int scanCode, int modifiers) {
94+
final float rotateSpeed = 1 / 12f;
95+
96+
// if (code == InputConstants.KEY_A) {
97+
// this.autoRotate = !autoRotate;
98+
// return true;
99+
// }
100+
101+
if (code == InputConstants.KEY_R) {
102+
renderer.camera().resetLook();
103+
this.renderer.recalculateTranslucency();
104+
return true;
105+
}
106+
107+
if (code == InputConstants.KEY_UP) {
108+
renderer.camera().lookUp(rotateSpeed);
109+
this.renderer.recalculateTranslucency();
110+
return true;
111+
}
112+
113+
if (code == InputConstants.KEY_DOWN) {
114+
renderer.camera().lookDown(rotateSpeed);
115+
this.renderer.recalculateTranslucency();
116+
return true;
117+
}
118+
119+
if (code == InputConstants.KEY_LEFT) {
120+
renderer.camera().lookLeft(rotateSpeed);
121+
this.renderer.recalculateTranslucency();
122+
return true;
123+
}
124+
125+
if (code == InputConstants.KEY_RIGHT) {
126+
renderer.camera().lookRight(rotateSpeed);
127+
this.renderer.recalculateTranslucency();
128+
return true;
129+
}
130+
131+
return super.keyPressed(code, scanCode, modifiers);
132+
}
133+
134+
// @Override
79135
// protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) {
80136
// PoseStack pose = graphics.pose();
81137
// pose.pushPose();

forge-main/src/main/java/dev/compactmods/machines/room/network/OpenMachinePreviewScreenPacket.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dev.compactmods.machines.CompactMachines;
44
import dev.compactmods.machines.room.network.client.ClientRoomNetworkHandler;
5+
import java.util.function.Supplier;
56
import net.minecraft.core.registries.BuiltInRegistries;
67
import net.minecraft.nbt.CompoundTag;
78
import net.minecraft.nbt.NbtAccounter;
@@ -10,8 +11,6 @@
1011
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
1112
import net.minecraftforge.network.NetworkEvent;
1213

13-
import java.util.function.Supplier;
14-
1514
public record OpenMachinePreviewScreenPacket(ChunkPos roomChunk, StructureTemplate internalBlocks) {
1615
public void toNetwork(FriendlyByteBuf friendlyByteBuf) {
1716
friendlyByteBuf.writeChunkPos(roomChunk);
@@ -30,8 +29,12 @@ public static OpenMachinePreviewScreenPacket fromNetwork(FriendlyByteBuf friendl
3029

3130
public static boolean handle(OpenMachinePreviewScreenPacket pkt, Supplier<NetworkEvent.Context> context) {
3231
//context.get().enqueueWork(() -> {
33-
CompactMachines.LOGGER.debug("Opening machine preview screen: {}", pkt.roomChunk);
34-
ClientRoomNetworkHandler.openRoomPreviewScreen(pkt);
32+
try {
33+
CompactMachines.LOGGER.debug("Opening machine preview screen: {}", pkt.roomChunk);
34+
ClientRoomNetworkHandler.openRoomPreviewScreen(pkt);
35+
} catch (Throwable t) {
36+
t.printStackTrace();
37+
}
3538
// });
3639

3740
return true;

forge-main/src/main/java/dev/compactmods/machines/room/network/client/ClientRoomNetworkHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import dev.compactmods.machines.room.network.OpenMachinePreviewScreenPacket;
77
import net.minecraft.client.Minecraft;
88
import net.minecraft.core.BlockPos;
9+
import net.minecraft.core.GlobalPos;
10+
import net.minecraft.network.chat.Component;
911
import net.minecraft.util.RandomSource;
1012
import net.minecraft.world.level.block.Block;
1113
import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings;
@@ -14,6 +16,7 @@
1416
public class ClientRoomNetworkHandler {
1517
public static void openRoomPreviewScreen(OpenMachinePreviewScreenPacket pkt) {
1618
final var mc = Minecraft.getInstance();
19+
mc.setScreen(new MachineRoomScreen(Component.empty(), GlobalPos.of(mc.level.dimension(), BlockPos.ZERO), pkt.roomChunk()));
1720
if(mc.screen instanceof MachineRoomScreen mrs) {
1821
var virtualLevel = new VirtualLevel(Minecraft.getInstance().level.registryAccess());
1922
var bounds = pkt.internalBlocks().getBoundingBox(new StructurePlaceSettings(), BlockPos.ZERO);

0 commit comments

Comments
 (0)