I have an event that adds a Block to a HashSet when right-clicking with a compass. However, I want to add all blocks of the same type connected to the first block to the set. How should I do this to prevent lag?
Iterate over all connected blocks of same type
1.3k Views Asked by Aly At
1
There are 1 best solutions below
Related Questions in JAVA
- Fatal error: Uncaught exception 'Zend_Acl_Role_Registry_Exception' with message 'Role 'admin' not found
- Uninstalling php 5.3 in ubuntu 14.04
- zend soap server reading xml attributes
- Failed installation of zend-escaper with Composer
- Composer cannot find Git windows 8
- Can/How does one make Zend's default (or any other autoloader on the stack) ignore a class?
- Zend Framework Active Directory authentication
- Zend: 500 error instead of 404
- How to force Zend_Navigation_Page_Mvc to generate an href
- Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3 bytes) in E:\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
Related Questions in ITERATOR
- Fatal error: Uncaught exception 'Zend_Acl_Role_Registry_Exception' with message 'Role 'admin' not found
- Uninstalling php 5.3 in ubuntu 14.04
- zend soap server reading xml attributes
- Failed installation of zend-escaper with Composer
- Composer cannot find Git windows 8
- Can/How does one make Zend's default (or any other autoloader on the stack) ignore a class?
- Zend Framework Active Directory authentication
- Zend: 500 error instead of 404
- How to force Zend_Navigation_Page_Mvc to generate an href
- Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3 bytes) in E:\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
Related Questions in MINECRAFT
- Fatal error: Uncaught exception 'Zend_Acl_Role_Registry_Exception' with message 'Role 'admin' not found
- Uninstalling php 5.3 in ubuntu 14.04
- zend soap server reading xml attributes
- Failed installation of zend-escaper with Composer
- Composer cannot find Git windows 8
- Can/How does one make Zend's default (or any other autoloader on the stack) ignore a class?
- Zend Framework Active Directory authentication
- Zend: 500 error instead of 404
- How to force Zend_Navigation_Page_Mvc to generate an href
- Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3 bytes) in E:\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
Related Questions in BUKKIT
- Fatal error: Uncaught exception 'Zend_Acl_Role_Registry_Exception' with message 'Role 'admin' not found
- Uninstalling php 5.3 in ubuntu 14.04
- zend soap server reading xml attributes
- Failed installation of zend-escaper with Composer
- Composer cannot find Git windows 8
- Can/How does one make Zend's default (or any other autoloader on the stack) ignore a class?
- Zend Framework Active Directory authentication
- Zend: 500 error instead of 404
- How to force Zend_Navigation_Page_Mvc to generate an href
- Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3 bytes) in E:\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
First of all, you make a
BlockFacearray which represents all the 6 sides of blocks. (Front, back, left, right, above, and underneath).Next, you make a private method that goes through all these blockfaces and checks if the block at that side if of the same type and adds these blocks to a list of blocks that are yet to be checked. We will use this list later.
In this method,
resultsis the Set of all Blocks that are connected to the block that was clicked with the compass,todois the list of blocks that are yet to be checked the same way.Finally you use the following method to go through all the blocks that are yet to be checked and call the private method above for all these blocks. This is the most efficient way I could come up with.
Note that you can not run these methods on an aSync thread, because this can lead to a
CurrentModificationExceptionand this can cause strange behavior in the game itself, depending on what you use it for.