Files
MinecraftConsoles/Minecraft.World/WoolTileItem.cpp
Andrew P. Harper 1755cd58be Fix Stained Glass being wrong colors (#529)
Fixes issue with stained glass not showing the correct color in the name
2026-03-06 09:35:40 -06:00

155 lines
4.1 KiB
C++

#include "stdafx.h"
#include "net.minecraft.world.level.tile.h"
#include "ItemInstance.h"
#include "DyePowderItem.h"
#include "WoolTileItem.h"
const unsigned int WoolTileItem::COLOR_DESCS[] =
{
IDS_TILE_CLOTH_BLACK,
IDS_TILE_CLOTH_RED,
IDS_TILE_CLOTH_GREEN,
IDS_TILE_CLOTH_BROWN,
IDS_TILE_CLOTH_BLUE,
IDS_TILE_CLOTH_PURPLE,
IDS_TILE_CLOTH_CYAN,
IDS_TILE_CLOTH_SILVER,
IDS_TILE_CLOTH_GRAY,
IDS_TILE_CLOTH_PINK,
IDS_TILE_CLOTH_LIME,
IDS_TILE_CLOTH_YELLOW,
IDS_TILE_CLOTH_LIGHT_BLUE,
IDS_TILE_CLOTH_MAGENTA,
IDS_TILE_CLOTH_ORANGE,
IDS_TILE_CLOTH_WHITE
};
const unsigned int WoolTileItem::CARPET_COLOR_DESCS[] =
{
IDS_TILE_CARPET_BLACK,
IDS_TILE_CARPET_RED,
IDS_TILE_CARPET_GREEN,
IDS_TILE_CARPET_BROWN,
IDS_TILE_CARPET_BLUE,
IDS_TILE_CARPET_PURPLE,
IDS_TILE_CARPET_CYAN,
IDS_TILE_CARPET_SILVER,
IDS_TILE_CARPET_GRAY,
IDS_TILE_CARPET_PINK,
IDS_TILE_CARPET_LIME,
IDS_TILE_CARPET_YELLOW,
IDS_TILE_CARPET_LIGHT_BLUE,
IDS_TILE_CARPET_MAGENTA,
IDS_TILE_CARPET_ORANGE,
IDS_TILE_CARPET_WHITE
};
const unsigned int WoolTileItem::CLAY_COLOR_DESCS[] =
{
IDS_TILE_STAINED_CLAY_BLACK,
IDS_TILE_STAINED_CLAY_RED,
IDS_TILE_STAINED_CLAY_GREEN,
IDS_TILE_STAINED_CLAY_BROWN,
IDS_TILE_STAINED_CLAY_BLUE,
IDS_TILE_STAINED_CLAY_PURPLE,
IDS_TILE_STAINED_CLAY_CYAN,
IDS_TILE_STAINED_CLAY_SILVER,
IDS_TILE_STAINED_CLAY_GRAY,
IDS_TILE_STAINED_CLAY_PINK,
IDS_TILE_STAINED_CLAY_LIME,
IDS_TILE_STAINED_CLAY_YELLOW,
IDS_TILE_STAINED_CLAY_LIGHT_BLUE,
IDS_TILE_STAINED_CLAY_MAGENTA,
IDS_TILE_STAINED_CLAY_ORANGE,
IDS_TILE_STAINED_CLAY_WHITE
};
const unsigned int WoolTileItem::GLASS_COLOR_DESCS[] =
{
IDS_TILE_STAINED_GLASS_BLACK,
IDS_TILE_STAINED_GLASS_RED,
IDS_TILE_STAINED_GLASS_GREEN,
IDS_TILE_STAINED_GLASS_BROWN,
IDS_TILE_STAINED_GLASS_BLUE,
IDS_TILE_STAINED_GLASS_PURPLE,
IDS_TILE_STAINED_GLASS_CYAN,
IDS_TILE_STAINED_GLASS_SILVER,
IDS_TILE_STAINED_GLASS_GRAY,
IDS_TILE_STAINED_GLASS_PINK,
IDS_TILE_STAINED_GLASS_LIME,
IDS_TILE_STAINED_GLASS_YELLOW,
IDS_TILE_STAINED_GLASS_LIGHT_BLUE,
IDS_TILE_STAINED_GLASS_MAGENTA,
IDS_TILE_STAINED_GLASS_ORANGE,
IDS_TILE_STAINED_GLASS_WHITE
};
const unsigned int WoolTileItem::GLASS_PANE_COLOR_DESCS[] =
{
IDS_TILE_STAINED_GLASS_PANE_BLACK,
IDS_TILE_STAINED_GLASS_PANE_RED,
IDS_TILE_STAINED_GLASS_PANE_GREEN,
IDS_TILE_STAINED_GLASS_PANE_BROWN,
IDS_TILE_STAINED_GLASS_PANE_BLUE,
IDS_TILE_STAINED_GLASS_PANE_PURPLE,
IDS_TILE_STAINED_GLASS_PANE_CYAN,
IDS_TILE_STAINED_GLASS_PANE_SILVER,
IDS_TILE_STAINED_GLASS_PANE_GRAY,
IDS_TILE_STAINED_GLASS_PANE_PINK,
IDS_TILE_STAINED_GLASS_PANE_LIME,
IDS_TILE_STAINED_GLASS_PANE_YELLOW,
IDS_TILE_STAINED_GLASS_PANE_LIGHT_BLUE,
IDS_TILE_STAINED_GLASS_PANE_MAGENTA,
IDS_TILE_STAINED_GLASS_PANE_ORANGE,
IDS_TILE_STAINED_GLASS_PANE_WHITE
};
WoolTileItem::WoolTileItem(int id) : TileItem(id)
{
setMaxDamage(0);
setStackedByData(true);
}
Icon *WoolTileItem::getIcon(int itemAuxValue)
{
#ifndef _CONTENT_PACKAGE
if(Tile::tiles[id])
{
if (id == Tile::stained_glass_Id || id == Tile::stained_glass_pane_Id)
{
return Tile::tiles[id]->getTexture(2, itemAuxValue);
}
return Tile::tiles[id]->getTexture(2, ColoredTile::getTileDataForItemAuxValue(itemAuxValue));
}
else
#endif
{
return Tile::wool->getTexture(2, ColoredTile::getTileDataForItemAuxValue(itemAuxValue));
}
}
int WoolTileItem::getLevelDataForAuxValue(int auxValue)
{
return auxValue;
}
unsigned int WoolTileItem::getDescriptionId(shared_ptr<ItemInstance> instance)
{
int tileId = getTileId();
switch(getTileId())
{
case Tile::stained_glass_Id:
return GLASS_COLOR_DESCS[ColoredTile::getTileDataForItemAuxValue(instance->getAuxValue())];
case Tile::stained_glass_pane_Id:
return GLASS_PANE_COLOR_DESCS[ColoredTile::getTileDataForItemAuxValue(instance->getAuxValue())];
case Tile::clayHardened_colored_Id:
return CLAY_COLOR_DESCS[ColoredTile::getTileDataForItemAuxValue(instance->getAuxValue())];
case Tile::woolCarpet_Id:
return CARPET_COLOR_DESCS[ColoredTile::getTileDataForItemAuxValue(instance->getAuxValue())];
case Tile::wool_Id:
default:
return COLOR_DESCS[ColoredTile::getTileDataForItemAuxValue(instance->getAuxValue())];
};
}