feat: making SR1 ship render

This commit is contained in:
shenjack 2022-12-26 11:46:05 +08:00
parent f25fa9906b
commit a937f0a3fa
8 changed files with 777 additions and 25 deletions

View File

@ -92,7 +92,7 @@ class _DR_runtime(Options):
_DR_runtime.add_option('language', _DR_runtime.language) _DR_runtime.add_option('language', _DR_runtime.language)
DR_option = DR_option() dDR_option = DR_option()
DR_runtime = _DR_runtime() DR_runtime = _DR_runtime()
if DR_option.playing: if DR_option.playing:

View File

@ -12,7 +12,7 @@ from typing import List
from pyglet.event import EventDispatcher from pyglet.event import EventDispatcher
# Difficult Rocket function # Difficult Rocket function
from Difficult_Rocket.command.api import CommandText
if typing.TYPE_CHECKING: if typing.TYPE_CHECKING:
from Difficult_Rocket.client import ClientWindow from Difficult_Rocket.client import ClientWindow
@ -388,14 +388,14 @@ class BaseScreen(EventDispatcher):
""" """
def on_command(self, command): def on_command(self, command: CommandText):
""" """
:param command: :param command:
:return: :return:
""" """
def on_message(self, message): def on_message(self, message: str):
""" """
:param message: :param message:

View File

@ -0,0 +1,61 @@
# -------------------------------
# Difficult Rocket
# Copyright © 2021-2022 by shenjackyuanjie 3695888@qq.com
# All rights reserved
# -------------------------------
# pyglet
import pyglet
from pyglet.image import load, AbstractImage
# Difficult Rocket
from Difficult_Rocket.utils.typings import Options
class SR1Textures(Options):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.flush_option()
for image_name in self.cached_options:
setattr(self, image_name, load(f'textures/parts/{image_name}.png'))
self.flush_option()
Battery: AbstractImage = None
Beam: AbstractImage = None
CoverBottom: AbstractImage = None
CoverStretch: AbstractImage = None
CoverTop: AbstractImage = None
DetacherRadial: AbstractImage = None
DetacherVertical: AbstractImage = None
DockingConnector: AbstractImage = None
DockingPort: AbstractImage = None
EngineIon: AbstractImage = None
EngineLarge: AbstractImage = None
EngineMedium: AbstractImage = None
EngineSmall: AbstractImage = None
EngineTiny: AbstractImage = None
Fuselage: AbstractImage = None
LanderLegJoint: AbstractImage = None
LanderLegLower: AbstractImage = None
LanderLegPreview: AbstractImage = None
LanderLegUpper: AbstractImage = None
NoseCone: AbstractImage = None
Parachute: AbstractImage = None
ParachuteCanister: AbstractImage = None
ParachuteCanisterSide: AbstractImage = None
Pod: AbstractImage = None
Puffy750: AbstractImage = None
RcsBlock: AbstractImage = None
SideTank: AbstractImage = None
SolarPanel: AbstractImage = None
SolarPanelBase: AbstractImage = None
SolidRocketBooster: AbstractImage = None
TankLarge: AbstractImage = None
TankMedium: AbstractImage = None
TankSmall: AbstractImage = None
TankTiny: AbstractImage = None
Wheel: AbstractImage = None
Wing: AbstractImage = None

View File

