去除战术冲刺的按键绑定和网络包
This commit is contained in:
parent
106bed9aff
commit
5171d31245
6 changed files with 12 additions and 77 deletions
|
@ -108,7 +108,6 @@ public class ModUtils {
|
|||
addNetworkMessage(DroneMovementMessage.class, DroneMovementMessage::encode, DroneMovementMessage::decode, DroneMovementMessage::handler);
|
||||
addNetworkMessage(DroneFireMessage.class, DroneFireMessage::buffer, DroneFireMessage::new, DroneFireMessage::handler);
|
||||
addNetworkMessage(SimulationDistanceMessage.class, SimulationDistanceMessage::encode, SimulationDistanceMessage::decode, SimulationDistanceMessage::handle, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
addNetworkMessage(TacticalSprintMessage.class, TacticalSprintMessage::encode, TacticalSprintMessage::decode, TacticalSprintMessage::handler);
|
||||
|
||||
event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)),
|
||||
Ingredient.of(Items.LIGHTNING_ROD), PotionUtils.setPotion(new ItemStack(Items.POTION), ModPotion.SHOCK.get())));
|
||||
|
|
|
@ -125,6 +125,17 @@ public class PlayerEventHandler {
|
|||
capability.tacticalSprint = false;
|
||||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
player.getPersistentData().putBoolean("canTacticalSprint", true);
|
||||
}
|
||||
|
||||
if (player.isSprinting()
|
||||
&& !(player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).tacticalSprintExhaustion
|
||||
&& player.getPersistentData().getBoolean("canTacticalSprint")) {
|
||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
capability.tacticalSprint = true;
|
||||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
player.getPersistentData().putBoolean("canTacticalSprint", false);
|
||||
}
|
||||
|
||||
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).tacticalSprint) {
|
||||
|
@ -132,7 +143,7 @@ public class PlayerEventHandler {
|
|||
capability.tacticalSprintTime = Mth.clamp(player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).tacticalSprintTime - sprint_cost,0,600);
|
||||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 2, 1, false, false));
|
||||
player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 2, 0, false, false));
|
||||
|
||||
} else {
|
||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
|
|
|
@ -194,31 +194,13 @@ public class ModKeyMappings {
|
|||
isDownOld = isDown;
|
||||
}
|
||||
};
|
||||
public static final KeyMapping TACTICAL_SPRINT = new KeyMapping("key.superbwarfare.tactical_sprint", GLFW.GLFW_KEY_LEFT_CONTROL, "key.categories.superbwarfare") {
|
||||
private boolean isDownOld = false;
|
||||
|
||||
@Override
|
||||
public void setDown(boolean isDown) {
|
||||
super.setDown(isDown);
|
||||
if (isDownOld != isDown && isDown) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new TacticalSprintMessage(true));
|
||||
TACTICAL_SPRINT_LASTPRESS = System.currentTimeMillis();
|
||||
} else if (isDownOld != isDown) {
|
||||
int dt = (int) (System.currentTimeMillis() - TACTICAL_SPRINT_LASTPRESS);
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new TacticalSprintMessage(false));
|
||||
}
|
||||
isDownOld = isDown;
|
||||
}
|
||||
};
|
||||
private static long FORWARD_LASTPRESS = 0;
|
||||
private static long BACKWARD_LASTPRESS = 0;
|
||||
private static long LEFT_LASTPRESS = 0;
|
||||
private static long RIGHT_LASTPRESS = 0;
|
||||
private static long UP_LASTPRESS = 0;
|
||||
private static long DOWN_LASTPRESS = 0;
|
||||
private static long TACTICAL_SPRINT_LASTPRESS = 0;
|
||||
|
||||
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerKeyMappings(RegisterKeyMappingsEvent event) {
|
||||
|
@ -234,8 +216,6 @@ public class ModKeyMappings {
|
|||
event.register(RIGHT);
|
||||
event.register(UP);
|
||||
event.register(DOWN);
|
||||
event.register(TACTICAL_SPRINT);
|
||||
|
||||
}
|
||||
|
||||
@Mod.EventBusSubscriber({Dist.CLIENT})
|
||||
|
@ -255,7 +235,6 @@ public class ModKeyMappings {
|
|||
RIGHT.consumeClick();
|
||||
UP.consumeClick();
|
||||
DOWN.consumeClick();
|
||||
TACTICAL_SPRINT.consumeClick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
package net.mcreator.superbwarfare.network.message;
|
||||
|
||||
import net.mcreator.superbwarfare.entity.DroneEntity;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.effect.MobEffect;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class TacticalSprintMessage {
|
||||
private final boolean sprint;
|
||||
|
||||
public TacticalSprintMessage(boolean sprint) {
|
||||
this.sprint = sprint;
|
||||
}
|
||||
|
||||
public static TacticalSprintMessage decode(FriendlyByteBuf buffer) {
|
||||
return new TacticalSprintMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(TacticalSprintMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.sprint);
|
||||
}
|
||||
|
||||
public static void handler(TacticalSprintMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
Player player = context.getSender();
|
||||
if (message.sprint) {
|
||||
player.setSprinting(true);
|
||||
|
||||
if (!(player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).tacticalSprintExhaustion) {
|
||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
capability.tacticalSprint = true;
|
||||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
}
|
|
@ -220,7 +220,6 @@
|
|||
"key.superbwarfare.right": "Right",
|
||||
"key.superbwarfare.up": "Up",
|
||||
"key.superbwarfare.down": "Down",
|
||||
"key.superbwarfare.tactical_sprint": "Tactical Sprint",
|
||||
|
||||
"effect.superbwarfare.shock": "Shock",
|
||||
"item.minecraft.potion.effect.superbwarfare_shock": "Potion of Shock",
|
||||
|
|
|
@ -220,7 +220,6 @@
|
|||
"key.superbwarfare.right": "向右移动",
|
||||
"key.superbwarfare.up": "上升",
|
||||
"key.superbwarfare.down": "下降",
|
||||
"key.superbwarfare.tactical_sprint": "战术冲刺",
|
||||
|
||||
"effect.superbwarfare.shock": "电击",
|
||||
"item.minecraft.potion.effect.superbwarfare_shock": "电击药水",
|
||||
|
|
Loading…
Add table
Reference in a new issue