251 lines
7.4 KiB
XML
251 lines
7.4 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE xsl:stylesheet>
|
|
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:variable name="model" select="concat(/assemblies/@fg-root, '/Aircraft/Instruments-3d/mk-viii/assembly/assembly.ac')"/>
|
|
<xsl:variable name="texture-path">
|
|
<xsl:if test="/assemblies/@texture-path"><xsl:value-of select="concat(/assemblies/@texture-path, '/')"/></xsl:if>
|
|
</xsl:variable>
|
|
|
|
<xsl:template name="generated">
|
|
<xsl:comment>automatically generated, do not edit</xsl:comment>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="assembly">
|
|
<xsl:variable name="actions" select="concat(@name, '-actions.xml')"/>
|
|
<xsl:variable name="prefix" select="concat('/controls/assemblies/', @name)"/>
|
|
<xsl:variable name="button" select="concat($prefix, '-button')"/>
|
|
<xsl:variable name="guard" select="concat($prefix, '-guard')"/>
|
|
<xsl:variable name="guarded">
|
|
<xsl:choose>
|
|
<xsl:when test="@guarded='true'">true</xsl:when>
|
|
<xsl:otherwise>false</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="latching">
|
|
<xsl:choose>
|
|
<xsl:when test="not(@input)">true</xsl:when>
|
|
<xsl:otherwise>false</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="input">
|
|
<xsl:choose>
|
|
<xsl:when test="$latching='false'"><xsl:value-of select="@input"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="$button"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="emission-red">
|
|
<xsl:choose>
|
|
<xsl:when test="@emission-red"><xsl:value-of select="@emission-red"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="/assemblies/@emission-red"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="emission-green">
|
|
<xsl:choose>
|
|
<xsl:when test="@emission-green"><xsl:value-of select="@emission-green"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="/assemblies/@emission-green"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="emission-blue">
|
|
<xsl:choose>
|
|
<xsl:when test="@emission-blue"><xsl:value-of select="@emission-blue"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="/assemblies/@emission-blue"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="emission-factor">
|
|
<xsl:choose>
|
|
<xsl:when test="@emission-factor"><xsl:value-of select="@emission-factor"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="/assemblies/@emission-factor"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="texture-prefix">
|
|
<xsl:choose>
|
|
<xsl:when test="@texture"><xsl:value-of select="@texture"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="@name"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="texture-on" select="concat($texture-path, $texture-prefix, '-on.rgb')"/>
|
|
<xsl:variable name="texture-off" select="concat($texture-path, $texture-prefix, '-off.rgb')"/>
|
|
|
|
<xsl:document href="{@name}.xml" indent="yes">
|
|
<xsl:call-template name="generated"/>
|
|
<PropertyList>
|
|
<path><xsl:value-of select="$model"/></path>
|
|
|
|
<xsl:if test="@output">
|
|
<panel>
|
|
<path><xsl:value-of select="concat(/assemblies/@pwd, '/', $actions)"/></path>
|
|
<bottom-left>
|
|
<x-m>0.00314583</x-m>
|
|
<y-m>-0.00965716</y-m>
|
|
<z-m>-0.00965716</z-m>
|
|
</bottom-left>
|
|
<bottom-right>
|
|
<x-m>0.00314583</x-m>
|
|
<y-m>0.00965716</y-m>
|
|
<z-m>-0.00965716</z-m>
|
|
</bottom-right>
|
|
<top-left>
|
|
<x-m>0.00314583</x-m>
|
|
<y-m>-0.00965716</y-m>
|
|
<z-m>0.02897148</z-m>
|
|
</top-left>
|
|
</panel>
|
|
|
|
<animation>
|
|
<type>translate</type>
|
|
<object-name>lamp</object-name>
|
|
<property><xsl:value-of select="$button"/></property>
|
|
<factor>-0.0040</factor>
|
|
<axis>
|
|
<x>1.0</x>
|
|
<y>0.0</y>
|
|
<z>0.0</z>
|
|
</axis>
|
|
</animation>
|
|
</xsl:if>
|
|
|
|
<animation>
|
|
<type>select</type>
|
|
<object-name>guard</object-name>
|
|
<condition>
|
|
<xsl:choose>
|
|
<xsl:when test="$guarded='true'"><not><property>/null</property></not></xsl:when>
|
|
<xsl:otherwise><property>/null</property></xsl:otherwise>
|
|
</xsl:choose>
|
|
</condition>
|
|
</animation>
|
|
|
|
<xsl:if test="$guarded='true'">
|
|
<animation>
|
|
<type>rotate</type>
|
|
<object-name>guard</object-name>
|
|
<property><xsl:value-of select="$guard"/></property>
|
|
<factor>-90</factor>
|
|
<center>
|
|
<x-m>-0.00314583</x-m>
|
|
<y-m>0.0</y-m>
|
|
<z-m>0.00965716</z-m>
|
|
</center>
|
|
<axis>
|
|
<x>0.0</x>
|
|
<y>1.0</y>
|
|
<z>0.0</z>
|
|
</axis>
|
|
</animation>
|
|
</xsl:if>
|
|
|
|
<animation>
|
|
<type>material</type>
|
|
<object-name>lamp-off</object-name>
|
|
<texture><xsl:value-of select="$texture-off"/></texture>
|
|
</animation>
|
|
|
|
<animation>
|
|
<type>material</type>
|
|
<object-name>lamp-on</object-name>
|
|
<texture><xsl:value-of select="$texture-on"/></texture>
|
|
</animation>
|
|
|
|
<animation>
|
|
<type>select</type>
|
|
<object-name>lamp-off</object-name>
|
|
<condition>
|
|
<not><property><xsl:value-of select="$input"/></property></not>
|
|
</condition>
|
|
</animation>
|
|
|
|
<animation>
|
|
<type>select</type>
|
|
<object-name>lamp-on</object-name>
|
|
<condition>
|
|
<property><xsl:value-of select="$input"/></property>
|
|
</condition>
|
|
</animation>
|
|
|
|
<animation>
|
|
<type>material</type>
|
|
<object-name>lamp-off</object-name>
|
|
<emission>
|
|
<red-prop><xsl:value-of select="$emission-red"/></red-prop>
|
|
<green-prop><xsl:value-of select="$emission-green"/></green-prop>
|
|
<blue-prop><xsl:value-of select="$emission-blue"/></blue-prop>
|
|
<factor-prop><xsl:value-of select="$emission-factor"/></factor-prop>
|
|
</emission>
|
|
</animation>
|
|
</PropertyList>
|
|
</xsl:document>
|
|
|
|
<xsl:if test="@output">
|
|
<xsl:document href="{$actions}" indent="yes">
|
|
<xsl:call-template name="generated"/>
|
|
<PropertyList>
|
|
<background>Aircraft/Instruments-3d/mk-viii/assembly/transparent-bg.rgb</background>
|
|
<w>64</w>
|
|
<h>64</h>
|
|
|
|
<instruments>
|
|
<instrument>
|
|
<x>32</x>
|
|
<y>32</y>
|
|
<w>64</w>
|
|
<h>64</h>
|
|
<w-base>64</w-base>
|
|
<h-base>64</h-base>
|
|
|
|
<actions>
|
|
<action>
|
|
<name>open guard or operate button</name>
|
|
<button>0</button>
|
|
<x>-32</x>
|
|
<y>-32</y>
|
|
<w>64</w>
|
|
<h>32</h>
|
|
|
|
<binding>
|
|
<command>press-cockpit-button</command>
|
|
<guarded><xsl:value-of select="$guarded"/></guarded>
|
|
<latching><xsl:value-of select="$latching"/></latching>
|
|
<prefix><xsl:value-of select="$prefix"/></prefix>
|
|
<discrete><xsl:value-of select="@output"/></discrete>
|
|
</binding>
|
|
|
|
<mod-up>
|
|
<binding>
|
|
<command>release-cockpit-button</command>
|
|
<guarded><xsl:value-of select="$guarded"/></guarded>
|
|
<latching><xsl:value-of select="$latching"/></latching>
|
|
<prefix><xsl:value-of select="$prefix"/></prefix>
|
|
<discrete><xsl:value-of select="@output"/></discrete>
|
|
</binding>
|
|
</mod-up>
|
|
</action>
|
|
|
|
<xsl:if test="$guarded='true'">
|
|
<action>
|
|
<name>close guard</name>
|
|
<button>0</button>
|
|
<x>-32</x>
|
|
<y>0</y>
|
|
<w>64</w>
|
|
<h>32</h>
|
|
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property><xsl:value-of select="$guard"/></property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
</action>
|
|
</xsl:if>
|
|
|
|
</actions>
|
|
</instrument>
|
|
</instruments>
|
|
</PropertyList>
|
|
</xsl:document>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="assemblies">
|
|
<xsl:apply-templates select="*"/>
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|