@ -31,15 +31,16 @@ from pyglet.window import Window
from pyglet.window import key, mouse from pyglet.window import key, mouse
# Difficult_Rocket function # Difficult_Rocket function
from Difficult_Rocket import DR_runtime
from Difficult_Rocket.command import line, tree from Difficult_Rocket.command import line, tree
from Difficult_Rocket.utils.translate import tr from Difficult_Rocket.utils.translate import tr
from Difficult_Rocket.client.screen import BaseScreen, DRScreen, DRDEBUGScreen from Difficult_Rocket import DR_runtime, DR_option
from Difficult_Rocket.utils import tools, translate from Difficult_Rocket.utils import tools, translate
from Difficult_Rocket.utils.new_thread import new_thread from Difficult_Rocket.utils.new_thread import new_thread
from Difficult_Rocket.client.fps.fps_log import FpsLogger from Difficult_Rocket.client.fps.fps_log import FpsLogger
from Difficult_Rocket.client.guis.widgets import InputBox from Difficult_Rocket.client.guis.widgets import InputBox
from Difficult_Rocket.exception.command import CommandError from Difficult_Rocket.exception.command import CommandError
from Difficult_Rocket.client.render.sr1_ship import SR1ShipRender
from Difficult_Rocket.client.screen import BaseScreen, DRScreen, DRDEBUGScreen
class Client: class Client:
@ -62,7 +63,8 @@ class Client:
fullscreen=tools.format_bool(self.config['window']['full_screen']), fullscreen=tools.format_bool(self.config['window']['full_screen']),
caption=self.caption, caption=self.caption,
resizable=tools.format_bool(self.config['window']['resizable']), resizable=tools.format_bool(self.config['window']['resizable']),
visible=tools.format_bool(self.config['window']['visible'])) visible=tools.format_bool(self.config['window']['visible']),
file_drops=True)
self.logger.info(tr.lang('client', 'setup.done')) self.logger.info(tr.lang('client', 'setup.done'))
end_time = time.time_ns() end_time = time.time_ns()
self.use_time = end_time - start_time self.use_time = end_time - start_time
@ -90,7 +92,10 @@ def _call_screen_after(func: Callable) -> Callable:
result = func(self, *args, **kwargs) result = func(self, *args, **kwargs)
for a_screen in self.screen_list: for a_screen in self.screen_list:
if hasattr(a_screen, func.__name__): if hasattr(a_screen, func.__name__):
try:
getattr(a_screen, func.__name__)(*args, **kwargs) getattr(a_screen, func.__name__)(*args, **kwargs)
except:
traceback.print_exc()
return result return result
warped.__signature__ = inspect.signature(func) warped.__signature__ = inspect.signature(func)
@ -102,7 +107,10 @@ def _call_screen_before(func: Callable) -> Callable:
def warped(self, *args, **kwargs): def warped(self, *args, **kwargs):
for a_screen in self.screen_list: for a_screen in self.screen_list:
if hasattr(a_screen, func.__name__): if hasattr(a_screen, func.__name__):
try:
getattr(a_screen, func.__name__)(*args, **kwargs) getattr(a_screen, func.__name__)(*args, **kwargs)
except:
traceback.print_exc()
result = func(self, *args, **kwargs) result = func(self, *args, **kwargs)
return result return result
@ -167,6 +175,7 @@ class ClientWindow(Window):
self.screen_list: List[BaseScreen] self.screen_list: List[BaseScreen]
self.screen_list.append(DRDEBUGScreen(self)) self.screen_list.append(DRDEBUGScreen(self))
self.screen_list.append(DRScreen(self)) self.screen_list.append(DRScreen(self))
self.screen_list.append(SR1ShipRender(self, DR_option.gui_scale))
def load_fonts(self) -> None: def load_fonts(self) -> None:
fonts_folder_path = self.main_config['runtime']['fonts_folder'] fonts_folder_path = self.main_config['runtime']['fonts_folder']

View File

