Right now neither the builtin system nor this mod works with Fluid Must Flow's ducts because they are coded as storage tanks. Initially I tried to add the appropriate properties to their prototypes (visualization & disable_visualization) since they have all other connections but sadly storage tanks simply dont support them.
The implimentation is very minimal in "scripts/renderer.lua", albeit somewhat hardcoded. Maybe some sort of remote_interface stuff is better but I dont really know much about that. Although given the widespread use of FMF's ducts and absence of anything similar I feel like this hardcoding isn't too terrible.
Anyways, first we expand the pipe_type table around line #55:
local pipe_types = {
["infinity-pipe"] = true,
["pipe-to-ground"] = true,
["pipe"] = true,
["storage-tank"] = {
["duct"] = true,
["duct-cross"] = true,
["duct-curve"] = true,
["duct-long"] = true,
["duct-small"] = true,
["duct-t-junction"] = true,
},
}
local function is_valid_pipe_entity(ent)
local pipe_type = pipe_types[ent.type]
if pipe_type == true then
return pipe_type
elseif type(pipe_type) == "table" then
return pipe_type[ent.name]
end
end
Then we change the access to that table at (the now) line #98
local is_complex_type = not is_valid_pipe_entity(entity_data.entity) --pipe_types[entity_data.entity.type]
And another at line #150
if connection.flow_direction ~= "input-output" and not is_valid_pipe_entity(connection.target_owner) then --pipe_types[connection.target_owner.type] then
Making these changes make FMF ducts work almost entirely like the PV's system (and the builtin one) for pipes with the exception they still have their storage-tank-type bounding box outlined since I dont think it can be disabled in Factorio itself.
https://gyazo.com/40e77b2d5012be2080a6e61b8e5b7775