Java 类net.minecraft.block.BlockLog.EnumAxis 实例源码
项目:geomastery
文件:FallingTreeBlock.java
@SuppressWarnings("incomplete-switch")
public Trunk(World world, BlockPos pos, EnumFacing direction,
IBlockState blockState, int treeHeight) {
super(world, pos, direction, blockState, treeHeight);
switch (this.direction) {
case NORTH :
case SOUTH :
this.blockState = this.blockState
.withProperty(BlockLog.LOG_AXIS, EnumAxis.Z);
break;
case EAST :
case WEST :
this.blockState = this.blockState
.withProperty(BlockLog.LOG_AXIS, EnumAxis.X);
}
}
项目:Bewitchment
文件:BlockModSapling.java
public static void generateJuniperTree(World world, BlockPos pos, Random r) {
int h = generateTrunk(2, 4, ModBlocks.log_juniper.getDefaultState(), world, pos, r);
EnumFacing branchOffset = EnumFacing.HORIZONTALS[r.nextInt(4)];
BlockPos branching = pos.up(h).offset(branchOffset);
IBlockState log = ModBlocks.log_juniper.getDefaultState().withProperty(BlockModLog.LOG_AXIS, EnumAxis.NONE);
ArrayList<BlockPos> logs = new ArrayList<BlockPos>();
if (isAirBlock(world, branching)) {
world.setBlockState(branching, log, 3);
logs.add(branching);
}
BlockPos other = branching.offset(branchOffset.getOpposite(), 2);
if (isAirBlock(world, other)) {
world.setBlockState(other, log, 3);
logs.add(other);
}
for (int i = 0; i < h / 2; i++) {
BlockPos current = branching.up().offset(branchOffset, i + 1);
if (isAirBlock(world, current)) {
logs.add(current);
world.setBlockState(current, log, 3);
}
}
IBlockState leaves = ModBlocks.leaves_juniper.getDefaultState();
for (BlockPos p : logs) {
for (EnumFacing f : EnumFacing.VALUES) {
BlockPos lpos1 = p.offset(f);
if (isAirBlock(world, lpos1))
world.setBlockState(lpos1, leaves, 3);
for (EnumFacing f2 : EnumFacing.VALUES)
if (f2 != EnumFacing.DOWN) {
BlockPos lpos = p.offset(f).offset(f2);
if (isAirBlock(world, lpos) && r.nextDouble() < 0.8D)
world.setBlockState(lpos, leaves, 3);
}
}
}
}
项目:MC-Prefab
文件:BuildBlock.java
private static EnumAxis getLogFacing(StructureConfiguration configuration, Block foundBlock, BuildBlock block, EnumFacing assumedNorth)
{
EnumAxis logFacing = EnumAxis.X;
if (foundBlock instanceof BlockLog)
{
if (block.getProperty("axis").getValue().equals("x"))
{
logFacing = EnumAxis.X;
}
else if (block.getProperty("axis").getValue().equals("y"))
{
logFacing = EnumAxis.Y;
}
else
{
logFacing = EnumAxis.Z;
}
if (logFacing != EnumAxis.Y)
{
logFacing =
configuration.houseFacing == assumedNorth || configuration.houseFacing == assumedNorth.getOpposite()
? logFacing :
logFacing == EnumAxis.X
? EnumAxis.Z : EnumAxis.X;
}
}
return logFacing;
}
项目:Restructured
文件:BlockHelper.java
public static EnumFacing getOrientation(final IBlockState state) {
if (state.getPropertyNames().contains(FACING))
return state.getValue(FACING);
if (state.getPropertyNames().contains(BlockLog.LOG_AXIS)) {
final EnumAxis axis = state.getValue(BlockLog.LOG_AXIS);
if (axis == EnumAxis.Y)
return EnumFacing.UP;
if (axis == EnumAxis.X)
return EnumFacing.NORTH;
if (axis == EnumAxis.Z)
return EnumFacing.EAST;
}
return null;
}
项目:Restructured
文件:BlockHelper.java
public static IBlockState rotate(final IBlockState state, final int count) {
if (count == 0)
return state;
@SuppressWarnings("rawtypes")
Collection<IProperty> props = state.getPropertyNames();
if (props.contains(BlockLog.LOG_AXIS)) {
if (count == 1 || count == 3) {
final EnumAxis axis = state.getValue(BlockLog.LOG_AXIS);
if (axis == EnumAxis.Y)
return state;
return state.withProperty(BlockLog.LOG_AXIS, axis == EnumAxis.Z ? EnumAxis.X : EnumAxis.Z);
}
return state;
} else if (props.contains(FACING)) {
EnumFacing current = getOrientation(state);
if (current == null || current == EnumFacing.UP || current == EnumFacing.DOWN)
return state;
for (int i = 0; i < count; i++)
current = current.rotateY();
return state.withProperty(FACING, current);
}
return state;
}
项目:Genesis
文件:WorldGenTreeAraucarioxylon.java
@Override
public boolean generate(World world, Random rand, BlockPos pos) {
int height = getTreeHeight(rand);
BlockPos branchPos = pos.up(height - 1);
int leavesBase = branchPos.getY() - 2 - rand.nextInt(2);
boolean alternate = true;
boolean irregular = true;
boolean inverted = false;
int maxLeavesLength = 2;
// if (!BlockVolumeShape.region(0, 1, 0, 0, leavesBase, 0)
// .and(-2, leavesBase + 1, -2, 2, height, 2)
// .hasSpace(pos, isEmptySpace(world))) {
// return false;
// }
for (int i = 0; i < height; i++) {
setBlockInWorld(world, pos.up(i), LOG.withProperty(LOG_AXIS, EnumAxis.Y));
}
int base = 4 + rand.nextInt(4);
int direction = rand.nextInt(8);
int lFactor;
for (int i = base; i < height; ++i) {
++direction;
if (direction > 7) {
direction = 0;
}
lFactor = (int) (6 * (((height - i) / (float) height)));
generateBranch(world, pos.up(i), rand, pos.getY(), direction + 1, lFactor);
if (rand.nextInt(8) == 0) {
++direction;
if (direction > 7) {
direction = 0;
}
generateBranch(world, pos.up(i), rand, pos.getY(), direction + 1, lFactor);
}
}
generateTopLeaves(world, pos, branchPos, height, leavesBase, rand, alternate, maxLeavesLength, irregular, inverted, LEAF);
// if (treeType != TreeTypes.TYPE_3) {
// generateResin(world, pos, height);
// }
return true;
}
项目:Genesis
文件:WorldGenTreeGinkgo.java
private void branchUp(World world, BlockPos pos, Random rand, int height, int base) {
int fallX = 1 - rand.nextInt(3);
int fallZ = 1 - rand.nextInt(3);
int fallCount = 0;
BlockPos upPos = pos.down();
EnumAxis woodAxis;
for (int i = 0; i < height; i++) {
if (rand.nextInt(3) == 0 && i > base && fallCount < 3) {
fallCount++;
upPos = upPos.add(fallX, 0, fallZ);
if (fallX != 0) {
woodAxis = EnumAxis.X;
} else if (fallZ != 0) {
woodAxis = EnumAxis.Z;
} else {
woodAxis = EnumAxis.Y;
}
if (rand.nextInt(3) == 0 || (fallX == 0 && fallZ == 0)) {
upPos = upPos.up();
}
} else {
fallCount = 0;
woodAxis = EnumAxis.Y;
upPos = upPos.up();
}
setBlockInWorld(world, upPos, LOG.withProperty(LOG_AXIS, woodAxis));
if (i == base) {
generateBranchLeaves(world, upPos, rand, false, 2, true, LEAF);
}
if (i > base) {
if (i > base + 2) {
generateBranchLeaves(world, upPos.down(2), rand, false, 2, true, LEAF);
}
if (i > base + 1) {
generateBranchLeaves(world, upPos.down(), rand, false, 3, true, LEAF);
}
generateBranchLeaves(world, upPos, rand, true, 4, true, LEAF);
}
}
}