first commit
This commit is contained in:
110
Minecraft.Client/FolderTexturePack.cpp
Normal file
110
Minecraft.Client/FolderTexturePack.cpp
Normal file
@@ -0,0 +1,110 @@
|
||||
#include "stdafx.h"
|
||||
#include "FolderTexturePack.h"
|
||||
|
||||
FolderTexturePack::FolderTexturePack(DWORD id, const wstring &name, File *folder, TexturePack *fallback) : AbstractTexturePack(id, folder, name, fallback)
|
||||
{
|
||||
// 4J Stu - These calls need to be in the most derived version of the class
|
||||
loadIcon();
|
||||
loadName();
|
||||
loadDescription();
|
||||
|
||||
bUILoaded = false;
|
||||
}
|
||||
|
||||
InputStream *FolderTexturePack::getResourceImplementation(const wstring &name) //throws IOException
|
||||
{
|
||||
#if 0
|
||||
final File file = new File(this.file, name.substring(1));
|
||||
if (!file.exists()) {
|
||||
throw new FileNotFoundException(name);
|
||||
}
|
||||
|
||||
return new BufferedInputStream(new FileInputStream(file));
|
||||
#endif
|
||||
|
||||
wstring wDrive = L"";
|
||||
// Make the content package point to to the UPDATE: drive is needed
|
||||
#ifdef _XBOX
|
||||
wDrive=L"GAME:\\DummyTexturePack\\res";
|
||||
#else
|
||||
wDrive = L"Common\\DummyTexturePack\\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;
|
||||
}
|
||||
|
||||
bool FolderTexturePack::hasFile(const wstring &name)
|
||||
{
|
||||
File file = File( getPath() + name);
|
||||
return file.exists() && file.isFile();
|
||||
//return true;
|
||||
}
|
||||
|
||||
bool FolderTexturePack::isTerrainUpdateCompatible()
|
||||
{
|
||||
#if 0
|
||||
final File dir = new File(this.file, "textures/");
|
||||
final boolean hasTexturesFolder = dir.exists() && dir.isDirectory();
|
||||
final boolean hasOldFiles = hasFile("terrain.png") || hasFile("gui/items.png");
|
||||
return hasTexturesFolder || !hasOldFiles;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
wstring FolderTexturePack::getPath(bool bTitleUpdateTexture /*= false*/)
|
||||
{
|
||||
wstring wDrive;
|
||||
#ifdef _XBOX
|
||||
wDrive=L"GAME:\\" + file->getPath() + L"\\";
|
||||
#else
|
||||
wDrive=L"Common\\" + file->getPath() + L"\\";
|
||||
#endif
|
||||
return wDrive;
|
||||
}
|
||||
|
||||
void FolderTexturePack::loadUI()
|
||||
{
|
||||
#ifdef _XBOX
|
||||
//"file://" + Drive + PathToXZP + "#" + PathInsideXZP
|
||||
|
||||
//L"file://game:/ui.xzp#skin_default.xur"
|
||||
|
||||
// Load new skin
|
||||
if(hasFile(L"TexturePack.xzp"))
|
||||
{
|
||||
const DWORD LOCATOR_SIZE = 256; // Use this to allocate space to hold a ResourceLocator string
|
||||
WCHAR szResourceLocator[ LOCATOR_SIZE ];
|
||||
|
||||
swprintf(szResourceLocator, LOCATOR_SIZE,L"file://%lsTexturePack.xzp#skin_Minecraft.xur",getPath().c_str());
|
||||
|
||||
XuiFreeVisuals(L"");
|
||||
app.LoadSkin(szResourceLocator,NULL);//L"TexturePack");
|
||||
bUILoaded = true;
|
||||
//CXuiSceneBase::GetInstance()->SetVisualPrefix(L"TexturePack");
|
||||
}
|
||||
|
||||
AbstractTexturePack::loadUI();
|
||||
#endif
|
||||
}
|
||||
|
||||
void FolderTexturePack::unloadUI()
|
||||
{
|
||||
#ifdef _XBOX
|
||||
// Unload skin
|
||||
if(bUILoaded)
|
||||
{
|
||||
XuiFreeVisuals(L"TexturePack");
|
||||
XuiFreeVisuals(L"");
|
||||
CXuiSceneBase::GetInstance()->SetVisualPrefix(L"");
|
||||
CXuiSceneBase::GetInstance()->SkinChanged(CXuiSceneBase::GetInstance()->m_hObj);
|
||||
}
|
||||
AbstractTexturePack::unloadUI();
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user