添加了控制camera的mixin
This commit is contained in:
parent
02d09cbc61
commit
879cd73411
3 changed files with 50 additions and 5 deletions
|
@ -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) {
|
||||||
|
|
43
src/main/java/net/mcreator/target/mixins/MixinCamera.java
Normal file
43
src/main/java/net/mcreator/target/mixins/MixinCamera.java
Normal 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();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,6 +8,7 @@
|
||||||
"ClientboundSetEntityMotionPacketMixin"
|
"ClientboundSetEntityMotionPacketMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
|
"MixinCamera",
|
||||||
"KeyMappingMixin",
|
"KeyMappingMixin",
|
||||||
"GameRendererMixin",
|
"GameRendererMixin",
|
||||||
"MouseHandlerMixin"
|
"MouseHandlerMixin"
|
||||||
|
|
Loading…
Add table
Reference in a new issue