diff options
Diffstat (limited to 'Minecraft.World/HangingEntityItem.cpp')
| -rw-r--r-- | Minecraft.World/HangingEntityItem.cpp | 47 |
1 files changed, 38 insertions, 9 deletions
diff --git a/Minecraft.World/HangingEntityItem.cpp b/Minecraft.World/HangingEntityItem.cpp index 505dce4d..9e4e9d5b 100644 --- a/Minecraft.World/HangingEntityItem.cpp +++ b/Minecraft.World/HangingEntityItem.cpp @@ -3,6 +3,7 @@ #include "net.minecraft.world.phys.h" #include "net.minecraft.world.damagesource.h" #include "net.minecraft.world.level.tile.h" +#include "net.minecraft.world.item.h" #include "net.minecraft.world.level.h" #include "HangingEntityItem.h" #include "HangingEntity.h" @@ -13,10 +14,7 @@ HangingEntityItem::HangingEntityItem(int id, eINSTANCEOF eClassType) : Item(id) { - //super(id); - //this.clazz = clazz; this->eType=eClassType; - // setItemCategory(CreativeModeTab.TAB_DECORATIONS); } bool HangingEntityItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> player, Level *level, int xt, int yt, int zt, int face, float clickX, float clickY, float clickZ, bool bTestOnly) @@ -26,17 +24,16 @@ bool HangingEntityItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Play if(bTestOnly) { - if (!player->mayBuild(xt, yt, zt)) return false; + if (!player->mayUseItemAt(xt, yt, zt, face, instance)) return false; return true; } int dir = Direction::FACING_DIRECTION[face]; - shared_ptr<HangingEntity> entity = createEntity(level, xt, yt, zt, dir); + shared_ptr<HangingEntity> entity = createEntity(level, xt, yt, zt, dir, instance->getAuxValue() ); - //if (!player->mayUseItemAt(xt, yt, zt, face, instance)) return false; - if (!player->mayBuild(xt, yt, zt)) return false; + if (!player->mayUseItemAt(xt, yt, zt, face, instance)) return false; if (entity != NULL && entity->survives()) { @@ -65,12 +62,22 @@ bool HangingEntityItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Play } -shared_ptr<HangingEntity> HangingEntityItem::createEntity(Level *level, int x, int y, int z, int dir) +shared_ptr<HangingEntity> HangingEntityItem::createEntity(Level *level, int x, int y, int z, int dir, int auxValue) // 4J added auxValue { if (eType == eTYPE_PAINTING) { shared_ptr<Painting> painting = shared_ptr<Painting>(new Painting(level, x, y, z, dir)); - painting->PaintingPostConstructor(dir); + +#ifndef _CONTENT_PACKAGE + if (app.DebugArtToolsOn() && auxValue > 0) + { + painting->PaintingPostConstructor(dir, auxValue - 1); + } + else +#endif + { + painting->PaintingPostConstructor(dir); + } return dynamic_pointer_cast<HangingEntity> (painting); } @@ -86,3 +93,25 @@ shared_ptr<HangingEntity> HangingEntityItem::createEntity(Level *level, int x, i } } +// 4J Adding overrides for art tools +void HangingEntityItem::appendHoverText(shared_ptr<ItemInstance> itemInstance, shared_ptr<Player> player, vector<HtmlString> *lines, bool advanced) +{ +#ifndef _CONTENT_PACKAGE + if (eType == eTYPE_PAINTING && app.DebugArtToolsOn() && itemInstance->getAuxValue() > 0 ) + { + int motive = itemInstance->getAuxValue() - 1; + + wchar_t formatted[256]; + ZeroMemory(formatted, 256 * sizeof(wchar_t)); + swprintf(formatted, 256, L"** %ls %dx%d",Painting::Motive::values[motive]->name.c_str(),Painting::Motive::values[motive]->w/16,Painting::Motive::values[motive]->h/16); + + wstring motiveName = formatted; + + lines->push_back(HtmlString(motiveName.c_str(), eHTMLColor_c)); + } + else +#endif + { + return Item::appendHoverText(itemInstance, player, lines, advanced); + } +}
\ No newline at end of file |
