From a8c4b22261294655151fdad5c36f14abff436038 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Mon, 16 Oct 2023 04:28:28 -0700 Subject: [PATCH] Refactor `GameAvatar` --- .../emu/lunarcore/game/avatar/GameAvatar.java | 15 +++++++++++++-- .../lunarcore/game/scene/entity/GameEntity.java | 5 +++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/lunarcore/game/avatar/GameAvatar.java b/src/main/java/emu/lunarcore/game/avatar/GameAvatar.java index f4ebe78..9a2bdc0 100644 --- a/src/main/java/emu/lunarcore/game/avatar/GameAvatar.java +++ b/src/main/java/emu/lunarcore/game/avatar/GameAvatar.java @@ -32,6 +32,7 @@ import emu.lunarcore.proto.SceneEntityInfoOuterClass.SceneEntityInfo; import emu.lunarcore.proto.SpBarInfoOuterClass.SpBarInfo; import emu.lunarcore.proto.VectorOuterClass.Vector; import emu.lunarcore.server.packet.send.PacketPlayerSyncScNotify; +import emu.lunarcore.util.Position; import it.unimi.dsi.fastutil.ints.*; import lombok.Getter; import lombok.Setter; @@ -112,12 +113,22 @@ public class GameAvatar implements GameEntity { this.owner = player; this.ownerUid = player.getUid(); } - + @Override public void setEntityId(int entityId) { this.entityId = entityId; } + @Override + public Position getPos() { + return this.getOwner().getPos(); + } + + @Override + public Position getRot() { + return this.getOwner().getRot(); + } + public boolean isHero() { return GameData.getHeroExcelMap().containsKey(this.getAvatarId()); } @@ -269,7 +280,7 @@ public class GameAvatar implements GameEntity { public SceneEntityInfo toSceneEntityProto() { var proto = SceneEntityInfo.newInstance() .setEntityId(this.getEntityId()) - .setMotion(MotionInfo.newInstance().setPos(getOwner().getPos().toProto()).setRot(getOwner().getRot().toProto())) + .setMotion(MotionInfo.newInstance().setPos(this.getPos().toProto()).setRot(this.getRot().toProto())) .setActor(SceneActorInfo.newInstance().setBaseAvatarId(this.getAvatarId()).setAvatarType(AvatarType.AVATAR_FORMAL_TYPE)); return proto; diff --git a/src/main/java/emu/lunarcore/game/scene/entity/GameEntity.java b/src/main/java/emu/lunarcore/game/scene/entity/GameEntity.java index a23732f..ca06dd5 100644 --- a/src/main/java/emu/lunarcore/game/scene/entity/GameEntity.java +++ b/src/main/java/emu/lunarcore/game/scene/entity/GameEntity.java @@ -2,6 +2,7 @@ package emu.lunarcore.game.scene.entity; import emu.lunarcore.game.scene.Scene; import emu.lunarcore.proto.SceneEntityInfoOuterClass.SceneEntityInfo; +import emu.lunarcore.util.Position; public interface GameEntity { @@ -10,6 +11,10 @@ public interface GameEntity { public void setEntityId(int id); public Scene getScene(); + + public Position getPos(); + + public Position getRot(); public default int getGroupId() { return 0;