today i made a library of babel generation tool in minecraft. i learned some things about command blocks and redstone, neither of which i'd never really used before
the biggest challenges were caused by the fact that the rooms are hexagonal and i can only clone rectangular areas. the way i solved this meant the cloned areas overlapped, i didn't see this at the time but on reflection i think i could've not had the regions overlap by using a larger area, which is interesting but i wouldn't have wanted to use this because i need to be able to delete individual rooms easily:
it took a while to figure out the ideal dimensions for the hexagons, and i had to alter the design of the room many times because it wouldn't line up properly when cloned
it isn't very accurate to the short story which i don't mind. most notably there are no stairs and only one floor in the y direction, which i prefer
i get lost in these rooms easily (it's even visible near the end of the video), and this isn't very useful to me in its current state. i added the room clear button to try and keep the space closed, however it's just cloning from a separate template with no lights or controls, and will remove one light from each adjacent rooms (more tolerable in my opinion than leaving random lights visible through empty doors). this still doesn't make the space feel closed to me. a better solution would be to fill it with stone, but it would have to be on a timer of a few seconds so you don't get trapped in the center. not sure what the best way to achieve this would be
the plan is to use this tool to create closed spaces that can then be manually modified and serve as scenes for visualisation. other next steps include creating different templates and somehow choosing between them when generating a new room. i will want a y direction eventually with stair templates but that probably won't be much more difficult than what i've already done
it might have made more sense to develop a mod to solve this and i think i may need to look into that (or a data pack? i've never worked with either) in order to get any further