Java 类net.minecraft.block.BlockBed 实例源码
项目:DecompiledMinecraft
文件:EntityPlayer.java
/**
* Return null if bed is invalid
*/
public static BlockPos getBedSpawnLocation(World worldIn, BlockPos bedLocation, boolean forceSpawn)
{
Block block = worldIn.getBlockState(bedLocation).getBlock();
if (block != Blocks.bed)
{
if (!forceSpawn)
{
return null;
}
else
{
boolean flag = block.func_181623_g();
boolean flag1 = worldIn.getBlockState(bedLocation.up()).getBlock().func_181623_g();
return flag && flag1 ? bedLocation : null;
}
}
else
{
return BlockBed.getSafeExitLocation(worldIn, bedLocation, 0);
}
}
项目:DecompiledMinecraft
文件:EntityPlayer.java
/**
* Return null if bed is invalid
*/
public static BlockPos getBedSpawnLocation(World worldIn, BlockPos bedLocation, boolean forceSpawn)
{
Block block = worldIn.getBlockState(bedLocation).getBlock();
if (block != Blocks.bed)
{
if (!forceSpawn)
{
return null;
}
else
{
boolean flag = block.func_181623_g();
boolean flag1 = worldIn.getBlockState(bedLocation.up()).getBlock().func_181623_g();
return flag && flag1 ? bedLocation : null;
}
}
else
{
return BlockBed.getSafeExitLocation(worldIn, bedLocation, 0);
}
}
项目:BaseClient
文件:EntityPlayer.java
/**
* Return null if bed is invalid
*/
public static BlockPos getBedSpawnLocation(World worldIn, BlockPos bedLocation, boolean forceSpawn)
{
Block block = worldIn.getBlockState(bedLocation).getBlock();
if (block != Blocks.bed)
{
if (!forceSpawn)
{
return null;
}
else
{
boolean flag = block.func_181623_g();
boolean flag1 = worldIn.getBlockState(bedLocation.up()).getBlock().func_181623_g();
return flag && flag1 ? bedLocation : null;
}
}
else
{
return BlockBed.getSafeExitLocation(worldIn, bedLocation, 0);
}
}
项目:BaseClient
文件:EntityPlayer.java
/**
* Return null if bed is invalid
*/
public static BlockPos getBedSpawnLocation(World worldIn, BlockPos bedLocation, boolean forceSpawn)
{
Block block = worldIn.getBlockState(bedLocation).getBlock();
if (block != Blocks.bed)
{
if (!forceSpawn)
{
return null;
}
else
{
boolean flag = block.func_181623_g();
boolean flag1 = worldIn.getBlockState(bedLocation.up()).getBlock().func_181623_g();
return flag && flag1 ? bedLocation : null;
}
}
else
{
return BlockBed.getSafeExitLocation(worldIn, bedLocation, 0);
}
}
项目:ToroQuest
文件:BlockMapBuilder.java
protected void handleExtraBedBlock(IBlockState block, String c) {
if (!isBed(c)) {
return;
}
block = block.withProperty(BlockBed.PART, EnumPartType.HEAD);
switch (block.getValue(BlockBed.FACING)) {
case EAST:
setBlockState(block, x + 1, y, z);
break;
case NORTH:
setBlockState(block, x, y, z + 1);
break;
case SOUTH:
setBlockState(block, x, y, z - 1);
break;
case WEST:
setBlockState(block, x - 1, y, z);
break;
default:
break;
}
}
项目:SettlerCraft
文件:SleepHandler.java
@SubscribeEvent
@SuppressWarnings("unused")
public void onPlayerTryToSleep(PlayerInteractEvent.RightClickBlock event) {
World world = event.getWorld();
BlockPos pos = event.getPos();
IBlockState state = world.getBlockState(pos);
if(!(state.getBlock() instanceof BlockBed)) {
return;
}
if(isBedOccupied(world, pos, state)) {
event.setCanceled(true);
event.setUseBlock(Event.Result.DENY);
event.setUseItem(Event.Result.DENY);
event.getEntityPlayer().sendMessage(new TextComponentString("Occupied"));
}
}
项目:SettlerCraft
文件:SettlementBuilding.java
@Override
public void onBuildingCompleted() {
if(!getWorld().isRemote) {
this.beds = new ArrayList<>();
for (BlockPos pos : this.getBoundingBox()) {
IBlockState state = this.getWorld().getBlockState(pos);
TileEntity tile = this.getWorld().getTileEntity(pos);
if ((state.getBlock() instanceof BlockBed) && (state.getValue(BlockBed.PART) == BlockBed.EnumPartType.HEAD)) {
this.beds.add(new BlockPos(pos));
}
if(tile != null) {
if (tile instanceof IInventory) {
this.inventory().registerInventory(new BlockPos(pos), (IInventory) tile);
}
//TODO: IItemHandler support
}
}
this.building().onBuildingCompleted(this);
this.markDirty();
this.syncToClient();
}
}
项目:Resilience-Client-Source
文件:EntityPlayer.java
/**
* Ensure that a block enabling respawning exists at the specified coordinates and find an empty space nearby to
* spawn.
*/
public static ChunkCoordinates verifyRespawnCoordinates(World par0World, ChunkCoordinates par1ChunkCoordinates, boolean par2)
{
IChunkProvider var3 = par0World.getChunkProvider();
var3.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ - 3 >> 4);
var3.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ - 3 >> 4);
var3.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
var3.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
if (par0World.getBlock(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ) == Blocks.bed)
{
ChunkCoordinates var8 = BlockBed.func_149977_a(par0World, par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ, 0);
return var8;
}
else
{
Material var4 = par0World.getBlock(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY, par1ChunkCoordinates.posZ).getMaterial();
Material var5 = par0World.getBlock(par1ChunkCoordinates.posX, par1ChunkCoordinates.posY + 1, par1ChunkCoordinates.posZ).getMaterial();
boolean var6 = !var4.isSolid() && !var4.isLiquid();
boolean var7 = !var5.isSolid() && !var5.isLiquid();
return par2 && var6 && var7 ? par1ChunkCoordinates : null;
}
}
项目:Resilience-Client-Source
文件:EntityPlayer.java
/**
* Returns the orientation of the bed in degrees.
*/
public float getBedOrientationInDegrees()
{
if (this.playerLocation != null)
{
int var1 = this.worldObj.getBlockMetadata(this.playerLocation.posX, this.playerLocation.posY, this.playerLocation.posZ);
int var2 = BlockBed.func_149895_l(var1);
switch (var2)
{
case 0:
return 90.0F;
case 1:
return 0.0F;
case 2:
return 270.0F;
case 3:
return 180.0F;
}
}
return 0.0F;
}
项目:RuneCraftery
文件:EntityAIOcelotSit.java
protected boolean func_75398_a(World p_75398_1_, int p_75398_2_, int p_75398_3_, int p_75398_4_) {
int var5 = p_75398_1_.func_72798_a(p_75398_2_, p_75398_3_, p_75398_4_);
int var6 = p_75398_1_.func_72805_g(p_75398_2_, p_75398_3_, p_75398_4_);
if(var5 == Block.field_72077_au.field_71990_ca) {
TileEntityChest var7 = (TileEntityChest)p_75398_1_.func_72796_p(p_75398_2_, p_75398_3_, p_75398_4_);
if(var7.field_70427_h < 1) {
return true;
}
} else {
if(var5 == Block.field_72052_aC.field_71990_ca) {
return true;
}
if(var5 == Block.field_71959_S.field_71990_ca && !BlockBed.func_72229_a_(var6)) {
return true;
}
}
return false;
}
项目:RuneCraftery
文件:EntityPlayer.java
public static ChunkCoordinates func_71056_a(World p_71056_0_, ChunkCoordinates p_71056_1_, boolean p_71056_2_) {
IChunkProvider var3 = p_71056_0_.func_72863_F();
var3.func_73158_c(p_71056_1_.field_71574_a - 3 >> 4, p_71056_1_.field_71573_c - 3 >> 4);
var3.func_73158_c(p_71056_1_.field_71574_a + 3 >> 4, p_71056_1_.field_71573_c - 3 >> 4);
var3.func_73158_c(p_71056_1_.field_71574_a - 3 >> 4, p_71056_1_.field_71573_c + 3 >> 4);
var3.func_73158_c(p_71056_1_.field_71574_a + 3 >> 4, p_71056_1_.field_71573_c + 3 >> 4);
if(p_71056_0_.func_72798_a(p_71056_1_.field_71574_a, p_71056_1_.field_71572_b, p_71056_1_.field_71573_c) == Block.field_71959_S.field_71990_ca) {
ChunkCoordinates var8 = BlockBed.func_72226_b(p_71056_0_, p_71056_1_.field_71574_a, p_71056_1_.field_71572_b, p_71056_1_.field_71573_c, 0);
return var8;
} else {
Material var4 = p_71056_0_.func_72803_f(p_71056_1_.field_71574_a, p_71056_1_.field_71572_b, p_71056_1_.field_71573_c);
Material var5 = p_71056_0_.func_72803_f(p_71056_1_.field_71574_a, p_71056_1_.field_71572_b + 1, p_71056_1_.field_71573_c);
boolean var6 = !var4.func_76220_a() && !var4.func_76224_d();
boolean var7 = !var5.func_76220_a() && !var5.func_76224_d();
return p_71056_2_ && var6 && var7?p_71056_1_:null;
}
}
项目:RuneCraftery
文件:EntityPlayer.java
@SideOnly(Side.CLIENT)
public float func_71051_bG() {
if(this.field_71081_bT != null) {
int var1 = this.field_70170_p.func_72805_g(this.field_71081_bT.field_71574_a, this.field_71081_bT.field_71572_b, this.field_71081_bT.field_71573_c);
int var2 = BlockBed.func_72217_d(var1);
switch(var2) {
case 0:
return 90.0F;
case 1:
return 0.0F;
case 2:
return 270.0F;
case 3:
return 180.0F;
}
}
return 0.0F;
}
项目:Bewitchment
文件:ItemTaglock.java
@SuppressWarnings("ConstantConditions")
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
IBlockState state = world.getBlockState(pos);
if (state.getBlock().isBed(state, world, pos, player)) {
Optional<EntityPlayer> victim = getPlayerFromBed(world, pos, state.getValue(BlockBed.OCCUPIED));
if (victim.isPresent()) {
setVictim(player.getHeldItem(hand), victim.get());
}
}
return super.onItemUseFirst(player, world, pos, side, hitX, hitY, hitZ, hand);
}
项目:DecompiledMinecraft
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.chest)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.lit_furnace)
{
return true;
}
if (block == Blocks.bed && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:DecompiledMinecraft
文件:EntityPlayer.java
/**
* Wake up the player if they're sleeping.
*/
public void wakeUpPlayer(boolean p_70999_1_, boolean updateWorldFlag, boolean setSpawn)
{
this.setSize(0.6F, 1.8F);
IBlockState iblockstate = this.worldObj.getBlockState(this.playerLocation);
if (this.playerLocation != null && iblockstate.getBlock() == Blocks.bed)
{
this.worldObj.setBlockState(this.playerLocation, iblockstate.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)), 4);
BlockPos blockpos = BlockBed.getSafeExitLocation(this.worldObj, this.playerLocation, 0);
if (blockpos == null)
{
blockpos = this.playerLocation.up();
}
this.setPosition((double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 0.1F), (double)((float)blockpos.getZ() + 0.5F));
}
this.sleeping = false;
if (!this.worldObj.isRemote && updateWorldFlag)
{
this.worldObj.updateAllPlayersSleepingFlag();
}
this.sleepTimer = p_70999_1_ ? 0 : 100;
if (setSpawn)
{
this.setSpawnPoint(this.playerLocation, false);
}
}
项目:DecompiledMinecraft
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.chest)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.lit_furnace)
{
return true;
}
if (block == Blocks.bed && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:DecompiledMinecraft
文件:EntityPlayer.java
/**
* Wake up the player if they're sleeping.
*/
public void wakeUpPlayer(boolean p_70999_1_, boolean updateWorldFlag, boolean setSpawn)
{
this.setSize(0.6F, 1.8F);
IBlockState iblockstate = this.worldObj.getBlockState(this.playerLocation);
if (this.playerLocation != null && iblockstate.getBlock() == Blocks.bed)
{
this.worldObj.setBlockState(this.playerLocation, iblockstate.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)), 4);
BlockPos blockpos = BlockBed.getSafeExitLocation(this.worldObj, this.playerLocation, 0);
if (blockpos == null)
{
blockpos = this.playerLocation.up();
}
this.setPosition((double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 0.1F), (double)((float)blockpos.getZ() + 0.5F));
}
this.sleeping = false;
if (!this.worldObj.isRemote && updateWorldFlag)
{
this.worldObj.updateAllPlayersSleepingFlag();
}
this.sleepTimer = p_70999_1_ ? 0 : 100;
if (setSpawn)
{
this.setSpawnPoint(this.playerLocation, false);
}
}
项目:DecompiledMinecraft
文件:RenderManager.java
public void cacheActiveRenderInfo(World worldIn, FontRenderer textRendererIn, Entity livingPlayerIn, Entity pointedEntityIn, GameSettings optionsIn, float partialTicks)
{
this.worldObj = worldIn;
this.options = optionsIn;
this.livingPlayer = livingPlayerIn;
this.pointedEntity = pointedEntityIn;
this.textRenderer = textRendererIn;
if (livingPlayerIn instanceof EntityLivingBase && ((EntityLivingBase)livingPlayerIn).isPlayerSleeping())
{
IBlockState iblockstate = worldIn.getBlockState(new BlockPos(livingPlayerIn));
Block block = iblockstate.getBlock();
if (block == Blocks.bed)
{
int i = ((EnumFacing)iblockstate.getValue(BlockBed.FACING)).getHorizontalIndex();
this.playerViewY = (float)(i * 90 + 180);
this.playerViewX = 0.0F;
}
}
else
{
this.playerViewY = livingPlayerIn.prevRotationYaw + (livingPlayerIn.rotationYaw - livingPlayerIn.prevRotationYaw) * partialTicks;
this.playerViewX = livingPlayerIn.prevRotationPitch + (livingPlayerIn.rotationPitch - livingPlayerIn.prevRotationPitch) * partialTicks;
}
if (optionsIn.thirdPersonView == 2)
{
this.playerViewY += 180.0F;
}
this.viewerPosX = livingPlayerIn.lastTickPosX + (livingPlayerIn.posX - livingPlayerIn.lastTickPosX) * (double)partialTicks;
this.viewerPosY = livingPlayerIn.lastTickPosY + (livingPlayerIn.posY - livingPlayerIn.lastTickPosY) * (double)partialTicks;
this.viewerPosZ = livingPlayerIn.lastTickPosZ + (livingPlayerIn.posZ - livingPlayerIn.lastTickPosZ) * (double)partialTicks;
}
项目:BaseClient
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.chest)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.lit_furnace)
{
return true;
}
if (block == Blocks.bed && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:BaseClient
文件:EntityPlayer.java
/**
* Wake up the player if they're sleeping.
*/
public void wakeUpPlayer(boolean p_70999_1_, boolean updateWorldFlag, boolean setSpawn)
{
this.setSize(0.6F, 1.8F);
IBlockState iblockstate = this.worldObj.getBlockState(this.playerLocation);
if (this.playerLocation != null && iblockstate.getBlock() == Blocks.bed)
{
this.worldObj.setBlockState(this.playerLocation, iblockstate.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)), 4);
BlockPos blockpos = BlockBed.getSafeExitLocation(this.worldObj, this.playerLocation, 0);
if (blockpos == null)
{
blockpos = this.playerLocation.up();
}
this.setPosition((double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 0.1F), (double)((float)blockpos.getZ() + 0.5F));
}
this.sleeping = false;
if (!this.worldObj.isRemote && updateWorldFlag)
{
this.worldObj.updateAllPlayersSleepingFlag();
}
this.sleepTimer = p_70999_1_ ? 0 : 100;
if (setSpawn)
{
this.setSpawnPoint(this.playerLocation, false);
}
}
项目:BaseClient
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.chest)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.lit_furnace)
{
return true;
}
if (block == Blocks.bed && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:BaseClient
文件:EntityPlayer.java
/**
* Wake up the player if they're sleeping.
*/
public void wakeUpPlayer(boolean p_70999_1_, boolean updateWorldFlag, boolean setSpawn)
{
this.setSize(0.6F, 1.8F);
IBlockState iblockstate = this.worldObj.getBlockState(this.playerLocation);
if (this.playerLocation != null && iblockstate.getBlock() == Blocks.bed)
{
this.worldObj.setBlockState(this.playerLocation, iblockstate.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)), 4);
BlockPos blockpos = BlockBed.getSafeExitLocation(this.worldObj, this.playerLocation, 0);
if (blockpos == null)
{
blockpos = this.playerLocation.up();
}
this.setPosition((double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 0.1F), (double)((float)blockpos.getZ() + 0.5F));
}
this.sleeping = false;
if (!this.worldObj.isRemote && updateWorldFlag)
{
this.worldObj.updateAllPlayersSleepingFlag();
}
this.sleepTimer = p_70999_1_ ? 0 : 100;
if (setSpawn)
{
this.setSpawnPoint(this.playerLocation, false);
}
}
项目:BaseClient
文件:RenderManager.java
public void cacheActiveRenderInfo(World worldIn, FontRenderer textRendererIn, Entity livingPlayerIn, Entity pointedEntityIn, GameSettings optionsIn, float partialTicks)
{
this.worldObj = worldIn;
this.options = optionsIn;
this.livingPlayer = livingPlayerIn;
this.pointedEntity = pointedEntityIn;
this.textRenderer = textRendererIn;
if (livingPlayerIn instanceof EntityLivingBase && ((EntityLivingBase)livingPlayerIn).isPlayerSleeping())
{
IBlockState iblockstate = worldIn.getBlockState(new BlockPos(livingPlayerIn));
Block block = iblockstate.getBlock();
if (block == Blocks.bed)
{
int i = ((EnumFacing)iblockstate.getValue(BlockBed.FACING)).getHorizontalIndex();
this.playerViewY = (float)(i * 90 + 180);
this.playerViewX = 0.0F;
}
}
else
{
this.playerViewY = livingPlayerIn.prevRotationYaw + (livingPlayerIn.rotationYaw - livingPlayerIn.prevRotationYaw) * partialTicks;
this.playerViewX = livingPlayerIn.prevRotationPitch + (livingPlayerIn.rotationPitch - livingPlayerIn.prevRotationPitch) * partialTicks;
}
if (optionsIn.thirdPersonView == 2)
{
this.playerViewY += 180.0F;
}
this.viewerPosX = livingPlayerIn.lastTickPosX + (livingPlayerIn.posX - livingPlayerIn.lastTickPosX) * (double)partialTicks;
this.viewerPosY = livingPlayerIn.lastTickPosY + (livingPlayerIn.posY - livingPlayerIn.lastTickPosY) * (double)partialTicks;
this.viewerPosZ = livingPlayerIn.lastTickPosZ + (livingPlayerIn.posZ - livingPlayerIn.lastTickPosZ) * (double)partialTicks;
}
项目:Zombe-Modpack
文件:EntityPlayer.java
/**
* Wake up the player if they're sleeping.
*/
public void wakeUpPlayer(boolean immediately, boolean updateWorldFlag, boolean setSpawn)
{
this.setSize(0.6F, 1.8F);
IBlockState iblockstate = this.world.getBlockState(this.bedLocation);
if (this.bedLocation != null && iblockstate.getBlock() == Blocks.BED)
{
this.world.setBlockState(this.bedLocation, iblockstate.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)), 4);
BlockPos blockpos = BlockBed.getSafeExitLocation(this.world, this.bedLocation, 0);
if (blockpos == null)
{
blockpos = this.bedLocation.up();
}
this.setPosition((double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 0.1F), (double)((float)blockpos.getZ() + 0.5F));
}
this.sleeping = false;
if (!this.world.isRemote && updateWorldFlag)
{
this.world.updateAllPlayersSleepingFlag();
}
this.sleepTimer = immediately ? 0 : 100;
if (setSpawn)
{
this.setSpawnPoint(this.bedLocation, false);
}
}
项目:Zombe-Modpack
文件:EntityPlayer.java
@Nullable
/**
* Return null if bed is invalid
*/
public static BlockPos getBedSpawnLocation(World worldIn, BlockPos bedLocation, boolean forceSpawn)
{
Block block = worldIn.getBlockState(bedLocation).getBlock();
if (block != Blocks.BED)
{
if (!forceSpawn)
{
return null;
}
else
{
boolean flag = block.canSpawnInBlock();
boolean flag1 = worldIn.getBlockState(bedLocation.up()).getBlock().canSpawnInBlock();
return flag && flag1 ? bedLocation : null;
}
}
else
{
return BlockBed.getSafeExitLocation(worldIn, bedLocation, 0);
}
}
项目:Backmemed
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.CHEST)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.LIT_FURNACE)
{
return true;
}
if (block == Blocks.BED && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:Backmemed
文件:EntityPlayer.java
/**
* Wake up the player if they're sleeping.
*/
public void wakeUpPlayer(boolean immediately, boolean updateWorldFlag, boolean setSpawn)
{
this.setSize(0.6F, 1.8F);
IBlockState iblockstate = this.world.getBlockState(this.bedLocation);
if (this.bedLocation != null && iblockstate.getBlock() == Blocks.BED)
{
this.world.setBlockState(this.bedLocation, iblockstate.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)), 4);
BlockPos blockpos = BlockBed.getSafeExitLocation(this.world, this.bedLocation, 0);
if (blockpos == null)
{
blockpos = this.bedLocation.up();
}
this.setPosition((double)((float)blockpos.getX() + 0.5F), (double)((float)blockpos.getY() + 0.1F), (double)((float)blockpos.getZ() + 0.5F));
}
this.sleeping = false;
if (!this.world.isRemote && updateWorldFlag)
{
this.world.updateAllPlayersSleepingFlag();
}
this.sleepTimer = immediately ? 0 : 100;
if (setSpawn)
{
this.setSpawnPoint(this.bedLocation, false);
}
}
项目:Backmemed
文件:EntityPlayer.java
@Nullable
/**
* Return null if bed is invalid
*/
public static BlockPos getBedSpawnLocation(World worldIn, BlockPos bedLocation, boolean forceSpawn)
{
Block block = worldIn.getBlockState(bedLocation).getBlock();
if (block != Blocks.BED)
{
if (!forceSpawn)
{
return null;
}
else
{
boolean flag = block.canSpawnInBlock();
boolean flag1 = worldIn.getBlockState(bedLocation.up()).getBlock().canSpawnInBlock();
return flag && flag1 ? bedLocation : null;
}
}
else
{
return BlockBed.getSafeExitLocation(worldIn, bedLocation, 0);
}
}
项目:CustomWorldGen
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.CHEST)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.LIT_FURNACE)
{
return true;
}
if (block == Blocks.BED && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:TRHS_Club_Mod_2016
文件:RotationHelper.java
public static ForgeDirection[] getValidVanillaBlockRotations(Block block)
{
return (block instanceof BlockBed ||
block instanceof BlockPumpkin ||
block instanceof BlockFenceGate ||
block instanceof BlockEndPortalFrame ||
block instanceof BlockTripWireHook ||
block instanceof BlockCocoa ||
block instanceof BlockRailPowered ||
block instanceof BlockRailDetector ||
block instanceof BlockStairs ||
block instanceof BlockChest ||
block instanceof BlockEnderChest ||
block instanceof BlockFurnace ||
block instanceof BlockLadder ||
block == Blocks.field_150444_as ||
block == Blocks.field_150472_an ||
block instanceof BlockDoor ||
block instanceof BlockRail ||
block instanceof BlockButton ||
block instanceof BlockRedstoneRepeater ||
block instanceof BlockRedstoneComparator ||
block instanceof BlockTrapDoor ||
block instanceof BlockHugeMushroom ||
block instanceof BlockVine ||
block instanceof BlockSkull ||
block instanceof BlockAnvil) ? UP_DOWN_AXES : VALID_DIRECTIONS;
}
项目:ToroQuest
文件:VillagePieceBlockMap.java
protected IBlockState biomeSpecificDoor(IBlockState in) {
BlockDoor newBlock;
switch (this.structureType) {
case 2:
newBlock = Blocks.ACACIA_DOOR;
break;
case 3:
newBlock = Blocks.SPRUCE_DOOR;
break;
default:
newBlock = Blocks.OAK_DOOR;
break;
}
return newBlock.getDefaultState().withProperty(BlockBed.FACING, in.getValue(BlockDoor.FACING));
}
项目:MC-Prefab
文件:HouseConfiguration.java
private static void PlaceBed(World world, BlockPos cornerPosition, EnumFacing facing)
{
// This is the "north west" corner.
BlockPos itemPosition = cornerPosition.offset(facing.rotateY(), 1).offset(facing.getOpposite(), 2).down();
IBlockState bedFootState = Blocks.BED.getDefaultState().withProperty(BlockHorizontal.FACING, facing)
.withProperty(BlockBed.OCCUPIED, Boolean.valueOf(false)).withProperty(BlockBed.PART, BlockBed.EnumPartType.FOOT);
if (world.setBlockState(itemPosition, bedFootState, 3))
{
IBlockState bedHeadState = bedFootState.withProperty(BlockBed.PART, BlockBed.EnumPartType.HEAD);
world.setBlockState(itemPosition.offset(facing), bedHeadState, 3);
}
}
项目:pycode-minecraft
文件:BaseMethods.java
protected void put(BlockPos pos, IBlockState block_state, EnumFacing facing) {
// don't run on client
if (this.world == null || this.world.isRemote) return;
Block block = block_state.getBlock();
FMLLog.info("Putting %s at %s", block_state, pos);
// handle special cases
if (block instanceof BlockDoor) {
ItemDoor.placeDoor(this.world, pos, facing, block, true);
} else if (block instanceof BlockBed) {
BlockPos headpos = pos.offset(facing);
if (this.world.getBlockState(pos.down()).isSideSolid(this.world, pos.down(), EnumFacing.UP) &&
this.world.getBlockState(headpos.down()).isSideSolid(this.world, headpos.down(), EnumFacing.UP)) {
block_state = block_state
.withProperty(BlockBed.OCCUPIED, false).withProperty(BlockBed.FACING, facing)
.withProperty(BlockBed.PART, BlockBed.EnumPartType.FOOT);
if (this.world.setBlockState(pos, block_state, 11)) {
block_state = block_state.withProperty(BlockBed.PART, BlockBed.EnumPartType.HEAD);
this.world.setBlockState(headpos, block_state, 11);
}
}
} else {
this.world.setBlockState(pos, block_state);
}
}
项目:SettlerCraft
文件:SleepHandler.java
public boolean isBedOccupied(World world, BlockPos pos, IBlockState bed) {
if(bed.getBlock() instanceof BlockBed) {
if (bed.getValue(BlockBed.OCCUPIED)) {
return true;
}
BlockPos head = getHeadPos(pos, bed);
return occupiedBeds.containsKey(world) && occupiedBeds.get(world).contains(head);
}
return false;
}
项目:SettlerCraft
文件:SleepHandler.java
private BlockPos getHeadPos(BlockPos pos, IBlockState bed) {
BlockBed.EnumPartType part = bed.getValue(BlockBed.PART);
if(part == BlockBed.EnumPartType.FOOT) {
EnumFacing facing = bed.getValue(BlockBed.FACING);
return pos.offset(facing);
}
return pos;
}
项目:CauldronGit
文件:RotationHelper.java
public static ForgeDirection[] getValidVanillaBlockRotations(Block block)
{
return (block instanceof BlockBed ||
block instanceof BlockPumpkin ||
block instanceof BlockFenceGate ||
block instanceof BlockEndPortalFrame ||
block instanceof BlockTripWireHook ||
block instanceof BlockCocoa ||
block instanceof BlockRailPowered ||
block instanceof BlockRailDetector ||
block instanceof BlockStairs ||
block instanceof BlockChest ||
block instanceof BlockEnderChest ||
block instanceof BlockFurnace ||
block instanceof BlockLadder ||
block == Blocks.wall_sign ||
block == Blocks.standing_sign ||
block instanceof BlockDoor ||
block instanceof BlockRail ||
block instanceof BlockButton ||
block instanceof BlockRedstoneRepeater ||
block instanceof BlockRedstoneComparator ||
block instanceof BlockTrapDoor ||
block instanceof BlockHugeMushroom ||
block instanceof BlockVine ||
block instanceof BlockSkull ||
block instanceof BlockAnvil) ? UP_DOWN_AXES : VALID_DIRECTIONS;
}
项目:Resilience-Client-Source
文件:EntityAIOcelotSit.java
private boolean func_151486_a(World p_151486_1_, int p_151486_2_, int p_151486_3_, int p_151486_4_)
{
Block var5 = p_151486_1_.getBlock(p_151486_2_, p_151486_3_, p_151486_4_);
int var6 = p_151486_1_.getBlockMetadata(p_151486_2_, p_151486_3_, p_151486_4_);
if (var5 == Blocks.chest)
{
TileEntityChest var7 = (TileEntityChest)p_151486_1_.getTileEntity(p_151486_2_, p_151486_3_, p_151486_4_);
if (var7.field_145987_o < 1)
{
return true;
}
}
else
{
if (var5 == Blocks.lit_furnace)
{
return true;
}
if (var5 == Blocks.bed && !BlockBed.func_149975_b(var6))
{
return true;
}
}
return false;
}
项目:Imperium
文件:BlockStickShelter.java
/**
* Called when a user either starts or stops sleeping in the bed.
*
* @param world The current world
* @param x X Position
* @param y Y Position
* @param z Z Position
* @param player The player or camera entity, null in some cases.
* @param occupied True if we are occupying the bed, or false if they are stopping use of the bed
*/
@Override
public void setBedOccupied(IBlockAccess world, int x, int y, int z, EntityPlayer player, boolean occupied) {
if (world instanceof World) {
BlockBed.func_149979_a((World)world, x, y, z, occupied);
if (!occupied) {
// Player woke up, collapse the stick shelter
((World) world).setBlockToAir(x, y, z);
// TODO: quest generation
}
}
}
项目:ExpandedRailsMod
文件:EntityAIOcelotSit.java
/**
* Return true to set given position as destination
*/
protected boolean shouldMoveTo(World worldIn, BlockPos pos)
{
if (!worldIn.isAirBlock(pos.up()))
{
return false;
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos);
Block block = iblockstate.getBlock();
if (block == Blocks.CHEST)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof TileEntityChest && ((TileEntityChest)tileentity).numPlayersUsing < 1)
{
return true;
}
}
else
{
if (block == Blocks.LIT_FURNACE)
{
return true;
}
if (block == Blocks.BED && iblockstate.getValue(BlockBed.PART) != BlockBed.EnumPartType.HEAD)
{
return true;
}
}
return false;
}
}
项目:Cauldron
文件:RotationHelper.java
public static ForgeDirection[] getValidVanillaBlockRotations(Block block)
{
return (block instanceof BlockBed ||
block instanceof BlockPumpkin ||
block instanceof BlockFenceGate ||
block instanceof BlockEndPortalFrame ||
block instanceof BlockTripWireHook ||
block instanceof BlockCocoa ||
block instanceof BlockRailPowered ||
block instanceof BlockRailDetector ||
block instanceof BlockStairs ||
block instanceof BlockChest ||
block instanceof BlockEnderChest ||
block instanceof BlockFurnace ||
block instanceof BlockLadder ||
block == Blocks.wall_sign ||
block == Blocks.standing_sign ||
block instanceof BlockDoor ||
block instanceof BlockRail ||
block instanceof BlockButton ||
block instanceof BlockRedstoneRepeater ||
block instanceof BlockRedstoneComparator ||
block instanceof BlockTrapDoor ||
block instanceof BlockHugeMushroom ||
block instanceof BlockVine ||
block instanceof BlockSkull ||
block instanceof BlockAnvil) ? UP_DOWN_AXES : VALID_DIRECTIONS;
}