de.pewpewproject.lasertag.mixin.PlayerEntityRendererMixin   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 13
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 13
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A getArmPose(AbstractClientPlayerEntity,Hand,CallbackInfoReturnable) 0 11 3
1
package de.pewpewproject.lasertag.mixin;
2
3
import de.pewpewproject.lasertag.item.Items;
4
import net.minecraft.client.MinecraftClient;
5
import net.minecraft.client.network.AbstractClientPlayerEntity;
6
import net.minecraft.client.render.entity.PlayerEntityRenderer;
7
import net.minecraft.client.render.entity.model.BipedEntityModel;
8
import net.minecraft.util.Hand;
9
import org.spongepowered.asm.mixin.Mixin;
10
import org.spongepowered.asm.mixin.injection.At;
11
import org.spongepowered.asm.mixin.injection.Inject;
12
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
13
14
/**
15
 * Mixin into the PlayerEntityRenderer.class to implement the holding pose for the lasertag weapon
16
 *
17
 * @author Étienne Muser
18
 */
19
@Mixin(PlayerEntityRenderer.class)
20
public abstract class PlayerEntityRendererMixin {
21
    @Inject(method = "getArmPose(Lnet/minecraft/client/network/AbstractClientPlayerEntity;Lnet/minecraft/util/Hand;)Lnet/minecraft/client/render/entity/model/BipedEntityModel$ArmPose;", at = @At("RETURN"), cancellable = true)
22
    private static void getArmPose(AbstractClientPlayerEntity player, Hand hand, CallbackInfoReturnable<BipedEntityModel.ArmPose> cir) {
23
24
        // Get the game managers
25
        var gameManager = MinecraftClient.getInstance().world.getClientLasertagManager();
26
        var activationManager = gameManager.getActivationManager();
27
28
        var itemStack = player.getStackInHand(hand);
29
30
        if (itemStack.isOf(Items.LASERTAG_WEAPON) && !activationManager.isDeactivated(player.getUuid())) {
31
            cir.setReturnValue(BipedEntityModel.ArmPose.CROSSBOW_HOLD);
32
        }
33
    }
34
}
35