using System;
using ACE.DatLoader;
using ACE.DatLoader.FileTypes;
namespace ACE.Server.Physics.Common
{
public class DBObj
{
public static Object Get(QualifiedDataID qualifiedDID)
{
// TODO: map to ACE datloaders
// return static or mutable?
if (qualifiedDID.Type == 1)
return GetCellLandblock(qualifiedDID.ID);
if (qualifiedDID.Type == 2)
return GetLandblockInfo(qualifiedDID.ID);
if (qualifiedDID.Type == 3)
return GetEnvCell(qualifiedDID.ID);
if (qualifiedDID.Type == 6)
return GetGfxObj(qualifiedDID.ID);
if (qualifiedDID.Type == 7)
return GetSetup(qualifiedDID.ID);
if (qualifiedDID.Type == 8)
return GetAnimation(qualifiedDID.ID);
if (qualifiedDID.Type == 11)
return GetSurfaceTexture(qualifiedDID.ID);
if (qualifiedDID.Type == 16)
return GetEnvironment(qualifiedDID.ID);
if (qualifiedDID.Type == 42)
return GetParticleEmitterInfo(qualifiedDID.ID);
return -1;
}
///
/// QualifiedDID Type 1
///
public static CellLandblock GetCellLandblock(uint id)
{
return DatManager.CellDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 2
///
public static LandblockInfo GetLandblockInfo(uint id)
{
return DatManager.CellDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 3
///
public static EnvCell GetEnvCell(uint id)
{
var envCell = DatManager.CellDat.ReadFromDat(id);
return new EnvCell(envCell);
}
///
/// QualifiedDID Type 6
///
public static GfxObj GetGfxObj(uint id)
{
return DatManager.PortalDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 7
///
public static SetupModel GetSetup(uint id)
{
return DatManager.PortalDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 8
///
public static DatLoader.FileTypes.Animation GetAnimation(uint id)
{
return DatManager.PortalDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 11
///
public static SurfaceTexture GetSurfaceTexture(uint id)
{
return DatManager.PortalDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 16
///
public static DatLoader.FileTypes.Environment GetEnvironment(uint id)
{
return DatManager.PortalDat.ReadFromDat(id);
}
///
/// QualifiedDID Type 42
///
public static DatLoader.FileTypes.ParticleEmitterInfo GetParticleEmitterInfo(uint id)
{
return DatManager.PortalDat.ReadFromDat(id);
}
}
}