diff src/parpg/bGrease/__init__.py @ 66:96af64cf3b81

Renamed grease to bGrease (Basic Grease) to get rid of conflicts with an already installed grease.
author KarstenBock@gmx.net
date Mon, 05 Sep 2011 15:00:34 +0200
parents src/parpg/grease/__init__.py@ad18c3f912c5
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/parpg/bGrease/__init__.py	Mon Sep 05 15:00:34 2011 +0200
@@ -0,0 +1,75 @@
+#############################################################################
+#
+# Copyright (c) 2010 by Casey Duncan and contributors
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the MIT License
+# A copy of the license should accompany this distribution.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+#
+#############################################################################
+
+__versioninfo__ = (0, 3, 0)
+__version__ = '.'.join(str(n) for n in __versioninfo__)
+
+__all__ = ('BaseWorld', 'Entity', 'System', 'Renderer')
+
+import component
+import geometry
+import collision
+from entity import Entity
+from world import BaseWorld
+
+import abc
+
+class System(object):
+	"""Grease system abstract base class. Systems define behaviorial aspects
+	of a |World|. All systems must define a :meth:`step`
+	method that is invoked by the world each timestep.  User-defined systems
+	are not required to subclass this class.
+	
+	See :ref:`an example system from the tutorial <tut-system-example>`.
+	"""
+	__metaclass__ = abc.ABCMeta
+
+	world = None
+	"""The |World| this system belongs to"""
+
+	def set_world(self, world):
+		"""Bind the system to a world"""
+		self.world = world
+	
+	@abc.abstractmethod
+	def step(self, dt):
+		"""Execute a time step for the system. Must be defined
+		by all system classes.
+
+		:param dt: Time since last step invocation
+		:type dt: float
+		"""
+
+class Renderer(object):
+	"""Grease renderer abstract base class. Renderers define the presentation
+	of a |World|. All renderers must define a :meth:`draw`
+	method that is invoked by the world when the display needs to be redrawn.
+	User-defined renderers are not required to subclass this class.
+
+	See :ref:`an example renderer from the tutorial <tut-renderer-example>`.
+	"""
+	__metaclass__ = abc.ABCMeta
+
+	world = None
+	"""The |World| this renderer belongs to"""
+
+	def set_world(self, world):
+		"""Bind the system to a world"""
+		self.world = world
+
+	@abc.abstractmethod
+	def draw(self):
+		"""Issue drawing commands for this renderer. Must be defined
+		for all renderer classes.
+		"""
+