Example #1
0
        public override void OnWorldIntitialize(World world)
        {
            for (int i = 1; i < 16; ++i)
            {
                TerrainCorner corners =
                    ((i >> 0) % 2 == 1 ? TerrainCorner.FrontLeft : TerrainCorner.None) |
                    ((i >> 1) % 2 == 1 ? TerrainCorner.FrontRight : TerrainCorner.None) |
                    ((i >> 2) % 2 == 1 ? TerrainCorner.BackLeft : TerrainCorner.None) |
                    ((i >> 3) % 2 == 1 ? TerrainCorner.BackRight : TerrainCorner.None);

                Face solidFaces = Face.Bottom |
                                  ((corners & TerrainCorner.All) == TerrainCorner.All ? Face.Top : Face.None) |
                                  ((corners & TerrainCorner.Left) == TerrainCorner.Left ? Face.Left : Face.None) |
                                  ((corners & TerrainCorner.Front) == TerrainCorner.Front ? Face.Front : Face.None) |
                                  ((corners & TerrainCorner.Right) == TerrainCorner.Right ? Face.Right : Face.None) |
                                  ((corners & TerrainCorner.Back) == TerrainCorner.Back ? Face.Back : Face.None);

                BlockType sand = BlockManager.Get("MarsMiner_Sand", i - 1);
                sand.SetComponant(new VisibilityBComponant(true, solidFaces));
                sand.SetComponant(new ModelBComponant(GeometryModel.Terrain(corners,
                                                                            "images_blocks_sand", "images_blocks_sandtri",
                                                                            "images_blocks_sand", "images_blocks_sandtri", "images_blocks_sand")));

                BlockType rock = BlockManager.Get("MarsMiner_Rock", i - 1);
                rock.SetComponant(new VisibilityBComponant(true, solidFaces));
                rock.SetComponant(new ModelBComponant(GeometryModel.Terrain(corners,
                                                                            "images_blocks_rock", "images_blocks_rocktri",
                                                                            "images_blocks_rock", "images_blocks_rocktri", "images_blocks_rock")));
            }

            BlockType boulder = BlockManager.Get("MarsMiner_Boulder");

            boulder.SetComponant(new VisibilityBComponant(true, Face.All));
            boulder.SetComponant(new ModelBComponant(GeometryModel.Cube("images_blocks_boulder")));
        }