- 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>
57 lines
1.7 KiB
C++
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();
|
|
};
|