Пример #1
0
void ModificationsPanel::OnModificationPressed(BaseObject * object, void *, void *)
{
	if (object == btnPlaceOn)
	{
        PlaceOnLandscape();
	}
    else if(object == btnLandscape)
    {
        
    }
    else 
    {
        for (int32 i = 0; i < 3; ++i)
        {
            if (object == btnMod[i])
            {
                modState = (eModState)i;
            }
            else if (object == btnAxis[i])
            {
                modAxis = (eModAxis)i;
            }
        }
        UpdateModState();
    }
}
void EditorBodyControl::PlaceOnLandscape()
{
	Entity * selection = scene->GetProxy();
	if (selection && InModificationMode())
	{
        PlaceOnLandscape(selection);
	}
}
void EditorBodyControl::OnPlaceOnLandscape()
{
    PlaceOnLandscape();
}
Пример #4
0
void ModificationsPanel::Input(DAVA::UIEvent *event)
{    
    if (event->phase == UIEvent::PHASE_KEYCHAR)
    {
        UITextField *tf = dynamic_cast<UITextField *>(UIControlSystem::Instance()->GetFocusedControl());
        if(!tf)
        {
            switch(event->tid)
            {
                case DVKEY_Q:
                    modState = MOD_MOVE;
                    break;

                case DVKEY_E:
                    modState = MOD_ROTATE;
                    break;

                case DVKEY_R:
                    modState = MOD_SCALE;
                    break;

                case DVKEY_5:
                {
                    bool altIsPressed = InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_ALT);
                    if(!altIsPressed)
                    {
                        modAxis = AXIS_X;
                    }
                    break;
                }

                case DVKEY_6:
                {
                    bool altIsPressed = InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_ALT);
                    if(!altIsPressed)
                    {
                        modAxis = AXIS_Y;
                    }
                    break;
                }

                case DVKEY_7:
                {
                    bool altIsPressed = InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_ALT);
                    if(!altIsPressed)
                    {
                        modAxis = AXIS_Z;
                    }
                    break;
                }

                case DVKEY_8:
                {
                    bool altIsPressed = InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_ALT);
                    if(!altIsPressed)
                    {
                        if (modAxis < AXIS_XY) modAxis = AXIS_XY;
                        else modAxis = (eModAxis)(AXIS_XY + ((modAxis + 1 - AXIS_XY) % 3));
                    }
                    
                    break;
                }

                case DVKEY_P:
                {
					PlaceOnLandscape();
					break;
                }
					
					
                default:
                    break;
            }
            
			UpdateModState();
        }
	}
	
	UIControl::Input(event);
}