From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/Common/UI/UIStructs.h | 409 +++++++++++++++++++++++++++++++++ 1 file changed, 409 insertions(+) create mode 100644 Minecraft.Client/Common/UI/UIStructs.h (limited to 'Minecraft.Client/Common/UI/UIStructs.h') diff --git a/Minecraft.Client/Common/UI/UIStructs.h b/Minecraft.Client/Common/UI/UIStructs.h new file mode 100644 index 00000000..2dd03c8c --- /dev/null +++ b/Minecraft.Client/Common/UI/UIStructs.h @@ -0,0 +1,409 @@ +#pragma once + +#pragma message("UIStructs.h") + +#include "UIEnums.h" + +class Container; +class Inventory; +class BrewingStandTileEntity; +class DispenserTileEntity; +class FurnaceTileEntity; +class SignTileEntity; +class LevelGenerationOptions; +class LocalPlayer; +class Merchant; + +// 4J Stu - Structs shared by Iggy and Xui scenes. +typedef struct _UIVec2D +{ + float x; + float y; + + _UIVec2D& operator+=(const _UIVec2D &rhs) + { + x += rhs.x; + y += rhs.y; + return *this; + } +} UIVec2D; + +// Brewing +typedef struct _BrewingScreenInput +{ + shared_ptr inventory; + shared_ptr brewingStand; + int iPad; + bool bSplitscreen; +} BrewingScreenInput; + +// Chest +typedef struct _ContainerScreenInput +{ + shared_ptr inventory; + shared_ptr container; + int iPad; + bool bSplitscreen; +} ContainerScreenInput; + +// Dispenser +typedef struct _TrapScreenInput +{ + shared_ptr inventory; + shared_ptr trap; + int iPad; + bool bSplitscreen; +} TrapScreenInput; + +// Inventory and creative inventory +typedef struct _InventoryScreenInput +{ + shared_ptr player; + bool bNavigateBack; // If we came here from the crafting screen, go back to it, rather than closing the xui menus + int iPad; + bool bSplitscreen; +} InventoryScreenInput; + +// Enchanting +typedef struct _EnchantingScreenInput +{ + shared_ptr inventory; + Level *level; + int x; + int y; + int z; + int iPad; + bool bSplitscreen; +} EnchantingScreenInput; + +// Furnace +typedef struct _FurnaceScreenInput +{ + shared_ptr inventory; + shared_ptr furnace; + int iPad; + bool bSplitscreen; +} FurnaceScreenInput; + +// Crafting +typedef struct _CraftingPanelScreenInput +{ + shared_ptr player; + int iContainerType; // RECIPE_TYPE_2x2 or RECIPE_TYPE_3x3 + bool bSplitscreen; + int iPad; + int x; + int y; + int z; +} +CraftingPanelScreenInput; + +// Trading +typedef struct _TradingScreenInput +{ + shared_ptr inventory; + shared_ptr trader; + Level *level; + int iPad; + bool bSplitscreen; +} +TradingScreenInput; + +// Anvil +typedef struct _AnvilScreenInput +{ + shared_ptr inventory; + Level *level; + int x; + int y; + int z; + int iPad; + bool bSplitscreen; +} +AnvilScreenInput; + +// Sign +typedef struct _SignEntryScreenInput +{ + shared_ptr sign; + int iPad; +} SignEntryScreenInput; + +// Connecting progress +typedef struct _ConnectionProgressParams +{ + int iPad; + int stringId; + bool showTooltips; + bool setFailTimer; + int timerTime; + void (*cancelFunc)(LPVOID param); + LPVOID cancelFuncParam; + + _ConnectionProgressParams() + { + iPad = 0; + stringId = -1; + showTooltips = false; + setFailTimer = false; + timerTime = 0; + cancelFunc = NULL; + cancelFuncParam = NULL; + } +} ConnectionProgressParams; + +// Fullscreen progress +typedef struct _UIFullscreenProgressCompletionData +{ + BOOL bRequiresUserAction; + BOOL bShowBackground; + BOOL bShowLogo; + BOOL bShowTips; + ProgressionCompletionType type; + int iPad; + EUIScene scene; + + _UIFullscreenProgressCompletionData() + { + bRequiresUserAction = FALSE; + bShowBackground = TRUE; + bShowLogo = TRUE; + bShowTips = TRUE; + type = e_ProgressCompletion_NoAction; + } +} UIFullscreenProgressCompletionData; + +// Create world +typedef struct _CreateWorldMenuInitData +{ + BOOL bOnline; + BOOL bIsPrivate; + int iPad; +} +CreateWorldMenuInitData; + +// Join/Load saves list +typedef struct _SaveListDetails +{ + int saveId; + PBYTE pbThumbnailData; + DWORD dwThumbnailSize; +#ifdef _DURANGO + wchar_t UTF16SaveName[128]; + wchar_t UTF16SaveFilename[MAX_SAVEFILENAME_LENGTH]; +#else + char UTF8SaveName[128]; +#ifndef _XBOX + char UTF8SaveFilename[MAX_SAVEFILENAME_LENGTH]; +#endif +#endif + + _SaveListDetails() + { + saveId = 0; + pbThumbnailData = NULL; + dwThumbnailSize = 0; +#ifdef _DURANGO + ZeroMemory(UTF16SaveName,sizeof(wchar_t)*128); + ZeroMemory(UTF16SaveFilename,sizeof(wchar_t)*MAX_SAVEFILENAME_LENGTH); +#else + ZeroMemory(UTF8SaveName,128); +#ifndef _XBOX + ZeroMemory(UTF8SaveFilename,MAX_SAVEFILENAME_LENGTH); +#endif +#endif + } + +} SaveListDetails; + +// Load world +typedef struct _LoadMenuInitData +{ + int iPad; + int iSaveGameInfoIndex; + LevelGenerationOptions *levelGen; + SaveListDetails *saveDetails; +} +LoadMenuInitData; + +// Join Games +typedef struct _JoinMenuInitData +{ + FriendSessionInfo *selectedSession; + int iPad; +} JoinMenuInitData; + +// More Options +typedef struct _LaunchMoreOptionsMenuInitData +{ + BOOL bOnlineGame; + BOOL bInviteOnly; + BOOL bAllowFriendsOfFriends; + + BOOL bGenerateOptions; + BOOL bStructures; + BOOL bFlatWorld; + BOOL bBonusChest; + + BOOL bPVP; + BOOL bTrust; + BOOL bFireSpreads; + BOOL bTNT; + + BOOL bHostPrivileges; + BOOL bResetNether; + + BOOL bOnlineSettingChangedBySystem; + + int iPad; + + DWORD dwTexturePack; + + wstring seed; + int worldSize; + bool bDisableSaving; + + _LaunchMoreOptionsMenuInitData() + { + memset(this,0,sizeof(_LaunchMoreOptionsMenuInitData)); + bOnlineGame = TRUE; + bAllowFriendsOfFriends = TRUE; + bPVP = TRUE; + bFireSpreads = TRUE; + bTNT = TRUE; + iPad = -1; + worldSize = 3; + seed = L""; + bDisableSaving = false; + } +} +LaunchMoreOptionsMenuInitData; + +typedef struct _LoadingInputParams +{ + C4JThreadStartFunc* func; + LPVOID lpParam; + UIFullscreenProgressCompletionData *completionData; + + int cancelText; + void (*cancelFunc)(LPVOID param); + void (*completeFunc)(LPVOID param); + LPVOID m_cancelFuncParam; + LPVOID m_completeFuncParam; + bool waitForThreadToDelete; + + _LoadingInputParams() + { + func = NULL; + lpParam = NULL; + completionData = NULL; + + cancelText = -1; + cancelFunc = NULL; + completeFunc = NULL; + m_cancelFuncParam = NULL; + m_completeFuncParam = NULL; + waitForThreadToDelete = false; + } +} LoadingInputParams; + +// Tutorial +#ifndef _XBOX +class UIScene; +#endif +class Tutorial; +typedef struct _TutorialPopupInfo +{ +#ifdef _XBOX + CXuiScene *interactScene; +#else + UIScene *interactScene; +#endif + LPCWSTR desc; + LPCWSTR title; + int icon; + int iAuxVal /* = 0 */; + bool isFoil /* = false */; + bool allowFade /* = true */; + bool isReminder /*= false*/; + Tutorial *tutorial; + + _TutorialPopupInfo() + { + interactScene = NULL; + desc = L""; + title = L""; + icon = -1; + iAuxVal = 0; + isFoil = false; + allowFade = true; + isReminder = false; + tutorial = NULL; + } + +} TutorialPopupInfo; + +// Quadrant sign in +typedef struct _SignInInfo +{ + int( *Func)(LPVOID,const bool, const int iPad); + LPVOID lpParam; + bool requireOnline; +} SignInInfo; + +// Credits +typedef struct +{ + LPCWSTR m_Text; // Should contain string, optionally with %s to add in translated string ... e.g. "Andy West - %s" + int m_iStringID[2]; // May be NO_TRANSLATED_STRING if we do not require to add any translated string. + ECreditTextTypes m_eType; +} +SCreditTextItemDef; + +// Message box +typedef struct _MessageBoxInfo +{ + UINT uiTitle; + UINT uiText; + UINT *uiOptionA; + UINT uiOptionC; + DWORD dwPad; + int( *Func)(LPVOID,int,const C4JStorage::EMessageResult); + LPVOID lpParam; + //C4JStringTable *pStringTable; // 4J Stu - We don't need this for our internal message boxes + WCHAR *pwchFormatString; + DWORD dwFocusButton; +} MessageBoxInfo; + +typedef struct _DLCOffersParam +{ + int iPad; + int iOfferC; + int iType; +} +DLCOffersParam; + +typedef struct _InGamePlayerOptionsInitData +{ + int iPad; + BYTE networkSmallId; + unsigned int playerPrivileges; +} InGamePlayerOptionsInitData; + +typedef struct _DebugSetCameraPosition +{ + int player; + double m_camX, m_camY, m_camZ, m_yRot, m_elev; +} DebugSetCameraPosition; + +typedef struct _TeleportMenuInitData +{ + int iPad; + bool teleportToPlayer; +} TeleportMenuInitData; + +typedef struct _CustomDrawData +{ + float x0, y0, x1, y1; // the bounding box of the original DisplayObject, in object space + float mat[16]; +} CustomDrawData; -- cgit v1.2.3