[gcompris: 54/111] place_your_satellite activity



commit 8c0415cadb129b2bab3bee39c26cbfe13bfd3d13
Author: serah <serah4291 gmail com>
Date:   Fri Jul 13 01:38:36 2012 +0530

    place_your_satellite activity

 src/land_safe-activity/land_safe.xml.in            |   11 +-
 src/place_your_satellite-activity/.gitignore       |    1 +
 src/place_your_satellite-activity/Makefile.am      |   35 ++
 src/place_your_satellite-activity/gcompris         |    1 +
 src/place_your_satellite-activity/init_path.sh     |    8 +
 .../place_your_satellite.py                        |  437 ++++++++++++++++
 .../place_your_satellite.svg                       |  543 ++++++++++++++++++++
 .../place_your_satellite.xml.in                    |   28 +
 .../resources/Makefile.am                          |    2 +
 .../resources/place_your_satellite/Makefile.am     |    9 +
 .../resources/place_your_satellite/background.png  |  Bin 0 -> 30726 bytes
 .../resources/place_your_satellite/crash.png       |  Bin 0 -> 3167 bytes
 .../resources/place_your_satellite/earth.png       |  Bin 0 -> 20005 bytes
 .../resources/place_your_satellite/satellite.png   |  Bin 0 -> 3571 bytes
 14 files changed, 1069 insertions(+), 6 deletions(-)
---
diff --git a/src/land_safe-activity/land_safe.xml.in b/src/land_safe-activity/land_safe.xml.in
index 6a4e133..79ab27e 100644
--- a/src/land_safe-activity/land_safe.xml.in
+++ b/src/land_safe-activity/land_safe.xml.in
@@ -9,10 +9,10 @@
         author="your name here"
         boarddir=""
         >
-        <title>Land Safe</title>
-        <description>Understanding acceleration due to gravity.</description>
-        <goal>Station the spaceship in the green landing area.</goal>
-        <manual xml:space="preserve">
+        <_title>Land Safe</_title>
+        <_description>Understanding acceleration due to gravity.</_description>
+        <_goal>Station the spaceship in the green landing area.</_goal>
+        <_manual xml:space="preserve">
         Acceleration due to gravity experienced by the spaceship is directly proportional to the mass of
         the planet and inversely proportional to the square of the distance from the centre of the planet.
         Thus, with every planet the acceleration will differ and as the spaceship comes closer and closer
@@ -20,8 +20,7 @@
 
         Use the up/down keys to control the thrust and the right/left keys to control direction.
         The velocity while landing should be less than 7 to avoid a crash.
-        </manual>
-        <credit></credit>
+        </_manual>
   </Board>
   <Data directory=""/>
 </GCompris>
