Skip to content

Fuel injector for powerplants and oil burner#191

Draft
protocol-1903 wants to merge 1 commit into
breaking-changesfrom
fuel-injector
Draft

Fuel injector for powerplants and oil burner#191
protocol-1903 wants to merge 1 commit into
breaking-changesfrom
fuel-injector

Conversation

@protocol-1903

Copy link
Copy Markdown
Contributor

No description provided.

…xture for fuel oil and natural gas, all recipes
@protocol-1903

protocol-1903 commented May 8, 2026

Copy link
Copy Markdown
Contributor Author

Changes:

  • Adjusted oil and gas powerplant fuel input to only connect to fuel injector
  • Adjusted oil boiler to only connect to fuel injector
  • Oil powerplant can only run on fuel oil combustion mixture, made from any of the following: diesel, kerosene, fuel oil, gasoline
  • Gas pwoerplant can only be run on natural gas combustion mixture, made from any of the following: natural gas, refined natural gas, purified natural gas, pure natural gas
  • All other fluids with a fuel value are converted into generic combustion mixture
  • Oil burner can be powered via any combustion mixture
  • No fuel value is lost when using the fuel injector

The following are subject to change for balance or other reasons:

  • Fuel injector graphics, size, and fluid connection placement
  • Powerplant fluid connection placement
  • Fuel injector crafting speed

The following have not yet been implemented:

  • Localisation
  • Fuel injector graphics
  • Fuel injector recipe (currently unobtainable in regular gameplay)
  • Fuel injector byproducts

Notes:

  • Pipes and other methods of fluid logistics cannot connect to fuel injectors or powerplant inputs. This is intentional
  • Combustion mixture icons are not going to all be the same

@FreezingSnail

FreezingSnail commented Jun 17, 2026

Copy link
Copy Markdown

The ratio of many (or all) of the comb buster mixtures do not maintain a 1:1 fuel value.
Since all the inputs are 10, it is easy to calculate -> in(fuel value in MJ) = out amount, fv *10 (in mj)
Small helper so don't need to look up each fuel value for each fluid one at a time and an example of it in use:

function fuelMJRatio(fuelvalue)
    local raw = tonumber(fuelvalue:sub(1, -3))
    if fuelvalue:find("MJ") then
        return 10*raw
    else
        return 10*raw/1000
    end
end

RECIPE{
    type = "recipe",
    name = "crude-oil-combustion-mixture",
    energy_required = 0.1,
    enabled = true,
    hidden = false,
    ingredients = {{ type = "fluid", name = "crude-oil", amount = 10}},
    results = {
        { type = "fluid", name = "combustion-mixture1", 
        amount = fuelMJRatio(FLUID["crude-oil"].fuel_value)
    }},
    category = "py-fuel-injector"
}

Another example,
coal gas is 200kj, so this output is much too high:

ingredients = {{ type = "fluid", name = "coal-gas", amount = 10}},
results = {{ type = "fluid", name = "combustion-mixture1", amount = 45}},

10 -> 2 comb

@FreezingSnail

Copy link
Copy Markdown

Another note on if methane should be allowed in a nat gas plant:
https://en.wikipedia.org/wiki/Coalbed_methane
coalbed gas should be included too probably

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants