예제 #1
0
        protected override void OnUpdate()
        {
            var ecb = _barrier.CreateCommandBuffer();

            Entities.WithAll <HelloWorld>()
            .ForEach((
                         Entity e,
                         ref DynamicBuffer <TerminalTilesBuffer> tilesBuffer,
                         in TerminalSize size,
                         in Translation translation) =>
            {
                if (tilesBuffer.Length == 0)
                {
                    return;
                }
                var term = new TerminalAccessor(tilesBuffer, size);
                term.ClearScreen();
                term.DrawBorder();
                term.Print(5, 5, "Hello, world!");
                ecb.RemoveComponent <HelloWorld>(e);
            }).Schedule();
예제 #2
0
        protected override void OnUpdate()
        {
            var ecb = _barrier.CreateCommandBuffer();

            Entities
            .WithAll <TerminalAddBorder>()
            .ForEach((
                         Entity e,
                         ref DynamicBuffer <TerminalTilesBuffer> tilesBuffer,
                         in TerminalSize size) =>
            {
                if (tilesBuffer.Length == 0)
                {
                    return;
                }

                var term = new TerminalAccessor(tilesBuffer, size);
                term.DrawBorder();
                ecb.RemoveComponent <TerminalAddBorder>(e);
            }).Schedule();
            _barrier.AddJobHandleForProducer(Dependency);
        }
예제 #3
0
        protected override void OnUpdate()
        {
            Entities
            .WithAll <TerminalClearEveryFrame>()
            .ForEach((
                         ref DynamicBuffer <TerminalTilesBuffer> tilesBuffer,
                         in TerminalSize size) =>
            {
                if (tilesBuffer.Length == 0)
                {
                    return;
                }

                var term = new TerminalAccessor(tilesBuffer, size);
                term.ClearScreen();
                //Debug.Log("Clearing terminal");
            }).ScheduleParallel();

            var ecb = _barrier.CreateCommandBuffer();

            Entities
            .WithAll <TerminalClearOnce>()
            .ForEach((
                         Entity e,
                         ref DynamicBuffer <TerminalTilesBuffer> tilesBuffer,
                         in TerminalSize size,
                         in Translation pos) =>
            {
                if (tilesBuffer.Length == 0)
                {
                    return;
                }

                var term = new TerminalAccessor(tilesBuffer, size);
                term.ClearScreen();
                ecb.RemoveComponent <TerminalClearOnce>(e);
            }).Schedule();