Skip to content

Commit b2efc96

Browse files
author
The Judge
committed
Merge remote-tracking branch 'refs/remotes/vivecraft/Multiloader-1.20.5' into 1.20.6
2 parents 63f716e + 5750107 commit b2efc96

10 files changed

Lines changed: 63 additions & 52 deletions

File tree

common/src/main/java/org/vivecraft/client/render/VRPlayerModel_WithArms.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@
1717
import net.minecraft.world.entity.LivingEntity;
1818
import net.minecraft.world.phys.Vec3;
1919
import org.vivecraft.client.VRPlayersClient;
20-
import org.vivecraft.client.Xplat;
20+
import org.vivecraft.client_vr.utils.ScaleHelper;
2121
import org.vivecraft.mod_compat_vr.optifine.OptifineHelper;
22-
import org.vivecraft.mod_compat_vr.pehkui.PehkuiHelper;
2322
import org.vivecraft.mod_compat_vr.sodium.SodiumHelper;
2423

2524
public class VRPlayerModel_WithArms<T extends LivingEntity> extends VRPlayerModel<T> {
@@ -157,13 +156,11 @@ public void setupAnim(T pEntity, float pLimbSwing, float pLimbSwingAmount, float
157156
this.leftShoulder.y += 3.2F;
158157
}
159158

160-
Vec3 vec3 = rotinfo.leftArmPos;
161-
Vec3 vec32 = rotinfo.rightArmPos;
162-
if (Xplat.isModLoaded("pehkui")) {
163-
// remove pehkui scale from that, since the whole entity is scaled
164-
vec3 = vec3.scale(1.0F / PehkuiHelper.getPlayerScale(pEntity, Minecraft.getInstance().getFrameTime()));
165-
vec32 = vec32.scale(1.0F / PehkuiHelper.getPlayerScale(pEntity, Minecraft.getInstance().getFrameTime()));
166-
}
159+
// remove entity scale from that
160+
float scale = 1.0F / ScaleHelper.getEntityScale(pEntity, Minecraft.getInstance().getFrameTime());
161+
Vec3 vec3 = rotinfo.leftArmPos.scale(scale);
162+
Vec3 vec32 = rotinfo.rightArmPos.scale(scale);
163+
167164
vec3 = vec3.add(0.0D, d0, 0.0D);
168165
vec3 = vec3.yRot((float) (-Math.PI + d1));
169166
vec3 = vec3.scale(16.0F / rotinfo.heightScale);

common/src/main/java/org/vivecraft/client_vr/gameplay/VRPlayer.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import net.minecraft.world.phys.HitResult;
2424
import net.minecraft.world.phys.Vec3;
2525
import org.vivecraft.client.VivecraftVRMod;
26-
import org.vivecraft.client.Xplat;
2726
import org.vivecraft.client.network.ClientNetworking;
27+
import org.vivecraft.client_vr.utils.ScaleHelper;
2828
import org.vivecraft.client_vr.ClientDataHolderVR;
2929
import org.vivecraft.client_vr.ItemTags;
3030
import org.vivecraft.client_vr.MethodHolder;
@@ -39,7 +39,6 @@
3939
import org.vivecraft.client_vr.render.RenderPass;
4040
import org.vivecraft.client_vr.settings.VRSettings;
4141
import org.vivecraft.common.VRServerPerms;
42-
import org.vivecraft.mod_compat_vr.pehkui.PehkuiHelper;
4342

4443
import java.util.ArrayList;
4544
import java.util.Random;
@@ -147,16 +146,14 @@ public void preTick() {
147146

148147
this.worldScale = rawWorldScale;
149148

150-
if (Xplat.isModLoaded("pehkui")) {
151-
// scale world with player size
152-
this.worldScale *= PehkuiHelper.getPlayerScale(mc.player, mc.getFrameTime());
153-
// limit scale
154-
if (this.worldScale > 100F) {
155-
this.worldScale = 100F;
156-
} else if (this.worldScale < 0.025F) //minClip + player position indicator offset
157-
{
158-
this.worldScale = 0.025F;
159-
}
149+
// scale world with player size
150+
this.worldScale *= ScaleHelper.getEntityScale(mc.player, mc.getFrameTime());
151+
// limit scale
152+
if (this.worldScale > 100F) {
153+
this.worldScale = 100F;
154+
} else if (this.worldScale < 0.025F) //minClip + player position indicator offset
155+
{
156+
this.worldScale = 0.025F;
160157
}
161158

162159
// check that nobody tries to bypass the server set worldscale limit it with a runtime worldscale

common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/BowTracker.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import net.minecraft.world.item.UseAnim;
1313
import net.minecraft.world.phys.Vec3;
1414
import org.vivecraft.client.VivecraftVRMod;
15-
import org.vivecraft.client.Xplat;
1615
import org.vivecraft.client.network.ClientNetworking;
16+
import org.vivecraft.client_vr.utils.ScaleHelper;
1717
import org.vivecraft.client_vr.ClientDataHolderVR;
1818
import org.vivecraft.client_vr.VRData;
1919
import org.vivecraft.client_vr.extensions.PlayerExtension;
@@ -22,7 +22,6 @@
2222
import org.vivecraft.client_vr.settings.VRSettings;
2323
import org.vivecraft.common.network.CommonNetworkHelper;
2424
import org.vivecraft.common.utils.math.Vector3;
25-
import org.vivecraft.mod_compat_vr.pehkui.PehkuiHelper;
2625

2726
import java.nio.ByteBuffer;
2827

@@ -126,12 +125,9 @@ public void doProcess(LocalPlayer player) {
126125
this.lastpressed = this.pressed;
127126
this.lastDraw = this.currentDraw;
128127
this.lastcanDraw = this.canDraw;
129-
this.maxDraw = (double) this.mc.player.getBbHeight() * 0.22D;
130128

131-
if (Xplat.isModLoaded("pehkui")) {
132-
// this is meant to be relative to the base Bb height, not the scaled one
133-
this.maxDraw /= PehkuiHelper.getPlayerBbScale(player, mc.getFrameTime());
134-
}
129+
// this is meant to be relative to the base Bb height, not the scaled one
130+
this.maxDraw = (double) this.mc.player.getBbHeight() * 0.22D / ScaleHelper.getEntityBbScale(player, mc.getFrameTime());
135131

136132
Vec3 vec3 = vrdata.getController(0).getPosition();
137133
Vec3 vec31 = vrdata.getController(1).getPosition();

common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/CrawlTracker.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@
44
import net.minecraft.client.player.LocalPlayer;
55
import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket;
66
import net.minecraft.world.entity.Pose;
7-
import org.vivecraft.client.Xplat;
87
import org.vivecraft.client.network.ClientNetworking;
8+
import org.vivecraft.client_vr.utils.ScaleHelper;
99
import org.vivecraft.client_vr.ClientDataHolderVR;
1010
import org.vivecraft.common.network.CommonNetworkHelper;
11-
import org.vivecraft.mod_compat_vr.pehkui.PehkuiHelper;
1211

1312
public class CrawlTracker extends Tracker {
1413
private boolean wasCrawling;
@@ -44,10 +43,7 @@ public void reset(LocalPlayer player) {
4443
}
4544

4645
public void doProcess(LocalPlayer player) {
47-
double scaleMultiplier = 1.0;
48-
if (Xplat.isModLoaded("pehkui")) {
49-
scaleMultiplier /= PehkuiHelper.getPlayerScale(player, mc.getFrameTime());
50-
}
46+
float scaleMultiplier = 1.0F / ScaleHelper.getEntityScale(player, mc.getFrameTime());
5147
this.crawling = this.dh.vr.hmdPivotHistory.averagePosition(0.2F).y * (double) this.dh.vrPlayer.worldScale * scaleMultiplier + (double) 0.1F < (double) this.dh.vrSettings.crawlThreshold;
5248
this.updateState(player);
5349
}

common/src/main/java/org/vivecraft/client_vr/render/VivecraftItemRendering.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,12 @@ public static void applyFirstPersonItemTransforms(PoseStack pMatrixStack, Vivecr
344344
translateY = 0.0D;
345345
translateX = 0.0D;
346346
} else if (rendertype == VivecraftItemTransformType.Mace) {
347-
translateX = 0.00D;
348-
translateY = 0.02D;
349-
translateZ = -0.07D;
347+
preRotation = Axis.XP.rotationDegrees((float) gunAngle);
348+
translateX = 0.0D;
349+
translateY = 0.0125;
350+
translateZ = -0.06;
351+
rotation = rotation.mul(Axis.XP.rotationDegrees((float) -gunAngle));
352+
scale = 0.56F;
350353
}
351354
}
352355
} else {

common/src/main/java/org/vivecraft/client_vr/render/helpers/VREffectsHelper.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,9 +892,16 @@ public static void renderFaceOverlay(float partialTicks) {
892892
if (((GameRendererExtension) mc.gameRenderer).vivecraft$isInBlock() > 0.0F) {
893893
renderFaceInBlock();
894894

895+
RenderSystem.getModelViewStack().pushMatrix().identity();
896+
RenderHelper.applyVRModelView(dataHolder.currentPass, RenderSystem.getModelViewStack());
897+
RenderSystem.applyModelViewMatrix();
898+
895899
renderGuiAndShadow(partialTicks, true, true);
896900

897901
VRArmHelper.renderVRHands(partialTicks, true, true, true, true);
902+
903+
RenderSystem.getModelViewStack().popMatrix();
904+
RenderSystem.applyModelViewMatrix();
898905
}
899906
}
900907

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.vivecraft.client_vr.utils;
2+
3+
import net.minecraft.world.entity.LivingEntity;
4+
import org.vivecraft.client.Xplat;
5+
import org.vivecraft.mod_compat_vr.pehkui.PehkuiHelper;
6+
7+
public class ScaleHelper {
8+
9+
public static float getEntityScale(LivingEntity livingEntity, float tickDelta) {
10+
float scale = livingEntity.getScale();
11+
if (Xplat.isModLoaded("pehkui")) {
12+
scale *= PehkuiHelper.getEntityScale(livingEntity, tickDelta);
13+
}
14+
return scale;
15+
}
16+
17+
public static float getEntityBbScale(LivingEntity livingEntity, float tickDelta) {
18+
float scale = livingEntity.getScale();
19+
if (Xplat.isModLoaded("pehkui")) {
20+
scale *= PehkuiHelper.getEntityBbScale(livingEntity, tickDelta);
21+
}
22+
return scale;
23+
}
24+
}

common/src/main/java/org/vivecraft/mixin/client_vr/particle/ItemPickupParticleVRMixin.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
import org.spongepowered.asm.mixin.Unique;
1212
import org.spongepowered.asm.mixin.injection.At;
1313
import org.spongepowered.asm.mixin.injection.Redirect;
14-
import org.vivecraft.client.Xplat;
1514
import org.vivecraft.client_vr.VRState;
1615
import org.vivecraft.client_vr.render.helpers.RenderHelper;
17-
import org.vivecraft.mod_compat_vr.pehkui.PehkuiHelper;
1816

1917
@Mixin(ItemPickupParticle.class)
2018
public class ItemPickupParticleVRMixin {
@@ -45,14 +43,7 @@ public class ItemPickupParticleVRMixin {
4543
@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;lerp(DDD)D", ordinal = 1), method = "render")
4644
public double vivecraft$updateY(double d, double e, double f) {
4745
if (VRState.vrRunning && target == vivecraft$mc.player) {
48-
float offset = 0.5F;
49-
if (Xplat.isModLoaded("pehkui")) {
50-
// pehkui changes the offset, need to account for that
51-
offset *= PehkuiHelper.getPlayerScale(target, (float) d);
52-
}
53-
// offset, so the particle is centered around the arm
54-
offset += itemEntity.getBbHeight();
55-
e = f = vivecraft$playerPos.y - offset;
46+
e = f = vivecraft$playerPos.y - itemEntity.getBbHeight();
5647
}
5748

5849
return Mth.lerp(d, e, f);

common/src/main/java/org/vivecraft/mod_compat_vr/pehkui/PehkuiHelper.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
import virtuoel.pehkui.util.ScaleUtils;
55

66
public class PehkuiHelper {
7-
public static float getPlayerScale(Entity player, float tickDelta) {
8-
return ScaleUtils.getEyeHeightScale(player, tickDelta);
7+
public static float getEntityScale(Entity entity, float tickDelta) {
8+
return ScaleUtils.getEyeHeightScale(entity, tickDelta);
99
}
1010

11-
public static float getPlayerBbScale(Entity player, float tickDelta) {
12-
return ScaleUtils.getBoundingBoxHeightScale(player, tickDelta);
11+
public static float getEntityBbScale(Entity entity, float tickDelta) {
12+
return ScaleUtils.getBoundingBoxHeightScale(entity, tickDelta);
1313
}
1414
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ minecraft_version=1.20.6
44
enabled_platforms=fabric,forge,neoforge
55

66
archives_base_name=vivecraft
7-
mod_version=1.1.12-b1
7+
mod_version=1.1.12-b5
88
maven_group=org.vivecraft
99

1010
architectury_version=12.0.26

0 commit comments

Comments
 (0)