示例#1
0
        public static Model getModelAt(this GameObjectDefinition definition, int i, int j, int k, int l, int i1, int j1, int k1)
        {
            Model model = definition.getAnimatedModel(i, k1, j);

            if (model == null)
            {
                return(null);
            }

            if (definition.adjustToTerrain || definition.delayShading)
            {
                model = new Model(definition.adjustToTerrain, definition.delayShading, model);
            }

            if (definition.adjustToTerrain)
            {
                int l1 = (k + l + i1 + j1) / 4;
                for (int v = 0; v < model.vertexCount; v++)
                {
                    int x  = model.verticesX[v];
                    int z  = model.verticesZ[v];
                    int l2 = k + ((l - k) * (x + 64)) / 128;
                    int i3 = j1 + ((i1 - j1) * (x + 64)) / 128;
                    int j3 = l2 + ((i3 - l2) * (z + 64)) / 128;
                    model.verticesY[v] += j3 - l1;
                }

                model.normalise();
            }

            return(model);
        }