I made an edit for my own use and thought i should share it. The change means the electric fuel item never is able to be put in the players inventory and AAI minor, and programmable vehicles don't replace replace it with rocket fuel.
Could be better optimized.
Just replaces the onTick function in Control.lua
local function onTick(event)
local process = script_data.evcouple[event.tick % MODULO]
local fuelValue = prototypes.item[FUEL].fuel_value
if process then
for n, couple in pairs(process) do
if couple.eve.valid then
local drainPenalty = 1 + (#couple.burners/10) -- +10% penalty for each burner
local eQuality = couple.eve.quality.name
--for b, burner in ipairs(couple.burners) do
for b = #couple.burners, 1, -1 do
local burner = couple.burners[b]
if not burner.valid then
table.remove(couple.burners,b)
elseif burner.currently_burning and (burner.currently_burning.name.name ~= FUEL or burner.currently_burning.quality.name ~= eQuality) and (burner.remaining_burning_fuel > burner.currently_burning.name.fuel_value * 0.03 + 1) and (burner.remaining_burning_fuel > 200) then
-- skip
else
if couple.eve.energy >= 200 and burner.remaining_burning_fuel < prototypes.item[FUEL].fuel_value * 0.95 then
burner.currently_burning = {name=FUEL, quality=eQuality}
local energy_used = math.min(couple.eve.energy, (prototypes.item[FUEL].fuel_value - burner.remaining_burning_fuel) * drainPenalty)
couple.eve.energy = couple.eve.energy - energy_used
burner.remaining_burning_fuel = burner.remaining_burning_fuel + (energy_used / drainPenalty)
end
end
end
else
process[n] = nil
end
end
end
end