private void CreatePlanets() { if (LevelMetadata.Planets == null) { return; } var position = LevelMetadata.Position; foreach (var planetMeta in LevelMetadata.Planets) { var modelName = planetMeta.Model; var prop = GTAUtil.CreateProp(modelName, position); if (prop == null) { continue; } prop.Rotation = planetMeta.Rotation; var planetEntity = new PlanetEntity(prop, planetMeta); Planets.Add(planetEntity); } }
private void OnEntitySpawnItemSelected(object sender, NativeMenuItemEventArgs e) { if (e.MenuItem.Tag is string model) { var prop = GTAUtil.CreateProp(model, activateLevelMetadata.Position); if (prop != null) { var spawnOffset = CameraManager.LevelEditorCamera.Direction * 1500; var spawnPos = CameraManager.LevelEditorCamera.Position + spawnOffset; var planetMeta = new Planet { Model = model, Offset = spawnPos - activateLevelMetadata.Position, }; if (activateLevelMetadata.Planets == null) { activateLevelMetadata.Planets = new List <Planet>(); } activateLevelMetadata.Planets.Add(planetMeta); if (activateLevel.PropManager.Planets == null) { activateLevel.PropManager.Planets = new List <PlanetEntity>(); } var planetEntity = new PlanetEntity(prop, planetMeta); activateLevel.PropManager.Planets.Add(planetEntity); var menu = CreateMenuForObject(planetMeta, model); menu.Init(); MenuManager.NativeMenuManager.AddMenu(menu); MenuManager.NativeMenuManager.CloseAllMenus(); menu.Visible = true; AddEditMenuBinding(planetEntity, menu); InitEntityDatabase(); } } }