package Entity
	import Vectors
			
	public interface Entity	   
		
		function getVelocity() returns vec3
		
		function setVelocity(vec3 v)
		
		
	public module StaticEntityModule
		vec3 position

			
	public module EntityModule
		use StaticEntityModule
		
		vec3 velocity	 
			
		function getVelocity() returns vec3
			return velocity
			
		function setVelocity(vec3 v)
			velocity = v
			

	public class ArcaneMissile implements Entity	   

				
		function onCollision(Entity e)
			e.setVelocity( e.getVelocity().addReals( 2.5, 3.5, 25. ) )
			
		function getVelocity() returns vec3
			return vec3(0.,0.,0.)
			
		function setVelocity(vec3 v)
			real r = 0.   

	function vec3.addReals(real x, real y, real z) returns vec3
		return vec3(this.x + x, this.y + y, this.z + z)

endpackage