Move host transport records to model

This commit is contained in:
gamer147
2026-08-03 11:09:47 -04:00
parent 281f37747a
commit ec6ba1c64c
10 changed files with 39 additions and 25 deletions

View File

@@ -384,7 +384,7 @@ public class AdvTextOpsTests
new VirtualMachine(script, table, host).Run();
Assert.Equal(new Age.Engine.Hosting.AdvWaitIndicatorConfig(1, 385, 140, 12, 0, 0, 30, 27, 12, 48),
Assert.Equal(new AdvWaitIndicatorConfig(1, 385, 140, 12, 0, 0, 30, 27, 12, 48),
Assert.Single(host.WaitIndicators));
}

View File

@@ -1,3 +1,5 @@
using Age.Engine.Model;
namespace Age.Engine.Hosting;
public sealed class CaptureHost : IHost
{

View File

@@ -2,21 +2,6 @@ using Age.Engine.Model;
namespace Age.Engine.Hosting;
public readonly record struct AdvWaitIndicatorConfig(
int LayoutSlot, int X, int Y, int SurfaceSlot,
int SourceX, int SourceY, int CellWidth, int CellHeight,
int TerminalFrame, long FramePeriodMs)
{
/// <summary>Select the current atlas frame. TerminalFrame is the exclusive native upper bound,
/// so SYSTEM4's value 12 addresses the twelve cells 0 through 11.</summary>
public int FrameAt(long elapsedMs)
{
int frameCount = System.Math.Max(1, TerminalFrame);
long period = System.Math.Max(1, FramePeriodMs);
return (int)(System.Math.Max(0, elapsedMs) / period % frameCount);
}
}
public interface IAdvHost
{
void ShowText(int offset, string text);

View File

@@ -1,3 +1,5 @@
using Age.Engine.Model;
namespace Age.Engine.Hosting;
public interface IDiagnosticHost

View File

@@ -1,8 +1,5 @@
namespace Age.Engine.Hosting;
/// <summary>A synchronous AGE-owned diagnostic prompt after native body/context formatting.</summary>
public readonly record struct DiagnosticMessage(string Caption, string Text);
public interface IHost : IDiagnosticHost, ILifecycleHost, IAudioHost, IMovieHost, IGraphicsHost, IInputHost,
IAdvHost
{

View File

@@ -0,0 +1,16 @@
namespace Age.Engine.Model;
public readonly record struct AdvWaitIndicatorConfig(
int LayoutSlot, int X, int Y, int SurfaceSlot,
int SourceX, int SourceY, int CellWidth, int CellHeight,
int TerminalFrame, long FramePeriodMs)
{
/// <summary>Select the current atlas frame. TerminalFrame is the exclusive native upper bound,
/// so SYSTEM4's value 12 addresses the twelve cells 0 through 11.</summary>
public int FrameAt(long elapsedMs)
{
int frameCount = System.Math.Max(1, TerminalFrame);
long period = System.Math.Max(1, FramePeriodMs);
return (int)(System.Math.Max(0, elapsedMs) / period % frameCount);
}
}

View File

@@ -0,0 +1,4 @@
namespace Age.Engine.Model;
/// <summary>A synchronous AGE-owned diagnostic prompt after native body/context formatting.</summary>
public readonly record struct DiagnosticMessage(string Caption, string Text);

View File

@@ -1,4 +1,3 @@
using Age.Engine.Hosting;
using Age.Engine.Model;
namespace Age.Engine.Text;