diff options
author | Baitinq <you@example.com> | 2022-02-08 22:38:36 +0000 |
---|---|---|
committer | Baitinq <you@example.com> | 2022-02-08 22:43:41 +0000 |
commit | d57982df7a710b1c5571a39c73b63c5fedec73a6 (patch) | |
tree | 4d0ce2f0eb7f13c3f176dd406617638b891d0bda /stage.py | |
parent | Add game atmospheric background (diff) | |
download | OSLS-d57982df7a710b1c5571a39c73b63c5fedec73a6.tar.gz OSLS-d57982df7a710b1c5571a39c73b63c5fedec73a6.tar.bz2 OSLS-d57982df7a710b1c5571a39c73b63c5fedec73a6.zip |
Add support for rocket stages
Diffstat (limited to 'stage.py')
-rw-r--r-- | stage.py | 23 |
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 |