diff --git a/src/place_your_satellite-activity/.gitignore b/src/place_your_satellite-activity/.gitignore
new file mode 100644
index 0000000..3f870b5
--- /dev/null
+++ b/src/place_your_satellite-activity/.gitignore
@@ -0,0 +1 @@
+place_your_satellite.xml
diff --git a/src/place_your_satellite-activity/Makefile.am b/src/place_your_satellite-activity/Makefile.am
new file mode 100644
index 0000000..b525b1a
--- /dev/null
+++ b/src/place_your_satellite-activity/Makefile.am
@@ -0,0 +1,35 @@
+# Passthrough, do not break uplevel make rule
+install-activity:
+
+SUBDIRS =
+
+pythondir = $(PYTHON_PLUGIN_DIR)
+
+dist_python_DATA= 	place_your_satellite.py
+
+
+
+xmldir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
+
+xml_in_files = \
+	place_your_satellite.xml.in
+
+
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+# Do not use the INTLTOOL_XML_RULE, we don't need to embed the translations
+# in the file themselves. GCompris pick the translations from the po file at
+# runtime.
+#
+$(xml_DATA): %.xml: %.xml.in
+	sed -e "s/\(<\{1\}\/*\)_/\1/g" $< > $@
+
+# Use this directive and instead of the one above to embed the translations
+# in the xml files directly, this is needed for the tool gcompris2spip
+# INTLTOOL_XML_RULE@
+
+icondir = $(pkgdatadir)/@PACKAGE_DATA_DIR@
+icon_DATA = place_your_satellite.svg
+
+EXTRA_DIST = $(icon_DATA) ${xml_in_files} init_path.sh
+CLEANFILES = $(xml_DATA)
diff --git a/src/place_your_satellite-activity/gcompris b/src/place_your_satellite-activity/gcompris
new file mode 120000
index 0000000..6a7dc8a
--- /dev/null
+++ b/src/place_your_satellite-activity/gcompris
@@ -0,0 +1 @@
+../boards/python/gcompris
\ No newline at end of file
diff --git a/src/place_your_satellite-activity/init_path.sh b/src/place_your_satellite-activity/init_path.sh
new file mode 100755
index 0000000..d703507
--- /dev/null
+++ b/src/place_your_satellite-activity/init_path.sh
@@ -0,0 +1,8 @@
+# Set the different path for this activity
+# This is sourced by runit.sh
+path=$1
+activity=place_your_satellite
+plugindir=$path/../boards/.libs
+pythonplugindir=$path 
+resourcedir=$path/resources
+section="/experimental"
diff --git a/src/place_your_satellite-activity/place_your_satellite.py b/src/place_your_satellite-activity/place_your_satellite.py
new file mode 100644
index 0000000..e765d18
--- /dev/null
+++ b/src/place_your_satellite-activity/place_your_satellite.py
@@ -0,0 +1,437 @@
+#  gcompris - place_your_satellite.py
+#
+# Copyright (C) 2012 Bruno Coudoin and Matilda Bernard
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# place_your_satellite activity.
+import gtk
+import gtk.gdk
+import gcompris
+import gcompris.utils
+import gcompris.skin
+import gcompris.bonus
+import goocanvas
+import pango
+import math
+import gobject
+
+from gcompris import gcompris_gettext as _
+
+class Gcompris_place_your_satellite:
+  """Empty gcompris python class"""
+
+
+  def __init__(self, gcomprisBoard):
+    # Save the gcomprisBoard, it defines everything we need
+    # to know from the core
+    self.gcomprisBoard = gcomprisBoard
+
+    # Needed to get key_press
+    gcomprisBoard.disable_im_context = True
+
+    self.game_complete = False
+
+  def start(self):
+    # Create our rootitem. We put each canvas item in it so at the end we
+    # only have to kill it. The canvas deletes all the items it contains
+    # automaticaly.
+    self.rootitem = goocanvas.Group(parent =
+                                    self.gcomprisBoard.canvas.get_root_item())
+
+    background = goocanvas.Image(
+      parent = self.rootitem,
+      pixbuf = gcompris.utils.load_pixmap("place_your_satellite/background.png"),
+      x = 1,
+      y = 1)
+
+    self.earth = goocanvas.Image(
+      parent = self.rootitem,
+      pixbuf = gcompris.utils.load_pixmap("place_your_satellite/earth.png"),
+      x = gcompris.BOARD_WIDTH/2 - 50,
+      y = gcompris.BOARD_HEIGHT/2 - 50)
+
+    satellite = Satellite(self, self.rootitem)
+    speed = Speed(satellite, self.rootitem)
+    mass = Mass(self, satellite, self.rootitem)
+
+    background.connect("button_press_event", satellite.load_satellite)
+
+    # Set the buttons we want in the bar
+    gcompris.bar_set(gcompris.BAR_REPEAT)
+    gcompris.bar_location(2,-1,0.5)
+
+  def end(self):
+    # Remove the root item removes all the others inside it
+    self.rootitem.remove()
+
+
+  def ok(self):
+    pass
+
+  def repeat(self):
+    self.rootitem.remove()
+    self.start()
+
+  #mandatory but unused yet
+  def config_stop(self):
+    pass
+
+  # Configuration function.
+  def config_start(self, profile):
+    print("place_your_satellite config_start.")
+
+  def key_press(self, keyval, commit_str, preedit_str):
+    pass
+
+  def pause(self, pause):
+    self.board_paused = pause
+    if pause == False and self.game_complete:
+      self.game_complete = False
+      self.end()
+      self.start()
+
+
+  def set_level(self, level):
+    pass
+
+  def crash(self):
+    self.game_complete = True
+
+class Satellite:
+  """Satellite simulation"""
+
+
+  def __init__(self, game, rootitem):
+    self.rootitem = rootitem
+    self.satellite_exists = False
+    self.game = game
+    self.angle = 0
+    self.mass = 800
+
+  def load_satellite(self, a, b, event=None):
+    if self.satellite_exists == False:
+      x = event.x - 12
+      y = event.y - 12
+      self.satellite = goocanvas.Image(
+        parent = self.rootitem,
+        pixbuf = gcompris.utils.load_pixmap("place_your_satellite/satellite.png"),
+        x = x,
+        y = y)
+
+      self.satellite_exists = True
+      self.initiate_movement()
+      return False
+
+  def initiate_movement(self):
+    # Calculate distance and set speed
+    earth_bounds = self.game.earth.get_bounds()
+    earth_x = (earth_bounds.x1 + earth_bounds.x2)/2
+    earth_y = (earth_bounds.y1 + earth_bounds.y2)/2
+    satellite_bounds = self.satellite.get_bounds()
+    satellite_x = (satellite_bounds.x1 + satellite_bounds.x2)/2
+    satellite_y = (satellite_bounds.y1 + satellite_bounds.y2)/2
+    self.distance = math.sqrt(((earth_x - satellite_x)**2) + ((earth_y - satellite_y)**2))
+    self.orbital_speed = math.sqrt(self.mass/self.distance)
+    self.speed = self.orbital_speed
+    gobject.timeout_add(30, self.calculate, earth_x - 20, earth_y -20)
+
+  def calculate(self, x_center, y_center):
+    self.orbital_speed = math.sqrt(abs(self.mass/self.distance))
+    difference = self.speed - self.orbital_speed
+    if abs(difference) < 0.7:
+      value = self.revolve(x_center, y_center)
+      return value
+    elif difference < 0:
+      value = self.crash(x_center, y_center)
+      return value
+    else:
+      value = self.fly_off(x_center, y_center)
+      return value
+
+  def revolve(self, x_center, y_center):
+    self.angle += self.speed
+    radian = self.angle * (math.pi/180)
+    x_circle = x_center + math.cos(radian) * self.distance
+    y_circle = y_center - math.sin(radian) * self.distance
+    gcompris.utils.item_absolute_move(self.satellite, int(x_circle), int(y_circle))
+    return True
+
+  def crash(self, x_center, y_center):
+    if self.distance > 75 + (self.mass * 0.01):
+      self.angle += self.speed + 2
+      radian = self.angle * (math.pi/180)
+      x_circle = x_center + math.cos(radian) * self.distance
+      y_circle = y_center - math.sin(radian) * self.distance
+      gcompris.utils.item_absolute_move(self.satellite, int(x_circle), int(y_circle))
+      self.distance -=3
+      return True
+
+    else:
+      self.load_crash_image()
+
+  def load_crash_image(self):
+    bounds = self.satellite.get_bounds()
+    self.satellite.remove()
+    crash_image = goocanvas.Image(
+      parent = self.rootitem,
+      pixbuf = gcompris.utils.load_pixmap("place_your_satellite/crash.png"),
+      x = bounds.x1,
+      y = bounds.y1)
+
+    self.game.crash()
+
+  def fly_off(self, x_center, y_center):
+    if self.distance < 500:
+      self.angle += self.speed
+      radian = self.angle * (math.pi / 180)
+      x_circle = x_center + math.cos(radian) * self.distance
+      y_circle = y_center - math.sin(radian) * self.distance
+      gcompris.utils.item_absolute_move(self.satellite, int(x_circle), int(y_circle))
+      self.distance +=5
+      return True
+    else:
+      self.message()
+
+  def message(self):
+    text = goocanvas.Text(
+      parent = self.rootitem,
+      x = 384,
+      y = 103,
+      fill_color = "white",
+      anchor = gtk.ANCHOR_CENTER,
+      alignment = pango.ALIGN_CENTER,
+      text = _("Satellite not in orbit"))
+    bounds = text.get_bounds()
+    gap = 20
+
+    back = goocanvas.Rect(
+      parent = self.rootitem,
+      radius_x = 6,
+      radius_y = 6,
+      x = bounds.x1 - gap,
+      y = bounds.y1 - gap,
+      width = bounds.x2 - bounds.x1 + gap * 2,
+      height = bounds.y2 - bounds.y1 + gap * 2,
+      stroke_color_rgba = 0xFFFFFFFFL,
+      fill_color_rgba = 0xCCCCCC44L)
+
+class Speed:
+  """ Class dealing with speed and it's display"""
+
+  def __init__(self,satellite_instance, rootitem):
+    self.rootitem = rootitem
+    self.speed_change = 0
+    self.satellite_instance = satellite_instance
+
+    self.length = 130
+    self.button_width = 20
+    line = goocanvas.Polyline(
+      parent = self.rootitem,
+      points = goocanvas.Points( [(650, 500), (780, 500)] ),
+      stroke_color = "grey",
+      width = 2.0)
+
+    text_speed = goocanvas.Text(
+      parent = rootitem,
+      x = (650 + 780)/2,
+      y = 470,
+      anchor = gtk.ANCHOR_CENTER,
+      alignment = pango.ALIGN_CENTER,
+      fill_color = "white",
+      text = _("Speed"))
+
+    back = goocanvas.Rect(
+      parent = self.rootitem,
+      radius_x = 6,
+      radius_y = 6,
+      x = 630,
+      y = 460,
+      width = 169,
+      height = 59,
+      stroke_color_rgba = 0xFFFFFFFFL,
+      fill_color_rgba = 0x0000FF44L)
+
+    slider_x = 650 + self.length / 2.0
+    self.bar = goocanvas.Polyline(
+      parent = self.rootitem,
+      points = goocanvas.Points([(slider_x, 495),
+                                 (slider_x, 505)]),
+      stroke_color = "grey",
+      line_width = 5.0)
+
+    # This is the relative position of the scale from 0 to 1
+    # 0 is the bottom
+    self.scale_value = 0.5
+    self.speed_button(650, 500, self.button_width, '+', 0.1)
+    self.speed_button(780, 500, self.button_width, '-', -0.1)
+
+  def speed_button(self, x, y, size, text, move):
+    button = goocanvas.Rect(
+      parent = self.rootitem,
+      x = x - size / 2.0,
+      y = y - size / 2.0,
+      width = size,
+      height =  size,
+      line_width = 1.0,
+      stroke_color_rgba= 0xCECECEFFL,
+      fill_color_rgba = 0x333333FFL,
+      radius_x = 15.0,
+      radius_y = 5.0,
+      )
+    gcompris.utils.item_focus_init(button, None)
+
+    text = goocanvas.Text(
+      parent = self.rootitem,
+      x = x,
+      y = y,
+      text = text,
+      font = gcompris.skin.get_font("gcompris/subtitle"),
+      fill_color = "white",
+      anchor = gtk.ANCHOR_CENTER,
+      alignment = pango.ALIGN_CENTER
+      )
+    gcompris.utils.item_focus_init(text, button)
+
+    button.connect("button_press_event", self.move_bar, move)
+    text.connect("button_press_event", self.move_bar, move)
+
+  def move_bar(self, widget, target, event, move):
+    self.scale_value += move
+    # Take care not to bypass bounds
+    if self.scale_value > 1.0:
+      self.scale_value = 1.0
+      return
+    elif self.scale_value < 0.0:
+      self.scale_value = 0.0
+      return
+
+    self.bar.translate(move * -2.5 * self.length / 4.0, 0);
+    self.set_speed(move)
+
+  def set_speed(self, change):
+    self.satellite_instance.speed += change * 2
+
+class Mass:
+  """ Class dealing with mass and it's display"""
+
+  def __init__(self, game, satellite_instance, rootitem):
+    self.rootitem = rootitem
+    self.game = game
+    self.satellite_instance = satellite_instance
+
+    self.length = 130
+    self.button_width = 20
+    line = goocanvas.Polyline(
+      parent = self.rootitem,
+      points = goocanvas.Points( [(650, 400), (780, 400)] ),
+      stroke_color = "grey",
+      width = 2.0)
+
+    text_speed = goocanvas.Text(
+      parent = rootitem,
+      x = (650 + 780)/2,
+      y = 370,
+      anchor = gtk.ANCHOR_CENTER,
+      alignment = pango.ALIGN_CENTER,
+      fill_color = "white",
+      text = _("Mass"))
+
+    back = goocanvas.Rect(
+      parent = self.rootitem,
+      radius_x = 6,
+      radius_y = 6,
+      x = 630,
+      y = 360,
+      width = 169,
+      height = 59,
+      stroke_color_rgba = 0xFFFFFFFFL,
+      fill_color_rgba = 0x0000FF44L)
+
+    slider_x = 650 + self.length / 2.0
+    self.bar = goocanvas.Polyline(
+      parent = self.rootitem,
+      points = goocanvas.Points([(slider_x, 395),
+                                 (slider_x, 405)]),
+      stroke_color = "grey",
+      line_width = 5.0)
+
+    self.scale_value = 0.5
+    self.scale_earth(self.scale_value)
+    self.speed_button(650, 400, self.button_width, '+', 0.1)
+    self.speed_button(780, 400, self.button_width, '-', -0.1)
+
+  def speed_button(self, x, y, size, text, move):
+    button = goocanvas.Rect(
+      parent = self.rootitem,
+      x = x - size / 2.0,
+      y = y - size / 2.0,
+      width = size,
+      height =  size,
+      line_width = 1.0,
+      stroke_color_rgba= 0xCECECEFFL,
+      fill_color_rgba = 0x333333FFL,
+      radius_x = 15.0,
+      radius_y = 5.0,
+      )
+    gcompris.utils.item_focus_init(button, None)
+
+    text = goocanvas.Text(
+      parent = self.rootitem,
+      x = x,
+      y = y,
+      text = text,
+      font = gcompris.skin.get_font("gcompris/subtitle"),
+      fill_color = "white",
+      anchor = gtk.ANCHOR_CENTER,
+      alignment = pango.ALIGN_CENTER
+      )
+    gcompris.utils.item_focus_init(text, button)
+
+    button.connect("button_press_event", self.move_bar, move)
+    text.connect("button_press_event", self.move_bar, move)
+
+  def move_bar(self, widget, target, event, move):
+    self.scale_value += move
+    # Take care not to bypass bounds
+    if self.scale_value > 1.0:
+      self.scale_value = 1.0
+      return
+    elif self.scale_value < 0.0:
+      self.scale_value = 0.0
+      return
+
+    self.bar.translate(move * -2.5 * self.length / 4.0, 0);
+    self.scale_earth(self.scale_value)
+    self.change_mass(move)
+
+  def scale_earth(self, scale):
+    self.scale = scale
+    self.game.earth.set_transform(None)
+    # Center it
+    bounds = self.game.earth.get_bounds()
+    self.game.earth.scale(self.scale_value + 0.5, self.scale_value + 0.5)
+    (x, y) = self.rootitem.get_canvas().\
+        convert_to_item_space(\
+      self.game.earth,
+      gcompris.BOARD_WIDTH/2 - 50 + ((bounds.x2 - bounds.x1) / 2.0 * -1) * self.scale + 0.5,
+      gcompris.BOARD_HEIGHT/2 - 50 + ((bounds.y2 - bounds.y1) / 2.0 * -1) * self.scale + 0.5)
+    self.game.earth.set_properties( x = x, y = y )
+
+  def change_mass(self, change):
+    if change == -0.1:
+      self.satellite_instance.mass -= 500
+    else:
+      self.satellite_instance.mass += 500
+
diff --git a/src/place_your_satellite-activity/place_your_satellite.svg b/src/place_your_satellite-activity/place_your_satellite.svg
new file mode 100644
index 0000000..48c78b5
--- /dev/null
+++ b/src/place_your_satellite-activity/place_your_satellite.svg
@@ -0,0 +1,543 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.1 r9760"
+   width="250"
+   height="250"
+   sodipodi:docname="satellite_placeholder.png">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview4"
+     showgrid="false"
+     inkscape:zoom="1.152"
+     inkscape:cx="125"
+     inkscape:cy="135.85069"
+     inkscape:window-x="7"
+     inkscape:window-y="24"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2" />
+  <image
+     width="250"
+     height="250"
+     xlink:href="data:image/png;base64,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
+AWG0TmrxPLX7AAAAAElFTkSuQmCC
+"
+     id="image10"
+     x="0"
+     y="0" />
+</svg>
diff --git a/src/place_your_satellite-activity/place_your_satellite.xml.in b/src/place_your_satellite-activity/place_your_satellite.xml.in
new file mode 100644
index 0000000..815486d
--- /dev/null
+++ b/src/place_your_satellite-activity/place_your_satellite.xml.in
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<GCompris>
+  <Board
+        name="place_your_satellite"
+        type="python:place_your_satellite"
+        section="/experimental"
+        icon="place_your_satellite.svg"
+        difficulty="1"
+        author="your name here"
+        boarddir=""
+        >
+        <_title>place_your_satellite</_title>
+        <_description>Understanding afeect of mass and distance on orbital velocity</_description>
+        <_goal>Make sure the satellite does not crash or fly away</_goal>
+        <_manual xml:space="preserve">
+        A satellite revolves around the Earth because of the force between them.
+        Orbital velocity of a satellite of Earth is directly proportional to the square root of the mass of Earth and 
+        inversely proportional to the square root of the distance from the center of Earth to the satellite.
+        
+        In this activity, play with the speed of the satellite and mass of Earth to see what happens to the satellite.
+        If the speed of the satellite is slower than the required orbital speed then the force applied by the Earth on 
+        the satellite is too much and thus the satellite gets pulled towards the Earth and burns in it's atmosphere.
+        If the speed of the satellite is more than the required orbital speed then the Earth's force is not enough to 
+        keep it in orbit and thus the satellite flies away due to it's own inertia. 
+        </_manual>
+  </Board>
+  <Data directory=""/>
+</GCompris>
diff --git a/src/place_your_satellite-activity/resources/Makefile.am b/src/place_your_satellite-activity/resources/Makefile.am
new file mode 100644
index 0000000..4015939
--- /dev/null
+++ b/src/place_your_satellite-activity/resources/Makefile.am
@@ -0,0 +1,2 @@
+SUBDIRS = place_your_satellite
+
diff --git a/src/place_your_satellite-activity/resources/place_your_satellite/Makefile.am b/src/place_your_satellite-activity/resources/place_your_satellite/Makefile.am
new file mode 100644
index 0000000..ea20a05
--- /dev/null
+++ b/src/place_your_satellite-activity/resources/place_your_satellite/Makefile.am
@@ -0,0 +1,9 @@
+imgdir = $(pkgdatadir)/@PACKAGE_DATA_DIR@/place_your_satellite
+img_DATA = \
+	background.png \
+	crash.png \
+	earth.png \
+	satellite.png
+
+EXTRA_DIST = $(img_DATA)
+
diff --git a/src/place_your_satellite-activity/resources/place_your_satellite/background.png b/src/place_your_satellite-activity/resources/place_your_satellite/background.png
new file mode 100644
index 0000000..adc5978
Binary files /dev/null and b/src/place_your_satellite-activity/resources/place_your_satellite/background.png differ
diff --git a/src/place_your_satellite-activity/resources/place_your_satellite/crash.png b/src/place_your_satellite-activity/resources/place_your_satellite/crash.png
new file mode 100644
index 0000000..446d729
Binary files /dev/null and b/src/place_your_satellite-activity/resources/place_your_satellite/crash.png differ
diff --git a/src/place_your_satellite-activity/resources/place_your_satellite/earth.png b/src/place_your_satellite-activity/resources/place_your_satellite/earth.png
new file mode 100644
index 0000000..95ca592
Binary files /dev/null and b/src/place_your_satellite-activity/resources/place_your_satellite/earth.png differ
diff --git a/src/place_your_satellite-activity/resources/place_your_satellite/satellite.png b/src/place_your_satellite-activity/resources/place_your_satellite/satellite.png
new file mode 100644
index 0000000..e021ba9
Binary files /dev/null and b/src/place_your_satellite-activity/resources/place_your_satellite/satellite.png differ



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]