about summary refs log tree commit diff
path: root/stage.py
diff options
context:
space:
mode:
authorBaitinq <you@example.com>2022-02-08 22:38:36 +0000
committerBaitinq <you@example.com>2022-02-08 22:43:41 +0000
commitd57982df7a710b1c5571a39c73b63c5fedec73a6 (patch)
tree4d0ce2f0eb7f13c3f176dd406617638b891d0bda /stage.py
parentAdd game atmospheric background (diff)
downloadOSLS-d57982df7a710b1c5571a39c73b63c5fedec73a6.tar.gz
OSLS-d57982df7a710b1c5571a39c73b63c5fedec73a6.tar.bz2
OSLS-d57982df7a710b1c5571a39c73b63c5fedec73a6.zip
Add support for rocket stages
Diffstat (limited to 'stage.py')
-rw-r--r--stage.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/stage.py b/stage.py
index 7cd2439..783e1f4 100644
--- a/stage.py
+++ b/stage.py
@@ -2,14 +2,33 @@ from engine import Engine
 from fuel import Fuel
 
 class Stage():
-    def __init__(self, stage_mass: int, engine: type[Engine], engine_number: int, fuel_type: type[Fuel], fuel_mass: int, drag_coefficient: float, cross_sectional_area: float):
+    def __init__(self, name: str, stage_mass: int, engine: type[Engine], engine_number: int, fuel_type: type[Fuel], fuel_mass: int, drag_coefficient: float, cross_sectional_area: float):
+        self.name = name
         self.stage_mass = stage_mass
         self.engine = engine
-        self.engine_number = engine_number
+        self.engine_number = engine_number 
         self.fuel_type = fuel_type
         self.fuel_mass = fuel_mass
         self.drag_coefficient = drag_coefficient
         self.cross_sectional_area = cross_sectional_area
+        
+        self.throttle = 100
+        self.engines_on = False
+
+    def total_mass(self):
+        return (self.stage_mass + self.fuel_mass)
+
+    def current_thrust(self):
+        if(self.engines_on and self.fuel_mass > 0):
+            return self.engine.thrust(self.throttle) * self.engine_number
+        else:
+            return 0
+
+    def total_fuel_used(self, delta: int):
+        if(self.engines_on):
+            return self.engine.flow_rate(self.throttle) * self.engine_number * delta
+        else:
+            return 0
 
     #total drag coefficient is just the upper stage
     #engines on is just the lower stage