1
0
Fork 0

FG1000: Support custom SVG Path

This commit is contained in:
Stuart Buchanan 2020-07-02 15:28:19 +01:00
parent 1cee9485c6
commit 747cb73ca8
3 changed files with 25 additions and 15 deletions

View file

@ -38,15 +38,15 @@ var FG1000 = {
_instance : nil,
# Factory method
getOrCreateInstance : func(EIS_Class = nil, EIS_SVG = nil) {
getOrCreateInstance : func(EIS_Class = nil, EIS_SVG = nil, SVG_Path = nil) {
if (FG1000._instance == nil) {
FG1000._instance = FG1000.new(EIS_Class, EIS_SVG);
FG1000._instance = FG1000.new(EIS_Class, EIS_SVG, SVG_Path);
}
return FG1000._instance;
},
new : func(EIS_Class = nil, EIS_SVG = nil) {
new : func(EIS_Class = nil, EIS_SVG = nil, SVG_Path = nil) {
var obj = {
parents : [FG1000],
displays : {}
@ -70,11 +70,21 @@ new : func(EIS_Class = nil, EIS_SVG = nil) {
obj.EIS_SVG = EIS_SVG;
}
if (SVG_Path == nil) {
obj.SVG_Path = "/Aircraft/Instruments-3d/FG1000/MFDPages/";
} else {
obj.SVG_Path = SVG_Path;
}
obj.ConfigStore = fg1000.ConfigStore.new();
return obj;
},
setSVGPath : func(SVG_Path) {
me.SVG_Path = SVG_Path;
},
setEIS : func(EIS_Class, EIS_SVG) {
me.EIS_Class = EIS_Class;
me.EIS_SVG = EIS.SVG;
@ -105,7 +115,7 @@ addMFD : func(index=nil, targetcanvas=nil) {
targetcanvas.set("visible", 0);
var mfd = fg1000.MFDDisplay.new(me, me.EIS_Class, me.EIS_SVG, targetcanvas, index);
var mfd = fg1000.MFDDisplay.new(me, me.EIS_Class, me.EIS_SVG, me.SVG_Path, targetcanvas, index);
me.displays[index] = mfd;
return index;
},
@ -131,7 +141,7 @@ addPFD : func(index=nil, targetcanvas=nil) {
targetcanvas.set("visible", 0);
var pfd = fg1000.PFDDisplay.new(me, me.EIS_Class, me.EIS_SVG, targetcanvas, index);
var pfd = fg1000.PFDDisplay.new(me, me.EIS_Class, me.EIS_SVG, me.SVG_Path, targetcanvas, index);
me.displays[index] = pfd;
return index;
},

View file

@ -66,7 +66,7 @@ foreach (var page; MFDPages) {
var MFDDisplay =
{
new : func (fg1000instance, EIS_Class, EIS_SVG, myCanvas, device_id=1)
new : func (fg1000instance, EIS_Class, EIS_SVG, SVG_Path, myCanvas, device_id=1)
{
var obj = {
parents : [ MFDDisplay ],
@ -93,9 +93,9 @@ var MFDDisplay =
foreach (var page; MFDPages) {
var svg_file ='/Aircraft/Instruments-3d/FG1000/MFDPages/' ~ page ~ '.svg';
if (resolvepath(svg_file) != "") {
var svg_file = SVG_Path ~ page ~ '.svg';
# Load an SVG file if available.
if (resolvepath(svg_file) != "") {
canvas.parsesvg(obj._svg,
svg_file,
{'font-mapper': fontmapper});

View file

@ -18,7 +18,7 @@
var PFDDisplay =
{
new : func (fg1000instance, EIS_Class, EIS_SVG, myCanvas, device_id=1)
new : func (fg1000instance, EIS_Class, EIS_SVG, SVG_Path, myCanvas, device_id=1)
{
var obj = {
parents : [ PFDDisplay ],
@ -64,28 +64,28 @@ var PFDDisplay =
canvas.parsesvg(obj._svg,
'/Aircraft/Instruments-3d/FG1000/MFDPages/PFDInstruments.svg',
SVG_Path ~ '/PFDInstruments.svg',
{'font-mapper': fontmapper});
canvas.parsesvg(obj._svg,
'/Aircraft/Instruments-3d/FG1000/MFDPages/FlightPlanPFD.svg',
SVG_Path ~ '/FlightPlanPFD.svg',
{'font-mapper': fontmapper});
canvas.parsesvg(obj._svg,
'/Aircraft/Instruments-3d/FG1000/MFDPages/DirectToPFD.svg',
SVG_Path ~ '/DirectToPFD.svg',
{'font-mapper': fontmapper});
canvas.parsesvg(obj._svg,
'/Aircraft/Instruments-3d/FG1000/MFDPages/NearestAirportsPFD.svg',
SVG_Path ~ '/NearestAirportsPFD.svg',
{'font-mapper': fontmapper});
canvas.parsesvg(obj._svg,
'/Aircraft/Instruments-3d/FG1000/MFDPages/NearestAirportsInfoPFD.svg',
SVG_Path ~ '/NearestAirportsInfoPFD.svg',
{'font-mapper': fontmapper});
canvas.parsesvg(obj._svg,
'/Aircraft/Instruments-3d/FG1000/MFDPages/SurroundPFD.svg',
SVG_Path ~ '/SurroundPFD.svg',
{'font-mapper': fontmapper});