SUDO = Super User DO
Pseudo = "fake"
And yes, you are. You are incorrectly determining the end of the loop and the set-floor position booleans. If it finds a floor, then the loop exits, right? In which case make it so that when it sets the floor the loop exits. There's a dozen ways to do this and all of them fail proof. You're trying to use two checks that don't have an inverse relationship (i.e. isGround(state) == !isAir(state) is not true for all possible blockstates).
Again:
What happens if the column at the search location contains a tree? (Log on top of dirt)
Should be able to with IntelliJ too.
But yes, it depends on the IDE.
Mind, there are some bits of your code that even if you make non-breaking edits, won't affect the running code, because that part already ran and won't run again. E.g. changes to constructors, your main class, etc. The objects aren't reinitialized, just that their methods are updated.
If you mean "Can I edit code while running the game", it depends on your IDE (but most of them have this feature). Eclipse has a little green beetle button next to the play button that runs the game in debug mode. While in debug mode, any non-breaking edits will be instantly noticeable in-game. If you make a breaking edit, Eclipse will tell you that you need to relaunch the game before the edit has an effect. I'm not sure about Intellij though.
An update for anyone who's interested. I've made a searching algorithm that finds all connected trunk blocks, and connected leaves up to a certain count, starting closest to the trunk. I use it in this method, (and use the search results to make all the tree blocks fall). If anyone has ideas on how to improve the performance I'd be grateful - I know I've used several different collections to keep track of all the checking but I couldn't think of any way to reduce that further.