mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-08-01 18:52:25 +00:00
94 lines
3.1 KiB
C++
94 lines
3.1 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
#include "AbstractTexturePack.h"
|
|
#include "minecraft/locale/StringTable.h"
|
|
#include "platform/PlatformTypes.h"
|
|
|
|
class DLCPack;
|
|
class StringTable;
|
|
class ArchiveFile;
|
|
class TexturePack;
|
|
|
|
class DLCTexturePack : public AbstractTexturePack {
|
|
private:
|
|
DLCPack* m_dlcInfoPack; // Description, icon etc
|
|
DLCPack* m_dlcDataPack; // Actual textures
|
|
StringTable* m_stringTable;
|
|
bool bUILoaded;
|
|
bool m_bLoadingData, m_bHasLoadedData;
|
|
bool m_bUsingDefaultColourTable;
|
|
// bool m_bHasAudio;
|
|
ArchiveFile* m_archiveFile;
|
|
|
|
public:
|
|
using AbstractTexturePack::getResource;
|
|
|
|
DLCTexturePack(std::uint32_t id, DLCPack* pack, TexturePack* fallback);
|
|
~DLCTexturePack() override = default;
|
|
|
|
std::string getResource(const std::string& name) override;
|
|
DLCPack* getDLCPack() override;
|
|
std::string getDesc1() override {
|
|
return m_stringTable->getString("IDS_TP_DESCRIPTION");
|
|
}
|
|
std::string getName() override {
|
|
return m_stringTable->getString("IDS_DISPLAY_NAME");
|
|
}
|
|
std::string getWorldName() override {
|
|
return m_stringTable->getString("IDS_WORLD_NAME");
|
|
}
|
|
|
|
// Added for sound banks with MashUp packs
|
|
protected:
|
|
//@Override
|
|
void loadIcon() override;
|
|
void loadComparison() override;
|
|
void loadName() override;
|
|
void loadDescription() override;
|
|
InputStream* getResourceImplementation(
|
|
const std::string& name) override; // throws IOException
|
|
|
|
public:
|
|
//@Override
|
|
bool hasFile(const std::string& name) override;
|
|
bool isTerrainUpdateCompatible() override;
|
|
|
|
// 4J Added
|
|
std::string getPath(bool bTitleUpdateTexture = false,
|
|
const char* pchBDPatchFilename = nullptr) override;
|
|
std::string getAnimationString(const std::string& textureName,
|
|
const std::string& path) override;
|
|
BufferedImage* getImageResource(const std::string& File,
|
|
bool filenameHasExtension = false,
|
|
bool bTitleUpdateTexture = false,
|
|
const std::string& drive = "") override;
|
|
void loadColourTable() override;
|
|
bool hasData() override { return m_bHasLoadedData; }
|
|
bool isLoadingData() override { return m_bLoadingData; }
|
|
|
|
private:
|
|
static std::string getRootPath(std::uint32_t packId, bool allowOverride,
|
|
bool bAddDataFolder);
|
|
static std::string getFilePath(std::uint32_t packId, std::string filename,
|
|
bool bAddDataFolder = true);
|
|
|
|
public:
|
|
int onPackMounted(int iPad, std::uint32_t dwErr,
|
|
std::uint32_t dwLicenceMask);
|
|
void loadData() override;
|
|
void loadUI() override;
|
|
void unloadUI() override;
|
|
std::string getXuiRootPath() override;
|
|
ArchiveFile* getArchiveFile() override { return m_archiveFile; }
|
|
|
|
unsigned int getDLCParentPackId() override;
|
|
virtual DLCPack* getDLCInfoParentPack();
|
|
unsigned char getDLCSubPackId() override;
|
|
XCONTENTDEVICEID GetDLCDeviceID();
|
|
|
|
[[nodiscard]] bool needsPurchase() override;
|
|
};
|