Blueprints, blocks, portals, meta all around

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
So it is past 1:30 am as I write this and I have to get up early to go to work, wee :D

But I'm tired of trying to push to get this piece more complete before committing - so here's a first very incomplete draft that totally shouldn't go anywhere yet - https://github.com/MovingBlocks/Terasol ... 5ffe90b8cf

It doesn't include the ES stuff I've been tinkering with (I'll make a separate thread for that when ready) as my understanding of that is still growing - getting somewhere good though, especially today and yesterday. I had entities being added but currently commented out stuff and didn't commit everything.

Mainly it adds two new logical block structures - BlockCollection and BlockSelection

The Collection is a Map of positions & blocks, and really starts as almost the same thing as the old Blueprint class, which is now abstract and owns a Collection. The Collection also has an "attachment point" which is a way of setting where the Collection's blocks should be placed relative to a given target position. It has build methods and assorted utility.

The Selection is just the positions solo (which the Blueprint class also had) for when we don't care about the blocks, only positions. The positions are individual and independent, maybe we'll have a separate square / grid thing (current grid is a highlight and used for the square copy paste IIRC). That's not nearly as done yet as that's where I bump into the ES on trying to pull back Portal entities to test for overlap.

Oh, yeah, and there's a slightly fancier Portal for testing that you can place in the world with a new debug tool that has a goofy icon I didn't even realize I was ending up with until it happened - and now it has grown on me!

We had direct references to maps and sets of blocks and positions before (all over and somewhat inconsistent still), but I'm figuring wrapping them might help with consistency and utility, and would make it easier to change the underlying structures in the future. Although I'm not sure if the wrapping adds enough cost to where it'll outweigh any benefit in the future. One of those "I could use some feedback here" bits

But really - this is barely even ready for feedback. But I've been hitting time barriers and falling behind (just see how far behind my new meta branch already is, heh) and am tired of my cluttered workspace. And I even asked Begla to feel free to tinker with a 3D spinny representation of said BlockCollection tomorrow, then had trouble even getting it finished enough to commit tonight ;)

So there it is - more to come very soon! And don't pay attention if some of this comes off as sleep-deprived rambling, I'll clear things up later when more time arrives - I'm sure it needs lots of refactoring as I'm not totally happy with the architecture, but have some confidence in the direction... :geek:
 
Top