Implement setting headicons/skins

This commit is contained in:
Melledy
2025-11-02 19:04:23 -08:00
parent 88f3b246c8
commit 42f8233132
9 changed files with 244 additions and 26 deletions
@@ -35,6 +35,8 @@ public class GameData {
@Getter private static DataTable<ItemDef> ItemDataTable = new DataTable<>();
@Getter private static DataTable<ProductionDef> ProductionDataTable = new DataTable<>();
@Getter private static DataTable<PlayerHeadDef> PlayerHeadDataTable = new DataTable<>();
@Getter private static DataTable<TitleDef> titleDataTable = new DataTable<>();
@Getter private static DataTable<MallMonthlyCardDef> MallMonthlyCardDataTable = new DataTable<>();
@Getter private static DataTable<MallPackageDef> MallPackageDataTable = new DataTable<>();
@@ -6,6 +6,7 @@ import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.game.inventory.ItemSubType;
import emu.nebula.game.inventory.ItemType;
import lombok.Getter;
import lombok.Setter;
@Getter
@ResourceType(name = "Item.json")
@@ -25,6 +26,9 @@ public class ItemDef extends BaseDef {
private transient ItemType itemType;
private transient ItemSubType itemSubType;
@Setter
private transient TitleDef titleData;
@Override
public int getId() {
return Id;
@@ -0,0 +1,19 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import lombok.Getter;
@Getter
@ResourceType(name = "PlayerHead.json")
public class PlayerHeadDef extends BaseDef {
private int Id;
private int HeadType;
private int UnlockChar;
private int UnlockSkin;
@Override
public int getId() {
return Id;
}
}
@@ -0,0 +1,28 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.GameData;
import emu.nebula.data.ResourceType;
import emu.nebula.data.ResourceType.LoadPriority;
import lombok.Getter;
@Getter
@ResourceType(name = "Title.json", loadPriority = LoadPriority.LOW)
public class TitleDef extends BaseDef {
private int Id;
private int ItemId;
private int TitleType;
@Override
public int getId() {
return Id;
}
@Override
public void onLoad() {
var item = GameData.getItemDataTable().get(this.getItemId());
if (item != null) {
item.setTitleData(this);
}
}
}