Harden keyboard and camera routing, inventory and vendor interactions, chat/emotes, relog portal flow, and paperdoll rendering. Add retail research, connected gate coverage, and release-gate validation.
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using AcDream.App.Rendering.Wb;
|
|
using AcDream.App.UI;
|
|
using AcDream.Core.Lighting;
|
|
using AcDream.Core.World;
|
|
|
|
namespace AcDream.App.Rendering;
|
|
|
|
/// <summary>
|
|
/// Paperdoll-specific facade over the shared private creature viewport. The
|
|
/// fixed camera remains the verbatim retail <c>gmPaperDollUI</c> camera.
|
|
/// </summary>
|
|
public sealed class PaperdollViewportRenderer :
|
|
IUiViewportRenderer,
|
|
IPaperdollDollRenderer,
|
|
IDisposable
|
|
{
|
|
private readonly PrivateEntityViewportRenderer _renderer;
|
|
|
|
internal PaperdollViewportRenderer(
|
|
IWorldPassScope scope,
|
|
AcDream.App.Rendering.Gpu.IGpuDevice device,
|
|
ICurrentGpuFrameSource frames,
|
|
WbDrawDispatcher dispatcher,
|
|
SceneLightingUboBinding lightUbo,
|
|
IEntityTextureLifetime textureLifetime,
|
|
IWbMeshAdapter meshAdapter)
|
|
{
|
|
_renderer = new PrivateEntityViewportRenderer(
|
|
scope,
|
|
device,
|
|
frames,
|
|
dispatcher,
|
|
lightUbo,
|
|
textureLifetime,
|
|
meshAdapter,
|
|
DollEntityBuilder.DollRenderId,
|
|
new DollViewportCamera(),
|
|
"paperdoll");
|
|
}
|
|
|
|
public bool TextureIsBottomUp => _renderer.TextureIsBottomUp;
|
|
|
|
public void SetDoll(WorldEntity? doll) => _renderer.SetEntity(doll);
|
|
|
|
public void Prepare() => _renderer.Prepare();
|
|
|
|
public uint Render(int width, int height) =>
|
|
_renderer.Render(width, height);
|
|
|
|
public void Dispose() => _renderer.Dispose();
|
|
}
|