Пример #1
0
        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);
        }