- [x] Update mcInterface.py to work with 1.18 map format, https://minecraft.fandom.com/wiki/Chunk_format - [x] decode 9bit Heightmaps, expose to scripts - [x] unpack on read - [x] repack when chunk is saved to disc - [x] world height updated to 384? Yes, min height is -64, max is 319, for a total internal storage value of 384, modify world height and user-facing coordinates. Heightmaps store val+65. - [x] section format with block state palette - [x] block indexing is re-ordered to YZX (same as before) - [x] blank section generation - [x] read block data - [x] unpack block data and palette on chunk read - [x] pack block data with variable width packing on file save - [x] try to parse pseudo-code in the wiki: https://minecraft.fandom.com/wiki/Chunk_format#Block_format - [x] "Add byte array" optional? See if I can get an example to work with. Looks like this was before the palette system. Ignore. - [x] Is palette always sorted by occurrence frequency? Check. - [ ] Block Entity Data would be nice to be able to parse and edit - [ ] edit mobs too. - [ ] Biome data is handy too, see if that's encoded standard - [ ] test changing chunk Status to "light" in order to dirty the lighting and force a re-calc - [ ] Once things are working again, see what you can do about deleting data_ob from all the tags. It shouldn't be hanging around as a shared pointer in all the NBT tag objects. - [ ] fix all existing scripts to work with the new block data format - [x] Forester Updates - [x] convert all foliage in section to non-decaying variety - [ ] larger foliage clusters for larger trees - [ ] branching roots and branches - [ ] simulated growth with damaged sections for more interesting shapes - [ ] use Squares and canvasses to do incremental growth of damaged sections? - [ ] randomized offsets for each slice - [x] Ore Reduce Updates - [x] process all chunks in the save file? - [x] search for block types in section palette - [x] grab whole ID array and step through each item - [ ] excavator, put all the "reduced" ore on the surface in a big pile - [ ] mineshaft, piles tailings, builds shafts and tunnels to all ore spots - [ ] consume appropriate amount of food from inventory? - [x] Line Rail Updates - [x] fix up linerail, there was some modified code somewhere, or just fix it up anew - [ ] New Road Paving Script - [ ] needs a catchy name - [ ] slopes that follow terrain where possible - [ ] obstacle avoidance and switchbacks - [ ] Proper Bridges that rise up over water and deep gaps - [ ] gravel fill for small gaps - [ ] Street Lights - [x] StarStone - [ ] excavate whole sections at once for larger craters - [ ] estimate contents based on palette instead of checking each block - [ ] aggregate block type by quantity instead of storing each one - [ ] scatter blocks by distribution pattern instead of "toss" and "kick" each one individually - [x] Wizard Mountain - [x] fix log detection - [ ] flood-fill trees and foliage - [x] update the heightmaps - [ ] handle block entities and mobs properly. - [ ] propagate fluids (water and lava?) at edges. - [ ] Option to operate at the Section scale. Should work much faster. - [x] close single square islands? - [ ] CaveDiver - [x] cavern mode? Progressively larger height-scale near the center. Spikes, etc. - [ ] better stalactite code. Lower the ground and raise the ceiling? - [ ] clean up the janky codebase - [ ] better large-scale structures - [ ] add pointed dripstone sparingly - [ ] Garden script - [ ] garden plots - [ ] paths - [ ] flowers - [ ] trees - [x] wall around the outside - [ ] Revive Groundwork - [x] semi-flatten the ground - [ ] lay streets - [ ] subway tunnels? - [ ] make/fix a castle script - [ ] convert "square" and canvas from CaveDiver and Wizard Mountain to stand-alone code - [ ] inside mcInterface? Or in a separate module? - [ ] Break out crossection and sphere from forester and starstone as well? - [ ] Other helper classes or functions? - [ ] offset layers - [ ] partial selection offsets - [ ] nested canvas - [x] get walls working - [ ] use walls to build towers and main walls - [ ] use main walls and towers to build castles - [ ] add style - [ ] look up cool castles - [ ] ask the kids about the best castles - [ ] houses, huts, and buildings (towers) - [ ] roof in offset layers - [ ] windows in high offsets - [ ] stairs for roof material - [ ] roof ridge decorations - [ ] multi-level buildings - [ ] stairs - [ ] straight - [ ] spiral - [ ] open-center atriums - [ ] uneven wall heights - [ ] reducing and expanding floorplans - [ ] exterior decks - [ ] doors and room connectedness - [ ] meta-script that calls other scripts - [ ] linerail to go in the direction the player is looking - [x] trees planted around player - [x] crater(s) around player - [ ] big crater + trees for a semi-walled grove, convert stone to cobble? - [ ] pocket dimension - [ ] nuggets to set size? - [ ] crater and wizard mountain as excise shapes - [ ] sort fort, to sort out all your chests - [ ] uplift in Minecraft by moving and filling sections?