public static void initStateMaps(MazeTower tower) { if (rawMaps != null && rawMaps.containsKey(tower.wallBlock_external)) { final EnumDyeColor[] dyeColors = tower.getDyeColors(); final IBlockState air2 = Blocks.AIR.getDefaultState(); final IBlockState wall = tower.wallBlock_external; final IBlockState wall2 = tower.wallBlock; final IBlockState c = tower.floorBlock; final IBlockState window = Blocks.GLASS_PANE.getDefaultState(); final IBlockState[] carpet = new IBlockState[] { tower.getColourBlockState(Blocks.CARPET, dyeColors[0]), tower.getColourBlockState(Blocks.CARPET, dyeColors[1]), tower.getColourBlockState(Blocks.CARPET, dyeColors[2]) }; final IBlockState[] g = new IBlockState[] { tower.getColourBlockState(Blocks.STAINED_GLASS, dyeColors[0]), tower.getColourBlockState(Blocks.STAINED_GLASS, dyeColors[1]), tower.getColourBlockState(Blocks.STAINED_GLASS, dyeColors[2]) }; final IBlockState lamp = Blocks.REDSTONE_LAMP.getDefaultState(); final IBlockState wire = Blocks.REDSTONE_WIRE.getDefaultState(); for (EnumFacing dir : dirs) { maps.get(tower.wallBlock_external)[EnumStateMap.MINI_TOWER_CEILING_1.ordinal()].put( dir, getCeiling(air2, wall, wall2, c, g[0], lamp)); maps.get(tower.wallBlock_external)[EnumStateMap.MINI_TOWER_CEILING_2.ordinal()].put( dir, getCeiling(air2, wall, wall2, c, g[1], lamp)); maps.get(tower.wallBlock_external)[EnumStateMap.MINI_TOWER_CEILING_3.ordinal()].put( dir, getCeiling(air2, wall, wall2, c, g[2], lamp)); } } else { final IBlockState[][][][] towerRawMaps; final Map<EnumFacing, IBlockState[][][]>[] towerMaps; if (rawMaps == null) { rawMaps = new HashMap<IBlockState, IBlockState[][][][]>(); maps = new HashMap<IBlockState, Map<EnumFacing, IBlockState[][][]>[]>(); } towerRawMaps = getRawMapsForTower(tower); rawMaps.put(tower.wallBlock_external, towerRawMaps); towerMaps = new Map[EnumStateMap.values().length]; for (EnumStateMap map : EnumStateMap.values()) { final int mapIndex = map.ordinal(); towerMaps[mapIndex] = new HashMap<EnumFacing, IBlockState[][][]>(); for (EnumFacing dir : dirs) { final EnumFacing checkDir = EnumFacing.NORTH; if (dir == EnumFacing.SOUTH) towerMaps[mapIndex].put(dir, towerRawMaps[mapIndex]); else { if (mapIndex != 1) towerMaps[mapIndex].put( dir, MTHelper.getRotatedStateMap(towerRawMaps[mapIndex], checkDir, dir, true)); else towerMaps[mapIndex].put( dir, MTHelper.getRotatedStateMap( MTHelper.getStairRotatedStairsMap( towerRawMaps[mapIndex], EnumFacing.SOUTH, dir, tower.stairsBlock, torch), checkDir, dir, true)); } } } maps.put(tower.wallBlock_external, towerMaps); } }
public static IBlockState[][][][] getRawMapsForTower(MazeTower tower) { final EnumDyeColor[] dyeColors = tower.getDyeColors(); final IBlockState air = tower.air, air2 = Blocks.AIR.getDefaultState(), wall = tower.wallBlock_external, wall2 = tower.wallBlock, floor = tower.floorBlock, c = tower.ceilBlock, fence = tower.fenceBlock, floor2 = !(wall.getBlock() instanceof BlockPrismarine) ? floor : Blocks.SEA_LANTERN.getDefaultState(); final IBlockState[] carpet = new IBlockState[] { tower.getColourBlockState(Blocks.CARPET, dyeColors[0]), tower.getColourBlockState(Blocks.CARPET, dyeColors[1]), tower.getColourBlockState(Blocks.CARPET, dyeColors[2]) }, g = new IBlockState[] { tower.getColourBlockState(Blocks.STAINED_GLASS, dyeColors[0]), tower.getColourBlockState(Blocks.STAINED_GLASS, dyeColors[1]), tower.getColourBlockState(Blocks.STAINED_GLASS, dyeColors[2]) }, window = new IBlockState[] { tower.getColourBlockState(Blocks.STAINED_GLASS_PANE, dyeColors[0]), tower.getColourBlockState(Blocks.STAINED_GLASS_PANE, dyeColors[1]), tower.getColourBlockState(Blocks.STAINED_GLASS_PANE, dyeColors[2]) }; final IBlockState lever = Blocks.LEVER.getStateFromMeta(7), lamp = Blocks.REDSTONE_LAMP.getDefaultState(), wire = Blocks.REDSTONE_WIRE.getDefaultState(); final IBlockState[] stairs = tower.stairsBlock; final IBlockState[][][][] rawMaps = new IBlockState[][][][] { { { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, floor, floor, floor, floor, floor, wall, null}, {wall, wall2, floor, floor, floor, floor, floor, wall2, wall}, {wall, wall2, floor, floor, floor2, floor, floor, wall2, wall}, {wall, wall2, floor, floor, floor, floor, floor, wall2, wall}, {null, wall, floor, floor, floor, floor, floor, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} } }, { { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, wall, air, air, air, air, wall, null}, {wall, wall2, wall, air, air, air, air, wall2, wall}, {wall, wall2, wall, air, air, air, air, wall2, wall}, {wall, wall2, stairs[2], air, air, air, air, wall2, wall}, {null, wall, air, air, air, air, air, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, wall, air, air, air, air, wall, null}, {wall, wall2, wall, air, air, air, air, wall2, wall}, {wall, wall2, stairs[2], air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {null, wall, torch[3], air, air, air, air, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, floor, floor, floor, floor, floor, wall, null}, {wall, wall2, stairs[2], floor, floor, floor, floor, wall2, wall}, {wall, wall2, air, floor, floor2, floor, floor, wall2, wall}, {wall, wall2, air, floor, floor, floor, floor, wall2, wall}, {null, wall, air, floor, floor, floor, floor, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, air, stairs[3], wall, wall, wall, wall, null}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {null, wall, air, air, air, air, air, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, torch[0], air, stairs[3], wall, wall, wall, null}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {null, wall, air, air, air, air, air, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, air, air, air, stairs[3], floor, wall, null}, {wall, wall2, floor, floor, floor, floor, floor, wall2, wall}, {wall, wall2, floor, floor, floor2, floor, floor, wall2, wall}, {wall, wall2, floor, floor, floor, floor, floor, wall2, wall}, {null, wall, floor, floor, floor, floor, floor, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, air, air, air, air, air, wall, null}, {wall, wall2, air, air, air, air, stairs[0], wall2, wall}, {wall, wall2, air, air, air, air, wall, wall2, wall}, {wall, wall2, air, air, air, air, wall, wall2, wall}, {null, wall, air, air, air, air, wall, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, air, air, air, air, torch[1], wall, null}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, stairs[0], wall2, wall}, {wall, wall2, air, air, air, air, wall, wall2, wall}, {null, wall, air, air, air, air, wall, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, floor, floor, floor, floor, air, wall, null}, {wall, wall2, floor, floor, floor, floor, air, wall2, wall}, {wall, wall2, floor, floor, floor2, floor, air, wall2, wall}, {wall, wall2, floor, floor, floor, floor, stairs[0], wall2, wall}, {null, wall, floor, floor, floor, floor, floor, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, air, air, air, air, air, wall, null}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {null, wall, wall, wall, wall, stairs[1], air, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, air, air, air, air, air, wall, null}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {wall, wall2, air, air, air, air, air, wall2, wall}, {null, wall, wall, wall, stairs[1], air, torch[2], wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} }, { {null, null, null, wall, wall, wall, null, null, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, wall, floor, floor, floor, floor, floor, wall, null}, {wall, wall2, floor, floor, floor, floor, floor, wall2, wall}, {wall, wall2, floor, floor, floor2, floor, floor, wall2, wall}, {wall, wall2, floor, floor, floor, floor, floor, wall2, wall}, {null, wall, floor, stairs[1], air, air, air, wall, null}, {null, null, wall, wall2, wall2, wall2, wall, null, null}, {null, null, null, wall, wall, wall, null, null, null} } }, getRoofWire(air2, wall, wire, wire), getRoof(fence, Blocks.GLASS.getDefaultState(), g[0], g[1], g[2]), getTopMap(air2, wall2, carpet[0], floor, window[0], lever, null, null), getTopMap(air2, wall2, carpet[1], floor, window[1], lever, null, null), getTopMap(air2, wall2, carpet[2], floor, window[2], lever, null, null), getCeiling(air2, wall, wall2, c, g[0], lamp), getCeiling(air2, wall, wall2, c, g[1], lamp), getCeiling(air2, wall, wall2, c, g[2], lamp), /*, { { { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c } }, { { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }, { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c } } }*/ }; rawMaps[EnumStateMap.MINI_TOWER_TOP_2.ordinal()][2] = rawMaps[EnumStateMap.MINI_TOWER_TOP_1.ordinal()][2]; rawMaps[EnumStateMap.MINI_TOWER_TOP_3.ordinal()][2] = rawMaps[EnumStateMap.MINI_TOWER_TOP_1.ordinal()][2]; return rawMaps; }