步战车添加更多乘客位
This commit is contained in:
parent
3bd2eb30e2
commit
ef45e840b4
11 changed files with 65 additions and 31 deletions
|
@ -303,8 +303,10 @@ public class ClickHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.isDriver(player) && iVehicle.banHand()) {
|
if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.banHand()) {
|
||||||
ClientEventHandler.holdFireVehicle = true;
|
if (iVehicle.isDriver(player)) {
|
||||||
|
ClientEventHandler.holdFireVehicle = true;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,8 +351,10 @@ public class ClickHandler {
|
||||||
public static void handleWeaponZoomPress(Player player, ItemStack stack) {
|
public static void handleWeaponZoomPress(Player player, ItemStack stack) {
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new ZoomMessage(0));
|
ModUtils.PACKET_HANDLER.sendToServer(new ZoomMessage(0));
|
||||||
|
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.isDriver(player) && iVehicle.banHand()) {
|
if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.banHand()) {
|
||||||
ClientEventHandler.zoomVehicle = true;
|
if (iVehicle.isDriver(player)) {
|
||||||
|
ClientEventHandler.zoomVehicle = true;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class CrossHairOverlay {
|
||||||
|
|
||||||
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit)
|
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit)
|
||||||
return;
|
return;
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand()) return;
|
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) return;
|
||||||
|
|
||||||
GuiGraphics guiGraphics = event.getGuiGraphics();
|
GuiGraphics guiGraphics = event.getGuiGraphics();
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class GrenadeLauncherOverlay {
|
||||||
|
|
||||||
if (player != null && player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit)
|
if (player != null && player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit)
|
||||||
return;
|
return;
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
|
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())
|
||||||
return;
|
return;
|
||||||
if (!shouldRenderCrossHair(player)) return;
|
if (!shouldRenderCrossHair(player)) return;
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class JavelinHudOverlay {
|
||||||
|
|
||||||
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit)
|
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit)
|
||||||
return;
|
return;
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand()) return;
|
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) return;
|
||||||
|
|
||||||
if ((stack.getItem() == ModItems.JAVELIN.get() && !stack.getOrCreateTag().getBoolean("HoloHidden")) && Minecraft.getInstance().options.getCameraType().isFirstPerson() && ClientEventHandler.zoom) {
|
if ((stack.getItem() == ModItems.JAVELIN.get() && !stack.getOrCreateTag().getBoolean("HoloHidden")) && Minecraft.getInstance().options.getCameraType().isFirstPerson() && ClientEventHandler.zoom) {
|
||||||
RenderSystem.disableDepthTest();
|
RenderSystem.disableDepthTest();
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class RedTriangleOverlay {
|
||||||
|
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (!stack.is(ModItems.RPG.get())) return;
|
if (!stack.is(ModItems.RPG.get())) return;
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
|
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity idf = SeekTool.seekLivingEntity(player, player.level(), 128, 6);
|
Entity idf = SeekTool.seekLivingEntity(player, player.level(), 128, 6);
|
||||||
|
|
|
@ -94,7 +94,7 @@ public class VehicleHudOverlay {
|
||||||
}
|
}
|
||||||
poseStack.popPose();
|
poseStack.popPose();
|
||||||
|
|
||||||
if (vehicle instanceof IArmedVehicleEntity iVehicle && iVehicle.getAmmoCount(player) != -1) {
|
if (vehicle instanceof IArmedVehicleEntity iVehicle && iVehicle.getAmmoCount(player) != -1 && iVehicle.isDriver(player)) {
|
||||||
boolean iCharge = iVehicle instanceof IChargeEntity;
|
boolean iCharge = iVehicle instanceof IChargeEntity;
|
||||||
|
|
||||||
// 渲染当前弹药量
|
// 渲染当前弹药量
|
||||||
|
@ -129,6 +129,7 @@ public class VehicleHudOverlay {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
|
||||||
// 渲染弹药类型
|
// 渲染弹药类型
|
||||||
|
|
||||||
event.getGuiGraphics().drawString(
|
event.getGuiGraphics().drawString(
|
||||||
Minecraft.getInstance().font,
|
Minecraft.getInstance().font,
|
||||||
getVehicleAmmoType(stack, iVehicle),
|
getVehicleAmmoType(stack, iVehicle),
|
||||||
|
@ -137,6 +138,7 @@ public class VehicleHudOverlay {
|
||||||
0xFFFFFF,
|
0xFFFFFF,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -630,6 +630,7 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha
|
||||||
}
|
}
|
||||||
|
|
||||||
Matrix4f transform = getTurretTransform();
|
Matrix4f transform = getTurretTransform();
|
||||||
|
Matrix4f transformV = getVehicleTransform();
|
||||||
|
|
||||||
float x = 0.5f;
|
float x = 0.5f;
|
||||||
float y = 0.1f;
|
float y = 0.1f;
|
||||||
|
@ -638,11 +639,18 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha
|
||||||
|
|
||||||
int i = this.getPassengers().indexOf(passenger);
|
int i = this.getPassengers().indexOf(passenger);
|
||||||
|
|
||||||
|
Vector4f worldPosition;
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
Vector4f worldPosition = transformPosition(transform, x, y, z);
|
worldPosition = transformPosition(transform, x, y, z);
|
||||||
passenger.setPos(worldPosition.x, worldPosition.y, worldPosition.z);
|
} else {
|
||||||
callback.accept(passenger, worldPosition.x, worldPosition.y, worldPosition.z);
|
worldPosition = transformPosition(transformV, 0, 1, 0);
|
||||||
}
|
}
|
||||||
|
passenger.setPos(worldPosition.x, worldPosition.y, worldPosition.z);
|
||||||
|
callback.accept(passenger, worldPosition.x, worldPosition.y, worldPosition.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxPassengers() {
|
||||||
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Matrix4f getBarrelTransform() {
|
public Matrix4f getBarrelTransform() {
|
||||||
|
|
|
@ -605,6 +605,7 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC
|
||||||
}
|
}
|
||||||
|
|
||||||
Matrix4f transform = getTurretTransform();
|
Matrix4f transform = getTurretTransform();
|
||||||
|
Matrix4f transformV = getVehicleTransform();
|
||||||
|
|
||||||
float x = 0.36f;
|
float x = 0.36f;
|
||||||
float y = -0.3f;
|
float y = -0.3f;
|
||||||
|
@ -613,11 +614,18 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC
|
||||||
|
|
||||||
int i = this.getPassengers().indexOf(passenger);
|
int i = this.getPassengers().indexOf(passenger);
|
||||||
|
|
||||||
|
Vector4f worldPosition;
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
Vector4f worldPosition = transformPosition(transform, x, y, z);
|
worldPosition = transformPosition(transform, x, y, z);
|
||||||
passenger.setPos(worldPosition.x, worldPosition.y, worldPosition.z);
|
} else {
|
||||||
callback.accept(passenger, worldPosition.x, worldPosition.y, worldPosition.z);
|
worldPosition = transformPosition(transformV, 0, 1, 0);
|
||||||
}
|
}
|
||||||
|
passenger.setPos(worldPosition.x, worldPosition.y, worldPosition.z);
|
||||||
|
callback.accept(passenger, worldPosition.x, worldPosition.y, worldPosition.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxPassengers() {
|
||||||
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Matrix4f getBarrelTransform() {
|
public Matrix4f getBarrelTransform() {
|
||||||
|
|
|
@ -224,7 +224,7 @@ public class ClientEventHandler {
|
||||||
handleLungeAttack(player, stack);
|
handleLungeAttack(player, stack);
|
||||||
handleGunMelee(player, stack);
|
handleGunMelee(player, stack);
|
||||||
|
|
||||||
if (notInGame()) {
|
if (player.getVehicle() instanceof MobileVehicleEntity mobileVehicle && mobileVehicle.getFirstPassenger() == player && notInGame()) {
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new VehicleMovementMessage(0, false));
|
ModUtils.PACKET_HANDLER.sendToServer(new VehicleMovementMessage(0, false));
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new VehicleMovementMessage(1, false));
|
ModUtils.PACKET_HANDLER.sendToServer(new VehicleMovementMessage(1, false));
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new VehicleMovementMessage(2, false));
|
ModUtils.PACKET_HANDLER.sendToServer(new VehicleMovementMessage(2, false));
|
||||||
|
@ -266,7 +266,7 @@ public class ClientEventHandler {
|
||||||
if (stack.getItem() instanceof GunItem gunItem) {
|
if (stack.getItem() instanceof GunItem gunItem) {
|
||||||
if (gunItem.canUseMelee(stack) && gunMelee == 0 && drawTime < 0.01
|
if (gunItem.canUseMelee(stack) && gunMelee == 0 && drawTime < 0.01
|
||||||
&& ModKeyMappings.MELEE.isDown()
|
&& ModKeyMappings.MELEE.isDown()
|
||||||
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
|
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())
|
||||||
&& !holdFireVehicle
|
&& !holdFireVehicle
|
||||||
&& !notInGame()
|
&& !notInGame()
|
||||||
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit
|
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit
|
||||||
|
@ -422,7 +422,7 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((holdFire || burstFireSize > 0)
|
if ((holdFire || burstFireSize > 0)
|
||||||
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
|
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())
|
||||||
&& !holdFireVehicle
|
&& !holdFireVehicle
|
||||||
&& (stack.is(ModTags.Items.NORMAL_GUN)
|
&& (stack.is(ModTags.Items.NORMAL_GUN)
|
||||||
&& cantFireTime == 0
|
&& cantFireTime == 0
|
||||||
|
@ -846,7 +846,7 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null && player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
|
if (player != null && player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (level != null && stack.is(ModTags.Items.GUN)) {
|
if (level != null && stack.is(ModTags.Items.GUN)) {
|
||||||
|
@ -911,7 +911,7 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand()) {
|
if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1008,7 +1008,7 @@ public class ClientEventHandler {
|
||||||
double speed = 1.5 - (0.07 * weight);
|
double speed = 1.5 - (0.07 * weight);
|
||||||
|
|
||||||
if (zoom
|
if (zoom
|
||||||
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
|
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())
|
||||||
&& !notInGame()
|
&& !notInGame()
|
||||||
&& drawTime < 0.01
|
&& drawTime < 0.01
|
||||||
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) {
|
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) {
|
||||||
|
|
|
@ -108,8 +108,8 @@ public class ModTabs {
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.ANNIHILATOR.get()));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.ANNIHILATOR.get()));
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.SPEEDBOAT.get(), true));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.SPEEDBOAT.get(), true));
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.AH_6.get()));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.AH_6.get()));
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.LAV_150.get()));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.LAV_150.get(),true));
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.BMP_2.get()));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.BMP_2.get(),true));
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.WHEEL_CHAIR.get()));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.WHEEL_CHAIR.get()));
|
||||||
output.accept(ContainerBlockItem.createInstance(ModEntities.TOM_6.get()));
|
output.accept(ContainerBlockItem.createInstance(ModEntities.TOM_6.get()));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -61,17 +61,29 @@ public abstract class CameraMixin {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getVehicle() instanceof Lav150Entity lav150 && lav150.getFirstPassenger() == player) && (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON || ClientEventHandler.zoomVehicle)) {
|
if (player.getVehicle() instanceof Lav150Entity lav150 && (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON || ClientEventHandler.zoomVehicle)) {
|
||||||
setRotation(-Mth.lerp(partialTicks, lav150.turretYRotO - lav150.yRotO, lav150.getTurretYRot() - lav150.getYRot()), Mth.lerp(partialTicks, lav150.turretXRotO - lav150.xRotO, lav150.getTurretXRot() - lav150.getXRot()));
|
if (lav150.getFirstPassenger() == player) {
|
||||||
setPosition(Mth.lerp(partialTicks, player.xo, player.getX()), Mth.lerp(partialTicks, player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(partialTicks, player.zo, player.getZ()));
|
setRotation(-Mth.lerp(partialTicks, lav150.turretYRotO - lav150.yRotO, lav150.getTurretYRot() - lav150.getYRot()), Mth.lerp(partialTicks, lav150.turretXRotO - lav150.xRotO, lav150.getTurretXRot() - lav150.getXRot()));
|
||||||
info.cancel();
|
setPosition(Mth.lerp(partialTicks, player.xo, player.getX()), Mth.lerp(partialTicks, player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(partialTicks, player.zo, player.getZ()));
|
||||||
|
info.cancel();
|
||||||
|
} else {
|
||||||
|
setRotation(Mth.lerp(partialTicks, player.yHeadRotO, player.getYHeadRot()), Mth.lerp(partialTicks, player.xRotO, player.getXRot()));
|
||||||
|
setPosition(Mth.lerp(partialTicks, player.xo, player.getX()) - 6 * player.getViewVector(partialTicks).x, Mth.lerp(partialTicks, player.yo + player.getEyeHeight() + 1, player.getEyeY() + 1) - 6 * player.getViewVector(partialTicks).y, Mth.lerp(partialTicks, player.zo, player.getZ()) - 6 * player.getViewVector(partialTicks).z);
|
||||||
|
info.cancel();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getVehicle() instanceof Bmp2Entity bmp2 && bmp2.getFirstPassenger() == player) && (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON || ClientEventHandler.zoomVehicle)) {
|
if (player.getVehicle() instanceof Bmp2Entity bmp2 && (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON || ClientEventHandler.zoomVehicle)) {
|
||||||
setRotation(-Mth.lerp(partialTicks, bmp2.turretYRotO - bmp2.yRotO, bmp2.getTurretYRot() - bmp2.getYRot()), Mth.lerp(partialTicks, bmp2.turretXRotO - bmp2.xRotO, bmp2.getTurretXRot() - bmp2.getXRot()));
|
if (bmp2.getFirstPassenger() == player) {
|
||||||
setPosition(Mth.lerp(partialTicks, player.xo, player.getX()), Mth.lerp(partialTicks, player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(partialTicks, player.zo, player.getZ()));
|
setRotation(-Mth.lerp(partialTicks, bmp2.turretYRotO - bmp2.yRotO, bmp2.getTurretYRot() - bmp2.getYRot()), Mth.lerp(partialTicks, bmp2.turretXRotO - bmp2.xRotO, bmp2.getTurretXRot() - bmp2.getXRot()));
|
||||||
info.cancel();
|
setPosition(Mth.lerp(partialTicks, player.xo, player.getX()), Mth.lerp(partialTicks, player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(partialTicks, player.zo, player.getZ()));
|
||||||
|
info.cancel();
|
||||||
|
} else {
|
||||||
|
setRotation(Mth.lerp(partialTicks, player.yHeadRotO, player.getYHeadRot()), Mth.lerp(partialTicks, player.xRotO, player.getXRot()));
|
||||||
|
setPosition(Mth.lerp(partialTicks, player.xo, player.getX()) - 6 * player.getViewVector(partialTicks).x, Mth.lerp(partialTicks, player.yo + player.getEyeHeight() + 1, player.getEyeY() + 1) - 6 * player.getViewVector(partialTicks).y, Mth.lerp(partialTicks, player.zo, player.getZ()) - 6 * player.getViewVector(partialTicks).z);
|
||||||
|
info.cancel();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue