Add vectored afterburner nozzle with afterburner key and exhaust style

- Add vectored afterburner nozzle block with AzureLib model, deflection, throttle and afterburner state
- Drive nozzles from the vehicle control node and map pitch, roll and yaw to differential deflection
- Add afterburner toggle key and packet, linked to the control node
- Replace Warium exhaust effect entities with improved flames, particles and sounds when exhaustStyle is improved
- Add /aero seedgen to measure the air ceiling for the air placeholder
- Upgrade Warium VS to 1.1.7 and make the lift use horizontal speed
This commit is contained in:
richard committed 2026-11-11 18:00:46 +01:00
1 parent 1e659816b8
commit 70eb237d70
56 files changed
+2197 -12

No files matched your search

@@ -3,6 +3,7 @@ package dev.lumareth.improvedAerodynamics.client;
import com.mojang.blaze3d.platform.InputConstants;
import dev.lumareth.improvedAerodynamics.ImprovedAerodynamics;
import dev.lumareth.improvedAerodynamics.network.Network;
import dev.lumareth.improvedAerodynamics.network.ToggleAfterburnerPacket;
import dev.lumareth.improvedAerodynamics.network.ToggleAutoTrimPacket;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
@@ -18,6 +19,9 @@ public final class KeyBindings {
public static final KeyMapping TOGGLE_AUTO_TRIM = new KeyMapping("key.improved_aerodynamics.toggle_auto_trim",
KeyConflictContext.IN_GAME, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_J, "key.categories.improved_aerodynamics");
public static final KeyMapping TOGGLE_AFTERBURNER = new KeyMapping("key.improved_aerodynamics.toggle_afterburner",
KeyConflictContext.IN_GAME, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_K, "key.categories.improved_aerodynamics");
private KeyBindings() {
}
@@ -29,6 +33,7 @@ public final class KeyBindings {
@SubscribeEvent
public static void onRegisterKeyMappings(RegisterKeyMappingsEvent event) {
event.register(TOGGLE_AUTO_TRIM);
event.register(TOGGLE_AFTERBURNER);
}
}
@@ -50,6 +55,12 @@ public final class KeyBindings {
Network.CHANNEL.sendToServer(new ToggleAutoTrimPacket());
}
}
while (TOGGLE_AFTERBURNER.consumeClick()) {
if (minecraft.player != null && minecraft.player.getVehicle() != null && minecraft.getConnection() != null
&& Network.CHANNEL.isRemotePresent(minecraft.getConnection().getConnection())) {
Network.CHANNEL.sendToServer(new ToggleAfterburnerPacket());
}
}
}
}
}