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);
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }