Banner Patterns!
Banner Patterns, some lighting fixes, and loot-table nbt!
This commit is contained in:
@@ -10,22 +10,22 @@
|
||||
|
||||
const unsigned int BannerItem::COLOR_DESCS[16] =
|
||||
{
|
||||
IDS_TILE_BANNER_BLACK,
|
||||
IDS_TILE_BANNER_RED,
|
||||
IDS_TILE_BANNER_GREEN,
|
||||
IDS_TILE_BANNER_BROWN,
|
||||
IDS_TILE_BANNER_BLUE,
|
||||
IDS_TILE_BANNER_PURPLE,
|
||||
IDS_TILE_BANNER_CYAN,
|
||||
IDS_TILE_BANNER_SILVER,
|
||||
IDS_TILE_BANNER_GRAY,
|
||||
IDS_TILE_BANNER_PINK,
|
||||
IDS_TILE_BANNER_LIME,
|
||||
IDS_TILE_BANNER_YELLOW,
|
||||
IDS_TILE_BANNER_LIGHT_BLUE,
|
||||
IDS_TILE_BANNER_MAGENTA,
|
||||
IDS_TILE_BANNER_ORANGE,
|
||||
IDS_TILE_BANNER_WHITE,
|
||||
IDS_TILE_BANNER_ORANGE,
|
||||
IDS_TILE_BANNER_MAGENTA,
|
||||
IDS_TILE_BANNER_LIGHT_BLUE,
|
||||
IDS_TILE_BANNER_YELLOW,
|
||||
IDS_TILE_BANNER_LIME,
|
||||
IDS_TILE_BANNER_PINK,
|
||||
IDS_TILE_BANNER_GRAY,
|
||||
IDS_TILE_BANNER_SILVER,
|
||||
IDS_TILE_BANNER_CYAN,
|
||||
IDS_TILE_BANNER_PURPLE,
|
||||
IDS_TILE_BANNER_BLUE,
|
||||
IDS_TILE_BANNER_BROWN,
|
||||
IDS_TILE_BANNER_GREEN,
|
||||
IDS_TILE_BANNER_RED,
|
||||
IDS_TILE_BANNER_BLACK,
|
||||
};
|
||||
|
||||
BannerItem::BannerItem(int id) : Item(id)
|
||||
@@ -70,7 +70,7 @@ bool BannerItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> pla
|
||||
shared_ptr<BannerTileEntity> bte = dynamic_pointer_cast<BannerTileEntity>(level->getTileEntity(x, y, z));
|
||||
if (bte != nullptr)
|
||||
{
|
||||
int color = instance->getAuxValue() & 15;
|
||||
int color = 15 - (instance->getAuxValue() & 15);
|
||||
bte->setBaseColor(color);
|
||||
bte->setChanged();
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ void BannerTile::registerIcons(IconRegister *iconRegister)
|
||||
void BannerTile::playerWillDestroy(Level *level, int x, int y, int z, int data, shared_ptr<Player> player)
|
||||
{
|
||||
shared_ptr<BannerTileEntity> bte = dynamic_pointer_cast<BannerTileEntity>(level->getTileEntity(x, y, z));
|
||||
m_dropColor = (bte != nullptr) ? (bte->getBaseColor() & 15) : 15;
|
||||
m_dropColor = (bte != nullptr) ? (15 - (bte->getBaseColor() & 15)) : 0;
|
||||
|
||||
BaseEntityTile::playerWillDestroy(level, x, y, z, data, player);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "LootTableManager.h"
|
||||
#include "WeighedRandom.h"
|
||||
#include "WeighedTreasure.h"
|
||||
#include "EnchantmentHelper.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
@@ -21,6 +22,16 @@ namespace
|
||||
|
||||
shared_ptr<ItemInstance> item = std::make_shared<ItemInstance>(drop.itemId, 1, drop.data);
|
||||
|
||||
if (drop.damageFraction > 0.0)
|
||||
{
|
||||
item->setAuxValue((int)((double)item->getMaxDamage() * drop.damageFraction));
|
||||
}
|
||||
|
||||
if (drop.enchantLevels > 0)
|
||||
{
|
||||
EnchantmentHelper::enchantItem(random, item, drop.enchantLevels);
|
||||
}
|
||||
|
||||
if (item->getMaxStackSize() >= drop.count)
|
||||
{
|
||||
shared_ptr<ItemInstance> copy = item->copy();
|
||||
|
||||
Reference in New Issue
Block a user