Michael Gough avatar Michael Gough committed f5d4ac4

*Created Visual Studio UML model (class diagrams).
*Implemented the first game world entity classes and factory classes.

Comments (0)

Files changed (33)

GameProgram/GameProgram/ClassDiagram1.cd

+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1">
+  <Class Name="GameProgram.Game1" Collapsed="true">
+    <Position X="0.5" Y="0.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAQAEEAAAAAAAwAAAAAAAAAAAAAAAAgAAAAAAAAAAAQ=</HashCode>
+      <FileName>Game1.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Program" Collapsed="true">
+    <Position X="2.25" Y="0.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAA=</HashCode>
+      <FileName>Program.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.World">
+    <Position X="4" Y="1.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AEAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAggAAA=</HashCode>
+      <FileName>World.cs</FileName>
+    </TypeIdentifier>
+    <ShowAsAssociation>
+      <Property Name="StarSystem" />
+      <Property Name="Party" />
+    </ShowAsAssociation>
+  </Class>
+  <Class Name="GameProgram.Party">
+    <Position X="1.5" Y="3" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>EAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAE=</HashCode>
+      <FileName>Party.cs</FileName>
+    </TypeIdentifier>
+    <ShowAsAssociation>
+      <Property Name="Entity" />
+    </ShowAsAssociation>
+  </Class>
+  <Class Name="GameProgram.StarSystem">
+    <Position X="5.25" Y="3.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>QAAAAAAAAACAAAAAAAMAAAAAAAAAAAAAgAAAAAAAAAA=</HashCode>
+      <FileName>StarSystem.cs</FileName>
+    </TypeIdentifier>
+    <ShowAsAssociation>
+      <Property Name="Star" />
+      <Property Name="PlanetarySystem" />
+    </ShowAsAssociation>
+  </Class>
+  <Class Name="GameProgram.Entity">
+    <Position X="1.5" Y="5.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Entity.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Star">
+    <Position X="4.25" Y="5.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Star.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.PlanetarySystem">
+    <Position X="7.25" Y="4.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAEAAAAAAAAAAAAAACAAAggAAAIAAAAAAAA=</HashCode>
+      <FileName>PlanetarySystem.cs</FileName>
+    </TypeIdentifier>
+    <ShowAsAssociation>
+      <Property Name="Planet" />
+      <Property Name="Moon" />
+    </ShowAsAssociation>
+  </Class>
+  <Class Name="GameProgram.Unit">
+    <Position X="0.5" Y="6.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Unit.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.StationaryEntity">
+    <Position X="3" Y="6.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>StationaryEntity.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Planet">
+    <Position X="6" Y="6.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Planet.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Moon">
+    <Position X="8.25" Y="6.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Moon.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Geoid">
+    <Position X="8.25" Y="8.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AEAAAAAACAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAA=</HashCode>
+      <FileName>Geoid.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Structure">
+    <Position X="1.25" Y="8.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Structure.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.Region">
+    <Position X="4.25" Y="8.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAACAAAAAAAAAAAAAAIAAAAAAAAAAAAACJAAAA=</HashCode>
+      <FileName>Region.cs</FileName>
+    </TypeIdentifier>
+    <ShowAsAssociation>
+      <Property Name="ResourceReserve" />
+      <Property Name="Sector" />
+    </ShowAsAssociation>
+  </Class>
+  <Class Name="GameProgram.GeoidalSector">
+    <Position X="6.25" Y="8.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AgAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>Sector.cs</FileName>
+    </TypeIdentifier>
+    <ShowAsAssociation>
+      <Property Name="Geoid" />
+    </ShowAsAssociation>
+  </Class>
+  <Class Name="GameProgram.ResourceReserve">
+    <Position X="5" Y="11.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>ResourceReserve.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.SpaceStructure">
+    <Position X="0.5" Y="9.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>SpaceStructure.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.GroundStructure">
+    <Position X="2.25" Y="9.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>GroundStructure.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.MoonFactory" Collapsed="true">
+    <Position X="7" Y="0.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>MoonFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.PartyFactory" Collapsed="true">
+    <Position X="8.75" Y="0.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>PartyFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.PlanetarySystemFactory" Collapsed="true">
+    <Position X="10.5" Y="0.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAABA=</HashCode>
+      <FileName>PlanetarySystemFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.PlanetFactory" Collapsed="true">
+    <Position X="7" Y="1.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAA=</HashCode>
+      <FileName>PlanetFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.RegionFactory" Collapsed="true">
+    <Position X="8.75" Y="1.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>RegionFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.SectorFactory" Collapsed="true">
+    <Position X="10.5" Y="1.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>SectorFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.StarSystemFactory" Collapsed="true">
+    <Position X="7" Y="2.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>StarSystemFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="GameProgram.WorldFactory" Collapsed="true">
+    <Position X="8.75" Y="2.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAIAAA=</HashCode>
+      <FileName>WorldFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Font Name="Segoe UI" Size="9" />
+</ClassDiagram>

