Search in sources :

Example 1 with MultiblockStructureDefinition

use of am2.api.blocks.MultiblockStructureDefinition 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);
}
Also used : Block(net.minecraft.block.Block) MultiblockStructureDefinition(am2.api.blocks.MultiblockStructureDefinition)

Example 2 with MultiblockStructureDefinition

use of am2.api.blocks.MultiblockStructureDefinition in project ArsMagica2 by Mithion.

the class RitualShapeHelper method initRingedCross.

private void initRingedCross() {
    ringedCross = new MultiblockStructureDefinition("ringedCross");
    //center
    //ringedCross.addAllowedBlock(0, 0, 0, BlocksCommonProxy.wizardChalk);
    //cross
    ringedCross.addAllowedBlock(1, 0, 0, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(-1, 0, 0, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(0, 0, 1, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(0, 0, -1, BlocksCommonProxy.wizardChalk);
    //rings
    ringedCross.addAllowedBlock(1, 0, 2, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(0, 0, 2, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(-1, 0, 2, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(1, 0, -2, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(0, 0, -2, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(-1, 0, -2, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(2, 0, 1, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(2, 0, 0, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(2, 0, -1, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(-2, 0, 1, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(-2, 0, 0, BlocksCommonProxy.wizardChalk);
    ringedCross.addAllowedBlock(-2, 0, -1, BlocksCommonProxy.wizardChalk);
}
Also used : MultiblockStructureDefinition(am2.api.blocks.MultiblockStructureDefinition)

Example 3 with MultiblockStructureDefinition

use of am2.api.blocks.MultiblockStructureDefinition 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);
}
Also used : StructureGroup(am2.api.blocks.MultiblockStructureDefinition.StructureGroup) MultiblockStructureDefinition(am2.api.blocks.MultiblockStructureDefinition)

Example 4 with MultiblockStructureDefinition

use of am2.api.blocks.MultiblockStructureDefinition in project ArsMagica2 by Mithion.

the class RitualShapeHelper method initPurification.

private void initPurification() {
    purification = new MultiblockStructureDefinition("purification");
    purification.addAllowedBlock(-1, 0, 1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-1, 0, -1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(1, 0, 1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(1, 0, -1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-2, 0, 1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-2, 0, -1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(2, 0, 1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(2, 0, -1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(1, 0, -2, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-1, 0, -2, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(1, 0, 2, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-1, 0, 2, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-3, 0, 1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-3, 0, 0, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-3, 0, -1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(3, 0, 1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(3, 0, 0, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(3, 0, -1, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(1, 0, -3, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(0, 0, -3, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-1, 0, -3, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(1, 0, 3, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(0, 0, 3, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-1, 0, 3, BlocksCommonProxy.wizardChalk);
    purification.addAllowedBlock(-2, 0, 2, BlocksCommonProxy.candle);
    purification.addAllowedBlock(-2, 0, -2, BlocksCommonProxy.candle);
    purification.addAllowedBlock(2, 0, 2, BlocksCommonProxy.candle);
    purification.addAllowedBlock(2, 0, -2, BlocksCommonProxy.candle);
}
Also used : MultiblockStructureDefinition(am2.api.blocks.MultiblockStructureDefinition)

Example 5 with MultiblockStructureDefinition

use of am2.api.blocks.MultiblockStructureDefinition in project ArsMagica2 by Mithion.

the class CompendiumEntryRitual method getCompendiumGui.

@Override
@SideOnly(Side.CLIENT)
protected GuiArcaneCompendium getCompendiumGui(String searchID, int meta) {
    if (this.ritualShape != null) {
        try {
            Field f = RitualShapeHelper.class.getField(ritualShape);
            MultiblockStructureDefinition def = (MultiblockStructureDefinition) f.get(RitualShapeHelper.instance);
            ISkillTreeEntry entry = SkillManager.instance.getSkill(ritualController);
            if (entry instanceof IRitualInteraction) {
                IRitualInteraction controller = (IRitualInteraction) entry;
                return new GuiArcaneCompendium(searchID, def, controller);
            }
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }
    return new GuiArcaneCompendium(searchID);
}
Also used : Field(java.lang.reflect.Field) GuiArcaneCompendium(am2.guis.GuiArcaneCompendium) ISkillTreeEntry(am2.api.spell.component.interfaces.ISkillTreeEntry) IRitualInteraction(am2.api.spell.component.interfaces.IRitualInteraction) MultiblockStructureDefinition(am2.api.blocks.MultiblockStructureDefinition) SideOnly(cpw.mods.fml.relauncher.SideOnly)

Aggregations

MultiblockStructureDefinition (am2.api.blocks.MultiblockStructureDefinition)6 StructureGroup (am2.api.blocks.MultiblockStructureDefinition.StructureGroup)2 IRitualInteraction (am2.api.spell.component.interfaces.IRitualInteraction)1 ISkillTreeEntry (am2.api.spell.component.interfaces.ISkillTreeEntry)1 GuiArcaneCompendium (am2.guis.GuiArcaneCompendium)1 SideOnly (cpw.mods.fml.relauncher.SideOnly)1 Field (java.lang.reflect.Field)1 Block (net.minecraft.block.Block)1