Skip to content

Releases: zhenzi233/TimeBus

v1.0.15 (beta)

v1.0.15 (beta) Pre-release
Pre-release

Choose a tag to compare

@zhenzi233 zhenzi233 released this 12 Aug 15:24

v1.0.15 (beta)

  • Feature: Time Slow Bus - a new AE2 cable part that slows down a row of ITickable blocks (furnaces, brewing stands, hoppers, most mod machines, MM/Mek controllers): their update runs once every N ticks (speed cards 2,4,8,16,32 -> half to 1/32 speed); fuel and progress slow down together, total output stays constant; mutually exclusive with acceleration (slowdown wins); new slowBus config category and GUI
  • Fix: Time Slow Bus GUI crash - missing FUZZY_MODE setting (ContainerUpgradeable throws without it)
  • Fix: MM recipe duration acceleration capped at 32x (MAX_MM_EFFECTIVE_SPEED) - stacking buses/wands or large configs could round the recipe total time to 0/1 tick and break progress; energy modifiers share the same effective speed so per-recipe energy stays constant
  • Fix: MixinWorldTileUpdate moved to an early mixin (minimal coremod + timebus.early.mixin.json) to fix the MixinTargetAlreadyLoadedException / Re-entrance startup crash on the World class
  • Change: Time Slow Bus now uses the AE2 import bus look (original geometry, textures and item model); crafting recipe matches the Time Bus layout with an Annihilation Core in the center

Files: timebus-1.0.15.jar (release) · timebus-1.0.15-dev.jar (dev) · timebus-1.0.15-sources.jar (sources)

v1.0.14

Choose a tag to compare

@zhenzi233 zhenzi233 released this 12 Aug 14:11

v1.0.14

  • Feature: explosion synthesis - drop a Singularity and an Iron Ingot/Block on the ground and detonate an explosion to transform them into a Time Inscriber Template (JEI shows the method as text info; new explosion config category)
  • Change: removed the crafting-table recipe for the Time Inscriber Template (obtain via explosion synthesis or inscriber replication)
  • Change: Time Wand default speed multipliers are now 32,64,128,256,512
  • Fix: Time Wand no longer charges for clicks on non-acceleratable targets; MM controllers show a targeted hint when MM acceleration is disabled
  • Fix: Time Wand batch transfer with ME Import/Export Buses works from any angle (precise part hit detection)
  • Fix: Time Wand MM recipe acceleration is tracked and cleaned up on machine removal / chunk unload / shutdown
  • Perf: single Time Wand click workload is capped (512 tile updates / 2048 random ticks); extreme configs no longer overflow
  • Fix: particle bursts are broadcast by the server (visible to all players)
  • Fix: wand preview highlight now matches behavior (sneak only, 4.5 block reach, all acceleratable blocks)

Files: timebus-1.0.14.jar (release) · timebus-1.0.14-dev.jar (dev) · timebus-1.0.14-sources.jar (sources)

v1.0.13

Choose a tag to compare

@zhenzi233 zhenzi233 released this 11 Aug 14:00

v1.0.13

更新后请删除 run/client/config/timebus.cfg 一次:配置文件已重组为 bus / timeGenerator / wand / mm / mek 分类,旧键不再读取。

新功能

  • 时间总线 / 时间杖可加速 Mek 发电机(风力/燃气/生物/太阳能/先进太阳能/热力/大型多模块):加速时每 tick 多产 N 倍电,不额外消耗燃料(开挂产电,配置项 Generator Acceleration Enabled 默认开启)
  • 配置界面中英双语:字段与描述随游戏语言切换

修复

  • 发电机加速不再吞掉能量插入(Redirect handler 执行真实 insert)
  • 总线 GUI 速度/范围/耗电/流体速率插卡后立即刷新(服务端同步)

其他

  • JUnit 测试骨架(16 个用例)
  • README 版本徽章动态化、Forge 更新清单(update.json)、javadoc jar

Time Bus v1.0.12 (beta)

Pre-release

Choose a tag to compare

