Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/origin/Multiloader-1.20.4' into…
Browse files Browse the repository at this point in the history
… Multiloader-1.20
  • Loading branch information
fayer3 committed Feb 19, 2025
2 parents 9367e66 + fff283a commit 6981943
Show file tree
Hide file tree
Showing 87 changed files with 779 additions and 385 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ public RotInfo getRotationsForPlayer(UUID uuid) {
float partialTick = ClientUtils.getCurrentPartialTick();

if (VRState.VR_RUNNING && this.mc.player != null && uuid.equals(this.mc.player.getUUID()) &&
this.mc.getCameraEntity() == this.mc.player &&
ClientDataHolderVR.getInstance().vrSettings.mainPlayerDataSource == VRSettings.DataSource.REALTIME)
{
return getMainPlayerRotInfo(this.mc.player, partialTick);
Expand Down
3 changes: 3 additions & 0 deletions common/src/main/java/org/vivecraft/client/VivecraftVRMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ public class VivecraftVRMod {
"key.categories.ui");
public final KeyMapping keyToggleMovement = new KeyMapping("vivecraft.key.toggleMovement", -1,
"key.categories.movement");
public final KeyMapping keyToggleWalkUpBlocks = new KeyMapping("vivecraft.key.toggleWalkUp", -1,
"key.categories.movement");
public final KeyMapping keyTogglePlayerList = new KeyMapping("vivecraft.key.togglePlayerList", -1,
"key.categories.multiplayer");
public final HandedKeyBinding keyTrackpadTouch = new HandedKeyBinding("vivecraft.key.trackpadTouch", -1,
Expand Down Expand Up @@ -148,6 +150,7 @@ private void setupKeybindingSets() {
this.userKeyBindingSet.add(this.keyQuickCommand10);
this.userKeyBindingSet.add(this.keyQuickCommand11);
this.userKeyBindingSet.add(this.keyQuickCommand12);
this.userKeyBindingSet.add(this.keyToggleWalkUpBlocks);

this.hiddenKeyBindingSet.add(GuiHandler.KEY_LEFT_CLICK);
this.hiddenKeyBindingSet.add(GuiHandler.KEY_RIGHT_CLICK);
Expand Down
2 changes: 1 addition & 1 deletion common/src/main/java/org/vivecraft/client/Xplat.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.Packet;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeSpecialEffects;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.vivecraft.client.gui.screens;

import net.minecraft.client.gui.screens.Screen;

public interface ChangeableParentScreen {
void setParent(Screen parent);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,32 @@
import net.minecraft.network.chat.Component;
import org.jetbrains.annotations.NotNull;
import org.vivecraft.client.gui.widgets.TextScrollWidget;
import org.vivecraft.client_vr.ClientDataHolderVR;

public class ErrorScreen extends Screen {
public class ErrorScreen extends Screen implements ChangeableParentScreen {

private final Screen lastScreen;
private final Component error;
private Screen lastScreen;

public ErrorScreen(Component title, Component error) {
super(title);
this.lastScreen = Minecraft.getInstance().screen;
this.error = error;
}

@Override
public void setParent(Screen parent) {
this.lastScreen = parent;
}

@Override
protected void init() {

this.addRenderableWidget(
new TextScrollWidget(this.width / 2 - 155, 30, 310, this.height - 30 - 36, this.error));

this.addRenderableWidget(new Button.Builder(Component.translatable("gui.back"), (p) ->
Minecraft.getInstance().setScreen(this.lastScreen))
onClose())
.pos(this.width / 2 + 5, this.height - 32)
.size(150, 20)
.build());
Expand All @@ -44,4 +50,10 @@ public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, flo
super.render(guiGraphics, mouseX, mouseY, partialTick);
guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 15, 0xFFFFFF);
}

@Override
public void onClose() {
ClientDataHolderVR.getInstance().cachedScreen = null;
this.minecraft.setScreen(this.lastScreen);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,24 @@
import org.vivecraft.client_vr.ClientDataHolderVR;


public class GarbageCollectorScreen extends Screen {
public class GarbageCollectorScreen extends Screen implements ChangeableParentScreen {

private static final String GUIDE_URL = "https://github.com/Vivecraft/VivecraftMod/wiki/Memory-and-GC-Setup";

private final Screen lastScreen;
private final String currentGarbageCollector;
private Screen lastScreen;

public GarbageCollectorScreen(String currentGarbageCollector) {
super(Component.translatable("vivecraft.messages.gctitle"));
this.lastScreen = Minecraft.getInstance().screen;
this.currentGarbageCollector = currentGarbageCollector;
}

@Override
public void setParent(Screen parent) {
this.lastScreen = parent;
}

@Override
protected void init() {
Component message = Component.translatable("vivecraft.messages.gcinfo",
Expand All @@ -49,7 +54,7 @@ protected void init() {
this.addRenderableWidget(new Button.Builder(Component.translatable("vivecraft.gui.dontshowagain"), (p) -> {
ClientDataHolderVR.getInstance().vrSettings.disableGarbageCollectorMessage = true;
ClientDataHolderVR.getInstance().vrSettings.saveOptions();
Minecraft.getInstance().setScreen(this.lastScreen);
onClose();
})
.pos(this.width / 2 - 155, this.height - 56)
.size(150, 20)
Expand Down Expand Up @@ -77,7 +82,7 @@ public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, flo

@Override
public void onClose() {
ClientDataHolderVR.getInstance().incorrectGarbageCollector = "";
ClientDataHolderVR.getInstance().cachedScreen = null;
this.minecraft.setScreen(this.lastScreen);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ public class GuiSeatedOptions extends GuiVROptionsBase {
new VROptionEntry(VRSettings.VrOptions.VEHICLE_ROTATION),
new VROptionEntry(VRSettings.VrOptions.REVERSE_HANDS),
new VROptionEntry(VRSettings.VrOptions.SEATED_FREE_MOVE, true),
new VROptionEntry(VRSettings.VrOptions.RIGHT_CLICK_DELAY, false),
new VROptionEntry("vivecraft.options.screen.teleport.button", (button, mousePos) -> {
this.minecraft.setScreen(new GuiTeleportSettings(this));
return true;
}),
new VROptionEntry(VRSettings.VrOptions.RIGHT_CLICK_DELAY),
new VROptionEntry(VRSettings.VrOptions.AIM_DEVICE),
new VROptionEntry("vivecraft.options.screen.freemove.button", (button, mousePos) -> {
this.minecraft.setScreen(new GuiFreeMoveSettings(this));
return true;
}),
new VROptionEntry("vivecraft.options.screen.teleport.button", (button, mousePos) -> {
this.minecraft.setScreen(new GuiTeleportSettings(this));
return true;
})
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ public class GuiVRControls extends GuiVROptionsBase {
new VROptionEntry(VRSettings.VrOptions.INGAME_BINDINGS_IN_GUI),
new VROptionEntry(VRSettings.VrOptions.ALLOW_ADVANCED_BINDINGS),
new VROptionEntry(VRSettings.VrOptions.RIGHT_CLICK_DELAY),
new VROptionEntry(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS_CUSTOM),
new VROptionEntry(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS)
new VROptionEntry(VRSettings.VrOptions.AIM_DEVICE),
new VROptionEntry(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS),
new VROptionEntry(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS_CUSTOM)
};

public GuiVRControls(Screen lastScreen) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import org.vivecraft.client_vr.settings.VRSettings;
import org.vivecraft.common.CommonDataHolder;
import org.vivecraft.common.VRServerPerms;
import org.vivecraft.common.network.CommonNetworkHelper;
import org.vivecraft.common.network.BodyPart;
import org.vivecraft.common.network.CommonNetworkHelper;
import org.vivecraft.common.network.VrPlayerState;
import org.vivecraft.common.network.packet.c2s.*;
import org.vivecraft.common.network.packet.s2c.*;
Expand Down Expand Up @@ -91,7 +91,9 @@ public static void sendVersionInfo() {
}

public static void sendVRPlayerPositions(VRPlayer vrPlayer) {
if (!SERVER_WANTS_DATA || Minecraft.getInstance().getConnection() == null) {
if (!SERVER_WANTS_DATA || Minecraft.getInstance().getConnection() == null ||
Minecraft.getInstance().getCameraEntity() != Minecraft.getInstance().player)
{
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private static void fileDownloadFinished(String url, String data, boolean addDat
}

public static void addPlayerInfo(Player p) {
if (!DOWNLOAD_FAILED) {
if (!DOWNLOAD_FAILED && p.getGameProfile().getName() != null) {
synchronized (LOCK) {
if (CACHE == null) {
QUEUED_PLAYERS.add(p);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.PlayerModel;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
Expand All @@ -23,9 +22,9 @@
import org.vivecraft.client.utils.ClientUtils;
import org.vivecraft.client.utils.ModelUtils;
import org.vivecraft.client_vr.ClientDataHolderVR;
import org.vivecraft.client_vr.VRState;
import org.vivecraft.client_vr.gameplay.screenhandlers.GuiHandler;
import org.vivecraft.client_vr.render.RenderPass;
import org.vivecraft.client_vr.render.helpers.VREffectsHelper;
import org.vivecraft.client_vr.settings.VRSettings;
import org.vivecraft.common.network.FBTMode;
import org.vivecraft.common.utils.MathUtils;
Expand Down Expand Up @@ -100,7 +99,7 @@ public static void animateVRModel(
}

float partialTick = ClientUtils.getCurrentPartialTick();
boolean isMainPlayer = VRState.VR_RUNNING && player == Minecraft.getInstance().player;
boolean isMainPlayer = VREffectsHelper.isFirstPersonPlayer(player);

HumanoidArm mainArm = rotInfo.leftHanded ? HumanoidArm.LEFT : HumanoidArm.RIGHT;
HumanoidArm attackArm = null;
Expand Down Expand Up @@ -132,6 +131,8 @@ public static void animateVRModel(
float armScale = 1F;
float legScale = 1F;

// this check is similar to VREffectsHelper#isFirstPersonEntityPass,
// but does different stuff for shaders shadow pass
if (isMainPlayer && ClientDataHolderVR.getInstance().vrSettings.shouldRenderSelf &&
!(ImmersivePortalsHelper.isLoaded() && ImmersivePortalsHelper.isRenderingPortal()) &&
(!ShadersHelper.isRenderingShadows() &&
Expand Down Expand Up @@ -198,7 +199,8 @@ public static void animateVRModel(
} else if (noLowerBodyAnimation) {
// with only arms simply rotate the body in place
model.body.setRotation(
Mth.PI * Math.max(0F, model.body.y / 22F) * (model instanceof VRPlayerModel_WithArmsLegs ? 0.5F : 1F), 0F, 0F);
Mth.PI * Math.max(0F, model.body.y / 22F) * (model instanceof VRPlayerModel_WithArmsLegs ? 0.5F : 1F),
0F, 0F);
if (laying) {
float bodyXRot;
if (swimming) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@
import org.vivecraft.client_vr.ClientDataHolderVR;
import org.vivecraft.client_vr.VRState;
import org.vivecraft.client_vr.render.RenderPass;
import org.vivecraft.client_vr.render.helpers.VREffectsHelper;
import org.vivecraft.client_vr.settings.VRSettings;
import org.vivecraft.mod_compat_vr.immersiveportals.ImmersivePortalsHelper;
import org.vivecraft.mod_compat_vr.shaders.ShadersHelper;

public class VRPlayerRenderer extends PlayerRenderer {
// Vanilla model
Expand Down Expand Up @@ -147,7 +146,7 @@ public void render(
public Vec3 getRenderOffset(AbstractClientPlayer player, float partialTick) {
// idk why we do this anymore
// this changes the offset to only apply when swimming, instead of crouching
if (VRState.VR_RUNNING && player == Minecraft.getInstance().player) {
if (VREffectsHelper.isFirstPersonPlayer(player)) {
return player.isVisuallySwimming() ?
new Vec3(0.0F, -0.125F * ClientDataHolderVR.getInstance().vrPlayer.worldScale, 0.0F) : Vec3.ZERO;
} else {
Expand All @@ -162,41 +161,37 @@ public void setModelProperties(AbstractClientPlayer player) {
// no crouch hip movement when roomscale crawling
this.getModel().crouching &= !player.isVisuallySwimming();

if (player == Minecraft.getInstance().player &&
ClientDataHolderVR.getInstance().currentPass == RenderPass.CAMERA &&
ClientDataHolderVR.getInstance().cameraTracker.isQuickMode() &&
ClientDataHolderVR.getInstance().grabScreenShot)
{
// player hands block the camera, so disable them for the screenshot
hideHand(HumanoidArm.LEFT, true);
hideHand(HumanoidArm.RIGHT, true);
}
if (player == Minecraft.getInstance().player &&
ClientDataHolderVR.getInstance().vrSettings.shouldRenderSelf &&
!ShadersHelper.isRenderingShadows() &&
!(ImmersivePortalsHelper.isLoaded() && ImmersivePortalsHelper.isRenderingPortal()) &&
RenderPass.isFirstPerson(ClientDataHolderVR.getInstance().currentPass))
{
// hide the head or you won't see anything
this.getModel().head.visible = false;
this.getModel().hat.visible = false;

// hide model arms when not using them
if (ClientDataHolderVR.getInstance().vrSettings.modelArmsMode !=
VRSettings.ModelArmsMode.COMPLETE)
if (VREffectsHelper.isFirstPersonPlayer(player)) {
if (ClientDataHolderVR.getInstance().currentPass == RenderPass.CAMERA &&
ClientDataHolderVR.getInstance().cameraTracker.isQuickMode() &&
ClientDataHolderVR.getInstance().grabScreenShot)
{
// keep the shoulders when in shoulder mode
hideHand(HumanoidArm.LEFT, ClientDataHolderVR.getInstance().vrSettings.modelArmsMode ==
VRSettings.ModelArmsMode.OFF);
hideHand(HumanoidArm.RIGHT, ClientDataHolderVR.getInstance().vrSettings.modelArmsMode ==
VRSettings.ModelArmsMode.OFF);
} else {
boolean leftHanded = ClientDataHolderVR.getInstance().vrSettings.reverseHands;
if (ClientDataHolderVR.getInstance().menuHandOff) {
hideHand(leftHanded ? HumanoidArm.RIGHT : HumanoidArm.LEFT, false);
}
if (ClientDataHolderVR.getInstance().menuHandMain) {
hideHand(leftHanded ? HumanoidArm.LEFT : HumanoidArm.RIGHT, false);
// player hands block the camera, so disable them for the screenshot
hideHand(HumanoidArm.LEFT, true);
hideHand(HumanoidArm.RIGHT, true);
}
if (VREffectsHelper.isFirstPersonEntityPass()) {
// hide the head or you won't see anything
this.getModel().head.visible = false;
this.getModel().hat.visible = false;

// hide model arms when not using them
if (ClientDataHolderVR.getInstance().vrSettings.modelArmsMode !=
VRSettings.ModelArmsMode.COMPLETE)
{
// keep the shoulders when in shoulder mode
hideHand(HumanoidArm.LEFT, ClientDataHolderVR.getInstance().vrSettings.modelArmsMode ==
VRSettings.ModelArmsMode.OFF);
hideHand(HumanoidArm.RIGHT, ClientDataHolderVR.getInstance().vrSettings.modelArmsMode ==
VRSettings.ModelArmsMode.OFF);
} else {
boolean leftHanded = ClientDataHolderVR.getInstance().vrSettings.reverseHands;
if (ClientDataHolderVR.getInstance().menuHandOff) {
hideHand(leftHanded ? HumanoidArm.RIGHT : HumanoidArm.LEFT, false);
}
if (ClientDataHolderVR.getInstance().menuHandMain) {
hideHand(leftHanded ? HumanoidArm.LEFT : HumanoidArm.RIGHT, false);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.vivecraft.client_vr;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.world.entity.HumanoidArm;
import org.vivecraft.client_vr.gameplay.VRPlayer;
Expand Down Expand Up @@ -65,7 +66,7 @@ public class ClientDataHolderVR {

public VRSettings vrSettings;
public boolean grabScreenShot = false;
public String incorrectGarbageCollector = "";
public Screen cachedScreen = null;
public long frameIndex = 0L;

public RenderPass currentPass;
Expand Down
Loading

0 comments on commit 6981943

Please sign in to comment.