wip_feat(PS3): Implement SPU variants for a portion of TU19's blocks
crashes at a stack overflow, cant be assed to fix it atm
This commit is contained in:
@@ -242,11 +242,10 @@ C4JSpursJob_ChunkUpdate::C4JSpursJob_ChunkUpdate(ChunkRebuildData* pDataIn, Chun
|
||||
extern const CellSpursJobHeader JOBHEADER_SYMBOL(ChunkUpdate);
|
||||
//E create job
|
||||
m_job256.header = JOBHEADER_SYMBOL(ChunkUpdate);
|
||||
m_job256.header.sizeStack = (60*1024)>>4;
|
||||
m_job256.header.sizeStack = (58*1024)>>4;
|
||||
m_job256.workArea.userData[0] = (uintptr_t)pDataIn;
|
||||
m_job256.workArea.userData[1] = (uintptr_t)pDataOut;
|
||||
assert(cellSpursJobQueueCheckJob(&m_job256, 256, 256) == CELL_OK);
|
||||
|
||||
}
|
||||
|
||||
C4JSpursJob_LevelRenderer_cull::C4JSpursJob_LevelRenderer_cull(LevelRenderer_cull_DataIn* pDataIn)
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "BaseRailTile_SPU.h"
|
||||
|
||||
class ActivatorRailTile_SPU : public BaseRailTile_SPU
|
||||
{
|
||||
public:
|
||||
ActivatorRailTile_SPU(int id) : BaseRailTile_SPU(id) {}
|
||||
|
||||
Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
if ((data & RAIL_DATA_BIT) == 0)
|
||||
{
|
||||
return &ms_pTileData->activatorRailTile_icon;
|
||||
}
|
||||
else
|
||||
{
|
||||
return &ms_pTileData->activatorRailTile_iconPowered;
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
#include "stdafx.h"
|
||||
#include "BasePressurePlateTile_SPU.h"
|
||||
#include "ChunkRebuildData.h"
|
||||
|
||||
|
||||
bool BasePressurePlateTile_SPU::isSolidRender(bool isServerLevel)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool BasePressurePlateTile_SPU::blocksLight()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void BasePressurePlateTile_SPU::updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData, TileEntity* forceEntity) // 4J added forceData, forceEntity param
|
||||
{
|
||||
int data = level->getData(x, y, z);
|
||||
bool pressed = getSignalForData(data) > 0; // 0 is Redstone::SIGNAL_NONE
|
||||
float o = 1 / 16.0f;
|
||||
|
||||
if (pressed)
|
||||
{
|
||||
setShape(o, 0, o, 1 - o, 0.5f / 16.0f, 1 - o);
|
||||
}
|
||||
else
|
||||
{
|
||||
setShape(o, 0, o, 1 - o, 1 / 16.0f, 1 - o);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BasePressurePlateTile_SPU::updateDefaultShape()
|
||||
{
|
||||
float x = 8 / 16.0f;
|
||||
float y = 2 / 16.0f;
|
||||
float z = 8 / 16.0f;
|
||||
setShape(0.5f - x, 0.5f - y, 0.5f - z, 0.5f + x, 0.5f + y, 0.5f + z);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
|
||||
|
||||
class BasePressurePlateTile_SPU : public Tile_SPU
|
||||
{
|
||||
public:
|
||||
BasePressurePlateTile_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual bool isSolidRender(bool isServerLevel = false);
|
||||
virtual bool blocksLight();
|
||||
|
||||
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL); // 4J added forceData, forceEntity param
|
||||
virtual void updateDefaultShape();
|
||||
protected:
|
||||
virtual int getSignalForData(int data) = 0;
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
|
||||
class BaseRailTile_SPU : public Tile_SPU
|
||||
{
|
||||
|
||||
public:
|
||||
static const int RAIL_DATA_BIT = 8;
|
||||
static const int RAIL_DIRECTION_MASK = 7;
|
||||
|
||||
BaseRailTile_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
|
||||
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL) // 4J added forceData, forceEntity param
|
||||
{
|
||||
int data = level->getData(x, y, z);
|
||||
if (data >= 2 && data <= 5)
|
||||
{
|
||||
setShape(0, 0, 0, 1, 2 / 16.0f + 0.5f, 1);
|
||||
} else
|
||||
{
|
||||
setShape(0, 0, 0, 1, 2 / 16.0f, 1);
|
||||
}
|
||||
}
|
||||
virtual int getRenderShape() { return Tile_SPU::SHAPE_RAIL; }
|
||||
bool isUsesDataBit()
|
||||
{
|
||||
if(id == goldenRail_Id || id == detectorRail_Id || id == activatorRail_Id)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
@@ -13,7 +13,7 @@ public:
|
||||
if(id == Tile_SPU::button_wood_Id)
|
||||
return TileRef_SPU(wood_Id)->getTexture(Facing::UP);
|
||||
else
|
||||
return TileRef_SPU(rock_Id)->getTexture(Facing::UP);
|
||||
return TileRef_SPU(stone_Id)->getTexture(Facing::UP);
|
||||
}
|
||||
virtual bool blocksLight() { return false; }
|
||||
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
|
||||
|
||||
@@ -39,7 +39,7 @@ static const int Level_MAX_BRIGHTNESS = 15;
|
||||
#include "TileRenderer_SPU.h"
|
||||
#include "Tile_SPU.h"
|
||||
#include "ChunkRebuildData.h"
|
||||
TileData_SPU g_tileSPUData;
|
||||
//TileData_SPU g_tileSPUData;
|
||||
|
||||
static const int MAX_LEVEL_SIZE = 30000000;
|
||||
static const int MAX_BRIGHTNESS = 15;
|
||||
@@ -89,30 +89,30 @@ void ChunkRebuildData::disableUnseenTiles()
|
||||
|
||||
// Establish whether this tile and its neighbours are all made of rock, dirt, unbreakable tiles, or have already
|
||||
// been determined to meet this criteria themselves and have a tile of 255 set.
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX-1, iY, iZ);
|
||||
flags = getFlags(iX-1, iY, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX+1, iY, iZ);
|
||||
flags = getFlags(iX+1, iY, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX, iY, iZ-1);
|
||||
flags = getFlags(iX, iY, iZ-1);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX, iY, iZ+1);
|
||||
flags = getFlags(iX, iY, iZ+1);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
// Treat the bottom of the world differently - we shouldn't ever be able to look up at this, so consider tiles as invisible
|
||||
// if they are surrounded on sides other than the bottom
|
||||
if( iY > 0 )
|
||||
{
|
||||
tileID = getTile(iX, iY-1, iZ);
|
||||
flags = getFlags(iX, iY-1, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
}
|
||||
tileID = getTile(iX, iY+1, iZ);
|
||||
flags = getFlags(iX, iY+1, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
|
||||
// This tile is surrounded. Flag it as not requiring to be rendered by setting its id to 255.
|
||||
setFlag(iX, iY, iZ, e_flag_NoRender);
|
||||
@@ -157,7 +157,7 @@ void ChunkRebuildData::buildMaterials()
|
||||
buildMaterial(Material_SPU::plant_Id, Material::plant);
|
||||
buildMaterial(Material_SPU::replaceable_plant_Id, Material::replaceable_plant);
|
||||
buildMaterial(Material_SPU::sponge_Id, Material::sponge);
|
||||
buildMaterial(Material_SPU::cloth_Id, Material::cloth);
|
||||
buildMaterial(Material_SPU::wool_Id, Material::cloth);
|
||||
buildMaterial(Material_SPU::fire_Id, Material::fire);
|
||||
buildMaterial(Material_SPU::sand_Id, Material::sand);
|
||||
buildMaterial(Material_SPU::decoration_Id, Material::decoration);
|
||||
@@ -195,7 +195,7 @@ int ChunkRebuildData::getMaterialID(Tile* pTile)
|
||||
if(m == Material::plant) return Material_SPU::plant_Id;
|
||||
if(m == Material::replaceable_plant)return Material_SPU::replaceable_plant_Id;
|
||||
if(m == Material::sponge) return Material_SPU::sponge_Id;
|
||||
if(m == Material::cloth) return Material_SPU::cloth_Id;
|
||||
if(m == Material::cloth) return Material_SPU::wool_Id;
|
||||
if(m == Material::fire) return Material_SPU::fire_Id;
|
||||
if(m == Material::sand) return Material_SPU::sand_Id;
|
||||
if(m == Material::decoration) return Material_SPU::decoration_Id;
|
||||
@@ -341,9 +341,17 @@ void ChunkRebuildData::createTileData()
|
||||
setIconSPUFromIcon(&m_tileData.dispenserTile_iconFront, ((DispenserTile*)Tile::dispenser)->iconFront);
|
||||
setIconSPUFromIcon(&m_tileData.dispenserTile_iconFrontVertical, ((DispenserTile*)Tile::dispenser)->iconFrontVertical);
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.dropperTile_iconFront, ((DropperTile*)Tile::dropper)->iconFront);
|
||||
setIconSPUFromIcon(&m_tileData.dropperTile_iconFrontVertical, ((DropperTile*)Tile::dropper)->iconFrontVertical);
|
||||
|
||||
// RailTile
|
||||
setIconSPUFromIcon(&m_tileData.railTile_iconTurn, ((RailTile*)Tile::rail)->iconTurn);
|
||||
setIconSPUFromIcon(&m_tileData.railTile_iconTurnGolden, ((RailTile*)Tile::goldenRail)->iconTurn);
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.poweredRailTile_icon, ((PoweredRailTile*)Tile::goldenRail)->icon);
|
||||
setIconSPUFromIcon(&m_tileData.poweredRailTile_iconPowered, ((PoweredRailTile*)Tile::goldenRail)->iconPowered);
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.activatorRailTile_icon, ((PoweredRailTile*)Tile::activatorRail)->icon);
|
||||
setIconSPUFromIcon(&m_tileData.activatorRailTile_iconPowered, ((PoweredRailTile*)Tile::activatorRail)->iconPowered);
|
||||
|
||||
for(int i=0;i<2;i++)
|
||||
setIconSPUFromIcon(&m_tileData.detectorRailTile_icons[i], ((DetectorRailTile*)Tile::detectorRail)->icons[i]);
|
||||
@@ -413,8 +421,12 @@ void ChunkRebuildData::createTileData()
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.stoneSlab_iconSide, ((StoneSlabTile*)(Tile::stoneSlab))->iconSide);
|
||||
|
||||
//ColoredTile
|
||||
for(int i=0;i<16;i++)
|
||||
setIconSPUFromIcon(&m_tileData.clothTile_icons[i], ((ColoredTile*)Tile::wool)->icons[i]);
|
||||
setIconSPUFromIcon(&m_tileData.woolTile_icons[i], ((ColoredTile*)Tile::wool)->icons[i]);
|
||||
|
||||
for(int i=0;i<16;i++)
|
||||
setIconSPUFromIcon(&m_tileData.clayHardened_colored_icons[i], ((ColoredTile*)Tile::clayHardened_colored)->icons[i]);
|
||||
|
||||
// CarrotTile
|
||||
for(int i=0;i<4;i++)
|
||||
@@ -438,6 +450,13 @@ void ChunkRebuildData::createTileData()
|
||||
setIconSPUFromIcon(&m_tileData.quartzBlock_iconTop, ((QuartzBlockTile*)Tile::quartzBlock)->iconTop);
|
||||
setIconSPUFromIcon(&m_tileData.quartzBlock_iconBottom, ((QuartzBlockTile*)Tile::quartzBlock)->iconBottom);
|
||||
|
||||
// HayBlockTile
|
||||
setIconSPUFromIcon(&m_tileData.hayBlockTile_iconTop, ((HayBlockTile*)Tile::hayBlock)->iconTop);
|
||||
setIconSPUFromIcon(&m_tileData.hayBlockTile_icon, ((HayBlockTile*)Tile::hayBlock)->icon);
|
||||
|
||||
// DaylightDetectorTile
|
||||
for(int i=0;i<1;i++)
|
||||
setIconSPUFromIcon(&m_tileData.daylightDetector_icons[i], ((DaylightDetectorTile*)Tile::daylightDetector)->icons[i]);
|
||||
}
|
||||
|
||||
// extern int g_lastHitBlockX;
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
int m_lastHitBlockX;
|
||||
int m_lastHitBlockY;
|
||||
int m_lastHitBlockZ;
|
||||
unsigned int m_pad[5];// padding to 16 byte alignment
|
||||
unsigned int m_pad[3];// padding to 16 byte alignment
|
||||
|
||||
|
||||
int getTileIdx(int x, int y, int z) { return (( x - m_x0 )*sc_size*sc_size) + (( y - m_y0 )*sc_size) + ( z - m_z0 ); }
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
<ClInclude Include="WorkbenchTile_SPU.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="BasePressurePlateTile_SPU.cpp" />
|
||||
<ClCompile Include="ChunkRebuildData.cpp" />
|
||||
<ClCompile Include="DiodeTile_SPU.cpp" />
|
||||
<ClCompile Include="Direction_SPU.cpp" />
|
||||
@@ -126,7 +127,6 @@
|
||||
<ClCompile Include="Icon_SPU.cpp" />
|
||||
<ClCompile Include="LeafTile_SPU.cpp" />
|
||||
<ClCompile Include="LiquidTile_SPU.cpp" />
|
||||
<ClCompile Include="PressurePlateTile_SPU.cpp" />
|
||||
<ClCompile Include="StairTile_SPU.cpp" />
|
||||
<ClCompile Include="TallGrass_SPU.cpp" />
|
||||
<ClCompile Include="task.cpp" />
|
||||
|
||||
@@ -142,9 +142,6 @@
|
||||
<ClCompile Include="LiquidTile_SPU.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PressurePlateTile_SPU.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="StairTile_SPU.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -166,5 +163,8 @@
|
||||
<ClCompile Include="TileRenderer_SPU.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="BasePressurePlateTile_SPU.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,11 +0,0 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
|
||||
class ClothTile_SPU : public Tile_SPU
|
||||
{
|
||||
public:
|
||||
ClothTile_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual Icon_SPU *getTexture(int face, int data) { return &ms_pTileData->clothTile_icons[data]; }
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
|
||||
class ColoredClay_SPU : public Tile_SPU
|
||||
{
|
||||
public:
|
||||
ColoredClay_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual Icon_SPU *getTexture(int face, int data) { return &ms_pTileData->clayHardened_colored_icons[data]; }
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#include "EntityTile_SPU.h"
|
||||
|
||||
class DaylightDetectorTile_SPU : public EntityTile_SPU
|
||||
{
|
||||
public:
|
||||
DaylightDetectorTile_SPU(int id) : EntityTile_SPU(id) {}
|
||||
|
||||
Icon_SPU *getTexture(int face, int data) {
|
||||
if (face == Facing::UP)
|
||||
{
|
||||
return &ms_pTileData->daylightDetector_icons[0];
|
||||
}
|
||||
return &ms_pTileData->daylightDetector_icons[1];
|
||||
};
|
||||
|
||||
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
|
||||
|
||||
virtual void updateDefaultShape() { setShape(0, 0, 0, 1, 6.0f / 16.0f, 1); };
|
||||
virtual void updateShape() { setShape(0, 0, 0, 1, 6.0f / 16.0f, 1); };
|
||||
};
|
||||
@@ -2,10 +2,10 @@
|
||||
#include "RailTile_SPU.h"
|
||||
|
||||
|
||||
class DetectorRailTile_SPU : public RailTile_SPU
|
||||
class DetectorRailTile_SPU : public BaseRailTile_SPU
|
||||
{
|
||||
public:
|
||||
DetectorRailTile_SPU(int id) : RailTile_SPU(id) {}
|
||||
DetectorRailTile_SPU(int id) : BaseRailTile_SPU(id) {}
|
||||
Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
if ((data & RAIL_DATA_BIT) != 0)
|
||||
|
||||
@@ -21,9 +21,9 @@ public:
|
||||
{
|
||||
if (id==diode_on_Id)
|
||||
{
|
||||
return TileRef_SPU(notGate_on_Id)->getTexture(face);
|
||||
return TileRef_SPU(redstoneTorch_on_Id)->getTexture(face);
|
||||
}
|
||||
return TileRef_SPU(notGate_off_Id)->getTexture(face);
|
||||
return TileRef_SPU(redstoneTorch_off_Id)->getTexture(face);
|
||||
}
|
||||
if (face == Facing::UP)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
#include "DispenserTile_SPU.h"
|
||||
#include "Facing_SPU.h"
|
||||
|
||||
|
||||
class DropperTile_SPU : public DispenserTile_SPU
|
||||
{
|
||||
public:
|
||||
DropperTile_SPU(int id) : DispenserTile_SPU(id) {}
|
||||
|
||||
public:
|
||||
virtual Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
int dir = data & FACING_MASK;
|
||||
if (face == dir)
|
||||
{
|
||||
if (dir == Facing::UP || dir == Facing::DOWN)
|
||||
{
|
||||
return &ms_pTileData->dropperTile_iconFrontVertical;
|
||||
}
|
||||
else
|
||||
{
|
||||
return &ms_pTileData->dropperTile_iconFront;
|
||||
}
|
||||
}
|
||||
|
||||
if (dir == Facing::UP || dir == Facing::DOWN)
|
||||
{
|
||||
return &ms_pTileData->dispenserTile_iconTop;
|
||||
}
|
||||
else if (face == Facing::UP || face == Facing::DOWN)
|
||||
{
|
||||
return &ms_pTileData->dispenserTile_iconTop;
|
||||
}
|
||||
return icon();
|
||||
}
|
||||
};
|
||||
@@ -33,7 +33,7 @@ public:
|
||||
case Tile_SPU::bookshelf_Id:
|
||||
case Tile_SPU::tnt_Id:
|
||||
case Tile_SPU::tallgrass_Id:
|
||||
case Tile_SPU::cloth_Id:
|
||||
case Tile_SPU::wool_Id:
|
||||
case Tile_SPU::vine_Id:
|
||||
return true;
|
||||
default:
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include "RotatedPillarTile_SPU.h"
|
||||
|
||||
class HayBlockTile_SPU : public RotatedPillarTile_SPU
|
||||
{
|
||||
friend class ChunkRebuildData;
|
||||
public:
|
||||
HayBlockTile_SPU(int id) : RotatedPillarTile_SPU(id) {}
|
||||
|
||||
protected:
|
||||
Icon_SPU *getTopTexture(int type) {
|
||||
return &ms_pTileData->hayBlockTile_iconTop;
|
||||
};
|
||||
|
||||
Icon_SPU *getTypeTexture(int type) {
|
||||
return &ms_pTileData->hayBlockTile_icon;
|
||||
};
|
||||
};
|
||||
@@ -14,8 +14,8 @@ public:
|
||||
Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
Icon_SPU* icons = ms_pTileData->hugeMushroom_icons;
|
||||
int type = 0; // hugeMushroom1_Id
|
||||
if(id == hugeMushroom2_Id)
|
||||
int type = 0; // hugemushroom_brown_Id
|
||||
if(id == hugeMushroom_red_Id)
|
||||
type = 1;
|
||||
// 123
|
||||
// 456 10
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
static const int plant_Id = 9;
|
||||
static const int replaceable_plant_Id = 10;
|
||||
static const int sponge_Id = 11;
|
||||
static const int cloth_Id = 12;
|
||||
static const int wool_Id = 12;
|
||||
static const int fire_Id = 13;
|
||||
static const int sand_Id = 14;
|
||||
static const int decoration_Id = 15;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "BaseRailTile_SPU.h"
|
||||
|
||||
class PoweredRailTile_SPU : public BaseRailTile_SPU
|
||||
{
|
||||
public:
|
||||
PoweredRailTile_SPU(int id) : BaseRailTile_SPU(id) {}
|
||||
|
||||
Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
if ((data & RAIL_DATA_BIT) == 0)
|
||||
{
|
||||
return &ms_pTileData->poweredRailTile_icon;
|
||||
}
|
||||
else
|
||||
{
|
||||
return &ms_pTileData->poweredRailTile_iconPowered;
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -1,41 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "PressurePlateTile_SPU.h"
|
||||
#include "ChunkRebuildData.h"
|
||||
|
||||
|
||||
bool PressurePlateTile_SPU::isSolidRender(bool isServerLevel)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool PressurePlateTile_SPU::blocksLight()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void PressurePlateTile_SPU::updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData, TileEntity* forceEntity) // 4J added forceData, forceEntity param
|
||||
{
|
||||
bool pressed = level->getData(x, y, z) == 1;
|
||||
|
||||
float o = 1 / 16.0f;
|
||||
if (pressed)
|
||||
{
|
||||
this->setShape(o, 0, o, 1 - o, 0.5f / 16.0f, 1 - o);
|
||||
}
|
||||
else
|
||||
{
|
||||
setShape(o, 0, o, 1 - o, 1 / 16.0f, 1 - o);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void PressurePlateTile_SPU::updateDefaultShape()
|
||||
{
|
||||
float x = 8 / 16.0f;
|
||||
float y = 2 / 16.0f;
|
||||
float z = 8 / 16.0f;
|
||||
setShape(0.5f - x, 0.5f - y, 0.5f - z, 0.5f + x, 0.5f + y, 0.5f + z);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
#include "BasePressurePlateTile_SPU.h"
|
||||
|
||||
|
||||
class PressurePlateTile_SPU : public Tile_SPU
|
||||
class PressurePlateTile_SPU : public BasePressurePlateTile_SPU
|
||||
{
|
||||
public:
|
||||
enum Sensitivity
|
||||
enum Sensitivity
|
||||
{
|
||||
everything,
|
||||
mobs,
|
||||
players
|
||||
};
|
||||
everything, mobs, players
|
||||
};
|
||||
|
||||
PressurePlateTile_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual bool isSolidRender(bool isServerLevel = false);
|
||||
virtual bool blocksLight();
|
||||
private:
|
||||
Sensitivity sensitivity;
|
||||
|
||||
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL); // 4J added forceData, forceEntity param
|
||||
virtual void updateDefaultShape();
|
||||
};
|
||||
public:
|
||||
PressurePlateTile_SPU(int id) : BasePressurePlateTile_SPU(id) {}
|
||||
|
||||
protected:
|
||||
virtual int getSignalForData(int data) {
|
||||
// 15 is Redstone::SIGNAL_MAX
|
||||
return data == 1 ? 15 : 0;
|
||||
};
|
||||
};
|
||||
@@ -1,58 +1,21 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
|
||||
class RailTile_SPU : public Tile_SPU
|
||||
#include "BaseRailTile_SPU.h"
|
||||
|
||||
class RailTile_SPU : public BaseRailTile_SPU
|
||||
{
|
||||
|
||||
public:
|
||||
static const int RAIL_DATA_BIT = 8;
|
||||
static const int RAIL_DIRECTION_MASK = 7;
|
||||
RailTile_SPU(int id) : BaseRailTile_SPU(id) {}
|
||||
|
||||
RailTile_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
|
||||
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL) // 4J added forceData, forceEntity param
|
||||
Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
int data = level->getData(x, y, z);
|
||||
if (data >= 2 && data <= 5)
|
||||
if (data >= 6)
|
||||
{
|
||||
setShape(0, 0, 0, 1, 2 / 16.0f + 0.5f, 1);
|
||||
} else
|
||||
{
|
||||
setShape(0, 0, 0, 1, 2 / 16.0f, 1);
|
||||
return &ms_pTileData->railTile_iconTurn;
|
||||
}
|
||||
}
|
||||
virtual Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
bool usesDataBit = false;
|
||||
Icon_SPU* iconTurn = &ms_pTileData->railTile_iconTurn;
|
||||
if(id == goldenRail_Id)
|
||||
else
|
||||
{
|
||||
usesDataBit = true;
|
||||
iconTurn = &ms_pTileData->railTile_iconTurnGolden;
|
||||
return icon();
|
||||
}
|
||||
|
||||
if (usesDataBit)
|
||||
{
|
||||
// if (id == Tile::goldenRail_Id)
|
||||
// {
|
||||
if ((data & RAIL_DATA_BIT) == 0)
|
||||
{
|
||||
return icon();
|
||||
}
|
||||
else
|
||||
{
|
||||
return iconTurn; // Actually the powered rail on version
|
||||
}
|
||||
// }
|
||||
} else if (data >= 6) return iconTurn;
|
||||
return icon();
|
||||
|
||||
}
|
||||
virtual int getRenderShape() { return Tile_SPU::SHAPE_RAIL; }
|
||||
bool isUsesDataBit()
|
||||
{
|
||||
if(id == goldenRail_Id || id == detectorRail_Id)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
#include "Tile_SPU.h"
|
||||
#include "Facing_SPU.h"
|
||||
|
||||
class RotatedPillarTile_SPU : public Tile_SPU
|
||||
{
|
||||
public:
|
||||
static const int MASK_TYPE = 0x3;
|
||||
static const int MASK_FACING = 0xC;
|
||||
static const int FACING_Y = 0 << 2;
|
||||
static const int FACING_X = 1 << 2;
|
||||
static const int FACING_Z = 2 << 2;
|
||||
|
||||
protected:
|
||||
RotatedPillarTile_SPU(int id) : Tile_SPU(id) {}
|
||||
|
||||
public:
|
||||
virtual int getRenderShape() { return Tile_SPU::SHAPE_TREE; };
|
||||
|
||||
virtual Icon_SPU *getTexture(int face, int data) {
|
||||
int dir = data & MASK_FACING;
|
||||
int type = data & MASK_TYPE;
|
||||
|
||||
if (dir == FACING_Y && (face == Facing::UP || face == Facing::DOWN))
|
||||
{
|
||||
return getTopTexture(type);
|
||||
}
|
||||
else if (dir == FACING_X && (face == Facing::EAST || face == Facing::WEST))
|
||||
{
|
||||
return getTopTexture(type);
|
||||
}
|
||||
else if (dir == FACING_Z && (face == Facing::NORTH || face == Facing::SOUTH))
|
||||
{
|
||||
return getTopTexture(type);
|
||||
}
|
||||
|
||||
return getTypeTexture(type);
|
||||
};
|
||||
|
||||
protected:
|
||||
virtual Icon_SPU *getTypeTexture(int type) = 0;
|
||||
|
||||
virtual Icon_SPU *getTopTexture(int type) = 0;
|
||||
};
|
||||
@@ -43,5 +43,5 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(hellSand_Id)->getTexture(face); }
|
||||
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(netherRack_Id)->getTexture(face); }
|
||||
};
|
||||
@@ -39,7 +39,7 @@ bool StairTile_SPU::isStairs(int id)
|
||||
case Tile_SPU::stairs_wood_Id:
|
||||
case Tile_SPU::stairs_stone_Id:
|
||||
case Tile_SPU::stairs_bricks_Id:
|
||||
case Tile_SPU::stairs_stoneBrickSmooth_Id:
|
||||
case Tile_SPU::stairs_stoneBrick_Id:
|
||||
case Tile_SPU::stairs_netherBricks_Id:
|
||||
case Tile_SPU::stairs_sandstone_Id:
|
||||
case Tile_SPU::stairs_sprucewood_Id:
|
||||
|
||||
@@ -21,12 +21,12 @@ public:
|
||||
{
|
||||
if (data == HOST_COBBLE)
|
||||
{
|
||||
return TileRef_SPU(stoneBrick_Id)->getTexture(face);
|
||||
return TileRef_SPU(cobblestone_Id)->getTexture(face);
|
||||
}
|
||||
if (data == HOST_STONEBRICK)
|
||||
{
|
||||
return TileRef_SPU(stoneBrickSmooth_Id)->getTexture(face);
|
||||
return TileRef_SPU(stoneBrick_Id)->getTexture(face);
|
||||
}
|
||||
return TileRef_SPU(rock_Id)->getTexture(face);
|
||||
return TileRef_SPU(stone_Id)->getTexture(face);
|
||||
}
|
||||
};
|
||||
@@ -41,11 +41,11 @@ public:
|
||||
case WOOD_SLAB:
|
||||
return TileRef_SPU(wood_Id)->getTexture(face); //Tile::wood->getTexture(face);
|
||||
case COBBLESTONE_SLAB:
|
||||
return TileRef_SPU(stoneBrick_Id)->getTexture(face); //Tile::stoneBrick->getTexture(face);
|
||||
return TileRef_SPU(cobblestone_Id)->getTexture(face); //Tile::stoneBrick->getTexture(face);
|
||||
case BRICK_SLAB:
|
||||
return TileRef_SPU(redBrick_Id)->getTexture(face); //Tile::redBrick->getTexture(face);
|
||||
case SMOOTHBRICK_SLAB:
|
||||
return TileRef_SPU(stoneBrickSmooth_Id)->getTexture(face); //Tile::stoneBrickSmooth->getTexture(face, SmoothStoneBrickTile::TYPE_DEFAULT);
|
||||
return TileRef_SPU(stoneBrick_Id)->getTexture(face); //Tile::stoneBrickSmooth->getTexture(face, SmoothStoneBrickTile::TYPE_DEFAULT);
|
||||
case NETHERBRICK_SLAB:
|
||||
return TileRef_SPU(netherBrick_Id)->getTexture(Facing::UP); //Tile::netherBrick->getTexture(Facing::UP);
|
||||
case QUARTZ_SLAB:
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "DirtTile_SPU.h"
|
||||
#include "DoorTile_SPU.h"
|
||||
#include "PressurePlateTile_SPU.h"
|
||||
#include "WeightedPressurePlateTile_SPU.h"
|
||||
#include "FarmTile_SPU.h"
|
||||
#include "Bush_SPU.h"
|
||||
#include "TallGrass_SPU.h"
|
||||
@@ -32,7 +33,10 @@
|
||||
#include "IceTile_SPU.h"
|
||||
#include "PortalTile_SPU.h"
|
||||
#include "DispenserTile_SPU.h"
|
||||
#include "DropperTile_SPU.h"
|
||||
#include "RailTile_SPU.h"
|
||||
#include "PoweredRailTile_SPU.h"
|
||||
#include "ActivatorRailTile_SPU.h"
|
||||
#include "DetectorRailTile_SPU.h"
|
||||
#include "TntTile_SPU.h"
|
||||
#include "BookshelfTile_SPU.h"
|
||||
@@ -71,7 +75,7 @@
|
||||
#include "EggTile_SPU.h"
|
||||
#include "CocoaTile_SPU.h"
|
||||
#include "RedlightTile_SPU.h"
|
||||
#include "ClothTile_SPU.h"
|
||||
#include "WoolTile_SPU.h"
|
||||
#include "SkullTile_SPU.h"
|
||||
#include "MobSpawnerTile_SPU.h"
|
||||
#include "EnderChestTile_SPU.h"
|
||||
@@ -83,6 +87,9 @@
|
||||
#include "PotatoTile_SPU.h"
|
||||
#include "QuartzBlockTile_SPU.h"
|
||||
#include "WoolCarpetTile_SPU.h"
|
||||
#include "ColoredClay_SPU.h"
|
||||
#include "HayBlockTile_SPU.h"
|
||||
#include "DaylightDetectorTile_SPU.h"
|
||||
|
||||
#ifdef SN_TARGET_PS3_SPU
|
||||
#include "..\Common\spu_assert.h"
|
||||
@@ -514,7 +521,7 @@ void Tile_SPU::updateDefaultShape()
|
||||
// void Tile_SPU::playerDestroy(Level *level, shared_ptr<Player> player, int x, int y, int z, int data)
|
||||
// {
|
||||
// // 4J Stu - Special case - only record a crop destroy if is fully grown
|
||||
// if(id==Tile_SPU::crops_Id)
|
||||
// if(id==Tile_SPU::wheat_Id)
|
||||
// {
|
||||
// if( Tile_SPU::crops->getResource(data, NULL, 0) > 0 )
|
||||
// player->awardStat(Stats::blocksMined[id], 1);
|
||||
@@ -681,6 +688,7 @@ void Tile_SPU::initTilePointers()
|
||||
CREATE_TILE_TYPE(woodSlabHalf_Id, WoodSlabTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(chest_Id, ChestTile_SPU);
|
||||
CREATE_TILE_TYPE(chest_trap_Id, ChestTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(ironFence_Id, ThinFenceTile_SPU);
|
||||
CREATE_TILE_TYPE(thinGlass_Id, ThinFenceTile_SPU);
|
||||
@@ -691,7 +699,7 @@ void Tile_SPU::initTilePointers()
|
||||
CREATE_TILE_TYPE(stairs_wood_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_stone_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_bricks_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_stoneBrickSmooth_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_stoneBrick_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_netherBricks_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_sandstone_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_sprucewood_Id, StairTile_SPU);
|
||||
@@ -706,6 +714,9 @@ void Tile_SPU::initTilePointers()
|
||||
CREATE_TILE_TYPE(pressurePlate_stone_Id, PressurePlateTile_SPU);
|
||||
CREATE_TILE_TYPE(pressurePlate_wood_Id, PressurePlateTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(weightedPlate_light_Id, WeightedPressurePlateTile_SPU);
|
||||
CREATE_TILE_TYPE(weightedPlate_heavy_Id, WeightedPressurePlateTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(farmland_Id, FarmTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(flower_Id, Bush_SPU);
|
||||
@@ -722,19 +733,19 @@ void Tile_SPU::initTilePointers()
|
||||
|
||||
CREATE_TILE_TYPE(leaves_Id, LeafTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(crops_Id, CropTile_SPU);
|
||||
CREATE_TILE_TYPE(wheat_Id, CropTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(reeds_Id, ReedTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(torch_Id, TorchTile_SPU);
|
||||
CREATE_TILE_TYPE(notGate_off_Id, TorchTile_SPU); // TorchTile->NotGateTile
|
||||
CREATE_TILE_TYPE(notGate_on_Id, TorchTile_SPU); // TorchTile->NotGateTile
|
||||
CREATE_TILE_TYPE(redstoneTorch_off_Id, TorchTile_SPU); // TorchTile->NotGateTile
|
||||
CREATE_TILE_TYPE(redstoneTorch_on_Id, TorchTile_SPU); // TorchTile->NotGateTile
|
||||
|
||||
CREATE_TILE_TYPE(mushroom1_Id, Mushroom_SPU);
|
||||
CREATE_TILE_TYPE(mushroom2_Id, Mushroom_SPU);
|
||||
CREATE_TILE_TYPE(mushroom_brown_Id, Mushroom_SPU);
|
||||
CREATE_TILE_TYPE(mushroom_red_Id, Mushroom_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(mobSpawner_Id, MobSpawnerTile_SPU);
|
||||
CREATE_TILE_TYPE(musicBlock_Id, EntityTile_SPU); // MusicTile->EntityTile
|
||||
CREATE_TILE_TYPE(noteblock_Id, EntityTile_SPU); // MusicTile->EntityTile
|
||||
|
||||
CREATE_TILE_TYPE(furnace_Id, FurnaceTile_SPU);
|
||||
CREATE_TILE_TYPE(furnace_lit_Id, FurnaceTile_SPU);
|
||||
@@ -757,9 +768,12 @@ void Tile_SPU::initTilePointers()
|
||||
CREATE_TILE_TYPE(portalTile_Id, PortalTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(dispenser_Id, DispenserTile_SPU);
|
||||
CREATE_TILE_TYPE(dropper_Id, DropperTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(rail_Id, RailTile_SPU);
|
||||
CREATE_TILE_TYPE(goldenRail_Id, RailTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(goldenRail_Id, PoweredRailTile_SPU);
|
||||
CREATE_TILE_TYPE(activatorRail_Id, ActivatorRailTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(detectorRail_Id, DetectorRailTile_SPU);
|
||||
|
||||
@@ -781,7 +795,7 @@ void Tile_SPU::initTilePointers()
|
||||
|
||||
CREATE_TILE_TYPE(cactus_Id, CactusTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(recordPlayer_Id, RecordPlayerTile_SPU);
|
||||
CREATE_TILE_TYPE(jukebox_Id, RecordPlayerTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(pumpkin_Id, PumpkinTile_SPU);
|
||||
CREATE_TILE_TYPE(litPumpkin_Id, PumpkinTile_SPU);
|
||||
@@ -792,10 +806,10 @@ void Tile_SPU::initTilePointers()
|
||||
|
||||
CREATE_TILE_TYPE(monsterStoneEgg_Id, StoneMonsterTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(stoneBrickSmooth_Id, SmoothStoneBrickTile_SPU);
|
||||
CREATE_TILE_TYPE(stoneBrick_Id, SmoothStoneBrickTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(hugeMushroom1_Id, HugeMushroomTile_SPU);
|
||||
CREATE_TILE_TYPE(hugeMushroom2_Id, HugeMushroomTile_SPU);
|
||||
CREATE_TILE_TYPE(hugeMushroom_brown_Id, HugeMushroomTile_SPU);
|
||||
CREATE_TILE_TYPE(hugeMushroom_red_Id, HugeMushroomTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(melon_Id, MelonTile_SPU);
|
||||
|
||||
@@ -847,16 +861,18 @@ void Tile_SPU::initTilePointers()
|
||||
|
||||
CREATE_TILE_TYPE(skull_Id, SkullTile_SPU);
|
||||
|
||||
// these tile types don't have any additional code that we need.
|
||||
CREATE_TILE_TYPE(stoneBrick_Id, Tile_SPU); // Tile
|
||||
// these tile types don't have any additional code that we need.
|
||||
CREATE_TILE_TYPE(cobblestone_Id, Tile_SPU); // Tile
|
||||
CREATE_TILE_TYPE(lapisBlock_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(redBrick_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(mossStone_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(mossyCobblestone_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(netherBrick_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(whiteStone_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(endStone_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(unbreakable_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(sponge_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(rock_Id, Tile_SPU); // StoneTile
|
||||
CREATE_TILE_TYPE(coalBlock_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(redstoneBlock_Id, Tile_SPU);
|
||||
CREATE_TILE_TYPE(stone_Id, Tile_SPU); // StoneTile
|
||||
CREATE_TILE_TYPE(obsidian_Id, Tile_SPU); // StoneTile->ObsidianTile
|
||||
CREATE_TILE_TYPE(sand_Id, Tile_SPU); // HeavyTile
|
||||
CREATE_TILE_TYPE(gravel_Id, Tile_SPU); // GravelTile
|
||||
@@ -872,12 +888,15 @@ void Tile_SPU::initTilePointers()
|
||||
CREATE_TILE_TYPE(ironBlock_Id, Tile_SPU); // MetalTile
|
||||
CREATE_TILE_TYPE(diamondBlock_Id, Tile_SPU); // MetalTile
|
||||
CREATE_TILE_TYPE(snow_Id, Tile_SPU); // SnowTile
|
||||
CREATE_TILE_TYPE(hellRock_Id, Tile_SPU); // HellStoneTile
|
||||
CREATE_TILE_TYPE(hellSand_Id, Tile_SPU); // HellSandTile
|
||||
CREATE_TILE_TYPE(lightGem_Id, Tile_SPU); // LightGemTile
|
||||
CREATE_TILE_TYPE(aprilFoolsJoke_Id, Tile_SPU); // LockedChestTile
|
||||
CREATE_TILE_TYPE(netherRack_Id, Tile_SPU); // NetherrackTile
|
||||
CREATE_TILE_TYPE(soulsand_Id, Tile_SPU); // SoulSandTile
|
||||
CREATE_TILE_TYPE(glowstone_Id, Tile_SPU); // Glowstonetile
|
||||
// got replaced by stained_glass_Id, rest in peace locked chest
|
||||
//CREATE_TILE_TYPE(aprilFoolsJoke_Id , Tile_SPU); // LockedChestTile
|
||||
CREATE_TILE_TYPE(clayHardened_Id, Tile_SPU); // ColoredTile
|
||||
|
||||
CREATE_TILE_TYPE(cloth_Id, ClothTile_SPU); // wool
|
||||
CREATE_TILE_TYPE(wool_Id, WoolTile_SPU); // wool
|
||||
CREATE_TILE_TYPE(clayHardened_colored_Id, ColoredClay_SPU); // wool
|
||||
|
||||
|
||||
CREATE_TILE_TYPE(emeraldOre_Id, Tile_SPU); // OreTile
|
||||
@@ -895,5 +914,6 @@ void Tile_SPU::initTilePointers()
|
||||
CREATE_TILE_TYPE(quartzBlock_Id, QuartzBlockTile_SPU);
|
||||
CREATE_TILE_TYPE(stairs_quartz_Id, StairTile_SPU);
|
||||
CREATE_TILE_TYPE(woolCarpet_Id, WoolCarpetTile_SPU);
|
||||
|
||||
CREATE_TILE_TYPE(hayBlock_Id, HayBlockTile_SPU);
|
||||
CREATE_TILE_TYPE(daylightDetector_Id, DaylightDetectorTile_SPU);
|
||||
};
|
||||
@@ -129,8 +129,14 @@ public:
|
||||
Icon_SPU dispenserTile_iconFront;
|
||||
Icon_SPU dispenserTile_iconFrontVertical;
|
||||
|
||||
Icon_SPU dropperTile_iconFront;
|
||||
Icon_SPU dropperTile_iconFrontVertical;
|
||||
|
||||
Icon_SPU railTile_iconTurn;
|
||||
Icon_SPU railTile_iconTurnGolden;
|
||||
Icon_SPU poweredRailTile_icon;
|
||||
Icon_SPU poweredRailTile_iconPowered;
|
||||
Icon_SPU activatorRailTile_icon;
|
||||
Icon_SPU activatorRailTile_iconPowered;
|
||||
|
||||
Icon_SPU detectorRailTile_icons[2];
|
||||
|
||||
@@ -178,7 +184,7 @@ public:
|
||||
Icon_SPU redStoneDust_iconCrossOver;
|
||||
Icon_SPU redStoneDust_iconLineOver;
|
||||
|
||||
Icon_SPU clothTile_icons[16];
|
||||
Icon_SPU woolTile_icons[16];
|
||||
|
||||
Icon_SPU stoneSlab_iconSide;
|
||||
|
||||
@@ -193,6 +199,12 @@ public:
|
||||
Icon_SPU quartzBlock_iconTop;
|
||||
Icon_SPU quartzBlock_iconBottom;
|
||||
|
||||
Icon_SPU clayHardened_colored_icons[16];
|
||||
Icon_SPU hayBlockTile_icon;
|
||||
Icon_SPU hayBlockTile_iconTop;
|
||||
|
||||
Icon_SPU daylightDetector_icons[2];
|
||||
|
||||
|
||||
int anvilPart; // normally part of the AnvilTile class
|
||||
|
||||
@@ -296,19 +308,24 @@ public:
|
||||
static const int SHAPE_FLOWER_POT = 33;
|
||||
static const int SHAPE_BEACON = 34;
|
||||
static const int SHAPE_ANVIL = 35;
|
||||
static const int SHAPE_HOPPER = 38;
|
||||
static const int SHAPE_QUARTZ = 39;
|
||||
static const int SHAPE_THIN_PANE = 40;
|
||||
|
||||
static const int SHAPE_COUNT = 41;
|
||||
|
||||
// 4J - this array of simple constants made so the compiler can optimise references to Ids that were previous of the form Tile_SPU::<whatever>->id, and are now simply Tile_SPU::whatever_Id
|
||||
static const int rock_Id = 1;
|
||||
static const int stone_Id = 1;
|
||||
static const int grass_Id = 2;
|
||||
static const int dirt_Id = 3;
|
||||
static const int stoneBrick_Id = 4;
|
||||
static const int cobblestone_Id = 4;
|
||||
static const int wood_Id = 5;
|
||||
static const int sapling_Id = 6;
|
||||
static const int unbreakable_Id = 7;
|
||||
static const int water_Id = 8;
|
||||
static const int calmWater_Id = 9;
|
||||
static const int lava_Id = 10;
|
||||
|
||||
static const int calmLava_Id = 11;
|
||||
static const int sand_Id = 12;
|
||||
static const int gravel_Id = 13;
|
||||
@@ -319,26 +336,29 @@ public:
|
||||
static const int leaves_Id = 18;
|
||||
static const int sponge_Id = 19;
|
||||
static const int glass_Id = 20;
|
||||
|
||||
static const int lapisOre_Id = 21;
|
||||
static const int lapisBlock_Id = 22;
|
||||
static const int dispenser_Id = 23;
|
||||
static const int sandStone_Id = 24;
|
||||
static const int musicBlock_Id = 25;
|
||||
static const int noteblock_Id = 25;
|
||||
static const int bed_Id = 26;
|
||||
static const int goldenRail_Id = 27;
|
||||
static const int detectorRail_Id = 28;
|
||||
static const int pistonStickyBase_Id = 29;
|
||||
static const int web_Id = 30;
|
||||
|
||||
static const int tallgrass_Id = 31;
|
||||
static const int deadBush_Id = 32;
|
||||
static const int pistonBase_Id = 33;
|
||||
static const int pistonExtensionPiece_Id = 34;
|
||||
static const int cloth_Id = 35;
|
||||
static const int wool_Id = 35;
|
||||
static const int pistonMovingPiece_Id = 36;
|
||||
static const int flower_Id = 37;
|
||||
static const int rose_Id = 38;
|
||||
static const int mushroom1_Id = 39;
|
||||
static const int mushroom2_Id = 40;
|
||||
static const int mushroom_brown_Id = 39;
|
||||
static const int mushroom_red_Id = 40;
|
||||
|
||||
static const int goldBlock_Id = 41;
|
||||
static const int ironBlock_Id = 42;
|
||||
static const int stoneSlab_Id = 43;
|
||||
@@ -346,9 +366,10 @@ public:
|
||||
static const int redBrick_Id = 45;
|
||||
static const int tnt_Id = 46;
|
||||
static const int bookshelf_Id = 47;
|
||||
static const int mossStone_Id = 48;
|
||||
static const int mossyCobblestone_Id = 48;
|
||||
static const int obsidian_Id = 49;
|
||||
static const int torch_Id = 50;
|
||||
|
||||
static const int fire_Id = 51;
|
||||
static const int mobSpawner_Id = 52;
|
||||
static const int stairs_wood_Id = 53;
|
||||
@@ -357,8 +378,9 @@ public:
|
||||
static const int diamondOre_Id = 56;
|
||||
static const int diamondBlock_Id = 57;
|
||||
static const int workBench_Id = 58;
|
||||
static const int crops_Id = 59;
|
||||
static const int wheat_Id = 59;
|
||||
static const int farmland_Id = 60;
|
||||
|
||||
static const int furnace_Id = 61;
|
||||
static const int furnace_lit_Id = 62;
|
||||
static const int sign_Id = 63;
|
||||
@@ -369,37 +391,40 @@ public:
|
||||
static const int wallSign_Id = 68;
|
||||
static const int lever_Id = 69;
|
||||
static const int pressurePlate_stone_Id = 70;
|
||||
|
||||
static const int door_iron_Id = 71;
|
||||
static const int pressurePlate_wood_Id = 72;
|
||||
static const int redStoneOre_Id = 73;
|
||||
static const int redStoneOre_lit_Id = 74;
|
||||
static const int notGate_off_Id = 75;
|
||||
static const int notGate_on_Id = 76;
|
||||
static const int redstoneTorch_off_Id = 75;
|
||||
static const int redstoneTorch_on_Id = 76;
|
||||
static const int button_stone_Id = 77;
|
||||
static const int topSnow_Id = 78;
|
||||
static const int ice_Id = 79;
|
||||
static const int snow_Id = 80;
|
||||
|
||||
static const int cactus_Id = 81;
|
||||
static const int clay_Id = 82;
|
||||
static const int reeds_Id = 83;
|
||||
static const int recordPlayer_Id = 84;
|
||||
static const int jukebox_Id = 84;
|
||||
static const int fence_Id = 85;
|
||||
static const int pumpkin_Id = 86;
|
||||
static const int hellRock_Id = 87;
|
||||
static const int hellSand_Id = 88;
|
||||
static const int lightGem_Id = 89;
|
||||
static const int netherRack_Id = 87;
|
||||
static const int soulsand_Id = 88;
|
||||
static const int glowstone_Id = 89;
|
||||
static const int portalTile_Id = 90;
|
||||
|
||||
static const int litPumpkin_Id = 91;
|
||||
static const int cake_Id = 92;
|
||||
static const int diode_off_Id = 93;
|
||||
static const int diode_on_Id = 94;
|
||||
static const int aprilFoolsJoke_Id = 95;
|
||||
static const int stained_glass_Id = 95;
|
||||
static const int trapdoor_Id = 96;
|
||||
|
||||
static const int monsterStoneEgg_Id = 97;
|
||||
static const int stoneBrickSmooth_Id = 98;
|
||||
static const int hugeMushroom1_Id = 99;
|
||||
static const int hugeMushroom2_Id = 100;
|
||||
static const int stoneBrick_Id = 98;
|
||||
static const int hugeMushroom_brown_Id = 99;
|
||||
static const int hugeMushroom_red_Id = 100;
|
||||
|
||||
static const int ironFence_Id = 101;
|
||||
static const int thinGlass_Id = 102;
|
||||
static const int melon_Id = 103;
|
||||
@@ -408,9 +433,9 @@ public:
|
||||
static const int vine_Id = 106;
|
||||
static const int fenceGate_Id = 107;
|
||||
static const int stairs_bricks_Id = 108;
|
||||
static const int stairs_stoneBrickSmooth_Id = 109;
|
||||
|
||||
static const int stairs_stoneBrick_Id = 109;
|
||||
static const int mycel_Id = 110;
|
||||
|
||||
static const int waterLily_Id = 111;
|
||||
static const int netherBrick_Id = 112;
|
||||
static const int netherFence_Id = 113;
|
||||
@@ -421,36 +446,55 @@ public:
|
||||
static const int cauldron_Id = 118;
|
||||
static const int endPortalTile_Id = 119;
|
||||
static const int endPortalFrameTile_Id = 120;
|
||||
static const int whiteStone_Id = 121;
|
||||
|
||||
static const int endStone_Id = 121;
|
||||
static const int dragonEgg_Id = 122;
|
||||
static const int redstoneLight_Id = 123;
|
||||
static const int redstoneLight_lit_Id = 124;
|
||||
|
||||
|
||||
static const int woodSlab_Id = 125;
|
||||
static const int woodSlabHalf_Id = 126;
|
||||
static const int cocoa_Id = 127;
|
||||
static const int stairs_sandstone_Id = 128;
|
||||
static const int stairs_sprucewood_Id = 134;
|
||||
static const int stairs_birchwood_Id = 135;
|
||||
static const int stairs_junglewood_Id = 136;
|
||||
static const int emeraldOre_Id = 129;
|
||||
static const int enderChest_Id = 130;
|
||||
|
||||
static const int tripWireSource_Id = 131;
|
||||
static const int tripWire_Id = 132;
|
||||
static const int emeraldBlock_Id = 133;
|
||||
|
||||
static const int stairs_sprucewood_Id = 134;
|
||||
static const int stairs_birchwood_Id = 135;
|
||||
static const int stairs_junglewood_Id = 136;
|
||||
static const int commandBlock_Id = 137;
|
||||
static const int beacon_Id = 138;
|
||||
static const int cobbleWall_Id = 139;
|
||||
static const int flowerPot_Id = 140;
|
||||
|
||||
static const int carrots_Id = 141;
|
||||
static const int potatoes_Id = 142;
|
||||
static const int anvil_Id = 145;
|
||||
static const int button_wood_Id = 143;
|
||||
static const int skull_Id = 144;
|
||||
static const int anvil_Id = 145;
|
||||
static const int chest_trap_Id = 146;
|
||||
static const int weightedPlate_light_Id = 147;
|
||||
static const int weightedPlate_heavy_Id = 148;
|
||||
static const int comparator_off_Id = 149;
|
||||
static const int comparator_on_Id = 150;
|
||||
|
||||
static const int daylightDetector_Id = 151;
|
||||
static const int redstoneBlock_Id = 152;
|
||||
static const int netherQuartz_Id = 153;
|
||||
static const int hopper_Id = 154;
|
||||
static const int quartzBlock_Id = 155;
|
||||
static const int stairs_quartz_Id = 156;
|
||||
static const int activatorRail_Id = 157;
|
||||
static const int dropper_Id = 158;
|
||||
static const int clayHardened_colored_Id = 159;
|
||||
static const int stained_glass_pane_Id = 160;
|
||||
|
||||
static const int hayBlock_Id = 170;
|
||||
static const int woolCarpet_Id = 171;
|
||||
static const int clayHardened_Id = 172;
|
||||
static const int coalBlock_Id = 173;
|
||||
|
||||
static Tile_SPU m_tiles[256];
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "Tile_SPU.h"
|
||||
#include "RotatedPillarTile_SPU.h"
|
||||
|
||||
class Player;
|
||||
|
||||
class TreeTile_SPU : public Tile_SPU
|
||||
class TreeTile_SPU : public RotatedPillarTile_SPU
|
||||
{
|
||||
public:
|
||||
static const int DARK_TRUNK = 1;
|
||||
@@ -19,29 +19,14 @@ public:
|
||||
|
||||
static const int TREE_NAMES_LENGTH = 4;
|
||||
|
||||
TreeTile_SPU(int id) : Tile_SPU(id) {}
|
||||
int getRenderShape() { return Tile_SPU::SHAPE_TREE; }
|
||||
|
||||
TreeTile_SPU(int id) : RotatedPillarTile_SPU(id) {}
|
||||
|
||||
public:
|
||||
Icon_SPU *getTexture(int face, int data)
|
||||
{
|
||||
int dir = data & MASK_FACING;
|
||||
int type = data & MASK_TYPE;
|
||||
|
||||
if (dir == FACING_Y && (face == Facing::UP || face == Facing::DOWN))
|
||||
{
|
||||
return &ms_pTileData->treeTile_icons_top[type];
|
||||
}
|
||||
else if (dir == FACING_X && (face == Facing::EAST || face == Facing::WEST))
|
||||
{
|
||||
return &ms_pTileData->treeTile_icons_top[type];
|
||||
}
|
||||
else if (dir == FACING_Z && (face == Facing::NORTH || face == Facing::SOUTH))
|
||||
{
|
||||
return &ms_pTileData->treeTile_icons_top[type];
|
||||
}
|
||||
|
||||
Icon_SPU *getTypeTexture(int type) {
|
||||
return &ms_pTileData->treeTile_icons_side[type];
|
||||
}
|
||||
};
|
||||
|
||||
Icon_SPU *getTopTexture(int type) {
|
||||
return &ms_pTileData->treeTile_icons_top[type];
|
||||
};
|
||||
};
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
{
|
||||
if (data == TYPE_MOSSY)
|
||||
{
|
||||
return TileRef_SPU(mossStone_Id)->getTexture(face);
|
||||
return TileRef_SPU(mossyCobblestone_Id)->getTexture(face);
|
||||
}
|
||||
return TileRef_SPU(stoneBrick_Id)->getTexture(face);
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
#include "BasePressurePlateTile_SPU.h"
|
||||
|
||||
class WeightedPressurePlateTile_SPU : public BasePressurePlateTile_SPU
|
||||
{
|
||||
public:
|
||||
enum Sensitivity
|
||||
{
|
||||
everything, mobs, players
|
||||
};
|
||||
|
||||
private:
|
||||
Sensitivity sensitivity;
|
||||
|
||||
public:
|
||||
WeightedPressurePlateTile_SPU(int id) : BasePressurePlateTile_SPU(id) {}
|
||||
|
||||
protected:
|
||||
virtual int getSignalForData(int data) {
|
||||
return data;
|
||||
};
|
||||
};
|
||||
@@ -7,7 +7,7 @@ class WoolCarpetTile_SPU : public Tile_SPU
|
||||
public:
|
||||
WoolCarpetTile_SPU(int id) : Tile_SPU(id) {}
|
||||
|
||||
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(cloth_Id)->getTexture(face, data); }
|
||||
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(wool_Id)->getTexture(face, data); }
|
||||
bool isSolidRender(bool isServerLevel = false) { return false; }
|
||||
void updateDefaultShape() { updateShape(0); }
|
||||
void updateShape(ChunkRebuildData *level, int x, int y, int z) { updateShape(level->getData(x, y, z)); }
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include "Tile_SPU.h"
|
||||
|
||||
class WoolTile_SPU : public Tile_SPU
|
||||
{
|
||||
public:
|
||||
WoolTile_SPU(int id) : Tile_SPU(id) {}
|
||||
virtual Icon_SPU *getTexture(int face, int data) { return &ms_pTileData->woolTile_icons[data]; }
|
||||
|
||||
|
||||
};
|
||||
Binary file not shown.
Reference in New Issue
Block a user