mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-23 20:34:51 +01:00
implement furniture make system
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.home.FurnitureMakeSlotItem;
|
||||
import emu.grasscutter.game.home.GameHome;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeRspOuterClass;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeSlotOuterClass;
|
||||
|
||||
public class PacketFurnitureMakeRsp extends BasePacket {
|
||||
|
||||
public PacketFurnitureMakeRsp(GameHome home) {
|
||||
super(PacketOpcodes.FurnitureMakeRsp);
|
||||
|
||||
var proto = FurnitureMakeRspOuterClass.FurnitureMakeRsp.newBuilder();
|
||||
|
||||
proto.setFurnitureMakeSlot(FurnitureMakeSlotOuterClass.FurnitureMakeSlot.newBuilder()
|
||||
.addAllFurnitureMakeDataList(home.getFurnitureMakeSlotItemList().stream()
|
||||
.map(FurnitureMakeSlotItem::toProto)
|
||||
.toList())
|
||||
.build());
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeDataOuterClass;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeSlotOuterClass;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeStartRspOuterClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketFurnitureMakeStartRsp extends BasePacket {
|
||||
|
||||
public PacketFurnitureMakeStartRsp(int ret, List<FurnitureMakeDataOuterClass.FurnitureMakeData> furnitureMakeData) {
|
||||
super(PacketOpcodes.FurnitureMakeStartRsp);
|
||||
|
||||
var proto = FurnitureMakeStartRspOuterClass.FurnitureMakeStartRsp.newBuilder();
|
||||
|
||||
proto.setRetcode(ret);
|
||||
|
||||
if(furnitureMakeData != null){
|
||||
proto.setFurnitureMakeSlot(FurnitureMakeSlotOuterClass.FurnitureMakeSlot.newBuilder()
|
||||
.addAllFurnitureMakeDataList(furnitureMakeData)
|
||||
.build());
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -12,13 +12,16 @@ import java.util.Collection;
|
||||
|
||||
public class PacketHomeMarkPointNotify extends BasePacket {
|
||||
|
||||
public PacketHomeMarkPointNotify(Player player, GameHome home) {
|
||||
public PacketHomeMarkPointNotify(Player player) {
|
||||
super(PacketOpcodes.HomeMarkPointNotify);
|
||||
|
||||
var proto = HomeMarkPointNotifyOuterClass.HomeMarkPointNotify.newBuilder();
|
||||
|
||||
if(player.getRealmList() == null){
|
||||
return;
|
||||
}
|
||||
for(var moduleId : player.getRealmList()){
|
||||
var homeScene = home.getHomeSceneItem(moduleId + 2000);
|
||||
var homeScene = player.getHome().getHomeSceneItem(moduleId + 2000);
|
||||
|
||||
var markPointData = HomeMarkPointSceneDataOuterClass.HomeMarkPointSceneData.newBuilder()
|
||||
.setModuleId(moduleId)
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.data.common.ItemParamData;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeDataOuterClass;
|
||||
import emu.grasscutter.net.proto.FurnitureMakeSlotOuterClass;
|
||||
import emu.grasscutter.net.proto.ItemParamOuterClass;
|
||||
import emu.grasscutter.net.proto.TakeFurnitureMakeRspOuterClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketTakeFurnitureMakeRsp extends BasePacket {
|
||||
|
||||
public PacketTakeFurnitureMakeRsp(int ret,
|
||||
int makeId,
|
||||
List<ItemParamOuterClass.ItemParam> output,
|
||||
List<FurnitureMakeDataOuterClass.FurnitureMakeData> others) {
|
||||
super(PacketOpcodes.TakeFurnitureMakeRsp);
|
||||
|
||||
var proto = TakeFurnitureMakeRspOuterClass.TakeFurnitureMakeRsp.newBuilder();
|
||||
|
||||
proto.setRetcode(ret)
|
||||
.setMakeId(makeId);
|
||||
|
||||
if(output != null){
|
||||
proto.addAllOutputItemList(output);
|
||||
}
|
||||
|
||||
if(others != null){
|
||||
proto.setFurnitureMakeSlot(FurnitureMakeSlotOuterClass.FurnitureMakeSlot.newBuilder()
|
||||
.addAllFurnitureMakeDataList(others)
|
||||
.build());
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -4,22 +4,16 @@ import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.UnlockedFurnitureFormulaDataNotifyOuterClass;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class PacketUnlockedFurnitureFormulaDataNotify extends BasePacket {
|
||||
|
||||
public PacketUnlockedFurnitureFormulaDataNotify() {
|
||||
public PacketUnlockedFurnitureFormulaDataNotify(Set<Integer> unlockList) {
|
||||
super(PacketOpcodes.UnlockedFurnitureFormulaDataNotify);
|
||||
|
||||
var proto = UnlockedFurnitureFormulaDataNotifyOuterClass.UnlockedFurnitureFormulaDataNotify.newBuilder();
|
||||
|
||||
proto.addFurnitureIdList(361207);
|
||||
proto.addFurnitureIdList(362202);
|
||||
proto.addFurnitureIdList(362304);
|
||||
proto.addFurnitureIdList(363102);
|
||||
proto.addFurnitureIdList(363103);
|
||||
proto.addFurnitureIdList(363203);
|
||||
proto.addFurnitureIdList(370201);
|
||||
proto.addFurnitureIdList(370302);
|
||||
|
||||
proto.addAllFurnitureIdList(unlockList);
|
||||
proto.setIsAll(true);
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.UnlockedFurnitureSuiteDataNotifyOuterClass;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class PacketUnlockedFurnitureSuiteDataNotify extends BasePacket {
|
||||
|
||||
public PacketUnlockedFurnitureSuiteDataNotify(Set<Integer> unlockList) {
|
||||
super(PacketOpcodes.UnlockedFurnitureSuiteDataNotify);
|
||||
|
||||
var proto = UnlockedFurnitureSuiteDataNotifyOuterClass.UnlockedFurnitureSuiteDataNotify.newBuilder();
|
||||
|
||||
proto.addAllFurnitureSuiteIdList(unlockList);
|
||||
proto.setIsAll(true);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user