Tested it, disabeling "Hovercrafts" mod disables placeing Rampart biters on water (can be tested with the map editor).
Seems like Hovercraft does
.....
-- Remove collision mask from water tiles
for k,waterTiles in pairs({"water","water-green","deepwater","deepwater-green"}) do
if data.raw.tile[waterTiles] then
local mask = data.raw.tile[waterTiles].collision_mask
for i=#mask,1,-1 do
if mask[i] == "player-layer" then -- only change if not already altered by another mod
mask[i] = "layer-12"
end
end
end
end
....
in data-final-fixes.lua and tries to ad the collision mask later:
....
-- Add collision mask to units
local units = data.raw.unit
for k,v in pairs(units) do
-- skip aai generated hovercraft units
if string.find(k,"hcraft-entity",1,true)==nil and string.find(k,"ecraft-entity",1,true)==nil and string.find(k,"mcraft-entity",1,true)==nil and string.find(k,"lcraft-entity",1,true)==nil then
local mask = data.raw.unit[k].collision_mask
if mask == nil then -- if not defined, set new default
data.raw.unit[k].collision_mask = {"player-layer","train-layer","layer-12"}
elseif #mask > 0 then -- ignore units with explicitly no collision_mask
data.raw.unit[k].collision_mask[#mask+1] = "layer-12"
end
end
end
...
Are the Rampart units special in some way? Because vanilla seems to be affected by this? Will add a bug report to the Hovercrafts mod board with a link to this topic...
Update
Idea: some kind of race condition, Rampart units added after the workaround of hovercraft?