Files
MinecraftConsoles/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/StemTile_SPU.h
2026-03-01 12:16:08 +08:00

63 lines
2.0 KiB
C++

#pragma once
#include "Bush_SPU.h"
class StemTile_SPU : public Bush_SPU
{
private:
public:
StemTile_SPU(int id) : Bush_SPU(id) {}
public:
int getColor(int data) const
{
//int r = data * 32;
//int g = 255 - data * 8;
//int b = data * 4;
//return r << 16 | g << 8 | b;
int colour = 0;
unsigned int minColour = ms_pTileData->stemTile_minColour;
unsigned int maxColour = ms_pTileData->stemTile_maxColour;
byte redComponent = ((minColour>>16)&0xFF) + (( (maxColour>>16)&0xFF - (minColour>>16)&0xFF)*( data/7.0f));
byte greenComponent = ((minColour>>8)&0xFF) + (( (maxColour>>8)&0xFF - (minColour>>8)&0xFF)*( data/7.0f));
byte blueComponent = ((minColour)&0xFF) + (( (maxColour)&0xFF - (minColour)&0xFF)*( data/7.0f));
colour = redComponent<<16 | greenComponent<<8 | blueComponent;
return colour;
}
virtual int getColor(ChunkRebuildData *level, int x, int y, int z) { return getColor(level->getData(x, y, z)); }
virtual void updateDefaultShape()
{
float ss = 0.125f;
this->setShape(0.5f - ss, 0, 0.5f - ss, 0.5f + ss, 0.25f, 0.5f + ss);
}
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL) // 4J added forceData, forceEntity param
{
ms_pTileData->yy1[id] = (level->getData(x, y, z) * 2 + 2) / 16.0f;
float ss = 0.125f;
this->setShape(0.5f - ss, 0, 0.5f - ss, 0.5f + ss, (float) ms_pTileData->yy1[id], 0.5f + ss);
}
int getConnectDir(ChunkRebuildData *level, int x, int y, int z)
{
int fruitID = pumpkin_Id;
if(id == melonStem_Id)
fruitID = melon_Id;
int d = level->getData(x, y, z);
if (d < 7) return -1;
if (level->getTile(x - 1, y, z) == fruitID) return 0;
if (level->getTile(x + 1, y, z) == fruitID) return 1;
if (level->getTile(x, y, z - 1) == fruitID) return 2;
if (level->getTile(x, y, z + 1) == fruitID) return 3;
return -1;
}
virtual int getRenderShape() { return Tile_SPU::SHAPE_STEM; }
Icon_SPU *getAngledTexture() { return &ms_pTileData->stemTile_iconAngled; }
};