コード例 #1
0
        }   // end of GetHelpDescription()

        /// <summary>
        /// Activates the AddItem help card.
        /// </summary>
        /// <param name="parent">Parent pie selector.</param>
        /// <param name="typeName">This is the string that identifies the type of the object we're getting help for.  This is used to get the correct help data from the Help class.</param>
        /// <param name="objectName">This the displayed name of the object/actor.  This comes from the Strings class and may be localized.</param>
        public void Activate(PieSelector parent, string typeName, string objectName)
        {
            ToolTipManager.Clear();

            if (typeName == null || objectName == null)
            {
                return;
            }

            this.parent = parent;

            if (state != States.Active)
            {
                // Ensure we have valid help before activating.
                shared.actorHelp = Help.GetActorHelp(typeName);

                if (shared.actorHelp == null || shared.actorHelp.upid == null)
                {
                    return;
                }

                // Do stack handling here.  If we do it in the update object we have no
                // clue which order things get pushed and popped and madness ensues.
                CommandStack.Push(commandMap);

                state = States.Active;

                shared.curActorName = objectName;
                if (shared.actorHelp.description != null)
                {
                    shared.descBlob.RawText = shared.actorHelp.description.Trim();
                }

                shared.SetUpGrid();

                if (shared.examplesGrid != null)
                {
                    shared.examplesGrid.Active = true;
                }

                // Always start the description at the beginning.
                shared.topLine    = 0;
                shared.descOffset = 0;

                // Get the current scene thumbnail.
                shared.thumbnail = InGame.inGame.SmallThumbNail;

                // Tell InGame we're using the thumbnail so no need to do full render.
                InGame.inGame.RenderWorldAsThumbnail = true;

                HelpOverlay.Push(@"HelpCardAddItem");

                timerInstrument = Instrumentation.StartTimer(Instrumentation.TimerId.AddItemHelpCards);
            }
        }   // end of Activate
コード例 #2
0
            public void AddUISelector(List <GameObject> childList, out UiSelector uiSelector, bool ignorePaths)
            {
                //
                // Set up the pie menu for choosing new objects to add to the scene.
                //
                uiSelector = new PieSelector(null, "Sim.EditObjects.PickThing");

                // Size used for all items.
                Vector2 size = new Vector2(1.0f, 1.0f);

                // Boku
                var boku = ActorManager.GetActor("BokuBot");

                uiSelector.AddItem(new ActorMenuItem(uiSelector, boku.LocalizedName, boku.MenuTextureFile, boku, size, radialOffset));

                // Rover
                var rover = ActorManager.GetActor("Rover");

                uiSelector.AddItem(new ActorMenuItem(uiSelector, rover.LocalizedName, rover.MenuTextureFile, rover, size, radialOffset));

                // Fruit
                var fruit = ActorManager.GetActor("Fruit");

                uiSelector.AddItem(new ActorMenuItem(uiSelector, fruit.LocalizedName, fruit.MenuTextureFile, fruit, size, radialOffset));

                #region BotGroup1
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"Textures\Tiles\group.botsI", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickToken");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    // bot group items

                    var actors = ActorManager.GetActorsInGroup("BotGroup1");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }
                #endregion

                #region BotGroup2
                // some might think a subroutine would be a better way to structure this...
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"Textures\Tiles\group.botsII", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickToken");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    // bot group items
                    var actors = ActorManager.GetActorsInGroup("BotGroup2");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }
                #endregion

                #region objects group (star, coin, heart)
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"Textures\Tiles\group.objects", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickToken");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);


                    var actors = ActorManager.GetActorsInGroup("ObjectGroup");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }

                #endregion

                #region trees group
                // trees group
                //
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"filter.tree", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickTree");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    // Trees group items
                    var actors = ActorManager.GetActorsInGroup("TreeGroup");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }
                #endregion

                #region pipe group
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"filter.pipe", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickPipe");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    // Trees group items
                    var actors = ActorManager.GetActorsInGroup("PipeGroup");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }
                #endregion

                #region underwater group
                // underwater group
                //
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"filter.underwater", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickUnderwater");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    // Trees group items
                    var actors = ActorManager.GetActorsInGroup("UnderwaterGroup");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }
                #endregion

                #region rock group
                // rock group
                //
                {
                    var          rock  = ActorManager.GetActor("Rock");
                    RenderObject group = new ActorMenuItem(uiSelector, rock.LocalizedName, @"filter.rock", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickRock");

                    // move it out front
                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    // Trees group items
                    var actors = ActorManager.GetActorsInGroup("RockGroup");
                    for (int i = 0; i < actors.Count; i++)
                    {
                        selectorGroup.AddItem(new ActorMenuItem(selectorGroup, actors[i].LocalizedName, actors[i].MenuTextureFile, actors[i], size, groupRadialOffset));
                    }
                }
                #endregion

                // WayPoint
                #region waypoint group
                if (!ignorePaths)
                {
                    RenderObject group = new ActorMenuItem(uiSelector, null, @"Textures\Tiles\modifier.waypointwhite", null, size, radialOffset);

                    UiSelector selectorGroup = new PieSelector(group, "Sim.EditObjects.PickToken");

                    ITransform transformSelector = selectorGroup as ITransform;
                    transformSelector.Local.Translation = new Vector3(0.0f, 0.0f, sizeMenuItem);
                    transformSelector.Compose();

                    selectorGroup.ComposeDefault += NewItemSelectorComposeDefault;
                    selectorGroup.Select         += SelectNewItemSelector;
                    selectorGroup.Cancel         += CancelNewItemSelector;

                    uiSelector.AddGroup(group, selectorGroup);

                    selectorGroup.AddItem(new ActorMenuItem(selectorGroup, Strings.Localize("actorNames.pathGeneric"), @"filter.pathplain", null, size, radialOffset));
                    selectorGroup.AddItem(new ActorMenuItem(selectorGroup, Strings.Localize("actorNames.pathRoad"), @"filter.pathroad", null, size, radialOffset));
                    selectorGroup.AddItem(new ActorMenuItem(selectorGroup, Strings.Localize("actorNames.pathWall"), @"filter.pathwall", null, size, radialOffset));
                    selectorGroup.AddItem(new ActorMenuItem(selectorGroup, Strings.Localize("actorNames.pathVeggie"), @"filter.pathflora", null, size, radialOffset));

                    //uiSelector.AddItem(new ActorMenuItem(uiSelector, Strings.Localize("actorNames.wayPoint"), null, @"modifier.waypointwhite", null, size, radialOffset));

                    // move the selector into position
                    {
                        //ITransform transformSelector = uiSelector as ITransform;
                        //transformSelector.Local.RotationY = MathHelper.ToRadians(14.0f);
                        //transformSelector.Local.RotationX = MathHelper.ToRadians(14.0f);
                        //transformSelector.Compose();
                    }
                    // Add the selector to the child list.
                }
                #endregion waypoint group

                uiSelector.ComposeDefault += NewItemSelectorComposeDefault;
                uiSelector.Select         += SelectNewItemSelector;
                uiSelector.Cancel         += CancelNewItemSelector;
                childList.Add(uiSelector);
            }   // end of AddUISelector()