Skip to content

Releases

1.5.26.11081

Choose a tag to compare

@mrHalfer mrHalfer released this 08 Nov 17:04
  • Build wooden fences from OSM lines tagged barrier=fence (new csrlin
    layer, code 82200000): lines that touch each other, site fences and
    house walls stitch into one continuous fence; roadways, rails,
    structures and water are skipped (export steps 3.577/3.58).
  • Furnished mansard in brick private houses (bed, bookshelves, table),
    including houses whose gable stands only one or two rows above the
    eaves; carpet compositions now also dress free space on the 1st floor.
  • Every private house gets 1-2 working stoves on the 1st floor, filled
    through their block entities (fuel, sometimes raw food); the random
    kitchen corner no longer adds extra furnaces there.
  • Basement mob nests now carry a real spawner block in the middle of the
    room (zombie, skeleton, spider or the new witch type).
  • Basements are now about half of private houses (was roughly one in
    three), and in the private sector spawners live only in basements.
  • Private houses split about half-and-half between brick and logs:
    brick now also covers big houses with a short gable.
  • Fixed straightening of private houses rotated off the axes: wrong
    rotation sign beyond 45 degrees and silently skipped north-south
    footprints.
  • Fixed powered rails: the block state now carries powered=true, so
    electrified rails boost minecarts right after the world loads.
  • Refreshed the application icon (resources/osmc.ico, osmc.png).
  • Test scene: two touching barrier=fence ways added to the generated
    fixture; verify gates updated (witch spawner, carpet counts, furnace
    block entities).

1.5.26.11073

Choose a tag to compare

@mrHalfer mrHalfer released this 07 Nov 20:41

The boundary polygon (--clip) was only applied when writing the archive, so
the ground, all tree/turf/planting stages built every chunk of the whole
noise-data rectangle: a small clip took ~13 min and a big one ~39 min with
the peak memory of ~26 GB (51 GB of commit) mostly spent on ground metadata
of chunks that never reach the archive (and freed only after the zip).

  • ExportRun::clipFillToBoundary() (called in buildGround after the forest
    extension) keeps only the chunks intersecting the polygon, plus the chunks
    of boundary buildings and small lakes kept whole (the same rules as
    assembleChunks uses) plus a one-chunk ring.
  • The pre-clip set is remembered in fillAllChunks and read by the tree-crown
    guards, so a boundary tree sticks its crown out exactly as before.
  • clipPath is rebuilt in the clip step and reset by assembleChunks before
    adding the polygon again.
  • The "chunks written" log counter uses the pre-clip count as before.

The exported world is unchanged (the decoded region chunk payloads are
identical; aquatic fauna keeps the same count, the individuals may pick
other spots of the same lake). Small clip: 13 min -> 13 s, peak 0.42 GB;
big clip: 39 min -> 3.5 min, peak 8.6 GB. Update .agents docs to the
post-refactoring export/ layout.

1.5.26.11072

Choose a tag to compare

@mrHalfer mrHalfer released this 07 Nov 17:13
  • osmc.pro: link curl by the exact gnutls file name (-l:libcurl-gnutls.so.4) when it exists; -lcurl follows
    the build host's symlink and could record a CURL_OPENSSL_4 symbol requirement that clean Debian 11/12 and
    Ubuntu <=22.04 cannot satisfy; the bundle always carries the gnutls build itself and rpath gives the
    runtime the very same library
  • make_release_linux.sh: the dependency closure now also walks the executable (cat with a file argument
    ignores the here-string input), the binary is always relinked (make does not see a LIBS-only change), the
    purity check runs a real ldd loop (find -exec VAR=x cmd never ran ldd at all) and also fails on
    symbol-version errors and on dependencies resolving outside the bundle past the allow list, a new check
    rejects glibc requirements above the Debian 11 floor
  • the bundle gained libQt5Concurrent (a direct dependency the old closure missed) and no longer needs the
    system OpenSSL/libcurl

1.5.26.11071

Choose a tag to compare

