private void PopulateSpecialRoom(Scene scene, Zone zone, Vector3 roomCenter, PopulateSchemeFlags flags, ref PopulateRoomResults results) { int rng = rand.Next(8); if (flags.ClearPerimeter) { if (rng == 7) { SceneStructures.Arena(WallTexture)(scene, zone, roomCenter); } } if (flags.ClearFloor) { if (rng < 7 || !flags.ClearPerimeter) { results.GenerateFloor = false; SceneStructures.Pit(FloorTexture, WallTexture)(scene, zone, roomCenter); SceneStructures.PitFloor(Assets.iceTexture)(scene, zone, roomCenter); if (rng < 3 && flags.ClearCenter) { SceneStructures.PitPillar(WallTexture)(scene, zone, roomCenter); } } } if (rand.Next(2) == 0) { SceneStructures.IceCutCorners(Assets.iceTexture)(scene, zone, roomCenter); } }
private void PopulateRoomWalls(Scene scene, Zone zone, Vector3 roomCenter, PopulateSchemeFlags flags) { int rnd = rand.Next(2); if (flags.NotJoint && rnd == 0) { SceneStructures.CutCorners(WallTexture)(scene, zone, roomCenter); } else if (rnd == 1) { SceneStructures.Pillars4Outer(WallTexture)(scene, zone, roomCenter); } if (rand.Next(2) == 0 && rnd != 0) { SceneStructures.IceCutCorners(Assets.iceTexture)(scene, zone, roomCenter); } }