hoosiertransfer-mod/src/game/java/net/minecraft/block/BlockHugeMushroom.java

173 lines
5.3 KiB
Java

package net.minecraft.block;
import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.IStringSerializable;
import net.minecraft.world.World;
/**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
*
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
*
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, hoosiertransfer,
* ayunami2000. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
public class BlockHugeMushroom extends Block {
public static PropertyEnum<BlockHugeMushroom.EnumType> VARIANT;
private final Block smallBlock;
public BlockHugeMushroom(Material parMaterial, MapColor parMapColor, Block parBlock) {
super(parMaterial, parMapColor);
this.setDefaultState(
this.blockState.getBaseState().withProperty(VARIANT, BlockHugeMushroom.EnumType.ALL_OUTSIDE));
this.smallBlock = parBlock;
}
public static void bootstrapStates() {
VARIANT = PropertyEnum.<BlockHugeMushroom.EnumType>create("variant", BlockHugeMushroom.EnumType.class);
}
/**
* +
* Returns the quantity of items to drop on block destruction.
*/
public int quantityDropped(EaglercraftRandom random) {
return Math.max(0, random.nextInt(10) - 7);
}
/**
* +
* Get the MapColor for this Block and the given BlockState
*/
public MapColor getMapColor(IBlockState iblockstate) {
switch ((BlockHugeMushroom.EnumType) iblockstate.getValue(VARIANT)) {
case ALL_STEM:
return MapColor.clothColor;
case ALL_INSIDE:
return MapColor.sandColor;
case STEM:
return MapColor.sandColor;
default:
return super.getMapColor(iblockstate);
}
}
/**
* +
* Get the Item that this Block should drop when harvested.
*/
public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
return Item.getItemFromBlock(this.smallBlock);
}
public Item getItem(World var1, BlockPos var2) {
return Item.getItemFromBlock(this.smallBlock);
}
/**
* +
* Called by ItemBlocks just before a block is actually set in
* the world, to allow for adjustments to the IBlockstate
*/
public IBlockState onBlockPlaced(World var1, BlockPos var2, EnumFacing var3, float var4, float var5, float var6,
int var7, EntityLivingBase var8) {
return this.getDefaultState();
}
/**
* +
* Convert the given metadata into a BlockState for this Block
*/
public IBlockState getStateFromMeta(int i) {
return this.getDefaultState().withProperty(VARIANT, BlockHugeMushroom.EnumType.byMetadata(i));
}
/**
* +
* Convert the BlockState into the correct metadata value
*/
public int getMetaFromState(IBlockState iblockstate) {
return ((BlockHugeMushroom.EnumType) iblockstate.getValue(VARIANT)).getMetadata();
}
protected BlockState createBlockState() {
return new BlockState(this, new IProperty[] { VARIANT });
}
public static enum EnumType implements IStringSerializable {
NORTH_WEST(1, "north_west"), NORTH(2, "north"), NORTH_EAST(3, "north_east"), WEST(4, "west"),
CENTER(5, "center"), EAST(6, "east"), SOUTH_WEST(7, "south_west"), SOUTH(8, "south"),
SOUTH_EAST(9, "south_east"), STEM(10, "stem"), ALL_INSIDE(0, "all_inside"), ALL_OUTSIDE(14, "all_outside"),
ALL_STEM(15, "all_stem");
private static final BlockHugeMushroom.EnumType[] META_LOOKUP = new BlockHugeMushroom.EnumType[16];
private final int meta;
private final String name;
private EnumType(int meta, String name) {
this.meta = meta;
this.name = name;
}
public int getMetadata() {
return this.meta;
}
public String toString() {
return this.name;
}
public static BlockHugeMushroom.EnumType byMetadata(int meta) {
if (meta < 0 || meta >= META_LOOKUP.length) {
meta = 0;
}
BlockHugeMushroom.EnumType blockhugemushroom$enumtype = META_LOOKUP[meta];
return blockhugemushroom$enumtype == null ? META_LOOKUP[0] : blockhugemushroom$enumtype;
}
public String getName() {
return this.name;
}
static {
BlockHugeMushroom.EnumType[] types = values();
for (int i = 0; i < types.length; ++i) {
META_LOOKUP[types[i].getMetadata()] = types[i];
}
}
}
}