public void func_181015_d(BlockPos p_181015_1_) { if (this.timeUntilPortal > 0) { this.timeUntilPortal = this.getPortalCooldown(); } else { if (!this.worldObj.isRemote && !p_181015_1_.equals(this.field_181016_an)) { this.field_181016_an = p_181015_1_; BlockPattern.PatternHelper blockpattern$patternhelper = Blocks.portal.func_181089_f(this.worldObj, p_181015_1_); double d0 = blockpattern$patternhelper.getFinger().getAxis() == EnumFacing.Axis.X ? (double)blockpattern$patternhelper.func_181117_a().getZ() : (double)blockpattern$patternhelper.func_181117_a().getX(); double d1 = blockpattern$patternhelper.getFinger().getAxis() == EnumFacing.Axis.X ? this.posZ : this.posX; d1 = Math.abs(MathHelper.func_181160_c(d1 - (double)(blockpattern$patternhelper.getFinger().rotateY().getAxisDirection() == EnumFacing.AxisDirection.NEGATIVE ? 1 : 0), d0, d0 - (double)blockpattern$patternhelper.func_181118_d())); double d2 = MathHelper.func_181160_c(this.posY - 1.0D, (double)blockpattern$patternhelper.func_181117_a().getY(), (double)(blockpattern$patternhelper.func_181117_a().getY() - blockpattern$patternhelper.func_181119_e())); this.field_181017_ao = new Vec3(d1, d2, 0.0D); this.field_181018_ap = blockpattern$patternhelper.getFinger(); } this.inPortal = true; } }
/** * Marks the entity as being inside a portal, activating teleportation logic in onEntityUpdate() in the following * tick(s). */ public void setPortal(BlockPos pos) { if (this.timeUntilPortal > 0) { this.timeUntilPortal = this.getPortalCooldown(); } else { if (!this.world.isRemote && !pos.equals(this.lastPortalPos)) { this.lastPortalPos = new BlockPos(pos); BlockPattern.PatternHelper blockpattern$patternhelper = Blocks.PORTAL.createPatternHelper(this.world, this.lastPortalPos); double d0 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? (double)blockpattern$patternhelper.getFrontTopLeft().getZ() : (double)blockpattern$patternhelper.getFrontTopLeft().getX(); double d1 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? this.posZ : this.posX; d1 = Math.abs(MathHelper.pct(d1 - (double)(blockpattern$patternhelper.getForwards().rotateY().getAxisDirection() == EnumFacing.AxisDirection.NEGATIVE ? 1 : 0), d0, d0 - (double)blockpattern$patternhelper.getWidth())); double d2 = MathHelper.pct(this.posY - 1.0D, (double)blockpattern$patternhelper.getFrontTopLeft().getY(), (double)(blockpattern$patternhelper.getFrontTopLeft().getY() - blockpattern$patternhelper.getHeight())); this.lastPortalVec = new Vec3d(d1, d2, 0.0D); this.teleportDirection = blockpattern$patternhelper.getForwards(); } this.inPortal = true; } }
/** * Marks the entity as being inside a portal, activating teleportation logic in onEntityUpdate() in the following * tick(s). */ public void setPortal(BlockPos pos) { if (this.timeUntilPortal > 0) { this.timeUntilPortal = this.getPortalCooldown(); } else { if (!this.worldObj.isRemote && !pos.equals(this.lastPortalPos)) { this.lastPortalPos = new BlockPos(pos); BlockPattern.PatternHelper blockpattern$patternhelper = Blocks.PORTAL.createPatternHelper(this.worldObj, this.lastPortalPos); double d0 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? (double)blockpattern$patternhelper.getFrontTopLeft().getZ() : (double)blockpattern$patternhelper.getFrontTopLeft().getX(); double d1 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? this.posZ : this.posX; d1 = Math.abs(MathHelper.pct(d1 - (double)(blockpattern$patternhelper.getForwards().rotateY().getAxisDirection() == EnumFacing.AxisDirection.NEGATIVE ? 1 : 0), d0, d0 - (double)blockpattern$patternhelper.getWidth())); double d2 = MathHelper.pct(this.posY - 1.0D, (double)blockpattern$patternhelper.getFrontTopLeft().getY(), (double)(blockpattern$patternhelper.getFrontTopLeft().getY() - blockpattern$patternhelper.getHeight())); this.lastPortalVec = new Vec3d(d1, d2, 0.0D); this.teleportDirection = blockpattern$patternhelper.getForwards(); } this.inPortal = true; } }
protected BlockPattern getSnowmanPattern() { if (this.snowmanPattern == null) { this.snowmanPattern = FactoryBlockPattern.start().aisle(new String[] { "^", "#", "#" }).where('^', BlockWorldState .hasState( BlockStateHelper .forBlock( this))) .where('#', BlockWorldState .hasState(BlockStateHelper.forBlock(Blocks.snow))) .build(); } return this.snowmanPattern; }
protected BlockPattern getGolemBasePattern() { if (this.golemBasePattern == null) { this.golemBasePattern = FactoryBlockPattern.start().aisle(new String[] { "~ ~", "###", "~#~" }).where('#', BlockWorldState .hasState( BlockStateHelper .forBlock( Blocks.iron_block))) .where('~', BlockWorldState .hasState(BlockStateHelper.forBlock(Blocks.air))) .build(); } return this.golemBasePattern; }
protected BlockPattern getGolemPattern() { if (this.golemPattern == null) { this.golemPattern = FactoryBlockPattern.start().aisle(new String[] { "~^~", "###", "~#~" }).where('^', BlockWorldState .hasState( BlockStateHelper .forBlock( this))) .where('#', BlockWorldState.hasState( BlockStateHelper.forBlock(Blocks.iron_block))).where('~', BlockWorldState .hasState( BlockStateHelper .forBlock( Blocks.air))) .build(); } return this.golemPattern; }
protected BlockPattern getWitherBasePattern() { if (this.witherBasePattern == null) { this.witherBasePattern = FactoryBlockPattern.start().aisle(new String[] {" ", "###", "~#~"}).where('#', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.soul_sand))).where('~', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.air))).build(); } return this.witherBasePattern; }
protected BlockPattern getWitherPattern() { if (this.witherPattern == null) { this.witherPattern = FactoryBlockPattern.start().aisle(new String[] {"^^^", "###", "~#~"}).where('#', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.soul_sand))).where('^', IS_WITHER_SKELETON).where('~', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.air))).build(); } return this.witherPattern; }
protected BlockPattern getSnowmanBasePattern() { if (this.snowmanBasePattern == null) { this.snowmanBasePattern = FactoryBlockPattern.start().aisle(new String[] {" ", "#", "#"}).where('#', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.snow))).build(); } return this.snowmanBasePattern; }
protected BlockPattern getSnowmanPattern() { if (this.snowmanPattern == null) { this.snowmanPattern = FactoryBlockPattern.start().aisle(new String[] {"^", "#", "#"}).where('^', BlockWorldState.hasState(field_181085_Q)).where('#', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.snow))).build(); } return this.snowmanPattern; }
protected BlockPattern getGolemBasePattern() { if (this.golemBasePattern == null) { this.golemBasePattern = FactoryBlockPattern.start().aisle(new String[] {"~ ~", "###", "~#~"}).where('#', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.iron_block))).where('~', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.air))).build(); } return this.golemBasePattern; }
protected BlockPattern getGolemPattern() { if (this.golemPattern == null) { this.golemPattern = FactoryBlockPattern.start().aisle(new String[] {"~^~", "###", "~#~"}).where('^', BlockWorldState.hasState(field_181085_Q)).where('#', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.iron_block))).where('~', BlockWorldState.hasState(BlockStateHelper.forBlock(Blocks.air))).build(); } return this.golemPattern; }
private void respawnDragon(List<EntityEnderCrystal> crystalsIn) { if (this.dragonKilled && this.respawnState == null) { for (BlockPattern.PatternHelper blockpattern$patternhelper = this.findExitPortal(); blockpattern$patternhelper != null; blockpattern$patternhelper = this.findExitPortal()) { for (int i = 0; i < this.portalPattern.getPalmLength(); ++i) { for (int j = 0; j < this.portalPattern.getThumbLength(); ++j) { for (int k = 0; k < this.portalPattern.getFingerLength(); ++k) { BlockWorldState blockworldstate = blockpattern$patternhelper.translateOffset(i, j, k); if (blockworldstate.getBlockState().getBlock() == Blocks.BEDROCK || blockworldstate.getBlockState().getBlock() == Blocks.END_PORTAL) { this.world.setBlockState(blockworldstate.getPos(), Blocks.END_STONE.getDefaultState()); } } } } } this.respawnState = DragonSpawnManager.START; this.respawnStateTicks = 0; this.generatePortal(false); this.crystals = crystalsIn; } }
protected BlockPattern getWitherBasePattern() { if (this.witherBasePattern == null) { this.witherBasePattern = FactoryBlockPattern.start().aisle(new String[] {" ", "###", "~#~"}).where('#', BlockWorldState.hasState(BlockStateMatcher.forBlock(Blocks.SOUL_SAND))).where('~', BlockWorldState.hasState(BlockMaterialMatcher.forMaterial(Material.AIR))).build(); } return this.witherBasePattern; }
protected BlockPattern getWitherPattern() { if (this.witherPattern == null) { this.witherPattern = FactoryBlockPattern.start().aisle(new String[] {"^^^", "###", "~#~"}).where('#', BlockWorldState.hasState(BlockStateMatcher.forBlock(Blocks.SOUL_SAND))).where('^', IS_WITHER_SKELETON).where('~', BlockWorldState.hasState(BlockMaterialMatcher.forMaterial(Material.AIR))).build(); } return this.witherPattern; }
protected BlockPattern getSnowmanBasePattern() { if (this.snowmanBasePattern == null) { this.snowmanBasePattern = FactoryBlockPattern.start().aisle(new String[] {" ", "#", "#"}).where('#', BlockWorldState.hasState(BlockStateMatcher.forBlock(Blocks.SNOW))).build(); } return this.snowmanBasePattern; }
protected BlockPattern getSnowmanPattern() { if (this.snowmanPattern == null) { this.snowmanPattern = FactoryBlockPattern.start().aisle(new String[] {"^", "#", "#"}).where('^', BlockWorldState.hasState(IS_PUMPKIN)).where('#', BlockWorldState.hasState(BlockStateMatcher.forBlock(Blocks.SNOW))).build(); } return this.snowmanPattern; }
protected BlockPattern getGolemBasePattern() { if (this.golemBasePattern == null) { this.golemBasePattern = FactoryBlockPattern.start().aisle(new String[] {"~ ~", "###", "~#~"}).where('#', BlockWorldState.hasState(BlockStateMatcher.forBlock(Blocks.IRON_BLOCK))).where('~', BlockWorldState.hasState(BlockMaterialMatcher.forMaterial(Material.AIR))).build(); } return this.golemBasePattern; }