def main(plt, tiles, dividingTiles, startTileName, objects, level_scale, GROUP_NO, path): # Global (above a specific group) preperations prepTiles(tiles) tile_groups = seperateGroups(tiles, startTileName, dividingTiles) groupBounds = getGroupBounds(tiles, tile_groups) prepSets(sets, pads) # Group specific preperations currentTiles = set(tile_groups[GROUP_NO]) fig,axs = prepPlot(plt,groupBounds[GROUP_NO]) tilePlanes = getTilePlanes(currentTiles, tiles, level_scale) # Draw stuff :) drawTiles(currentTiles, tiles, (0.75, 0.75, 0.75), axs) markStairs(tilePlanes, tiles, (0.4,0.2,0), plt) # make generic drawTileHardEdges(currentTiles, tiles, (0.65, 0.65, 0.65), axs) drawGuards(guards, currentTiles, axs) drawObjects(plt, axs, objects, tiles, currentTiles) drawDoorReachability(plt, axs, objects, presets, currentTiles, set(excludeDoorReachPresets)) drawCollectibles(objects, axs, currentTiles) drawActivatables(axs, activatable_objects, objects, currentTiles) # Save saveFig(plt,fig,os.path.join('output', path))
def main(plt, tiles, dividingTiles, startTileName, objects, level_scale, GROUP_NO, path): # Global (above a specific group) preperations prepTiles(tiles) tile_groups = seperateGroups(tiles, startTileName, dividingTiles) groupBounds = getGroupBounds(tiles, tile_groups) prepSets(sets, pads) # Group specific preperations currentTiles = set(tile_groups[GROUP_NO]) fig,axs = prepPlot(plt,groupBounds[GROUP_NO]) tilePlanes = getTilePlanes(currentTiles, tiles, level_scale) # Draw stuff :) drawTiles(currentTiles, tiles, (0.75, 0.75, 0.75), axs) markStairs(tilePlanes, tiles, (0.4,0.2,0), plt) # make generic drawTileHardEdges(currentTiles, tiles, (0.65, 0.65, 0.65), axs) drawGuards(guards, currentTiles, plt, axs) drawObjects(plt, axs, objects, tiles, currentTiles) drawDoorReachability(plt, axs, objects, presets, currentTiles, set(excludeDoorReachPresets)) drawCollectibles(objects, plt, axs, currentTiles) drawActivatables(plt, axs, activatable_objects, objects, currentTiles) # Archives specific testing # Ignore the stairs since they overlap doorAddr = 0x1D36C8 def openNatDoor(pnt): hinge = objects[doorAddr]["hinges"][0] x,z = np.subtract(pnt, hinge) pnt = np.add((z,-x), hinge) return pnt # Object on the boundary isn't really supported, but better to be more accurate nat = [g for g in guards.values() if g["id"] == 0x00][0] drawFOV(nat, [0x34, 0x3A, 0x39,], tiles, guards, objects, opaque_objects, plt, ignoreTileAddrs = [0x1AD70C], objTransforms = {doorAddr:openNatDoor}) # Save saveFig(plt,fig,os.path.join('output', path))