Pular para o conteúdo

getModelCollision

Cliente Engine e modelos

Lê a colisão que um modelo usa no momento — a dele, uma definida com setModelCollision, ou uma substituta carregada com engineLoadCOL — como uma tabela de formas.

table getModelCollision ( number/string modelo )
NomeTipoDescrição
modelonumber/stringModelo a ler. Ao contrário de setModelCollision, não fica restrito a modelos de objeto: o que volta é a colisão que o modelo tem carregada.

Uma tabela com o mesmo layout que setModelCollision recebe:

ChaveConteúdo
spheresUma tabela por esfera: position (3 números), radius, material, day, night, brightness.
boxesUma tabela por caixa: min, max, material, day, night, brightness.
linesUma tabela por linha: start, startSize, stop, stopSize.
verticesUma tabela de 3 números por vértice.
trianglesUma tabela por triângulo: os três índices de vértice nos campos 1, 2 e 3 (contando a partir de 0, dentro de vertices), mais material, day, night.
shadowA malha de sombra: vertices e triangles nas mesmas formas de cima.
boundsmin, max, center (3 números cada) e radius do volume delimitador do modelo.

false, com o motivo escrito no console de debug, quando o modelo é desconhecido ou não tem colisão carregada.

As coordenadas dos vértices ficam guardadas comprimidas dentro da colisão, então os valores podem voltar levemente arredondados.

local colisao = getModelCollision(1223)
if colisao then
outputDebugString("caixas: " .. #colisao.boxes .. ", raio: " .. colisao.bounds.radius)
end