Refactored a few things from Zach's enemy gen code (mostly to avoid
confusing name conflicts, and make things clearer for me - zero code
changes other than renames, though). Also added randomized enemy placement
in rooms.

Presently cube gen is disabled, since it's really grinding my computer to
a halt when I have all those cubes being spawned. Looking into
loading/unloading rooms dynamically next to see if this issue is addresed
by that.
Refactored things in the RoomCubes file so now the whole setup is WAY more
modular. Accidentally broke a few pieces of previously working code,
though - no longer properly killing blocks in front of passages, and also
no longer able to randomly distribute enemies. The former is (hopefully)
going to be addressed by perlin-noise seeding, and the latter will be
addressed by just exposing a member I wasn't during the code refactoring.
Further adapted the RoomCubes setup so there is some inheritance going on.
Basically, different cases are now basically children of simpler ones.
E.g.: a wall with a door in it is now just two standard walls with a gap
between them. Vastly reduces the amount of cases written into the code,
and gives a much clearer picture of where to change things if I'd like to
improve in the future.

The one downside is that currently walls with doors are MASSIVELY noisy,
since they're sampling on such a small grid. I'm thinking of passing a
pre-generated perlin noise grid to both walls, with info on which region
to sample for themselves. Not decided yet.

Regardless, still need more work on smoothing out perlin noise all around.
After that, I'll begin looking into implementing cooridors.
Fixed up a quick error with placing door wall cubes. Still seems to be a
small off-by-one error, but I'll look into that later.
Started to work on control adaption for OUYA

Controls now work on OUYA --- not on PC...

Controls hve been implemented in a somewhat hackish manner right now.
This was to show that it could be done/get a grasp on controls.

Todo before presentation tuesday:
Figure out why ceilign/roof doesn't draw
Figure out why sometimes lag (sometimes when projectiles move, sometimes
when enemies move, but its inconsistent when and what causes it.)
Run with a smaller room size
Controls are extremely touchy, be light on the buttons!!!

TODO:
CONTROLLER CLASS:
Context Aware!
Keeps track of 'debouncing' so buttons dont spam
makes it so controls can be used on ouya/pc at the same time
address any lag issues
Why are these not commited??

They belong here too.
Refactored most of the Ouya controller hooks to use GetButtonDown rather
than just GetButton. I think I might have missed a few, though.
Changed the enemies again to see if I can get the lag down on the OUYA and also changed the collision sphere again to get a better version. Everything should be working as expected on the enemies now. Will need to test this on the OUYA to see if there is still lag, but I think this will help quite a bit. Now they are only doing calculations on the player instead of colliding with multiple things. Not to mention, now the staff works such that the player can no longer hit the sphere collider and deal damage to the enemies. The player now has to hit the enemy directly in order to deal damage. After performance on the OUYA has been determined I can make changes again as necessary. Will start working on the bosses next. -Zach
Began READDING scaling, since it's probably causing problems. Lots of
oddities and wrong stuff so far, but I'm working on it.
Whoops, missed some merge conflicts! :o
A bit bigger commit than I should have had. Added pictures for switching between assembling menus. Added an alternative component scheme. Added some generation for component codes. Started generating categories of weapons
A bit of fiddling that made scaling up "work". Player hasn't been scaled
up yet, because I have no idea how to really do that without breaking
things, and the game seems to be going really slowly, but I can't tell
how much of that is just artifact of going "slower".
Ha, lol - was passing "wallDepth" rather than "wallWidth" to top and
bottom walls, so they were generating based on sizes of other walls. No
wonder the bug was so hard to pin down: only happened when the rooms were
unevenly sized (which was most of the time, but hard to identify).

Anyway, fixed that - things look to work on refactored stuff now.
Added some different bosses into the scene, and started modifying the boss AI scripts a little. Need to continue making these changes to the bosses and test the code that I just uploaded. -Zach
Massive code refactoring towards making corridors have cube placement. Not
functioning yet - just saving progress.
Fixed corridor alignment bug! Now I just need to actually add blocks back
in to the rooms, and implement InsideCornerRoomCubes blah structure, and
I'll have blocks placed everywhere except the small fork rooms. However, I
should be able to implement the small rooms with inside/outside corner
pieces without too much trouble, just need to put them together to make
that happen.

Once that's done, I'm basically done with this sprint. Huzzah!
OUYA controller support

Use the inputContextManager thingy to get the right controls for either
ouya or PC depending on what the game is compiled for. yay
Refactored item components to use codes. Assembling menu generates a list of all possible items that can be assembled (but nothing is actually made yet)
maybe fixed textures for floor and ceiling? not sure because somehow the
material got messed up - need to revert to see if it gets fixed.
Branched some stuff into new files, and put those into sub-directories.
Meta files moved appropriately. Also, began getting corridor cube
placement working. For the meantime, I'm just placing the outer-most layer
of cubes, because I'm hitting pretty terrible performance issues w/o it.
Seems like it may be manageable to extend, though.