Skip to content

Commit

Permalink
feat(Native): implement VObject savegame fields
Browse files Browse the repository at this point in the history
  • Loading branch information
lmichaelis committed Jan 14, 2024
1 parent a2417b6 commit 253f4ed
Show file tree
Hide file tree
Showing 39 changed files with 2,178 additions and 159 deletions.
126 changes: 63 additions & 63 deletions ZenKit.Test/TestMaterial.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,69 +15,69 @@ public void SetUp()

[Test]
public void TestLoadG1()
{
var mat = new Material("./Samples/G1/DEMON_DIE_BODY.MAT");
Assert.Multiple(() =>
{
Assert.That(mat.Name, Is.EqualTo("BODY"));
Assert.That(mat.Group, Is.EqualTo(MaterialGroup.Undefined));
Assert.That(mat.Color.R, Is.EqualTo(115));
Assert.That(mat.Color.G, Is.EqualTo(91));
Assert.That(mat.Color.B, Is.EqualTo(77));
Assert.That(mat.Color.A, Is.EqualTo(255));
Assert.That(mat.SmoothAngle, Is.EqualTo(60.0f));
Assert.That(mat.Texture, Is.EqualTo("DEM_BODY_V0.TGA"));
Assert.That(mat.TextureScale.X, Is.EqualTo(512.0f));
Assert.That(mat.TextureScale.Y, Is.EqualTo(512.0f));
Assert.That(mat.TextureAnimationFps, Is.EqualTo(0.0f));
Assert.That(mat.TextureAnimationMapping, Is.EqualTo(AnimationMapping.None));
Assert.That(mat.TextureAnimationMappingDirection.X, Is.EqualTo(9.9999997e-005f));
Assert.That(mat.TextureAnimationMappingDirection.Y, Is.EqualTo(0.0f));
Assert.That(mat.DisableCollision, Is.EqualTo(false));
Assert.That(mat.DisableLightmap, Is.EqualTo(false));
Assert.That(mat.DontCollapse, Is.EqualTo(false));
Assert.That(mat.DetailObject, Is.EqualTo(""));
Assert.That(mat.DefaultMapping.X, Is.EqualTo(2.34375f));
Assert.That(mat.DefaultMapping.Y, Is.EqualTo(2.34375f));
});
}
{
var mat = new Material("./Samples/G1/DEMON_DIE_BODY.MAT");
Assert.Multiple(() =>
{
Assert.That(mat.Name, Is.EqualTo("BODY"));
Assert.That(mat.Group, Is.EqualTo(MaterialGroup.Undefined));
Assert.That(mat.Color.R, Is.EqualTo(115));
Assert.That(mat.Color.G, Is.EqualTo(91));
Assert.That(mat.Color.B, Is.EqualTo(77));
Assert.That(mat.Color.A, Is.EqualTo(255));
Assert.That(mat.SmoothAngle, Is.EqualTo(60.0f));
Assert.That(mat.Texture, Is.EqualTo("DEM_BODY_V0.TGA"));
Assert.That(mat.TextureScale.X, Is.EqualTo(512.0f));
Assert.That(mat.TextureScale.Y, Is.EqualTo(512.0f));
Assert.That(mat.TextureAnimationFps, Is.EqualTo(0.0f));
Assert.That(mat.TextureAnimationMapping, Is.EqualTo(AnimationMapping.None));
Assert.That(mat.TextureAnimationMappingDirection.X, Is.EqualTo(9.9999997e-005f));
Assert.That(mat.TextureAnimationMappingDirection.Y, Is.EqualTo(0.0f));
Assert.That(mat.DisableCollision, Is.EqualTo(false));
Assert.That(mat.DisableLightmap, Is.EqualTo(false));
Assert.That(mat.DontCollapse, Is.EqualTo(false));
Assert.That(mat.DetailObject, Is.EqualTo(""));
Assert.That(mat.DefaultMapping.X, Is.EqualTo(2.34375f));
Assert.That(mat.DefaultMapping.Y, Is.EqualTo(2.34375f));
});
}

