mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-18 13:09:54 +08:00
feat: support multiplayer mode in teapot (#2317)
This commit is contained in:
committed by
GitHub
Unverified
parent
667008ecf1
commit
8563d4b574
@@ -6,6 +6,7 @@ import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeMarkPointNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.HomeMarkPointSceneDataOuterClass;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class PacketHomeMarkPointNotify extends BasePacket {
|
||||
@@ -14,28 +15,32 @@ public class PacketHomeMarkPointNotify extends BasePacket {
|
||||
super(PacketOpcodes.HomeMarkPointNotify);
|
||||
|
||||
var proto = HomeMarkPointNotifyOuterClass.HomeMarkPointNotify.newBuilder();
|
||||
var owner = player.getCurHomeWorld().getHost();
|
||||
var home = player.getCurHomeWorld().getHome();
|
||||
|
||||
if (player.getRealmList() == null) {
|
||||
if (owner.getRealmList() == null) {
|
||||
return;
|
||||
}
|
||||
for (var moduleId : player.getRealmList()) {
|
||||
var homeScene = player.getHome().getHomeSceneItem(moduleId + 2000);
|
||||
|
||||
for (var moduleId : owner.getRealmList()) {
|
||||
var homeScene = home.getHomeSceneItem(moduleId + 2000);
|
||||
|
||||
var markPointData =
|
||||
HomeMarkPointSceneDataOuterClass.HomeMarkPointSceneData.newBuilder()
|
||||
.setModuleId(moduleId)
|
||||
.setSceneId(moduleId + 2000)
|
||||
.setTeapotSpiritPos(homeScene.getDjinnPos().toProto());
|
||||
HomeMarkPointSceneDataOuterClass.HomeMarkPointSceneData.newBuilder()
|
||||
.setModuleId(moduleId)
|
||||
.setSceneId(moduleId + 2000)
|
||||
.setSafePointPos(homeScene.getBornPos().toProto())
|
||||
.setTeapotSpiritPos(homeScene.getDjinnPos().toProto());
|
||||
|
||||
// Now it only supports the teleport point
|
||||
// TODO add more types
|
||||
var marks =
|
||||
homeScene.getBlockItems().values().stream()
|
||||
.map(HomeBlockItem::getDeployFurnitureList)
|
||||
.flatMap(Collection::stream)
|
||||
.filter(i -> i.getFurnitureId() == 373501)
|
||||
.map(x -> x.toMarkPointProto(3))
|
||||
.toList();
|
||||
homeScene.getBlockItems().values().stream()
|
||||
.map(HomeBlockItem::getDeployFurnitureList)
|
||||
.flatMap(Collection::stream)
|
||||
.filter(i -> i.getFurnitureId() == 373501)
|
||||
.map(x -> x.toMarkPointProto(3))
|
||||
.toList();
|
||||
|
||||
markPointData.addAllFurnitureList(marks);
|
||||
proto.addMarkPointDataList(markPointData);
|
||||
|
||||
Reference in New Issue
Block a user