aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/DefaultTexturePack.cpp
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/DefaultTexturePack.cpp
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/DefaultTexturePack.cpp')
-rw-r--r--Minecraft.Client/DefaultTexturePack.cpp131
1 files changed, 131 insertions, 0 deletions
diff --git a/Minecraft.Client/DefaultTexturePack.cpp b/Minecraft.Client/DefaultTexturePack.cpp
new file mode 100644
index 00000000..d2974b6d
--- /dev/null
+++ b/Minecraft.Client/DefaultTexturePack.cpp
@@ -0,0 +1,131 @@
+#include "stdafx.h"
+#include "DefaultTexturePack.h"
+#include "Textures.h"
+#include "..\Minecraft.World\StringHelpers.h"
+
+
+DefaultTexturePack::DefaultTexturePack() : AbstractTexturePack(0, NULL, L"Minecraft", NULL)
+{
+ // 4J Stu - These calls need to be in the most derived version of the class
+ loadIcon();
+ loadName(); // 4J-PB - added so the PS3 can have localised texture names'
+ loadDescription();
+ loadColourTable();
+}
+
+void DefaultTexturePack::loadIcon()
+{
+#ifdef _XBOX
+ // 4J Stu - Temporary only
+ const DWORD LOCATOR_SIZE = 256; // Use this to allocate space to hold a ResourceLocator string
+ WCHAR szResourceLocator[ LOCATOR_SIZE ];
+
+ const ULONG_PTR c_ModuleHandle = (ULONG_PTR)GetModuleHandle(NULL);
+ swprintf(szResourceLocator, LOCATOR_SIZE ,L"section://%X,%ls#%ls",c_ModuleHandle,L"media", L"media/Graphics/TexturePackIcon.png");
+
+ UINT size = 0;
+ HRESULT hr = XuiResourceLoadAllNoLoc(szResourceLocator, &m_iconData, &size);
+ m_iconSize = size;
+#else
+ if(app.hasArchiveFile(L"Graphics\\TexturePackIcon.png"))
+ {
+ byteArray ba = app.getArchiveFile(L"Graphics\\TexturePackIcon.png");
+ m_iconData = ba.data;
+ m_iconSize = ba.length;
+ }
+#endif
+}
+
+void DefaultTexturePack::loadDescription()
+{
+ desc1 = L"LOCALISE ME: The default look of Minecraft";
+}
+void DefaultTexturePack::loadName()
+{
+ texname = L"Minecraft";
+}
+
+bool DefaultTexturePack::hasFile(const wstring &name)
+{
+// return DefaultTexturePack::class->getResourceAsStream(name) != null;
+ return true;
+}
+
+bool DefaultTexturePack::isTerrainUpdateCompatible()
+{
+ return true;
+}
+
+InputStream *DefaultTexturePack::getResourceImplementation(const wstring &name)// throws FileNotFoundException
+{
+ wstring wDrive = L"";
+ // Make the content package point to to the UPDATE: drive is needed
+#ifdef _XBOX
+ #ifdef _TU_BUILD
+ wDrive=L"UPDATE:\\res";
+ #else
+
+ wDrive=L"GAME:\\res\\TitleUpdate\\res";
+ #endif
+#elif __PS3__
+
+ char *pchUsrDir;
+ if(app.GetBootedFromDiscPatch())
+ {
+ const char *pchTextureName=wstringtofilename(name);
+ pchUsrDir = app.GetBDUsrDirPath(pchTextureName);
+ app.DebugPrintf("DefaultTexturePack::getResourceImplementation - texture %s - Drive - %s\n",pchTextureName,pchUsrDir);
+ }
+ else
+ {
+ const char *pchTextureName=wstringtofilename(name);
+ pchUsrDir=getUsrDirPath();
+ app.DebugPrintf("DefaultTexturePack::getResourceImplementation - texture %s - Drive - %s\n",pchTextureName,pchUsrDir);
+ }
+
+
+ wstring wstr (pchUsrDir, pchUsrDir+strlen(pchUsrDir));
+
+ wDrive = wstr + L"\\Common\\res\\TitleUpdate\\res";
+#elif __PSVITA__
+
+ /*
+ char *pchUsrDir=getUsrDirPath();
+ wstring wstr (pchUsrDir, pchUsrDir+strlen(pchUsrDir));
+
+ wDrive = wstr + L"Common\\res\\TitleUpdate\\res";
+ */
+ wDrive = L"Common\\res\\TitleUpdate\\res";
+#else
+ wDrive = L"Common\\res\\TitleUpdate\\res";
+
+#endif
+ InputStream *resource = InputStream::getResourceAsStream(wDrive + name);
+ //InputStream *stream = DefaultTexturePack::class->getResourceAsStream(name);
+ //if (stream == NULL)
+ //{
+ // throw new FileNotFoundException(name);
+ //}
+
+ //return stream;
+ return resource;
+}
+
+void DefaultTexturePack::loadUI()
+{
+ loadDefaultUI();
+
+ AbstractTexturePack::loadUI();
+}
+
+void DefaultTexturePack::unloadUI()
+{
+#ifdef _XBOX
+ // Unload skin
+ XuiFreeVisuals(L"TexturePack");
+ XuiFreeVisuals(L"");
+ CXuiSceneBase::GetInstance()->SetVisualPrefix(L"");
+ CXuiSceneBase::GetInstance()->SkinChanged(CXuiSceneBase::GetInstance()->m_hObj);
+#endif
+ AbstractTexturePack::unloadUI();
+}