1
0
Fork 0
fgdata/Aircraft/Instruments-3d/mk-viii/assembly/assembly.xsl
2011-11-28 19:11:44 +01:00

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>