@ -4,33 +4,76 @@
# All rights reserved # All rights reserved
# ------------------------------- # -------------------------------
from typing import List, TYPE_CHECKING, Union
from xml.etree import ElementTree
# third party package # third party package
from defusedxml.ElementTree import DefusedXMLParser from defusedxml.ElementTree import parse
# pyglet # pyglet
from pyglet.graphics import Batch from pyglet.graphics import Batch
from pyglet.resource import texture from pyglet.resource import texture
# Difficult Rocket # Difficult Rocket
from client.screen import BaseScreen from Difficult_Rocket import DR_option
from Difficult_Rocket.api.types.SR1 import SR1Textures
from Difficult_Rocket.command.line import CommandText
from Difficult_Rocket.client.screen import BaseScreen
if TYPE_CHECKING:
from Difficult_Rocket.client import ClientWindow from Difficult_Rocket.client import ClientWindow
class SR1ShipRender(BaseScreen): class SR1ShipRender(BaseScreen):
"""用于渲染 sr1 船的类""" """用于渲染 sr1 船的类"""
def __init__(self, x: float, y: float, def __init__(self,
scale: float, main_window: "ClientWindow",
xml_doc: DefusedXMLParser, scale: float):
main_window: "ClientWindow"):
super().__init__(main_window) super().__init__(main_window)
self.x, self.y = x, y
self.scale = scale self.scale = scale
self.xml_doc = xml_doc self.textures: Union[SR1Textures, None] = None
self.xml_doc = parse('configs/dock1.xml')
self.xml_root: ElementTree.Element = self.xml_doc.getroot()
self.part_batch = Batch() self.part_batch = Batch()
def load_textures(self):
self.textures = SR1Textures()
def render_ship(self):
if self.textures is None:
self.load_textures()
parts = self.xml_root.find('Parts')
for part in parts:
if part.tag != 'Part':
continue # 如果不是部件,则跳过
# print(f"tag: {part.tag} attrib: {part.attrib}")
part_id = part.attrib.get('id')
part_type = part.attrib.get('partType')
part_x = part.attrib.get('x')
part_y = part.attrib.get('y')
part_activate = part.attrib.get('activated') or 0
part_angle = part.attrib.get('angle')
part_angle_v = part.attrib.get('angleV')
part_editor_angle = part.attrib.get('editorAngle')
part_flip_x = part.attrib.get('flippedX') or 0
part_flip_y = part.attrib.get('flippedY') or 0
part_explode = part.attrib.get('exploded') or 0
if part_id not in self.textures.cached_options:
print('Textures None found!')
print(f'id: {part_id:<4} type: {part_type:<10} x: {part_x} y: {part_y} activated: {part_activate} '
f'angle: {part_angle} angle_v: {part_angle_v} editor_angle: {part_editor_angle} '
f'flip_x: {part_flip_x} flip_y: {part_flip_y} explode: {part_explode}')
def on_draw(self): def on_draw(self):
... ...
def on_command(self, command): def on_file_drop(self, x: int, y: int, paths: List[str]):
self.scale = DR_option.gui_scale
self.render_ship()
... ...
def on_command(self, command: CommandText):
if command.match('render'):
print('rua, render ship!')
self.render_ship()

View File

@ -19,10 +19,12 @@ import logging
import configparser import configparser
from typing import Union from typing import Union
from xml.dom.minidom import parse from xml.etree import ElementTree
import rtoml import rtoml
from defusedxml.ElementTree import parse
from Difficult_Rocket.exception.unsupport import NoMoreJson5 from Difficult_Rocket.exception.unsupport import NoMoreJson5
# logger # logger
@ -36,14 +38,16 @@ file_error = {FileNotFoundError: 'no {filetype} file was founded!:\n file name:
Exception: 'get some {error_type} error when read {filetype} file {filename}! \n file type: {} \n file name: {} \n stack: {stack}'} Exception: 'get some {error_type} error when read {filetype} file {filename}! \n file type: {} \n file name: {} \n stack: {stack}'}
def load_file(file_name: str, stack: Union[str, list, dict] = None, raise_error: bool = True) -> Union[dict, list]: def load_file(file_name: str,
stack: Union[str, list, dict] = None,
raise_error: bool = True) -> Union[dict, list]:
f_type = file_name[file_name.rfind('.') + 1:] # 从最后一个.到末尾 (截取文件格式) f_type = file_name[file_name.rfind('.') + 1:] # 从最后一个.到末尾 (截取文件格式)
get_file = NotImplementedError('解析失败,请检查文件类型/文件内容/文件是否存在!') get_file = NotImplementedError('解析失败,请检查文件类型/文件内容/文件是否存在!')
try: try:
if f_type == 'xml': if f_type == 'xml':
xml_load = parse(file_name) xml_load: ElementTree.ElementTree = parse(file_name)
if stack is not None: if stack is not None:
get_file = xml_load.getElementsByTagName(stack) get_file = xml_load.find(stack)
elif (f_type == 'config') or (f_type == 'conf') or (f_type == 'ini'): elif (f_type == 'config') or (f_type == 'conf') or (f_type == 'ini'):
get_file = configparser.ConfigParser() get_file = configparser.ConfigParser()
get_file.read(file_name) get_file.read(file_name)

