diff options
| author | Jonas Ask | 2009-11-12 01:21:36 +0000 |
|---|---|---|
| committer | Jonas Ask | 2009-11-12 01:21:36 +0000 |
| commit | b04bb54ef68a1e10b4126caece7b522d39a4ed05 (patch) | |
| tree | 0c9d91412cc9f9bdc54330dbdbd27474602f0faa /BlockCondition.cpp | |
| parent | 017d462239242224553e4bbb95b6352c7ab639ec (diff) | |
| download | stonesense-b04bb54ef68a1e10b4126caece7b522d39a4ed05.tar.gz stonesense-b04bb54ef68a1e10b4126caece7b522d39a4ed05.tar.bz2 stonesense-b04bb54ef68a1e10b4126caece7b522d39a4ed05.tar.xz | |
Added 7c's Tower Cap. very nice.
ROTATIONS! Finally I think I got them working right (knock on wood). Redid a boat-load of stuff, not gonna list it all.
Diffstat (limited to 'BlockCondition.cpp')
| -rw-r--r-- | BlockCondition.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/BlockCondition.cpp b/BlockCondition.cpp index ebc4f55..e9d4c09 100644 --- a/BlockCondition.cpp +++ b/BlockCondition.cpp @@ -27,10 +27,10 @@ bool BlockCondition::Matches(Block* b){ if(type == Cond_NeighbourWall){
//dirTypes closebyWalls = findWallCloseTo(b->ownerSegment,b);
- bool n = hasWall( b->ownerSegment->getBlock( b->x, b->y - 1, b->z ) );
- bool s = hasWall( b->ownerSegment->getBlock( b->x, b->y + 1, b->z ) );
- bool w = hasWall( b->ownerSegment->getBlock( b->x - 1, b->y, b->z ) );
- bool e = hasWall( b->ownerSegment->getBlock( b->x + 1, b->y, b->z ) );
+ bool n = hasWall( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eUp ) );
+ bool s = hasWall( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eDown ) );
+ bool w = hasWall( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eLeft ) );
+ bool e = hasWall( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eRight ) );
if( value == eSimpleN && n) return true;
if( value == eSimpleS && s) return true;
@@ -45,10 +45,10 @@ bool BlockCondition::Matches(Block* b){ if(type == Cond_NeighbourSameBuilding){
int blocksBuildingID = b->building.info.type;
- bool n = hasBuildingOfID( b->ownerSegment->getBlock( b->x, b->y - 1, b->z ), blocksBuildingID );
- bool s = hasBuildingOfID( b->ownerSegment->getBlock( b->x, b->y + 1, b->z ), blocksBuildingID );
- bool w = hasBuildingOfID( b->ownerSegment->getBlock( b->x - 1, b->y, b->z ), blocksBuildingID);
- bool e = hasBuildingOfID( b->ownerSegment->getBlock( b->x + 1, b->y, b->z ), blocksBuildingID );
+ bool n = hasBuildingOfID( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eUp ), blocksBuildingID );
+ bool s = hasBuildingOfID( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eDown ), blocksBuildingID );
+ bool w = hasBuildingOfID( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eLeft ), blocksBuildingID);
+ bool e = hasBuildingOfID( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eRight ), blocksBuildingID );
if( value == eSimpleN && n) return true;
if( value == eSimpleS && s) return true;
@@ -60,15 +60,15 @@ bool BlockCondition::Matches(Block* b){ return false;
}
- if(type == Cond_NeighbourIdentical){
+ if(type == Cond_NeighbourIdentical){
int blocksBuildingIndex = b->building.index;
int blocksBuildingOcc = b->occ.bits.building;
- bool n = hasBuildingIdentity( b->ownerSegment->getBlock( b->x, b->y - 1, b->z ), blocksBuildingIndex, blocksBuildingOcc );
- bool s = hasBuildingIdentity( b->ownerSegment->getBlock( b->x, b->y + 1, b->z ), blocksBuildingIndex, blocksBuildingOcc );
- bool w = hasBuildingIdentity( b->ownerSegment->getBlock( b->x - 1, b->y, b->z ), blocksBuildingIndex, blocksBuildingOcc );
- bool e = hasBuildingIdentity( b->ownerSegment->getBlock( b->x + 1, b->y, b->z ), blocksBuildingIndex, blocksBuildingOcc );
+ bool n = hasBuildingIdentity( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eUp ), blocksBuildingIndex, blocksBuildingOcc );
+ bool s = hasBuildingIdentity( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eDown ), blocksBuildingIndex, blocksBuildingOcc );
+ bool w = hasBuildingIdentity( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eLeft ), blocksBuildingIndex, blocksBuildingOcc );
+ bool e = hasBuildingIdentity( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eRight ), blocksBuildingIndex, blocksBuildingOcc );
if( value == eSimpleN && n) return true;
if( value == eSimpleS && s) return true;
@@ -80,14 +80,14 @@ bool BlockCondition::Matches(Block* b){ return false;
}
- if(type == Cond_NeighbourSameIndex){
+ if(type == Cond_NeighbourSameIndex){
int blocksBuildingIndex = b->building.index;
- bool n = hasBuildingOfIndex( b->ownerSegment->getBlock( b->x, b->y - 1, b->z ), blocksBuildingIndex );
- bool s = hasBuildingOfIndex( b->ownerSegment->getBlock( b->x, b->y + 1, b->z ), blocksBuildingIndex );
- bool w = hasBuildingOfIndex( b->ownerSegment->getBlock( b->x - 1, b->y, b->z ), blocksBuildingIndex );
- bool e = hasBuildingOfIndex( b->ownerSegment->getBlock( b->x + 1, b->y, b->z ), blocksBuildingIndex );
+ bool n = hasBuildingOfIndex( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eUp ), blocksBuildingIndex );
+ bool s = hasBuildingOfIndex( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eDown ), blocksBuildingIndex );
+ bool w = hasBuildingOfIndex( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eLeft ), blocksBuildingIndex );
+ bool e = hasBuildingOfIndex( b->ownerSegment->getBlockRelativeTo( b->x, b->y, b->z, eRight ), blocksBuildingIndex );
if( value == eSimpleN && n) return true;
if( value == eSimpleS && s) return true;
|
