▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Create: Railway Evolution
Create: Railway Evolution

Create: Railway Evolution

Smart traffic control and collision avoidance for Create trains. No more signals needed.

5/5(1)
12.3K
35
Все версии→Create: Railway Evolution 1.0.8

Create: Railway Evolution 1.0.8

Release29.08.2026

Список изменений

🚂 Railway Evolution v1.0.8 — [CORE PERFORMANCE & MEMORY OVERHAUL]

This update delivers critical performance optimizations and garbage-collection improvements, targeting high-frequency tick loops across core registries and controllers. / Это обновление приносит критические оптимизации производительности и снижение нагрузки на сборщик мусора (GC), затрагивая высокочастотные тиковые циклы в ключевых реестрах и контроллерах.

To be completely transparent with the community: profiling heavy networks revealed hidden allocation bottlenecks during high-frequency checks. Version 1.0.8 aggressively eliminates transient object spamming and redundant string operations per tick. / Буду честен с сообществом: профилирование тяжелых сетей выявило скрытые узкие места выделения памяти во время частых проверок. Версия 1.0.8 агрессивно убирает мусор из временных объектов и избыточные операции со строками за каждый тик.

Version 1.0.8 eliminates per-tick array allocations, caches immutable identifiers, and optimizes collection sorting, making Railway Evolution faster and lighter on server resources. / Версия 1.0.8 полностью убирает выделение массивов за каждый тик, кэширует неизменяемые идентификаторы и оптимизирует сортировку коллекций, делая Railway Evolution быстрее и легче для серверных ресурсов.

✨ Key Features & Improvements / Ключевые изменения и улучшения:

  • Zero-Allocation Coordinate Lookups / Нулевые аллокации координат: TrainAIController.java: getNodeXZ() / getNodeXYZ() no longer allocate new double[] arrays every tick, relying instead on an internal reusable buffer _nodeCoordBuf. / TrainAIController.java: getNodeXZ() / getNodeXYZ(): Устранена аллокация массивов new double[] каждый тик — теперь используется внутренний переиспользуемый буфер _nodeCoordBuf.

  • Identifier Caching & CPU Saving / Кэширование идентификаторов: Precomputed final String shortId inside the constructor, removing over 70 costly trainId.toString().substring(0, 8) calls per tick. / Предрассчитывается shortId: Поле final String shortId предрассчитывается один раз в конструкторе, убраны 70+ вызовов trainId.toString().substring(0, 8) за тик.

  • Lambda-Free Registry Sorting / Сортировка без лямбд в реестрах: StoppedTrainRegistry.java and MovingTrainRegistry.java: Distance sorting in getNearby() has been migrated to a static DistanceComparator instance, eliminating anonymous lambda allocations. / StoppedTrainRegistry.java и MovingTrainRegistry.java: Сортировка по дистанции в getNearby() переведена на статический экземпляр DistanceComparator (устранены анонимные лямбды при сортировке).

  • Optimized Segment Keys / Оптимизированные ключи сегментов: VirtualBlockSystem.java: String concatenation in makeSegmentKey() replaced with a lightweight record SegmentKey(int dimHash, long posA, long posB) utilizing packed coordinates via BlockPos.asLong(). / VirtualBlockSystem.java: Конкатенация строк в makeSegmentKey() заменена на компактный record SegmentKey(int dimHash, long posA, long posB) с упаковкой координат через BlockPos.asLong().

  • Reusable Safety Evaluations / Переиспользуемые структуры безопасности: SafetyManager.java: Eliminated new SafetyResult(...) allocations during safety evaluations by utilizing a reusable.set(...) pattern. / SafetyManager.java: Устранены аллокации new SafetyResult(...) при оценке безопасности — используется переиспользуемый reusable.set(...).

  • API & State Machine Refinements / Доработки состояний и API: TrainStateId.java & TrainActuator.java: Added STOPPED to the TrainStateId enum and standardized the ITrainHandle interface implementation in TrainActuator. / TrainStateId.java и TrainActuator.java: Добавлен STOPPED в enum TrainStateId. Приведена к стандарту имплементация интерфейса ITrainHandle в TrainActuator.

🔮 What's Next / Что дальше:

With these low-level performance bottlenecks crushed, tick times are tighter than ever, ensuring smoother sessions for massive automated networks. Thank you for your continued support and bug reports! / Благодаря устранению этих низкоуровневых узких мест производительности, время тиков стало стабильнее, обеспечивая плавную работу масштабных автоматизированных сетей. Спасибо за вашу поддержку и багрепорты! 🚀

Файлы

create_railway_evolution-1.0.8.jar(1.32 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.0.8

Загрузчики

NeoForge

Версии игры

1.21.1

Загрузок

514

Дата публикации

29.08.2026

Загрузил

ID версии

Главная