Skip to content

0.9.3 Monorepo, tests and fixes

Choose a tag to compare

@ringavirda ringavirda released this 20 Jun 21:47

Smex

Added

  • Bell hopper drops by default. A freshly built blast furnace now feeds itself
    without the player first discovering the Ctrl + right-click toggle.
  • Chisel residue out of the Bessemer converter when only a little hardened metal
    remains, instead of having to break the whole vessel; the cooldown coefficient is
    configurable.
  • Chisel molten canal taps and pedestals, matching the canals and barrels.
  • Cooldown coefficients for taps, barrels and pedestals (how fast their metal
    cools), and the cooldown speed now syncs to the client so the glow matches the
    server.
  • /exmod molds <plate|ingot|rod|all> <on|off> to enable/disable the mod's tool
    molds (hidden from creative + handbook and their recipes removed when off).
  • Recipe-cost switching for the steam/steel chains via the shared /exmod recipes
    command.
  • Orphaned machine blocks now self-heal - a furnace door/tap/tuyere left without
    its block entity (a load failure or desync) gets a fresh one recreated on load
    (via the exlib healer), so it is interactable and breakable again rather than an
    inert ghost.
  • Russian and Ukrainian translations.

Changed

  • Molten chiselling generalized into one shared behaviour across canals, barrels
    and the converter (consistent tool, sound, wear and recovery).
  • Converter (and boilers) no longer drop their base block when broken - they
    scatter their build materials instead of dropping the whole mega-block.
  • Raised mining-tier / break-tool requirements for mega-blocks.
  • Converter status strings are more descriptive.
  • Structures read live config changes without a world reload.

Fixed

  • The Bessemer converter dropped itself when broken.
  • Corrected the converter chisel cell position.
  • Fixed engine animation direction when powering mechanical power.
  • The molten canal tap allowed placing barrels on structure filler blocks.
  • Fixed broken cowper-stove behaviour.
  • Fixed the bell-hopper client/server inventory handshake desync (grid clicks
    silently desyncing).
  • Fixed recipe item variants and the vanilla crushed-ore ratio (EM compat).
  • Fixed the converter transmission recipe rod requirements.
  • Assorted localization issues.

Ppex

Added

  • Manual boiler draining with buckets - take water back out of a boiler by hand.
  • Localizable measurement units. .exmod measure reports your display units and
    .exmod measure metric / imperial switches them (L/atm/°C vs gal/psi/°F); a
    display-only change, the simulation stays metric.
  • Recipe-cost levels for ppex's construction recipes, switchable via the shared
    /exmod recipes command.
  • Russian and Ukrainian translations.

Changed

  • Boilers no longer have an upper boil limit - water is gated on the way in, so
    the old hard cap was removed - and the boiler water-draw speed is gated to
    10 L/s
    , so it no longer gulps its whole intake buffer in one tick.
  • An open boiler lid drops pressure to 0 atm while idle.
  • Molten chiselling generalized into the shared behaviour (consistent
    tool/sound/recovery handling).
  • Boilers no longer drop their base block when broken - a broken boiler scatters
    its build materials (custom salvage ratio) instead of dropping the whole mega-block.
  • Raised break-tool requirements for mega-blocks.
  • Machines read live config changes without a world reload.

Fixed

  • The Watt engine now displays its togglable pressure band correctly.
  • The Cornish engine now correctly costs bricks to construct.
  • Assorted valve issues.
  • Network blocks that are not pipes could incorrectly burst.
  • Right-click-constructable blocks ignored their last construction stage when
    computing dropped materials.
  • Handbook: command strings displayed incorrectly, and measurement units did not
    refresh mid-session after a .exmod measure change.
  • Block display-name ordering and assorted localization issues.

Exlib

Added

  • Orphaned block-entity healer. A server-side system that recreates a block
    entity when a block is left in the world without one - e.g. a block entity
    discarded on chunk load (a load exception) or lost to a server desync, which
    otherwise leaves an inert, often unbreakable block. It runs automatically as
    chunks load (and once over already-loaded chunks at startup), scoped to block
    entities registered through the mod's attribute system so vanilla/other-mod
    entities are never touched.
  • /exmod heal command. Sweeps the loaded chunks and recreates orphaned block
    entities on demand, for an operator who does not want to wait for the automatic
    on-load pass. Server-side, gated behind the /exmod root's controlserver.
  • Config framework. A generic, versioned per-mod config store with
    source-generated value accessors, version-reset migrations, and legacy file-name
    renaming. Values can be marked manageable and edited live via
    /exmod config <mod> [value] [new] - applied immediately, no world reload.
  • Min/max range gates on config values: out-of-range edits are rejected with a
    clear message.
  • Recipe-cost profiles. A per-mod catalogue framework that rebalances grid and
    right-click-construction ingredient quantities, switchable with
    /exmod recipes <mod> <level>.
  • Content-gating helper (ExContentGate) for hiding a block/item from creative
    and the handbook and removing its recipes - the framework behind smex's mold
    toggle.
  • Command framework. Attribute-driven [CommandRegister] / [SubCommandRegister]
    registration under a shared /exmod (server) and .exmod (client) root, so
    dependent mods hang their own sub-commands off one root.
  • Production-machine base (BlockEntityProductionMachine) and machine-port
    helpers, shared by engines, furnaces, converters and sub-machines.
  • Legacy support framework. Shims and polyfills that let the family build and run
    against Vintage Story 1.21 and 1.20 alongside 1.22.
  • Russian and Ukrainian translations.

Changed

  • Internal reorganization into Blocks/{Networks,Structures,Machines,Migrations,Construction,Healing},
    Registries/{Entities,Commands,Config,Preferences,Recipes}, Helpers,
    Renderers and Legacy.
  • Registration attributes split. The single [EntityRegister] became
    kind-specific [BlockRegister], [ItemRegister], [BlockEntityRegister],
    [BlockBehaviorRegister], [BlockEntityBehaviorRegister] and
    [CollectibleBehaviorRegister], each validating that the class derives from the
    expected base type.
  • Right-click-construction salvage: the ratio of materials dropped when a
    partially-built or finished structure is broken is now configurable.
  • Multiblock structures read live config changes without a world reload.

Fixed

  • Right-click-constructable blocks ignored their last construction stage when
    computing dropped materials.
  • Non-pipe network blocks could incorrectly burst.
  • Block display-name ordering and assorted localization issues.
  • /exmod config value display formatting.