Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.gunn.modtest.blocks;
- import com.gunn.modtest.ModTest;
- import com.gunn.modtest.states.ModStates;
- import com.gunn.modtest.states.ModStates.MachineTypes;
- import net.minecraft.block.Block;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.properties.IProperty;
- import net.minecraft.block.state.BlockStateContainer;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.Blocks;
- import net.minecraft.item.ItemBlock;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.common.registry.GameRegistry;
- public class BlockMachine extends Block{
- public BlockMachine() {
- super(Material.IRON);
- setRegistryName("blockmachine");
- setUnlocalizedName(this.getRegistryName().toString());
- setCreativeTab(ModTest.tabTest);
- setHardness(2F);
- setDefaultState(blockState.getBaseState().withProperty(ModStates.POWERED, Boolean.valueOf(false))
- .withProperty(ModStates.MACTYPE, ModStates.MachineTypes.DEFAULT));
- GameRegistry.register(this);
- GameRegistry.register(new ItemBlock(this), getRegistryName());
- }
- @Override
- public void onEntityWalk(World world, BlockPos pos, Entity entity){
- if(!world.isRemote && !isDisabled(world.getBlockState(pos))){
- spawnAnvil(world,new BlockPos(pos.getX(),pos.getY()+20,pos.getZ()));
- }
- }
- @Override
- public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block){
- if(!world.isRemote && world.isBlockPowered(pos) && !isDisabled(state)){
- for(int i = -2; i <= 2; i++){
- for(int j = -2; j <= 2; j++){
- spawnAnvil(world,new BlockPos(pos.getX() + i,pos.getY()+20,pos.getZ() + j));
- }
- }
- }
- }
- private void spawnAnvil(World world, BlockPos pos){
- if(world.isAirBlock(pos)){
- world.setBlockState(pos, Blocks.ANVIL.getDefaultState());
- }
- }
- private boolean isDisabled(IBlockState state){
- return state.getValue(ModStates.POWERED);
- }
- @Override
- public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ){
- if(!world.isRemote){
- if(getMetaFromState(state) == 0){
- world.setBlockState(pos, state.withProperty(ModStates.POWERED, true),3);
- }else{
- world.setBlockState(pos, state.withProperty(ModStates.POWERED, false),3);
- }
- }
- return true;
- }
- @Override
- protected BlockStateContainer createBlockState(){
- return new BlockStateContainer(this, new IProperty[] {ModStates.MACTYPE,ModStates.POWERED});
- }
- @Override
- public int getMetaFromState(IBlockState state) {
- MachineTypes type = (MachineTypes) state.getValue(ModStates.MACTYPE);
- return type.getID();
- }
- @Override
- public IBlockState getStateFromMeta(int meta) {
- return this.getDefaultState().withProperty(ModStates.MACTYPE, ModStates.MachineTypes.values()[meta]);
- }
- }
Add Comment
Please, Sign In to add comment