Added Double Tall Plants

TODO:
Add Sunflower
Add natural spawning of these flowers
This commit is contained in:
Tranqlmao
2026-03-20 01:53:28 -04:00
parent 547106b080
commit 07fd3222b8
11 changed files with 428 additions and 6 deletions
+29 -1
View File
@@ -16,6 +16,10 @@
#include "net.minecraft.world.h"
#include "net.minecraft.h"
#include "Tile.h"
#include "Tallgrass2.h"
#include "facing.h"
@@ -257,6 +261,8 @@ Tile* Tile::prismarine = nullptr;
Tile* Tile::tree2Trunk = nullptr;
Tile* Tile::packed_ice = nullptr;
TallGrass2* Tile::tallgrass2 = nullptr;
DWORD Tile::tlsIdxShape = TlsAlloc();
Tile::ThreadStorage::ThreadStorage()
@@ -276,6 +282,24 @@ void Tile::ReleaseThreadStorage()
ThreadStorage *tls = static_cast<ThreadStorage *>(TlsGetValue(Tile::tlsIdxShape));
delete tls;
}
class TallGrass2TileItem : public ColoredTileItem
{
public:
TallGrass2TileItem(int id) : ColoredTileItem(id, true) {}
virtual Icon* getIcon(int auxValue) override
{
return Tile::tiles[getTileId()]->getTexture(Facing::UP, auxValue);
}
virtual int getColor(shared_ptr<ItemInstance> item, int spriteLayer) override
{
int variant = item->getAuxValue();
if (variant == TallGrass2::TALL_GRASS || variant == TallGrass2::LARGE_FERN)
return Tile::tiles[getTileId()]->getColor(variant);
return 0xFFFFFF;
}
};
void Tile::staticCtor()
{
@@ -510,6 +534,7 @@ void Tile::staticCtor()
Tile::seaLantern = (new SeaLanternTile(169, Material::glass))->setBaseItemTypeAndMaterial(Item::eBaseItemType_torch, Item::eMaterial_glowstone)->setDestroyTime(0.3f)->setSoundType(Tile::SOUND_GLASS)->setLightEmission(1.0f)->setIconName(L"glowstone")->setDescriptionId(IDS_TILE_SEA_LANTERN)->setUseDescriptionId(IDS_DESC_GLOWSTONE);
Tile::prismarine = (new PrismarineTile(168))->setBaseItemTypeAndMaterial(Item::eBaseItemType_structblock, Item::eMaterial_stone)->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setIconName(L"prismarine")->setDescriptionId(IDS_TILE_PRISMARINE)->setUseDescriptionId(IDS_ITEM_PRISMARINE_DESC);
Tile::tallgrass2 = static_cast<TallGrass2*>((new TallGrass2(175))->setDestroyTime(0.0f)->setSoundType(Tile::SOUND_GRASS)->setIconName(L"tallgrass2_tall_grass_upper")->setDescriptionId(IDS_TILE_TALL_GRASS2)->setUseDescriptionId(IDS_DESC_TALL_GRASS)->disableMipmap()->sendTileData(0xFF));
// 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);
@@ -548,7 +573,9 @@ void Tile::staticCtor()
Item::items[red_sandstone_Id] = (new MultiTextureTileItem(Tile::red_sandstone_Id - 256, red_sandstone, (int*)RedSandStoneTile::SANDSTONE_NAMES, RedSandStoneTile::SANDSTONE_BLOCK_NAMES))->setIconName(L"red_sandstone")->setDescriptionId(IDS_TILE_SANDSTONE)->setUseDescriptionId(IDS_DESC_SANDSTONE);
Item::items[tree2Trunk_Id] = (new MultiTextureTileItem(Tile::tree2Trunk_Id - 256, tree2Trunk, (int*)TreeTile2::TREE_NAMES, TreeTile2::TREE_NAMES_LENGTH))->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->setUseDescriptionId(IDS_DESC_LOG);
Item::items[sponge_Id] = (new MultiTextureTileItem(Tile::sponge_Id - 256, sponge, (int*)Sponge::SPONGE_NAMES, Sponge::SPONGE_NAMES_LENGTH))->setIconName(L"sponge")->setDescriptionId(IDS_TILE_SPONGE)->setUseDescriptionId(IDS_DESC_SPONGE);
int tallgrass2IdsData[5] = { IDS_TILE_TALL_GRASS2, IDS_TILE_LARGE_FERN, IDS_TILE_LILAC, IDS_TILE_ROSE_BUSH, IDS_TILE_PEONY };
intArray tallgrass2Ids = intArray(tallgrass2IdsData, 5);
Item::items[tallgrass2_Id] = static_cast<TallGrass2TileItem*>((new TallGrass2TileItem(Tile::tallgrass2_Id - 256))->setDescriptionId(IDS_TILE_TALL_GRASS2)->setUseDescriptionId(IDS_DESC_TALL_GRASS))->setDescriptionPostfixes(tallgrass2Ids);
for (int i = 0; i < 256; i++)
{
@@ -1632,6 +1659,7 @@ int Tile::SoundType::getPlaceSound() const
}
/*
4J: These are necessary on the PS3.
(and 4 and Vita).