From dbfbf2351c7c33a2c4cff5f32131288276bb4afb Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 18 Sep 2024 19:44:26 +0900 Subject: [PATCH] . --- {PHI-CL/graphics => OLD}/accumulator-e.png | Bin {PHI-CL/graphics => OLD}/accumulator-eh.png | Bin {PHI-CL/graphics => OLD}/accumulator-i.png | Bin {PHI-CL/graphics => OLD}/solar-panel-e.png | Bin {PHI-CL/graphics => OLD}/solar-panel-eh.png | Bin {PHI-CL/graphics => OLD}/solar-panel-i.png | Bin PHI-CL/config.lua | 253 +++++++++++++++++--- PHI-CL/data-updates.lua | 46 ++-- PHI-CL/data.lua | 115 ++++++--- PHI-CL/graphics/battery.png | Bin 0 -> 10888 bytes PHI-CL/info.json | 4 +- PHI-CL/locale/en/locale.cfg | 200 +++++++++++++++- PHI-CL/locale/ja/locale.cfg | 200 +++++++++++++++- PHI-CL/locale/zh-CN/locale.cfg | 202 +++++++++++++++- PHI-CL/locale/zh-TW/locale.cfg | 202 +++++++++++++++- PHI-CL/main.lua | 19 +- PHI-CL/migrations/migrations.lua | 5 + PHI-CL/settings.lua | 121 +++++----- 18 files changed, 1204 insertions(+), 163 deletions(-) rename {PHI-CL/graphics => OLD}/accumulator-e.png (100%) rename {PHI-CL/graphics => OLD}/accumulator-eh.png (100%) rename {PHI-CL/graphics => OLD}/accumulator-i.png (100%) rename {PHI-CL/graphics => OLD}/solar-panel-e.png (100%) rename {PHI-CL/graphics => OLD}/solar-panel-eh.png (100%) rename {PHI-CL/graphics => OLD}/solar-panel-i.png (100%) create mode 100644 PHI-CL/graphics/battery.png diff --git a/PHI-CL/graphics/accumulator-e.png b/OLD/accumulator-e.png similarity index 100% rename from PHI-CL/graphics/accumulator-e.png rename to OLD/accumulator-e.png diff --git a/PHI-CL/graphics/accumulator-eh.png b/OLD/accumulator-eh.png similarity index 100% rename from PHI-CL/graphics/accumulator-eh.png rename to OLD/accumulator-eh.png diff --git a/PHI-CL/graphics/accumulator-i.png b/OLD/accumulator-i.png similarity index 100% rename from PHI-CL/graphics/accumulator-i.png rename to OLD/accumulator-i.png diff --git a/PHI-CL/graphics/solar-panel-e.png b/OLD/solar-panel-e.png similarity index 100% rename from PHI-CL/graphics/solar-panel-e.png rename to OLD/solar-panel-e.png diff --git a/PHI-CL/graphics/solar-panel-eh.png b/OLD/solar-panel-eh.png similarity index 100% rename from PHI-CL/graphics/solar-panel-eh.png rename to OLD/solar-panel-eh.png diff --git a/PHI-CL/graphics/solar-panel-i.png b/OLD/solar-panel-i.png similarity index 100% rename from PHI-CL/graphics/solar-panel-i.png rename to OLD/solar-panel-i.png diff --git a/PHI-CL/config.lua b/PHI-CL/config.lua index b45957f..9c4f9e7 100644 --- a/PHI-CL/config.lua +++ b/PHI-CL/config.lua @@ -68,36 +68,6 @@ local items = { 'se-core-miner' } }, - ['PHI-MB-SE-ASSEMBLING-TIER'] = { - type = 'max', - effect = { - 'se-space-assembling-machine', - 'se-space-manufactory', - 'se-casting-machine', - 'se-pulveriser', - 'se-lifesupport-facility', - 'se-space-decontamination-facility', - 'se-space-genetics-facility', - 'se-space-growth-facility', - 'se-space-biochemical-laboratory', - 'se-space-radiation-laboratory', - 'se-space-electromagnetics-laboratory', - 'se-space-laser-laboratory', - 'se-space-material-fabricator', - 'se-space-particle-accelerator', - 'se-space-particle-collider', - 'se-space-plasma-generator', - 'se-space-hypercooler', - 'se-space-astrometrics-laboratory', - 'se-space-gravimetrics-laboratory', - 'se-space-telescope', - 'se-space-telescope-gammaray', - 'se-space-telescope-microwave', - 'se-space-telescope-radio', - 'se-space-telescope-xray', - 'se-space-mechanical-laboratory' - } - }, ['PHI-WE-LASER-TIER'] = { type = 'max', effect = { @@ -926,6 +896,229 @@ if mods then items['item']['steam-turbine'].base = 400 items['item']['steam-turbine'].fluid = 5 / 6 items['item']['heat-pipe'].temp = 400 + + items['item']['lab'].stage = 2 + + items['item']['kr-gas-power-station'] = { + enabled = settings.startup['PHI-EN'].value, + stage = 2, + type = 'generator', + name = 'kr-gas-power-station', + ref_name = 'kr-gas-power-station', + tech = 'compound-energy', + min = 2, + max = 5, + base = 0.1 + } + + items['item']['kr-crusher'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'furnace', + name = 'kr-crusher', + ref_name = 'kr-crusher', + tech = 'kr-crusher', + min = 2, + max = 3 + } + + items['item']['kr-fluid-burner'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'furnace', + name = 'kr-fluid-burner', + ref_name = 'kr-fluid-burner', + tech = 'kr-fluid-excess-handling', + min = 2, + max = 3 + } + + items['item']['kr-air-purifier'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'furnace', + name = 'kr-air-purifier', + ref_name = 'kr-air-purifier', + tech = 'kr-air-purification', + min = 2, + max = 3 + } + + items['item']['kr-advanced-furnace'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-advanced-furnace', + ref_name = 'kr-advanced-furnace', + tech = 'kr-advanced-furnace', + min = 2, + max = 3 + } + + items['item']['kr-advanced-chemical-plant'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-advanced-chemical-plant', + ref_name = 'kr-advanced-chemical-plant', + tech = 'kr-advanced-chemical-plant', + min = 2, + max = 3 + } + + items['item']['kr-advanced-assembling-machine'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-advanced-assembling-machine', + ref_name = 'kr-advanced-assembling-machine', + tech = 'kr-automation', + min = 2, + max = 3 + } + + items['item']['kr-greenhouse'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-greenhouse', + ref_name = 'kr-greenhouse', + tech = 'kr-greenhouse', + min = 2, + max = 3 + } + + items['item']['kr-bio-lab'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-bio-lab', + ref_name = 'kr-bio-lab', + tech = 'kr-bio-processing', + min = 2, + max = 3 + } + + items['item']['kr-electrolysis-plant'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-electrolysis-plant', + ref_name = 'kr-electrolysis-plant', + tech = 'kr-fluids-chemistry', + min = 2, + max = 3 + } + + items['item']['kr-filtration-plant'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-filtration-plant', + ref_name = 'kr-filtration-plant', + tech = 'kr-fluids-chemistry', + min = 2, + max = 3 + } + + items['item']['kr-fuel-refinery'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-fuel-refinery', + ref_name = 'kr-fuel-refinery', + tech = 'kr-fuel', + min = 2, + max = 3 + } + + items['item']['kr-atmospheric-condenser'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-atmospheric-condenser', + ref_name = 'kr-atmospheric-condenser', + tech = 'kr-atmosphere-condensation', + min = 2, + max = 3 + } + + items['item']['kr-advanced-lab'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'lab', + name = 'biusart-lab', + ref_name = 'biusart-lab', + tech = 'kr-advanced-lab', + min = 2, + max = 3 + } + + items['item']['kr-singularity-lab'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'lab', + name = 'kr-singularity-lab', + ref_name = 'kr-singularity-lab', + tech = 'kr-singularity-lab', + min = 2, + max = 3 + } + + items['item']['kr-research-server'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-research-server', + ref_name = 'kr-research-server', + tech = 'kr-research-server', + min = 2, + max = 3 + } + + items['item']['kr-quantum-computer'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-quantum-computer', + ref_name = 'kr-quantum-computer', + tech = 'kr-quantum-computer', + min = 2, + max = 3 + } + + items['item']['kr-matter-plant'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-matter-plant', + ref_name = 'kr-matter-plant', + tech = 'kr-matter-processing', + min = 2, + max = 3 + } + + items['item']['kr-matter-assembler'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'assembling-machine', + name = 'kr-matter-assembler', + ref_name = 'kr-matter-assembler', + tech = 'kr-matter-processing', + min = 2, + max = 3 + } + + items['item']['kr-quarry-drill'] = { + enabled = settings.startup['PHI-MB'].value, + stage = 2, + type = 'mining-drill', + name = 'kr-quarry-drill', + ref_name = 'kr-quarry-drill', + tech = 'kr-quarry-minerals-extraction', + min = 2, + max = 3 + } end if (not mods['Krastorio2']) and mods['space-exploration'] then diff --git a/PHI-CL/data-updates.lua b/PHI-CL/data-updates.lua index 74da4e6..25e69d3 100644 --- a/PHI-CL/data-updates.lua +++ b/PHI-CL/data-updates.lua @@ -142,17 +142,7 @@ if settings.startup['PHI-RS'].value then result = 'electric-filter-furnace', }}) - data:extend({{ - type = 'recipe', - name = 'electric-furnace-return', - energy_required = 2, - enabled = false, - ingredients = {{name='electric-filter-furnace', amount=1}}, - result = 'electric-furnace', - }}) - table.insert(data.raw.technology[items['item']['electric-filter-furnace'].tech].effects, {type='unlock-recipe', recipe='electric-filter-furnace'}) - table.insert(data.raw.technology[items['item']['electric-filter-furnace'].tech].effects, {type='unlock-recipe', recipe='electric-furnace-return'}) data.raw['furnace']['electric-furnace'].fast_replaceable_group = 'electric-furnace' data.raw['assembling-machine']['electric-filter-furnace'].fast_replaceable_group = data.raw['furnace']['electric-furnace'].fast_replaceable_group data.raw['assembling-machine']['electric-filter-furnace'].crafting_categories = data.raw['furnace']['electric-furnace'].crafting_categories @@ -206,16 +196,10 @@ if settings.startup['PHI-RS'].value then item = table.deepcopy(data.raw.recipe[k]) item.enabled = false item.name = k .. '-s' .. j - item.hide_from_player_crafting = true - - if item.energy_required then - item.energy_required = item.energy_required * recipe_multiplier[j] - - else - item.energy_required = recipe_multiplier[j] - end if item.normal then + item.normal.hide_from_player_crafting = true + if item.normal.ingredients then for ik, iv in pairs(item.normal.ingredients) do if iv[1] and iv[2] then @@ -245,9 +229,28 @@ if settings.startup['PHI-RS'].value then item.normal.result_count = recipe_multiplier[j] end end + + if item.normal.energy_required then + item.normal.energy_required = item.normal.energy_required * recipe_multiplier[j] + + else + item.normal.energy_required = recipe_multiplier[j] + end + + else + item.hide_from_player_crafting = true + + if item.energy_required then + item.energy_required = item.energy_required * recipe_multiplier[j] + + else + item.energy_required = recipe_multiplier[j] + end end if item.expensive then + item.expensive.hide_from_player_crafting = true + if item.expensive.ingredients then for ik, iv in pairs(item.expensive.ingredients) do if iv[1] and iv[2] then @@ -277,6 +280,13 @@ if settings.startup['PHI-RS'].value then item.expensive.result_count = recipe_multiplier[j] end end + + if item.expensive.energy_required then + item.expensive.energy_required = item.expensive.energy_required * recipe_multiplier[j] + + else + item.expensive.energy_required = recipe_multiplier[j] + end end if item.ingredients then diff --git a/PHI-CL/data.lua b/PHI-CL/data.lua index 8042aed..1df1e57 100644 --- a/PHI-CL/data.lua +++ b/PHI-CL/data.lua @@ -76,8 +76,8 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-RADAR'].value t local entity = table.deepcopy(data.raw['radar']['radar']) entity.name = 'super-radar' entity.minable.result = 'super-radar' - entity.max_distance_of_sector_revealed = 30 - entity.max_distance_of_nearby_sector_revealed = 30 + entity.max_distance_of_sector_revealed = 35 + entity.max_distance_of_nearby_sector_revealed = 35 entity.pictures.layers[1].tint = items['tint'][8] entity.pictures.layers[1].hr_version.tint = items['tint'][8] entity.se_allow_in_space = true @@ -293,23 +293,8 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-RECIPE'].value results = { { name = 'wood', - probability = 0.5, - amount = 10 - }, - { - name = 'wood', - probability = 0.5, - amount = 10 - }, - { - name = 'wood', - probability = 0.5, - amount = 10 - }, - { - name = 'wood', - probability = 0.5, - amount = 10 + amount_min = 5, + amount_max = 40 } } }}) @@ -328,28 +313,13 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-RECIPE'].value results = { { name = 'raw-fish', - probability = 0.5, - amount = 10 - }, - { - name = 'raw-fish', - probability = 0.5, - amount = 10 - }, - { - name = 'raw-fish', - probability = 0.5, - amount = 10 - }, - { - name = 'raw-fish', - probability = 0.5, - amount = 10 + amount_min = 5, + amount_max = 40 } } }}) - for k, v in pairs(data.raw.module) do + for _, v in pairs(data.raw.module) do if v.limitation and string.find(v.name, 'productivity', 1, true) then table.insert(v.limitation, 'wood-production') table.insert(v.limitation, 'fish-production') @@ -396,6 +366,76 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-LAMP'].value th table.insert(data.raw['lamp']['small-lamp'].signal_to_color_mapping, {type='virtual', name='signal-black', color={r=0, g=0, b=0}}) end +if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-TRAIN'].value then + local item = table.deepcopy(data.raw['item']['used-up-uranium-fuel-cell']) + item.name = 'empty-train-battery' + item.icon = '__PHI-CL__/graphics/battery.png' + item.order = 'qa' + item.stack_size = 100 + data:extend({item}) + + data:extend({{ + type = 'recipe', + name = 'empty-train-battery', + energy_required = 30, + enabled = true, + icon = '__PHI-CL__/graphics/battery.png', + icon_size = 64, + icon_mipmaps = 4, + subgroup = 'intermediate-product', + order = 'zc', + ingredients = {{'battery', 50}}, + results = { + { + name = 'empty-train-battery', + amount = 1 + } + } + }}) + + for _, v in pairs(data.raw.module) do + if v.limitation and string.find(v.name, 'productivity', 1, true) then + table.insert(v.limitation, 'empty-train-battery') + end + end + + item = table.deepcopy(data.raw['item']['nuclear-fuel']) + item.name = 'charged-train-battery' + item.burnt_result = 'empty-train-battery' + item.fuel_value = '1GJ' + item.icon = '__PHI-CL__/graphics/battery.png' + item.order = 'qb' + item.stack_size = 10 + data:extend({item}) + + data:extend({{ + type = 'recipe', + name = 'charged-train-battery', + energy_required = 60, + enabled = true, + icon = '__PHI-CL__/graphics/battery.png', + icon_size = 64, + icon_mipmaps = 4, + subgroup = 'intermediate-product', + order = 'zd', + ingredients = {{'empty-train-battery', 1}}, + results = { + { + name = 'charged-train-battery', + probability = 0.995, + amount = 1 + }, + { + name = 'battery', + probability = 0.005, + amount = 5 + } + } + }}) + + data.raw['locomotive']['locomotive'].burner.burnt_inventory_size = 1 +end + if settings.startup['PHI-MI'].value and settings.startup['PHI-MI-REPAIR'].value then data.raw['repair-tool']['repair-pack'].speed = 2 * settings.startup['PHI-MI-REPAIR'].value data.raw['repair-tool']['repair-pack'].durability = 300 * settings.startup['PHI-MI-REPAIR'].value @@ -465,7 +505,6 @@ if settings.startup['PHI-MI'].value and settings.startup['PHI-MI-PIPE'].value th data.raw['locomotive']['locomotive'].friction_force = 0.50 - (0.05 * settings.startup['PHI-MI-TRAIN'].value) data.raw['locomotive']['locomotive'].air_resistance = 0.0075 - (0.0007 * settings.startup['PHI-MI-TRAIN'].value) data.raw['locomotive']['locomotive'].burner.effectivity = 0.5 + (0.5 * settings.startup['PHI-MI-TRAIN'].value) - data.raw['locomotive']['locomotive'].burner.fuel_inventory_size = 3 data.raw['cargo-wagon']['cargo-wagon'].max_health = 300 * (1 + settings.startup['PHI-MI-TRAIN'].value) data.raw['cargo-wagon']['cargo-wagon'].max_speed = 0.6 * (2 + settings.startup['PHI-MI-TRAIN'].value) diff --git a/PHI-CL/graphics/battery.png b/PHI-CL/graphics/battery.png new file mode 100644 index 0000000000000000000000000000000000000000..2fae2b126d709ac3a20c75e56e7d5d7ad5df1bc8 GIT binary patch literal 10888 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 eII5OE0sjN=OxKD#1xT|10000