mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 08:43:59 +00:00
# Conflicts: # Minecraft.Client/Network/PlayerChunkMap.cpp # Minecraft.Client/Network/PlayerList.cpp # Minecraft.Client/Network/ServerChunkCache.cpp # Minecraft.Client/Platform/Common/Consoles_App.cpp # Minecraft.Client/Platform/Common/DLC/DLCManager.cpp # Minecraft.Client/Platform/Common/GameRules/LevelGenerationOptions.cpp # Minecraft.Client/Platform/Common/GameRules/LevelRuleset.cpp # Minecraft.Client/Platform/Common/Tutorial/Tutorial.cpp # Minecraft.Client/Platform/Common/Tutorial/TutorialTask.cpp # Minecraft.Client/Platform/Common/UI/IUIScene_CreativeMenu.cpp # Minecraft.Client/Platform/Common/UI/UIComponent_Panorama.cpp # Minecraft.Client/Platform/Common/UI/UIController.cpp # Minecraft.Client/Platform/Common/UI/UIController.h # Minecraft.Client/Platform/Extrax64Stubs.cpp # Minecraft.Client/Platform/Windows64/4JLibs/inc/4J_Input.h # Minecraft.Client/Platform/Windows64/4JLibs/inc/4J_Storage.h # Minecraft.Client/Player/EntityTracker.cpp # Minecraft.Client/Player/ServerPlayer.cpp # Minecraft.Client/Rendering/EntityRenderers/PlayerRenderer.cpp # Minecraft.Client/Textures/Packs/DLCTexturePack.cpp # Minecraft.Client/Textures/Stitching/StitchedTexture.cpp # Minecraft.Client/Textures/Stitching/TextureMap.cpp # Minecraft.Client/Textures/Textures.cpp # Minecraft.World/Blocks/NotGateTile.cpp # Minecraft.World/Blocks/PressurePlateTile.cpp # Minecraft.World/Blocks/TileEntities/PotionBrewing.cpp # Minecraft.World/Enchantments/EnchantmentHelper.cpp # Minecraft.World/Entities/HangingEntity.cpp # Minecraft.World/Entities/LeashFenceKnotEntity.cpp # Minecraft.World/Entities/LivingEntity.cpp # Minecraft.World/Entities/Mobs/Boat.cpp # Minecraft.World/Entities/Mobs/Minecart.cpp # Minecraft.World/Entities/Mobs/Witch.cpp # Minecraft.World/Entities/SyncedEntityData.cpp # Minecraft.World/Items/LeashItem.cpp # Minecraft.World/Items/PotionItem.cpp # Minecraft.World/Level/BaseMobSpawner.cpp # Minecraft.World/Level/CustomLevelSource.cpp # Minecraft.World/Level/Level.cpp # Minecraft.World/Level/Storage/DirectoryLevelStorage.cpp # Minecraft.World/Level/Storage/McRegionLevelStorage.cpp # Minecraft.World/Level/Storage/RegionFileCache.cpp # Minecraft.World/Player/Player.cpp # Minecraft.World/WorldGen/Biomes/BiomeCache.cpp # Minecraft.World/WorldGen/Features/RandomScatteredLargeFeature.cpp # Minecraft.World/WorldGen/Layers/BiomeOverrideLayer.cpp
73 lines
2.6 KiB
C++
73 lines
2.6 KiB
C++
#include "../Platform/stdafx.h"
|
|
#include "../Headers/net.minecraft.world.entity.player.h"
|
|
#include "../Headers/net.minecraft.world.level.h"
|
|
#include "../Headers/net.minecraft.world.level.tile.h"
|
|
#include "../Headers/net.minecraft.world.item.h"
|
|
#include "../Headers/net.minecraft.world.h"
|
|
#include "ItemInstance.h"
|
|
#include "RecordingItem.h"
|
|
#include "../Stats/GenericStats.h"
|
|
|
|
std::unordered_map<std::wstring, RecordingItem*> RecordingItem::BY_NAME;
|
|
|
|
RecordingItem::RecordingItem(int id, const std::wstring& recording)
|
|
: Item(id), recording(recording) {
|
|
this->maxStackSize = 1;
|
|
BY_NAME[recording] = this;
|
|
}
|
|
|
|
Icon* RecordingItem::getIcon(int auxValue) { return icon; }
|
|
|
|
bool RecordingItem::useOn(std::shared_ptr<ItemInstance> itemInstance,
|
|
std::shared_ptr<Player> player, Level* level, int x,
|
|
int y, int z, int face, float clickX, float clickY,
|
|
float clickZ, bool bTestUseOnOnly) {
|
|
// 4J-PB - Adding a test only version to allow tooltips to be displayed
|
|
if (level->getTile(x, y, z) == Tile::jukebox_Id &&
|
|
level->getData(x, y, z) == 0) {
|
|
if (!bTestUseOnOnly) {
|
|
if (level->isClientSide) return true;
|
|
|
|
((JukeboxTile*)Tile::jukebox)
|
|
->setRecord(level, x, y, z, itemInstance);
|
|
level->levelEvent(nullptr, LevelEvent::SOUND_PLAY_RECORDING, x, y,
|
|
z, id);
|
|
itemInstance->count--;
|
|
|
|
player->awardStat(GenericStats::musicToMyEars(),
|
|
GenericStats::param_musicToMyEars(id));
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void RecordingItem::appendHoverText(std::shared_ptr<ItemInstance> itemInstance,
|
|
std::shared_ptr<Player> player,
|
|
std::vector<HtmlString>* lines,
|
|
bool advanced) {
|
|
eMinecraftColour color = getRarity(std::shared_ptr<ItemInstance>())->color;
|
|
|
|
wchar_t text[256];
|
|
swprintf(text, 256, L"%ls %ls", L"C418 -", recording.c_str());
|
|
|
|
lines->push_back(HtmlString(text, color));
|
|
}
|
|
|
|
const Rarity* RecordingItem::getRarity(
|
|
std::shared_ptr<ItemInstance> itemInstance) {
|
|
return (Rarity*)Rarity::rare;
|
|
}
|
|
|
|
void RecordingItem::registerIcons(IconRegister* iconRegister) {
|
|
icon = iconRegister->registerIcon(L"record_" + recording);
|
|
}
|
|
|
|
RecordingItem* RecordingItem::getByName(const std::wstring& name) {
|
|
auto it = BY_NAME.find(name);
|
|
if (it != BY_NAME.end()) {
|
|
return it->second;
|
|
} else {
|
|
return nullptr;
|
|
}
|
|
} |