@zhenzi233 zhenzi233 released this 10 Aug 15:48

Time Bus v1.0.12 (beta)

This is a beta release.

Changes

  • Mekanism acceleration reworked: virtual speed cards are replaced by re-running the recipe tick multiple times per server tick (N ticks of progress per tick, per-tick energy xN, total energy per recipe unchanged). Virtual speed cards had no effect on Mek CE because ticksRequired is cached and only recomputed on upgrade changes. Currently covers ordinary ElectricMachine-based machines.
  • Mek machine GUIs now report the accelerated per-tick energy draw (display only; actual power drain unchanged).
  • Redstone / power loss now stops MM acceleration immediately (previously injected modifiers stayed active while the bus was idle).
  • MM restore logs are debug-level and count actually removed modifiers, so periodic restore calls no longer spam the log.
  • Random Complement compatibility fix for the inscriber (extra input consumption).

Full changelog: https://github.com/zhenzi233/TimeBus/blob/master/CHANGELOG.md

v1.0.11

Choose a tag to compare

@zhenzi233 zhenzi233 released this 09 Aug 14:51

v1.0.11

  • Fix: vanilla Forge 1.12.2 clients can now load the mod - removed the
    Cleanroom-only ModType: CRL manifest attribute (vanilla Forge treats an
    unknown ModType as "not an FML mod" and silently skips the jar) and rebuilt
    with a Java 8 target (class 52) so Forge's ASM 5.2 mod discovery accepts it;
    previously the client never had the mod in its list, so Cleanroom servers
    rejected the connection with "mod is not found on client"

v1.0.10

Choose a tag to compare

@zhenzi233 zhenzi233 released this 09 Aug 13:45

v1.0.10

  • Fix: mod version is now sourced from gradle.properties via the Reference
    template - TimeBus.java previously hardcoded 1.0.5, so servers reported
    "Requires version 1.0.5" (and clients without the mod were rejected) even
    though the jar file was named 1.0.9
  • Mekanism: virtual speed cards now use the real max installed count
    (MEKCEConfig.MAXSpeedUpgrade, default 8, configurable) instead of a
    hardcoded 8, and are rounded up (ceil) so the actual speed-up is at least
    the configured multiplier (previously 2x could resolve to only ~1.78x)
  • Mekanism: added verification logs (config resolve / registration / mixin hit)
    to be removed after validation
  • Time Wand: left a TODO placeholder for future Mek recipe acceleration

v1.0.9

Choose a tag to compare

@zhenzi233 zhenzi233 released this 09 Aug 11:42

v1.0.9

Code-review fixes (2026-08-09 review report):

  • Fix: multiple Time Buses on the same cable no longer overwrite / wrongly
    clear each other's MM acceleration - the modifier source key now includes the
    part side; legacy side-less bus modifiers are purged automatically on upgrade
  • Fix: the Time Wand no longer leaves MM controllers permanently accelerated -
    a wand click now accelerates the currently running recipe until it finishes
    via MM's semi-permanent modifiers (recipe duration x1/speed, per-tick energy
    x speed when MM Energy Cost Follows Speed is on); MM auto-restores normal
    speed when the recipe finishes or fails, so nothing is written permanently
    into the save, and idle machines are not charged
  • Fix: injected MM modifiers are cleaned up when a single chunk unloads (they
    were previously written into the save and survived a server restart)
  • Perf: MM acceleration skips the per-tick reflection sweep in steady state
    (state snapshot + the existing periodic force-refresh self-heals within one
    MM Context Refresh Interval)
  • Perf: TileCharger.doWork() switched from cached reflection to a Mixin
    @Invoker; the Time Bus source key string is now lazily cached
  • Balance: wand bus-batch size is capped at 256 (config range + runtime clamp);
    random-tick acceleration per speed unit is now configurable
    (Random Tick Calls per Speed Unit, default 20)
  • Fix: Time Wand fluid capacity display was 8x too small (AE2EL stores
    8000 mB per byte, not 1000)
  • Docs: corrected the Power Cost per Speed Unit comment to match the actual
    formula; updated wand byte/mB documentation; debug logs for swallowed config
    exceptions; MM state caches are cleaned up on restore

