Skip to content

Commit

Permalink
Add integration for Origins mod climbing power
Browse files Browse the repository at this point in the history
  • Loading branch information
Techjar committed Feb 18, 2024
1 parent 7120090 commit dbb415c
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 3 deletions.
12 changes: 12 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,18 @@ allprojects {
}
}

exclusiveContent {
forRepository {
maven {
name = "quiltmc"
url = "https://maven.quiltmc.org/repository/release"
}
}
filter {
includeGroup "org.quiltmc.parsers"
}
}

exclusiveContent {
forRepository {
ivy {
Expand Down
3 changes: 3 additions & 0 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ dependencies {
transitive(false)
}

// for origins compat
modCompileOnlyApi "com.github.apace100:apoli:2.9.0"

// needed dependencies
compileOnly("com.google.code.findbugs:jsr305:3.0.2")
compileOnly('com.electronwill.night-config:toml:3.6.6')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.vivecraft.client_vr.gameplay.VRPlayer;
import org.vivecraft.client_vr.provider.ControllerType;
import org.vivecraft.common.network.CommonNetworkHelper;
import org.vivecraft.mod_compat_vr.origins.OriginsHelper;

import java.util.*;

Expand Down Expand Up @@ -115,7 +116,7 @@ public boolean isClimbeyClimb() {
}

public boolean isClimbeyClimbEquipped() {
return ClientNetworking.serverAllowsClimbey && ((PlayerExtension) this.mc.player).vivecraft$isClimbeyClimbEquipped();
return ClientNetworking.serverAllowsClimbey && (((PlayerExtension) this.mc.player).vivecraft$isClimbeyClimbEquipped() || (OriginsHelper.isLoaded() && OriginsHelper.hasClimbingPower(this.mc.player)));
}

private boolean canstand(BlockPos bp, LocalPlayer p) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.vivecraft.client.network.ClientNetworking;
import org.vivecraft.client_vr.ClientDataHolderVR;
import org.vivecraft.client_vr.extensions.GameRendererExtension;
import org.vivecraft.client_vr.extensions.PlayerExtension;
import org.vivecraft.client_vr.gameplay.trackers.BowTracker;
import org.vivecraft.client_vr.render.RenderPass;
import org.vivecraft.client_vr.settings.VRSettings;
Expand Down Expand Up @@ -142,7 +143,8 @@ public static void renderVRHand_Main(PoseStack poseStack, float partialTicks) {
item = override;
}

if (dataHolder.climbTracker.isClimbeyClimb() && !dataHolder.climbTracker.isClaws(item) && override == null) {
if (dataHolder.climbTracker.isClimbeyClimb() && ((PlayerExtension) mc.player).vivecraft$isClimbeyClimbEquipped() &&
!dataHolder.climbTracker.isClaws(item) && override == null) {
item = mc.player.getOffhandItem();
}

Expand Down Expand Up @@ -205,7 +207,8 @@ public static void renderVRHand_Offhand(float partialTicks, boolean renderTelepo
item = override;
}

if (dataHolder.climbTracker.isClimbeyClimb() && !dataHolder.climbTracker.isClaws(item) && override == null) {
if (dataHolder.climbTracker.isClimbeyClimb() && ((PlayerExtension) mc.player).vivecraft$isClimbeyClimbEquipped() &&
!dataHolder.climbTracker.isClaws(item) && override == null) {
item = mc.player.getMainHandItem();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.vivecraft.mod_compat_vr.origins;

import org.vivecraft.client.Xplat;
import io.github.apace100.apoli.component.PowerHolderComponent;
import io.github.apace100.apoli.power.ClimbingPower;
import io.github.apace100.apoli.power.TogglePower;
import net.minecraft.world.entity.LivingEntity;

public class OriginsHelper {
public static boolean isLoaded() {
return Xplat.isModLoaded("origins");
}

public static boolean hasClimbingPower(LivingEntity entity) {
// assumes toggle is for climbing, which is correct at least for stock origins
return !PowerHolderComponent.KEY.get(entity).getPowers(ClimbingPower.class, true).isEmpty()
&& !PowerHolderComponent.KEY.get(entity).getPowers(TogglePower.class, false).isEmpty();
}
}

0 comments on commit dbb415c

Please sign in to comment.