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); } }
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(); }
private void UpdateChunks(Chunk c) { Task.Run(() => Ticket.CreateTicket(c.Position.X, c.Position.Y, 31, TicketTypes.Player, TicketPreviousDirection.None, true)); }