Skip to content

Instantly share code, notes, and snippets.

@hanleybrand
Created December 4, 2023 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hanleybrand/2f879810cdb40aea6cffbd0cd970bb5b to your computer and use it in GitHub Desktop.
Save hanleybrand/2f879810cdb40aea6cffbd0cd970bb5b to your computer and use it in GitHub Desktop.
lost cities asset system interrellation chart
graph classDiagram
    LostCitiesProfile --> worldstyle
    LostCitiesProfile --> style
    worldstyle --|> style
    worldstyle "1" o--|> "*" citystyle
    worldstyle --|> "1" scattered

    citystyle --> style
    citystyle --> citystyle
    citystyle "1" o--|> "1..*" building
    citystyle "1" o--|> "1..*" part
    building "1" o--|> "1..*" part
    scattered "1" o--> "1..*" building
    style "1" --|> "*" palette

    palette "1" o--|> "*" char
    part "1" o..|> "*" char

    char *..> variant

    note for part "can contain a palette unique to itself, \na refpalette (palette name) or \n reference blocks defined in the citystyle.style list of palettes)"
    note for char "block is a specific block, \nblocks chooses one random choice per char in a part, \nvariant is also a per-block randomizer"
    note for variant "functions as a random block generator within a palette"

    namespace config_folder {
    class LostCitiesProfile{
         ƒ config/lostcities/profiles/*.json
        worldStyle(worldstyle)
        cityStyleAlternative(citystyle) 
    }
    }
    namespace datapack_modname_data_folder {
    class worldstyle{
        ƒ lostcities/worldstyles/*.json
        List citybiomemultipliers
        List~citystyle~ citystyles
      outsidestyle(style)
      scattered(List~scattered~)
      citystyles(List~citystyle~)
    }

    class citystyle{
        ƒ lostcities/citystyles/*.json
      style style
      List buildingsettings
      List~char~  streetblocks
      List~char~  parkblocks  
      List~char~  corridorblocks  
      List~char~  railblocks   
      List~char~  sphereblocks           
      inherit(citystyle)
      selector buildings(List~building~)
      selector multibuildings(List~building~)
      selector fronts(List~part~)
      selector stairs(List~part~)
      selector fountains(List~part~)
      selector parks(List~part~)
      selector raildungeons(List~part~)
    }
    class style{
        ƒ lostcities/styles/*.json
        common(palette)
        default(palette)
        blockpalettes(List~palette~)
        glass_palettes(List~palette~)
        variation_palettes(List~palette~)
            }
    class palette {
        ƒ lostcities/palettes/*.json
        List~char~ 
    }
    class scattered {
        ƒ lostcities/scattered/*.json
        String terrainheight
        String terrainfix
        Int heightoffset
        buildings(List~building~ )
    }
    class building {
        ƒ lostcities/buildings/*.json
        List~char~ palette
        refpalette(palette)
        parts(List~part~)
    }
    class part {
        ƒ lostcities/parts/*.json
        Int xsize
        Int zsize
        List~char~ palette
        List slices
    }
    class variant{
        ƒ lostcities/variants/*.json
        Int random
        String block
    }
    class char { 
        String block
        String damaged
        blocks(List~block~)
        variant()
    }
    }   
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment