Esempio n. 1
0
    private void OnHotspotClicked(
        HotspotWidget hotspotWidget,
        WidgetEvent widgetEvent)
    {
        if (m_currentNavRef.IsValid)
        {
            WidgetEvent.MouseClickEventParameters eventParameters =
                widgetEvent.EventParameters as WidgetEvent.MouseClickEventParameters;
            Point2d     clickPoint  = new Point2d(eventParameters.worldX, eventParameters.worldY);
            HotspotInfo hotspotInfo = hotspotWidget.Userdata as HotspotInfo;

            switch (hotspotInfo.hotspotType)
            {
            case eHotspotType.energy_tank:
            {
                EnergyTankData energyTankData = hotspotInfo.hotspotEntity as EnergyTankData;

                m_contextOverlayController.OnEnergyTankClicked(clickPoint, energyTankData);
            }
            break;

            case eHotspotType.portal:
            {
                RoomPortal portal = hotspotInfo.hotspotEntity as RoomPortal;

                m_contextOverlayController.OnPortalClicked(clickPoint, portal);
            }
            break;
            }
        }
    }
Esempio n. 2
0
    // Events
    public void OnWidgetEvent(WidgetEvent widgetEvent)
    {
        if (widgetEvent.EventType == WidgetEvent.eEventType.mouseMove)
        {
            UpdateCurrentNavRef();
        }

        if (widgetEvent.EventSource is HotspotWidget)
        {
            HotspotWidget hotspotWidget = widgetEvent.EventSource as HotspotWidget;

            switch (widgetEvent.EventType)
            {
            case WidgetEvent.eEventType.mouseOver:
                OnHotspotEntered(hotspotWidget);
                break;

            case WidgetEvent.eEventType.mouseOut:
                OnHotspotExited();
                break;

            case WidgetEvent.eEventType.mouseClick:
                OnHotspotClicked(hotspotWidget, widgetEvent);
                break;
            }
        }

        UpdateMouseCursor(widgetEvent);
    }
Esempio n. 3
0
    private void UpdateMouseCursor(WidgetEvent widgetEvent)
    {
        if (widgetEvent.EventType == WidgetEvent.eEventType.mouseOver ||
            widgetEvent.EventType == WidgetEvent.eEventType.mouseOut ||
            widgetEvent.EventType == WidgetEvent.eEventType.mouseMove)
        {
            if (widgetEvent.EventSource is HotspotWidget)
            {
                HotspotWidget hotspotWidget = widgetEvent.EventSource as HotspotWidget;
                HotspotInfo   hotspotInfo   = hotspotWidget.Userdata as HotspotInfo;

                switch (hotspotInfo.hotspotType)
                {
                case eHotspotType.energy_tank:
                {
                    EnergyTankData energyTankData = hotspotInfo.hotspotEntity as EnergyTankData;

                    if (energyTankData.ownership != GameConstants.eFaction.player)
                    {
                        // If our faction doesn't control the energy tank, we'll have to hack it
                        SetMouseCursorState(eMouseCursorState.hack_energy_tank);
                    }
                    else if (energyTankData.energy > 0)
                    {
                        // If our faction does control the energy tank, then we can drain it if it has energy
                        SetMouseCursorState(eMouseCursorState.drain_energy_tank);
                    }
                    else
                    {
                        // Otherwise all we can do is walk to it
                        SetMouseCursorState(eMouseCursorState.walk);
                    }
                }
                break;

                case eHotspotType.portal:
                {
                    Point2d hotspotCenter =
                        hotspotWidget.WorldPosition.Offset(new Vector2d(hotspotWidget.Width / 2.0f, hotspotWidget.Height / 2.0f));
                    Point2d  screenCenter    = new Point2d(Screen.width / 2.0f, Screen.height / 2.0f);
                    Vector2d vectorToHotspot = hotspotCenter - screenCenter;

                    MathConstants.eDirection currentHotspotDirection = MathConstants.GetDirectionForVector(vectorToHotspot);

                    switch (currentHotspotDirection)
                    {
                    case MathConstants.eDirection.left:
                        SetMouseCursorState(eMouseCursorState.door_left);
                        break;

                    case MathConstants.eDirection.right:
                        SetMouseCursorState(eMouseCursorState.door_right);
                        break;

                    case MathConstants.eDirection.up:
                        SetMouseCursorState(eMouseCursorState.door_up);
                        break;

                    case MathConstants.eDirection.down:
                        SetMouseCursorState(eMouseCursorState.door_down);
                        break;

                    default:
                        SetMouseCursorState(eMouseCursorState.walk);
                        break;
                    }
                }
                break;

                default:
                {
                    SetMouseCursorState(eMouseCursorState.defaultCursor);
                }
                break;
                }
            }
            else if (widgetEvent.EventSource is TileGridWidget)
            {
                if (m_currentNavRef.IsValid)
                {
                    SetMouseCursorState(eMouseCursorState.walk);
                }
                else
                {
                    SetMouseCursorState(eMouseCursorState.defaultCursor);
                }
            }
            else
            {
                SetMouseCursorState(eMouseCursorState.defaultCursor);
            }
        }
    }
Esempio n. 4
0
 private void OnHotspotEntered(HotspotWidget hotspotWidget)
 {
     CurrentHotspot = hotspotWidget;
 }
 private void OnHotspotEntered(HotspotWidget hotspotWidget)
 {
     CurrentHotspot = hotspotWidget;
 }
    private void OnHotspotClicked(
        HotspotWidget hotspotWidget,
        WidgetEvent widgetEvent)
    {
        if (m_currentNavRef.IsValid)
        {
            WidgetEvent.MouseClickEventParameters eventParameters =
                widgetEvent.EventParameters as WidgetEvent.MouseClickEventParameters;
            Point2d clickPoint = new Point2d(eventParameters.worldX, eventParameters.worldY);
            HotspotInfo hotspotInfo = hotspotWidget.Userdata as HotspotInfo;

            switch (hotspotInfo.hotspotType)
            {
                case eHotspotType.energy_tank:
                    {
                        EnergyTankData energyTankData = hotspotInfo.hotspotEntity as EnergyTankData;

                        m_contextOverlayController.OnEnergyTankClicked(clickPoint, energyTankData);
                    }
                    break;
                case eHotspotType.portal:
                    {
                        RoomPortal portal = hotspotInfo.hotspotEntity as RoomPortal;

                        m_contextOverlayController.OnPortalClicked(clickPoint, portal);
                    }
                    break;
            }
        }
    }