Implement a new item drops system (#2112)

* 1

* Delete .gitattributes

* implement

* Update PacketDropHintNotify.java

* Update PacketWorldChestOpenNotify.java

* Update FileUtils.java

* Update PacketDropHintNotify.java

* Update WorldDataSystem.java

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
This commit is contained in:
dragon
2023-04-14 10:28:54 +08:00
committed by GitHub
parent eda5e8c5e0
commit f71b29c00a
21 changed files with 590 additions and 131 deletions

View File

@@ -189,25 +189,26 @@ public final class GameData {
@Getter
private static final Int2ObjectMap<CookRecipeData> cookRecipeDataMap =
new Int2ObjectOpenHashMap<>();
new Int2ObjectOpenHashMap<>();
@Getter
private static final Int2ObjectMap<CompoundData> compoundDataMap = new Int2ObjectOpenHashMap<>();
@Getter
private static final Int2ObjectMap<DailyDungeonData> dailyDungeonDataMap =
new Int2ObjectOpenHashMap<>();
new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<DropTableData> dropTableDataMap = new Int2ObjectOpenHashMap<>();
@Getter private static final Int2ObjectMap<DropMaterialData> dropMaterialDataMap = new Int2ObjectOpenHashMap<>();
@Getter
private static final Int2ObjectMap<DungeonData> dungeonDataMap = new Int2ObjectOpenHashMap<>();
@Getter
private static final Int2ObjectMap<DungeonEntryData> dungeonEntryDataMap =
new Int2ObjectOpenHashMap<>();
new Int2ObjectOpenHashMap<>();
@Getter
private static final Int2ObjectMap<EnvAnimalGatherConfigData> envAnimalGatherConfigDataMap =
new Int2ObjectOpenHashMap<>();
new Int2ObjectOpenHashMap<>();
@Getter
private static final Int2ObjectMap<EquipAffixData> equipAffixDataMap =

View File

@@ -0,0 +1,12 @@
package emu.grasscutter.data.common;
import com.google.gson.annotations.SerializedName;
import lombok.Getter;
@Getter
public class DropItemData {
@SerializedName(value="itemId")
private int id;
private String countRange;
private int weight;
}

View File

@@ -0,0 +1,18 @@
package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;
import lombok.Getter;
@ResourceType(name = "DropMaterialExcelConfigData.json")
@Getter
public class DropMaterialData extends GameResource {
@Getter(onMethod_ = @Override)
private int id;
private boolean useOnGain;
private boolean disableFirstGainHint;
private boolean autoPick;
private boolean dropSeparately;
private int groupId;
private boolean forceGainHint;
}

View File

@@ -0,0 +1,25 @@
package emu.grasscutter.data.excels;
import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.ResourceType.LoadPriority;
import emu.grasscutter.data.common.DropItemData;
import lombok.Getter;
import java.util.List;
@ResourceType(name ={"DropTableExcelConfigData.json","DropSubTableExcelConfigData.json"} , loadPriority = LoadPriority.HIGH)
@Getter
public class DropTableData extends GameResource {
@Getter(onMethod_ = @Override)
private int id;
private int randomType;
private int dropLevel;
private List<DropItemData> dropVec;
private int nodeType;
private boolean fallToGround;
private int sourceType;
private int everydayLimit;
private int historyLimit;
private int activityLimit;
}