mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-22 22:00:02 +08:00
Merge remote-tracking branch 'origin/dev-4.0' into dev-4.0
# Conflicts: # src/main/java/emu/grasscutter/game/player/Player.java # src/main/java/emu/grasscutter/game/player/TeamManager.java # src/main/java/emu/grasscutter/game/world/Scene.java
This commit is contained in:
@@ -4,33 +4,57 @@ import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.binout.*;
|
||||
import emu.grasscutter.data.binout.config.*;
|
||||
import emu.grasscutter.data.binout.routes.Route;
|
||||
import emu.grasscutter.data.custom.*;
|
||||
import emu.grasscutter.data.custom.TrialAvatarActivityCustomData;
|
||||
import emu.grasscutter.data.custom.TrialAvatarCustomData;
|
||||
import emu.grasscutter.data.excels.*;
|
||||
import emu.grasscutter.data.excels.achievement.*;
|
||||
import emu.grasscutter.data.excels.activity.*;
|
||||
import emu.grasscutter.data.excels.achievement.AchievementData;
|
||||
import emu.grasscutter.data.excels.achievement.AchievementGoalData;
|
||||
import emu.grasscutter.data.excels.activity.ActivityCondExcelConfigData;
|
||||
import emu.grasscutter.data.excels.activity.ActivityData;
|
||||
import emu.grasscutter.data.excels.activity.ActivityShopData;
|
||||
import emu.grasscutter.data.excels.activity.ActivityWatcherData;
|
||||
import emu.grasscutter.data.excels.avatar.*;
|
||||
import emu.grasscutter.data.excels.codex.*;
|
||||
import emu.grasscutter.data.excels.dungeon.*;
|
||||
import emu.grasscutter.data.excels.giving.*;
|
||||
import emu.grasscutter.data.excels.monster.*;
|
||||
import emu.grasscutter.data.excels.quest.*;
|
||||
import emu.grasscutter.data.excels.reliquary.*;
|
||||
import emu.grasscutter.data.excels.giving.GivingData;
|
||||
import emu.grasscutter.data.excels.giving.GivingGroupData;
|
||||
import emu.grasscutter.data.excels.monster.MonsterCurveData;
|
||||
import emu.grasscutter.data.excels.monster.MonsterData;
|
||||
import emu.grasscutter.data.excels.monster.MonsterDescribeData;
|
||||
import emu.grasscutter.data.excels.monster.MonsterSpecialNameData;
|
||||
import emu.grasscutter.data.excels.quest.QuestData;
|
||||
import emu.grasscutter.data.excels.quest.QuestGlobalVarData;
|
||||
import emu.grasscutter.data.excels.reliquary.ReliquaryAffixData;
|
||||
import emu.grasscutter.data.excels.reliquary.ReliquaryLevelData;
|
||||
import emu.grasscutter.data.excels.reliquary.ReliquaryMainPropData;
|
||||
import emu.grasscutter.data.excels.reliquary.ReliquarySetData;
|
||||
import emu.grasscutter.data.excels.scene.*;
|
||||
import emu.grasscutter.data.excels.tower.*;
|
||||
import emu.grasscutter.data.excels.tower.TowerFloorData;
|
||||
import emu.grasscutter.data.excels.tower.TowerLevelData;
|
||||
import emu.grasscutter.data.excels.tower.TowerScheduleData;
|
||||
import emu.grasscutter.data.excels.trial.*;
|
||||
import emu.grasscutter.data.excels.weapon.*;
|
||||
import emu.grasscutter.data.excels.world.*;
|
||||
import emu.grasscutter.data.excels.weapon.WeaponCurveData;
|
||||
import emu.grasscutter.data.excels.weapon.WeaponLevelData;
|
||||
import emu.grasscutter.data.excels.weapon.WeaponPromoteData;
|
||||
import emu.grasscutter.data.excels.world.WeatherData;
|
||||
import emu.grasscutter.data.excels.world.WorldAreaData;
|
||||
import emu.grasscutter.data.excels.world.WorldLevelData;
|
||||
import emu.grasscutter.data.server.*;
|
||||
import emu.grasscutter.game.dungeons.DungeonDropEntry;
|
||||
import emu.grasscutter.game.quest.*;
|
||||
import emu.grasscutter.game.quest.QuestEncryptionKey;
|
||||
import emu.grasscutter.game.quest.RewindData;
|
||||
import emu.grasscutter.game.quest.TeleportData;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import emu.grasscutter.game.world.GroupReplacementData;
|
||||
import emu.grasscutter.utils.Utils;
|
||||
import it.unimi.dsi.fastutil.ints.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.val;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
import javax.annotation.Nullable;
|
||||
import lombok.*;
|
||||
|
||||
@SuppressWarnings({"unused", "MismatchedQueryAndUpdateOfCollection"})
|
||||
public final class GameData {
|
||||
@@ -265,6 +289,10 @@ public final class GameData {
|
||||
private static final Int2ObjectMap<HomeWorldLevelData> homeWorldLevelDataMap =
|
||||
new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@Getter
|
||||
private static final Int2ObjectMap<HomeWorldNPCData> homeWorldNPCDataMap =
|
||||
new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@Getter
|
||||
private static final Int2ObjectMap<InvestigationMonsterData> investigationMonsterDataMap =
|
||||
new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@@ -2,48 +2,49 @@ package emu.grasscutter.data.binout;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import emu.grasscutter.game.world.Position;
|
||||
import java.util.List;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class HomeworldDefaultSaveData {
|
||||
|
||||
@SerializedName(
|
||||
value = "KFHBFNPDJBE",
|
||||
alternate = {"PKACPHDGGEI", "AKOLOBLHDFK"})
|
||||
value = "homeBlockLists",
|
||||
alternate = {"PKACPHDGGEI", "AKOLOBLHDFK", "KFHBFNPDJBE"})
|
||||
List<HomeBlock> homeBlockLists;
|
||||
|
||||
@SerializedName(
|
||||
value = "IJNPADKGNKE",
|
||||
alternate = {"MINCKHBNING", "MBICDPDEKDM"})
|
||||
value = "bornPos",
|
||||
alternate = {"MINCKHBNING", "MBICDPDEKDM", "IJNPADKGNKE"})
|
||||
Position bornPos;
|
||||
|
||||
@SerializedName(
|
||||
value = "IPIIGEMFLHK",
|
||||
alternate = {"EJJIOJKFKCO"})
|
||||
value = "bornRot",
|
||||
alternate = {"EJJIOJKFKCO", "IPIIGEMFLHK"})
|
||||
Position bornRot;
|
||||
|
||||
@SerializedName(
|
||||
value = "HHOLBNPIHEM",
|
||||
alternate = {"CJAKHCIFHNP"})
|
||||
value = "djinPos",
|
||||
alternate = {"CJAKHCIFHNP", "HHOLBNPIHEM"})
|
||||
Position djinPos;
|
||||
|
||||
@SerializedName(
|
||||
value = "KNHCJKHCOAN",
|
||||
alternate = {"AMDNOHPGKMI"})
|
||||
value = "mainhouse",
|
||||
alternate = {"AMDNOHPGKMI", "KNHCJKHCOAN"})
|
||||
HomeFurniture mainhouse;
|
||||
|
||||
@SerializedName(
|
||||
value = "NIHOJFEKFPG",
|
||||
alternate = {"BHCPEAOPIDC"})
|
||||
value = "doorLists",
|
||||
alternate = {"BHCPEAOPIDC", "NIHOJFEKFPG"})
|
||||
List<HomeFurniture> doorLists;
|
||||
|
||||
@SerializedName(
|
||||
value = "EPGELGEFJFK",
|
||||
alternate = {"AABEPENIFLN"})
|
||||
value = "stairLists",
|
||||
alternate = {"AABEPENIFLN", "EPGELGEFJFK"})
|
||||
List<HomeFurniture> stairLists;
|
||||
|
||||
@Data
|
||||
@@ -51,18 +52,18 @@ public class HomeworldDefaultSaveData {
|
||||
public static class HomeBlock {
|
||||
|
||||
@SerializedName(
|
||||
value = "FGIJCELCGFI",
|
||||
alternate = {"PGDPDIDJEEL", "ANICBLBOBKD"})
|
||||
value = "blockId",
|
||||
alternate = {"PGDPDIDJEEL", "ANICBLBOBKD", "FGIJCELCGFI"})
|
||||
int blockId;
|
||||
|
||||
@SerializedName(
|
||||
value = "BEAPOFELABD",
|
||||
alternate = {"NCIMIKKFLOH"})
|
||||
value = "furnitures",
|
||||
alternate = {"NCIMIKKFLOH", "BEAPOFELABD"})
|
||||
List<HomeFurniture> furnitures;
|
||||
|
||||
@SerializedName(
|
||||
value = "MLIODLGDFHJ",
|
||||
alternate = {"GJGNLIINBGB"})
|
||||
value = "persistentFurnitures",
|
||||
alternate = {"GJGNLIINBGB", "MLIODLGDFHJ"})
|
||||
List<HomeFurniture> persistentFurnitures;
|
||||
}
|
||||
|
||||
@@ -71,15 +72,18 @@ public class HomeworldDefaultSaveData {
|
||||
public static class HomeFurniture {
|
||||
|
||||
@SerializedName(
|
||||
value = "ENHNGKJBJAB",
|
||||
alternate = {"KMAAJJHPNBA", "FFLCGFGGGND"})
|
||||
value = "id",
|
||||
alternate = {"KMAAJJHPNBA", "FFLCGFGGGND", "ENHNGKJBJAB"})
|
||||
int id;
|
||||
|
||||
@SerializedName(
|
||||
value = "NGIEEIOLPPO",
|
||||
alternate = {"JFKAHNCPDME", "BPCGGBKIAMG"})
|
||||
value = "pos",
|
||||
alternate = {"JFKAHNCPDME", "BPCGGBKIAMG", "NGIEEIOLPPO"})
|
||||
Position pos;
|
||||
// @SerializedName(value = "HEOCEHKEBFM", alternate = "LKCKOOGFDBM")
|
||||
|
||||
@SerializedName(
|
||||
value = "rot",
|
||||
alternate = {"LKCKOOGFDBM", "HEOCEHKEBFM"})
|
||||
Position rot;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,10 @@ import lombok.experimental.FieldDefaults;
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
@ResourceType(name = {"HomeWorldBgmExcelConfigData.json"})
|
||||
public class HomeWorldBgmData extends GameResource {
|
||||
@SerializedName(value = "homeBgmId", alternate = "MJJENLEBKEF")
|
||||
@SerializedName(value = "homeBgmId", alternate = {"MJJENLEBKEF"})
|
||||
private int homeBgmId;
|
||||
|
||||
@SerializedName(value = "isDefaultUnlock", alternate = {"GBEONILEOBA"})
|
||||
private boolean isDefaultUnlock;
|
||||
private boolean NBIDHGOOCKD;
|
||||
private boolean JJMNJMCCOKP;
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package emu.grasscutter.data.excels;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import emu.grasscutter.data.GameResource;
|
||||
import emu.grasscutter.data.ResourceType;
|
||||
import emu.grasscutter.game.inventory.ItemQuality;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ResourceType(name = "HomeWorldNPCExcelConfigData.json")
|
||||
@Getter
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class HomeWorldNPCData extends GameResource {
|
||||
int furnitureID;
|
||||
int avatarID;
|
||||
@SerializedName(value = "npcId", alternate = {"HDLJMOGHICL"})
|
||||
int npcId;
|
||||
@SerializedName(value = "talkIdList", alternate = {"CKMCLCNIBLD"})
|
||||
List<Integer> talkIdList;
|
||||
@SerializedName(value = "isTalkRandomly", alternate = {"HPJMMEBNMAI"})
|
||||
boolean isTalkRandomly;
|
||||
@SerializedName(value = "npcQuality", alternate = {"BHJOIKFHIBD"})
|
||||
ItemQuality npcQuality;
|
||||
@SerializedName(value = "titleTextMapHash", alternate = {"GNMAIEGCFPO"})
|
||||
long titleTextMapHash;
|
||||
long descTextMapHash;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return this.avatarID;
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.google.gson.annotations.SerializedName;
|
||||
import emu.grasscutter.data.GameResource;
|
||||
import emu.grasscutter.data.ResourceType;
|
||||
import emu.grasscutter.data.common.ItemUseData;
|
||||
import emu.grasscutter.game.home.SpecialFurnitureType;
|
||||
import emu.grasscutter.game.inventory.EquipType;
|
||||
import emu.grasscutter.game.inventory.ItemType;
|
||||
import emu.grasscutter.game.inventory.MaterialType;
|
||||
@@ -13,10 +14,11 @@ import emu.grasscutter.game.props.ItemUseOp;
|
||||
import emu.grasscutter.game.props.ItemUseTarget;
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||
import it.unimi.dsi.fastutil.ints.IntSet;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import lombok.Getter;
|
||||
|
||||
@ResourceType(
|
||||
name = {
|
||||
@@ -86,6 +88,7 @@ public class ItemData extends GameResource {
|
||||
private int comfort;
|
||||
private List<Integer> furnType;
|
||||
private List<Integer> furnitureGadgetID;
|
||||
private SpecialFurnitureType specialFurnitureType = SpecialFurnitureType.NOT_SPECIAL;
|
||||
|
||||
@SerializedName(
|
||||
value = "roomSceneId",
|
||||
|
||||
Reference in New Issue
Block a user