Time Bus v1.0.8

Choose a tag to compare

@zhenzi233 zhenzi233 released this 09 Aug 05:44

v1.0.8

  • MM acceleration: energy cost now follows the speed-up (new MM Energy Cost Follows Speed, default true) - per-tick energy consumption and production are multiplied by the same factor as the duration compression, so total energy per recipe stays constant while the output rate increases
  • MM acceleration: fixed threads staying unaccelerated after MM recycles its pooled recipe crafting contexts (the modifier data was correct but the actual context had lost it) - the Time Bus now force re-applies modifiers every MM Context Refresh Interval ticks (default 20 = about 1 second, 0 disables), self-healing within one interval

Time Bus v1.0.7

Choose a tag to compare

@zhenzi233 zhenzi233 released this 09 Aug 04:45

v1.0.7

  • Time Fluid Generator: consumes up to 64 inputs per update (configurable via Inputs Consumed per Update), so Time Bus acceleration now actually speeds it up; the input slot stacks up to 64
  • MM acceleration: the injected duration modifier now targets REQUIREMENT_DURATION (previously null), which makes acceleration actually take effect and fixes a client crash (Could not find requirementType) caused by serializing a modifier with an empty target
  • MM acceleration: removed the reflection-caching fast path - MM recycles idle factory threads (invalidate() clears permanent modifiers), which could leave threads permanently unaccelerated; back to per-tick verification
  • MM factory controllers: new MM Keep Idle Threads option (default true) - accelerated controllers skip the 200-tick idle-thread recycle so threads stay accelerated
  • dev: added Mekanism-CE-Unofficial runtime dependency for compatibility testing

Time Bus v1.0.6

Choose a tag to compare

@zhenzi233 zhenzi233 released this 06 Aug 15:41

v1.0.6

  • MM acceleration now stacks: each Time Bus / wand injects its own per-source
    duration modifier, and MM multiplies them together (8x + 4x = 32x); removing
    a bus restores its modifier (previously it stayed on the machine and was
    even saved into the world save)
  • MM acceleration also supports factory controllers (TileFactoryController)
  • dev toolchain: fixed a Groovy quirk in runClient extra JVM args handling
    (split { "\\s+" } coerced the result into a char list and corrupted the
    javaagent command line)
  • docs: DEVELOPER.md / README (EN/中文) updated

Code-review fixes (14-item review of v1.0.5):

  • Time Bus: pulse mode no longer truncates large acceleration batches - the
    device stays awake until the whole batch finishes, then sleeps again, so a
    single redstone pulse completes a fully-upgraded run instead of ~1%
  • Time Bus: fluid billing is now aligned with what was actually drained
    (partial extraction carries the remainder over instead of silently
    over-billing)
  • Time Bus: unloaded chunks in the acceleration range are skipped cheaply
    instead of forcing synchronous disk loads on chunk borders
  • Time Bus: per-tick config string parsing removed - speedMultipliers,
    capacityWidths and wandSpeedMultipliers are parsed once and cached
    (invalidated on config change); kept as strings so existing cfg files
    migrate cleanly
  • Time Bus: fluid and storage-channel lookups in fluid mode are cached and
    re-resolved only when the configured fluid name changes
  • Time Generator: an empty input slot is polled every 10 ticks instead of
    every tick; TRASH mode (if forced externally) consumes the input instead of
    leaving it stuck in the slot
  • Acceleration: AE2 machine classification unified into AccelerateHelper's
    TileKind, so the bus scheduling gate and the update dispatcher can never
    drift apart
  • Mixins: removed the dead TimeBusMixinConfigPlugin and leftover TEMP DIAG
    comments
  • Build: removed hardcoded local JDK paths from gradle.properties (JAVA_HOME
    for Gradle 17, JDK25 env var for the compile toolchain); disabled the unused
    JUnit test configuration