@mrHalfer mrHalfer released this 07 Nov 13:35
  • Ported the application to Linux: POSIX build script (build.sh, qmake + make),
    a libcurl-backed HTTP client for online tiles (app/httpclient_unix.cpp),
    headless --nogui without a desktop session (picks the offscreen Qt platform),
    bundled fonts via FONTCONFIG_FILE for the self-contained Linux bundle.
  • export/mcworldexporter.h: moved WorldOptions to file scope with a name alias
    (GCC rejects a nested struct with default member initializers as a default
    argument); missing includes for gcc in blocks.cpp, geom.cpp, tmcproject.h.
  • make_release_linux.bat/.sh: builds in WSL Debian 11 (the glibc 2.31 floor),
    bundles Qt/GDAL/PROJ/plugins/fonts/resources and packs
    OSMC--x86_64.AppImage (runs even without FUSE) plus
    OSMC--linux64.tar.gz — an OSMC/ folder mirroring the Windows zip
    (unpack and run OSMC/osmc).
  • run_linux.bat / run_linux_wsl.sh: launch the AppImage or an unpacked tar.gz
    bundle from Windows through WSL for testing (OSMC_WSL/OSMC_DIR/OSMC_APPIMAGE).
  • CI (.github/workflows/ci.yml): build + osm tests on Windows and Linux; the
    AppImage job builds in docker/Dockerfile.debian11 so artifacts keep the floor.
  • tests/harness/build_harness.sh and docs/porting-linux.md: the porting journal,
    build environment and the traps found on the way.
  • GUI: removed the obsolete "Load the map" button — the preview now loads
    automatically when the source is ready; the status line and hint texts updated,
    ru/zh translations refreshed (zh also picks up strings left from the rename).

1.4.26.11061

Choose a tag to compare

@mrHalfer mrHalfer released this 06 Nov 06:27

