36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using System.Numerics;
|
|
using AcDream.App.Rendering.Vfx;
|
|
using AcDream.Core.World;
|
|
using DatReaderWriter.DBObjs;
|
|
|
|
namespace AcDream.App.Tests.Rendering.Vfx;
|
|
|
|
public sealed class IndexedSetupPartPoseBuilderTests
|
|
{
|
|
[Fact]
|
|
public void Build_DoesNotCollapseMissingMiddleDrawable()
|
|
{
|
|
var setup = new Setup
|
|
{
|
|
Parts = { 0x01000001u, 0x01000002u, 0x01000003u },
|
|
};
|
|
var entity = new WorldEntity
|
|
{
|
|
Id = 7u,
|
|
SourceGfxObjOrSetupId = 0x02000001u,
|
|
Position = Vector3.Zero,
|
|
Rotation = Quaternion.Identity,
|
|
MeshRefs =
|
|
[
|
|
new MeshRef(0x01000001u, Matrix4x4.CreateTranslation(1, 0, 0)),
|
|
new MeshRef(0x01000003u, Matrix4x4.CreateTranslation(3, 0, 0)),
|
|
],
|
|
};
|
|
|
|
var indexed = IndexedSetupPartPoseBuilder.Build(setup, entity);
|
|
|
|
Assert.Equal([true, false, true], indexed.Available);
|
|
Assert.Equal(Matrix4x4.Identity, indexed.Poses[0]);
|
|
Assert.Equal(Matrix4x4.Identity, indexed.Poses[2]);
|
|
}
|
|
}
|