BloodMagic/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BuildingSchematic.java

68 lines
1.5 KiB
Java
Raw Normal View History

2014-06-21 22:47:00 +00:00
package WayofTime.alchemicalWizardry.common.demonVillage;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.world.World;
2014-06-23 00:51:02 +00:00
import net.minecraftforge.common.util.ForgeDirection;
import WayofTime.alchemicalWizardry.common.Int3;
2014-06-21 22:47:00 +00:00
public class BuildingSchematic
{
public String name;
public List<BlockSet> blockList;
public BuildingSchematic()
{
this("");
}
public BuildingSchematic(String name)
{
this.name = name;
blockList = new ArrayList();
}
public void addBlockWithMeta(Block block, int meta, int xOffset, int yOffset, int zOffset)
{
for(BlockSet set : blockList)
{
if(set.isContained(block, meta))
{
set.addPositionToBlock(xOffset, yOffset, zOffset);
return;
}
}
BlockSet set = new BlockSet(block, meta);
set.addPositionToBlock(xOffset, yOffset, zOffset);
blockList.add(set);
}
2014-06-23 00:51:02 +00:00
public void buildAll(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir)
2014-06-21 22:47:00 +00:00
{
2014-06-23 00:51:02 +00:00
for(BlockSet set : blockList)
{
set.buildAll(world, xCoord, yCoord, zCoord, dir);
}
}
public GridSpaceHolder createGSH()
{
GridSpaceHolder holder = new GridSpaceHolder();
for(BlockSet set : blockList)
{
for(Int3 coords : set.getPositions())
{
int gridX = (int)((coords.xCoord+2*Math.signum(coords.xCoord))/5);
int gridZ = (int)((coords.zCoord+2*Math.signum(coords.zCoord))/5);
holder.setGridSpace(gridX, gridZ, new GridSpace());
}
}
2014-06-21 22:47:00 +00:00
2014-06-23 00:51:02 +00:00
return holder;
2014-06-21 22:47:00 +00:00
}
}