Transport belts/Physics
O sistema de esteiras de Factorio é uma das simulações mais detalhadas do jogo. Itens em baús e outros recipientes são armazenados apenas como somatórios, e itens em trechos ininterruptos de esteira são movidos como agregados por otimização, mas no fim, itens em esteiras são simulados individualmente, especialmente quando eles são apanhados ou depositados por insersores. Isto causa comportamentos complexos, principalmente quando se trata de velocidade de insersores.
Propriedades das esteiras
- Densidade. Quantos itens cabem em um determinado trecho de esteira, medido em itens por bloco por pista de esteira. Isto é igual a 4 em uma esteira reta, para qualquer tipo de item e de esteira. A densidade de itens em esteiras por ser diferente do que elas carregam quando os itens são largados no chão (usando a tecla Z).
- Velocidade. Por razões práticas, a velocidade de itens em uma esteira é medida em blocos por segundo. Note que, internamente, ela é medida em posições (1/256 de bloco) por instante (1/60 segundo). Mais sobre isso abaixo. A velocidade de esteira básica é de 1,875 blocos por segundo de jogo. Esteiras rápidas têm o dobro da velocidade, e esteiras expressas têm o triplo.
- Taxa de transporte. Quantos itens são movidos de um bloco para o próximo a cada segundo. Isso é igual à densidade (itens por bloco) multiplicada pela velocidade (itens por segundo), por exemplo: para uma esteira básica, é 4 * 1,875 = 7,5 itens por segundo para uma pista. Para duas pistas, isto é dobrado, ou seja, 15 itens por segundo.
- Compressão. Se não houver espaços vazios entre os itens na esteira, ela é dita totalmente comprimida, caso contrário sua compressão é parcial e ela não possui a melhor taxa de transporte. Entidades que põem itens em esteiras - insersores, divisores, esteiras com entrada lateral, mineradores, etc. - abrem espaço alargando uma lacuna pequena até que ela tenha o tamanho exato para seu item. Isso significa que as esteiras tornam-se totalmente comprimidas naturalmente no momento em que os itens começam a acumular.
- Pistas. Esteiras possuem duas pistas paralelas, e a densidade e velocidade de cada pista é constante e independente da outra, a despeito de curvas e voltas. Portanto, itens na pista interna de uma curva saem desta antes dos itens na pista externa, pois suas velocidades são iguais e a pista interna é mais curta que a externa.
Velocidades das esteiras
Dados os valores acima, podemos calcular a velocidade e taxa de transporte de cada um dos três tipos de esteira. Esses valores são confirmados por medições.
Belt type | Speed | Taxa | ||||
---|---|---|---|---|---|---|
Fator | Blocos/seg. | Pista única, itens/s | Pista única, itens/min | Duas pistas, itens/s | Dias pistas, itens/min | |
Esteira | 1 | 1,875 | 7,5 | 450 | 15 | 900 |
Esteira rápida | 2 | 3,75 | 15 | 900 | 30 | 1800 |
Esteira expressa | 3 | 5,625 | 22,5 | 1350 | 45 | 2700 |
Itens em esteiras
Como mencionado antes, itens ocupam espaço nas esteiras em termos de densidade e compressão. Porém, cada item em uma esteira logicamente está em exatamente um bloco de esteira a cada instante.
Por exemplo, mesmo que visualmente pareça que metade de um item esteja em um bloco e a outra metade em outro, ele está associado a exatamente um dos blocos:
- Se você parar o bloco de esteira no qual o item está, ele para; caso contrário, ele continua movendo-se - não há estado intermediário.
- Se você conectar os dois blocos a uma rede de circuitos e fazê-los reportar as estatísticas sobre seus itens, você verá o item contado a exatamente um deles.
- Um insersor poderá apenas apanhar itens que estiverem logicamente no bloco à sua frente, não itens que estiverem sobrando de blocos adjacentes.
Neste sentido, é útil pensar nos itens como pontos com uma distância mínima entre eles, em vez de superfícies com área dispostos lado a lado. Para os cálculos de esteira e redes de circuitos envolvendo esteiras, não importa onde esses "pontos centrais" estão no desenho gráfico do item, mas eles parecem estar no centro:
Na imagem acima, as esteiras foram iniciadas com intervalos de 1 instante, e todos os blocos superiores foram interrompidos ao mesmo tempo, fazendo com que os itens parados mais à frente ficassem com sobras diferentes. Os itens na esteira da esquerda estão sobrando quase pela metade, o que significa que seus pontos centrais estão mais próximos do limite do bloco parado.
Abaixo está um exemplo esquemático mostrand alguns itens se movendo por dois blocos retos de esterias rápidas e como seriam seus sinais a cada instante. Seus pontos centrais são marcados com *
. (O espaço entre os blocos de esteira 1 e 2 servem apenas para visualização - no jogo, não há tais lacunas entre blocos.)
Inst. Bloco de esteira 1 Bloco de esteira 2 Leitura bloco 1 Leitura bloco 2 |------------------------------| |------------------------------| Pulso Valor Pulso Valor 0 <---*--> <---*--> <---*-- ><---*--> <---*--> 0 3 0 2 1 <---*--> <---*--> <---* --><---*--> <---*--> 0 3 0 2 2 <---*--> <---*--> <-- -*--><---*--> <---*-- 0 2 1 3 3 <---*--> <---*--> < ---*--><---*--> <---* 0 2 0 3 4 -> <---*--> <---*--> <---*--><---*--> <-- 0 2 0 2 5 *--> <---*--> <---*- -> <---*--><---*--> < 1 3 0 2 6 --*--> <---*--> <--- *--> <---*--><---*--> 0 2 1 3 7 <---*--> <---*--> <- --*--> <---*--><---*--> 0 2 0 3 8 <---*--> <---*--> <---*--> <---*--><---*--> 0 2 0 3
Posições e comprimentos de esteira
Medições cuidadosas mostram que a pista externa de uma curva é exatamente 1,15234375 vezes mais longa que uma esteira reta, ou 295/256 em formato fracionário. Isto signific que uma esteira reta possui 256 posições em que um item pode estar, mesmo que uma medição com tal precisão só possa ser feita indiretamente.
Aqui estão as velocidades e larguras dos vários tipos de blocos de esteira em termos de tais posições:
Tipo | Número de posições | |
---|---|---|
Velocidade de Esteira básica, por instante | 8 | |
Velocidade de Esteira rápida, por instante | 16 | |
Velocidade de Esteira expressa, por instante | 24 | |
Largura de um item em uma esteira (qualquer velocidade) | 64 | |
Comprimento de uma pista de um bloco de esteira reta, esteira subterrânea e divisor | 256 | |
Largura da pista interna de uma curva | 106 | |
Largura da pista externa de uma curva | 295 | |
Deslocamento de um item com carga lateral tardia em uma esteira reta ou saída subterrânea | 68 | |
Deslocamento de um item com carga lateral antecipada em uma esteira reta ou entrada subterrânea | 188 |
Por exemplo, com os valores acima, podemos deduzir a velocidade de uma esteira básica:
- 8 (posições por instante) / 256 (posições por bloco de esteira reta) * 60 (instantes por segundo) = 1,875 blocos por segundo
Sua taxa de transporte por pista é:
- 8 (positions per instante) / 64 (posições por item) * 60 (instantes por segundo) = 7,5 itens por segundo
Veja também
- Sistema de esteira de transporte
- 4 de janeiro FFF #276: Belt item spacing & Script rendering
- 3 de fevereiro FFF #176: Belts optimization for 0.15
- Accurate belt segment measurements (sobre 0.17)