Skip to content

Commit

Permalink
Load txt tables using addressables
Browse files Browse the repository at this point in the history
  • Loading branch information
Danil0v3s committed Sep 16, 2022
1 parent 4584d64 commit f936c80
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 45 deletions.
67 changes: 67 additions & 0 deletions UnityClient/Assets/AddressableAssetsData/link.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<linker>
<assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
<type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
</assembly>
<assembly fullname="Unity.RenderPipelines.Universal.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Rendering.Universal.UniversalAdditionalLightData" preserve="all" />
</assembly>
<assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.LegacyResourcesProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
</assembly>
<assembly fullname="UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEditor.Audio.AudioMixerSnapshotController" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.AudioModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Audio.AudioMixer" preserve="all" />
<type fullname="UnityEngine.Audio.AudioMixerGroup" preserve="all" />
<type fullname="UnityEngine.AudioClip" preserve="all" />
<type fullname="UnityEngine.AudioSource" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.GameObject" preserve="all" />
<type fullname="UnityEngine.Light" preserve="all" />
<type fullname="UnityEngine.Material" preserve="all" />
<type fullname="UnityEngine.Mesh" preserve="all" />
<type fullname="UnityEngine.MeshFilter" preserve="all" />
<type fullname="UnityEngine.MeshRenderer" preserve="all" />
<type fullname="UnityEngine.Object" preserve="all" />
<type fullname="UnityEngine.Shader" preserve="all" />
<type fullname="UnityEngine.Sprite" preserve="all" />
<type fullname="UnityEngine.SpriteRenderer" preserve="all" />
<type fullname="UnityEngine.TextAsset" preserve="all" />
<type fullname="UnityEngine.Texture2D" preserve="all" />
<type fullname="UnityEngine.Transform" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.MeshCollider" preserve="all" />
</assembly>
<assembly fullname="UnityRO, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="Assets.Scripts.Renderer.Map.GameMap" preserve="all" />
<type fullname="Assets.Scripts.Renderer.Map.WaterRenderer" preserve="all" />
<type fullname="Assets.Scripts.Renderer.Sprite.SpriteData" preserve="all" />
<type fullname="LightContainer" preserve="all" />
<type fullname="NodeAnimation" preserve="all" />
<type fullname="NodeProperties" preserve="all" />
<type fullname="PathFinder" preserve="all" />
<type fullname="Models/AnimProperties" preserve="nothing" serialized="true" />
<type fullname="Altitude" preserve="nothing" serialized="true" />
<type fullname="PathNode" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="UnityRO.io, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="ROIO.Models.FileTypes.STR" preserve="all" />
<type fullname="ROIO.Models.FileTypes.ACT" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.ACT/Action" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.ACT/Frame" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.ACT/Layer" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.GAT" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.GAT/Cell" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.RSW/LightInfo" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.RSW/WaterInfo" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.STR/Animation" preserve="nothing" serialized="true" />
<type fullname="ROIO.Models.FileTypes.STR/Layer" preserve="nothing" serialized="true" />
</assembly>
</linker>
7 changes: 7 additions & 0 deletions UnityClient/Assets/AddressableAssetsData/link.xml.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions UnityClient/Assets/Scripts/DB/DBManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class DBManager {

public async static Task Init() {
new LuaInterface();
Tables.Init();

var WeaponActionsText = await Addressables.LoadAssetAsync<TextAsset>("WeaponActions").Task;
var WeaponJobTableText = await Addressables.LoadAssetAsync<TextAsset>("WeaponJobTable").Task;
Expand Down
2 changes: 1 addition & 1 deletion UnityClient/Assets/Scripts/GameManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public async Task<GameMap> BeginMapLoading(string mapName) {
AsyncMapLoader.GameMap gameMap = await new AsyncMapLoader().Load($"{mapName}.rsw");
GameMap map = await MapRenderer.OnMapComplete(gameMap);
#else
var mapPrefab = await Addressables.LoadAssetAsync<GameObject>($"data/maps/{mapName}.prefab").Task;
var mapPrefab = await Addressables.LoadAssetAsync<GameObject>($"data/maps/{Path.GetFileNameWithoutExtension(mapName)}.prefab").Task;
var map = Instantiate(mapPrefab).GetComponent<GameMap>();
#endif
SceneManager.UnloadSceneAsync("LoadingScene");
Expand Down
2 changes: 0 additions & 2 deletions UnityClient/Assets/Scripts/Renderer/Entities/EntityManager.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using Assets.Scripts.Renderer.Sprite;
using ROIO;
using ROIO.Models.FileTypes;
using System.Collections.Generic;
using System.IO;
using System.Linq;
Expand Down
2 changes: 0 additions & 2 deletions UnityClient/Assets/UnityRO.io/FileManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@ public static void LoadGRF(string rootPath, List<string> grfs) {
var grf = Grf.grf_callback_open(rootPath + path, "r", null);
GrfList.Add(grf);
}

Tables.Init();
}

public static void InitBatch() {
Expand Down
19 changes: 6 additions & 13 deletions UnityClient/Assets/UnityRO.io/Loaders/TableLoader.cs
Original file line number Diff line number Diff line change
@@ -1,27 +1,20 @@
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace ROIO.Loaders
{
public class TableLoader
{
namespace ROIO.Loaders {
public class TableLoader {

private static readonly Regex RegexComments = new Regex(@"\n(\/\/[^\n]+)", RegexOptions.Multiline);

public static IEnumerable<object> LoadTable(string filename, int size)
{
string data = FileManager.Load(filename) as string;
public static IEnumerable<object> LoadTable(string data, int size) {
//remove comments
string content = RegexComments.Replace("\n" + data, "");
string[] elements = content.Split('#');
string[] args = new string[size + 1];

for (int i = 0; i < elements.Length; i++)
{
if (i % size == 0)
{
if (i != 0)
{
for (int i = 0; i < elements.Length; i++) {
if (i % size == 0) {
if (i != 0) {
yield return args;
}
args[i % size] = i.ToString();
Expand Down
46 changes: 20 additions & 26 deletions UnityClient/Assets/UnityRO.io/Tables.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;

namespace ROIO
{
public static class Tables
{
namespace ROIO {
public static class Tables {

public static Dictionary<string, MapTableStruct> MapTable = new Dictionary<string, MapTableStruct>();
public static Hashtable ResNameTable = new Hashtable();
public static Hashtable MsgStringTable = new Hashtable();
public static void Init()
{

public static void Init() {
InitMsgStringTable();
InitMp3NameTable();
InitMapTable();
Expand All @@ -25,21 +25,18 @@ public static void Init()
//LoadTable("data/fogparametertable.txt", 5);
}

private static void InitResNameTable()
{
foreach (object[] args in TableLoader.LoadTable("data/resnametable.txt", 2))
{
private async static void InitResNameTable() {
var data = await Addressables.LoadAssetAsync<TextAsset>($"txt/data/resnametable.txt.txt").Task;
foreach (object[] args in TableLoader.LoadTable(data.text, 2)) {
ResNameTable[args[1]] = args[2];
}
}

private static void InitMapTable()
{
foreach (object[] args in TableLoader.LoadTable("data/mapnametable.txt", 2))
{
private async static void InitMapTable() {
var data = await Addressables.LoadAssetAsync<TextAsset>($"txt/data/mapnametable.txt.txt").Task;
foreach (object[] args in TableLoader.LoadTable(data.text, 2)) {
var key = Convert.ToString(args[1]);
if (!MapTable.ContainsKey(key))
{
if (!MapTable.ContainsKey(key)) {
MapTable.Add(key, new MapTableStruct());
}

Expand All @@ -49,13 +46,11 @@ private static void InitMapTable()
}
}

private static void InitMp3NameTable()
{
foreach (object[] args in TableLoader.LoadTable("data/mp3nametable.txt", 2))
{
private async static void InitMp3NameTable() {
var data = await Addressables.LoadAssetAsync<TextAsset>($"txt/data/mp3nametable.txt.txt").Task;
foreach (object[] args in TableLoader.LoadTable(data.text, 2)) {
var key = Convert.ToString(args[1]);
if (!MapTable.ContainsKey(key))
{
if (!MapTable.ContainsKey(key)) {
MapTable.Add(key, new MapTableStruct());
}

Expand All @@ -65,10 +60,9 @@ private static void InitMp3NameTable()
}
}

private static void InitMsgStringTable()
{
foreach (object[] args in TableLoader.LoadTable("data/msgstringtable.txt", 1))
{
private async static void InitMsgStringTable() {
var data = await Addressables.LoadAssetAsync<TextAsset>($"txt/data/msgstringtable.txt.txt").Task;
foreach (object[] args in TableLoader.LoadTable(data.text, 1)) {
MsgStringTable[args[0]] = args[1];
}
}
Expand Down
2 changes: 1 addition & 1 deletion UnityClient/ProjectSettings/ProjectSettings.asset
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ PlayerSettings:
m_MTRendering: 1
mipStripping: 0
numberOfMipsStripped: 0
m_StackTraceTypes: 010000000000000000000000000000000100000001000000
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
iosShowActivityIndicatorOnLoading: -1
androidShowActivityIndicatorOnLoading: -1
iosUseCustomAppBackgroundBehavior: 0
Expand Down

0 comments on commit f936c80

Please sign in to comment.