Beispiel #1
0
    private void ButtonClick(UIComponent p_component, UIMouseEventParameter p_eventParam)
    {
        OverLayerTool l_overLayerTool = OverLayerTool.instance;

        if (l_overLayerTool != null)
        {
            l_overLayerTool.ToggleActive();
        }
    }
Beispiel #2
0
    public override void OnLevelUnloading()
    {
        OverLayerTool l_overLayerTool = OverLayerTool.instance;

        if (l_overLayerTool != null && l_overLayerTool.GetIsActive())
        {
            l_overLayerTool.ToggleActive();
        }
    }
Beispiel #3
0
    private void ButtonMouseUp(UIComponent p_component, UIMouseEventParameter p_eventParam)
    {
        OverLayerTool l_overLayerTool = OverLayerTool.instance;

        if (l_overLayerTool == null)
        {
            return;
        }

        if (p_eventParam.buttons == UIMouseButton.Left)
        {
            l_overLayerTool.ToggleActive();
        }
        else
        {
            l_overLayerTool.ToggleLocked();
        }
    }
Beispiel #4
0
    public override void OnLevelLoaded(LoadMode p_mode)
    {
        if (p_mode == LoadMode.LoadAsset || p_mode == LoadMode.NewAsset)
        {
            return;
        }

        // Get the UIView object. This seems to be the top-level object for most
        // of the UI.
        var l_uiView = UIView.GetAView();

        // Add a new button to the view.
        m_button = (UIButton)l_uiView.AddUIComponent(typeof(UIButton));

        // Set the text to show on the button tooltip.
        m_button.tooltip       = "Terrain Contour";
        m_button.tooltipAnchor = UITooltipAnchor.Floating;
        m_button.RefreshTooltip();

        // Set the button dimensions.
        m_button.width  = 42;
        m_button.height = 42;

        // Style the button to look like a menu button.
        m_button.normalBgSprite   = "OptionBase";
        m_button.disabledBgSprite = "OptionBaseDisabled";
        m_button.hoveredBgSprite  = "OptionBaseHovered";
        m_button.focusedBgSprite  = "OptionBaseFocused";
        m_button.pressedBgSprite  = "OptionBasePressed";
        m_button.normalFgSprite   = "RoadOptionUpgrade";
        m_button.hoveredFgSprite  = "RoadOptionUpgradeHovered";
        m_button.focusedFgSprite  = "RoadOptionUpgradeFocused";
        m_button.pressedFgSprite  = "RoadOptionUpgradePressed";

        m_button.textColor         = new Color32(255, 255, 255, 255);
        m_button.disabledTextColor = new Color32(7, 7, 7, 255);
        m_button.hoveredTextColor  = new Color32(7, 132, 255, 255);
        m_button.focusedTextColor  = new Color32(255, 255, 255, 255);
        m_button.pressedTextColor  = new Color32(30, 30, 44, 255);

        // Enable button sounds.
        m_button.playAudioEvents = true;

        // Place the button.
        m_button.transformPosition = new Vector3(-1.11f, 0.98f);

        // Respond to button click.
        m_button.eventClicked += ButtonClick;

        try
        {
            OverLayerTool.OnLevelLoaded();
            OverLayerTool.SetDelegate(this);
        }
        catch (Exception e)
        {
            DebugLog("Error loading tool: " + e.ToString());
        }

        DebugLog("Loaded");
    }
