Adding gitignore
This commit is contained in:
parent
a2b006105e
commit
ecf0a7912e
1084 changed files with 90178 additions and 3 deletions
|
@ -0,0 +1,195 @@
|
|||
package WayofTime.alchemicalWizardry.common.demonVillage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockStairs;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import WayofTime.alchemicalWizardry.common.Int3;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
|
||||
|
||||
public class BlockSet
|
||||
{
|
||||
protected String blockid;
|
||||
protected int[] metadata;
|
||||
protected List<Int3> positions;
|
||||
|
||||
public BlockSet()
|
||||
{
|
||||
this(Blocks.stone);
|
||||
}
|
||||
|
||||
public BlockSet(String blockid)
|
||||
{
|
||||
this.blockid = blockid;
|
||||
this.metadata = new int[4];
|
||||
positions = new ArrayList();
|
||||
}
|
||||
|
||||
public BlockSet(Block block)
|
||||
{
|
||||
this(BlockSet.getPairedIdForBlock(block));
|
||||
}
|
||||
|
||||
public BlockSet(Block block, int meta)
|
||||
{
|
||||
this(block);
|
||||
for(int i=0; i<metadata.length; i++)
|
||||
{
|
||||
metadata[i] = meta;
|
||||
}
|
||||
if(block instanceof BlockStairs)
|
||||
{
|
||||
int[] northSet = new int[]{2,3,0,1};
|
||||
int[] eastSet = new int[]{1,0,2,3};
|
||||
int[] southSet = new int[]{3,2,1,0};
|
||||
int[] westSet = new int[]{0,1,3,2};
|
||||
int[] northUpSet = new int[]{6,7,4,5};
|
||||
int[] eastUpSet = new int[]{5,4,6,7};
|
||||
int[] southUpSet = new int[]{7,6,5,4};
|
||||
int[] westUpSet = new int[]{4,5,7,6};
|
||||
|
||||
switch(meta)
|
||||
{
|
||||
case 0:
|
||||
metadata = westSet;
|
||||
break;
|
||||
case 1:
|
||||
metadata = eastSet;
|
||||
break;
|
||||
case 2:
|
||||
metadata = northSet;
|
||||
break;
|
||||
case 3:
|
||||
metadata = southSet;
|
||||
break;
|
||||
case 4:
|
||||
metadata = westUpSet;
|
||||
break;
|
||||
case 5:
|
||||
metadata = eastUpSet;
|
||||
break;
|
||||
case 6:
|
||||
metadata = northUpSet;
|
||||
break;
|
||||
case 7:
|
||||
metadata = southUpSet;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<Int3> getPositions()
|
||||
{
|
||||
return positions;
|
||||
}
|
||||
|
||||
public void addPositionToBlock(int xOffset, int yOffset, int zOffset)
|
||||
{
|
||||
positions.add(new Int3(xOffset, yOffset, zOffset));
|
||||
}
|
||||
|
||||
public Block getBlock()
|
||||
{
|
||||
return this.getBlockForString(blockid);
|
||||
}
|
||||
|
||||
public static String getPairedIdForBlock(Block block)
|
||||
{
|
||||
UniqueIdentifier un = GameRegistry.findUniqueIdentifierFor(block);
|
||||
String name = "";
|
||||
|
||||
if(un != null)
|
||||
{
|
||||
name = un.modId + ":" + un.name;
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
public static Block getBlockForString(String str)
|
||||
{
|
||||
String[] parts = str.split(":");
|
||||
String modId = parts[0];
|
||||
String name = parts[1];
|
||||
return GameRegistry.findBlock(modId, name);
|
||||
}
|
||||
|
||||
public int getMetaForDirection(ForgeDirection dir)
|
||||
{
|
||||
if(metadata.length < 4)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch(dir)
|
||||
{
|
||||
case NORTH:
|
||||
return metadata[0];
|
||||
case SOUTH:
|
||||
return metadata[1];
|
||||
case WEST:
|
||||
return metadata[2];
|
||||
case EAST:
|
||||
return metadata[3];
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void buildAtIndex(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir, int index)
|
||||
{
|
||||
Block block = this.getBlock();
|
||||
if(index >= positions.size() || block == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Int3 position = positions.get(index);
|
||||
int xOff = position.xCoord;
|
||||
int yOff = position.yCoord;
|
||||
int zOff = position.zCoord;
|
||||
int meta = this.getMetaForDirection(dir);
|
||||
|
||||
switch(dir)
|
||||
{
|
||||
case NORTH:
|
||||
break;
|
||||
case SOUTH:
|
||||
xOff *= -1;
|
||||
zOff *= -1;
|
||||
break;
|
||||
case WEST:
|
||||
int temp = zOff;
|
||||
zOff = xOff * -1;
|
||||
xOff = temp;
|
||||
break;
|
||||
case EAST:
|
||||
int temp2 = zOff * -1;
|
||||
zOff = xOff;
|
||||
xOff = temp2;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
world.setBlock(xCoord + xOff, yCoord + yOff, zCoord + zOff, block, meta, 3);
|
||||
}
|
||||
|
||||
public void buildAll(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir)
|
||||
{
|
||||
for(int i=0; i<positions.size(); i++)
|
||||
{
|
||||
this.buildAtIndex(world, xCoord, yCoord, zCoord, dir, i);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isContained(Block block, int defaultMeta)
|
||||
{
|
||||
Block thisBlock = this.getBlock();
|
||||
return thisBlock == null ? false : thisBlock.equals(block) && this.metadata[0] == defaultMeta;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue