Skip to content

Commit 5d76e13

Browse files
committed
Merge remote-tracking branch 'remotes/origin/Multiloader-1.19' into Multiloader-1.18
2 parents 9e366bb + 493bf30 commit 5d76e13

File tree

13 files changed

+52
-12
lines changed

13 files changed

+52
-12
lines changed

common/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ dependencies {
4747
compileOnly('com.electronwill.night-config:toml:3.6.6')
4848

4949
//LaunchPopup
50-
implementation 'com.github.fayer3:LaunchPopup:master-SNAPSHOT'
50+
implementation 'com.github.Vivecraft:LaunchPopup:master-SNAPSHOT'
5151
}
5252
// extract the LaunchPopup classes
5353
jar {

common/src/main/java/org/vivecraft/client/gui/settings/GuiVRControls.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ public class GuiVRControls extends GuiVROptionsBase {
1414
new VROptionEntry(VRSettings.VrOptions.DUMMY, true),
1515
new VROptionEntry(VRSettings.VrOptions.DUMMY, true),
1616
new VROptionEntry(VRSettings.VrOptions.DUMMY, true),
17-
new VROptionEntry(VRSettings.VrOptions.DUMMY),
18-
new VROptionEntry(VRSettings.VrOptions.INGAME_BINDINGS_IN_GUI),
1917
new VROptionEntry(VRSettings.VrOptions.REVERSE_HANDS),
20-
new VROptionEntry(VRSettings.VrOptions.RIGHT_CLICK_DELAY),
18+
new VROptionEntry(VRSettings.VrOptions.INGAME_BINDINGS_IN_GUI),
2119
new VROptionEntry(VRSettings.VrOptions.ALLOW_ADVANCED_BINDINGS),
20+
new VROptionEntry(VRSettings.VrOptions.RIGHT_CLICK_DELAY),
21+
new VROptionEntry(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS_CUSTOM),
2222
new VROptionEntry(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS)
2323
};
2424

common/src/main/java/org/vivecraft/client/network/ClientNetworking.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ public static boolean isThirdPersonItems() {
185185
return ClientDataHolderVR.getInstance().vrSettings.overrides.getSetting(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS).getBoolean();
186186
}
187187

188+
public static boolean isThirdPersonItemsCustom() {
189+
return ClientDataHolderVR.getInstance().vrSettings.overrides.getSetting(VRSettings.VrOptions.THIRDPERSON_ITEMTRANSFORMS_CUSTOM).getBoolean();
190+
}
191+
188192
public static boolean isLimitedSurvivalTeleport() {
189193
return ClientDataHolderVR.getInstance().vrSettings.overrides.getSetting(VRSettings.VrOptions.LIMIT_TELEPORT).getBoolean();
190194
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ public boolean isCharged() {
103103

104104
public void reset(LocalPlayer player) {
105105
this.isDrawing = false;
106+
this.canDraw = false;
106107
}
107108

108109
public EntryPoint getEntryPoint() {

common/src/main/java/org/vivecraft/client_vr/settings/VRSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ public enum UpdateType implements OptionEnum<UpdateType> {
222222
public boolean ingameBindingsInGui = false;
223223
@SettingField(VrOptions.THIRDPERSON_ITEMTRANSFORMS)
224224
public boolean thirdPersonItems = false;
225+
@SettingField(VrOptions.THIRDPERSON_ITEMTRANSFORMS_CUSTOM)
226+
public boolean thirdPersonItemsCustom = true;
225227
//
226228

227229
//Locomotion
@@ -1702,6 +1704,7 @@ String getDisplayString(String prefix, Object value) {
17021704
AUTO_SPRINT(false, true), // Auto-sprint
17031705
AUTO_SPRINT_THRESHOLD(true, false, 0.5f, 1f, 0.01f, 2), // Auto-sprint Threshold
17041706
THIRDPERSON_ITEMTRANSFORMS(false, true), // 3rd person items
1707+
THIRDPERSON_ITEMTRANSFORMS_CUSTOM(false, true), // 3rd person items, for items with custom model data
17051708
BOW_MODE(false, true) { // Roomscale Bow Mode
17061709

17071710
@Override
@@ -2186,6 +2189,7 @@ private ServerOverrides() {
21862189
registerSetting(VrOptions.TELEPORT_HORIZ_LIMIT, "teleportLimitHoriz", () -> vrTeleportHorizLimit);
21872190
registerSetting(VrOptions.WORLD_SCALE, "worldScale", () -> worldScale);
21882191
registerSetting(VrOptions.THIRDPERSON_ITEMTRANSFORMS, "thirdPersonItems", () -> thirdPersonItems);
2192+
registerSetting(VrOptions.THIRDPERSON_ITEMTRANSFORMS_CUSTOM, "thirdPersonItemsCustom", () -> thirdPersonItemsCustom);
21892193
}
21902194

21912195
private void registerSetting(VrOptions option, String networkName, Supplier<Object> originalValue) {

common/src/main/java/org/vivecraft/mixin/client/blaze3d/RenderTargetMixin.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import org.vivecraft.client_vr.settings.VRSettings;
1919
import org.vivecraft.client_xr.render_pass.RenderPassType;
2020

21-
import java.util.Arrays;
22-
2321
@Mixin(RenderTarget.class)
2422
public abstract class RenderTargetMixin implements RenderTargetExtension {
2523

@@ -121,11 +119,11 @@ public String toString() {
121119
if (RenderPassType.isWorldOnly()) {
122120
if (!this.vivecraft$loggedSizeError && (this.width != Minecraft.getInstance().getMainRenderTarget().width || this.height != Minecraft.getInstance().getMainRenderTarget().height)) {
123121
// log a limited StackTrace to find the cause, we don't need to spam the log with full StackTraces
124-
VRSettings.logger.error("Vivecraft: Mismatched RenderTarget size detected, viewport size change was blocked. MainTarget size: {}x{}, RenderTarget size: {}x{}. RenderPass: {}, Stacktrace: {}",
122+
VRSettings.logger.error("Vivecraft: Mismatched RenderTarget size detected, viewport size change was blocked. MainTarget size: {}x{}, RenderTarget size: {}x{}. RenderPass: {}, Stacktrace:",
125123
Minecraft.getInstance().getMainRenderTarget().width,
126124
Minecraft.getInstance().getMainRenderTarget().height,
127125
this.width, this.height, ClientDataHolderVR.getInstance().currentPass,
128-
String.join("\n", Arrays.stream(Thread.currentThread().getStackTrace(), 2, 12).map(Object::toString).toArray(String[]::new)));
126+
new RuntimeException());
129127
this.vivecraft$loggedSizeError = true;
130128
}
131129
return false;

common/src/main/java/org/vivecraft/mixin/client_vr/MinecraftVRMixin.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,14 +427,18 @@ public abstract class MinecraftVRMixin implements MinecraftExtension {
427427
return constant;
428428
}
429429

430-
@Inject(at = @At("HEAD"), method = "resizeDisplay")
430+
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getMainRenderTarget()Lcom/mojang/blaze3d/pipeline/RenderTarget;"), method = "resizeDisplay")
431431
void vivecraft$restoreVanillaState(CallbackInfo ci) {
432432
if (VRState.vrInitialized) {
433433
// restore vanilla post chains before the resize, or it will resize the wrong ones
434434
if (levelRenderer != null) {
435435
((LevelRendererExtension) levelRenderer).vivecraft$restoreVanillaPostChains();
436436
}
437-
RenderPassManager.setVanillaRenderPass();
437+
if (VRState.vrRunning) {
438+
RenderPassManager.setGUIRenderPass();
439+
} else {
440+
RenderPassManager.setVanillaRenderPass();
441+
}
438442
}
439443
}
440444

common/src/main/java/org/vivecraft/mixin/client_vr/renderer/ItemInHandRendererVRMixin.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,16 @@ public abstract class ItemInHandRendererVRMixin implements ItemInHandRendererExt
121121
}
122122

123123
ItemTransforms.TransformType transformType;
124-
if ((ClientNetworking.isThirdPersonItems() && !(BowTracker.isBow(pStack) && dh.bowTracker.isActive((LocalPlayer) pPlayer))) || dh.climbTracker.isClaws(pStack)) {
124+
125+
// third person transforms for custom model data items, but not spear, shield and crossbow
126+
boolean hasCMD = pStack.hasTag() && pStack.getTag().getInt("CustomModelData") != 0 &&
127+
rendertype != VivecraftItemRendering.VivecraftItemTransformType.Crossbow &&
128+
rendertype != VivecraftItemRendering.VivecraftItemTransformType.Spear &&
129+
rendertype != VivecraftItemRendering.VivecraftItemTransformType.Shield;
130+
131+
boolean isBow = BowTracker.isBow(pStack) && dh.bowTracker.isActive((LocalPlayer) pPlayer);
132+
133+
if (((ClientNetworking.isThirdPersonItems() || (hasCMD && ClientNetworking.isThirdPersonItemsCustom())) && !isBow) || dh.climbTracker.isClaws(pStack)) {
125134
useLeftHandModelinLeftHand = true; //test
126135
VivecraftItemRendering.applyThirdPersonItemTransforms(pMatrixStack, rendertype, mainHand, pPlayer, pEquippedProgress, pPartialTicks, pStack, pHand);
127136
transformType = mainHand ? ItemTransforms.TransformType.THIRD_PERSON_RIGHT_HAND : (useLeftHandModelinLeftHand ? ItemTransforms.TransformType.THIRD_PERSON_LEFT_HAND : ItemTransforms.TransformType.THIRD_PERSON_RIGHT_HAND);

common/src/main/java/org/vivecraft/server/ServerNetworking.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,17 @@ public static void handlePacket(CommonNetworkHelper.PacketDiscriminators packetI
143143
packetConsumer.accept(getVivecraftServerPacket(CommonNetworkHelper.PacketDiscriminators.SETTING_OVERRIDE, array));
144144
}
145145

146+
if (ServerConfig.forceThirdPersonItemsCustom.get()) {
147+
FriendlyByteBuf byteBuf = new FriendlyByteBuf(Unpooled.buffer());
148+
byteBuf.writeUtf("thirdPersonItemsCustom");
149+
byteBuf.writeUtf("" + true);
150+
151+
byte[] array = new byte[byteBuf.readableBytes()];
152+
byteBuf.readBytes(array);
153+
byteBuf.release();
154+
packetConsumer.accept(getVivecraftServerPacket(CommonNetworkHelper.PacketDiscriminators.SETTING_OVERRIDE, array));
155+
}
156+
146157
if (ServerConfig.crawlingEnabled.get()) {
147158
packetConsumer.accept(getVivecraftServerPacket(CommonNetworkHelper.PacketDiscriminators.CRAWL, new byte[0]));
148159
}

common/src/main/java/org/vivecraft/server/config/ServerConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class ServerConfig {
7171
public static ConfigBuilder.DoubleValue worldscaleMin;
7272

7373
public static ConfigBuilder.BooleanValue forceThirdPersonItems;
74+
public static ConfigBuilder.BooleanValue forceThirdPersonItemsCustom;
7475

7576
public static ConfigBuilder.BooleanValue vrSwitchingEnabled;
7677

@@ -358,6 +359,10 @@ private static void fixConfig(CommentedConfig config, ConfigSpec.CorrectionListe
358359
.push("thirdPersonItems")
359360
.comment("Forces players to use the raw item position setting")
360361
.define(false);
362+
forceThirdPersonItemsCustom = builder
363+
.push("thirdPersonItemsCustom")
364+
.comment("Forces players to use the raw item position setting, only for items with custom model data")
365+
.define(false);
361366
// end settingOverrides
362367
builder.pop();
363368

0 commit comments

Comments
 (0)