添加了控制camera的mixin

This commit is contained in:
Atsuihsio 2024-07-08 16:01:14 +08:00
parent 02d09cbc61
commit 879cd73411
3 changed files with 50 additions and 5 deletions

View file

@ -2,6 +2,7 @@ package net.mcreator.target.client;
import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.platform.InputConstants;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.client.gui.RangeHelper;
import net.mcreator.target.entity.MortarEntity; import net.mcreator.target.entity.MortarEntity;
import net.mcreator.target.init.TargetModKeyMappings; import net.mcreator.target.init.TargetModKeyMappings;
import net.mcreator.target.init.TargetModMobEffects; import net.mcreator.target.init.TargetModMobEffects;
@ -13,6 +14,7 @@ import net.mcreator.target.network.message.FireMessage;
import net.mcreator.target.network.message.ZoomMessage; import net.mcreator.target.network.message.ZoomMessage;
import net.mcreator.target.tools.TraceTool; import net.mcreator.target.tools.TraceTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
@ -112,17 +114,16 @@ public class ClickHandler {
event.setCanceled(true); event.setCanceled(true);
} }
if (player.hasEffect(TargetModMobEffects.SHOCK.get())) {
event.setCanceled(true);
}
Entity looking = TraceTool.findLookingEntity(player, 6); Entity looking = TraceTool.findLookingEntity(player, 6);
if (looking == null) return; if (looking == null) return;
if (looking instanceof MortarEntity && player.isShiftKeyDown()) { if (looking instanceof MortarEntity && player.isShiftKeyDown()) {
TargetMod.PACKET_HANDLER.sendToServer(new AdjustMortarAngleMessage(scroll)); TargetMod.PACKET_HANDLER.sendToServer(new AdjustMortarAngleMessage(scroll));
event.setCanceled(true); event.setCanceled(true);
} }
if (player.hasEffect(TargetModMobEffects.SHOCK.get())) {
event.setCanceled(true);
}
} }
private static void setKeyState(int key, int state) { private static void setKeyState(int key, int state) {

View file

@ -0,0 +1,43 @@
package net.mcreator.target.mixins;
import net.mcreator.target.init.TargetModTags;
import net.minecraft.client.Camera;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.BlockGetter;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Camera.class)
public abstract class MixinCamera {
@Shadow(aliases = "Lnet/minecraft/client/Camera;setRotation(FF)V")
protected abstract void setRotation(float p_90573_, float p_90574_);
@Shadow(aliases = "Lnet/minecraft/client/Camera;setPosition(DDD)V")
protected abstract void setPosition(double p_90585_, double p_90586_, double p_90587_);
@Inject(
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;setRotation(FF)V", ordinal = 0),
method = "setup(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/world/entity/Entity;ZZF)V",
cancellable = true)
private void onSetup(BlockGetter level, Entity entity, boolean detached, boolean mirrored, float partialTicks, CallbackInfo info) {
// Minecraft mc = Minecraft.getInstance();
// Player player = mc.player;
//
// if (player != null) {
// ItemStack stack = player.getMainHandItem();
//
// if (stack.is(TargetModTags.Items.GUN)) {
// setRotation(player.getYRot(), player.getXRot());
// setPosition(player.getX(), player.getY() + 3, player.getZ());
// info.cancel();
// }
// }
}
}

View file

@ -8,6 +8,7 @@
"ClientboundSetEntityMotionPacketMixin" "ClientboundSetEntityMotionPacketMixin"
], ],
"client": [ "client": [
"MixinCamera",
"KeyMappingMixin", "KeyMappingMixin",
"GameRendererMixin", "GameRendererMixin",
"MouseHandlerMixin" "MouseHandlerMixin"