override protected JobHandle OnUpdate(JobHandle jobs) { var cmdBufferConcurrent = cmdBuffer.CreateCommandBuffer().ToConcurrent(); var deltaTime = Time.deltaTime; var swapBlocks = new SwapBlock() { cmdBuffer = cmdBufferConcurrent }; var initBlockPos = new SetSpawnedBlockToInitialPosition() { levelInfo = levelInfo, cmdBuffer = cmdBufferConcurrent, viewCmdStack = viewCmdStack.ToConcurrent() }; jobs = swapBlocks.Schedule(this, jobs); jobs = initBlockPos.Schedule(this, jobs); if (viewCmdStack.CanExecute <MoveDownCommand>()) { var moveDownBlock = new MoveDown() { cmdBuffer = cmdBuffer.CreateCommandBuffer().ToConcurrent(), dt = deltaTime, levelInfo = levelInfo }; jobs = moveDownBlock.Schedule(this, jobs); } return(jobs); }
private static void onSwapBlockConstruct(On.Celeste.SwapBlock.orig_ctor_EntityData_Vector2 orig, SwapBlock self, EntityData data, Vector2 offset) { // we are using a hook rather than the constructor, because we want to run our code before the base constructor. if (self is ReskinnableSwapBlock swapBlock) { swapBlock.spriteDirectory = data.Attr("spriteDirectory", "objects/swapblock"); } orig(self, data, offset); }