GameProgram/GameProgram/Entity.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Entity
+  {
+  }
+}

GameProgram/GameProgram/Game1.cs

 
 namespace GameProgram
 {
-  /// <summary>
+    /// <summary>
   /// This is the main type for your game
   /// </summary>
   public class Game1 : Microsoft.Xna.Framework.Game
     {
       // TODO: Add your initialization logic here
 
+      WorldFactory worldFactory = new WorldFactory();
+      world = worldFactory.createWorld();
+
       base.Initialize();
     }
 
     {
       // 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
     }
 
       base.Draw( gameTime );
     }
+
+    private World world;
   }
 }

GameProgram/GameProgram/GameProgram.csproj

     <Reference Include="System.Net" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Entity.cs" />
+    <Compile Include="Geoid.cs" />
+    <Compile Include="GroundStructure.cs" />
+    <Compile Include="Moon.cs" />
+    <Compile Include="MoonFactory.cs" />
+    <Compile Include="Party.cs" />
+    <Compile Include="PartyFactory.cs" />
+    <Compile Include="Planet.cs" />
+    <Compile Include="PlanetarySystem.cs" />
+    <Compile Include="PlanetarySystemFactory.cs" />
+    <Compile Include="PlanetFactory.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Game1.cs" />
+    <Compile Include="Region.cs" />
+    <Compile Include="RegionFactory.cs" />
+    <Compile Include="ResourceReserve.cs" />
+    <Compile Include="Sector.cs" />
+    <Compile Include="SectorFactory.cs" />
+    <Compile Include="SpaceStructure.cs" />
+    <Compile Include="Star.cs" />
+    <Compile Include="StarSystem.cs" />
+    <Compile Include="StarSystemFactory.cs" />
+    <Compile Include="StationaryEntity.cs" />
+    <Compile Include="Structure.cs" />
+    <Compile Include="Unit.cs" />
+    <Compile Include="World.cs" />
+    <Compile Include="WorldFactory.cs" />
   </ItemGroup>
   <ItemGroup>
     <Content Include="Game.ico" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\GameProgramContent\GameProgramContent.contentproj">
-      <Name>GameProgramContent</Name>
+      <Name>GameProgramContent %28Content%29</Name>
       <XnaReferenceType>Content</XnaReferenceType>
+      <Project>{4D54F348-8FB0-4836-8DF1-11157E5C503B}</Project>
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
       <Install>true</Install>
     </BootstrapperPackage>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="ClassDiagram1.cd" />
+  </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
   <!--

GameProgram/GameProgram/Geoid.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Geoid
+  {
+    private List<GeoidalSector> sectors = new List<GeoidalSector>();
+    private SectorFactory sectorFactory;
+
+    public Geoid()
+    {
+      sectorFactory = new SectorFactory();
+
+    }
+
+    internal void addSector( Region newRegion )
+    {
+      GeoidalSector newSector = sectorFactory.createSector( newRegion );
+
+      newRegion.Sector = newSector;
+
+      sectors.Add( newSector );
+    }
+
+    protected static void createSector()
+    {
+      throw new NotImplementedException();
+    }
+  }
+}

GameProgram/GameProgram/GroundStructure.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class GroundStructure : Structure
+  {
+  }
+}

GameProgram/GameProgram/Moon.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Moon : Geoid
+  {
+  }
+}

GameProgram/GameProgram/MoonFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class MoonFactory
+  {
+    internal Moon createMoon( Planet newPlanet )
+    {
+      Moon newMoon = new Moon();
+
+      return newMoon;
+    }
+  }
+}

