Files
ZMMO/Source/ZMMO/Game/Controller/ZeusPlayerController.h
Mateus Rodrigues 6a6a28a086 refactor: prefixo ZMMO -> Zeus em classes/módulos C++ do cliente
- Renomeia ~50 classes UCLASS/USTRUCT/UENUM/UINTERFACE pra Zeus*
  (AZeusGameMode, AZeusCharacter, UZeusGameInstance, IZeusEntityInterface,
  UZeusWorldSubsystem, FZeusEntitySnapshot, etc.)
- Encurta AZMMOPlayerCharacter -> AZeusCharacter
- Renomeia módulos satélite ZMMOAttributes -> ZeusAttributes e
  ZMMOJobs -> ZeusJobs (pasta + .Build.cs + .uproject)
- Mantém módulo principal ZMMO (renomeia depois quando jogo ganhar nome)
- DefaultEngine.ini: ActiveClassRedirects ZMMOX -> ZeusX (preserva BPs/assets)
- DefaultGame.ini: sections atualizadas pra ZeusThemeSubsystem/ZeusPlayerState
- Category="ZMMO|..." -> "Zeus|..." em UPROPERTYs
- Preserva LogZMMO, ZMMO_API, /Script/ZMMO., /Game/ZMMO/, classes Target

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 17:24:38 -03:00

57 lines
1.7 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "ZeusPlayerController.generated.h"
class UInputMappingContext;
class UUserWidget;
/**
* AZeusPlayerController
*
* Player controller do cliente Zeus MMO. Responsavel apenas pela camada de
* input do Unreal (Enhanced Input Mapping Contexts e widget opcional de
* controlos touch). Toda a logica de identidade Zeus, envio de input e
* reconciliacao vive em `AZeusCharacter`.
*/
UCLASS(Blueprintable, BlueprintType)
class ZMMO_API AZeusPlayerController : public APlayerController
{
GENERATED_BODY()
public:
AZeusPlayerController();
protected:
/** Mapping contexts default (sempre adicionados). */
UPROPERTY(EditAnywhere, Category = "Input|Input Mappings")
TArray<UInputMappingContext*> DefaultMappingContexts;
/** Mapping contexts saltados quando estamos em modo touch. */
UPROPERTY(EditAnywhere, Category = "Input|Input Mappings")
TArray<UInputMappingContext*> MobileExcludedMappingContexts;
/** Widget opcional de controlos touch (mobile / forced). */
UPROPERTY(EditAnywhere, Category = "Input|Touch Controls")
TSubclassOf<UUserWidget> MobileControlsWidgetClass;
UPROPERTY()
TObjectPtr<UUserWidget> MobileControlsWidget;
/** Forca controlos touch mesmo fora de plataformas mobile (uso em desktop dev). */
UPROPERTY(EditAnywhere, Config, Category = "Input|Touch Controls")
bool bForceTouchControls = false;
virtual void BeginPlay() override;
virtual void SetupInputComponent() override;
bool ShouldUseTouchControls() const;
/** Hotkey Alt+A → toggle StatusWindow via UUIInGameFlowSubsystem. */
void ToggleStatusWindow();
/** Hotkey J → toggle JobChangePanel (Jobs.1 — promocao de classe). */
void ToggleJobChangePanel();
};