feat: sunflower w/ dye recipies

This commit is contained in:
Fireblade
2026-05-24 21:39:15 -04:00
parent 8511248572
commit d9a2776e21
11 changed files with 219 additions and 10 deletions
+52 -2
View File
@@ -1,6 +1,8 @@
#include "stdafx.h"
#include "net.minecraft.world.item.h"
#include "net.minecraft.world.level.tile.h"
#include "Rose.h"
#include "TallGrass2.h"
#include "Recipy.h"
#include "Recipes.h"
#include "ClothDyeRecipes.h"
@@ -38,18 +40,66 @@ void ClothDyeRecipes::addRecipes(Recipes *r)
}
// some dye recipes
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::YELLOW),
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::YELLOW),
L"tg",
Tile::flower,L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::RED),
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::RED),
L"tg",
Tile::rose,L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::LIGHT_BLUE),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::BLUE_ORCHID),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::MAGENTA),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::ALLIUM),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::SILVER),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::AZURE_BLUET),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::RED),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::RED_TULIP),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::ORANGE),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::ORANGE_TULIP),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::SILVER),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::WHITE_TULIP),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::PINK),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::PINK_TULIP),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 1, DyePowderItem::SILVER),
L"zg",
new ItemInstance(Tile::rose, 1, Rose::OXEYE_DAISY),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 3, DyePowderItem::WHITE),
L"ig",
Item::bone,L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::YELLOW),
L"zg",
new ItemInstance(Tile::tallgrass2, 1, TallGrass2::SUNFLOWER),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::MAGENTA),
L"zg",
new ItemInstance(Tile::tallgrass2, 1, TallGrass2::LILAC),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::RED),
L"zg",
new ItemInstance(Tile::tallgrass2, 1, TallGrass2::ROSE_BUSH),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::PINK),
L"zg",
new ItemInstance(Tile::tallgrass2, 1, TallGrass2::PEONY),L'D');
r->addShapelessRecipy(new ItemInstance(Item::dye_powder, 2, DyePowderItem::PINK), //
L"zzg",
new ItemInstance(Item::dye_powder, 1, DyePowderItem::RED),
+1 -1
View File
@@ -5,9 +5,9 @@
HalfTransparentTile::HalfTransparentTile(int id, const wstring &tex, Material *material, bool allowSame) : Tile(id,material,isSolidRender())
{
setLightBlock(0);
this->allowSame = allowSame;
this->texture = tex;
setLightBlock(0);
}
bool HalfTransparentTile::isSolidRender(bool isServerLevel)
-1
View File
@@ -10,7 +10,6 @@
SlimeTile::SlimeTile(int id) : HalfTransparentTile(id, L"slime", Material::clay, false)
{
friction = 0.8f;
setLightBlock(0);
}
int SlimeTile::getRenderLayer()
+25 -4
View File
@@ -30,7 +30,7 @@ static const int DESCRIPTION_IDS[TallGrass2::VARIANT_COUNT] = {
static const wstring TEXTURE_BOTTOM[TallGrass2::VARIANT_COUNT] = {
L"tallgrass2_tall_grass_lower", // Sunflower, not implemented yet
L"tallgrass2_sunflower_lower",
L"tallgrass2_lilac_lower",
L"tallgrass2_tall_grass_lower",
L"tallgrass2_large_fern_lower",
@@ -39,7 +39,25 @@ static const wstring TEXTURE_BOTTOM[TallGrass2::VARIANT_COUNT] = {
};
static const wstring TEXTURE_TOP[TallGrass2::VARIANT_COUNT] = {
L"tallgrass2_tall_grass_upper", // Sunflower, not implemented yet
L"tallgrass2_sunflower_upper",
L"tallgrass2_lilac_upper",
L"tallgrass2_tall_grass_upper",
L"tallgrass2_large_fern_upper",
L"tallgrass2_rose_bush_upper",
L"tallgrass2_peony_upper"
};
static const wstring TEXTURE_HEAD_FRONT[TallGrass2::VARIANT_COUNT] = {
L"tallgrass2_sunflower_head_front",
L"tallgrass2_lilac_upper",
L"tallgrass2_tall_grass_upper",
L"tallgrass2_large_fern_upper",
L"tallgrass2_rose_bush_upper",
L"tallgrass2_peony_upper"
};
static const wstring TEXTURE_HEAD_BACK[TallGrass2::VARIANT_COUNT] = {
L"tallgrass2_sunflower_head_back",
L"tallgrass2_lilac_upper",
L"tallgrass2_tall_grass_upper",
L"tallgrass2_large_fern_upper",
@@ -79,9 +97,12 @@ void TallGrass2::registerIcons(IconRegister* iconRegister)
{
iconBottom[i] = iconRegister->registerIcon(TEXTURE_BOTTOM[i]);
iconTop[i] = iconRegister->registerIcon(TEXTURE_TOP[i]);
iconHeadFront[i] = iconRegister->registerIcon(TEXTURE_HEAD_FRONT[i]);
iconHeadBack[i] = iconRegister->registerIcon(TEXTURE_HEAD_BACK[i]);
}
icon = iconTop[TALL_GRASS];
// sunflower item
icon = iconHeadFront[SUNFLOWER] != nullptr ? iconHeadFront[SUNFLOWER] : iconTop[TALL_GRASS];
}
@@ -151,6 +172,7 @@ bool TallGrass2::mayPlace(Level* level, int x, int y, int z)
&& level->getTile(x, y, z) == 0
&& level->getTile(x, y + 1, z) == 0;
}
void TallGrass2::finalizePlacement(Level* level, int x, int y, int z, int data)
{
if ((data & UPPER_BIT) != 0) return;
@@ -169,7 +191,6 @@ void TallGrass2::onPlace(Level* level, int x, int y, int z)
level->setTilesDirty(x - 1, y - 1, z - 1, x + 1, y + 2, z + 1);
}
bool TallGrass2::canSurvive(Level* level, int x, int y, int z)
{
int data = level->getData(x, y, z);
+4
View File
@@ -18,6 +18,8 @@ public:
private:
Icon* iconBottom[VARIANT_COUNT];
Icon* iconTop[VARIANT_COUNT];
Icon* iconHeadFront[VARIANT_COUNT];
Icon* iconHeadBack[VARIANT_COUNT];
protected:
TallGrass2(int id);
@@ -27,6 +29,8 @@ public:
virtual Icon* getTexture(int face, int data) override;
virtual Icon* getTexture(LevelSource* level, int x, int y, int z, int face) override;
virtual void registerIcons(IconRegister* iconRegister) override;
Icon* getSunflowerHeadFrontIcon() const { return iconHeadFront[SUNFLOWER]; }
Icon* getSunflowerHeadBackIcon() const { return iconHeadBack[SUNFLOWER]; }
virtual int getRenderShape() override;
virtual bool blocksLight() override;
virtual bool isSolidRender(bool isServerLevel = false) override;
+6
View File
@@ -296,6 +296,12 @@ public:
virtual Icon* getIcon(int auxValue) override
{
if (auxValue == TallGrass2::SUNFLOWER)
{
TallGrass2* tile = static_cast<TallGrass2*>(Tile::tiles[getTileId()]);
if (tile != nullptr)
return tile->getSunflowerHeadBackIcon();
}
return Tile::tiles[getTileId()]->getTexture(Facing::UP, auxValue);
}