(ded4a3e0a) v0.9.0.7

This commit is contained in:
Joonas Rikkonen
2019-06-25 16:00:44 +03:00
parent e5ae622c77
commit 4a51db77b5
1777 changed files with 421528 additions and 917 deletions
@@ -0,0 +1,44 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoDevelop.MonoGame.Core", "MonoDevelop.MonoGame.Core\MonoDevelop.MonoGame.Core.csproj", "{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoDevelop.MonoGame", "MonoDevelop.MonoGame\MonoDevelop.MonoGame.csproj", "{B2C75BDF-A022-41C6-9618-EDD8BEE76556}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoDevelop.MonoGame.Android", "MonoDevelop.MonoGame.Android\MonoDevelop.MonoGame.Android.csproj", "{FB8E0F6F-522F-4C22-A2F2-1097EB549FE5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoDevelop.MonoGame.iOS", "MonoDevelop.MonoGame.iOS\MonoDevelop.MonoGame.iOS.csproj", "{B2150BB5-02A0-4CD7-A61F-C17C09045D1D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoDevelop.MonoGame.Mac", "MonoDevelop.MonoGame.Mac\MonoDevelop.MonoGame.Mac.csproj", "{08E68315-4124-4199-BBD9-E57282458A31}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{08E68315-4124-4199-BBD9-E57282458A31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08E68315-4124-4199-BBD9-E57282458A31}.Debug|Any CPU.Build.0 = Debug|Any CPU
{08E68315-4124-4199-BBD9-E57282458A31}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08E68315-4124-4199-BBD9-E57282458A31}.Release|Any CPU.Build.0 = Release|Any CPU
{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}.Release|Any CPU.Build.0 = Release|Any CPU
{B2150BB5-02A0-4CD7-A61F-C17C09045D1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B2150BB5-02A0-4CD7-A61F-C17C09045D1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B2150BB5-02A0-4CD7-A61F-C17C09045D1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B2150BB5-02A0-4CD7-A61F-C17C09045D1D}.Release|Any CPU.Build.0 = Release|Any CPU
{B2C75BDF-A022-41C6-9618-EDD8BEE76556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B2C75BDF-A022-41C6-9618-EDD8BEE76556}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B2C75BDF-A022-41C6-9618-EDD8BEE76556}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B2C75BDF-A022-41C6-9618-EDD8BEE76556}.Release|Any CPU.Build.0 = Release|Any CPU
{FB8E0F6F-522F-4C22-A2F2-1097EB549FE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB8E0F6F-522F-4C22-A2F2-1097EB549FE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB8E0F6F-522F-4C22-A2F2-1097EB549FE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB8E0F6F-522F-4C22-A2F2-1097EB549FE5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = ..\MonoDevelop.MonoGame\MonoDevelop.MonoGame.csproj
EndGlobalSection
EndGlobal
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{FB8E0F6F-522F-4C22-A2F2-1097EB549FE5}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MonoDevelop.MonoGame.Android</RootNamespace>
<AssemblyName>MonoDevelop.MonoGame.Android</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="MonoDevelop.Ide">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/MonoDevelop.Ide.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.Core">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/MonoDevelop.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.DesignerSupport">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.MonoDroid">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/MonoDevelop.MonoDroid/MonoDevelop.MonoDroid.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Xamarin.Components.Ide">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/Xamarin.Ide/Xamarin.Components.Ide.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Xamarin.Ide">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/Xamarin.Ide/Xamarin.Ide.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Xamarin.Ide.Insights">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop//AddIns/Xamarin.Ide.Insights/Xamarin.Ide.Insights.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\MonoDevelop.MonoGame.Core\MonoDevelop.MonoGame.Core.csproj">
<Project>{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}</Project>
<Name>MonoDevelop.MonoGame.Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="templates\" />
<Folder Include="icons\" />
<Folder Include="templates\Android\" />
</ItemGroup>
<ItemGroup>
<Content Include="templates\MonoGameAndroidProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\AboutAssets.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\AboutContent.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\AboutResources.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\Splash.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\Styles.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\Resource.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\AndroidManifest.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Android\Activity1.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="MonoGameAndroidProject.cs" />
</ItemGroup>
</Project>
@@ -0,0 +1,29 @@
using System;
namespace MonoDevelop.MonoGame.Android
{
public class MonoGameAndroidProject : MonoDevelop.MonoDroid.MonoDroidProject
{
public MonoGameAndroidProject () : base()
{
}
public override MonoDevelop.Projects.SolutionItemConfiguration CreateConfiguration (string name)
{
return base.CreateConfiguration (name);
}
protected override void PopulateSupportFileList (MonoDevelop.Projects.FileCopySet list, MonoDevelop.Projects.ConfigurationSelector configuration)
{
base.PopulateSupportFileList (list, configuration);
}
[Obsolete]
public override string ProjectType {
get {
return "MonoGameAndroid";
}
}
}
}
@@ -0,0 +1,22 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle ("MonoDevelop.MonoGame.Android")]
[assembly: AssemblyDescription ("")]
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("MonoGame Team")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion ("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -0,0 +1,19 @@
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".
These files will be deployed with you package and will be accessible using Android's
AssetManager, like this:
public class ReadAsset : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
InputStream input = Assets.Open ("my_asset.txt");
}
}
Additionally, some Android functions will automatically load asset files:
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
@@ -0,0 +1,44 @@
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files. Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.
For example, a sample Android app that contains a user interface layout (main.axml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:
Resources/
drawable/
icon.png
layout/
main.axml
values/
strings.xml
In order to get the build system to recognize Android resources, set the build action to
"AndroidResource". The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs. When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called "R"
(this is an Android convention) that contains the tokens for each one of the resources
included. For example, for the above Resources layout, this is what the R class would expose:
public class R {
public class drawable {
public const int icon = 0x123;
}
public class layout {
public const int main = 0x456;
}
public class strings {
public const int first_string = 0xabc;
public const int second_string = 0xbcd;
}
}
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
to reference the layout/main.axml file, or R.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
@@ -0,0 +1,44 @@
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files. Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.
For example, a sample Android app that contains a user interface layout (main.axml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:
Resources/
drawable/
icon.png
layout/
main.axml
values/
strings.xml
In order to get the build system to recognize Android resources, set the build action to
"AndroidResource". The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs. When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called "R"
(this is an Android convention) that contains the tokens for each one of the resources
included. For example, for the above Resources layout, this is what the R class would expose:
public class R {
public class drawable {
public const int icon = 0x123;
}
public class layout {
public const int main = 0x456;
}
public class strings {
public const int first_string = 0xabc;
public const int second_string = 0xbcd;
}
}
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
to reference the layout/main.axml file, or R.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
@@ -0,0 +1,40 @@
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Content.PM;
using Android.Views;
using Android.Widget;
using Android.OS;
using Microsoft.Xna.Framework;
namespace ${Namespace}
{
[Activity (Label = "${ProjectName}",
MainLauncher = true,
Icon = "@drawable/icon",
Theme = "@style/Theme.Splash",
AlwaysRetainTaskState=true,
LaunchMode=LaunchMode.SingleInstance,
ScreenOrientation = ScreenOrientation.FullUser,
ConfigurationChanges = ConfigChanges.Orientation |
ConfigChanges.KeyboardHidden |
ConfigChanges.Keyboard |
ConfigChanges.ScreenSize |
ConfigChanges.ScreenLayout)]
public class Activity1 : AndroidGameActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
var g = new Game1 ();
SetContentView (g.Services.GetService<View>());
g.Run ();
}
}
}
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="${ProjectName}">
<uses-sdk android:minSdkVersion="10" />
<application android:label="${ProjectName}">
</application>
</manifest>
@@ -0,0 +1,103 @@
#pragma warning disable 1591
// ------------------------------------------------------------------------------
// <autogenerated>
// This code was generated by a tool.
// Mono Runtime Version: 4.0.30319.17020
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
// ------------------------------------------------------------------------------
[assembly: Android.Runtime.ResourceDesignerAttribute("OpenGLApplication1.Resource", IsApplication=true)]
namespace ${Namespace}
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
static Resource()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
public static void UpdateIdValues()
{
}
public partial class Attribute
{
static Attribute()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Attribute()
{
}
}
public partial class Drawable
{
// aapt resource value: 0x7f020000
public const int Icon = 2130837504;
static Drawable()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Drawable()
{
}
}
public partial class Id
{
static Id()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Id()
{
}
}
public partial class Layout
{
static Layout()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Layout()
{
}
}
public partial class String
{
// aapt resource value: 0x7f040001
public const int ApplicationName = 2130968577;
static String()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private String()
{
}
}
}
}
#pragma warning restore 1591
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Splash" parent="android:Theme">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
@@ -0,0 +1,63 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame for Android Application</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates an MonoGame for Android Project </_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "MonoDroid">
<Options
AndroidApplication="true"
AndroidResgenFile="Resources/Resource.designer.cs"
AndroidResgenClass="Resource"
TargetFrameworkVersion="MonoAndroid,Version=v5.0" />
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Mono.Android" />
<Reference type="Gac" refto="OpenTK-1.0" />
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Activity1.cs" src="Android/Activity1.cs" />
<File name="Game1.cs" src="Common/Game1.cs" />
<Directory name="Resources">
<File name="Resource.designer.cs" src="Android/Resource.cs" />
<RawFile name="AboutResources.txt" src="Android/AboutResources.txt" />
<Directory name="drawable">
<RawFile name="Icon.png" src="Common/Icon-md.png" />
<RawFile name="Splash.png" src="Android/Splash.png" />
</Directory>
<Directory name="values">
<RawFile name="Styles.xml" src="Android/Styles.xml" />
</Directory>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" src="Common/AssemblyInfo.cs" />
<File name="AndroidManifest.xml" src="Android/AndroidManifest.xml" />
</Directory>
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Assets">
<RawFile name="AboutAssets.txt" src="Android/AboutAssets.txt" />
<Directory name="Content">
</Directory>
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,9 @@
using System;
namespace MonoDevelop.MonoGame.Core
{
public interface IMonoGameProject
{
}
}
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MonoDevelop.MonoGame.Core</RootNamespace>
<AssemblyName>MonoDevelop.MonoGame.Core</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="IMonoGameProject.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
@@ -0,0 +1,22 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle ("MonoDevelop.MonoGame.Core")]
[assembly: AssemblyDescription ("")]
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("MonoGame Team")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion ("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{08E68315-4124-4199-BBD9-E57282458A31}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MonoDevelop.MonoGame.Mac</RootNamespace>
<AssemblyName>MonoDevelop.MonoGame.Mac</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="MonoDevelop.Ide">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/MonoDevelop.Ide.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.Core">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/MonoDevelop.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.DesignerSupport">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\MonoDevelop.MonoGame.Core\MonoDevelop.MonoGame.Core.csproj">
<Project>{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}</Project>
<Name>MonoDevelop.MonoGame.Core</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="templates\" />
<Folder Include="templates\Mac\" />
</ItemGroup>
<ItemGroup>
<Content Include="templates\MonoGameMacProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Mac\MacInfo.plist">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Mac\Program.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameOSXProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Mac\MainMenu.xib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameXamMacProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Mac\XamMac2Program.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Mac\XamMacProgram.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
@@ -0,0 +1,22 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle ("MonoDevelop.MonoGame.Mac")]
[assembly: AssemblyDescription ("")]
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("MonoGame Team")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion ("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>project.MonoGame.${Namespace}</string>
<key>CFBundleName</key>
<string>${Namespace}</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>10.6</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
</dict>
</plist>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application"/>
<customObject id="371" customClass="NSFontManager"/>
<menu title="Main Menu" systemMenu="main" id="29">
<items>
<menuItem title="NewApplication" id="56">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="NewApplication" systemMenu="apple" id="57">
<items>
<menuItem title="Quit NewApplication" keyEquivalent="q" id="136">
<connections>
<action selector="terminate:" target="-1" id="369"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
</objects>
</document>
@@ -0,0 +1,45 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using MonoMac.AppKit;
using MonoMac.Foundation;
#endregion
namespace ${Namespace}
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
NSApplication.Init ();
using (var p = new NSAutoreleasePool ()) {
NSApplication.SharedApplication.Delegate = new AppDelegate();
NSApplication.Main(args);
}
}
}
class AppDelegate : NSApplicationDelegate
{
private static Game1 game;
public override void FinishedLaunching (NSObject notification)
{
game = new Game1();
game.Run();
}
public override bool ApplicationShouldTerminateAfterLastWindowClosed (NSApplication sender)
{
return true;
}
}
}
@@ -0,0 +1,26 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using AppKit;
using Foundation;
#endregion
namespace ${Namespace}
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
NSApplication.Init ();
using (var game = new Game1 ()) {
game.Run ();
}
}
}
}
@@ -0,0 +1,27 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using MonoMac.AppKit;
using MonoMac.Foundation;
#endregion
namespace ${Namespace}
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
NSApplication.Init ();
using (var game = new Game1 ()) {
game.Run ();
}
}
}
}
@@ -0,0 +1,49 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Mac Application (MonoMac)</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Application for Mac OS. This application uses MonoMac as a result you will need to have mono installed on your users machine.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "MonoMac">
<Options
DefineConstants="MONOMAC"
/>
<References>
<Reference type="Gac" refto="System" />
<Reference type="Gac" refto="System.Xml" />
<Reference type="Gac" refto="System.Core" />
<Reference type="Gac" refto="System.Xml.Linq" />
<Reference type="Gac" refto="System.Drawing" />
<Reference type="Gac" refto="MonoMac" SpecificVersion="false" />
<Reference type="Package" refto="MonoGame.Framework" />
<Reference type="Package" refto="OpenTK" />
<Reference type="Package" refto="Tao.Sdl" />
</References>
<Files>
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
<File name="Main.cs" AddStandardHeader="True" src="Mac/Program.cs" />
<File name="Info.plist" AddStandardHeader="False" src="Mac/MacInfo.plist" />
<File name="MainMenu.xib" AddStandardHeader="False" src="Mac/MainMenu.xib" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,50 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Mac Application (Xamarin.Mac)</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Application for Mac OS. This application uses Xamarin.Mac and is suitable for the Apple Store.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "XamMac2">
<Options TargetFrameworkVersion="v4.5" />
<References>
<Reference type="Gac" refto="System" />
<Reference type="Gac" refto="System.Xml" />
<Reference type="Gac" refto="System.Core" />
<Reference type="Gac" refto="System.Xml.Linq" />
<Reference type="Gac" refto="System.Drawing" />
<Reference type="Gac" refto="Xamarin.Mac"/>
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
<File name="Main.cs" AddStandardHeader="True" src="Mac/XamMac2Program.cs" />
<File name="Info.plist" AddStandardHeader="False" src="Mac/MacInfo.plist" />
<RawFile name="Icon.ico" src="Common/Icon.ico" BuildAction="EmbeddedResource"/>
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
<ContentFile>
<File name="MonoGame.Framework.dll.config" src="Common/MonoGame.Framework.dll.config" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<RawFile name="libopenal.1.dylib" src="libs/libopenal.1.dylib" BuildAction="NativeReference" />
<RawFile name="libSDL2-2.0.0.dylib" src="libs/libSDL2-2.0.0.dylib" BuildAction="NativeReference" />
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,56 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Mac Application (Xamarin.Mac Classic)</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Application for Mac OS. This application uses Xamarin.Mac Classic API</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "XamMac">
<Options />
<References>
<Reference type="Gac" refto="System" />
<Reference type="Gac" refto="System.Xml" />
<Reference type="Gac" refto="System.Core" />
<Reference type="Gac" refto="System.Xml.Linq" />
<Reference type="Gac" refto="System.Drawing" />
<Reference type="Gac" refto="XamMac" SpecificVersion="false"/>
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
<File name="Main.cs" AddStandardHeader="True" src="Mac/XamMacProgram.cs" />
<File name="MainMenu.xib" AddStandardHeader="False" src="Mac/MainMenu.xib" />
<RawFile name="Icon.ico" src="Common/Icon.ico" BuildAction="EmbeddedResource"/>
<File name="Info.plist" AddStandardHeader="False" src="Mac/MacInfo.plist" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
<ContentFile>
<File name="MonoGame.Framework.dll.config" src="Common/MonoGame.Framework.dll.config" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="libopenal.1.dylib" src="libs/libopenal.1.dylib" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="libSDL2-2.0.0.dylib" src="libs/libSDL2-2.0.0.dylib" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B2150BB5-02A0-4CD7-A61F-C17C09045D1D}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MonoDevelop.MonoGame.iOS</RootNamespace>
<AssemblyName>MonoDevelop.MonoGame.iOS</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\MonoDevelop.MonoGame.Core\MonoDevelop.MonoGame.Core.csproj">
<Project>{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}</Project>
<Name>MonoDevelop.MonoGame.Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="templates\" />
<Folder Include="templates\iOS\" />
<Folder Include="templates\Shared\" />
</ItemGroup>
<ItemGroup>
<Content Include="templates\iOS\iOSInfo.plist">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\iOS\iOSDefault.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\iOS\iOSGameThumbnail.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameiOSProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameMobileOnly-SAP.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Shared\Activity1.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Shared\Program.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameMobileOnly-PCL.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGametvOSProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\iOS\Entitlements.plist.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\iOS\Info_tvOS.plist.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
@@ -0,0 +1,22 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle ("MonoDevelop.MonoGame.iOS")]
[assembly: AssemblyDescription ("")]
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("MonoGame Team")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion ("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Template>
<TemplateConfiguration>
<_Name>Universal MonoGame Mobile Application (Shared Project) </_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Application for the iPhone/iPad and Android which uses a Shared Project to share common code.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}.Droid</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "PortableDotNet">
<Options Target = "Library" TargetFrameworkVersion = ".NETPortable,Version=v4.0,Profile=Profile158"/>
<Packages>
<Package id="MonoGame.Framework.PCL" version="3.2.99-Beta"/>
</Packages>
<Files>
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
</Files>
</Project>
<Project name = "${ProjectName}.iOS" directory = "./iOS" type = "XamarinIOS">
<Options />
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Xamarin.iOS" />
<Reference type="Project" refto="${ProjectName}"/>
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Main.cs" AddStandardHeader="True" src="Shared/Program.cs" />
<File name="Info.plist" AddStandardHeader="False" src="iOS/iOSInfo.plist" />
<RawFile name="Default.png" src="iOS/iOSDefault.png" />
<RawFile name="GameThumbnail.png" src="iOS/iOSGameThumbnail.png" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
</Files>
</Project>
<Project name = "${ProjectName}.Droid" directory = "./Android" type = "MonoDroid">
<Options
AndroidApplication="true"
AndroidResgenFile="Resources/Resource.designer.cs"
AndroidResgenClass="Resource"
TargetFrameworkVersion="MonoAndroid,Version=v5.0" />
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Mono.Android" />
<Reference type="Gac" refto="OpenTK-1.0" />
<Reference type="Project" refto="${ProjectName}"/>
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Activity1.cs" src="Shared/Activity1.cs" />
<Directory name="Resources">
<File name="Resource.designer.cs" src="Android/Resource.cs" />
<RawFile name="AboutResources.txt" src="Android/AboutResources.txt" />
<Directory name="drawable">
<RawFile name="Icon.png" src="Common/Icon-md.png" />
<RawFile name="Splash.png" src="Android/Splash.png" />
</Directory>
<Directory name="values">
<RawFile name="Styles.xml" src="Android/Styles.xml" />
</Directory>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" src="Common/AssemblyInfo.cs" />
<File name="AndroidManifest.xml" src="Android/AndroidManifest.xml" />
</Directory>
<Directory name="Assets">
<RawFile name="AboutAssets.txt" src="Android/AboutAssets.txt" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Template>
<TemplateConfiguration>
<_Name>Universal MonoGame Mobile Application (Shared Project) </_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Application for the iPhone/iPad and Android which uses a Shared Project to share common code.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}.Droid</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "SharedAssetsProject">
<Files>
<File name="Game1.cs" src="Common/Game1.cs" />
</Files>
</Project>
<Project name = "${ProjectName}.iOS" directory = "./iOS" type = "XamarinIOS">
<Options />
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Xamarin.iOS" />
<Reference type="Project" refto="${ProjectName}"/>
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Main.cs" AddStandardHeader="True" src="Shared/Program.cs" />
<File name="Info.plist" AddStandardHeader="False" src="iOS/iOSInfo.plist" />
<RawFile name="Default.png" src="iOS/iOSDefault.png" />
<RawFile name="GameThumbnail.png" src="iOS/iOSGameThumbnail.png" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
</Files>
</Project>
<Project name = "${ProjectName}.Droid" directory = "./Android" type = "MonoDroid">
<Options
AndroidApplication="true"
AndroidResgenFile="Resources/Resource.designer.cs"
AndroidResgenClass="Resource"
TargetFrameworkVersion="MonoAndroid,Version=v5.0" />
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Mono.Android" />
<Reference type="Gac" refto="OpenTK-1.0" />
<Reference type="Project" refto="${ProjectName}"/>
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Activity1.cs" src="Shared/Activity1.cs" />
<Directory name="Resources">
<File name="Resource.designer.cs" src="Android/Resource.cs" />
<RawFile name="AboutResources.txt" src="Android/AboutResources.txt" />
<Directory name="drawable">
<RawFile name="Icon.png" src="Common/Icon-md.png" />
<RawFile name="Splash.png" src="Android/Splash.png" />
</Directory>
<Directory name="values">
<RawFile name="Styles.xml" src="Android/Styles.xml" />
</Directory>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" src="Common/AssemblyInfo.cs" />
<File name="AndroidManifest.xml" src="Android/AndroidManifest.xml" />
</Directory>
<Directory name="Assets">
<RawFile name="AboutAssets.txt" src="Android/AboutAssets.txt" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame iPhone/iPad Application</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Application for the iPhone/iPad</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = "." type = "XamarinIOS">
<Options />
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Xamarin.iOS" />
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
<File name="Main.cs" AddStandardHeader="True" src="Common/Program.cs" />
<File name="Entitlements.plist" AddStandardHeader="False" src="iOS/Entitlements.plist.xml" />
<File name="Info.plist" AddStandardHeader="False" src="iOS/iOSInfo.plist" />
<RawFile name="Default.png" src="iOS/iOSDefault.png" />
<RawFile name="GameThumbnail.png" src="iOS/iOSGameThumbnail.png" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,44 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame tvOS Application</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<Wizard>MonoDevelop.IPhone.TVOSProjectTemplateWizard</Wizard>
<DefaultParameters>MinimumOSVersion=9.0</DefaultParameters>
<_Description>Creates a MonoGame Application for tvOS</_Description>
</TemplateConfiguration>
<Actions>
<Open filename="Game1.cs" />
</Actions>
<Combine name="${ProjectName}" directory=".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name="${ProjectName}" directory="." type="TVOS">
<References>
<Reference type="Gac" refto="System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" />
<Reference type="Gac" refto="Xamarin.TVOS" />
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Info.plist" AddStandardHeader="False" src="iOS/Info_tvOS.plist.xml" />
<File name="Entitlements.plist" AddStandardHeader="False" src="iOS/Entitlements.plist.xml" />
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
<File name="Main.cs" AddStandardHeader="True" src="Common/Program.cs" />
<RawFile name="Default.png" src="iOS/iOSDefault.png" />
<RawFile name="GameThumbnail.png" src="iOS/iOSGameThumbnail.png" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
<Directory name="Properties">
<File name="AssemblyInfo.cs" AddStandardHeader="True" src="Common/AssemblyInfo.cs" />
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,39 @@
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Content.PM;
using Android.Views;
using Android.Widget;
using Android.OS;
using Microsoft.Xna.Framework;
namespace ${Namespace}
{
[Activity (Label = "${ProjectName}",
MainLauncher = true,
Icon = "@drawable/icon",
Theme = "@style/Theme.Splash",
AlwaysRetainTaskState=true,
LaunchMode=LaunchMode.SingleInstance,
ConfigurationChanges = ConfigChanges.Orientation |
ConfigChanges.KeyboardHidden |
ConfigChanges.Keyboard)]
public class Activity1 : AndroidGameActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Create our OpenGL view, and display it
Game1.Activity = this;
var g = new Game1();
SetContentView (g.Window);
g.Run();
}
}
}
@@ -0,0 +1,82 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#if MONOMAC
using MonoMac.AppKit;
using MonoMac.Foundation;
#elif __IOS__ || __TVOS__
using Foundation;
using UIKit;
#endif
#endregion
namespace ${Namespace}
{
#if __IOS__ || __TVOS__
[Register("AppDelegate")]
class Program : UIApplicationDelegate
#else
static class Program
#endif
{
private static Game1 game;
internal static void RunGame()
{
game = new Game1();
game.Run();
}
/// <summary>
/// The main entry point for the application.
/// </summary>
#if !MONOMAC && !__IOS__ && !__TVOS__
[STAThread]
#endif
static void Main(string[] args)
{
#if MONOMAC
NSApplication.Init ();
using (var p = new NSAutoreleasePool ()) {
NSApplication.SharedApplication.Delegate = new AppDelegate();
NSApplication.Main(args);
}
#elif __IOS__ || __TVOS__
UIApplication.Main(args, null, "AppDelegate");
#else
RunGame();
#endif
}
#if __IOS__ || __TVOS__
public override void FinishedLaunching(UIApplication app)
{
RunGame();
}
#endif
}
#if MONOMAC
class AppDelegate : NSApplicationDelegate
{
public override void FinishedLaunching (MonoMac.Foundation.NSObject notification)
{
AppDomain.CurrentDomain.AssemblyResolve += (object sender, ResolveEventArgs a) => {
if (a.Name.StartsWith("MonoMac")) {
return typeof(MonoMac.AppKit.AppKitFramework).Assembly;
}
return null;
};
Program.RunGame();
}
public override bool ApplicationShouldTerminateAfterLastWindowClosed (NSApplication sender)
{
return true;
}
}
#endif
}
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>${AppName}</string>
<key>CFBundleName</key>
<string>${AppName}</string>
<key>CFBundleIdentifier</key>
<string>${AppIdentifier}</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>${MinimumOSVersion}</string>
<key>UIDeviceFamily</key>
<array>
<integer>3</integer>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>XSAppIconAssets</key>
<string>Resources/Images.xcassets/AppIcons.appiconset</string>
</dict>
</plist>
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>${Namespace}</string>
<key>CFBundleIconFiles</key>
<array>
<string>GameThumbnail.png</string>
</array>
<key>CFBundleIdentifier</key>
<string>project.MonoGame.${Namespace}</string>
<key>MinimumOSVersion</key>
<string>7.0</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
@@ -0,0 +1,53 @@
using System;
using MonoDevelop.Ide.Templates;
using System.Xml;
using MonoDevelop.Core;
using MonoDevelop.Projects;
namespace MonoDevelop.MonoGame
{
public class ContentItemTemplate : FileDescriptionTemplate
{
SingleFileDescriptionTemplate template;
FileCopyMode mode = FileCopyMode.None;
public override string Name {
get { return template.Name; }
}
public override void Load (XmlElement filenode, FilePath baseDirectory)
{
foreach (XmlNode node in filenode.ChildNodes) {
if (node is XmlElement) {
template = CreateTemplate ((XmlElement) node, baseDirectory) as SingleFileDescriptionTemplate;
if (template == null)
throw new InvalidOperationException ("Resource templates must contain single-file templates.");
var attr = node.Attributes ["CopyToOutputDirectory"];
if (attr != null) {
Enum.TryParse<FileCopyMode> ( attr.Value, out mode);
}
return;
}
}
}
public override bool AddToProject(SolutionFolderItem policyParent, Project project, string language, string directory, string name)
{
ProjectFile file = template.AddFileToProject(policyParent, project, language, directory, name);
if (file != null)
{
file.BuildAction = BuildAction.Content;
file.CopyToOutputDirectory = mode;
return true;
}
else
return false;
}
public override void Show ()
{
template.Show ();
}
}
}
@@ -0,0 +1,219 @@
<Addin id="MonoGame" namespace="MonoDevelop" name="MonoGame Addin" author="Dean Ellis" copyright="MSPL" url="http://www.monogame.net/" description="MonoGame Addin for MonoDevelop" category="Game Development" version="0.0.0.0">
<Runtime>
<Import file="icons/monogame-project-32.png" />
<!-- File Templates -->
<Import file="templates/MonoGameContentBuilderTemplate.xpt.xml" />
<Import file="templates/MonoGameContentProcessor.xpt.xml" />
<Import file="templates/MonoGameContentImporter.xpt.xml" />
<!--- Generic Templates -->
<Import file="templates/MonoGameProject.xpt.xml" />
<Import file="templates/MonoGameSharedProject.xpt.xml" />
<Import file="templates/MonoGamePCLProject.xpt.xml" />
<Import file="templates/MonoGamePipelineProject.xpt.xml" />
<Import file="templates/Common/Importer1.cs" />
<Import file="templates/Common/Processor1.cs" />
<!-- Windows Templates -->
<Import file="templates/MonoGameWindowsProject.xpt.xml" />
<Import file="templates/Common/AssemblyInfo.cs" />
<Import file="templates/Common/Game1.cs" />
<Import file="templates/Common/Icon-md.png" />
<Import file="templates/Common/Icon-hd.png" />
<Import file="templates/Common/Icon.ico" />
<Import file="templates/Common/Program.cs" />
<Import file="templates/Common/Content.mgcb" />
<Import file="templates/Common/OpenTK.dll.config" />
<Import file="templates/Common/Tao.Sdl.dll.config" />
<Import file="templates/Common/MonoGame.Framework.dll.config" />
<Import file="templates/Common/app.manifest" />
<!-- Android Templates -->
<Import file="templates/MonoGameAndroidProject.xpt.xml" />
<Import file="templates/Android/Activity1.cs" />
<Import file="templates/Android/Resource.cs" />
<Import file="templates/Android/AndroidManifest.xml" />
<Import file="templates/Android/AboutAssets.txt" />
<Import file="templates/Android/AboutContent.txt" />
<Import file="templates/Android/AboutResources.txt" />
<Import file="templates/Android/Splash.png" />
<Import file="templates/Android/Styles.xml" />
<!-- Mac Templates -->
<Import file="templates/MonoGameMacProject.xpt.xml" />
<Import file="templates/MonoGameOSXProject.xpt.xml" />
<Import file="templates/MonoGameXamMacProject.xpt.xml" />
<Import file="templates/Mac/MacInfo.plist" />
<Import file="templates/Mac/MainMenu.xib" />
<Import file="templates/Mac/Program.cs" />
<Import file="templates/Mac/XamMac2Program.cs" />
<Import file="templates/Mac/XamMacProgram.cs" />
<!-- iOS Templates -->
<Import file="templates/MonoGameiOSProject.xpt.xml" />
<Import file="templates/iOS/iOSDefault.png" />
<Import file="templates/iOS/iOSGameThumbnail.png" />
<Import file="templates/iOS/iOSInfo.plist" />
<Import file="templates/MonoGametvOSProject.xpt.xml" />
<Import file="templates/iOS/Entitlements.plist.xml" />
<Import file="templates/iOS/Info_tvOS.plist.xml" />
<!-- Shared Templates -->
<Import file="templates/MonoGameMobileOnly-SAP.xpt.xml" />
<Import file="templates/Shared/Program.cs" />
<Import file="templates/Shared/Activity1.cs" />
<!-- Additional Modules -->
<Import file="MonoDevelop.MonoGame.Android.dll" />
<Import file="MonoDevelop.MonoGame.Core.dll" />
<Import file="MonoDevelop.MonoGame.iOS.dll" />
<Import file="MonoDevelop.MonoGame.Mac.dll" />
<!-- Native Libraries -->
<Import file="templates/libs/x64/libopenal.so.1" />
<Import file="templates/libs/x86/libopenal.so.1" />
<Import file="templates/libs/libopenal.1.dylib" />
<Import file="templates/libs/x64/soft_oal.dll" />
<Import file="templates/libs/x86/soft_oal.dll" />
<Import file="templates/libs/x64/libSDL2-2.0.so.0" />
<Import file="templates/libs/x86/libSDL2-2.0.so.0" />
<Import file="templates/libs/libSDL2-2.0.0.dylib" />
<Import file="templates/libs/x64/SDL2.dll" />
<Import file="templates/libs/x86/SDL2.dll" />
<!-- Nuget Packages -->
<Import file="packages/MonoGame.Framework.Android.3.4.0.459.nupkg" />
<Import file="packages/MonoGame.Framework.iOS.3.4.0.459.nupkg" />
<Import file="packages/MonoGame.Framework.Linux.3.4.0.459.nupkg" />
<Import file="packages/MonoGame.Framework.MacOS.3.4.0.459.nupkg" />
<Import file="packages/MonoGame.Framework.WindowsDX.3.4.0.459.nupkg" />
<Import file="packages/MonoGame.Framework.WindowsGL.3.4.0.459.nupkg" />
<Import file="packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta.nupkg" />
<Import file="packages/MonoGame.Framework.Portable.3.2.99.1-Beta.nupkg" />
<!-- Exclude non .net files from a scan -->
<ScanExclude path="nvtt.dll" />
<!-- Exclude -->
<Import file="exclude.addins" />
</Runtime>
<Dependencies>
<Addin id="Core" version="6.0" />
<Addin id="Ide" version="6.0" />
<Addin id="DesignerSupport" version="4.0" />
</Dependencies>
<ConditionType id="IsWindows" type="MonoDevelop.MonoGame.MonoGameIsWindowsCondition" />
<ConditionType id="IsMac" type="MonoDevelop.MonoGame.MonoGameIsMacCondition" />
<ConditionType id="IsLinux" type="MonoDevelop.MonoGame.MonoGameIsLinuxCondition" />
<Extension path="/MonoDevelop/Core/StockIcons">
<StockIcon stockid="monogame-project" file="icons/monogame-project-32.png" />
</Extension>
<Extension path="/MonoDevelop/ProjectModel/ProjectModelExtensions">
<Class class="MonoDevelop.MonoGame.MonoGameMSBuildImports" />
</Extension>
<!--
<Extension path="/MonoDevelop/ProjectModel/MSBuildItemTypes">
<DotNetProjectSubtype id="MonoGame" guid="{9b831fef-f496-498f-9fe8-180da5cb4258}" type="MonoDevelop.MonoGame.MonoGameProject">
</DotNetProjectSubtype>
</Extension>
-->
<Extension path="/MonoDevelop/Ide/ProjectTemplateCategories">
<Category id="monogame" name="MonoGame" icon="monogame-project" insertbefore="other">
<Category id="app" name="App">
<Category id="games" name="Games" mappedCategories="C#/MonoGame;monogame/app/games" />
</Category>
<Category id="library" name="Library">
<Category id="crossplat" name="Cross Platform" />
<Category id="pipeline" name="Content Pipeline" />
</Category>
</Category>
</Extension>
<Extension path="/MonoDevelop/Ide/FileTemplateTypes">
<FileTemplateType name="ContentFile" class="MonoDevelop.MonoGame.ContentItemTemplate" />
</Extension>
<!--
<Extension path="/MonoDevelop/ProjectModel/ProjectBindings">
<ProjectBinding id="MonoGame" class="MonoDevelop.MonoGame.MonoGameProjectBinding" />
</Extension>
-->
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="MonoGameSharedProject" file="templates/MonoGameSharedProject.xpt.xml" />
<ProjectTemplate id="MonoGamePCLProject" file="templates/MonoGamePCLProject.xpt.xml" />
<ProjectTemplate id="MonoGamePipelineProject" file="templates/MonoGamePipelineProject.xpt.xml" />
<Condition id="IsWindows">
<!-- DirectX Based Templates -->
<ProjectTemplate id="MonoGameDXProject" file="templates/MonoGameWindowsProject.xpt.xml" />
<!--- Linux Templates -->
<ProjectTemplate id="MonoGameProject" file="templates/MonoGameProject.xpt.xml" />
</Condition>
<Condition id="IsLinux">
<!--- Linux Templates -->
<ProjectTemplate id="MonoGameProject" file="templates/MonoGameProject.xpt.xml" />
</Condition>
<Condition id="IsMac">
<!--- Mac Templates -->
<ProjectTemplate id="MonoGameProject" file="templates/MonoGameProject.xpt.xml" />
</Condition>
</Extension>
<Extension path="/MonoDevelop/Ide/FileTemplates">
<FileTemplate id="MonoGameContentBuilderTemplate" file="templates/MonoGameContentBuilderTemplate.xpt.xml" />
<FileTemplate id="MonoGameContentImporter" file="templates/MonoGameContentImporter.xpt.xml" />
<FileTemplate id="MonoGameContentProcessor" file="templates/MonoGameContentProcessor.xpt.xml" />
</Extension>
<Extension path="/MonoDevelop/Ide/ProjectTemplatePackageRepositories">
<PackageRepository path="packages" />
</Extension>
<Extension path="/MonoDevelop/Ide/FileFilters">
<FileFilter id="MGCB" insertbefore="AllFiles" _label="MonoGame Content Build Files" extensions="*.mgcb" />
</Extension>
<Extension path="/MonoDevelop/Core/MimeTypes">
<MimeType id="text/x-mgcb" _description="MonoGame Content Build File" icon="monogame-project" isText="false">
<File pattern="*.mgcb" />
</MimeType>
</Extension>
<Extension path="/MonoDevelop/Ide/DisplayBindings">
<DisplayBinding id="MonoGamePipeline" insertbefore="DefaultDisplayBinding" class="MonoDevelop.MonoGame.PipelineDisplayBinding" />
</Extension>
<!-- We still need this for MonoMac and Xamarin Mac Classic support -->
<!--
<Extension path="/MonoDevelop/ProjectModel/ProjectServiceExtensions">
<Class class="MonoDevelop.MonoGame.MonoGameBuildExtension" />
</Extension>
-->
<Module>
<Runtime>
<Import assembly="MonoDevelop.MonoGame.Android.dll" />
</Runtime>
<Dependencies>
<Addin id="MonoAndroid" version="4.0" />
</Dependencies>
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="MonoGameForAndroidProject" file="templates/MonoGameAndroidProject.xpt.xml" />
</Extension>
</Module>
<Module>
<Runtime>
<Import assembly="MonoDevelop.MonoGame.iOS.dll" />
</Runtime>
<Dependencies>
<Addin id="IPhone" version="4.0" />
</Dependencies>
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="MonoGameForIPhoneProject" file="templates/MonoGameiOSProject.xpt.xml" />
<ProjectTemplate id="MonoGameFortvOSProject" file="templates/MonoGametvOSProject.xpt.xml" />
</Extension>
</Module>
<Module>
<Runtime>
</Runtime>
<Dependencies>
<Addin id="IPhone" version="4.0" />
<Addin id="MonoAndroid" version="4.0" />
</Dependencies>
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="MonoGameForMobileSAPProject" file="templates/MonoGameMobileOnly-SAP.xpt.xml" />
</Extension>
</Module>
<Module>
<Runtime>
<Import assembly="MonoDevelop.MonoGame.Mac.dll" />
</Runtime>
<Dependencies>
<Addin id="MonoMac" version="4.0" />
</Dependencies>
<Extension path="/MonoDevelop/Ide/ProjectTemplates">
<ProjectTemplate id="MonoGameForMonoMacProject" file="templates/MonoGameMacProject.xpt.xml" />
<ProjectTemplate id="MonoGameForXamMac2Project" file="templates/MonoGameOSXProject.xpt.xml" />
<ProjectTemplate id="MonoGameForXamMacProject" file="templates/MonoGameXamMacProject.xpt.xml" />
</Extension>
</Module>
</Addin>
@@ -0,0 +1,246 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B2C75BDF-A022-41C6-9618-EDD8BEE76556}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MonoDevelop.MonoGame</RootNamespace>
<AssemblyName>MonoDevelop.MonoGame</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<CustomCommands>
<CustomCommands>
<Command type="Execute" command="&quot;/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/XamarinStudio.exe&quot;" workingdir="/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/">
<EnvironmentVariables>
<Variable name="MONODEVELOP_DEV_ADDINS" value="${TargetDir}" />
</EnvironmentVariables>
</Command>
</CustomCommands>
</CustomCommands>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="MonoDevelop.Core">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/MonoDevelop.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.Ide">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/MonoDevelop.Ide.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MonoDevelop.DesignerSupport">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.NRefactory">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/ICSharpCode.NRefactory.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Mono.TextEditor">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/Mono.TextEditor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="System.Xml" />
<Reference Include="Mono.Addins">
<HintPath>/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/bin/Mono.Addins.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PipelineDisplayBinding.cs" />
<Compile Include="MonoGameContentEditorViewContent.cs" />
<Compile Include="MonoGameConditions.cs" />
<Compile Include="ContentItemTemplate.cs" />
<Compile Include="MonoGameMSBuildImports.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\MonoDevelop.MonoGame.Core\MonoDevelop.MonoGame.Core.csproj">
<Project>{3FE5AAE8-BE24-4FC3-AF86-2AA3C3CD8DB4}</Project>
<Name>MonoDevelop.MonoGame.Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="icons\" />
<Folder Include="templates\" />
<Folder Include="templates\Common\" />
<Folder Include="packages\" />
<Folder Include="templates\libs\" />
<Folder Include="templates\libs\x64\" />
<Folder Include="templates\libs\x86\" />
</ItemGroup>
<ItemGroup>
<Content Include="templates\MonoGameWindowsProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="icons\monogame-project-32.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\AssemblyInfo.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Game1.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Icon-md.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Program.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="exclude.addins">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Icon-hd.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\*.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameSharedProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameContentBuilderTemplate.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Content.mgcb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\app.manifest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!---
<Content Include="packages\MonoGame.Framework.Android.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.iOS.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.Linux.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.MacOS.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.MonoMac.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.WindowsDX.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.WindowsGL.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="packages\MonoGame.Framework.Pipeline.3.3.0.nupkg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
-->
<Content Include="templates\MonoGamePCLProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGamePipelineProject.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Importer1.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Processor1.cs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameContentImporter.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\MonoGameContentProcessor.xpt.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\OpenTK.dll.config">
<Link>templates\Common\OpenTK.dll.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\GamepadConfig\Tao.Sdl.dll.config">
<Link>templates\Common\Tao.Sdl.dll.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="templates\Common\Icon.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\MonoGame.Framework.dll.config">
<Link>templates\Common\MonoGame.Framework.dll.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\openal-soft\MacOS\Universal\libopenal.1.dylib">
<Link>templates\libs\libopenal.1.dylib</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\openal-soft\Linux\x64\libopenal.so.1">
<Link>templates\libs\x64\libopenal.so.1</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\openal-soft\Windows\x64\soft_oal.dll">
<Link>templates\libs\x64\soft_oal.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\openal-soft\Windows\x86\soft_oal.dll">
<Link>templates\libs\x86\soft_oal.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\openal-soft\Linux\x86\libopenal.so.1">
<Link>templates\libs\x86\libopenal.so.1</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\SDL\Linux\x64\libSDL2-2.0.so.0">
<Link>templates\libs\x64\libSDL2-2.0.so.0</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\SDL\Windows\x64\SDL2.dll">
<Link>templates\libs\x64\SDL2.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\SDL\Windows\x86\SDL2.dll">
<Link>templates\libs\x86\SDL2.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\SDL\Linux\x86\libSDL2-2.0.so.0">
<Link>templates\libs\x86\libSDL2-2.0.so.0</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\..\..\ThirdParty\Dependencies\SDL\MacOS\Universal\libSDL2-2.0.0.dylib">
<Link>templates\libs\libSDL2-2.0.0.dylib</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MonoDevelop.MonoGame.addin.xml" />
</ItemGroup>
<ItemGroup>
<None Include="MonoGameProject.cs" />
<None Include="MonoGameBuildExtension.cs" />
</ItemGroup>
</Project>
@@ -0,0 +1,148 @@
using System;
using System.Linq;
using MonoDevelop.Projects;
using System.Diagnostics;
using System.IO;
using System.Collections.Generic;
namespace MonoDevelop.MonoGame
{
public class MonoGameBuildExtension : ProjectServiceExtension
{
/// <summary>
/// List of ProjectTypes which map to the Platform Enum in MonoGame
/// This is used to pass the correct /platform parameter for the auto
/// build of content.
/// </summary>
static Dictionary<string,string> supportedProjectTypes = new Dictionary<string,string>() {
{"MonoMac", "MacOSX"},
{"XamMac","DesktopGL"},
};
string platform;
protected override BuildResult Build (MonoDevelop.Core.IProgressMonitor monitor, SolutionEntityItem item, ConfigurationSelector configuration)
{
#if DEBUG
monitor.Log.WriteLine("MonoGame Extension Build Called");
#endif
try
{
var proj = item as Project;
if (proj == null)
{
#if DEBUG
monitor.Log.WriteLine("MonoGame Extension Null Project");
#endif
return base.Build (monitor, item, configuration);
}
#if DEBUG
foreach(var p in proj.GetProjectTypes()) {
monitor.Log.WriteLine("MonoGame Extension Project Type {0}", p);
}
#endif
if (!proj.GetProjectTypes().Any(x => supportedProjectTypes.ContainsKey(x)))
return base.Build (monitor, item, configuration);
var files = proj.Items.Where(x => x is ProjectFile).Cast<ProjectFile>();
foreach(var file in files.Where(f => f.BuildAction == "MonoGameContentReference")) {
monitor.Log.WriteLine ("Found MonoGame Content Builder Response File : {0}", file.FilePath);
platform = proj.GetProjectTypes().FirstOrDefault(x => supportedProjectTypes.ContainsKey(x));
if (!string.IsNullOrEmpty (platform)) {
try {
RunMonoGameContentBuilder(file.FilePath.ToString(), supportedProjectTypes[platform], monitor);
} catch (Exception ex) {
monitor.ReportWarning(ex.ToString());
}
}
}
return base.Build (monitor, item, configuration);
}
finally
{
#if DEBUG
monitor.Log.WriteLine("MonoGame Extension Build Ended");
#endif
}
}
protected override BuildResult Compile (MonoDevelop.Core.IProgressMonitor monitor, SolutionEntityItem item, BuildData buildData)
{
var proj = item as Project;
if (proj == null)
return base.Compile (monitor, item, buildData);
if (!proj.GetProjectTypes().Any(x => supportedProjectTypes.ContainsKey(x)))
return base.Compile (monitor, item, buildData);
var files = buildData.Items.Where(x => x is ProjectFile).Cast<ProjectFile>().ToArray();
foreach (var file in files.Where(f => f.BuildAction == "MonoGameContentReference")) {
var path = System.IO.Path.Combine (Path.GetDirectoryName (file.FilePath.ToString ()), "bin", supportedProjectTypes[platform]);
monitor.Log.WriteLine("Processing {0}", path);
if (!Directory.Exists (path))
continue;
foreach (var output in Directory.GetFiles (path, "*.*", SearchOption.AllDirectories)) {
var link = string.Format ("Content{0}", output.Replace (path, ""));
if (proj.Files.FirstOrDefault (x => Path.GetFileName (x.FilePath.ToString ()) == Path.GetFileName (output)) == null) {
monitor.Log.WriteLine ("Auto Including Content {0}", output);
proj.Files.Add (new ProjectFile (output, BuildAction.BundleResource) {
Link = new MonoDevelop.Core.FilePath (link),
Flags = ProjectItemFlags.DontPersist | ProjectItemFlags.Hidden,
Visible = false,
});
}
}
}
return base.Compile (monitor, item, buildData);
}
void RunMonoGameContentBuilder(string responseFile, string platform, MonoDevelop.Core.IProgressMonitor monitor) {
var process = new Process ();
var location = Path.Combine (Path.GetDirectoryName (typeof(MonoGameBuildExtension).Assembly.Location), "MGCB.exe");
if (!File.Exists (location)) {
switch (Environment.OSVersion.Platform) {
case PlatformID.Win32NT:
location = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86), @"MSBuild\MonoGame\v3.0\Tools", "MGCB.exe");
break;
case PlatformID.Unix:
if (Directory.Exists ("/Applications") &&
Directory.Exists ("/Users")) {
location = Path.Combine ("/Applications/Pipeline.app/Contents/MonoBundle", "MGCB.exe");
} else {
location = Path.Combine ("/bin", "mgcb");
}
break;
case PlatformID.MacOSX:
location = Path.Combine ("/Applications/Pipeline.app/Contents/MonoBundle", "MGCB.exe");
break;
}
}
if (!File.Exists (location)) {
monitor.Log.WriteLine ("MGCB.exe not found");
return;
}
process.StartInfo.WorkingDirectory = Path.GetDirectoryName (responseFile);
if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
process.StartInfo.FileName = location;
process.StartInfo.Arguments = string.Format ("/@:\"{1}\" /platform:{0}", platform, responseFile);
} else if (Directory.Exists ("/Applications") &&
Directory.Exists ("/Users")) {
process.StartInfo.FileName = "mono";
process.StartInfo.Arguments = string.Format ("\"{0}\" /@:\"{2}\" /platform:{1}", location, platform, responseFile);
} else {
process.StartInfo.FileName = location;
process.StartInfo.Arguments = string.Format ("/@:\"{1}\" /platform:{0}", platform, responseFile);
}
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += (sender, args) => monitor.Log.WriteLine(args.Data);
monitor.Log.WriteLine ("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
// Fire off the process.
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}
}
}
@@ -0,0 +1,38 @@
using System;
using Mono.Addins;
using System.IO;
namespace MonoDevelop.MonoGame
{
public class MonoGameIsWindowsCondition : ConditionType
{
public override bool Evaluate (NodeElement conditionNode)
{
return Environment.OSVersion.Platform == PlatformID.Win32NT;
}
}
public class MonoGameIsLinuxCondition : ConditionType
{
public override bool Evaluate (NodeElement conditionNode)
{
return Environment.OSVersion.Platform == PlatformID.Unix
&& !Directory.Exists ("/Applications")
&& !Directory.Exists ("/Users")
&& !Directory.Exists ("/Library");
}
}
public class MonoGameIsMacCondition : ConditionType
{
public override bool Evaluate (NodeElement conditionNode)
{
return (Environment.OSVersion.Platform == PlatformID.Unix
&& Directory.Exists("/Applications")
&& Directory.Exists("/Users")
&& Directory.Exists("/Library"))
|| Environment.OSVersion.Platform == PlatformID.MacOSX;
}
}
}
@@ -0,0 +1,114 @@
using System;
using MonoDevelop.Ide.Gui;
using Gtk;
using System.IO;
namespace MonoDevelop.MonoGame
{
#if BUILDINEDITOR
class MonoGameContentEditorViewContent : AbstractBaseViewContent, IViewContent
{
Alignment control;
Pipeline.MacOS.MainView view;
public event EventHandler ContentNameChanged;
public event EventHandler ContentChanged;
public event EventHandler DirtyChanged;
public event EventHandler BeforeSave;
public void Load (string fileName)
{
view.Load (fileName);
}
public void LoadNew (Stream content, string mimeType)
{
view.LoadNew (content, mimeType);
}
public void Save (string fileName)
{
view.Save (fileName);
}
public void Save ()
{
view.Save ();
}
public void DiscardChanges ()
{
view.Undo ();
}
public MonoDevelop.Projects.Project Project {
get ;
set;
}
public string PathRelativeToProject {
get {
return string.Empty;
}
}
public string ContentName {
get;
set;
}
public string UntitledName {
get;
set;
}
public string StockIconId {
get {
return "monogame-project";
}
}
public bool IsUntitled {
get {
return false;
}
}
public bool IsViewOnly {
get {
return true;
}
}
public bool IsFile {
get {
return true;
}
}
public bool IsDirty {
get { return view.IsDirty; }
set { view.IsDirty = value; }
}
public bool IsReadOnly {
get {
return false;
}
}
public override Gtk.Widget Control {
get {
return control;
}
}
public MonoGameContentEditorViewContent (MonoDevelop.Core.FilePath filename, MonoDevelop.Projects.Project project)
{
this.ContentName = Path.GetFileName (filename.ToString());
this.Project = project;
control = new Alignment (0, 0, 1, 1);
control.SetPadding (5, 5, 5, 5);
view = new Pipeline.MacOS.MainView (null);
if (filename != null) {
view.OpenProjectPath = filename.ToString();
}
Pipeline.MacOS.MainView.CreateControllers (view);
view.BuildUI ();
control.Add (view);
control.ShowAll ();
}
}
#endif
}
@@ -0,0 +1,177 @@
using System;
using System.Xml;
using System.Xml.XPath;
using System.Linq;
using System.Collections.Generic;
using MonoDevelop.Projects.MSBuild;
using MonoDevelop.Projects;
namespace MonoDevelop.MonoGame
{
public class MonoGameMSBuildImports : DotNetProjectExtension
{
const string MonoGameContentBuildTargets = "$(MSBuildExtensionsPath)\\MonoGame\\v3.0\\MonoGame.Content.Builder.targets";
const string MonoGameCommonProps = "$(MSBuildExtensionsPath)\\MonoGame\\v3.0\\MonoGame.Common.props";
const string MonoGameExtensionsPath = @"$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\{0}\{1}";
const string MonoGameExtensionsAbsolutePath = @"/Library/Frameworks/MonoGame.framework/v3.0/Assemblies/{0}/{1}";
static bool UpgradeMonoGameProject (MonoDevelop.Core.ProgressMonitor monitor, DotNetProjectExtension extension, MSBuildProject project)
{
bool needsSave = false;
bool containsMGCB = project.ItemGroups.Any (x => x.Items.Any (i => System.IO.Path.GetExtension (i.Include) == ".mgcb"));
bool isMonoGame = project.PropertyGroups.Any (x => x.GetProperties().Any (p => p.Name == "MonoGamePlatform")) ||
project.ItemGroups.Any (x => x.Items.Any (i => i.Name == "Reference" && i.Include == "MonoGame.Framework")) ||
containsMGCB;
bool isDesktopGL = project.ItemGroups.Any (x => x.Items.Any (i => i.Include.EndsWith ("SDL2.dll")));
bool isApplication = project.PropertyGroups.Any (x => x.GetProperties().Any (p => p.Name == "OutputType" && p.Value == "Exe"))
| project.PropertyGroups.Any (x => x.GetProperties().Any (p => p.Name == "AndroidApplication" && string.Compare (p.Value, bool.TrueString, true)==0));
bool isShared = project.PropertyGroups.Any (x => x.GetProperties().Any (p => p.Name == "HasSharedItems" && p.Value == "true"));
bool absoluteReferenes = false;
var type = extension.Project.GetType ().Name;
monitor.Log.WriteLine ("Found {0}", type);
monitor.Log.WriteLine ("Found {0}", project.GetType ().Name);
var platform = isDesktopGL ? "DesktopGL" : "Windows";
var path = MonoGameExtensionsPath;
if (extension.Project.FlavorGuids.Contains ("{FEACFBD2-3405-455C-9665-78FE426C6842}")) {
platform = "iOS";
}
if (extension.Project.FlavorGuids.Contains ("{06FA79CB-D6CD-4721-BB4B-1BD202089C55}")) {
platform = "tvOS";
}
if (extension.Project.FlavorGuids.Contains ("{EFBA0AD7-5A72-4C68-AF49-83D382785DCF}")) {
platform = "Android";
}
if (extension.Project.FlavorGuids.Contains ("{948B3504-5B70-4649-8FE4-BDE1FB46EC69}")) {
platform = "MacOSX";
// MonoMac Classic does not use MSBuild so we need to absolute path.
path = MonoGameExtensionsAbsolutePath;
absoluteReferenes = true;
}
if (extension.Project.FlavorGuids.Contains ("{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23}")) {
platform = "DesktopGL";
// Xamarin.Mac Classic does not use MSBuild so we need to absolute path.
path = MonoGameExtensionsAbsolutePath;
absoluteReferenes = true;
}
if (extension.Project.FlavorGuids.Contains ("{A3F8F2AB-B479-4A4A-A458-A89E7DC349F1}")) {
platform = "DesktopGL";
}
monitor.Log.WriteLine ("Platform = {0}", platform);
monitor.Log.WriteLine ("Path = {0}", path);
monitor.Log.WriteLine ("isMonoGame {0}", isMonoGame);
if (isMonoGame) {
var ritems = new List<MSBuildItem> ();
foreach (var ig in project.ItemGroups) {
foreach (var i in ig.Items.Where (x => x.Name == "Reference" && x.Include == "MonoGame.Framework")) {
var metaData = i.Metadata;
if (!metaData.HasProperty("HintPath")) {
monitor.Log.WriteLine ("Fixing {0} to be MonoGameContentReference", i.Include);
metaData.SetValue ("HintPath", string.Format (path, platform, "MonoGame.Framework.dll"));
needsSave = true;
}
}
foreach (var i in ig.Items.Where (x => x.Name == "Reference" && x.Include == "Tao.Sdl")) {
var metaData = i.Metadata;
if (!metaData.HasProperty("HintPath")) {
monitor.Log.WriteLine ("Fixing {0} to be Tao.Sdl", i.Include);
metaData.SetValue ("HintPath", string.Format (path, platform, "Tao.Sdl.dll"));
needsSave = true;
}
}
foreach (var i in ig.Items.Where (x => x.Name == "Reference" && x.Include.StartsWith ("OpenTK") &&
(platform != "iOS" && platform != "Android"))) {
var metaData = i.Metadata;
if (!metaData.HasProperty ("HintPath")) {
monitor.Log.WriteLine("Fixing {0} to be OpenTK", i.Include);
metaData.SetValue ("HintPath", string.Format (path, platform, "OpenTK.dll"));
metaData.SetValue ("SpecificVersion", "true");
needsSave = true;
}
}
}
foreach (var a in ritems) {
project.RemoveItem (a);
}
var dotNetProject = extension.Project;
if (dotNetProject != null && absoluteReferenes) {
var items = new List<ProjectReference> ();
var newitems = new List<ProjectReference> ();
foreach (var reference in dotNetProject.References) {
if (reference.Reference == "MonoGame.Framework" && string.IsNullOrEmpty (reference.HintPath)) {
items.Add (reference);
newitems.Add (ProjectReference.CreateCustomReference (ReferenceType.Assembly, reference.Reference, string.Format(path, platform, "MonoGame.Framework.dll")));
}
if (reference.Reference.StartsWith ("OpenTK", StringComparison.OrdinalIgnoreCase) && string.IsNullOrEmpty (reference.HintPath)) {
items.Add (reference);
newitems.Add (ProjectReference.CreateCustomReference (ReferenceType.Assembly, reference.Reference, string.Format (path, platform, "OpenTK.dll")));
}
if (reference.Reference == "Tao.Sdl" && string.IsNullOrEmpty (reference.HintPath)) {
items.Add (reference);
newitems.Add (ProjectReference.CreateCustomReference (ReferenceType.Assembly, reference.Reference, string.Format (path, platform, "Tao.Sdl.dll")));
}
}
dotNetProject.References.RemoveRange (items);
dotNetProject.References.AddRange (newitems);
}
}
if (isMonoGame && containsMGCB && (isApplication || isShared)) {
if (!project.PropertyGroups.Any (x => x.GetProperties().Any (p => p.Name == "MonoGamePlatform")) && !isShared) {
monitor.Log.WriteLine ("Adding MonoGamePlatform {0}", platform == "tvOS" ? "iOS" : platform);
project.PropertyGroups.First ().SetValue ("MonoGamePlatform", platform == "tvOS" ? "iOS" : platform, true);
needsSave = true;
}
if (!project.Imports.Any (x => x.Project.StartsWith (MonoGameCommonProps, StringComparison.OrdinalIgnoreCase))&& !isShared) {
monitor.Log.WriteLine ("Adding MonoGame.Common.props Import");
project.AddNewImport(MonoGameCommonProps, string.Format ("Exists('{0}')", MonoGameCommonProps), project.PropertyGroups.First());
needsSave = true;
}
if (containsMGCB) {
var ritems = new List<MSBuildItem> ();
foreach (var ig in project.ItemGroups) {
foreach (var i in ig.Items.Where (x => System.IO.Path.GetExtension (x.Include) == ".mgcb")) {
if (i.Name != "MonoGameContentReference" && i.Name == "None") {
monitor.Log.WriteLine ("Fixing {0} to be MonoGameContentReference", i.Include);
ig.AddNewItem ("MonoGameContentReference", i.Include);
ritems.Add (i);
needsSave = true;
}
}
}
foreach (var a in ritems) {
project.RemoveItem (a);
}
}
if (!project.Imports.Any (x => x.Project.StartsWith (MonoGameContentBuildTargets, StringComparison.OrdinalIgnoreCase)) && !isShared) {
monitor.Log.WriteLine ("Adding MonoGame Content Builder .targets");
project.AddNewImport (MonoGameContentBuildTargets);
needsSave = true;
}
}
return needsSave;
}
protected override void OnWriteProject(MonoDevelop.Core.ProgressMonitor monitor, MSBuildProject msproject)
{
base.OnWriteProject(monitor, msproject);
var changed = UpgradeMonoGameProject (monitor, this, msproject);
if (changed)
{
msproject.Save(msproject.FileName);
this.Project.NeedsReload = true;
}
}
protected override void OnReadProject(MonoDevelop.Core.ProgressMonitor monitor, MSBuildProject msproject)
{
base.OnReadProject (monitor, msproject);
var changed = (UpgradeMonoGameProject(monitor, this, msproject));
if (changed)
{
msproject.Save (msproject.FileName);
this.Project.NeedsReload = true;
}
}
}
}
@@ -0,0 +1,97 @@
using System;
using MonoDevelop.Projects.MSBuild;
using MonoDevelop.Core.Assemblies;
using System.Xml;
using MonoDevelop.Projects;
namespace MonoDevelop.MonoGame
{
public class MonoGameProject : DotNetAssemblyProject
{
public MonoGameProject ()
{
Init ();
}
public MonoGameProject (string languageName)
: base (languageName)
{
Init ();
}
public MonoGameProject (string languageName, ProjectCreateInformation info, XmlElement projectOptions)
: base (languageName, info, projectOptions)
{
Init ();
}
private void Init()
{
}
public override SolutionItemConfiguration CreateConfiguration (string name)
{
var conf = new MonoGameProjectConfiguration (name);
conf.CopyFrom (base.CreateConfiguration (name));
return conf;
}
public override bool SupportsFormat (FileFormat format)
{
return format.Id == "MSBuild12";
}
public override TargetFrameworkMoniker GetDefaultTargetFrameworkForFormat (FileFormat format)
{
return new TargetFrameworkMoniker("4.0");
}
public override bool SupportsFramework (MonoDevelop.Core.Assemblies.TargetFramework framework)
{
if (!framework.CanReferenceAssembliesTargetingFramework (MonoDevelop.Core.Assemblies.TargetFrameworkMoniker.NET_4_0))
return false;
else
return base.SupportsFramework (framework);
}
}
public class MonoGameProjectBinding : IProjectBinding
{
public Project CreateProject (ProjectCreateInformation info, XmlElement projectOptions)
{
string lang = projectOptions.GetAttribute ("language");
return new MonoGameProject (lang, info, projectOptions);
}
public Project CreateSingleFileProject (string sourceFile)
{
throw new InvalidOperationException ();
}
public bool CanCreateSingleFileProject (string sourceFile)
{
return false;
}
public string Name {
get { return "MonoGame"; }
}
}
public class MonoGameProjectConfiguration : DotNetProjectConfiguration
{
public MonoGameProjectConfiguration () : base ()
{
}
public MonoGameProjectConfiguration (string name) : base (name)
{
}
public override void CopyFrom (ItemConfiguration configuration)
{
base.CopyFrom (configuration);
}
}
}
@@ -0,0 +1,104 @@
using System;
using MonoDevelop.Ide.Gui;
using System.IO;
using System.Diagnostics;
using MonoDevelop.Ide.Gui.Content;
using Gtk;
namespace MonoDevelop.MonoGame
{
#if BUILDINEDITOR
public class PipelineDisplayBinding: IViewDisplayBinding
{
#region IViewDisplayBinding implementation
public IViewContent CreateContent (MonoDevelop.Core.FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
{
return new MonoGameContentEditorViewContent (fileName, ownerProject);
}
public string Name {
get {
return "MonoGame Content Builder";
}
}
#endregion
#region IDisplayBinding implementation
public bool CanHandle (MonoDevelop.Core.FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
{
return mimeType == "text/x-mgcb";
}
public bool CanUseAsDefault {
get {
return true;
}
}
#endregion
}
#else
public class PipelineDisplayBinding : IExternalDisplayBinding {
#region IExternalDisplayBinding implementation
public MonoDevelop.Ide.Desktop.DesktopApplication GetApplication (MonoDevelop.Core.FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
{
return new PipelineDesktopApplication (fileName.FullPath,ownerProject);
}
#endregion
#region IDisplayBinding implementation
public bool CanHandle (MonoDevelop.Core.FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
{
return mimeType == "text/x-mgcb";
}
public bool CanUseAsDefault {
get {
return true;
}
}
#endregion
}
class PipelineDesktopApplication : MonoDevelop.Ide.Desktop.DesktopApplication
{
MonoDevelop.Projects.Project project;
string filename;
public PipelineDesktopApplication (string filename, MonoDevelop.Projects.Project ownerProject)
: base ("MonoGamePipelineTool", "MonoGame Pipeline Tool", true)
{
this.project = ownerProject;
this.filename = filename;
}
public override void Launch (params string[] files)
{
var process = new Process ();
if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
process.StartInfo.FileName = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86), @"MSBuild\MonoGame\v3.0\Tools", "Pipeline.exe");
process.StartInfo.Arguments = string.Format ("\"{0}\"", filename);
} else {
if (Directory.Exists ("/Applications/Pipeline.app")) {
process.StartInfo.FileName = "open";
process.StartInfo.EnvironmentVariables.Add("MONOGAME_PIPELINE_PROJECT", Path.GetFullPath (filename));
process.StartInfo.Arguments = string.Format ("-b com.monogame.pipeline --args \"{0}\"", Path.GetFullPath (filename));
} else {
// figure out linix
process.StartInfo.FileName = "monogame-pipeline-tool";
process.StartInfo.Arguments = string.Format ("\"{0}\"", filename);
}
}
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.UseShellExecute = false;
// Fire off the process.
process.Start();
}
}
#endif
}
@@ -0,0 +1,22 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle ("MonoDevelop.MonoGame")]
[assembly: AssemblyDescription ("")]
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("MonoGame Team")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion ("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -0,0 +1,23 @@
<Addins>
<Exclude>Assimp64.dll</Exclude>
<Exclude>nvtt.dll</Exclude>
<Exclude>freetype6.dll</Exclude>
<Exclude>pvrtc.dll</Exclude>
<Exclude>templates/libs/x86/SDL2.dll</Exclude>
<Exclude>templates/libs/x64/SDL2.dll</Exclude>
<Exclude>templates/libs/x86/soft_oal.dll</Exclude>
<Exclude>templates/libs/x64/soft_oal.dll</Exclude>
<!--
<Exclude>libnvtt.dylib</Exclude>
<Exclude>libnvimage.dylib</Exclude>
<Exclude>libnvmath.dylib</Exclude>
<Exclude>libnvcore.dylib</Exclude>
<Exclude>libpvrtc.dylib</Exclude>
<Exclude>libfreetype.6.dylib</Exclude>
<Exclude>libpng15.15.dylib</Exclude>
<Exclude>libassimp.dylib</Exclude>
<Exclude>libfreeimage.dylib</Exclude>
<Exclude>libfreeimageplus.dylib</Exclude>
-->
</Addins>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,29 @@
using System.Reflection;
using System.Runtime.CompilerServices;
#if __ANDROID__
using Android.App;
#endif
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("${ProjectName}")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("${AuthorCompany}")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("${AuthorCopyright}")]
[assembly: AssemblyTrademark("${AuthorTrademark}")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.0")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
@@ -0,0 +1,12 @@
#----------------------------- Global Properties ----------------------------#
/outputDir:bin/$(Platform)
/intermediateDir:obj/$(Platform)
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
#---------------------------------- Content ---------------------------------#
@@ -0,0 +1,80 @@
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
namespace ${Namespace}
{
/// <summary>
/// This is the main type for your game.
/// </summary>
public class Game1 : Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
/// <summary>
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
/// </summary>
protected override void Initialize()
{
// TODO: Add your initialization logic here
base.Initialize();
}
/// <summary>
/// LoadContent will be called once per game and is the place to load
/// all of your content.
/// </summary>
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
//TODO: use this.Content to load your game content here
}
/// <summary>
/// Allows the game to run logic such as updating the world,
/// checking for collisions, gathering input, and playing audio.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Update(GameTime gameTime)
{
// For Mobile devices, this logic will close the Game when the Back button is pressed
// Exit() is obsolete on iOS
#if !__IOS__ && !__TVOS__
if (GamePad.GetState (PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
Exit ();
#endif
// TODO: Add your update logic here
base.Update(gameTime);
}
/// <summary>
/// This is called when the game should draw itself.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
//TODO: Add your drawing code here
base.Draw(gameTime);
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content.Pipeline;
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
using TImport = System.String;
namespace ${Namespace}
{
[ContentImporter(".txt", DisplayName = "Importer1", DefaultProcessor = "Processor1")]
public class Importer1 : ContentImporter<TImport>
{
public override TImport Import(string filename, ContentImporterContext context)
{
return default(TImport);
}
}
}
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content.Pipeline;
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
using TInput = System.String;
using TOutput = System.String;
namespace ${Namespace}
{
[ContentProcessor(DisplayName = "Processor1")]
class Processor1 : ContentProcessor<TInput, TOutput>
{
public override TOutput Process(TInput input, ContentProcessorContext context)
{
return default(TOutput);
}
}
}
@@ -0,0 +1,84 @@
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#if MONOMAC
using MonoMac.AppKit;
using MonoMac.Foundation;
#elif __IOS__ || __TVOS__
using Foundation;
using UIKit;
#endif
#endregion
namespace ${Namespace}
{
#if __IOS__ || __TVOS__
[Register("AppDelegate")]
class Program : UIApplicationDelegate
#else
static class Program
#endif
{
private static Game1 game;
internal static void RunGame()
{
game = new Game1();
game.Run();
#if !__IOS__ && !__TVOS__
game.Dispose ();
#endif
}
/// <summary>
/// The main entry point for the application.
/// </summary>
#if !MONOMAC && !__IOS__ && !__TVOS__
[STAThread]
#endif
static void Main(string[] args)
{
#if MONOMAC
NSApplication.Init ();
using (var p = new NSAutoreleasePool ()) {
NSApplication.SharedApplication.Delegate = new AppDelegate();
NSApplication.Main(args);
}
#elif __IOS__ || __TVOS__
UIApplication.Main(args, null, "AppDelegate");
#else
RunGame();
#endif
}
#if __IOS__ || __TVOS__
public override void FinishedLaunching(UIApplication app)
{
RunGame();
}
#endif
}
#if MONOMAC
class AppDelegate : NSApplicationDelegate
{
public override void FinishedLaunching (MonoMac.Foundation.NSObject notification)
{
AppDomain.CurrentDomain.AssemblyResolve += (object sender, ResolveEventArgs a) => {
if (a.Name.StartsWith("MonoMac")) {
return typeof(MonoMac.AppKit.AppKitFramework).Assembly;
}
return null;
};
Program.RunGame();
}
public override bool ApplicationShouldTerminateAfterLastWindowClosed (NSApplication sender)
{
return true;
}
}
#endif
}
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="${ProjectName}"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on and is
is designed to work with. Uncomment the appropriate elements and Windows will
automatically selected the most compatible environment. -->
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware>
</windowsSettings>
</application>
</assembly>
@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Content Builder File</_Name>
<Icon>monogame-project</Icon>
<_Category>MonoGame</_Category>
<LanguageName>C#</LanguageName>
<_Description>Creates a basic MonoGame Content Builder control file.</_Description>
</TemplateConfiguration>
<TemplateFiles>
<File name="${Name}.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference" />
</TemplateFiles>
</Template>
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Content Importer</_Name>
<Icon>monogame-project</Icon>
<_Category>MonoGame</_Category>
<LanguageName>C#</LanguageName>
<_Description>Creates a basic MonoGame Content Importer which can be used to extend the Pipeline tool.</_Description>
</TemplateConfiguration>
<TemplateFiles>
<File name="${Name}.cs" src="Common/Importer1.cs" />
</TemplateFiles>
</Template>
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Content Processor</_Name>
<Icon>monogame-project</Icon>
<_Category>MonoGame</_Category>
<LanguageName>C#</LanguageName>
<_Description>Creates a basic MonoGame Content Processor which can be used to extend the Pipeline tool.</_Description>
</TemplateConfiguration>
<TemplateFiles>
<File name="${Name}.cs" src="Common/Processor1.cs" />
</TemplateFiles>
</Template>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Portable Library</_Name>
<Category>monogame/library/crossplat</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Portable Library (PCL). This can be used to share most of your games code.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Project name = "${ProjectName}" directory = "." type = "PortableDotNet">
<Options Target = "Library" TargetFrameworkVersion = ".NETPortable,Version=v4.0,Profile=Profile158"/>
<Packages>
<Package id="MonoGame.Framework.Portable" version="3.2.99.1-Beta" targetFramework="portable-net45+sl50+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10"/>
</Packages>
<Files>
<File name="Game1.cs" AddStandardHeader="True" src="Common/Game1.cs" />
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Pipeline Library</_Name>
<Category>monogame/library/pipeline</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Pipeline Extenson so you can extend the Content Pipeline.</_Description>
</TemplateConfiguration>
<Combine name = "${ProjectName}" directory = ".">
<Actions>
<Open filename = "Importer1.cs"/>
</Actions>
<Project name = "${ProjectName}" directory = ".">
<Options Target = "Library"/>
<Packages>
<Package id="MonoGame.Framework.Portable" version="3.2.99.1-Beta" targetFramework="portable-net45+sl50+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10"/>
<Package id="MonoGame.Framework.Content.Pipeline.Portable" version="3.2.99.1-Beta" targetFramework="portable-net45+sl50+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10"/>
</Packages>
<Files>
<File name="Importer1.cs" AddStandardHeader="True" src="Common/Importer1.cs" />
<File name="Processor1.cs" AddStandardHeader="True" src="Common/Processor1.cs" />
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,80 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Cross Platform Desktop Project</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>A MonoGame game project for Windows, Mac and Linux using OpenGL.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = ".">
<Options />
<References>
<Reference type="Gac" refto="System" />
<Reference type="Gac" refto="System.Xml" />
<Reference type="Gac" refto="System.Core" />
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Game1.cs" src="Common/Game1.cs" />
<File name="Program.cs" src="Common/Program.cs" />
<File name="app.manifest" src="Common/app.manifest" />
<RawFile name="Icon.png" src="Common/Icon-md.png"/>
<RawFile name="Icon.ico" src="Common/Icon.ico" BuildAction="EmbeddedResource"/>
<Directory name="Properties">
<File name="AssemblyInfo.cs" src="Common/AssemblyInfo.cs" />
</Directory>
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference" />
</Directory>
<Directory name="x64">
<ContentFile>
<RawFile name="libopenal.so.1" src="libs/x64/libopenal.so.1" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="soft_oal.dll" src="libs/x64/soft_oal.dll" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="libSDL2-2.0.so.0" src="libs/x64/libSDL2-2.0.so.0" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="SDL2.dll" src="libs/x64/SDL2.dll" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
</Directory>
<Directory name="x86">
<ContentFile>
<RawFile name="libopenal.so.1" src="libs/x86/libopenal.so.1" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="soft_oal.dll" src="libs/x86/soft_oal.dll" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="libSDL2-2.0.so.0" src="libs/x86/libSDL2-2.0.so.0" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="SDL2.dll" src="libs/x86/SDL2.dll" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
</Directory>
<ContentFile>
<File name="MonoGame.Framework.dll.config" src="Common/MonoGame.Framework.dll.config" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="libopenal.1.dylib" src="libs/libopenal.1.dylib" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
<ContentFile>
<RawFile name="libSDL2-2.0.0.dylib" src="libs/libSDL2-2.0.0.dylib" CopyToOutputDirectory="PreserveNewest" />
</ContentFile>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Shared Project</_Name>
<Category>monogame/library/crossplat</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a MonoGame Shared Project to share common code. This can be used to share most of your shared code, but you can also include platform specific code using #defines.
Note this is a Shared Project only, it will need to be referenced from another MonoGame project to work.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Project name = "${ProjectName}" directory = "." type = "SharedAssetsProject">
<Files>
<File name="Game1.cs" src="Common/Game1.cs" />
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference"/>
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,42 @@
<?xml version="1.0"?>
<Template>
<TemplateConfiguration>
<_Name>MonoGame Application (DirectX)</_Name>
<Category>monogame/app/games</Category>
<Icon>monogame-project</Icon>
<LanguageName>C#</LanguageName>
<_Description>Creates a new C# MonoGame Windows Application. This application will use the DirectX backend.</_Description>
</TemplateConfiguration>
<Actions>
<Open filename = "Game1.cs"/>
</Actions>
<Combine name = "${ProjectName}" directory = ".">
<Options>
<StartupProject>${ProjectName}</StartupProject>
</Options>
<Project name = "${ProjectName}" directory = ".">
<Options />
<References>
<Reference type="Gac" refto="System" />
<Reference type="Gac" refto="System.Xml" />
<Reference type="Gac" refto="System.Core" />
<Reference type="Package" refto="MonoGame.Framework" />
</References>
<Files>
<File name="Game1.cs" src="Common/Game1.cs" />
<File name="Program.cs" src="Common/Program.cs" />
<File name="app.manifest" src="Common/app.manifest />
<RawFile name="Icon.png" src="Common/Icon-md.png" />
<Directory name="Properties">
<File name="AssemblyInfo.cs" src="Common/AssemblyInfo.cs" />
</Directory>
<Directory name="Content">
<File name="Content.mgcb" src="Common/Content.mgcb" BuildAction="MonoGameContentReference" />
</Directory>
</Files>
</Project>
</Combine>
</Template>
@@ -0,0 +1,64 @@
<?xml version="1.0"?>
<project name="Installer Build Script" default="build" basedir=".">
<description>Default Addins Automated Build script</description>
<property name="os" value="${operating-system::get-platform(environment::get-operating-system())}" />
<property name="mdtooldir" value="/Applications/MonoDevelop.app/Contents/MacOS"/>
<property name="buildNumber" value="0.0.0.0"/>
<if test="${environment::variable-exists('BUILD_NUMBER')}">
<property name="buildNumber" value="${environment::get-variable('BUILD_NUMBER')}"/>
</if>
<target name="checkos" description="check the operating system">
<property name="os" value="${operating-system::get-platform(environment::get-operating-system())}"/>
<if test="${os == 'Unix'}">
<if test="${directory::exists('/Applications') and directory::exists('/Library')}">
<property name="os" value="MacOS"/>
<if test="${not directory::exists(mdtooldir)}">
<property name="mdtooldir" value="${path::get-full-path('/Applications/Xamarin Studio.app/Contents/MacOS')}"/>
</if>
</if>
</if>
<if test="${os == 'Win32NT'}">
<property name="mdtooldir" value="${path::get-full-path('c:\Program Files (x86)\Xamarin Studio\bin')}"/>
</if>
<echo message="mdtool : ${mdtooldir}"/>
<echo message="Detected : ${os}"/>
</target>
<target name="build" description="Build All" depends="checkos">
<if test="${os == 'MacOS'}">
<call target="buildaddin"/>
<exec program="mdtool" basedir="${mdtooldir}" workingdir="." commandline="setup rep-build ."/>
</if>
</target>
<target name="buildaddin" description="Build Xamarin Studio Addin" depends="checkos">
<mkdir dir="MonoDevelop.MonoGame/packages/"/>
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.Android/3.4.0.459" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.Android.3.4.0.459.nupkg" />
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.iOS/3.4.0.459" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.iOS.3.4.0.459.nupkg" />
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.Linux/3.4.0.459" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.Linux.3.4.0.459.nupkg" />
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.MacOS/3.4.0.459" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.MacOS.3.4.0.459.nupkg" />
<!--
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.MonoMac/3.2.99-Beta" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.MonoMac.3.3.0.nupkg" />
-->
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.WindowsDX/3.4.0.459" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.WindowsDX.3.4.0.459.nupkg" />
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.WindowsGL/3.4.0.459" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.WindowsGL.3.4.0.459.nupkg" />
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.Portable/3.2.99.1-Beta" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.Portable.3.2.99.1-Beta.nupkg" />
<get src="https://www.nuget.org/api/v2/package/MonoGame.Framework.Content.Pipeline.Portable/3.2.99.1-Beta" dest="MonoDevelop.MonoGame/packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta.nupkg" />
<if test="${os == 'MacOS'}">
<delete failonerror="false">
<fileset>
<include name="MonoDevelop.MonoGame_*.mpack" />
</fileset>
</delete>
<!-- Fix up xml to ${buildNumber} -->
<xmlpoke file="MonoDevelop.MonoGame/MonoDevelop.MonoGame.addin.xml" xpath="/Addin/@version" value="${buildNumber}" />
<exec program="mdtool" basedir="${mdtooldir}" workingdir="." commandline="build -t:Clean -c:Release MonoDevelop.MonoGame.Addin.sln" />
<exec program="mdtool" basedir="${mdtooldir}" workingdir="." commandline="build -t:Build -c:Release MonoDevelop.MonoGame.Addin.sln" />
<exec program="mdtool" basedir="${mdtooldir}" workingdir="." commandline="setup pack bin/Release/MonoDevelop.MonoGame.dll"/>
</if>
</target>
</project>