Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Metadata TileEntity


LTXmc
 Share

Recommended Posts

Hello everyone,

I am quiet new to forge modding and I am stuck at a piece of code I am coding. How to assign multiple tile entities to a block with metadata. It is possible to use createTileEntity(World world, int metadata) but I can't use it without abstract method createTileEntity(World world). I am stuck at this and need some help.

Block File:

package ltx.Steves.Blocks;

import ltx.Steves.Tile.TileMachineCrafter;
import ltx.Steves.Utility.CreativeTabSteveMachine;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

/**
* Created with IntelliJ IDEA.
* User: ltxmc
* Date: 3/2/13
* Time: 12:29 AM
* To change this template use File | Settings | File Templates.
*/
public class blockMachineCrafter extends ltxBlock{

     blockMachineCrafter(int id,int meta,Material material){
        super(id, meta, material);
        setCreativeTab(CreativeTabSteveMachine.tabSteveMachine);
    }


    @Override
   public TileEntity createNewTileEntity(World world){
       return new TileMachineCrafter();
    }
   @Override
   public TileEntity createNewTileEntity(World world, int metadata){
       return new TIleMachineCrafter();
   }



    @Override
    public TileEntity createNewTileEntity(World world, int meta) {

       return new TileMachineCrafter();
    }


    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) {
        if(player.isSneaking()){
            return false;
        }
        if(!world.isRemote){
            TileMachineCrafter tilemachinecrafter = (TileMachineCrafter) world.getBlockTileEntity(x, y, z);

        }
        return true;
    }



}

 

Blockltx:

package ltx.Steves.Blocks;


import ltx.Steves.Utility.CreativeTabSteveMachine;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;

/**
* Created with IntelliJ IDEA.
* User: ltxmc
* Date: 3/2/13
* Time: 12:08 AM
* To change this template use File | Settings | File Templates.
*/
public abstract class ltxBlock extends BlockContainer{

    public EntityPlayer Owner;

    ltxBlock(int id,int me, Material material){
          super(id, me,material);
        setCreativeTab(CreativeTabSteveMachine.tabSteveMachine);
    }

    public void onPlaceBy(World world, int x, int y, int z, EntityLiving entityLiving){
          if(entityLiving instanceof EntityPlayer){
             Owner = (EntityPlayer) entityLiving;
           }else{
              System.out.println("Block placed by unknown or bug!");

           }

          int direction = 0;
          int facing = MathHelper.floor_double((double) (entityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
          switch(facing){
              case 0:
                direction = ForgeDirection.NORTH.ordinal();
              case 1:
                direction = ForgeDirection.EAST.ordinal();
              case 2:
                direction = ForgeDirection.SOUTH.ordinal();
              case 3:
                direction = ForgeDirection.WEST.ordinal();
          }
              world.setBlockMetadataWithNotify(x, y, z, direction);
    }
}

Link to comment
Share on other sites

Yes, make your Block extend Block.

It doesn't affect anything. The BlockContainer class is just the "vanilla" way of saying "Hey, this block has a TE." But since it doesn't support Metadata TileEntities, forge added hooks for that (hasTileEntity()), which are independent of BlockContainer.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.