mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-06-01 09:50:05 +08:00
daa51e53b7
NOT completely finished, nor is it completely done. Protocol issues remain! (including lack of packet IDs)
63 lines
2.5 KiB
Java
63 lines
2.5 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.BeginCameraSceneLookNotifyOuterClass.BeginCameraSceneLookNotify;
|
|
import emu.grasscutter.utils.Position;
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import lombok.Data;
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.val;
|
|
|
|
public class PacketBeginCameraSceneLookNotify extends BasePacket {
|
|
|
|
public PacketBeginCameraSceneLookNotify(CameraSceneLookNotify parameters) {
|
|
super(PacketOpcodes.BeginCameraSceneLookNotify);
|
|
val builder =
|
|
BeginCameraSceneLookNotify.newBuilder()
|
|
.setLookPos(parameters.lookPos.toProto())
|
|
.setFollowPos(parameters.followPos.toProto())
|
|
.setDuration(parameters.duration)
|
|
.setIsAllowInput(parameters.isAllowInput)
|
|
.setIsSetFollowPos(parameters.setFollowPos)
|
|
.setIsSetScreenXy(parameters.isScreenXY)
|
|
.setIsRecoverKeepCurrent(parameters.recoverKeepCurrent)
|
|
.setIsChangePlayMode(parameters.isChangePlayMode)
|
|
.setScreenY(parameters.screenY)
|
|
.setScreenX(parameters.screenX)
|
|
.setIsForce(parameters.isForce)
|
|
.setIsForce(parameters.isForceWalk)
|
|
.setEntityId(parameters.entityId)
|
|
.addAllOtherParams(parameters.otherParams);
|
|
this.setData(builder);
|
|
}
|
|
|
|
// TODO check default values
|
|
// todo find missing field usages:
|
|
// enum Unk2700_HIAKNNCKHJB (Unk2700_LNCHDDOOECD)
|
|
// Unk3000_MNLLCJMPMNH (uint32)
|
|
// Unk2700_DHAHEKOGHBJ (float)
|
|
// Unk3000_IEFIKMHCKDH (uint32)
|
|
// Unk3000_OGCLMFFADBD (float)
|
|
|
|
@Data
|
|
@NoArgsConstructor
|
|
public static class CameraSceneLookNotify {
|
|
Position lookPos = new Position();
|
|
Position followPos = new Position();
|
|
float duration = 0.0f;
|
|
boolean isAllowInput = true;
|
|
boolean setFollowPos = false;
|
|
boolean isScreenXY = false;
|
|
boolean recoverKeepCurrent = true;
|
|
boolean isForceWalk = false;
|
|
boolean isForce = false;
|
|
boolean isChangePlayMode = false;
|
|
float screenY = 0.0f;
|
|
float screenX = 0.0f;
|
|
int entityId = 0;
|
|
Collection<String> otherParams = new ArrayList<>(0);
|
|
}
|
|
}
|