XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
namespace XFEEDToolBox.Plugin;
internal static unsafe partial class Navigation
{
    private static uint DockingFixtureSelfTest()
    {
        uint passed=0;var memory=Platform.Allocate(4096);if(memory==0)return 0;
        try
        {
            var node=memory;var binding=memory+1024;var source=memory+2048;
            void Reset(){Write(node+0xB0,binding);Write(node+0x78,source);Write(node+0xD0,0f);Write(binding,1);Write(binding+0x18,0f);Write(source+0x18,0f);}
            Reset();if(BeginDockingFixturePulse(node,binding,source,out var pulse)&&Read<float>(binding+0x18)==.75f)passed|=1;
            if(Read<float>(node+0xD0)==0&&Read<float>(source+0x18)==0){EndDockingFixturePulse(pulse);if(Read<float>(binding+0x18)==0)passed|=2;}
            Reset();Write(binding+0x18,.5f);if(!BeginDockingFixturePulse(node,binding,source,out _)&&Read<float>(binding+0x18)==.5f)passed|=4;
            Reset();Write(node+0x78,source+64);if(!BeginDockingFixturePulse(node,binding,source,out _))passed|=8;
            Reset();BeginDockingFixturePulse(node,binding,source,out pulse);Write(binding+0x18,.25f);EndDockingFixturePulse(pulse);if(Read<float>(binding+0x18)==.25f)passed|=16;
            Reset();Write(node+0xD0,float.NaN);if(!BeginDockingFixturePulse(node,binding,source,out _))passed|=32;
            if(FixtureGeometryEligible(6000,0,1)&&!FixtureGeometryEligible(3000,0,1)&&!FixtureGeometryEligible(7500,0,1)&&!FixtureGeometryEligible(6000,20,1)&&!FixtureGeometryEligible(6000,0,.5))passed|=64;
            if(!FixtureGeometryEligible(double.NaN,0,1)&&!FixtureGeometryEligible(6000,double.NaN,1)&&!FixtureGeometryEligible(6000,0,double.NaN)&&!BeginDockingFixturePulse(0,binding,source,out _))passed|=128;
        }
        finally{Platform.Free(memory);}return passed;
    }
#if PLUGIN_NAVIGATION
    [UnmanagedCallersOnly(EntryPoint="XFENavigationDockingFixtureSelfTest")]
    internal static uint ExportDockingFixtureSelfTest()=>RunTest(DockingFixtureSelfTest);
#endif
}