Remove Stained Glass, Sword of Debug & Updated PORTING.md

Remove stained glass as its not accurate to TU19 up to TU24, Update PORTING.md to include versions we are trying to achieve & Remove the sword of debug as it was a debug item thats not needed.
This commit is contained in:
2026-05-13 05:49:50 -04:00
parent fb83868d25
commit d6232544ca
11 changed files with 24 additions and 241 deletions
@@ -210,40 +210,6 @@ void IUIScene_CreativeMenu::staticCtor()
ITEM_AUX(Tile::woolCarpet_Id,13) // Green
ITEM_AUX(Tile::woolCarpet_Id,12) // Brown
ITEM_AUX(Tile::stained_glass_Id,14) // Red
ITEM_AUX(Tile::stained_glass_Id,1) // Orange
ITEM_AUX(Tile::stained_glass_Id,4) // Yellow
ITEM_AUX(Tile::stained_glass_Id,5) // Lime
ITEM_AUX(Tile::stained_glass_Id,3) // Light Blue
ITEM_AUX(Tile::stained_glass_Id,9) // Cyan
ITEM_AUX(Tile::stained_glass_Id,11) // Blue
ITEM_AUX(Tile::stained_glass_Id,10) // Purple
ITEM_AUX(Tile::stained_glass_Id,2) // Magenta
ITEM_AUX(Tile::stained_glass_Id,6) // Pink
ITEM_AUX(Tile::stained_glass_Id,0) // White
ITEM_AUX(Tile::stained_glass_Id,8) // Light Gray
ITEM_AUX(Tile::stained_glass_Id,7) // Gray
ITEM_AUX(Tile::stained_glass_Id,15) // Black
ITEM_AUX(Tile::stained_glass_Id,13) // Green
ITEM_AUX(Tile::stained_glass_Id,12) // Brown
ITEM_AUX(Tile::stained_glass_pane_Id,14) // Red
ITEM_AUX(Tile::stained_glass_pane_Id,1) // Orange
ITEM_AUX(Tile::stained_glass_pane_Id,4) // Yellow
ITEM_AUX(Tile::stained_glass_pane_Id,5) // Lime
ITEM_AUX(Tile::stained_glass_pane_Id,3) // Light Blue
ITEM_AUX(Tile::stained_glass_pane_Id,9) // Cyan
ITEM_AUX(Tile::stained_glass_pane_Id,11) // Blue
ITEM_AUX(Tile::stained_glass_pane_Id,10) // Purple
ITEM_AUX(Tile::stained_glass_pane_Id,2) // Magenta
ITEM_AUX(Tile::stained_glass_pane_Id,6) // Pink
ITEM_AUX(Tile::stained_glass_pane_Id,0) // White
ITEM_AUX(Tile::stained_glass_pane_Id,8) // Light Gray
ITEM_AUX(Tile::stained_glass_pane_Id,7) // Gray
ITEM_AUX(Tile::stained_glass_pane_Id,15) // Black
ITEM_AUX(Tile::stained_glass_pane_Id,13) // Green
ITEM_AUX(Tile::stained_glass_pane_Id,12) // Brown
#ifndef _CONTENT_PACKAGE
DEF(eCreativeInventory_ArtToolsDecorations)
if(app.DebugSettingsOn())
@@ -492,16 +458,6 @@ void IUIScene_CreativeMenu::staticCtor()
list->push_back(Item::enchantedBook->createForEnchantment(new EnchantmentInstance(enchantment, enchantment->getMaxLevel())));
}
#ifndef _CONTENT_PACKAGE
if(app.DebugSettingsOn())
{
shared_ptr<ItemInstance> debugSword = std::make_shared<ItemInstance>(Item::sword_diamond_Id, 1, 0);
debugSword->enchant( Enchantment::damageBonus, 50 );
debugSword->setHoverName(L"Sword of Debug");
list->push_back(debugSword);
}
#endif
// Materials
DEF(eCreativeInventory_Materials)
ITEM(Item::coal_Id)
+5 -6
View File
@@ -3241,7 +3241,6 @@ bool TileRenderer::tesselateThinPaneInWorld(Tile *tt, int x, int y, int z)
Icon *tex;
Icon *edgeTex;
bool stained = dynamic_cast<StainedGlassPaneBlock *>(tt) != nullptr;
if (hasFixedTexture())
{
tex = fixedTexture;
@@ -3251,7 +3250,7 @@ bool TileRenderer::tesselateThinPaneInWorld(Tile *tt, int x, int y, int z)
{
int data = level->getData(x, y, z);
tex = getTexture(tt, 0, data);
edgeTex = (stained) ? static_cast<StainedGlassPaneBlock *>(tt)->getEdgeTexture(data) : static_cast<ThinFenceTile *>(tt)->getEdgeTexture();
edgeTex = static_cast<ThinFenceTile *>(tt)->getEdgeTexture();
}
double u0 = tex->getU0();
@@ -3277,10 +3276,10 @@ bool TileRenderer::tesselateThinPaneInWorld(Tile *tt, int x, int y, int z)
double iz0 = z + .5 - 1.0 / 16.0;
double iz1 = z + .5 + 1.0 / 16.0;
bool n = (stained) ? static_cast<StainedGlassPaneBlock *>(tt)->attachsTo(level->getTile(x, y, z - 1)) : static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x, y, z - 1));
bool s = (stained) ? static_cast<StainedGlassPaneBlock *>(tt)->attachsTo(level->getTile(x, y, z + 1)) : static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x, y, z + 1));
bool w = (stained) ? static_cast<StainedGlassPaneBlock *>(tt)->attachsTo(level->getTile(x - 1, y, z)) : static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x - 1, y, z));
bool e = (stained) ? static_cast<StainedGlassPaneBlock *>(tt)->attachsTo(level->getTile(x + 1, y, z)) : static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x + 1, y, z));
bool n = static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x, y, z - 1));
bool s = static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x, y, z + 1));
bool w = static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x - 1, y, z));
bool e = static_cast<ThinFenceTile *>(tt)->attachsTo(level->getTile(x + 1, y, z));
double noZFightingOffset = 0.001;
double yt = 1.0 - noZFightingOffset;
-54
View File
@@ -1,54 +0,0 @@
#include "stdafx.h"
#include "net.minecraft.world.item.h"
#include "net.minecraft.world.h"
#include "StainedGlassBlock.h"
Icon *StainedGlassBlock::ICONS[StainedGlassBlock::ICONS_LENGTH];
StainedGlassBlock::StainedGlassBlock(int id, Material *material) : HalfTransparentTile(id, L"glass", material, false)
{
}
Icon *StainedGlassBlock::getTexture(int face, int data)
{
return ICONS[data % ICONS_LENGTH];
}
int StainedGlassBlock::getSpawnResourcesAuxValue(int data)
{
return data;
}
int StainedGlassBlock::getItemAuxValueForBlockData(int data)
{
return (~data & 0xf);
}
int StainedGlassBlock::getRenderLayer()
{
return 1;
}
void StainedGlassBlock::registerIcons(IconRegister *iconRegister)
{
for (int i = 0; i < ICONS_LENGTH; i++)
{
ICONS[i] = iconRegister->registerIcon(getIconName() + L"_" + DyePowderItem::COLOR_TEXTURES[getItemAuxValueForBlockData(i)]);
}
}
int StainedGlassBlock::getResourceCount(Random *random)
{
return 0;
}
bool StainedGlassBlock::isSilkTouchable()
{
return true;
}
bool StainedGlassBlock::isCubeShaped()
{
return false;
}
-27
View File
@@ -1,27 +0,0 @@
#pragma once
#include "HalfTransparentTile.h"
class StainedGlassBlock : public HalfTransparentTile
{
friend class ChunkRebuildData;
private:
static const int ICONS_LENGTH = 16;
static Icon *ICONS[ICONS_LENGTH];
public:
StainedGlassBlock(int id, Material *material);
Icon *getTexture(int face, int data);
int getSpawnResourcesAuxValue(int data);
static int getItemAuxValueForBlockData(int data);
int getRenderLayer();
void registerIcons(IconRegister *iconRegister);
int getResourceCount(Random *random);
protected:
bool isSilkTouchable();
public:
bool isCubeShaped();
};
-52
View File
@@ -1,52 +0,0 @@
#include "stdafx.h"
#include "net.minecraft.world.h"
#include "net.minecraft.world.item.h"
#include "StainedGlassPaneBlock.h"
Icon *StainedGlassPaneBlock::ICONS[StainedGlassPaneBlock::ICONS_COUNT];
Icon *StainedGlassPaneBlock::EDGE_ICONS[StainedGlassPaneBlock::ICONS_COUNT];
StainedGlassPaneBlock::StainedGlassPaneBlock(int id) : ThinFenceTile(id, L"glass", L"glass_pane_top", Material::glass, false)
{
}
Icon *StainedGlassPaneBlock::getIconTexture(int face, int data)
{
return ICONS[data % ICONS_COUNT];
}
Icon *StainedGlassPaneBlock::getEdgeTexture(int data)
{
return EDGE_ICONS[~data & 0xF];
}
Icon *StainedGlassPaneBlock::getTexture(int face, int data)
{
return getIconTexture(face, ~data & 0xf);
}
int StainedGlassPaneBlock::getSpawnResourcesAuxValue(int data)
{
return data;
}
int StainedGlassPaneBlock::getItemAuxValueForBlockData(int data)
{
return (data & 0xf);
}
int StainedGlassPaneBlock::getRenderLayer()
{
return 1;
}
void StainedGlassPaneBlock::registerIcons(IconRegister *iconRegister)
{
ThinFenceTile::registerIcons(iconRegister);
for (int i = 0; i < ICONS_COUNT; i++)
{
ICONS[i] = iconRegister->registerIcon(getIconName() + L"_" + DyePowderItem::COLOR_TEXTURES[getItemAuxValueForBlockData(i)]);
EDGE_ICONS[i] = iconRegister->registerIcon(getIconName() + L"_pane_top_" + DyePowderItem::COLOR_TEXTURES[getItemAuxValueForBlockData(i)]);
}
}
-23
View File
@@ -1,23 +0,0 @@
#pragma once
#include "ThinFenceTile.h"
class StainedGlassPaneBlock : public ThinFenceTile
{
friend class ChunkRebuildData;
private:
static const int ICONS_COUNT = 16;
static Icon *ICONS[ICONS_COUNT];
static Icon *EDGE_ICONS[ICONS_COUNT];
public:
StainedGlassPaneBlock(int id);
Icon *getIconTexture(int face, int data);
Icon *getEdgeTexture(int data);
Icon *getTexture(int face, int data);
int getSpawnResourcesAuxValue(int data);
static int getItemAuxValueForBlockData(int data);
int getRenderLayer();
void registerIcons(IconRegister *iconRegister);
};
-22
View File
@@ -115,28 +115,6 @@ void StructureRecipies::addRecipes(Recipes *r)
L'#', Tile::glass,
L'D');
// Stained Glass block + pane per color
for (int i = 0; i < 16; i++)
{
r->addShapedRecipy(new ItemInstance(Tile::stained_glass, 8, ColoredTile::getItemAuxValueForTileData(i)),
L"sssczczg",
L"###",
L"#X#",
L"###",
L'#', new ItemInstance(Tile::glass),
L'X', new ItemInstance(Item::dye_powder, 1, i),
L'D');
r->addShapedRecipy(new ItemInstance(Tile::stained_glass_pane, 16, ColoredTile::getItemAuxValueForTileData(i)),
L"ssczg",
L"###",
L"###",
L'#', new ItemInstance(Tile::stained_glass, 1, ColoredTile::getItemAuxValueForTileData(i)),
L'D');
}
r->addShapedRecipy(new ItemInstance(Tile::netherBrick, 1), //
L"sscig",
-6
View File
@@ -138,7 +138,6 @@ Tile *Tile::litPumpkin = nullptr;
Tile *Tile::cake = nullptr;
RepeaterTile *Tile::diode_off = nullptr;
RepeaterTile *Tile::diode_on = nullptr;
Tile *Tile::stained_glass = nullptr;
Tile *Tile::trapdoor = nullptr;
Tile *Tile::monsterStoneEgg = nullptr;
@@ -213,7 +212,6 @@ Tile *Tile::stairs_quartz = nullptr;
Tile *Tile::activatorRail = nullptr;
Tile *Tile::dropper = nullptr;
Tile *Tile::clayHardened_colored = nullptr;
Tile *Tile::stained_glass_pane = nullptr;
Tile *Tile::hayBlock = nullptr;
Tile *Tile::woolCarpet = nullptr;
@@ -362,7 +360,6 @@ void Tile::staticCtor()
Tile::cake = (new CakeTile(92)) ->setDestroyTime(0.5f)->setSoundType(Tile::SOUND_CLOTH)->setIconName(L"cake")->setDescriptionId(IDS_TILE_CAKE)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_CAKE);
Tile::diode_off = static_cast<RepeaterTile *>((new RepeaterTile(93, false))->setDestroyTime(0.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"repeater_off")->setDescriptionId(IDS_ITEM_DIODE)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_REDSTONEREPEATER)->disableMipmap());
Tile::diode_on = static_cast<RepeaterTile *>((new RepeaterTile(94, true))->setDestroyTime(0.0f)->setLightEmission(10 / 16.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"repeater_on")->setDescriptionId(IDS_ITEM_DIODE)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_REDSTONEREPEATER)->disableMipmap());
Tile::stained_glass = (new StainedGlassBlock(95, Material::glass))->setBaseItemTypeAndMaterial(Item::eBaseItemType_glass, Item::eMaterial_glass)->setDestroyTime(0.3f)->setSoundType(SOUND_GLASS)->setIconName(L"glass")->setDescriptionId(IDS_TILE_STAINED_GLASS)->setUseDescriptionId(IDS_DESC_STAINED_GLASS);
Tile::trapdoor = (new TrapDoorTile(96, Material::wood)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_door, Item::eMaterial_trap)->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"trapdoor")->setDescriptionId(IDS_TILE_TRAPDOOR)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_TRAPDOOR);
Tile::monsterStoneEgg = (new StoneMonsterTile(97)) ->setDestroyTime(0.75f)->setIconName(L"monsterStoneEgg")->setDescriptionId(IDS_TILE_STONE_SILVERFISH)->setUseDescriptionId(IDS_DESC_STONE_SILVERFISH);
Tile::stoneBrick = (new SmoothStoneBrickTile(98)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stoneSmooth)->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setIconName(L"stonebrick")->setDescriptionId(IDS_TILE_STONE_BRICK_SMOOTH)->setUseDescriptionId(IDS_DESC_STONE_BRICK_SMOOTH);
@@ -440,7 +437,6 @@ void Tile::staticCtor()
Tile::activatorRail = (new PoweredRailTile(157)) ->setDestroyTime(0.7f)->setSoundType(SOUND_METAL)->setIconName(L"rail_activator")->setDescriptionId(IDS_TILE_ACTIVATOR_RAIL)->setUseDescriptionId(IDS_DESC_ACTIVATOR_RAIL);
Tile::dropper = (new DropperTile(158)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_redstoneContainer, Item::eMaterial_undefined)->setDestroyTime(3.5f)->setSoundType(SOUND_STONE)->setIconName(L"dropper")->setDescriptionId(IDS_TILE_DROPPER)->setUseDescriptionId(IDS_DESC_DROPPER);
Tile::clayHardened_colored = (new ColoredTile(159, Material::stone)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_clay, Item::eMaterial_clay)->setDestroyTime(1.25f)->setExplodeable(7)->setSoundType(SOUND_STONE)->setIconName(L"hardened_clay_stained")->setDescriptionId(IDS_TILE_STAINED_CLAY)->setUseDescriptionId(IDS_DESC_STAINED_CLAY);
Tile::stained_glass_pane = (new StainedGlassPaneBlock(160)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_glass, Item::eMaterial_glass)->setDestroyTime(0.3f)->setSoundType(SOUND_GLASS)->setIconName(L"glass")->setDescriptionId(IDS_TILE_STAINED_GLASS_PANE)->setUseDescriptionId(IDS_DESC_STAINED_GLASS_PANE);
Tile::hayBlock = (new HayBlockTile(170)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_wheat)->setDestroyTime(0.5f)->setSoundType(SOUND_GRASS)->setIconName(L"hay_block")->setDescriptionId(IDS_TILE_HAY)->setUseDescriptionId(IDS_DESC_HAY);
Tile::woolCarpet = (new WoolCarpetTile(171)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_carpet, Item::eMaterial_cloth)->setDestroyTime(0.1f)->setSoundType(SOUND_CLOTH)->setIconName(L"woolCarpet")->setLightBlock(0)->setDescriptionId(IDS_TILE_CARPET)->setUseDescriptionId(IDS_DESC_CARPET);
@@ -451,8 +447,6 @@ void Tile::staticCtor()
// Special cases for certain items since they can have different icons
Item::items[wool_Id] = ( new WoolTileItem(Tile::wool_Id- 256) )->setIconName(L"cloth")->setDescriptionId(IDS_TILE_CLOTH)->setUseDescriptionId(IDS_DESC_WOOL);
Item::items[clayHardened_colored_Id]= ( new WoolTileItem(Tile::clayHardened_colored_Id - 256))->setIconName(L"clayHardenedStained")->setDescriptionId(IDS_TILE_STAINED_CLAY)->setUseDescriptionId(IDS_DESC_STAINED_CLAY);
Item::items[stained_glass_Id] = ( new WoolTileItem(Tile::stained_glass_Id - 256))->setIconName(L"stainedGlass")->setDescriptionId(IDS_TILE_STAINED_GLASS)->setUseDescriptionId(IDS_DESC_STAINED_GLASS);
Item::items[stained_glass_pane_Id] = ( new WoolTileItem(Tile::stained_glass_pane_Id - 256))->setIconName(L"stainedGlassPane")->setDescriptionId(IDS_TILE_STAINED_GLASS_PANE)->setUseDescriptionId(IDS_DESC_STAINED_GLASS_PANE);
Item::items[woolCarpet_Id] = ( new WoolTileItem(Tile::woolCarpet_Id - 256))->setIconName(L"woolCarpet")->setDescriptionId(IDS_TILE_CARPET)->setUseDescriptionId(IDS_DESC_CARPET);
Item::items[treeTrunk_Id] = ( new MultiTextureTileItem(Tile::treeTrunk_Id - 256, treeTrunk, (int *)TreeTile::TREE_NAMES, 4) )->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->setUseDescriptionId(IDS_DESC_LOG);
Item::items[wood_Id] = ( new MultiTextureTileItem(Tile::wood_Id - 256, Tile::wood, (int *)WoodTile::WOOD_NAMES, 4, IDS_TILE_PLANKS))->setIconName(L"wood")->setDescriptionId(IDS_TILE_OAKWOOD_PLANKS)->setUseDescriptionId(IDS_DESC_LOG); // <- TODO
@@ -1896,10 +1896,6 @@ set(_MINECRAFT_WORLD_COMMON_NET_MINECRAFT_WORLD_LEVEL_TILE
"${CMAKE_CURRENT_SOURCE_DIR}/SoulSandTile.h"
"${CMAKE_CURRENT_SOURCE_DIR}/Sponge.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Sponge.h"
"${CMAKE_CURRENT_SOURCE_DIR}/StainedGlassBlock.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/StainedGlassBlock.h"
"${CMAKE_CURRENT_SOURCE_DIR}/StainedGlassPaneBlock.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/StainedGlassPaneBlock.h"
"${CMAKE_CURRENT_SOURCE_DIR}/StairTile.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/StairTile.h"
"${CMAKE_CURRENT_SOURCE_DIR}/StemTile.cpp"
@@ -98,8 +98,6 @@
#include "SnowTile.h"
#include "SoulSandTile.h"
#include "Sponge.h"
#include "StainedGlassBlock.h"
#include "StainedGlassPaneBlock.h"
#include "StairTile.h"
#include "StemTile.h"
#include "StoneButtonTile.h"
+19 -1
View File
@@ -12,4 +12,22 @@ If you provide a visual bugfix that fixes a distinctive quirk of the LCE rendere
If your visual bugfix is a fix added in a future version of LCE than the one we're targeting, it should also be put behind a toggle or equivalent system for keeping it off by default.
# Targeted Version
We are targeting to keep this on TU19 with the exclusion of neoLegacy for Higher TU's, If there are any features for versions maintained by [neoLegacy](https://github.com/neoStudiosLCE/neoLegacy) that are missing make a PR to there repository and it will be brought to this, we also allow PR's that Downport to get older TU's.
We are targeting to keep this on TU19 to TU24 with the exclusion of neoLegacy for Higher TU's, If there are any features for versions maintained by [neoLegacy](https://github.com/neoStudiosLCE/neoLegacy) that are missing make a PR to there repository and it will be brought to this, we also allow PR's that Downport to get older TU's.
# Versions we are trying to add
[TU2 (Jun 2012)](https://minecraft.wiki/w/Xbox_360_Edition_TU2)
[TU4 (Aug 2012)](https://minecraft.wiki/w/Xbox_360_Edition_TU4)
[TU6 (Nov 2012)](https://minecraft.wiki/w/Xbox_360_Edition_TU6)
[TU8 (Nov 2013)](https://minecraft.wiki/w/Xbox_360_Edition_TU8)
[TU11 (May 2013)](https://minecraft.wiki/w/Xbox_360_Edition_TU11)
[TU13 (Oct 2013)](https://minecraft.wiki/w/Xbox_360_Edition_TU13)
[TU18 (Oct 2014)](https://minecraft.wiki/w/Xbox_360_Edition_TU18)
[TU24 (Apr 2015)](https://minecraft.wiki/w/Xbox_360_Edition_TU24)
[TU30 (Oct 2015)](https://minecraft.wiki/w/Xbox_360_Edition_TU30)
[TU42 (Sep 2016)](https://minecraft.wiki/w/Xbox_360_Edition_TU42)
[TU45 (Oct 2016)](https://minecraft.wiki/w/Xbox_360_Edition_TU45)
[TU52 (Apr 2017)](https://minecraft.wiki/w/Xbox_360_Edition_TU62)
[TU53 (May 2017)](https://minecraft.wiki/w/Xbox_360_Edition_TU53)
[TU59 (Nov 2017)](https://minecraft.wiki/w/Xbox_360_Edition_TU59)
[TU68 (Aug 2018)](https://minecraft.wiki/w/Xbox_360_Edition_TU68)
[TU75 (Apr 2019)](https://minecraft.wiki/w/Xbox_360_Edition_TU75)