diff --git a/README.md b/README.md index a7642f4..f281290 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,34 @@ -# Yuoki Industries (Factorio 2.0) -Yuoki-Industries - a factorio mod by: [YuokiTani](https://mods.factorio.com/user/YuokiTani) +# Yuoki Industries (Factorio 2.1) -Currently Maintained by: [jatmn](https://mods.factorio.com/user/jatmn) \ No newline at end of file +A Factorio mod by [YuokiTani](https://mods.factorio.com/user/YuokiTani), +currently maintained by [jatmn](https://mods.factorio.com/user/jatmn). + +## Compatibility + +Yuoki **1.3.0** requires **Factorio 2.1.20 or later**. Use Yuoki **1.2.x** with Factorio 2.0. + +Space Age and Quality are optional. If enabled, each must be version 2.1.20 +or later. Factorio 2.1 provides recycling through the separate built-in +Recycler mod; Space Age works with Quality disabled. Yuoki's quality module +requires both Space Age and Quality. + +Do not enable `Yuoki_F2`, `yi_engines_F2`, or `YuokiTweaks` alongside this mod; +these are declared incompatible in [info.json](info.json). + +## Installation + +Install [Yuoki Industries](https://mods.factorio.com/mod/Yuoki) through the +in-game mod manager, selecting a version compatible with your Factorio version. +To install from source, build `Yuoki_1.3.0.zip` using the commands in +[Development checks](docs/development.md#installable-package), then put that ZIP +in your Factorio mods directory. Enable only one installed copy of Yuoki. +Back up existing saves before upgrading from Factorio 2.0. + +## Validation + +The 1.3.0 compatibility audit uses the official Factorio **2.1.21** headless +engine with base Yuoki, Recycler, Quality, and Space Age with Quality both +on and off. Headless checks cover prototype loading and short save runs; +they do not establish graphical correctness or full third-party mod compatibility. +See [changelog.txt](changelog.txt) for changes and +[CONTRIBUTING.md](CONTRIBUTING.md) for development requirements. diff --git a/changelog.txt b/changelog.txt index c4727f4..8aff1d7 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,11 +1,13 @@ --------------------------------------------------------------------------------------------------- Version: 1.3.0 -Date: 5. 10. 2026 +Date: 8. 10. 2026 Changes: - Added experimental Factorio 2.1 support (requires 2.1.20 or later). Use Yuoki 1.2.x for Factorio 2.0. Fixes: - Updated assembler pipe pictures, fuel and recipe categories, and product probabilities for startup compatibility. - Only load the Space Age quality module when quality is enabled. + - Preserve the YI Quality Module's 1% base quality chance with Factorio 2.1 effect units. + - Preserve hidden pipe connection indicators using the Factorio 2.1 per-connection field. --------------------------------------------------------------------------------------------------- Version: 1.2.23 Date: 4. 7. 2026 diff --git a/info.json b/info.json index 23921fc..a3359b3 100644 --- a/info.json +++ b/info.json @@ -1,10 +1,10 @@ { "name": "Yuoki", "version": "1.3.0", - "date": "2026-10-05", + "date": "2026-10-08", "author": "YuokiTani", "contact": "https://discord.gg/fM6NjWabAA", - "homepage": "https://github.com/jatmn/Yuoki-Factorio-2.0", + "homepage": "https://github.com/jatmn/Yuoki-Factorio-2.x", "factorio_version": "2.1", "dependencies": [ "base >= 2.1.20", diff --git a/prototypes/entity/e_pipes.lua b/prototypes/entity/e_pipes.lua index 6c0a410..2d2a1ca 100644 --- a/prototypes/entity/e_pipes.lua +++ b/prototypes/entity/e_pipes.lua @@ -730,10 +730,9 @@ data:extend({ volume = 200, pipe_covers = pipecoverspictures(), -- in case a real pipe is connected to a ghost pipe_connections = { - { direction = defines.direction.east, position = { 0, 0 } }, - { direction = defines.direction.west, position = { 0, 0 } }, + { direction = defines.direction.east, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.west, position = { 0, 0 }, hide_connection_info = true }, }, - hide_connection_info = true, }, pictures = pipepictures_hv(), @@ -768,10 +767,9 @@ data:extend({ volume = 200, pipe_covers = pipecoverspictures(), -- in case a real pipe is connected to a ghost pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, - { direction = defines.direction.south, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.south, position = { 0, 0 }, hide_connection_info = true }, }, - hide_connection_info = true, }, pictures = pipepictures_hv(), @@ -932,12 +930,11 @@ data:extend({ volume = 80, pipe_covers = pipecoverspictures(), -- in case a real pipe is connected to a ghost pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, - { direction = defines.direction.east, position = { 0, 0 } }, - { direction = defines.direction.south, position = { 0, 0 } }, - { direction = defines.direction.west, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.east, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.south, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.west, position = { 0, 0 }, hide_connection_info = true }, }, - hide_connection_info = true, }, pictures = pipepictures_hv(), @@ -974,15 +971,15 @@ data:extend({ volume = 80, --pipe_covers = pipecoverspictures(), pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, { connection_type = "underground", + hide_connection_info = true, direction = defines.direction.south, position = { 0, 0 }, max_underground_distance = 20, }, }, - hide_connection_info = true, }, impact_category = "metal", pictures = { @@ -1111,12 +1108,11 @@ data:extend({ volume = 130, pipe_covers = pipecoverspictures(), -- in case a real pipe is connected to a ghost pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, - { direction = defines.direction.east, position = { 0, 0 } }, - { direction = defines.direction.south, position = { 0, 0 } }, - { direction = defines.direction.west, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.east, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.south, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.west, position = { 0, 0 }, hide_connection_info = true }, }, - hide_connection_info = true, }, pictures = pipepictures_ec(), @@ -1153,15 +1149,15 @@ data:extend({ volume = 130, --pipe_covers = pipecoverspictures(), pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, { connection_type = "underground", + hide_connection_info = true, direction = defines.direction.south, position = { 0, 0 }, max_underground_distance = 30, }, }, - hide_connection_info = true, }, impact_category = "metal", pictures = { @@ -1930,12 +1926,11 @@ data:extend({ volume = 100, pipe_covers = pipecoverspictures(), -- in case a real pipe is connected to a ghost pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, - { direction = defines.direction.east, position = { 0, 0 } }, - { direction = defines.direction.south, position = { 0, 0 } }, - { direction = defines.direction.west, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.east, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.south, position = { 0, 0 }, hide_connection_info = true }, + { direction = defines.direction.west, position = { 0, 0 }, hide_connection_info = true }, }, - hide_connection_info = true, }, pictures = pipepictures_green(), @@ -1972,15 +1967,15 @@ data:extend({ volume = 100, --pipe_covers = pipecoverspictures(), pipe_connections = { - { direction = defines.direction.north, position = { 0, 0 } }, + { direction = defines.direction.north, position = { 0, 0 }, hide_connection_info = true }, { connection_type = "underground", + hide_connection_info = true, direction = defines.direction.south, position = { 0, 0 }, max_underground_distance = 25, }, }, - hide_connection_info = true, }, impact_category = "metal", pictures = { diff --git a/prototypes/integration/space-age/data_y-module.lua b/prototypes/integration/space-age/data_y-module.lua index 4a53da7..08f4ff2 100644 --- a/prototypes/integration/space-age/data_y-module.lua +++ b/prototypes/integration/space-age/data_y-module.lua @@ -11,7 +11,7 @@ if mods["space-age"] and mods["quality"] then subgroup = "y-module", order = "m-4c", stack_size = 100, - effect = { quality = 0.1, consumption = 2.5, productivity = 0.05 }, + effect = { quality = 0.01, consumption = 2.5, productivity = 0.05 }, weight = 20 * kg, --auto_recycle = true, },