示例#1
0
        public void ForceInvokeChunkChange()
        {
            World.GlobalToLocal(this.WObject.Position, out Vector3I cpos, out _);

            Ticket tck = Ticket.GetTicket(cpos.XY);

            if (tck != null)
            {
                Chunk c = tck.Chunk;

                if (c != null)
                {
                    if (previousChunk != null && (previousChunk != c))
                    {
                        OnChangeChunk?.Invoke(c);
                    }
                }

                previousChunk = c;
            }

            else
            {
                tck = Ticket.CreateTicket(cpos.X, cpos.Y, 30, TicketTypes.Player, TicketPreviousDirection.None, true, -1);
            }
        }
示例#2
0
        protected override void Start()
        {
            Thread worldGenerationThread = new Thread(() => Ticket.CreateTicket(0, 0, StartLevel, TicketTypes.Start, TicketPreviousDirection.None, true))
            {
                IsBackground = true,
                Priority     = ThreadPriority.Normal
            };

            worldGenerationThread.Start();
        }
示例#3
0
 private void UpdateChunks(Chunk c)
 {
     Task.Run(() => Ticket.CreateTicket(c.Position.X, c.Position.Y, 31, TicketTypes.Player, TicketPreviousDirection.None, true));
 }