修复三连发
This commit is contained in:
parent
f40472244f
commit
e52d85f4ab
3 changed files with 10 additions and 7 deletions
|
@ -101,7 +101,7 @@ public class ClickHandler {
|
|||
} else {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new FireMessage(0));
|
||||
ClientEventHandler.holdFire = true;
|
||||
if (GunsTool.getGunIntTag(stack, "FireMode") == 1) {
|
||||
if (GunsTool.getGunIntTag(stack, "FireMode") == 1 && ClientEventHandler.burstFireSize == 0) {
|
||||
ClientEventHandler.burstFireSize = (int) stack.getOrCreateTag().getDouble("burst_size");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -252,7 +252,7 @@ public class ClientEventHandler {
|
|||
|
||||
if (clientTimer.getProgress() >= cooldown) {
|
||||
shootClient(player);
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(spread));
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(spread, burstFireSize));
|
||||
clientTimer.setProgress((clientTimer.getProgress() - cooldown));
|
||||
}
|
||||
|
||||
|
|
|
@ -31,30 +31,33 @@ import static net.mcreator.superbwarfare.event.GunEventHandler.playGunSounds;
|
|||
public class ShootMessage {
|
||||
|
||||
private final double spread;
|
||||
private final int burstSize;
|
||||
|
||||
public ShootMessage(double spread) {
|
||||
public ShootMessage(double spread, int burstSize) {
|
||||
this.spread = spread;
|
||||
this.burstSize = burstSize;
|
||||
}
|
||||
|
||||
public static ShootMessage decode(FriendlyByteBuf buffer) {
|
||||
return new ShootMessage(buffer.readDouble());
|
||||
return new ShootMessage(buffer.readDouble(), buffer.readInt());
|
||||
}
|
||||
|
||||
public static void encode(ShootMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeDouble(message.spread);
|
||||
buffer.writeInt(message.burstSize);
|
||||
}
|
||||
|
||||
public static void handler(ShootMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.spread);
|
||||
pressAction(context.getSender(), message.spread, message.burstSize);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, double spared) {
|
||||
public static void pressAction(Player player, double spared, int burstSize) {
|
||||
Level level = player.level();
|
||||
|
||||
if (!level.isLoaded(player.blockPosition())) {
|
||||
|
@ -78,7 +81,7 @@ public class ShootMessage {
|
|||
if (mode == 0) {
|
||||
singleInterval = coolDownTick;
|
||||
} else if (mode == 1) {
|
||||
burstCooldown = stack.getOrCreateTag().getInt("burst_fire") == 0 ? coolDownTick + 3 : 0;
|
||||
burstCooldown = burstSize == 0 ? coolDownTick + 3 : 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue