Jump to content

How to get the coordinates of a block.


Flayr

Recommended Posts

I cannot believe that I have to post this, but I can't seem to find the answer by looking through the source.

How do I get the coordinates of a block inside it's class as variables that I can use outside of a method that has x y and z as parameters.

Link to comment
Share on other sites

Without a TileEntity then you can't.

 

Unless you store a reference to every block placed in a list etc.

But then a TE is what you would want :P

 

You really can't store ANYTHING inside a block except for metadata.

If you need to store more than that then you need a TE.

For a full explanation as to why see: http://greyminecraftcoder.blogspot.com.au/2013/07/blocks.html

 

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Without a TileEntity then you can't.

 

Unless you store a reference to every block placed in a list etc.

But then a TE is what you would want :P

 

You really can't store ANYTHING inside a block except for metadata.

If you need to store more than that then you need a TE.

For a full explanation as to why see: http://greyminecraftcoder.blogspot.com.au/2013/07/blocks.html

 

I don't want to store any data I just need to get the coordinates of the block for use in methods, here is an example that would require the x coordinate of the block:

        public TileEntity createNewTileEntity(World par1world){
            if(x>0){
                return new TileEntityExample();
        }else{
            return new TileEntityExample2();
        }

       

 

 

Link to comment
Share on other sites

That's impossible mate.

But what you could do is create a new tileEntityA which in it's update method checks the Xcoord and then repalces its self with either TileEntityB or TileEntityC

 

((TE's get their positions set during their construction))

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

The block coords aren't static so you can't. Also block pos is stored somewhere is World

Static means that there is only one instance of a variable for all members of a class, so if block coordinates were static, all blocks would have the same coordinates.

 

If a member variable is not static, that means you need an instance of the class to access the variable. In other words, the object has to exist in order for you to access its data; in this case, you need an existing TileEntity object in order to access its x/y/z coordinates, because if it doesn't exist, how could it have a position?

 

In a nutshell, this is not a case in which you want to use static objects, and Mazetar's suggestion is your best bet.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



×
×
  • Create New...

Important Information

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