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"))); }