1
0
Fork 0
fgdata/AI/Maritime/MP-Carriers/mp-vinson-0.xml

61 lines
2.1 KiB
XML
Raw Normal View History

<?xml version="1.0"?>
<!--
Multiplayer carrier Vinson fallback model. ID# 805
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Vinson(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/vinson-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Vinson",
props.globals.getNode(accept_callsign));
print("MP Vinson(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Vinson(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Vinson(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>