Renaming

  • The program is now called OSMC — in the user interface, the window title, the dialogs, the application description, the classifier warnings, the Russian translation and the READMEs (website: https://osmc.pro).
  • Executable: osmc.exe (was tMC.exe).
  • Application/settings name: OSMC — the first launch starts with the default settings (the old tMC settings are no longer read).
  • Renamed project files: osmc.pro, osmc.ico, osmc.qss, osmc.qrc, osmc_ru.ts / osmc_zh.ts (and the embedded osmc_ru.qm / osmc_zh.qm).
  • The project format is unchanged: .tmc files open as before.
  • In the world: the structure-locating datapack is now described as "OSMC: strongholds, ancient cities and ruined portals located"; ATTRIBUTION.txt says "…made from OpenStreetMap data with OSMC".
  • Build/test environment variables: OSMC_BUILD, OSMC_EXE, OSMC_GDAL.
    Refactoring (internal, no behaviour change)
  • The main exporter was split into modules: export/mcworldexporter.cpp went from 18,660 to 67 lines (a thin Export() wrapper).
  • Single-object voxelization: export/voxelize.cpp, class ObjectVoxelizer (22 stage methods, run() is a pipeline).
  • World building: export/exportrun.cpp, class ExportRun (the call parameters and the shared state are members; 42 stage methods; run() is a 39-line pipeline: prologue → voxelization → ground → vegetation → furniture → villages → points → fences → platforms → chunk assembly → zip).
  • Previously extracted: palette/blocks, geometry, sites, rails, NBT/regions, ground, building merging, facades, template loaders.
  • The behaviour is verified byte-for-byte on 5 reference worlds (a town, two districts, the metro, a park): the content is identical; the only difference is the datapack description line (a consequence of the renaming).
  • The full test suite (osm, shp, harness) is green.
    Compatibility
  • Worlds, .tmc projects and OSM data stay compatible; only the program/settings name and the datapack label in the world changed.

1.3.26.11052

Choose a tag to compare

@mrHalfer mrHalfer released this 05 Nov 14:38
  • Cemeteries: ~1.5x fewer stone crosses and jack o'lanterns, wider paths between graves
  • Cemeteries: buried chests twice as common; buried loot 20% expensive / 80% middling,
    ground chests mostly cheap loot with some middling
  • Cemeteries: the whole grave kit (gravestone and cross rows, stone crosses, pumpkins,
    monsters, grave trees) no longer spawns on paved roadways, parking lots and station
    squares, including roads that run through the cemetery polygon
  • Railway platforms: stone-brick half slabs now cover the whole platform polygon, not
    only its rim; slabs also follow the paving restored above underground halls and tunnels

1.3.26.11051

Choose a tag to compare

@mrHalfer mrHalfer released this 05 Nov 10:19
  • New point objects built on the map: a lighting mast (tower:type=lighting), a
    street bench (amenity=bench), a small street sculpture (artwork_type=sculpture)
    and a bus stop (highway=bus_stop) - a 5x3 three-wall booth laid along the
    nearest car road, the open long side facing the carriageway, its floor level
    with the ground. A new "rdcpnt" ground point source in the default 3D settings.
  • Cemeteries (landuse=cemetery): fenced grass plates the exporter turns into a
    dark forest - tall dense dark oaks, stone crosses, carved pumpkins and lit
    jack o'lanterns, zombie/skeleton/spider/witch spawns and loot chests, some
    buried under the turf and marked by a headstone; crosses and pumpkins never
    spill onto roads.
  • Rail platforms (railway=platform, recognized from mapped multipolygons) become
    boarding platforms paved with stone bricks and raised by a half-block of stone
    brick slabs; the slab yields its cell to lamp posts and street furniture.
  • Ordinary railway tracks run on a three-column-wide stone ballast (tram tracks
    get stone bricks); powered rails come every tenth rail on straight sections
    (was every twentieth) and sit on redstone, so they stay active.
  • OSM rules, point models table and default 3D settings updated accordingly

1.3.26.11041

Choose a tag to compare

@mrHalfer mrHalfer released this 04 Nov 13:34
  • Station entrance: a stone-brick apartment staircase replaces the ladder
    shaft (two-block flights, full-width landings, a lit ledge mid-flight);
    the pit stands strictly inside the station building and the exit lands
    flush with the ground; a smooth-quartz-and-iron frame with a hanging
    lantern fronts the doorway; tiny entrance huts are swept away and get
    the same street entrance; a building=transportation with subway=yes or
    a nearby subway_entrance node is recognized as a station.
  • Station vestibule: the whole first floor of a station building is laid
    out as an entrance hall - checker tiles, a ticket counter, vending
    machines, lamp posts and info panels; now furnished with waiting
    benches, a counter bell, waste bins, potted plants and posters; the
    cells in front of the entrance doors stay clear.
  • Subway: tunnels 5 columns wide, floors 5 blocks deeper (a lone hall
    17); only the nearest line bends to a station; long diagonals run as a
    10-block straight plus a 20-block correction; tunnel walkways stand a
    row over the rails.
  • Electrified rails never brake a cart: a redstone block under every
    powered rail (subway, surface lines with electrified tags, trams).
  • Fixed large metro projects appearing hung near the end: quadratic
    chest and forest-bbox scans removed, the progress bar got names for
    the exporter's inner stages.
  • GUI: clicking the export-destination label opens the saves folder; the
    Open file dialog starts in Documents\tMC; the Boundary tool is active
    on map load; playgrounds host baby villagers instead of golems.
  • Fixed vestibule vending machines and a lab block building as plain
    stone (minecraft:polished_blackstone was missing from the palette).
  • Russian and Chinese UI strings filled in (including the step names).

1.3.26.11031

Choose a tag to compare

@mrHalfer mrHalfer released this 03 Nov 05:16
  • building=train_station (CODE 44330000): a decorated hall underground with
    platforms, pylons, benches, a statue, a wall mosaic and hung lamps; its
    floor sits at the metro level, so tunnels run through the hall and any
    line within ~96 blocks bends to the station; lone stations dig the hall
    without tracks
  • the ladder to the surface starts INSIDE the station building now: the
    opening cuts through the lobby floor and is framed by a chiselled stone-
    brick portal with a glowing lantern under its beam
  • station hall lamps over the metro tracks hang from the hall ceiling now
    (they were left at the lower tunnel ceiling row and hung in mid air)
  • landuse=military: a fortified pad with walls, towers, gates and iron
    golems guarding it
  • no benches inside sports court markings
  • Boundary/Spawn button swap in the online map panel
  • full Chinese translation (translations/tmc_zh.ts, --lang zh)

1.3.26.11021

Choose a tag to compare

@mrHalfer mrHalfer released this 01 Nov 21:44
  • Subway lines (railway=subway + tunnel=yes) no longer fall through the
    rules: the exporter digs a real tunnel ~10 blocks deep with a two-block
    floor, a five-block interior with rounded top corners and a one-block
    mixed stone masonry lining; lanterns hang from the ceiling every few
    blocks. A subway without tunnel=yes stays ignored, as before.
  • Long diagonal OSM lines are straightened to straight runs of up to 80
    blocks joined by right-angle bends; stations and curve breaks stay in
    place, slopes never land on a bend (a sloped rail cannot turn).
  • Tunnel shells are built as a union over all tracks: crossing corridors
    fuse into one opening, a crossing of different levels keeps the floor
    slab of the upper tunnel, turn cells carve both cross-sections - no
    stray pillars inside the corridor.
  • Surface railways with an electrified tag other than no get powered
    rails too, with ordinary stone replacing the ground under the track.
  • Tram tracks (railway=tram) are electrified even without an
    electrification tag, over stone brick ground.