GameProgram/GameProgram/Party.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Party
+  {
+    private List<Region> regions = new List<Region>();
+
+    public Party( Planet startingPLanet)
+    {
+
+    }
+
+    public Party()
+    {
+      // TODO: Complete member initialization
+    }
+
+    public Entity Entity
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+
+    internal void settlePlanet( Planet startingPlanet )
+    {
+      RegionFactory regionFactory = new RegionFactory();
+
+      Region startingRegion = regionFactory.createRegion( this, startingPlanet);
+
+      regions.Add( startingRegion );
+    }
+  }
+}

GameProgram/GameProgram/PartyFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class PartyFactory
+  {
+    internal Party createParty()
+    {
+      Party newParty = new Party();
+      // TODO: Implement;
+      // throw new NotImplementedException();
+
+      return newParty;
+    }
+  }
+}

GameProgram/GameProgram/Planet.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Planet : Geoid
+  {
+    public Planet() :
+      base()
+    {      
+      
+    }
+
+
+  }
+}

GameProgram/GameProgram/PlanetFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class PlanetFactory
+  {
+    internal Planet createPlanet()
+    {
+      Planet newPlanet = new Planet();
+
+      return newPlanet;
+      
+    }
+
+  }
+}

GameProgram/GameProgram/PlanetarySystem.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class PlanetarySystem
+  {
+    private Planet planet;
+    private List<Moon> moons = new List<Moon>();
+
+    public Planet Planet
+    {
+      get
+      {
+        return planet;
+      }
+      set
+      {
+        planet = value;
+      }
+    }
+
+    public Moon Moon
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+
+    //internal void addPlanet( GameProgram.Planet newPlanet )
+    //{
+    //  throw new NotImplementedException();
+    //}
+
+    internal void addMoon( GameProgram.Moon newMoon )
+    {
+      moons.Add( newMoon );
+    }
+
+  }
+}

GameProgram/GameProgram/PlanetarySystemFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class PlanetarySystemFactory
+  {
+    private PlanetFactory planetFactory;
+    private MoonFactory moonFactory;
+
+    public PlanetarySystemFactory()
+    {
+      planetFactory = new PlanetFactory();
+      moonFactory   = new MoonFactory();
+    }
+    
+    internal PlanetarySystem createPlanetarySystem()
+    {
+      PlanetarySystem newPlanetarySystem = new PlanetarySystem();
+
+      Planet newPlanet = planetFactory.createPlanet();
+
+      Moon newMoon = moonFactory.createMoon( newPlanet );
+
+      newPlanetarySystem.Planet = newPlanet;
+      newPlanetarySystem.addMoon( newMoon );
+
+      newMoon = moonFactory.createMoon( newPlanet );
+
+      newPlanetarySystem.addMoon( newMoon );
+
+      return newPlanetarySystem;
+
+    }
+  }
+}

GameProgram/GameProgram/Region.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Region : StationaryEntity
+  {
+    private Party party;
+    private Geoid geoid;
+    private GeoidalSector geoidalSector;
+
+    public Region( Party party, Geoid geoid )
+    {
+      // TODO: Complete member initialization
+      this.party = party;
+      this.geoid = geoid;
+    }
+    public ResourceReserve ResourceReserve
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+
+    public GeoidalSector Sector
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+        geoidalSector = value;
+      }
+    }
+
+  }
+}

GameProgram/GameProgram/RegionFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class RegionFactory
+  {   
+
+    internal Region createRegion( Party party, Geoid geoid )
+    {
+      Region newRegion = new Region( party, geoid );
+
+      geoid.addSector( newRegion );
+
+      return newRegion;      
+    }
+  }
+}

GameProgram/GameProgram/ResourceReserve.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class ResourceReserve
+  {
+  }
+}

GameProgram/GameProgram/Sector.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class GeoidalSector
+  {
+    private Region newRegion;
+
+    public GeoidalSector( Region newRegion )
+    {
+      // TODO: Complete member initialization
+      this.newRegion = newRegion;
+    }
+
+    public Geoid Geoid
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+  }
+}

GameProgram/GameProgram/SectorFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class SectorFactory
+  {
+    internal GeoidalSector createSector( Region newRegion )
+    {
+      GeoidalSector newGeoidalSector = new GeoidalSector( newRegion );
+
+      return newGeoidalSector;
+    }
+  }
+}

GameProgram/GameProgram/SpaceStructure.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class SpaceStructure : Structure
+  {
+  }
+}

