public void RemovedFromPart(IBodyPart old) { DebugTools.AssertNull(Part); DebugTools.AssertNotNull(old); OnRemovedFromPart(old); }
private void _cacheInstance() { DebugTools.AssertNull(_cachedInstance); ShaderInstance instance; switch (Kind) { case ShaderKind.Source: instance = IoCManager.Resolve <IClydeInternal>().InstanceShader(Source !.ClydeHandle); _applyDefaultParameters(instance); break; case ShaderKind.Canvas: instance = IoCManager.Resolve <IClydeInternal>().InstanceShader(CompiledCanvasShader); break; default: throw new ArgumentOutOfRangeException(); } if (_stencilEnabled) { instance.StencilTestEnabled = true; instance.StencilRef = _stencilRef; instance.StencilFunc = _stencilFunc; instance.StencilOp = _stencilOp; instance.StencilReadMask = _stencilReadMask; instance.StencilWriteMask = _stencilWriteMask; } instance.MakeImmutable(); _cachedInstance = instance; }
public void Initialize() { if (!GameController.OnGodot) { return; } DebugTools.AssertNull(RootNodeScreenBelowWorld); RootNodeScreenBelowWorld = new Godot.Node2D { Name = "OverlayRoot" }; sceneTreeHolder.BelowWorldScreenSpace.AddChild(RootNodeScreenBelowWorld); RootNodeWorld = new Godot.Node2D { Name = "OverlayRoot" }; sceneTreeHolder.WorldRoot.AddChild(RootNodeWorld); RootNodeWorld.ZIndex = (int)DrawDepth.Overlays; RootNodeScreen = new Godot.Node2D { Name = "OverlayRoot" }; sceneTreeHolder.SceneTree.Root.GetNode("UILayer").AddChild(RootNodeScreen); }
public void RemovedFromBody(IBody old) { DebugTools.AssertNull(Body); DebugTools.AssertNotNull(old); OnRemovedFromBody(old); }
public override void RemovedFromPart(SharedBodyPartComponent old) { DebugTools.AssertNull(Part); DebugTools.AssertNotNull(old); OnRemovedFromPart(old); }
public override void RemovedFromBody(SharedBodyComponent old) { DebugTools.AssertNull(Body); DebugTools.AssertNotNull(old); OnRemovedFromBody(old); }
/// <summary> /// Suspends the current task immediately, yielding to other running jobs. /// </summary> /// <remarks> /// This does not stop the job queue from un-suspending the current task immediately again, /// if there is still time left over. /// </remarks> protected Task SuspendNow() { DebugTools.AssertNull(_resume); _resume = new TaskCompletionSource <object>(); Status = JobStatus.Paused; DebugTime += StopWatch.Elapsed.TotalSeconds; return(_resume.Task); }
public void RemovedFromPartInBody(IBody oldBody, IBodyPart oldPart) { DebugTools.AssertNull(Body); DebugTools.AssertNull(Part); DebugTools.AssertNotNull(oldBody); DebugTools.AssertNotNull(oldPart); OnRemovedFromPartInBody(oldBody, oldPart); }
public override void RemovedFromPartInBody(SharedBodyComponent oldBody, SharedBodyPartComponent oldPart) { DebugTools.AssertNull(Body); DebugTools.AssertNull(Part); DebugTools.AssertNotNull(oldBody); DebugTools.AssertNotNull(oldPart); OnRemovedFromPartInBody(oldBody, oldPart); }
protected ValueTask SuspendIfOutOfTime() { DebugTools.AssertNull(_resume); // ReSharper disable once CompareOfFloatsByEqualityOperator if (StopWatch.Elapsed.TotalSeconds <= _maxTime || _maxTime == 0.0) { return(new ValueTask()); } return(new ValueTask(SuspendNow())); }
/// <summary> /// Wrapper to safely await on an external task. /// </summary> protected async Task WaitAsyncTask(Task task) { DebugTools.AssertNull(_resume); Status = JobStatus.Waiting; DebugTime += StopWatch.Elapsed.TotalSeconds; await task; // Immediately block on resume so that everything stays correct. _resume = new TaskCompletionSource <object>(); Status = JobStatus.Paused; await _resume.Task; }
/// <summary> /// Wrapper to await on an external task. /// </summary> protected async Task <TTask> WaitAsyncTask <TTask>(Task <TTask> task) { DebugTools.AssertNull(_resume); Status = JobStatus.Waiting; DebugTime += StopWatch.Elapsed.TotalSeconds; var result = await task; // Immediately block on resume so that everything stays correct. Status = JobStatus.Paused; _resume = new TaskCompletionSource <object?>(); await _resume.Task; return(result); }
private void _cacheInstance() { DebugTools.AssertNull(_cachedInstance); ShaderInstance instance; switch (Kind) { case ShaderKind.Source: instance = _clyde.InstanceShader(Source.ClydeHandle); _applyDefaultParameters(instance); break; case ShaderKind.Canvas: instance = _clyde.InstanceShader(CompiledCanvasShader); break; default: throw new ArgumentOutOfRangeException(); } instance.MakeImmutable(); _cachedInstance = instance; }