Beispiel #5
0
    public override void OnLevelLoaded(LoadMode p_mode)
    {
        if (p_mode == LoadMode.LoadAsset || p_mode == LoadMode.NewAsset)
        {
            return;
        }

        // Get the UIView object. This seems to be the top-level object for most
        // of the UI.
        var l_uiView = UIView.GetAView();

        // Add a new button to the view.
        m_button = (UIMultiStateButton)l_uiView.AddUIComponent(typeof(UIMultiStateButton));

        // Attach a sprite to the button
        m_lockImage = (UISprite)m_button.AddUIComponent(typeof(UISprite));

        // Set the text to show on the button tooltip.
        m_button.tooltip            = "OverLayer Switch - Right Click to lock layer movement (Ctrl+Shift+L).";
        m_button.isTooltipLocalized = false;
        m_button.RefreshTooltip();
        m_button.spritePadding = new RectOffset();

        // Set the button dimensions.
        m_button.width  = 36;
        m_button.height = 36;

        // Set the lock image
        m_lockImage.spriteName = "LockIcon";
        m_lockImage.position   = new Vector3(18, -18);
        m_lockImage.width      = 24;
        m_lockImage.height     = 24;
        m_lockImage.Hide();

        if (m_lockImage.atlas == null || m_lockImage.atlas.material == null)
        {
            DebugLog("Could not get reference material!!!");
            return;
        }

        // The sprite for the button can't be added to the InGame atlas, since the sprite data
        // seems to come from the atlas's texture, instead of the texture supplied by the SpriteData.
        // So a whole new atlas with the toggle button base images duplicated is needed.
        // Thanks to https://github.com/onewaycitystreets/StreetDirectionViewer/blob/master/ui/StreetDirectionViewerUI.cs

        String[] iconNames =
        {
            "RoadArrowIcon",
            "Base",
            "BaseFocused",
            "BaseHovered",
            "BasePressed",
            "BaseDisabled",
        };

        m_button.atlas = CreateTextureAtlas("OverLayer.OverlayIcon.png", "OverLayer Atlas", m_lockImage.atlas.material, 36, 36, iconNames);

        // Background sprites

        // Disabled state
        UIMultiStateButton.SpriteSet backgroundSpriteSet0 = m_button.backgroundSprites[0];
        backgroundSpriteSet0.normal   = "Base";
        backgroundSpriteSet0.disabled = "Base";
        backgroundSpriteSet0.hovered  = "BaseHovered";
        backgroundSpriteSet0.pressed  = "Base";
        backgroundSpriteSet0.focused  = "Base";

        // Enabled state
        m_button.backgroundSprites.AddState();
        UIMultiStateButton.SpriteSet backgroundSpriteSet1 = m_button.backgroundSprites[1];
        backgroundSpriteSet1.normal   = "BaseFocused";
        backgroundSpriteSet1.disabled = "BaseFocused";
        backgroundSpriteSet1.hovered  = "BaseFocused";
        backgroundSpriteSet1.pressed  = "BaseFocused";
        backgroundSpriteSet1.focused  = "BaseFocused";

        // Forground sprites

        // Disabled state
        UIMultiStateButton.SpriteSet foregroundSpriteSet0 = m_button.foregroundSprites[0];
        foregroundSpriteSet0.normal   = "RoadArrowIcon";
        foregroundSpriteSet0.disabled = "RoadArrowIcon";
        foregroundSpriteSet0.hovered  = "RoadArrowIcon";
        foregroundSpriteSet0.pressed  = "RoadArrowIcon";
        foregroundSpriteSet0.focused  = "RoadArrowIcon";

        // Enabled state
        m_button.foregroundSprites.AddState();
        UIMultiStateButton.SpriteSet foregroundSpriteSet1 = m_button.foregroundSprites[1];
        foregroundSpriteSet1.normal   = "RoadArrowIcon";
        foregroundSpriteSet1.disabled = "RoadArrowIcon";
        foregroundSpriteSet1.hovered  = "RoadArrowIcon";
        foregroundSpriteSet1.pressed  = "RoadArrowIcon";
        foregroundSpriteSet1.focused  = "RoadArrowIcon";

        // Enable button sounds.
        m_button.playAudioEvents = true;

        // Place the button.
        m_button.transformPosition = new Vector3(-1.11f, 0.98f);

        // Respond to button click.
        m_button.eventMouseUp += ButtonMouseUp;

        try
        {
            OverLayerTool.OnLevelLoaded();
            OverLayerTool.SetDelegate(this);
        }
        catch (Exception e)
        {
            DebugLog("Error loading tool: " + e.ToString());
        }

        DebugLog("Loaded");
    }