#include "stdafx.h" #include "DefaultTexturePack.h" #include "Textures.h" #include "..\Minecraft.World\StringHelpers.h" DefaultTexturePack::DefaultTexturePack() : AbstractTexturePack(0, nullptr, L"Minecraft", nullptr) { // 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(nullptr); 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 == nullptr) //{ // 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(); }