Runix-Minecraft / Runix

Home of the forge based, Runecraft inspired Minecraft mod
3 stars 0 forks source link

Two Faith Islands inside of each other cause an infinite loop #31

Closed 0xilly closed 10 years ago

josiahseaman commented 10 years ago

Okay I've been giving this issue a lot of thought. It really boils down to how we want Faith Islands to interact with the chaining rules. This decision will affect what kind of structures people can make. The two viable options are:

talwyn commented 10 years ago

If I'm speaking out of turn here, please let me know. However:

Just my two cents. Now: back to reviewing the code before jumping in the deep end...

josiahseaman commented 10 years ago

It makes me ridiculously happy that someone not currently on the project commented on one of my issues. All that typing finally paid off.

I think you're right. Since Option 1 is a subset of the features that Option 2 supports, there's no downside to using Option 2. Even if there was an additional Energy Cost, that's optional and could be sidestepped by different building. Also, the cost accounting isn't that hard. RuneHandler mediates structure Chaining by calling addYourStructure() so in the end you get one giant glob of blocks with no duplicates. You can just say getMoveCost( structure.size() ) and you're done.

Talwyn, if you want to be included in our nightly coding parties I'd be more than happy to add you. I just need a skype username.

josiahseaman commented 10 years ago

Option 4: Each move command has a radius attached to it which acts as a measure of authority. Peers (equal radius) will not chain or move each other's center block, even though they overlap. However, larger islands can command smaller islands to move. Radius 6 can command Radius 5 to move and it will move all blocks. If a Radius 4 is sitting on top of a Radius 7 anchor (center block) it can move normal blocks around it, but the Radius 7 gold block (center) will not itself move. Finally, Large Faith islands can transfer their authority to subordinates, so: Radius 7 -> Radius 4 -> Radius 6 is a valid Chaining sequence even if 6 is not directly inside 7. This allows a truly huge variety of options.

Note: In order to minimize accidental vandalism, this option requires that Air block inside a Faith island radius count as colliding against solid blocks in the terrain or other Faith islands. This is to keep people from accidentally picking up blocks in the invisible radius.

josiahseaman commented 10 years ago

Current status: Faith appears to work correctly but FTP crashes.