Exemple #1
0
        private void OnEditMenuItemSelected(object sender, NativeMenuItemEventArgs e)
        {
            var menuItem = e.MenuItem;

            if (menuItem.Tag is Tuple <PropertyInfo, object> propertyInfo)
            {
                var result = GetInputResult(propertyInfo.Item1.PropertyType, propertyInfo.Item1.GetValue(propertyInfo.Item2));

                if (result != null)
                {
                    propertyInfo.Item1.SetValue(propertyInfo.Item2, result);

                    menuItem.Value = result;
                }
            }
            else if (menuItem.Tag is Tuple <FieldInfo, object> fieldInfo)
            {
                var result = GetInputResult(fieldInfo.Item1.FieldType, fieldInfo.Item1.GetValue(fieldInfo.Item2));

                if (result != null)
                {
                    fieldInfo.Item1.SetValue(fieldInfo.Item2, result);

                    menuItem.Value = result;
                }
            }
        }
Exemple #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();
                }
            }
        }
        private void OnFileSelected(object sender, NativeMenuItemEventArgs e)
        {
            if (e.MenuItem == null)
            {
                return;
            }

            var levelMetadata = (SpaceLevel)e.MenuItem.Tag;

            if (levelMetadata == null)
            {
                return;
            }

            Level = new RuntimeLevel(levelMetadata);

            SpaceLevelEditor.BeginEdit(Level);
        }
Exemple #4
0
        private void OnSaveSelected(object sender, NativeMenuItemEventArgs e)
        {
            Serializer.Serialize(activateLevelMetadata, activateLevelMetadata.FilePath);

            UI.Notify("Saved!");
        }