[Test]
[Test]
public void TestLoadG2()
{
var mat = new Material("./Samples/G2/DEMON_DIE_BODY.MAT");
Assert.Multiple(() =>
{
Assert.That(mat.Name, Is.EqualTo("BODY"));
Assert.That(mat.Group, Is.EqualTo(MaterialGroup.Undefined));
Assert.That(mat.Color.R, Is.EqualTo(115));
Assert.That(mat.Color.G, Is.EqualTo(91));
Assert.That(mat.Color.B, Is.EqualTo(77));
Assert.That(mat.Color.A, Is.EqualTo(255));
Assert.That(mat.SmoothAngle, Is.EqualTo(60.0f));
Assert.That(mat.Texture, Is.EqualTo("DEM_BODY_V0.TGA"));
Assert.That(mat.TextureScale.X, Is.EqualTo(512.0f));
Assert.That(mat.TextureScale.Y, Is.EqualTo(512.0f));
Assert.That(mat.TextureAnimationFps, Is.EqualTo(0.0f));
Assert.That(mat.TextureAnimationMapping, Is.EqualTo(AnimationMapping.None));
Assert.That(mat.TextureAnimationMappingDirection.X, Is.EqualTo(0.0f));
Assert.That(mat.TextureAnimationMappingDirection.Y, Is.EqualTo(0.0f));
Assert.That(mat.DisableCollision, Is.EqualTo(false));
Assert.That(mat.DisableLightmap, Is.EqualTo(false));
Assert.That(mat.DontCollapse, Is.EqualTo(false));
Assert.That(mat.DetailObject, Is.EqualTo(""));
Assert.That(mat.DefaultMapping.X, Is.EqualTo(2.34375f));
Assert.That(mat.DefaultMapping.Y, Is.EqualTo(2.34375f));
Assert.That(mat.AlphaFunction, Is.EqualTo(AlphaFunction.None));
Assert.That(mat.DetailObjectScale, Is.EqualTo(1.0f));
Assert.That(mat.ForceOccluder, Is.EqualTo(false));
Assert.That(mat.EnvironmentMapping, Is.EqualTo(false));
Assert.That(mat.EnvironmentMappingStrength, Is.EqualTo(1.0f));
Assert.That(mat.WaveMode, Is.EqualTo(WaveMode.None));
Assert.That(mat.WaveSpeed, Is.EqualTo(WaveSpeed.Normal));
Assert.That(mat.WaveAmplitude, Is.EqualTo(30.0f));
Assert.That(mat.WaveGridSize, Is.EqualTo(100.0f));
Assert.That(mat.IgnoreSun, Is.EqualTo(false));
});
}
{
var mat = new Material("./Samples/G2/DEMON_DIE_BODY.MAT");
Assert.Multiple(() =>
{
Assert.That(mat.Name, Is.EqualTo("BODY"));
Assert.That(mat.Group, Is.EqualTo(MaterialGroup.Undefined));
Assert.That(mat.Color.R, Is.EqualTo(115));
Assert.That(mat.Color.G, Is.EqualTo(91));
Assert.That(mat.Color.B, Is.EqualTo(77));
Assert.That(mat.Color.A, Is.EqualTo(255));
Assert.That(mat.SmoothAngle, Is.EqualTo(60.0f));
Assert.That(mat.Texture, Is.EqualTo("DEM_BODY_V0.TGA"));
Assert.That(mat.TextureScale.X, Is.EqualTo(512.0f));
Assert.That(mat.TextureScale.Y, Is.EqualTo(512.0f));
Assert.That(mat.TextureAnimationFps, Is.EqualTo(0.0f));
Assert.That(mat.TextureAnimationMapping, Is.EqualTo(AnimationMapping.None));
Assert.That(mat.TextureAnimationMappingDirection.X, Is.EqualTo(0.0f));
Assert.That(mat.TextureAnimationMappingDirection.Y, Is.EqualTo(0.0f));
Assert.That(mat.DisableCollision, Is.EqualTo(false));
Assert.That(mat.DisableLightmap, Is.EqualTo(false));
Assert.That(mat.DontCollapse, Is.EqualTo(false));
Assert.That(mat.DetailObject, Is.EqualTo(""));
Assert.That(mat.DefaultMapping.X, Is.EqualTo(2.34375f));
Assert.That(mat.DefaultMapping.Y, Is.EqualTo(2.34375f));
Assert.That(mat.AlphaFunction, Is.EqualTo(AlphaFunction.None));
Assert.That(mat.DetailObjectScale, Is.EqualTo(1.0f));
Assert.That(mat.ForceOccluder, Is.EqualTo(false));
Assert.That(mat.EnvironmentMapping, Is.EqualTo(false));
Assert.That(mat.EnvironmentMappingStrength, Is.EqualTo(1.0f));
Assert.That(mat.WaveMode, Is.EqualTo(WaveMode.None));
Assert.That(mat.WaveSpeed, Is.EqualTo(WaveSpeed.Normal));
Assert.That(mat.WaveAmplitude, Is.EqualTo(30.0f));
Assert.That(mat.WaveGridSize, Is.EqualTo(100.0f));
Assert.That(mat.IgnoreSun, Is.EqualTo(false));
});
}
}
2 changes: 2 additions & 0 deletions ZenKit.Test/Vobs/TestContainer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ public void TestLoad()
Assert.That(vob.Key, Is.EqualTo(""));
Assert.That(vob.PickString, Is.EqualTo(""));
Assert.That(vob.Contents, Is.EqualTo("ItMi_Gold:35"));
Assert.That(vob.ItemCount, Is.EqualTo(0));
Assert.That(vob.Items, Has.Count.EqualTo(0));
}

[Test]
Expand Down
6 changes: 3 additions & 3 deletions ZenKit.Test/Vobs/TestTrigger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public void TestLoad()
{
var vob = new Trigger("./Samples/G2/VOb/zCTrigger.zen", GameVersion.Gothic2);
Assert.That(vob.Target, Is.EqualTo(""));

Assert.That(vob.StartEnabled, Is.True);
Assert.That(vob.SendUntrigger, Is.False);
Assert.That(vob.ReactToOnTrigger, Is.False);
Expand All @@ -33,7 +33,7 @@ public void TestSetters()
{
var vob = new Trigger("./Samples/G2/VOb/zCTrigger.zen", GameVersion.Gothic2);
vob.Target = "";

vob.StartEnabled = true;
vob.SendUntrigger = true;
vob.ReactToOnTrigger = false;
Expand All @@ -42,7 +42,7 @@ public void TestSetters()
vob.RespondToObject = false;
vob.RespondToPC = false;
vob.RespondToNPC = false;

vob.VobTarget = "";
vob.MaxActivationCount = -1;
vob.RetriggerDelay = TimeSpan.FromSeconds(0.0f);
Expand Down
16 changes: 12 additions & 4 deletions ZenKit.Test/Vobs/TestVirtualObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public void TestLoadG2()
Assert.That(vob.Rotation.M13, Is.EqualTo(0.390731275f));
Assert.That(vob.Rotation.M23, Is.EqualTo(0));
Assert.That(vob.Rotation.M33, Is.EqualTo(0.920505285f));

Assert.That(vob.ShowVisual, Is.True);
Assert.That(vob.SpriteCameraFacingMode, Is.EqualTo(SpriteAlignment.None));
Assert.That(vob.CdStatic, Is.False);
Expand All @@ -100,6 +100,9 @@ public void TestLoadG2()
Assert.That(vob.Name, Is.EqualTo(""));
Assert.That(vob.Visual?.Name, Is.EqualTo("OW_MISC_WALL_TORCH_01.3DS"));
Assert.That(vob.Visual?.Type, Is.EqualTo(VisualType.MultiResolutionMesh));

Assert.That(vob.Ai, Is.Null);
Assert.That(vob.EventManager, Is.Null);
}

[Test]
Expand Down Expand Up @@ -130,9 +133,14 @@ public void TestSetters()
vob.PresetName = "";
vob.Name = "";

vob.ResetVisual<VisualDecal>();
vob.ResetVisual();
vob.AddChild<Light>();
vob.Visual = new VisualModel();
vob.Visual.Name = "Test";

vob.Ai = new AiHuman();
vob.EventManager = new EventManager();
vob.EventManager.Active = true;

vob.AddChild(new Light());
vob.RemoveChild(0);
}
}
Loading

0 comments on commit 253f4ed

Please sign in to comment.