添加雷达网络包
This commit is contained in:
parent
6a5ee2677d
commit
9682e6f9b2
5 changed files with 97 additions and 2 deletions
|
@ -156,6 +156,8 @@ public class ModUtils {
|
||||||
addNetworkMessage(SwitchScopeMessage.class, SwitchScopeMessage::encode, SwitchScopeMessage::decode, SwitchScopeMessage::handler);
|
addNetworkMessage(SwitchScopeMessage.class, SwitchScopeMessage::encode, SwitchScopeMessage::decode, SwitchScopeMessage::handler);
|
||||||
addNetworkMessage(SetFiringParametersMessage.class, SetFiringParametersMessage::encode, SetFiringParametersMessage::decode, SetFiringParametersMessage::handler);
|
addNetworkMessage(SetFiringParametersMessage.class, SetFiringParametersMessage::encode, SetFiringParametersMessage::decode, SetFiringParametersMessage::handler);
|
||||||
addNetworkMessage(ContainerDataMessage.class, ContainerDataMessage::encode, ContainerDataMessage::decode, ContainerDataMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
addNetworkMessage(ContainerDataMessage.class, ContainerDataMessage::encode, ContainerDataMessage::decode, ContainerDataMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||||
|
addNetworkMessage(RadarChangeModeMessage.class, RadarChangeModeMessage::encode, RadarChangeModeMessage::decode, RadarChangeModeMessage::handler);
|
||||||
|
addNetworkMessage(RadarSetParametersMessage.class, RadarSetParametersMessage::encode, RadarSetParametersMessage::decode, RadarSetParametersMessage::handler);
|
||||||
|
|
||||||
event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)),
|
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())));
|
Ingredient.of(Items.LIGHTNING_ROD), PotionUtils.setPotion(new ItemStack(Items.POTION), ModPotion.SHOCK.get())));
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.atsuishio.superbwarfare.client.screens;
|
||||||
import com.atsuishio.superbwarfare.ModUtils;
|
import com.atsuishio.superbwarfare.ModUtils;
|
||||||
import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity;
|
import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity;
|
||||||
import com.atsuishio.superbwarfare.menu.FuMO25Menu;
|
import com.atsuishio.superbwarfare.menu.FuMO25Menu;
|
||||||
|
import com.atsuishio.superbwarfare.network.message.RadarChangeModeMessage;
|
||||||
|
import com.atsuishio.superbwarfare.network.message.RadarSetParametersMessage;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.AbstractButton;
|
import net.minecraft.client.gui.components.AbstractButton;
|
||||||
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
||||||
|
@ -113,7 +115,7 @@ public class FuMO25Screen extends AbstractContainerScreen<FuMO25Menu> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPress() {
|
public void onPress() {
|
||||||
|
ModUtils.PACKET_HANDLER.sendToServer(new RadarSetParametersMessage((byte) 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -138,7 +140,7 @@ public class FuMO25Screen extends AbstractContainerScreen<FuMO25Menu> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPress() {
|
public void onPress() {
|
||||||
|
ModUtils.PACKET_HANDLER.sendToServer(new RadarChangeModeMessage((byte) this.mode));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -157,6 +157,10 @@ public class FuMO25Menu extends EnergyMenu {
|
||||||
return this.containerData.get(1);
|
return this.containerData.get(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setFuncType(byte type) {
|
||||||
|
this.containerData.set(1, type);
|
||||||
|
}
|
||||||
|
|
||||||
public long getTime() {
|
public long getTime() {
|
||||||
return this.containerData.get(2);
|
return this.containerData.get(2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
package com.atsuishio.superbwarfare.network.message;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.menu.FuMO25Menu;
|
||||||
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
|
import net.minecraftforge.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class RadarChangeModeMessage {
|
||||||
|
|
||||||
|
private final byte mode;
|
||||||
|
|
||||||
|
public RadarChangeModeMessage(byte mode) {
|
||||||
|
this.mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(RadarChangeModeMessage message, FriendlyByteBuf buffer) {
|
||||||
|
buffer.writeByte(message.mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RadarChangeModeMessage decode(FriendlyByteBuf buffer) {
|
||||||
|
return new RadarChangeModeMessage(buffer.readByte());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handler(RadarChangeModeMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
byte mode = message.mode;
|
||||||
|
if (mode < 1 || mode > 4) return;
|
||||||
|
|
||||||
|
ServerPlayer player = ctx.get().getSender();
|
||||||
|
if (player == null) return;
|
||||||
|
|
||||||
|
AbstractContainerMenu menu = player.containerMenu;
|
||||||
|
if (menu instanceof FuMO25Menu fuMO25Menu) {
|
||||||
|
if (!player.containerMenu.stillValid(player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fuMO25Menu.setFuncType(mode);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.atsuishio.superbwarfare.network.message;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.menu.FuMO25Menu;
|
||||||
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
|
import net.minecraftforge.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class RadarSetParametersMessage {
|
||||||
|
|
||||||
|
private final byte mode;
|
||||||
|
|
||||||
|
public RadarSetParametersMessage(byte mode) {
|
||||||
|
this.mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(RadarSetParametersMessage message, FriendlyByteBuf buffer) {
|
||||||
|
buffer.writeByte(message.mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RadarSetParametersMessage decode(FriendlyByteBuf buffer) {
|
||||||
|
return new RadarSetParametersMessage(buffer.readByte());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handler(RadarSetParametersMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
ServerPlayer player = ctx.get().getSender();
|
||||||
|
if (player == null) return;
|
||||||
|
|
||||||
|
AbstractContainerMenu menu = player.containerMenu;
|
||||||
|
if (menu instanceof FuMO25Menu fuMO25Menu) {
|
||||||
|
if (!player.containerMenu.stillValid(player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fuMO25Menu.setPosToParameters();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue