use of am2.api.blocks.MultiblockStructureDefinition.StructureGroup in project ArsMagica2 by Mithion.
the class TileEntityCelestialPrism method checkNearbyBlockState.
@Override
protected void checkNearbyBlockState() {
ArrayList<StructureGroup> groups = structure.getMatchedGroups(7, worldObj, xCoord, yCoord, zCoord);
float capsLevel = 1;
boolean pillarsFound = false;
boolean wizChalkFound = false;
for (StructureGroup group : groups) {
if (group == pillars)
pillarsFound = true;
else if (group == wizardChalkCircle)
wizChalkFound = true;
for (StructureGroup cap : caps.keySet()) {
if (group == cap) {
capsLevel = caps.get(cap);
if (group == moonstone)
onlyChargeAtNight = true;
else
onlyChargeAtNight = false;
break;
}
}
}
powerMultiplier = 1;
if (wizChalkFound)
powerMultiplier = 1.25f;
if (pillarsFound)
powerMultiplier *= capsLevel;
}
use of am2.api.blocks.MultiblockStructureDefinition.StructureGroup in project ArsMagica2 by Mithion.
the class TileEntityCraftingAltar method setupMultiblock.
private void setupMultiblock() {
primary = new MultiblockStructureDefinition("craftingAltar_alt");
Block[] augMatls = new Block[] { Blocks.glass, Blocks.coal_block, Blocks.redstone_block, Blocks.iron_block, Blocks.lapis_block, Blocks.gold_block, Blocks.diamond_block, Blocks.emerald_block, BlocksCommonProxy.AMOres, BlocksCommonProxy.AMOres };
int[] augMetas = new int[] { //glass
0, //coal
0, //redstone
0, //iron
0, //lapis
0, //gold
0, //diamond
0, //emerald
0, BlocksCommonProxy.AMOres.META_MOONSTONE_BLOCK, BlocksCommonProxy.AMOres.META_SUNSTONE_BLOCK };
lecternGroup_primary = new StructureGroup[4];
for (int i = 0; i < lecternGroup_primary.length; ++i) {
lecternGroup_primary[i] = primary.createGroup("lectern" + i, lectern_mutex);
}
int count = 0;
for (int i = -2; i <= 2; i += 4) {
primary.addAllowedBlock(lecternGroup_primary[count], i, -3, i, BlocksCommonProxy.blockLectern);
primary.addAllowedBlock(lecternGroup_primary[count], i, -2, -i, Blocks.lever, (count < 2) ? 2 : 1);
primary.addAllowedBlock(lecternGroup_primary[count], i, -2, -i, Blocks.lever, (count < 2) ? 10 : 9);
count++;
primary.addAllowedBlock(lecternGroup_primary[count], i, -3, -i, BlocksCommonProxy.blockLectern);
primary.addAllowedBlock(lecternGroup_primary[count], i, -2, i, Blocks.lever, (count < 2) ? 2 : 1);
primary.addAllowedBlock(lecternGroup_primary[count], i, -2, i, Blocks.lever, (count < 2) ? 10 : 9);
count++;
}
augMatl_primary = new StructureGroup[augMatls.length];
for (int i = 0; i < augMatls.length; ++i) augMatl_primary[i] = primary.createGroup("augmatl" + i, augmatl_mutex);
//row 0
for (int i = 0; i < augMatls.length; ++i) primary.addAllowedBlock(augMatl_primary[i], -1, 0, -2, augMatls[i], augMetas[i]);
primary.addAllowedBlock(-1, 0, -1, Blocks.stone_brick_stairs, 0);
primary.addAllowedBlock(-1, 0, 0, Blocks.stone_brick_stairs, 0);
primary.addAllowedBlock(-1, 0, 1, Blocks.stone_brick_stairs, 0);
for (int i = 0; i < augMatls.length; ++i) primary.addAllowedBlock(augMatl_primary[i], -1, 0, 2, augMatls[i], augMetas[i]);
primary.addAllowedBlock(0, 0, -2, Blocks.stone_brick_stairs, 2);
primary.addAllowedBlock(0, 0, -1, Blocks.stonebrick, 0);
primary.addAllowedBlock(0, 0, 0, BlocksCommonProxy.craftingAltar);
primary.addAllowedBlock(0, 0, 1, Blocks.stonebrick, 0);
primary.addAllowedBlock(0, 0, 2, Blocks.stone_brick_stairs, 3);
for (int i = 0; i < augMatls.length; ++i) primary.addAllowedBlock(augMatl_primary[i], 1, 0, -2, augMatls[i], augMetas[i]);
primary.addAllowedBlock(1, 0, -1, Blocks.stone_brick_stairs, 1);
primary.addAllowedBlock(1, 0, 0, Blocks.stone_brick_stairs, 1);
primary.addAllowedBlock(1, 0, 1, Blocks.stone_brick_stairs, 1);
for (int i = 0; i < augMatls.length; ++i) primary.addAllowedBlock(augMatl_primary[i], 1, 0, 2, augMatls[i], augMetas[i]);
//row 1
primary.addAllowedBlock(1, -1, -2, Blocks.stonebrick, 0);
primary.addAllowedBlock(1, -1, -1, Blocks.stone_brick_stairs, 7);
primary.addAllowedBlock(1, -1, 1, Blocks.stone_brick_stairs, 6);
primary.addAllowedBlock(1, -1, 2, Blocks.stonebrick, 0);
primary.addAllowedBlock(0, -1, -2, BlocksCommonProxy.magicWall, 0);
primary.addAllowedBlock(0, -1, 2, BlocksCommonProxy.magicWall, 0);
primary.addAllowedBlock(-1, -1, -2, Blocks.stonebrick, 0);
primary.addAllowedBlock(-1, -1, -1, Blocks.stone_brick_stairs, 7);
primary.addAllowedBlock(-1, -1, 1, Blocks.stone_brick_stairs, 6);
primary.addAllowedBlock(-1, -1, 2, Blocks.stonebrick, 0);
//row 2
primary.addAllowedBlock(1, -2, -2, Blocks.stonebrick, 0);
primary.addAllowedBlock(1, -2, 2, Blocks.stonebrick, 0);
primary.addAllowedBlock(0, -2, -2, BlocksCommonProxy.magicWall, 0);
primary.addAllowedBlock(0, -2, 2, BlocksCommonProxy.magicWall, 0);
primary.addAllowedBlock(-1, -2, -2, Blocks.stonebrick, 0);
primary.addAllowedBlock(-1, -2, 2, Blocks.stonebrick, 0);
//row 3
primary.addAllowedBlock(1, -3, -2, Blocks.stonebrick, 0);
primary.addAllowedBlock(1, -3, 2, Blocks.stonebrick, 0);
primary.addAllowedBlock(0, -3, -2, BlocksCommonProxy.magicWall, 0);
primary.addAllowedBlock(0, -3, 2, BlocksCommonProxy.magicWall, 0);
primary.addAllowedBlock(-1, -3, -2, Blocks.stonebrick, 0);
primary.addAllowedBlock(-1, -3, 2, Blocks.stonebrick, 0);
//row 4
for (int i = -2; i <= 2; ++i) {
for (int j = -2; j <= 2; ++j) {
if (i == 0 && j == 0) {
for (int n = 0; n < augMatls.length; ++n) primary.addAllowedBlock(augMatl_primary[n], i, -4, j, augMatls[n], augMetas[n]);
} else {
primary.addAllowedBlock(i, -4, j, Blocks.stonebrick, 0);
}
}
}
wood_primary = primary.copyGroup("main", "main_wood");
wood_primary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.planks);
wood_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.oak_stairs);
quartz_primary = primary.copyGroup("main", "main_quartz");
quartz_primary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.quartz_block);
quartz_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.quartz_stairs);
netherbrick_primary = primary.copyGroup("main", "main_netherbrick");
netherbrick_primary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.nether_brick);
netherbrick_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.nether_brick_stairs);
cobble_primary = primary.copyGroup("main", "main_cobble");
cobble_primary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.cobblestone);
cobble_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.stone_stairs);
brick_primary = primary.copyGroup("main", "main_brick");
brick_primary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.brick_block);
brick_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.brick_stairs);
sandstone_primary = primary.copyGroup("main", "main_sandstone");
sandstone_primary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.sandstone);
sandstone_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.sandstone_stairs);
witchwood_primary = primary.copyGroup("main", "main_witchwood");
witchwood_primary.replaceAllBlocksOfType(Blocks.stonebrick, BlocksCommonProxy.witchwoodPlanks);
witchwood_primary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, BlocksCommonProxy.witchwoodStairs);
//Secondary
secondary = new MultiblockStructureDefinition("craftingAltar");
lecternGroup_secondary = new StructureGroup[4];
for (int i = 0; i < lecternGroup_secondary.length; ++i) {
lecternGroup_secondary[i] = secondary.createGroup("lectern" + i, lectern_mutex);
}
count = 0;
for (int i = -2; i <= 2; i += 4) {
secondary.addAllowedBlock(lecternGroup_secondary[count], i, -3, i, BlocksCommonProxy.blockLectern);
secondary.addAllowedBlock(lecternGroup_secondary[count], -i, -2, i, Blocks.lever, (count < 2) ? 4 : 3);
secondary.addAllowedBlock(lecternGroup_secondary[count], -i, -2, i, Blocks.lever, (count < 2) ? 12 : 11);
count++;
secondary.addAllowedBlock(lecternGroup_secondary[count], -i, -3, i, BlocksCommonProxy.blockLectern);
secondary.addAllowedBlock(lecternGroup_secondary[count], i, -2, i, Blocks.lever, (count < 2) ? 4 : 3);
secondary.addAllowedBlock(lecternGroup_secondary[count], i, -2, i, Blocks.lever, (count < 2) ? 12 : 11);
count++;
}
augMatl_secondary = new StructureGroup[augMatls.length];
for (int i = 0; i < augMatls.length; ++i) augMatl_secondary[i] = secondary.createGroup("augmatl" + i, augmatl_mutex);
//row 0
for (int i = 0; i < augMatls.length; ++i) secondary.addAllowedBlock(augMatl_secondary[i], -2, 0, -1, augMatls[i], augMetas[i]);
secondary.addAllowedBlock(-1, 0, -1, Blocks.stone_brick_stairs, 2);
secondary.addAllowedBlock(0, 0, -1, Blocks.stone_brick_stairs, 2);
secondary.addAllowedBlock(1, 0, -1, Blocks.stone_brick_stairs, 2);
for (int i = 0; i < augMatls.length; ++i) secondary.addAllowedBlock(augMatl_secondary[i], 2, 0, -1, augMatls[i], augMetas[i]);
secondary.addAllowedBlock(-2, 0, 0, Blocks.stone_brick_stairs, 0);
secondary.addAllowedBlock(-1, 0, 0, Blocks.stonebrick, 0);
secondary.addAllowedBlock(0, 0, 0, BlocksCommonProxy.craftingAltar);
secondary.addAllowedBlock(1, 0, 0, Blocks.stonebrick, 0);
secondary.addAllowedBlock(2, 0, 0, Blocks.stone_brick_stairs, 1);
for (int i = 0; i < augMatls.length; ++i) secondary.addAllowedBlock(augMatl_secondary[i], -2, 0, 1, augMatls[i], augMetas[i]);
secondary.addAllowedBlock(-1, 0, 1, Blocks.stone_brick_stairs, 3);
secondary.addAllowedBlock(0, 0, 1, Blocks.stone_brick_stairs, 3);
secondary.addAllowedBlock(1, 0, 1, Blocks.stone_brick_stairs, 3);
for (int i = 0; i < augMatls.length; ++i) secondary.addAllowedBlock(augMatl_secondary[i], 2, 0, 1, augMatls[i], augMetas[i]);
//row 1
secondary.addAllowedBlock(-2, -1, 1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(-1, -1, 1, Blocks.stone_brick_stairs, 5);
secondary.addAllowedBlock(1, -1, 1, Blocks.stone_brick_stairs, 4);
secondary.addAllowedBlock(2, -1, 1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(-2, -1, 0, BlocksCommonProxy.magicWall, 0);
secondary.addAllowedBlock(2, -1, 0, BlocksCommonProxy.magicWall, 0);
secondary.addAllowedBlock(-2, -1, -1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(-1, -1, -1, Blocks.stone_brick_stairs, 5);
secondary.addAllowedBlock(1, -1, -1, Blocks.stone_brick_stairs, 4);
secondary.addAllowedBlock(2, -1, -1, Blocks.stonebrick, 0);
//row 2
secondary.addAllowedBlock(-2, -2, 1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(2, -2, 1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(-2, -2, 0, BlocksCommonProxy.magicWall, 0);
secondary.addAllowedBlock(2, -2, 0, BlocksCommonProxy.magicWall, 0);
secondary.addAllowedBlock(-2, -2, -1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(2, -2, -1, Blocks.stonebrick, 0);
//row 3
secondary.addAllowedBlock(-2, -3, 1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(2, -3, 1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(-2, -3, 0, BlocksCommonProxy.magicWall, 0);
secondary.addAllowedBlock(2, -3, 0, BlocksCommonProxy.magicWall, 0);
secondary.addAllowedBlock(-2, -3, -1, Blocks.stonebrick, 0);
secondary.addAllowedBlock(2, -3, -1, Blocks.stonebrick, 0);
//row 4
for (int i = -2; i <= 2; ++i) {
for (int j = -2; j <= 2; ++j) {
if (i == 0 && j == 0) {
for (int n = 0; n < augMatls.length; ++n) secondary.addAllowedBlock(augMatl_secondary[n], i, -4, j, augMatls[n], augMetas[n]);
} else {
secondary.addAllowedBlock(i, -4, j, Blocks.stonebrick, 0);
}
}
}
wood_secondary = secondary.copyGroup("main", "main_wood");
wood_secondary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.planks);
wood_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.oak_stairs);
quartz_secondary = secondary.copyGroup("main", "main_quartz");
quartz_secondary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.quartz_block);
quartz_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.quartz_stairs);
netherbrick_secondary = secondary.copyGroup("main", "main_netherbrick");
netherbrick_secondary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.nether_brick);
netherbrick_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.nether_brick_stairs);
cobble_secondary = secondary.copyGroup("main", "main_cobble");
cobble_secondary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.cobblestone);
cobble_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.stone_stairs);
brick_secondary = secondary.copyGroup("main", "main_brick");
brick_secondary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.brick_block);
brick_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.brick_stairs);
sandstone_secondary = secondary.copyGroup("main", "main_sandstone");
sandstone_secondary.replaceAllBlocksOfType(Blocks.stonebrick, Blocks.sandstone);
sandstone_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, Blocks.sandstone_stairs);
witchwood_secondary = secondary.copyGroup("main", "main_witchwood");
witchwood_secondary.replaceAllBlocksOfType(Blocks.stonebrick, BlocksCommonProxy.witchwoodPlanks);
witchwood_secondary.replaceAllBlocksOfType(Blocks.stone_brick_stairs, BlocksCommonProxy.witchwoodStairs);
}
use of am2.api.blocks.MultiblockStructureDefinition.StructureGroup in project ArsMagica2 by Mithion.
the class TileEntityBlackAurem method checkNearbyBlockState.
@Override
protected void checkNearbyBlockState() {
ArrayList<StructureGroup> groups = structure.getMatchedGroups(7, worldObj, xCoord, yCoord, zCoord);
float capsLevel = 1;
boolean pillarsFound = false;
boolean wizChalkFound = false;
for (StructureGroup group : groups) {
if (group == pillars)
pillarsFound = true;
else if (group == wizardChalkCircle)
wizChalkFound = true;
for (StructureGroup cap : caps.keySet()) {
if (group == cap) {
capsLevel = caps.get(cap);
break;
}
}
}
powerMultiplier = 1;
if (wizChalkFound)
powerMultiplier = 1.25f;
if (pillarsFound)
powerMultiplier *= capsLevel;
}
use of am2.api.blocks.MultiblockStructureDefinition.StructureGroup in project ArsMagica2 by Mithion.
the class RitualShapeHelper method initCorruption.
private void initCorruption() {
corruption = new MultiblockStructureDefinition("corruption");
StructureGroup NS = corruption.createGroup("NS", 2);
StructureGroup WE = corruption.createGroup("WE", 2);
//North - South
corruption.addAllowedBlock(NS, 0, 0, 1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 0, 0, -1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 1, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 1, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -1, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -1, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 2, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 2, 0, 1, BlocksCommonProxy.candle);
corruption.addAllowedBlock(NS, 2, 0, 0, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 2, 0, -1, BlocksCommonProxy.candle);
corruption.addAllowedBlock(NS, 2, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -2, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -2, 0, 1, BlocksCommonProxy.candle);
corruption.addAllowedBlock(NS, -2, 0, 0, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -2, 0, -1, BlocksCommonProxy.candle);
corruption.addAllowedBlock(NS, -2, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 3, 0, 1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, 3, 0, -1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -3, 0, 1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(NS, -3, 0, -1, BlocksCommonProxy.wizardChalk);
//West - East
corruption.addAllowedBlock(WE, 1, 0, 0, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -1, 0, 0, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 2, 0, 1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -2, 0, 1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 2, 0, -1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -2, 0, -1, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 2, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 1, 0, 2, BlocksCommonProxy.candle);
corruption.addAllowedBlock(WE, 0, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -1, 0, 2, BlocksCommonProxy.candle);
corruption.addAllowedBlock(WE, -2, 0, 2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 2, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 1, 0, -2, BlocksCommonProxy.candle);
corruption.addAllowedBlock(WE, 0, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -1, 0, -2, BlocksCommonProxy.candle);
corruption.addAllowedBlock(WE, -2, 0, -2, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 1, 0, 3, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -1, 0, 3, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, 1, 0, -3, BlocksCommonProxy.wizardChalk);
corruption.addAllowedBlock(WE, -1, 0, -3, BlocksCommonProxy.wizardChalk);
}
use of am2.api.blocks.MultiblockStructureDefinition.StructureGroup in project ArsMagica2 by Mithion.
the class TileEntityObelisk method checkNearbyBlockState.
protected void checkNearbyBlockState() {
ArrayList<StructureGroup> groups = structure.getMatchedGroups(7, worldObj, xCoord, yCoord, zCoord);
float capsLevel = 1;
boolean pillarsFound = false;
boolean wizChalkFound = false;
for (StructureGroup group : groups) {
if (group == pillars)
pillarsFound = true;
else if (group == wizardChalkCircle)
wizChalkFound = true;
for (StructureGroup cap : caps.keySet()) {
if (group == cap) {
capsLevel = caps.get(cap);
break;
}
}
}
powerMultiplier = 1;
if (wizChalkFound)
powerMultiplier = 1.25f;
if (pillarsFound)
powerMultiplier *= capsLevel;
}
Aggregations