GameProgram/GameProgram/Star.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Star
+  {
+  }
+}

GameProgram/GameProgram/StarSystem.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class StarSystem
+  {
+    private List<PlanetarySystem> planetarySystems = new List<PlanetarySystem>();
+
+    public Star Star
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+
+    public PlanetarySystem PlanetarySystem
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+
+    internal Planet getPlanetAtRandom()
+    {
+      return planetarySystems[0].Planet;
+    }
+
+    internal void addPlanetarySystem( GameProgram.PlanetarySystem newPlanetarySystem )
+    {
+      planetarySystems.Add( newPlanetarySystem );
+    }
+  }
+}

GameProgram/GameProgram/StarSystemFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class StarSystemFactory
+  {
+    private PlanetarySystemFactory planetarySystemFactory;
+
+    public StarSystemFactory()
+    {
+      planetarySystemFactory = new PlanetarySystemFactory();
+    }
+
+    internal StarSystem createStarSystem()
+    {
+      StarSystem newStarSystem = new StarSystem();
+      
+      PlanetarySystem newPlanetarySystem = planetarySystemFactory.createPlanetarySystem();
+
+      newStarSystem.addPlanetarySystem( newPlanetarySystem );
+
+      return newStarSystem;
+
+    }
+  }
+}

GameProgram/GameProgram/StationaryEntity.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class StationaryEntity : Entity
+  {
+  }
+}

GameProgram/GameProgram/Structure.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Structure : StationaryEntity
+  {
+  }
+}

GameProgram/GameProgram/Unit.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class Unit : Entity
+  {
+  }
+}

GameProgram/GameProgram/World.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  public class World
+  {
+    private StarSystem starSystem;
+    private List<Party> parties = new List<Party>();
+    
+    public World()
+    {
+
+    }
+
+    public StarSystem StarSystem
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+        starSystem = value;
+      }
+    }
+
+    public Party Party
+    {
+      get
+      {
+        throw new System.NotImplementedException();
+      }
+      set
+      {
+      }
+    }
+
+    internal void addParty( Party party )
+    {
+      parties.Add( party );
+    }
+
+    //internal void addStarSystem( GameProgram.StarSystem starSystem )
+    //{
+    //  throw new NotImplementedException();
+    //}
+  }
+}

GameProgram/GameProgram/WorldFactory.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GameProgram
+{
+  class WorldFactory
+  {  
+    private PartyFactory partyFactory;
+    private StarSystemFactory starSystemFactory;
+    //private RegionFactory regionFactory;
+
+    public WorldFactory()
+    {
+      partyFactory      = new PartyFactory();
+      starSystemFactory = new StarSystemFactory();      
+
+    }
+
+    internal World createWorld()
+    {
+      World newWorld = new World();
+
+      Party firstParty  = partyFactory.createParty();
+      Party secondParty = partyFactory.createParty();
+
+      StarSystem starSystem = starSystemFactory.createStarSystem();
+
+      Planet startingPlanet = starSystem.getPlanetAtRandom();
+
+      newWorld.addParty( firstParty );
+      newWorld.addParty( secondParty );
+      
+      firstParty.settlePlanet( startingPlanet );
+      secondParty.settlePlanet( startingPlanet );
+
+      //newWorld.addStarSystem( starSystem );
+      newWorld.StarSystem = starSystem;
+
+      return newWorld;
+    }
+  }
+}

HI-2DRTSSGMDDPP1.sln

 # Visual Studio 2010
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameProgram", "GameProgram\GameProgram\GameProgram.csproj", "{EE3A2101-873C-42C9-964D-F970C8B70ED9}"
 EndProject
-Project("{96E2B04D-8817-42C6-938A-82C39BA4D311}") = "GameProgramContent", "GameProgram\GameProgramContent\GameProgramContent.contentproj", "{4D54F348-8FB0-4836-8DF1-11157E5C503B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameProgramContent", "GameProgram\GameProgramContent\GameProgramContent.contentproj", "{4D54F348-8FB0-4836-8DF1-11157E5C503B}"
+EndProject
+Project("{F088123C-0E9E-452A-89E6-6BA2F21D5CAC}") = "Problem Domain Model", "ModelingProject1\Problem Domain Model.modelproj", "{369B0EBE-7FC3-43C1-AC64-9A53057A806F}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
 		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Debug|x86.ActiveCfg = Debug|x86
 		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Debug|x86.Build.0 = Debug|x86
+		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Release|Any CPU.ActiveCfg = Release|x86
+		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Release|Mixed Platforms.Build.0 = Release|x86
 		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Release|x86.ActiveCfg = Release|x86
 		{EE3A2101-873C-42C9-964D-F970C8B70ED9}.Release|x86.Build.0 = Release|x86
+		{4D54F348-8FB0-4836-8DF1-11157E5C503B}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{4D54F348-8FB0-4836-8DF1-11157E5C503B}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
 		{4D54F348-8FB0-4836-8DF1-11157E5C503B}.Debug|x86.ActiveCfg = Debug|x86
+		{4D54F348-8FB0-4836-8DF1-11157E5C503B}.Release|Any CPU.ActiveCfg = Release|x86
+		{4D54F348-8FB0-4836-8DF1-11157E5C503B}.Release|Mixed Platforms.ActiveCfg = Release|x86
 		{4D54F348-8FB0-4836-8DF1-11157E5C503B}.Release|x86.ActiveCfg = Release|x86
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{369B0EBE-7FC3-43C1-AC64-9A53057A806F}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

ModelingProject1/ModelDefinition/ModelingProject1.uml

+<?xml version="1.0" encoding="utf-8"?>
+<modelStoreModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm4="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm5="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/LogicalClassDesigner"
+  dslVersion="1.0.0.0"
+  Id="9065476c-af3d-4889-836b-adf9a721e307"
+  name="ModelingProject1" xmlns="http://schemas.microsoft.com/dsltools/ModelStore">
+  <profileInstances>
+    <packageHasProfileInstances
+      Id="0caec977-1f8c-4ba3-a7db-8cc9ad9cc73b">
+      <profileInstance
+        Id="e34d544e-0fea-4ed6-ac5e-1b74119ac791"
+        name="StandardProfileL2" />
+    </packageHasProfileInstances>
+    <packageHasProfileInstances
+      Id="29349502-908c-4fda-9054-c48619c59ed0">
+      <profileInstance
+        Id="532ea607-fb19-44b8-8502-3351b05452be"
+        name="StandardProfileL3" />
+    </packageHasProfileInstances>
+  </profileInstances>
+  <packagedElements>
+    <packageHasNamedElement>
+      <class
+        Id="9f2aed0f-ab1b-41b7-8090-4fe4ee4a6e21"
+        name="Geoid"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="d942068a-8c87-4626-902f-39443a245558"
+            isDerived="false"
+            sourceEndRoleName="Geoid"
+            targetEndRoleName="Sectors"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="84fddcc9-fd36-4ceb-8b07-8d192360b7e6"
+              LastKnownName="Sector"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="cce0b499-befe-44d5-9a77-45a6d72ba000"
+                  name="Geoid"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="432353c1-2b11-47ea-a53c-6cfe17fb2513"
+                  name="Sectors"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true">
+                  <lowerValueInternal>
+                    <literalString
+                      Id="1df07792-2767-40cd-abd4-5eb448d77088"
+                      name="Lower"
+                      value="0" />
+                  </lowerValueInternal>
+                  <upperValueInternal>
+                    <literalString
+                      Id="a4f0dbf1-3aad-4663-aed3-00f79e899d6a"
+                      name="Upper"
+                      value="8" />
+                  </upperValueInternal>
+                </memberEnd>
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="bc105e88-8ac8-4fdf-ac67-0bcac8f79b3c"
+            isDerived="false"
+            sourceEndRoleName="Geoid"
+            targetEndRoleName="Resource"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="7d4d5228-7005-41ab-810b-54986c49e84a"
+              LastKnownName="Resource"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="52b05280-5b5f-4a2a-a761-810cc33d4c8b"
+                  name="Geoid"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="2d4bbf71-9c23-4beb-8929-e453f774ccf8"
+                  name="Resource"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="6f756618-396a-4f5c-937b-b1daa2df5768"
+        name="Planet"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="60f854e4-b3cd-43a0-a82d-2c743b0c859e"
+            isSubstitutable="false">
+            <classMoniker
+              Id="9f2aed0f-ab1b-41b7-8090-4fe4ee4a6e21"
+              LastKnownName="Geoid"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="8aed2964-1649-42b7-a51e-fcfca5e155f0"
+        name="Moon"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="5f40bec2-05d2-409e-ac8d-c11938415c11"
+            isSubstitutable="false">
+            <classMoniker
+              Id="9f2aed0f-ab1b-41b7-8090-4fe4ee4a6e21"
+              LastKnownName="Geoid"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="107592f2-b13d-4a38-95ff-3a708c315a72"
+        name="World"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="bc7de280-75aa-4492-806c-cebc1c4a5034"
+            isDerived="false"
+            sourceEndRoleName="World"
+            targetEndRoleName="Star System"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="af647540-ab94-4288-96d3-9e59a7d6dab7"
+              LastKnownName="Star System"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="b73d25e7-e0c5-4a71-9779-e30dd6c0bdef"
+                  name="World"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="bec90f6c-9891-4c0b-b9ce-b843465c8297"
+                  name="Star System"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true">
+                  <lowerValueInternal>
+                    <literalString
+                      Id="ca4f6da0-c4ad-4328-a8e5-a4bd37971f42"
+                      name="Lower"
+                      value="1" />
+                  </lowerValueInternal>
+                  <upperValueInternal>
+                    <literalString
+                      Id="1de76578-2a54-4bd1-b009-a7ad129afad9"
+                      name="Upper"
+                      value="1" />
+                  </upperValueInternal>
+                </memberEnd>
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="ff52e792-b9b9-4469-8d3a-76b2f91836fa"
+            isDerived="false"
+            sourceEndRoleName="World"
+            targetEndRoleName="Party"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="fad3549b-073c-404e-b89a-950e348ef9dd"
+              LastKnownName="Party"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="681f2623-f55c-4c04-9ccb-ec5e9f1f373d"
+                  name="World"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="15393d62-669c-45e8-9d03-6dd7b65035f5"
+                  name="Party"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true">
+                  <lowerValueInternal>
+                    <literalString
+                      Id="d9046bdb-2e12-4b94-8176-eaea524340cc"
+                      name="Lower"
+                      value="0" />
+                  </lowerValueInternal>
+                  <upperValueInternal>
+                    <literalString
+                      Id="938f091c-be3b-4b31-b088-18b54f3f7da1"
+                      name="Upper"
+                      value="8" />
+                  </upperValueInternal>
+                </memberEnd>
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="9fe0a417-c3c8-44bb-a411-9c6bfafe877a"
+        name="Star"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false" />
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="af647540-ab94-4288-96d3-9e59a7d6dab7"
+        name="Star System"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="97c67b2a-d85b-4f5b-8fc3-957f0f5d225f"
+            isDerived="false"
+            sourceEndRoleName="Star System"
+            targetEndRoleName="Sun"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="9fe0a417-c3c8-44bb-a411-9c6bfafe877a"
+              LastKnownName="Star"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="4bd5d2fb-0234-4823-bbca-7e80ce1fa28b"
+                  name="Star System"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="082cd6d4-5166-4f5b-b9db-67cfb6aac082"
+                  name="Sun"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="58f3da10-4997-4336-b902-6da1f49c7d9a"
+            isDerived="false"
+            sourceEndRoleName="Star System"
+            targetEndRoleName="Planetary System"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="35666fda-f708-4b76-8a95-c3d283f13bb1"
+              LastKnownName="Planetary System"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="743c75b8-fade-4674-b2c4-6f62a7a49f94"
+                  name="Star System"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="d85bfc7f-da48-4354-9ac2-8ac32b721d21"
+                  name="Planetary System"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true">
+                  <lowerValueInternal>
+                    <literalString
+                      Id="f4094967-5f7c-4fd5-8f89-7a9e868f8325"
+                      name="Lower"
+                      value="*" />
+                  </lowerValueInternal>
+                  <upperValueInternal>
+                    <literalString
+                      Id="aead2432-cd99-4530-a608-e0e9935b66ec"
+                      name="Upper"
+                      value="*" />
+                  </upperValueInternal>
+                </memberEnd>
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="35666fda-f708-4b76-8a95-c3d283f13bb1"
+        name="Planetary System"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="123e23fb-b943-4a87-ba58-91a4067fc372"
+            isDerived="false"
+            sourceEndRoleName="Planetary System"
+            targetEndRoleName="Planet"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="6f756618-396a-4f5c-937b-b1daa2df5768"
+              LastKnownName="Planet"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="969c5bc8-2150-4fd1-bd80-e5e499706278"
+                  name="Planetary System"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="b5c2e6e6-fc16-45f8-96df-9396f3e8f741"
+                  name="Planet"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="87021b48-c296-4747-8985-7f75442e482a"
+            isDerived="false"
+            sourceEndRoleName="Planetary System"
+            targetEndRoleName="Moon"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="8aed2964-1649-42b7-a51e-fcfca5e155f0"
+              LastKnownName="Moon"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="8b1a000c-20ad-48c9-b181-e9a46ae21223"
+                  name="Planetary System"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="5c3355eb-7532-4523-aebf-7a77c5675d60"
+                  name="Moon"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="fad3549b-073c-404e-b89a-950e348ef9dd"
+        name="Party"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="4cbd6bab-063c-421a-af77-b2041089d881"
+            isDerived="false"
+            sourceEndRoleName="Party"
+            targetEndRoleName="Entity"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="3a5f6782-2930-4036-a9a6-379f1d101038"
+              LastKnownName="Entity"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="9d4179cf-a552-4c5e-9ee8-23cdf2e35d35"
+                  name="Party"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="1297149b-7853-4d37-90c7-95fb5b202b41"
+                  name="Entity"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true">
+                  <lowerValueInternal>
+                    <literalString
+                      Id="92311b45-e37e-4ec5-8c48-f2c1f3a390e7"
+                      name="Lower"
+                      value="*" />
+                  </lowerValueInternal>
+                  <upperValueInternal>
+                    <literalString
+                      Id="28d01218-9b29-4ced-b4d1-92550222b655"
+                      name="Upper"
+                      value="*" />
+                  </upperValueInternal>
+                </memberEnd>
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="fb61f274-24ab-44fd-a826-0ebe21600348"
+            isDerived="false"
+            sourceEndRoleName="Party"
+            targetEndRoleName="Diplomatic Relationship Status"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="9adf3b50-a87b-4d80-a6ed-57d5ac48aaab"
+              LastKnownName="Diplomatic Relationship Status"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="d5680306-da0d-4736-925f-8648109a4040"
+                  name="Party"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="808391bc-dfb7-4a63-8144-6ba338d6e5a3"
+                  name="Diplomatic Relationship Status"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="84fddcc9-fd36-4ceb-8b07-8d192360b7e6"
+        name="Sector"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false" />
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="3a5f6782-2930-4036-a9a6-379f1d101038"
+        name="Entity"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false" />
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="083af4de-859a-4a13-b3b2-f1697ae82b67"
+        name="Region"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="1b63e71b-4cd3-489f-a40f-0bbe2c0ad42f"
+            isSubstitutable="false">
+            <classMoniker
+              Id="3a0d4e87-1b3b-48b0-8597-fc0ecf7a0cd3"
+              LastKnownName="StationaryEntity"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+        <targetEnds>
+          <association
+            Id="ee47ccab-b714-418e-9b5f-d40419ab988a"
+            isDerived="false"
+            sourceEndRoleName="Region"
+            targetEndRoleName="Sectors"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="84fddcc9-fd36-4ceb-8b07-8d192360b7e6"
+              LastKnownName="Sector"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="2eb4bb47-bb02-495e-9928-dd0ca5f47c7a"
+                  name="Region"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="3b98d04d-9f5a-4753-ae5b-16c8e4a73a18"
+                  name="Sectors"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="a4ac526e-2ce9-4bcf-a204-486c85b615f3"
+            isDerived="false"
+            sourceEndRoleName="Region"
+            targetEndRoleName="Resource Reserve"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="c62678fb-a712-42b6-b5ca-d2fd03b364e3"
+              LastKnownName="Resource Reserve"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="6182510a-c0b5-40ee-8c15-5ab4990caff2"
+                  name="Region"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="Composite"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="22f47582-eb49-4914-a1b6-46042d6b40b5"
+                  name="Resource Reserve"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="true" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+          <association
+            Id="a81b2225-9a9c-442c-8a4d-e4195071c91f"
+            isDerived="false"
+            sourceEndRoleName="Region"
+            targetEndRoleName="Structure"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="23453c0d-b697-4468-aa38-66b72fb87325"
+              LastKnownName="Structure"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="ab30f339-394b-46e8-92a4-5605c1b18003"
+                  name="Region"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="8d6820ce-5ca1-4a09-bd96-851c406cbd8a"
+                  name="Structure"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="c5ff2cc9-4858-4571-a1df-94be0573536b"
+        name="Unit"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="78649eda-437a-45d5-8169-c3d8744be3d2"
+            isSubstitutable="false">
+            <classMoniker
+              Id="3a5f6782-2930-4036-a9a6-379f1d101038"
+              LastKnownName="Entity"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="3a0d4e87-1b3b-48b0-8597-fc0ecf7a0cd3"
+        name="StationaryEntity"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="175c05e7-d300-4d9e-9848-c2b2284c003f"
+            isSubstitutable="false">
+            <classMoniker
+              Id="3a5f6782-2930-4036-a9a6-379f1d101038"
+              LastKnownName="Entity"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="7d4d5228-7005-41ab-810b-54986c49e84a"
+        name="Resource"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false" />
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="23453c0d-b697-4468-aa38-66b72fb87325"
+        name="Structure"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="bee214de-969f-4d88-bb0b-1fc1c6c1ed63"
+            isSubstitutable="false">
+            <classMoniker
+              Id="3a0d4e87-1b3b-48b0-8597-fc0ecf7a0cd3"
+              LastKnownName="StationaryEntity"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="879e245c-a26c-44fb-98d4-113b8c7c6a88"
+        name="Space Structure"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="956370e9-6d16-4a5f-92e8-ce47877a9603"
+            isSubstitutable="false">
+            <classMoniker
+              Id="23453c0d-b697-4468-aa38-66b72fb87325"
+              LastKnownName="Structure"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="da597447-206c-4743-8215-cd21662c51f9"
+        name="Ground Structure"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <generalsInternal>
+          <generalization
+            Id="da394629-f5c8-4c8c-83b1-3459ff5c3b28"
+            isSubstitutable="false">
+            <classMoniker
+              Id="23453c0d-b697-4468-aa38-66b72fb87325"
+              LastKnownName="Structure"
+              LastKnownLocation="ModelingProject1.uml" />
+          </generalization>
+        </generalsInternal>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="c62678fb-a712-42b6-b5ca-d2fd03b364e3"
+        name="Resource Reserve"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="583bdd43-2a23-4a00-9adb-bab01eea2485"
+            isDerived="false"
+            sourceEndRoleName="Resource Reserve"
+            targetEndRoleName="Resource"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="7d4d5228-7005-41ab-810b-54986c49e84a"
+              LastKnownName="Resource"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="9ec8eec4-00d4-4941-a3aa-c4f64b927e7a"
+                  name="Resource Reserve"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="8bef54ef-43ad-410a-b6e7-d8db3b346595"
+                  name="Resource"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+    <packageHasNamedElement>
+      <class
+        Id="9adf3b50-a87b-4d80-a6ed-57d5ac48aaab"
+        name="Diplomatic Relationship Status"
+        isAbstract="false"
+        isLeaf="false"
+        isActiveClass="false">
+        <targetEnds>
+          <association
+            Id="2786f463-d41c-4069-83f3-199c047566e5"
+            isDerived="false"
+            sourceEndRoleName="Diplomatic Relationship Status"
+            targetEndRoleName="Party"
+            isLeaf="false"
+            isAbstract="false">
+            <classMoniker
+              Id="fad3549b-073c-404e-b89a-950e348ef9dd"
+              LastKnownName="Party"
+              LastKnownLocation="ModelingProject1.uml" />
+            <relationshipOwnedElementsInternal>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="e832dfc2-8c97-41a3-b264-97fab9248ac9"
+                  name="Diplomatic Relationship Status"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false"
+                  isNavigableOwned="false" />
+              </associationHasOwnedEnds>
+              <associationHasOwnedEnds>
+                <memberEnd
+                  Id="3aafa043-6670-4559-a6f4-504408a187ea"
+                  name="Party"
+                  isLeaf="false"
+                  isStatic="false"
+                  isReadOnly="false"
+                  isDerived="false"
+                  isDerivedUnion="false"
+                  aggregation="None"
+                  isComposite="false" />
+              </associationHasOwnedEnds>
+            </relationshipOwnedElementsInternal>
+          </association>
+        </targetEnds>
+      </class>
+    </packageHasNamedElement>
+  </packagedElements>
+  <primitiveType
+    Id="220a3521-e091-4221-bae9-3ef9018e845c"
+    name="Integer"