635
configs/dock1.xml Normal file
View File

@ -0,0 +1,635 @@
<Ship version="1" liftedOff="0" touchingGround="0">
<Parts>
<Part partType="pod-1" id="1" x="0.000000" y="3.250000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Pod throttle="0.000000" name="">
<Staging currentStage="0">
<Step>
<Activate Id="52" moved="0"/>
<Activate Id="59" moved="1"/>
<Activate Id="60" moved="1"/>
<Activate Id="61" moved="1"/>
<Activate Id="62" moved="1"/>
<Activate Id="63" moved="1"/>
<Activate Id="64" moved="1"/>
</Step>
<Step>
<Activate Id="114" moved="0"/>
<Activate Id="115" moved="0"/>
<Activate Id="112" moved="0"/>
<Activate Id="113" moved="0"/>
<Activate Id="140" moved="0"/>
<Activate Id="141" moved="0"/>
<Activate Id="135" moved="0"/>
<Activate Id="136" moved="0"/>
<Activate Id="118" moved="1"/>
<Activate Id="119" moved="1"/>
<Activate Id="120" moved="1"/>
<Activate Id="121" moved="1"/>
<Activate Id="123" moved="1"/>
<Activate Id="124" moved="1"/>
<Activate Id="125" moved="1"/>
<Activate Id="126" moved="1"/>
<Activate Id="42" moved="1"/>
<Activate Id="43" moved="1"/>
<Activate Id="44" moved="1"/>
<Activate Id="45" moved="1"/>
<Activate Id="46" moved="1"/>
<Activate Id="47" moved="1"/>
<Activate Id="48" moved="1"/>
<Activate Id="49" moved="1"/>
<Activate Id="116" moved="1"/>
<Activate Id="117" moved="1"/>
<Activate Id="142" moved="1"/>
<Activate Id="137" moved="1"/>
<Activate Id="170" moved="0"/>
<Activate Id="172" moved="0"/>
<Activate Id="169" moved="1"/>
<Activate Id="171" moved="1"/>
<Activate Id="182" moved="0"/>
<Activate Id="185" moved="0"/>
<Activate Id="187" moved="0"/>
<Activate Id="189" moved="0"/>
<Activate Id="191" moved="1"/>
<Activate Id="193" moved="1"/>
<Activate Id="195" moved="1"/>
<Activate Id="197" moved="1"/>
</Step>
<Step>
<Activate Id="190" moved="0"/>
<Activate Id="192" moved="0"/>
<Activate Id="194" moved="0"/>
<Activate Id="196" moved="0"/>
<Activate Id="183" moved="1"/>
<Activate Id="184" moved="1"/>
<Activate Id="186" moved="1"/>
<Activate Id="188" moved="1"/>
</Step>
<Step>
<Activate Id="70" moved="1"/>
<Activate Id="69" moved="1"/>
<Activate Id="68" moved="1"/>
<Activate Id="66" moved="1"/>
<Activate Id="67" moved="1"/>
<Activate Id="65" moved="1"/>
</Step>
<Step>
<Activate Id="87" moved="1"/>
<Activate Id="88" moved="1"/>
</Step>
</Staging>
</Pod>
</Part>
<Part partType="fueltank-3" id="14" x="0.000000" y="1.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-3" id="16" x="-3.000000" y="-3.500000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-2" id="22" x="0.000000" y="-6.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="battery-0" id="30" x="-1.000000" y="-7.750000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="32" x="-1.000000" y="-8.250000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="31" x="1.000000" y="-7.750000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="33" x="1.000000" y="-8.250000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="dock-1" id="51" x="0.000000" y="-5.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-3" id="24" x="-3.000000" y="-11.500000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="solar-1" id="65" x="-4.250000" y="-14.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="67" x="-4.250000" y="-12.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="69" x="-4.250000" y="-9.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0" extension="0.000000"/>
<Part partType="battery-0" id="83" x="-1.750000" y="-10.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="84" x="-1.250000" y="-10.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="85" x="-0.750000" y="-10.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="86" x="-0.250000" y="-10.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="ion-0" id="46" x="-1.000000" y="-11.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="48" x="-1.000000" y="-12.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="detacher-1" id="87" x="-3.000000" y="-15.750000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-3" id="89" x="-4.000000" y="-17.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-2" id="92" x="-1.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="121" x="-1.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="94" x="-3.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="120" x="-3.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="95" x="-5.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="119" x="-5.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="96" x="-7.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="118" x="-7.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="53" x="0.000000" y="-2.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="detacher-1" id="52" x="0.000000" y="-3.750000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="50" x="0.000000" y="-4.500000" angle="1.570796" angleV="0.000000" editorAngle="1" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-4" id="57" x="-1.500000" y="-4.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="750.000000"/>
</Part>
<Part partType="fueltank-3" id="108" x="-8.000000" y="-3.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-3" id="110" x="-16.000000" y="-3.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="engine-2" id="112" x="-13.000000" y="-5.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="port-1" id="167" x="-13.000000" y="-7.500000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="engine-2" id="113" x="-19.000000" y="-5.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-1" id="146" x="-21.000000" y="-3.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="1500.000000"/>
</Part>
<Part partType="port-1" id="149" x="-22.500000" y="-3.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="159" x="-21.000000" y="-4.500000" angle="1.570796" angleV="0.000000" editorAngle="1" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="detacher-1" id="190" x="-15.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="191" x="-15.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="detacher-1" id="194" x="-17.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="195" x="-17.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="engine-2" id="116" x="-7.000000" y="-5.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="detacher-1" id="183" x="-9.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="182" x="-9.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="detacher-1" id="186" x="-11.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="187" x="-11.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="port-1" id="150" x="-4.500000" y="0.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="rcs-1" id="155" x="-4.250000" y="-5.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="rcs-1" id="156" x="-4.250000" y="-7.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="fueltank-3" id="17" x="3.000000" y="-3.500000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-4" id="58" x="1.500000" y="-4.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="750.000000"/>
</Part>
<Part partType="port-1" id="151" x="4.500000" y="0.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="rcs-1" id="158" x="4.250000" y="-7.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="rcs-1" id="157" x="4.250000" y="-5.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-3" id="109" x="8.000000" y="-3.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-3" id="111" x="16.000000" y="-3.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="engine-2" id="114" x="13.000000" y="-5.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="port-1" id="168" x="13.000000" y="-7.500000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="engine-2" id="115" x="19.000000" y="-5.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-1" id="145" x="21.000000" y="-3.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="1500.000000"/>
</Part>
<Part partType="port-1" id="152" x="22.500000" y="-3.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="port-1" id="160" x="21.000000" y="-4.500000" angle="1.570796" angleV="0.000000" editorAngle="1" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="detacher-1" id="192" x="15.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="193" x="15.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="detacher-1" id="196" x="17.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="197" x="17.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="engine-2" id="117" x="7.000000" y="-5.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="detacher-1" id="184" x="9.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="185" x="9.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="detacher-1" id="188" x="11.000000" y="-4.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-4" id="189" x="11.000000" y="-11.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="9000.000000"/>
</Part>
<Part partType="fueltank-3" id="25" x="3.000000" y="-11.500000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="solar-1" id="66" x="4.250000" y="-14.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="70" x="4.250000" y="-9.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0" extension="0.000000"/>
<Part partType="battery-0" id="79" x="1.750000" y="-10.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="80" x="1.250000" y="-10.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="ion-0" id="47" x="1.000000" y="-11.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="49" x="1.000000" y="-12.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="battery-0" id="81" x="0.750000" y="-10.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="82" x="0.250000" y="-10.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="detacher-1" id="88" x="3.000000" y="-15.750000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-3" id="90" x="4.000000" y="-17.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-2" id="93" x="1.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="123" x="1.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="97" x="3.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="124" x="3.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="98" x="5.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="125" x="5.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="99" x="7.000000" y="-20.000000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="engine-2" id="126" x="7.000000" y="-23.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="28" x="0.000000" y="-14.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="port-1" id="154" x="0.000000" y="-15.500000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="solar-1" id="68" x="4.250000" y="-12.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0" extension="0.000000"/>
<Part partType="fueltank-3" id="18" x="-3.000000" y="6.500000" angle="3.141593" angleV="0.000000" editorAngle="2">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-3" id="26" x="-3.000000" y="14.500000" angle="3.141593" angleV="0.000000" editorAngle="2">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="solar-1" id="59" x="-4.250000" y="17.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="61" x="-4.250000" y="15.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="63" x="-4.250000" y="12.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0" extension="0.000000"/>
<Part partType="battery-0" id="75" x="-1.750000" y="13.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="76" x="-1.250000" y="13.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="77" x="-0.750000" y="13.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="78" x="-0.250000" y="13.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="250.000000"/>
</Part>
<Part partType="fueltank-4" id="174" x="-1.500000" y="15.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="750.000000"/>
</Part>
<Part partType="fueltank-4" id="177" x="-0.500000" y="15.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="750.000000"/>
</Part>
<Part partType="fueltank-2" id="29" x="0.000000" y="17.000000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="battery-0" id="180" x="0.000000" y="18.250000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="dock-1" id="153" x="0.000000" y="18.750000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-4" id="55" x="-1.500000" y="3.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="750.000000"/>
</Part>
<Part partType="rcs-1" id="127" x="-4.250000" y="10.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="rcs-1" id="129" x="-4.250000" y="8.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="fueltank-3" id="138" x="-8.000000" y="6.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-3" id="139" x="-16.000000" y="6.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="engine-2" id="140" x="-13.000000" y="4.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="engine-2" id="141" x="-19.000000" y="4.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-1" id="147" x="-21.000000" y="6.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="1500.000000"/>
</Part>
<Part partType="port-1" id="148" x="-22.500000" y="6.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="162" x="-21.000000" y="5.000000" angle="1.570796" angleV="0.000000" editorAngle="1" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="163" x="-21.000000" y="8.000000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="164" x="-13.000000" y="8.000000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-2" id="142" x="-7.000000" y="4.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="rcs-1" id="131" x="-4.250000" y="3.750000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="1" flippedY="0"/>
<Part partType="fueltank-3" id="19" x="3.000000" y="6.500000" angle="3.141593" angleV="0.000000" editorAngle="2">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-2" id="20" x="0.000000" y="9.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="battery-0" id="36" x="-1.000000" y="10.750000" angle="3.141593" angleV="0.000000" editorAngle="2">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="38" x="-1.000000" y="11.250000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="37" x="1.000000" y="10.750000" angle="3.141593" angleV="0.000000" editorAngle="2">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="39" x="1.000000" y="11.250000" angle="0.000000" angleV="0.000000" editorAngle="0">
<Tank fuel="250.000000"/>
</Part>
<Part partType="ion-0" id="169" x="-1.000000" y="8.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="170" x="-1.000000" y="7.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="171" x="1.000000" y="8.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="172" x="1.000000" y="7.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-2" id="54" x="0.000000" y="5.500000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="3000.000000"/>
</Part>
<Part partType="fueltank-5" id="181" x="-0.250000" y="4.250000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="275.000000"/>
</Part>
<Part partType="fueltank-4" id="56" x="1.500000" y="3.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="750.000000"/>
</Part>
<Part partType="rcs-1" id="128" x="4.250000" y="10.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="rcs-1" id="130" x="4.250000" y="8.250000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-3" id="133" x="8.000000" y="6.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="fueltank-3" id="134" x="16.000000" y="6.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="engine-2" id="135" x="13.000000" y="4.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="engine-2" id="136" x="19.000000" y="4.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="fueltank-1" id="15" x="21.000000" y="6.500000" angle="1.570796" angleV="0.000000" editorAngle="1">
<Tank fuel="1500.000000"/>
</Part>
<Part partType="port-1" id="144" x="22.500000" y="6.500000" angle="3.141593" angleV="0.000000" editorAngle="2" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="161" x="21.000000" y="5.000000" angle="1.570796" angleV="0.000000" editorAngle="1" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="166" x="21.000000" y="8.000000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="port-1" id="165" x="13.000000" y="8.000000" angle="4.712389" angleV="0.000000" editorAngle="3" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="engine-2" id="137" x="7.000000" y="4.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="rcs-1" id="132" x="4.250000" y="3.750000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0"/>
<Part partType="fueltank-3" id="27" x="3.000000" y="14.500000" angle="3.141593" angleV="0.000000" editorAngle="2">
<Tank fuel="6000.000000"/>
</Part>
<Part partType="solar-1" id="60" x="4.250000" y="17.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="62" x="4.250000" y="15.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0" extension="0.000000"/>
<Part partType="solar-1" id="64" x="4.250000" y="12.500000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0" extension="0.000000"/>
<Part partType="battery-0" id="71" x="1.750000" y="13.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="72" x="1.250000" y="13.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="73" x="0.750000" y="13.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="battery-0" id="74" x="0.250000" y="13.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="250.000000"/>
</Part>
<Part partType="fueltank-4" id="173" x="1.500000" y="15.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="750.000000"/>
</Part>
<Part partType="fueltank-4" id="176" x="0.500000" y="15.000000" angle="4.712389" angleV="0.000000" editorAngle="3">
<Tank fuel="750.000000"/>
</Part>
<Part partType="ion-0" id="42" x="-1.000000" y="0.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="44" x="-1.000000" y="-1.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="43" x="1.000000" y="0.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
<Part partType="ion-0" id="45" x="1.000000" y="-1.000000" angle="0.000000" angleV="0.000000" editorAngle="0" activated="0" exploded="0" flippedX="0" flippedY="0">
<Engine fuel="0.000000"/>
</Part>
</Parts>
<Connections>
<Connection parentAttachPoint="2" childAttachPoint="3" parentPart="1" childPart="14"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="14" childPart="16"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="16" childPart="22"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="22" childPart="30"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="30" childPart="32"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="22" childPart="31"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="31" childPart="33"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="22" childPart="51"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="16" childPart="24"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="24" childPart="65"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="24" childPart="67"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="24" childPart="69"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="24" childPart="83"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="83" childPart="84"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="84" childPart="85"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="85" childPart="86"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="84" childPart="46"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="46" childPart="48"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="24" childPart="87"/>
<Connection parentAttachPoint="2" childAttachPoint="3" parentPart="87" childPart="89"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="89" childPart="92"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="92" childPart="121"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="89" childPart="94"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="94" childPart="120"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="89" childPart="95"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="95" childPart="119"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="89" childPart="96"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="96" childPart="118"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="16" childPart="53"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="53" childPart="52"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="52" childPart="50"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="16" childPart="57"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="16" childPart="108"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="108" childPart="110"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="110" childPart="112"/>
<Connection parentAttachPoint="2" childAttachPoint="2" parentPart="112" childPart="167"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="110" childPart="113"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="110" childPart="146"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="146" childPart="149"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="146" childPart="159"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="110" childPart="190"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="190" childPart="191"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="110" childPart="194"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="194" childPart="195"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="108" childPart="116"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="108" childPart="183"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="183" childPart="182"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="108" childPart="186"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="186" childPart="187"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="16" childPart="150"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="16" childPart="155"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="16" childPart="156"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="14" childPart="17"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="17" childPart="58"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="17" childPart="151"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="17" childPart="158"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="17" childPart="157"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="17" childPart="109"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="109" childPart="111"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="111" childPart="114"/>
<Connection parentAttachPoint="2" childAttachPoint="2" parentPart="114" childPart="168"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="111" childPart="115"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="111" childPart="145"/>
<Connection parentAttachPoint="2" childAttachPoint="2" parentPart="145" childPart="152"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="145" childPart="160"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="111" childPart="192"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="192" childPart="193"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="111" childPart="196"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="196" childPart="197"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="109" childPart="117"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="109" childPart="184"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="184" childPart="185"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="109" childPart="188"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="188" childPart="189"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="17" childPart="25"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="25" childPart="66"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="25" childPart="70"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="25" childPart="79"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="79" childPart="80"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="80" childPart="47"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="47" childPart="49"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="80" childPart="81"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="81" childPart="82"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="25" childPart="88"/>
<Connection parentAttachPoint="2" childAttachPoint="4" parentPart="88" childPart="90"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="90" childPart="93"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="93" childPart="123"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="90" childPart="97"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="97" childPart="124"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="90" childPart="98"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="98" childPart="125"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="90" childPart="99"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="99" childPart="126"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="25" childPart="28"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="28" childPart="154"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="25" childPart="68"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="14" childPart="18"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="18" childPart="26"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="26" childPart="59"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="26" childPart="61"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="26" childPart="63"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="26" childPart="75"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="75" childPart="76"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="76" childPart="77"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="77" childPart="78"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="26" childPart="174"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="174" childPart="177"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="26" childPart="29"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="29" childPart="180"/>
<Connection parentAttachPoint="1" childAttachPoint="1" parentPart="180" childPart="153"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="18" childPart="55"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="18" childPart="127"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="18" childPart="129"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="18" childPart="138"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="138" childPart="139"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="139" childPart="140"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="139" childPart="141"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="139" childPart="147"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="147" childPart="148"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="147" childPart="162"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="147" childPart="163"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="139" childPart="164"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="138" childPart="142"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="18" childPart="131"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="14" childPart="19"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="19" childPart="20"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="20" childPart="36"/>
<Connection parentAttachPoint="2" childAttachPoint="2" parentPart="36" childPart="38"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="20" childPart="37"/>
<Connection parentAttachPoint="2" childAttachPoint="2" parentPart="37" childPart="39"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="20" childPart="169"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="169" childPart="170"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="20" childPart="171"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="171" childPart="172"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="19" childPart="54"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="54" childPart="181"/>
<Connection parentAttachPoint="4" childAttachPoint="2" parentPart="19" childPart="56"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="19" childPart="128"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="19" childPart="130"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="19" childPart="133"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="133" childPart="134"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="134" childPart="135"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="134" childPart="136"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="134" childPart="15"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="15" childPart="144"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="15" childPart="161"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="15" childPart="166"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="134" childPart="165"/>
<Connection parentAttachPoint="3" childAttachPoint="1" parentPart="133" childPart="137"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="19" childPart="132"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="19" childPart="27"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="27" childPart="60"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="27" childPart="62"/>
<Connection parentAttachPoint="3" childAttachPoint="2" parentPart="27" childPart="64"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="27" childPart="71"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="71" childPart="72"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="72" childPart="73"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="73" childPart="74"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="27" childPart="173"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="173" childPart="176"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="14" childPart="42"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="42" childPart="44"/>
<Connection parentAttachPoint="4" childAttachPoint="1" parentPart="14" childPart="43"/>
<Connection parentAttachPoint="2" childAttachPoint="1" parentPart="43" childPart="45"/>
</Connections>
</Ship>

View File

@ -8,8 +8,8 @@ fonts_folder = "libs/fonts"
[window] [window]
style = "None" style = "None"
width = 1219 width = 937
height = 835 height = 602
visible = true visible = true
gui_scale = 1 gui_scale = 1
caption = "Difficult Rocket {version}" caption = "Difficult Rocket {version}"