All I need is to store a value in a grid, I can then use my lookup system to get the correct sprite to draw after the ground has been drawn.
I might be able to get away with adding decimals to indicate which sprite frame to draw, so you can still have different patterns.
If not, I can store arrays in the grid instead, then I can skip the lookup and just have; grid[# x,y] = floorType,sprite,frame instead. Which is basically what I do for my ground when there's an overlay (although with that it's 2 separate grids, one for the base ground tile and one for the extra info).
I can keep things like faster movement over flooring and buildings needing them by checking the grid coordinates instead of doing a collision check.
It's funny how scared I was of grids when I first started making this (the documentation hammers home that point) and now I'm using them for a bunch of stuff
Heck this would save me having to do adjacent checks when placing floor to see if there needs to be an end piece, since the end will automatically be drawn over because draw priority works topleft to bottom right.
Means I can't have the building placement effect though. I couldn't get the tween system to work with array values, so one nested in a grid is probably out too.
Can do the same with Roofing too...then I can skip drawing the roof if the grid x/y is z distance to player....
edit; actually depth probably wont let roofing work
0 comments