mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 17:24:19 +00:00
100 lines
4.5 KiB
C++
100 lines
4.5 KiB
C++
#include "WoolTileItem.h"
|
|
|
|
#include <memory>
|
|
|
|
#include "ItemInstance.h"
|
|
#include "minecraft/world/item/TileItem.h"
|
|
#include "minecraft/world/level/tile/ColoredTile.h"
|
|
#include "minecraft/world/level/tile/Tile.h"
|
|
#include "strings.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]) {
|
|
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(
|
|
std::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())];
|
|
};
|
|
}
|