diff --git a/LandblockExtraction/AtlasMaker/AtlasMaker.cs b/LandblockExtraction/AtlasMaker/AtlasMaker.cs new file mode 100644 index 0000000..1b2332d --- /dev/null +++ b/LandblockExtraction/AtlasMaker/AtlasMaker.cs @@ -0,0 +1,29 @@ +using LandblockExtraction.DatEngine; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; + +namespace LandblockExtraction.AtlasMaker; +public class AtlasMaker { + private readonly int TEXTURESIZE = 64; + private PortalEngine portalEngine; + + public Dictionary textureCoord; + + public AtlasMaker(PortalEngine portalEngine) { + this.portalEngine = portalEngine; + textureCoord = new Dictionary(); + } + + public void InitTerrainWithTexture() { + Dictionary TerrainAndSurfaceIndex = new Dictionary(); + foreach(var terrain in portalEngine.cTerrainDesc.terrains) { + TerrainAndSurfaceIndex.Add(terrain.terrainIndex, terrain.surfaceInfo); + } + + + } +} diff --git a/LandblockExtraction/DatEngine/CellEngine.cs b/LandblockExtraction/DatEngine/CellEngine.cs index ff20605..4ac041c 100644 --- a/LandblockExtraction/DatEngine/CellEngine.cs +++ b/LandblockExtraction/DatEngine/CellEngine.cs @@ -1,17 +1,14 @@ using AC2RE.Definitions; namespace LandblockExtraction.DatEngine { - public class CellEngine { - private DatReader cellReader; + public class CellEngine : DatEngine { - public CellEngine() { - cellReader = new(@"X:\DatFiles\cell_1.dat"); - } + public CellEngine() : base(@"X:\DatFiles\cell_1.dat") { } public CLandBlockData? GetLandBlockData(uint id) { DataId dataId = new DataId(id); - if (!cellReader.contains(dataId)) return null; - using (var data = cellReader.getFileReader(dataId)) { + if (!datReader.contains(dataId)) return null; + using (var data = datReader.getFileReader(dataId)) { CLandBlockData cLandBlockData = new(data); return cLandBlockData; } diff --git a/LandblockExtraction/DatEngine/DatEngine.cs b/LandblockExtraction/DatEngine/DatEngine.cs new file mode 100644 index 0000000..37646cf --- /dev/null +++ b/LandblockExtraction/DatEngine/DatEngine.cs @@ -0,0 +1,15 @@ +using AC2RE.Definitions; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LandblockExtraction.DatEngine; +public class DatEngine { + public DatReader datReader; + + public DatEngine(string pathDat) { + datReader = new DatReader(pathDat); + } +} diff --git a/LandblockExtraction/DatEngine/PortalEngine.cs b/LandblockExtraction/DatEngine/PortalEngine.cs index 47b786b..28e34c8 100644 --- a/LandblockExtraction/DatEngine/PortalEngine.cs +++ b/LandblockExtraction/DatEngine/PortalEngine.cs @@ -1,43 +1,40 @@ using AC2RE.Definitions; namespace LandblockExtraction.DatEngine { - public class PortalEngine { + public class PortalEngine : DatEngine { private readonly DataId TERRAINDESCID = new DataId(0x12000000); private readonly DataId SURFACEDESCID = new DataId(0x13000000); private readonly DataId LANDSCAPEID = new DataId(0x36000000); - private DatReader portalReader; - public CTerrainDesc cTerrainDesc { get; private set; } public CSurfaceDesc cSurfaceDesc { get; private set; } public LandScapeDefs landScapeDefs { get; private set; } - public PortalEngine() { - portalReader = new(@"X:\DatFiles\portal.dat"); + public PortalEngine() : base(@"X:\DatFiles\portal.dat") { InitTerrainDesc(); InitSurfaceDesc(); InitLandScapeDesc(); } public bool InitTerrainDesc() { - if (!portalReader.contains(TERRAINDESCID)) return false; - using (var data = portalReader.getFileReader(TERRAINDESCID)) { + if (!datReader.contains(TERRAINDESCID)) return false; + using (var data = datReader.getFileReader(TERRAINDESCID)) { if (data == null) return false; cTerrainDesc = new(data); } return true; } public bool InitSurfaceDesc() { - if (!portalReader.contains(SURFACEDESCID)) return false; - using (var data = portalReader.getFileReader(SURFACEDESCID)) { + if (!datReader.contains(SURFACEDESCID)) return false; + using (var data = datReader.getFileReader(SURFACEDESCID)) { if (data == null) return false; cSurfaceDesc = new(data); } return true; } public bool InitLandScapeDesc() { - if (!portalReader.contains(LANDSCAPEID)) return false; - using (var data = portalReader.getFileReader(LANDSCAPEID)) { + if (!datReader.contains(LANDSCAPEID)) return false; + using (var data = datReader.getFileReader(LANDSCAPEID)) { if (data == null) return false; landScapeDefs = new(data); } diff --git a/LandblockExtraction/DatEngine/TextureEngine.cs b/LandblockExtraction/DatEngine/TextureEngine.cs new file mode 100644 index 0000000..2488b48 --- /dev/null +++ b/LandblockExtraction/DatEngine/TextureEngine.cs @@ -0,0 +1,9 @@ +using AC2RE.Definitions; + +namespace LandblockExtraction.DatEngine { + public class TextureEngine : DatEngine { + public TextureEngine() : base(@"X:\DatFiles\highres.dat") { + + } + } +} diff --git a/LandblockExtraction/LandblockExtraction.csproj b/LandblockExtraction/LandblockExtraction.csproj index 2183218..17f1a4c 100644 --- a/LandblockExtraction/LandblockExtraction.csproj +++ b/LandblockExtraction/LandblockExtraction.csproj @@ -15,10 +15,6 @@ - - - -