Added Support for More Metadata Rotations
Added support for rotating the metadata of powered tracks and detector tracks. Also made a minor change to DungeonSchematic to protect its internal state.
This commit is contained in:
parent
62b1629a8a
commit
81bac7b7ff
2 changed files with 51 additions and 3 deletions
|
@ -63,7 +63,7 @@ public class DungeonSchematic extends Schematic {
|
||||||
|
|
||||||
public Point3D getEntranceDoorLocation()
|
public Point3D getEntranceDoorLocation()
|
||||||
{
|
{
|
||||||
return entranceDoorLocation;
|
return entranceDoorLocation.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
private DungeonSchematic()
|
private DungeonSchematic()
|
||||||
|
|
|
@ -59,6 +59,9 @@ public class BlockRotator
|
||||||
hasOrientations[Block.stairsWoodSpruce.blockID] = true;
|
hasOrientations[Block.stairsWoodSpruce.blockID] = true;
|
||||||
hasOrientations[Block.wood.blockID] = true;
|
hasOrientations[Block.wood.blockID] = true;
|
||||||
hasOrientations[Block.blockNetherQuartz.blockID] = true;
|
hasOrientations[Block.blockNetherQuartz.blockID] = true;
|
||||||
|
hasOrientations[Block.railPowered.blockID] = true;
|
||||||
|
hasOrientations[Block.railDetector.blockID] = true;
|
||||||
|
|
||||||
hasOrientations[mod_pocketDim.dimDoor.blockID] = true;
|
hasOrientations[mod_pocketDim.dimDoor.blockID] = true;
|
||||||
hasOrientations[mod_pocketDim.ExitDoor.blockID] = true;
|
hasOrientations[mod_pocketDim.ExitDoor.blockID] = true;
|
||||||
|
|
||||||
|
@ -93,14 +96,59 @@ public class BlockRotator
|
||||||
{
|
{
|
||||||
if (metadata >= 4 && metadata < 12)
|
if (metadata >= 4 && metadata < 12)
|
||||||
{
|
{
|
||||||
return (metadata % 8) + 4;
|
metadata = (metadata % 8) + 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (blockID == Block.blockNetherQuartz.blockID)
|
else if (blockID == Block.blockNetherQuartz.blockID)
|
||||||
{
|
{
|
||||||
if (metadata == 3 || metadata == 4)
|
if (metadata == 3 || metadata == 4)
|
||||||
{
|
{
|
||||||
return (metadata - 2) % 2 + 3;
|
metadata = (metadata - 2) % 2 + 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (blockID == Block.railPowered.blockID || blockID == Block.railDetector.blockID)
|
||||||
|
{
|
||||||
|
switch (metadata)
|
||||||
|
{
|
||||||
|
//Powered Track/Detector Track (off)
|
||||||
|
case 0:
|
||||||
|
metadata = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
metadata = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
metadata = 5;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
metadata = 4;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
metadata = 2;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
metadata = 3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
//Powered Track/Detector Track (on)
|
||||||
|
case 8:
|
||||||
|
metadata = 9;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
metadata = 8;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
metadata = 13;
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
metadata = 12;
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
metadata = 10;
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
metadata = 11;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Block.blocksList[blockID] instanceof BlockStairs)
|
else if (Block.blocksList[blockID] instanceof BlockStairs)
|
||||||
|
|
Loading…
Reference in a new issue