Skip to content

Commit

Permalink
完成一部分迁移内容
Browse files Browse the repository at this point in the history
  • Loading branch information
TartaricAcid committed Dec 17, 2023
1 parent 35d38a7 commit 820b5ad
Show file tree
Hide file tree
Showing 10 changed files with 78 additions and 64 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import com.github.tartaricacid.touhoulittlemaid.util.RenderHelper;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.util.math.BlockPos;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.BlockPos;
import net.minecraft.util.math.BlockPos;
import net.minecraft.network.chat.Component;
import org.apache.commons.lang3.StringUtils;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.util.math.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.network.chat.Component;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@

import com.github.tartaricacid.touhoulittlemaid.TouhouLittleMaid;
import com.github.tartaricacid.touhoulittlemaid.api.game.gomoku.Point;
import com.github.tartaricacid.touhoulittlemaid.api.gomoku.Point;
import com.github.tartaricacid.touhoulittlemaid.network.NetworkHandler;
import net.minecraft.Util;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraft.network.PacketBuffer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.fml.network.NetworkEvent;

import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
Expand All @@ -25,7 +26,7 @@ public ChessDataToClientMessage(BlockPos pos, int[][] chessData, Point point) {
this.point = point;
}

public static void encode(ChessDataToClientMessage message, FriendlyByteBuf buf) {
public static void encode(ChessDataToClientMessage message, PacketBuffer buf) {
buf.writeBlockPos(message.pos);
buf.writeVarInt(message.chessData.length);
for (int[] row : message.chessData) {
Expand All @@ -36,7 +37,7 @@ public static void encode(ChessDataToClientMessage message, FriendlyByteBuf buf)
buf.writeVarInt(message.point.type);
}

public static ChessDataToClientMessage decode(FriendlyByteBuf buf) {
public static ChessDataToClientMessage decode(PacketBuffer buf) {
BlockPos blockPos = buf.readBlockPos();
int length = buf.readVarInt();
int[][] chessData = new int[length][length];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package com.github.tartaricacid.touhoulittlemaid.network.message;

import com.github.tartaricacid.touhoulittlemaid.TouhouLittleMaid;
import com.github.tartaricacid.touhoulittlemaid.api.game.gomoku.Point;
import com.github.tartaricacid.touhoulittlemaid.api.game.gomoku.Statue;
import com.github.tartaricacid.touhoulittlemaid.api.gomoku.Point;
import com.github.tartaricacid.touhoulittlemaid.api.gomoku.Statue;
import com.github.tartaricacid.touhoulittlemaid.entity.item.EntitySit;
import com.github.tartaricacid.touhoulittlemaid.entity.passive.EntityMaid;
import com.github.tartaricacid.touhoulittlemaid.init.InitSounds;
import com.github.tartaricacid.touhoulittlemaid.tileentity.TileEntityGomoku;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkEvent;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.Hand;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.fml.network.NetworkEvent;

import java.util.function.Supplier;

Expand All @@ -27,14 +27,14 @@ public ChessDataToServerMessage(BlockPos pos, Point point) {
this.point = point;
}

public static void encode(ChessDataToServerMessage message, FriendlyByteBuf buf) {
public static void encode(ChessDataToServerMessage message, PacketBuffer buf) {
buf.writeBlockPos(message.pos);
buf.writeVarInt(message.point.x);
buf.writeVarInt(message.point.y);
buf.writeVarInt(message.point.type);
}

public static ChessDataToServerMessage decode(FriendlyByteBuf buf) {
public static ChessDataToServerMessage decode(PacketBuffer buf) {
BlockPos blockPos = buf.readBlockPos();
Point pointIn = new Point(buf.readVarInt(), buf.readVarInt(), buf.readVarInt());
return new ChessDataToServerMessage(blockPos, pointIn);
Expand All @@ -44,11 +44,11 @@ public static void handle(ChessDataToServerMessage message, Supplier<NetworkEven
NetworkEvent.Context context = contextSupplier.get();
if (context.getDirection().getReceptionSide().isServer()) {
context.enqueueWork(() -> {
ServerPlayer sender = context.getSender();
ServerPlayerEntity sender = context.getSender();
if (sender == null) {
return;
}
Level level = sender.level;
World level = sender.level;
if (!level.isLoaded(message.pos)) {
return;
}
Expand All @@ -58,11 +58,15 @@ public static void handle(ChessDataToServerMessage message, Supplier<NetworkEven
}
Point aiPoint = message.point;
gomoku.setChessData(aiPoint.x, aiPoint.y, aiPoint.type);
if (level instanceof ServerLevel serverLevel && serverLevel.getEntity(gomoku.getSitId()) instanceof EntitySit sit && sit.getFirstPassenger() instanceof EntityMaid maid) {
maid.swing(InteractionHand.MAIN_HAND);
if (level instanceof ServerWorld && ((ServerWorld) level).getEntity(gomoku.getSitId()) instanceof EntitySit
&& ((EntitySit) ((ServerWorld) level).getEntity(gomoku.getSitId())).getFirstPassenger() instanceof EntityMaid) {
EntityMaid maid = (EntityMaid) ((EntitySit) ((ServerWorld) level).getEntity(gomoku.getSitId())).getFirstPassenger();
EntitySit sit = (EntitySit) ((ServerWorld) level).getEntity(gomoku.getSitId());
ServerWorld serverLevel = (ServerWorld) level;
maid.swing(Hand.MAIN_HAND);
}
gomoku.setInProgress(TouhouLittleMaid.SERVICE.getStatue(gomoku.getChessData(), aiPoint) == Statue.IN_PROGRESS);
level.playSound(null, message.pos, InitSounds.GOMOKU.get(), SoundSource.BLOCKS, 1.0f, 0.8F + level.random.nextFloat() * 0.4F);
level.playSound(null, message.pos, InitSounds.GOMOKU.get(), SoundCategory.BLOCKS, 1.0f, 0.8F + level.random.nextFloat() * 0.4F);
if (gomoku.isInProgress()) {
gomoku.setPlayerTurn(true);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.chat.Component;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.fml.network.NetworkEvent;

import java.util.List;
import java.util.Map;
Expand All @@ -22,7 +22,7 @@ public FoxScrollMessage(Map<String, List<FoxScrollData>> data) {
this.data = data;
}

public static void encode(FoxScrollMessage message, FriendlyByteBuf buf) {
public static void encode(FoxScrollMessage message, PacketBuffer buf) {
buf.writeVarInt(message.data.size());
message.data.forEach((dim, scrollData) -> {
buf.writeVarInt(scrollData.size());
Expand All @@ -31,7 +31,7 @@ public static void encode(FoxScrollMessage message, FriendlyByteBuf buf) {
});
}

public static FoxScrollMessage decode(FriendlyByteBuf buf) {
public static FoxScrollMessage decode(PacketBuffer buf) {
Map<String, List<FoxScrollData>> data = Maps.newHashMap();
int dimLength = buf.readVarInt();
for (int i = 0; i < dimLength; i++) {
Expand Down Expand Up @@ -70,13 +70,13 @@ public FoxScrollData(BlockPos pos, Component name, long timestamp) {
this.timestamp = timestamp;
}

public static void encode(FoxScrollData data, FriendlyByteBuf buf) {
public static void encode(FoxScrollData data, PacketBuffer buf) {
buf.writeBlockPos(data.pos);
buf.writeComponent(data.name);
buf.writeLong(data.timestamp);
}

public static FoxScrollData decode(FriendlyByteBuf buf) {
public static FoxScrollData decode(PacketBuffer buf) {
return new FoxScrollData(buf.readBlockPos(), buf.readComponent(), buf.readLong());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.github.tartaricacid.touhoulittlemaid.network.message;

import com.github.tartaricacid.touhoulittlemaid.item.ItemFoxScroll;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraft.network.PacketBuffer;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.fml.network.NetworkEvent;

import java.util.function.Supplier;

Expand All @@ -18,12 +18,12 @@ public SetScrollData(String dimension, BlockPos pos) {
this.pos = pos;
}

public static void encode(SetScrollData message, FriendlyByteBuf buf) {
public static void encode(SetScrollData message, PacketBuffer buf) {
buf.writeUtf(message.dimension);
buf.writeBlockPos(message.pos);
}

public static SetScrollData decode(FriendlyByteBuf buf) {
public static SetScrollData decode(PacketBuffer buf) {
return new SetScrollData(buf.readUtf(), buf.readBlockPos());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
package com.github.tartaricacid.touhoulittlemaid.util;

import net.minecraft.util.math.vector.Matrix4f;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.sun.javafx.geom.Vec3d;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

@OnlyIn(Dist.CLIENT)
public final class RenderHelper {
public static void renderFloatingText(PoseStack poseStack, String text, Vec3 vec, int color, float scale, float yOffset) {
public static void renderFloatingText(MatrixStack poseStack, String text, Vec3d vec, int color, float scale, float yOffset) {
renderFloatingText(poseStack, text, vec.x + 0.5, vec.y + 1.5, vec.z + 0.5, color, scale, true, yOffset, true);
}

public static void renderFloatingText(PoseStack poseStack, String text, double x, double y, double z, int color, float scale, boolean center, float yOffset, boolean seeThrough) {
public static void renderFloatingText(MatrixStack poseStack, String text, double x, double y, double z, int color, float scale, boolean center, float yOffset, boolean seeThrough) {
Minecraft minecraft = Minecraft.getInstance();
MultiBufferSource.BufferSource buffer = minecraft.renderBuffers().bufferSource();
Camera camera = minecraft.gameRenderer.getMainCamera();
IRenderTypeBuffer.Impl buffer = minecraft.renderBuffers().bufferSource();
ActiveRenderInfo camera = minecraft.gameRenderer.getMainCamera();
if (camera.isInitialized()) {
Font font = minecraft.font;
FontRenderer font = minecraft.font;
double viewX = camera.getPosition().x;
double viewY = camera.getPosition().y;
double viewZ = camera.getPosition().z;
poseStack.pushPose();
poseStack.translate((float) (x - viewX), (float) (y - viewY) + 0.07F, (float) (z - viewZ));
poseStack.mulPoseMatrix((new Matrix4f()).rotation(camera.rotation()));
poseStack.mulPose(camera.rotation());
poseStack.scale(-scale, -scale, scale);
float fontX = center ? (float) (-font.width(text)) / 2.0F : 0.0F;
font.drawInBatch(text, fontX, yOffset, color, false, poseStack.last().pose(), buffer, seeThrough ? Font.DisplayMode.SEE_THROUGH : Font.DisplayMode.NORMAL, 0, 0xf000f0);
font.drawInBatch(text, fontX, yOffset, color, false, poseStack.last().pose(), buffer, seeThrough, 0, 0xf000f0);
poseStack.popPose();
buffer.endBatch();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.tartaricacid.touhoulittlemaid.world.data;

import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;

import java.util.UUID;

Expand All @@ -11,9 +11,9 @@ public final class MaidInfo {
private final UUID ownerId;
private final UUID entityId;
private final long timestamp;
private final Component name;
private final ITextComponent name;

public MaidInfo(String dimension, BlockPos chunkPos, UUID ownerId, UUID entityId, long timestamp, Component name) {
public MaidInfo(String dimension, BlockPos chunkPos, UUID ownerId, UUID entityId, long timestamp, ITextComponent name) {
this.dimension = dimension;
this.chunkPos = chunkPos;
this.ownerId = ownerId;
Expand Down Expand Up @@ -42,7 +42,7 @@ public long getTimestamp() {
return timestamp;
}

public Component getName() {
public ITextComponent getName() {
return name;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,51 @@
import com.github.tartaricacid.touhoulittlemaid.entity.passive.EntityMaid;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.nbt.Tag;
import net.minecraft.nbt.*;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerWorld;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.saveddata.SavedData;
import net.minecraft.world.level.storage.DimensionDataStorage;
import net.minecraft.world.server.ServerWorld;
import net.minecraft.world.storage.DimensionSavedDataManager;
import net.minecraft.world.storage.WorldSavedData;

import javax.annotation.Nullable;
import java.util.List;
import java.util.Map;
import java.util.UUID;

public class MaidWorldData extends SavedData {
public class MaidWorldData extends WorldSavedData {
private static final String IDENTIFIER = "touhou_little_maid_world_data";
private static final String MAID_INFOS_TAG = "MaidInfos";
private static final String MAID_TOMBSTONES_TAG = "MaidTombstones";
private final Map<UUID, List<MaidInfo>> infos = Maps.newHashMap();
private final Map<UUID, List<MaidInfo>> tombstones = Maps.newHashMap();

public MaidWorldData() {
super(IDENTIFIER);
}

@Nullable
public static MaidWorldData get(Level level) {
if (level instanceof ServerLevel) {
ServerLevel overWorld = level.getServer().getLevel(Level.OVERWORLD);
public static MaidWorldData get(World level) {
if (level instanceof ServerWorld) {
ServerWorld overWorld = level.getServer().getLevel(World.OVERWORLD);
if (overWorld == null) {
return null;
}
DimensionDataStorage storage = overWorld.getDataStorage();
DimensionSavedDataManager storage = overWorld.getDataStorage();
MaidWorldData data = storage.computeIfAbsent(MaidWorldData::load, MaidWorldData::new, IDENTIFIER);
data.setDirty();
return data;
}
return null;
}

public static MaidWorldData load(CompoundTag tag) {
public static MaidWorldData load(CompoundNBT tag) {
MaidWorldData data = new MaidWorldData();
if (tag.contains(MAID_INFOS_TAG, Tag.TAG_COMPOUND)) {
CompoundTag infosTag = tag.getCompound(MAID_INFOS_TAG);
Expand Down Expand Up @@ -84,7 +88,7 @@ public static MaidWorldData load(CompoundTag tag) {
}

@Override
public CompoundTag save(CompoundTag tag) {
public CompoundNBT save(CompoundNBT tag) {
CompoundTag infosTag = new CompoundTag();
infos.forEach((id, data) -> {
ListTag listTag = new ListTag();
Expand Down

0 comments on commit 820b5ad

Please sign in to comment.