mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
656 lines
36 KiB
XML
656 lines
36 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<project firstLayout="">
|
|
<gdVersion build="84" major="3" minor="6" revision="0" />
|
|
<properties linuxExecutableFilename="" macExecutableFilename="" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
|
<name>Project</name>
|
|
<author></author>
|
|
<windowWidth>800</windowWidth>
|
|
<windowHeight>600</windowHeight>
|
|
<latestCompilationDirectory></latestCompilationDirectory>
|
|
<maxFPS>60</maxFPS>
|
|
<minFPS>10</minFPS>
|
|
<verticalSync>false</verticalSync>
|
|
<extensions>
|
|
<extension name="BuiltinObject" />
|
|
<extension name="BuiltinAudio" />
|
|
<extension name="BuiltinVariables" />
|
|
<extension name="BuiltinTime" />
|
|
<extension name="BuiltinMouse" />
|
|
<extension name="BuiltinKeyboard" />
|
|
<extension name="BuiltinJoystick" />
|
|
<extension name="BuiltinCamera" />
|
|
<extension name="BuiltinWindow" />
|
|
<extension name="BuiltinFile" />
|
|
<extension name="BuiltinNetwork" />
|
|
<extension name="BuiltinScene" />
|
|
<extension name="BuiltinAdvanced" />
|
|
<extension name="Sprite" />
|
|
<extension name="BuiltinCommonInstructions" />
|
|
<extension name="BuiltinCommonConversions" />
|
|
<extension name="BuiltinStringInstructions" />
|
|
<extension name="BuiltinMathematicalTools" />
|
|
<extension name="BuiltinExternalLayouts" />
|
|
<extension name="Network" />
|
|
<extension name="CommonDialogs" />
|
|
</extensions>
|
|
<platforms>
|
|
<platform name="GDevelop C++ platform" />
|
|
</platforms>
|
|
<currentPlatform>GDevelop C++ platform</currentPlatform>
|
|
</properties>
|
|
<resources>
|
|
<resources>
|
|
<resource alwaysLoaded="false" file="Pea-Ghost.png" kind="image" name="Pea-Ghost.png" smoothed="true" userAdded="true" />
|
|
<resource alwaysLoaded="false" file="Pea-Standard.png" kind="image" name="Pea-Standard.png" smoothed="true" userAdded="true" />
|
|
</resources>
|
|
<resourceFolders />
|
|
</resources>
|
|
<objects />
|
|
<objectsGroups />
|
|
<variables />
|
|
<layouts>
|
|
<layout b="128" disableInputWhenNotFocused="true" mangledName="New_32scene" name="New scene" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="128" standardSortMethod="true" stopSoundsOnStartup="true" title="" v="255">
|
|
<uiSettings associatedLayout="" grid="false" gridB="255" gridG="180" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="32" snap="true" windowMask="false" zoomFactor="1.000000" />
|
|
<objectsGroups />
|
|
<variables />
|
|
<instances>
|
|
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Object1" width="0.000000" x="199.000000" y="169.000000" zOrder="0">
|
|
<numberProperties />
|
|
<stringProperties />
|
|
<initialVariables />
|
|
</instance>
|
|
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Object2" width="0.000000" x="450.000000" y="167.000000" zOrder="0">
|
|
<numberProperties />
|
|
<stringProperties />
|
|
<initialVariables />
|
|
</instance>
|
|
</instances>
|
|
<objects>
|
|
<object name="Object1" type="Sprite">
|
|
<variables />
|
|
<automatisms />
|
|
<animations>
|
|
<animation useMultipleDirections="true">
|
|
<directions>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites>
|
|
<sprite hasCustomCollisionMask="false" image="Pea-Standard.png">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="18.500000" y="18.500000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="37.000000" y="0.000000" />
|
|
<vertice x="37.000000" y="37.000000" />
|
|
<vertice x="0.000000" y="37.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
</sprites>
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
</directions>
|
|
</animation>
|
|
</animations>
|
|
</object>
|
|
<object name="Object2" type="Sprite">
|
|
<variables />
|
|
<automatisms />
|
|
<animations>
|
|
<animation useMultipleDirections="true">
|
|
<directions>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites>
|
|
<sprite hasCustomCollisionMask="false" image="Pea-Ghost.png">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="45.000000" y="19.500000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="90.000000" y="0.000000" />
|
|
<vertice x="90.000000" y="39.000000" />
|
|
<vertice x="0.000000" y="39.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
</sprites>
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
<direction looping="false" timeBetweenFrames="1.000000">
|
|
<sprites />
|
|
</direction>
|
|
</directions>
|
|
</animation>
|
|
</animations>
|
|
</object>
|
|
</objects>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Demander quel joueur prendre et se connecter à l'autre ordinateur
Choose the player and connect to the second computer.</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="DepartScene" />
|
|
<parameters />
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ShowYesNoMsgBox" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>firstPlayer</parameter>
|
|
<parameter>"Être le premier joueur ?"</parameter>
|
|
<parameter>"Choix du joueur"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ShowTextInput" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>OtherIP</parameter>
|
|
<parameter>"Adresse IP de l'autre ordinateur"</parameter>
|
|
<parameter>"Connexion"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Les ports ont été personnalisés suivant que l'ordinateur soit le premier ou le second joueur afin
de permettre de pouvoir tester l'exemple sur un même ordinateur ( En lançant deux fois le jeu et
en entrant 127.0.0.1 en adresse IP )
Ports numbers have been customized so as to allow testing the example on the same computer,
by launching twice the game and by typing 127.0.0.1 in IP Adress.</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarSceneTxt" />
|
|
<parameters>
|
|
<parameter>firstPlayer</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"yes"</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Network::ListenToPort" />
|
|
<parameters>
|
|
<parameter>50001</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="Network::AddRecipient" />
|
|
<parameters>
|
|
<parameter>VariableString(OtherIP)</parameter>
|
|
<parameter>50002</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarSceneTxt" />
|
|
<parameters>
|
|
<parameter>firstPlayer</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"no"</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Network::ListenToPort" />
|
|
<parameters>
|
|
<parameter>50002</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="Network::AddRecipient" />
|
|
<parameters>
|
|
<parameter>VariableString(OtherIP)</parameter>
|
|
<parameter>50001</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>1er joueur
First player</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarSceneTxt" />
|
|
<parameters>
|
|
<parameter>firstPlayer</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"yes"</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions />
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Mise à jour de la position du joueur 2
Update position of second player</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Network::ReceivePackets" />
|
|
<parameters />
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="MettreXY" />
|
|
<parameters>
|
|
<parameter>Object2</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Network::GetReceivedDataValue("Object2/X")</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Network::GetReceivedDataValue("Object2/Y")</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Déplacement du joueur 1
Manage movement of first player</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Right</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object1</parameter>
|
|
<parameter>150</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Down</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object1</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>150</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Up</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object1</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>-150</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Left</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object1</parameter>
|
|
<parameter>-150</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Envoi des données du joueur 1
Send data concerning player 1</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Network::SendValue" />
|
|
<parameters>
|
|
<parameter>"Object1/X"</parameter>
|
|
<parameter>Object1.X()</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="Network::SendValue" />
|
|
<parameters>
|
|
<parameter>"Object1/Y"</parameter>
|
|
<parameter>Object1.Y()</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Second joueur
Second player</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarSceneTxt" />
|
|
<parameters>
|
|
<parameter>firstPlayer</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"no"</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions />
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Network::ReceivePackets" />
|
|
<parameters />
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="MettreXY" />
|
|
<parameters>
|
|
<parameter>Object1</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Network::GetReceivedDataValue("Object1/X")</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Network::GetReceivedDataValue("Object1/Y")</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Right</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object2</parameter>
|
|
<parameter>150</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Down</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object2</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>150</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Up</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object2</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>-150</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="KeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Left</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="AddForceXY" />
|
|
<parameters>
|
|
<parameter>Object2</parameter>
|
|
<parameter>-150</parameter>
|
|
<parameter>0</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Network::SendValue" />
|
|
<parameters>
|
|
<parameter>"Object2/X"</parameter>
|
|
<parameter>Object2.X()</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="Network::SendValue" />
|
|
<parameters>
|
|
<parameter>"Object2/Y"</parameter>
|
|
<parameter>Object2.Y()</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
</events>
|
|
<layers>
|
|
<layer name="" visibility="true">
|
|
<cameras>
|
|
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
|
|
</cameras>
|
|
</layer>
|
|
</layers>
|
|
<automatismsSharedData />
|
|
</layout>
|
|
</layouts>
|
|
<externalEvents />
|
|
<externalLayouts />
|
|
<externalSourceFiles />
|
|
</project>
|