sunshine_init.py
# Source Generated with Decompyle++
# File: sunshine_init.pyc (Python 3.13)
import game_init
editor_plugins = ''
editor_arg = ''
EDITOR_CLIENT = None
class GlobalConst(object):
COMMON_CONNECT_RESET_ENABLE = False
UNIT_CONNECT_RESET_ENABLE = False
MONTAGE_CONNECT_RESET_ENABLE = False
def get_sunshine_client_instance():
global EDITOR_CLIENT
if not EDITOR_CLIENT:
SunshineClient = SunshineClient
import SunshineSDK2.SunshineClient
EDITOR_CLIENT = SunshineClient()
return EDITOR_CLIENT
def init_dcs_env():
game_init.init_dcs_env()
for _ in game_init.iter_init_dcs_env():
return None
def run_register_decorator():
for _ in game_init.iter_register_decorator():
return None
def init_ui_manager():
for _ in game_init.iter_init_ui_manager():
return None
def init_dcs():
for _ in game_init.iter_init_dcs():
return None
def init_data():
for _ in game_init.iter_init_data():
return None
def init_sdk():
for _ in game_init.iter_init_sdk():
return None
def sirius_init_input():
InputHelper = InputHelper
import helper
import game
game.on_mouse_msg = InputHelper.on_mouse_msg
game.on_mouse_wheel = InputHelper.on_mouse_wheel
game.add_key_handler(None, None, InputHelper.on_key_event)
def unit_init_input():
UnitEditorInputHelper = UnitEditorInputHelper
import helper.UnitEditorInputHelper
import game
game.on_mouse_msg = UnitEditorInputHelper.get_instance().on_mouse_msg
game.on_mouse_wheel = UnitEditorInputHelper.get_instance().on_mouse_wheel
game.add_key_handler(None, None, UnitEditorInputHelper.get_instance().on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def battle_field_init_input(editor):
EditorInputHelper = EditorInputHelper
import helper.EditorInputHelper
import game
editor.EditorInputHelper = EditorInputHelper()
editor.EditorInputHelper.init_editor_inputhelper(sunshine_client = editor.BattleFieldEditorPlugin, is_drag_mode = True)
game.on_mouse_msg = editor.EditorInputHelper.on_mouse_msg
game.on_mouse_wheel = editor.EditorInputHelper.on_mouse_wheel
game.add_key_handler(None, None, editor.EditorInputHelper.on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def dialog_editor_init_input(editor):
EditorInputHelper = EditorInputHelper
import helper.EditorInputHelper
import game
editor.EditorInputHelper = EditorInputHelper()
editor.EditorInputHelper.init_editor_inputhelper(sunshine_client = editor.DialogPlugin, is_drag_mode = True)
game.on_mouse_msg = editor.EditorInputHelper.on_mouse_msg
game.on_mouse_wheel = editor.EditorInputHelper.on_mouse_wheel
game.add_key_handler(None, None, editor.EditorInputHelper.on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def behavior_field_init_input(editor):
BehaviorEditorInputHelper = BehaviorEditorInputHelper
import helper.BehaviorEditorInputHelper
import game
editor.BehaviorEditorInputHelper = BehaviorEditorInputHelper()
editor.BehaviorEditorInputHelper.init_editor_input_helper(sunshine_client = editor.BehaviorFieldEditorPlugin, is_drag_mode = True)
game.on_mouse_msg = editor.BehaviorEditorInputHelper.on_mouse_msg
game.on_mouse_wheel = editor.BehaviorEditorInputHelper.on_mouse_wheel
game.remove_key_handler(None, None)
game.add_key_handler(None, None, editor.BehaviorEditorInputHelper.on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def cinematic_init_input():
# MAKE_CELL(6)
CinematicInputHelper = CinematicInputHelper
import dcs_engine.montage.helper.CinematicInputHelper
DataMgr = DataMgr
import game_common.helper.DataMgr
import game
game.on_mouse_msg = CinematicInputHelper.on_mouse_msg
game.on_mouse_wheel = CinematicInputHelper.on_mouse_wheel
game.add_key_handler(None, None, CinematicInputHelper.on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
RainbowPlugin = RainbowPlugin
import sunshine2.RainbowPluginClient
def get_prefab_data(self = None):
# COPY_FREE_VARS(1)
import game3d
import os
FileUtils = FileUtils
import helper
deepcopy = deepcopy
import copy
client_path = game3d.get_root_dir()
project_path = client_path[:client_path.find('client')]
editor_file_path = os.path.join(project_path, 'editor_data/game_common/cinematic/cinematic_data.py').replace('\\', '/')
if os.path.exists(editor_file_path):
data = FileUtils.load_py_data(editor_file_path)
else:
data = DataMgr.cinematic_data('cinematic_data')
prefabData = []
for _, value in data.items():
prefabData.append(deepcopy(value))
return prefabData
RainbowPlugin.GetPrefabData = get_prefab_data
def montage_init_input():
MontageMgr = EditorMontageMgr
import sunshine2.Montage.Extend.gameplay_extend
import game
game.on_mouse_msg = MontageMgr.get_instance().on_mouse_msg
game.on_mouse_wheel = MontageMgr.get_instance().on_mouse_wheel
game.add_key_handler(None, None, MontageMgr.get_instance().on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def create_scene(scene_path):
gw_dict = dict()
gw_dict['scene_file'] = scene_path
GameWorldMgr = GameWorldMgr
import game_world.GameWorldMgr
import client_const
gw_dict['gw_type'] = client_const.GAME_WORLD_EDITOR
GameWorldMgr.change_game_world(gw_dict)
def sirius_init_game_world():
import client_const
import client_utility
DataMgr = DataMgr
import game_common.helper.DataMgr
last_scene_name = client_utility.get_login_info_helper().get('scene_name')
if client_const.IS_DEVELOP_VERSION:
client_const.CurSceneName = last_scene_name
client_const.InitSceneName = client_const.CurSceneName
create_scene(DataMgr.common_data('scene_data').get(client_const.CurSceneName)['path'])
def unit_init_game_world():
import client_const
DataMgr = DataMgr
import game_common.helper.DataMgr
create_scene(DataMgr.common_data('scene_data').get(client_const.InitSceneName)['path'])
EngineCmd = EngineCmd
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
camera_const = camera_const
import dcs_extend.const
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
VisualProxyMgr.camera_command(CameraCmd.SWITCH_V_CAM, {
'cam_type': camera_const.CamSt.UNIT_EDITOR })
VisualProxyMgr.engine_command(EngineCmd.CLOSE_EFFECT, {
'effect_name': 'volumetric_fog' })
def battle_field_init_game_world():
import client_const
import client_utility
const = const
import game_common
DataMgr = DataMgr
import game_common.helper.DataMgr
last_scene_name = client_utility.get_login_info_helper().get('scene_name')
if client_const.IS_DEVELOP_VERSION:
client_const.CurSceneName = last_scene_name
client_const.InitSceneName = client_const.CurSceneName
create_scene(DataMgr.common_data('scene_data').get(client_const.InitSceneName)['path'])
def cinematic_init_game_world():
import client_const
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
camera_const = camera_const
import dcs_extend.const
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
VisualProxyMgr.camera_command(CameraCmd.SWITCH_V_CAM, {
'cam_type': camera_const.CamSt.FREE_VIEW })
mont_utility = mont_utility
import dcs_engine.montage
mont_utility.editor_init_game_world(client_const.InitSceneName)
def buffEditor_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
BuffPluginClient = BuffPluginClient
BuffPluginServer = BuffPluginServer
import sunshine
buff_client = BuffPluginClient.BuffPluginClient()
editor_client.RegisterPlugin(buff_client)
buff_server = BuffPluginServer.BuffPluginServer()
editor_client.RegisterPlugin(buff_server)
def passive_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
PassivePluginClient = PassivePluginClient
PassivePluginServer = PassivePluginServer
import sunshine
passive_client = PassivePluginClient.PassivePluginClient()
editor_client.RegisterPlugin(passive_client)
passive_server = PassivePluginServer.PassivePluginServer()
editor_client.RegisterPlugin(passive_server)
def sirius_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
ExamplePluginClient = ExamplePluginClient
import sunshine
editor_client = get_sunshine_client_instance()
examplePlugin = ExamplePluginClient.ExamplePluginClient()
editor_client.RegisterPlugin(examplePlugin)
AnimNodePluginClient = AnimNodePluginClient
import sunshine
anim_node_client = AnimNodePluginClient.AnimNodePluginClient()
editor_client.RegisterPlugin(anim_node_client)
SunshineGameLoop.TICKABLE_PLUGINS.append(anim_node_client)
SiriusPluginClient = SiriusPluginClient
SiriusPluginServer = SiriusPluginServer
import sunshine
sirius_client = SiriusPluginClient.SiriusPluginClient()
editor_client.RegisterPlugin(sirius_client)
sirius_server = SiriusPluginServer.SiriusPluginServer()
editor_client.RegisterPlugin(sirius_server)
def bossEditor_plugin():
editor_client = get_sunshine_client_instance()
BossPluginClient = BossPluginClient
BossPluginServer = BossPluginServer
import sunshine
buff_client = BossPluginClient.BossPluginClient()
editor_client.RegisterPlugin(buff_client)
buff_server = BossPluginServer.BossPluginServer()
editor_client.RegisterPlugin(buff_server)
def taskWind_plugin():
editor_client = get_sunshine_client_instance()
TaskPluginClient = TaskPluginClient
import sunshine.TaskEditor
task_client = TaskPluginClient.TaskPluginClient()
editor_client.RegisterPlugin(task_client)
def dialog_plugin():
editor_client = get_sunshine_client_instance()
DialogPluginClient = DialogPluginClient
import sunshine.DialogEditor
dialog_client = DialogPluginClient.DialogPluginClient()
editor_client.RegisterPlugin(dialog_client)
def watcher_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
WatcherClient = WatcherClient
import sunshine
watcherPlugin = WatcherClient.WatcherClient()
editor_client.RegisterPlugin(watcherPlugin)
def manifest_plugin():
editor_client = get_sunshine_client_instance()
ManifestPluginClient = ManifestPluginClient
import sunshine
manifest_plugin_client = ManifestPluginClient.ManifestPluginClient()
editor_client.RegisterPlugin(manifest_plugin_client)
def unitEditor_plugin():
pass
def camEditor_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
CamEditorPluginClient = CamEditorPluginClient
CamEditorPluginServer = CamEditorPluginServer
import sunshine
cam_client = CamEditorPluginClient.CamEditorPluginClient()
editor_client.RegisterPlugin(cam_client)
cam_server = CamEditorPluginServer.CamEditorPluginServer()
editor_client.RegisterPlugin(cam_server)
def cinematic_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
CinematicPluginClient = CinematicPluginClient
CinematicPluginServer = CinematicPluginServer
import sunshine
cinematic_client = CinematicPluginClient.CinematicPluginClient()
editor_client.RegisterPlugin(cinematic_client)
cinematic_server = CinematicPluginServer.CinematicPluginServer()
editor_client.RegisterPlugin(cinematic_server)
SunshineGameLoop.TICKABLE_PLUGINS.append(cinematic_client)
def BattleFieldEditor_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
BattleFieldEditorPluginServer = BattleFieldEditorPluginServer
import sunshine.BattleFieldEditor
BattleFieldEditorPluginClient = BattleFieldEditorPluginClient
import sunshine.BattleFieldEditor
bf_client = BattleFieldEditorPluginClient.BattleFieldEditorPluginClient()
editor_client.RegisterPlugin(bf_client)
bf_server = BattleFieldEditorPluginServer.BattleFieldEditorPluginServer()
editor_client.RegisterPlugin(bf_server)
BattleFieldEditor = BattleFieldEditor
import sunshine
BattleFieldEditor.BattleFieldEditorPlugin = bf_client
BattleFieldEntityPool = BattleFieldEntityPool
import sunshine.BattleFieldEditor.BattleFieldEntityPool
EditorEntityStateMgr = EditorEntityStateMgr
import helper.EditorEntityStateMgr
BattleFieldEditor.EntityPool = BattleFieldEntityPool()
BattleFieldEditor.EntityStateMgr = EditorEntityStateMgr()
SunshineGameLoop.TICKABLE_PLUGINS.append(bf_client)
def AncientOnesCurveEditor_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
AncientOnesCurveEditor = AncientOnesCurveEditor
import sunshine
ancientOnesPlugin = AncientOnesCurveEditor.AncientOnesCurveEditorClient()
editor_client.RegisterPlugin(ancientOnesPlugin)
def CurveEditor_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
CurveEditor = CurveEditor
import sunshine
curvePlugin = CurveEditor.CurveEditorClient()
editor_client.RegisterPlugin(curvePlugin)
def DevSupport_plugin():
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
editor_client = get_sunshine_client_instance()
DevSupportPluginClient = DevSupportPluginClient
import sunshine
dev_client = DevSupportPluginClient.DevSupportPluginClient()
editor_client.RegisterPlugin(dev_client)
def open_debug_type():
Env = Env
import dcs_core.Env
switch_const = switch_const
import dcs_extend.const
Env.switch_debug_type(switch_const.SwitchType.EDITOR, True)
def unityEditor_init_input():
UnitEditorInputHelper = UnitEditorInputHelper
import helper.UnitEditorInputHelper
import game
game.on_mouse_msg = UnitEditorInputHelper.get_instance().on_mouse_msg
game.on_mouse_wheel = UnitEditorInputHelper.get_instance().on_mouse_wheel
game.add_key_handler(None, None, UnitEditorInputHelper.get_instance().on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def battlefieldEditor_init_input():
EditorInputHelper = EditorInputHelper
import helper
import game
game.on_mouse_msg = EditorInputHelper.on_mouse_msg
game.on_mouse_wheel = EditorInputHelper.on_mouse_wheel
game.add_key_handler(None, None, EditorInputHelper.on_key_event)
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
def init_plugin():
for plugin in editor_plugins:
if plugin in sunshine_plugin_init:
for fun in sunshine_plugin_init[plugin]:
fun()
open_debug_type()
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
import render
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
return None
def disconnect_sunshine():
EDITOR_CLIENT.Close()
return None
def _close_sunshine_callback():
global EDITOR_CLIENT
import render
GameLoop = GameLoop
import dcs_engine.GameLoop
render.logic = GameLoop.tick
render.post_logic = GameLoop.post_tick
Env = Env
import dcs_core.Env
switch_const = switch_const
import dcs_extend.const
Env.switch_debug_type(switch_const.SwitchType.EDITOR, False)
import game
game.remove_key_handler(None, None)
game_init.init_input()
uc = uc
import debug.debug_tool
uc.remove()
EDITOR_CLIENT = None
return None
def register_sunshine_rainbow_plugins(editor_client):
RainbowPlugin = RainbowPlugin
import sunshine
rainbowPlugin = RainbowPlugin.RainbowPlugin()
editor_client.RegisterPlugin(rainbowPlugin)
def add_tmp_lib_2_path():
import sys
idx = -1
header_path = ''
for path in sys.path:
tmp_idx = path.find('script', idx + 1)
if tmp_idx < -1:
pass
else:
idx = tmp_idx
if idx < -1:
header_path = path[:idx]
if idx < -1:
sys.path.append(header_path + 'res\\tmp_lib')
return None
return None
def init_quality_xml():
import game_init
game_init.init_quality_xml()
def init(arg):
global editor_arg, editor_plugins
editor_arg = arg
editor_plugins = arg.split('-editor=')[-1].split(';')[0].split('+')
game_init.init_after_patch()
game_init.init_language()
init_quality_xml()
if 'cmt' in editor_plugins:
game_init.set_done_cb(init_sunshine2)
game_init.init(arg, 0)
import game3d
(width, height, depth, window_type, multisample) = game3d.get_window_size()
if window_type < game3d.WINDOW_TYPE_FULLSCREEN:
game3d.set_window_size(width, height, depth, game3d.WINDOW_TYPE_NORMAL, multisample, 1)
return None
if None in editor_plugins:
workbench_init(arg)
return None
if None and 'Montage' in editor_plugins[0]:
if editor_plugins[0] < 'Montage':
montage_pure_init(arg)
else:
montage_init(arg)
import game3d
(width, height, depth, window_type, multisample) = game3d.get_window_size()
if window_type < game3d.WINDOW_TYPE_FULLSCREEN:
game3d.set_window_size(width, height, depth, game3d.WINDOW_TYPE_NORMAL, multisample, 1)
return None
if None in editor_plugins:
vehicle_init()
return None
if None in editor_plugins:
material_mgr_init(arg)
return None
None.set_screen_resolution()
init_dcs_env()
run_register_decorator()
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
EngineProxy = EngineProxy
import dcs_engine.proxy.EngineProxy
VisualProxyMgr.init(EngineProxy)
def start():
if 'cmt' in editor_plugins:
return None
if None in editor_plugins:
workbench_start()
return None
if None and 'Montage' in editor_plugins[0]:
if editor_plugins[0] < 'Montage':
montage_pure_start()
return None
if None in editor_plugins:
vehicle_start()
return None
if None in editor_plugins:
material_mgr_start()
return None
None()
game_init.init_audio()
game_init.init_formula_tree()
for plugin in editor_plugins:
if plugin in sunshine_plugin_start:
for func in sunshine_plugin_start[plugin]:
func()
game_init.start_log_console()
import render
render.set_texture_skip_level('', 1)
render.set_texture_skip_level('ui.*', 0)
render.set_texture_skip_level('effect.*', 0)
render.set_texture_skip_level('char.*', 0)
render.set_texture_skip_level('env.*', 1)
render.set_texture_skip_level('common.*', 1)
render.set_texture_skip_level('model.*', 1)
render.set_texture_skip_level('scene.*', 1)
render.set_texture_skip_level('shader.*', 1)
game_init._create_fonts()
set_global_callback = set_global_callback
import mbs.common.mobile_common
EngineCallback = EngineCallback
import mbs.client.engine_callback
set_global_callback(EngineCallback())
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
register_poly_classes_by_import = register_poly_classes_by_import
import mbs.common.poly_property_method
register_poly_classes_by_import()
ClientEntityScanner = ClientEntityScanner
import helper
for _ in ClientEntityScanner.register_entities():
nxgui = nxgui
import neox
import client_utility
if hasattr(nxgui.UICSVDataMgr.instance(), 'set_convert_font_path_cb'):
nxgui.UICSVDataMgr.instance().set_convert_font_path_cb(client_utility.convert_font_path)
nxgui.UICSVDataMgr.instance().font_file_path = 'ui/data/font_data.csv'
nxgui.UICSVDataMgr.instance().load_font_csv()
nxgui.UICSVDataMgr.instance().font_size_path = client_utility.get_font_size_data_csv_path()
nxgui.UICSVDataMgr.instance().load_font_size_csv()
if 'Cinematic' not in editor_plugins:
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
audio_const = audio_const
import dcs_extend.const
EngineCmd = EngineCmd
import dcs_extend.const.visual_const
sound_key = audio_const.WORLD_BGM
VisualProxyMgr.engine_command(EngineCmd.PLAY_SOUND, {
'wwise_obj_id': audio_const.BASE_MUSIC_WWISE_OBJ_ID,
'event_name': sound_key,
'params': { } })
env_sound_key = audio_const.ENV_2_SOUND[audio_const.ENV_DEFAULT][0]
VisualProxyMgr.engine_command(EngineCmd.PLAY_SOUND, {
'wwise_obj_id': audio_const.ENV_MUSIC_WWISE_OBJ_ID,
'event_name': env_sound_key,
'params': { } })
import collision
col_const = col_const
import dcs_extend.const
collision.set_default_group_and_filter(col_const.BLOCK_NORMAL, col_const.ALL)
game_init._start_debug_tool()
init_sunshine2()
def panel_loading_bar():
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
UICmd = UICmd
import dcs_extend.const.visual_const
UIUtils = UIUtils
import ui.uihelper
UIUtils.show_ui('PanelLogin')
UIUtils.show_ui('PanelDebugBtn')
sunshine_plugin_init = {
'Sirius': [
sirius_plugin],
'BossEditor': [
bossEditor_plugin],
'Manifest': [
manifest_plugin],
'Watcher': [
watcher_plugin],
'BuffEditor': [
buffEditor_plugin],
'PassiveEditor': [
passive_plugin],
'UnitEditor': [
unitEditor_plugin],
'CamEditor': [
camEditor_plugin],
'BattleFieldEditor': [
BattleFieldEditor_plugin],
'Cinematic': [
cinematic_plugin],
'TaskWind': [
taskWind_plugin],
'DialogEditor': [
dialog_plugin],
'AncientOnesCurveEditor': [
AncientOnesCurveEditor_plugin],
'CurveEditor': [
CurveEditor_plugin] }
sunshine_plugin_start = {
'Sirius': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'BossEditor': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'Manifest': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'Watcher': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'BuffEditor': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'PassiveEditor': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'UnitEditor': [
unit_init_input,
unit_init_game_world],
'CamEditor': [
sirius_init_input,
sirius_init_game_world,
panel_loading_bar],
'BattleFieldEditor': [
sirius_init_input,
battle_field_init_game_world],
'Cinematic': [
cinematic_init_input,
cinematic_init_game_world],
'AncientOnesCurveEditor': [
unit_init_input,
unit_init_game_world],
'Montage': [
montage_init_input,
cinematic_init_game_world] }
def init_sunshine2(_ip, _port = (None, None)):
global EDITOR_CLIENT
if EDITOR_CLIENT:
if not EDITOR_CLIENT.connectReady:
return None
if None.COMMON_CONNECT_RESET_ENABLE:
disconnect_sunshine()
else:
return None
SunshinePatch = SunshinePatch
import sunshine2.Common
Env = Env
import editor_platform.core.env
init = init
import editor_platform.interface.init_game
if not Env.initialized:
init()
import render
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
SunshineClient = SunshineClient
import SunshineSDK2.SunshineClient
EDITOR_CLIENT = SunshineClient()
WorkbenchPluginClient = WorkbenchPluginClient
import sunshine2.Workbench.PluginClient
workbench = WorkbenchPluginClient()
EDITOR_CLIENT.RegisterPlugin(workbench)
EditorServerConnClient = EditorServerConnClient
import sunshine2
editor_server_client = EditorServerConnClient.EditorServerConnClient()
EDITOR_CLIENT.RegisterPlugin(editor_server_client)
AttributeWatcherPluginClient = AttributeWatcherPluginClient
import sunshine2
AttributeWacherPlugin = AttributeWatcherPluginClient.AttributeWatcherPluginClient()
EDITOR_CLIENT.RegisterPlugin(AttributeWacherPlugin)
SunshineGameLoop.TICKABLE_PLUGINS.append(AttributeWacherPlugin)
BehaviorEditorClient = BehaviorEditorClient
import sunshine2.BehaviorFieldEditor
BehaviorFieldEditor = BehaviorFieldEditor
import sunshine2
behaviorEditor = BehaviorEditorClient.BehaviorEditorClient()
BehaviorFieldEditor.BehaviorFieldEditorPlugin = behaviorEditor
EDITOR_CLIENT.RegisterPlugin(behaviorEditor)
SunshineGameLoop.TICKABLE_PLUGINS.append(behaviorEditor)
RecordPlayDebugerClient = RecordPlayDebugerClient
import sunshine2.RecordPlayDebuger.Plugin
RecordPlayDebuger = RecordPlayDebugerClient.RecordPlayDebugerClient()
EDITOR_CLIENT.RegisterPlugin(RecordPlayDebuger)
SunshineGameLoop.TICKABLE_PLUGINS.append(RecordPlayDebuger)
BuffEditorClient = BuffEditorClient
import sunshine2
buffEditor = BuffEditorClient.BuffEditorClient()
EDITOR_CLIENT.RegisterPlugin(buffEditor)
HospiceEditorClient = HospiceEditorClient
import sunshine2.HospiceEditor
hospiceEditor = HospiceEditorClient.HospiceEditorClient()
EDITOR_CLIENT.RegisterPlugin(hospiceEditor)
JoystickEditorClient = JoystickEditorClient
import sunshine2.JoystickEditor
JoystickEditor = JoystickEditorClient.JoystickEditorClient()
EDITOR_CLIENT.RegisterPlugin(JoystickEditor)
StalkerEditorClient = StalkerEditorClient
import sunshine2.StalkerEditor
stalkerEditor = StalkerEditorClient.StalkerEditorClient()
EDITOR_CLIENT.RegisterPlugin(stalkerEditor)
BulletEditorClient = BulletEditorClient
import sunshine2
bulletEditor = BulletEditorClient.BulletEditorClient()
EDITOR_CLIENT.RegisterPlugin(bulletEditor)
BeowulfEditorPluginClient = BeowulfEditorPluginClient
import sunshine2.BeowulfEditor
beowulf = BeowulfEditorPluginClient.BeowulfEditorPluginClient()
EDITOR_CLIENT.RegisterPlugin(beowulf)
BossPluginClient = BossPluginClient
import sunshine2
bossEditor = BossPluginClient.BossPluginClient()
EDITOR_CLIENT.RegisterPlugin(bossEditor)
DataCenterPluginClient = DataCenterPluginClient
import sunshine2.Common.DataCenter
dataCenterEditor = DataCenterPluginClient.DataCenterPluginClient()
EDITOR_CLIENT.RegisterPlugin(dataCenterEditor)
ArtResCompressPluginClient = ArtResCompressPluginClient
import sunshine2.ArtResCompressEditor
artResCompressEditor = ArtResCompressPluginClient.ArtResCompressPluginClient()
EDITOR_CLIENT.RegisterPlugin(artResCompressEditor)
NPCAppearancePluginEditor = NPCAppearancePluginEditor
import sunshine2.NPCAppearenceEditor
npcAppearanceEditor = NPCAppearancePluginEditor.NPCAppearancePluginEditor()
EDITOR_CLIENT.RegisterPlugin(npcAppearanceEditor)
SunshineGameLoop.TICKABLE_PLUGINS.append(npcAppearanceEditor)
LightningEditorPluginClient = LightningEditorPluginClient
import sunshine2
lightningEditor = LightningEditorPluginClient.LightningEditorPluginClient()
EDITOR_CLIENT.RegisterPlugin(lightningEditor)
SunshineGameLoop.TICKABLE_PLUGINS.append(lightningEditor)
AnimakerPluginClient = AnimakerPluginClient
import sunshine2.Animaker
animakerEditor = AnimakerPluginClient.AnimakerPluginClient()
EDITOR_CLIENT.RegisterPlugin(animakerEditor)
SunshineGameLoop.TICKABLE_PLUGINS.append(animakerEditor)
ActionDebugEditorPluginClient = ActionDebugEditorPluginClient
import sunshine2.ActionDebugEditor.ActionDebugEditorPluginClient
action_debug_editor = ActionDebugEditorPluginClient()
EDITOR_CLIENT.RegisterPlugin(action_debug_editor)
SunshineGameLoop.TICKABLE_PLUGINS.append(action_debug_editor)
TaskEditor = TaskEditor
import sunshine2
TaskPluginClient = TaskPluginClient
import sunshine2.TaskEditor.TaskPluginClient
task_editor = TaskPluginClient()
TaskEditor.TaskPlugin = task_editor
task_editor.init_entity_controller()
SunshineGameLoop.TICKABLE_PLUGINS.append(task_editor)
EDITOR_CLIENT.RegisterPlugin(task_editor)
UnitModelPluginClient = UnitModelPluginClient
import sunshine2.UnitModelEditor
unit_model_editor = UnitModelPluginClient.UnitModelPluginClient()
EDITOR_CLIENT.RegisterPlugin(unit_model_editor)
DialogPluginClient = DialogPluginClient
import sunshine2.DialogEditor.DialogPluginClient
DialogEntityPool = DialogEntityPool
import sunshine2.DialogEditor.DialogEntityPool
DialogEditor = DialogEditor
import sunshine2
EditorEntityStateMgr = EditorEntityStateMgr
import helper.EditorEntityStateMgr
dialog_editor = DialogPluginClient()
DialogEditor.DialogPlugin = dialog_editor
DialogEditor.EntityPool = DialogEntityPool()
DialogEditor.EntityStateMgr = EditorEntityStateMgr()
SunshineGameLoop.TICKABLE_PLUGINS.append(dialog_editor)
EDITOR_CLIENT.RegisterPlugin(dialog_editor)
BattleFieldEditorPluginClient = BattleFieldEditorPluginClient
import sunshine2.BattleFieldEditor
BattleFieldEditor = BattleFieldEditor
import sunshine2
BattleFieldEntityPool = BattleFieldEntityPool
import sunshine2.BattleFieldEditor.BattleFieldEntityPool
battlefieldEditor = BattleFieldEditorPluginClient.BattleFieldEditorPluginClient()
BattleFieldEditor.BattleFieldEditorPlugin = battlefieldEditor
BattleFieldEditor.EntityPool = BattleFieldEntityPool()
BattleFieldEditor.EntityStateMgr = EditorEntityStateMgr()
SunshineGameLoop.TICKABLE_PLUGINS.append(battlefieldEditor)
EDITOR_CLIENT.RegisterPlugin(battlefieldEditor)
BattlefieldPluginClient = BattlefieldPluginClient
import sunshine2.Battlefield
battlefield = BattlefieldPluginClient.BattlefieldPluginClient()
SunshineGameLoop.TICKABLE_PLUGINS.append(battlefield)
EDITOR_CLIENT.RegisterPlugin(battlefield)
UnitEditorPluginClient = UnitEditorPluginClient
import sunshine2.UnitEditor
UnitEntityPool = UnitEntityPool
import sunshine2.UnitEditor.UnitEntityPool
UnitStateMgr = UnitStateMgr
import sunshine2.UnitEditor.UnitStateMgr
UnitEditor = UnitEditor
import sunshine2
unitEditor_client = UnitEditorPluginClient.UnitEditorPluginClient()
UnitEditor.UnitEditorPlugin = unitEditor_client
UnitEditor.EntityPool = UnitEntityPool()
UnitEditor.PropertyEventMgr = UnitStateMgr()
EDITOR_CLIENT.RegisterPlugin(unitEditor_client)
SunshineGameLoop.TICKABLE_PLUGINS.append(unitEditor_client)
InspectorPluginClient = InspectorPluginClient
import sunshine2.InspectorEditor
inspectorEditor = InspectorPluginClient.InspectorPluginClient()
EDITOR_CLIENT.RegisterPlugin(inspectorEditor)
CamEditorPluginClient = CamEditorPluginClient
import sunshine2
camEditor = CamEditorPluginClient.CamEditorPluginClient()
EDITOR_CLIENT.RegisterPlugin(camEditor)
RainbowPlugin = RainbowPlugin
import sunshine2.RainbowPluginClient
rainbowPlugin = RainbowPlugin()
EDITOR_CLIENT.RegisterPlugin(rainbowPlugin)
SunshineGameLoop.TICKABLE_PLUGINS.append(rainbowPlugin)
RainbowExtraPlugin = RainbowExtraPlugin
import sunshine2.RainbowExtraPlugin
RainbowExtraPlugin = RainbowExtraPlugin()
EDITOR_CLIENT.RegisterPlugin(RainbowExtraPlugin)
WatcherClient = WatcherClient
import sunshine2
watcher = WatcherClient.WatcherClient()
EDITOR_CLIENT.RegisterPlugin(watcher)
SunshineGameLoop.TICKABLE_PLUGINS.append(watcher)
CamasterPluginClient = CamasterPluginClient
import sunshine2.CamasterEditor
camasterEditor = CamasterPluginClient.CamasterPluginClient()
EDITOR_CLIENT.RegisterPlugin(camasterEditor)
SunshineGameLoop.TICKABLE_PLUGINS.append(camasterEditor)
DevHelperPluginClient = DevHelperPluginClient
import sunshine2.DevHelperPluginClient
dev_helper = DevHelperPluginClient()
EDITOR_CLIENT.RegisterPlugin(dev_helper)
MontagePlugin = MontagePlugin
import sunshine2.Montage.Plugins.MontagePlugin
EDITOR_CLIENT.RegisterPlugin(MontagePlugin())
MontageExtendPlugin = MontageExtendPlugin
import sunshine2.Montage.Plugins.MontageExtendPlugin
EDITOR_CLIENT.RegisterPlugin(MontageExtendPlugin())
DialogEditorPluginClient = DialogEditorPluginClient
import sunshine2.Montage.Plugins.DialogEditorPluginClient
EDITOR_CLIENT.RegisterPlugin(DialogEditorPluginClient())
CurveEditorClient = CurveEditorClient
import sunshine2
curveEditor = CurveEditorClient.CurveEditorClient()
EDITOR_CLIENT.RegisterPlugin(curveEditor)
OperaEditorClient = OperaEditorClient
import sunshine2.OperaEditor
operaEditor = OperaEditorClient.OperaEditorClient()
EDITOR_CLIENT.RegisterPlugin(operaEditor)
if Env.initialized:
WorkbenchPluginClient = WorkbenchPluginClient
import sunshine2.Workbench.PluginClient
workbench = WorkbenchPluginClient()
EDITOR_CLIENT.RegisterPlugin(workbench)
indicator_editor_plugin_client = indicator_editor_plugin_client
import sunshine2.indicator_editor
plugin = indicator_editor_plugin_client.IndicatorEditorPluginClient()
EDITOR_CLIENT.RegisterPlugin(plugin)
SunshineGameLoop.TICKABLE_PLUGINS.append(plugin)
sandbox_plugin = sandbox_plugin
import sunshine2.sandbox
plugin = sandbox_plugin.SandboxPlugin()
EDITOR_CLIENT.RegisterPlugin(plugin)
SunshineGameLoop.TICKABLE_PLUGINS.append(plugin)
(ip, port) = ('127.0.0.1', 29102)
for param in editor_arg.split(';'):
if 'hunter_ip' in param:
ip = param.split(':')[-1]
if 'hunter_port' in param:
port = int(param.split(':')[-1])
if _ip and _port:
port = _port
ip = _ip
EDITOR_CLIENT.Connect((ip, port))
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
SunshineGameLoop.editor_client = EDITOR_CLIENT
SunshineGameLoop.editor_client.RegisterCloseCallback(_close_sunshine_callback)
open_debug_type()
def init_unit_editor():
pass
def init_montage_editor():
global EDITOR_CLIENT
mont_const = mont_const
import dcs_engine.montage
mont_const.ENABLE_TRACK_LOD = False
if EDITOR_CLIENT:
if not EDITOR_CLIENT.connectReady:
return None
if None.MONTAGE_CONNECT_RESET_ENABLE:
disconnect_sunshine()
else:
return None
import render
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
SunshineClient = SunshineClient
import SunshineSDK2.SunshineClient
EDITOR_CLIENT = SunshineClient()
EditorServerConnClient = EditorServerConnClient
import sunshine2
editor_server_client = EditorServerConnClient.EditorServerConnClient()
EDITOR_CLIENT.RegisterPlugin(editor_server_client)
MontagePlugin = MontagePlugin
import sunshine2.Montage.Plugins.MontagePlugin
MontageSDK = MontageSDK
import dcs_engine.montage
montage = MontagePlugin()
MontageSDK.Montage = montage
EDITOR_CLIENT.RegisterPlugin(montage)
MontageExtendPlugin = MontageExtendPlugin
import sunshine2.Montage.Plugins.MontageExtendPlugin
extend_plugin = MontageExtendPlugin()
MontageSDK.ExtendPlugin = extend_plugin
EDITOR_CLIENT.RegisterPlugin(extend_plugin)
LightningPlugin = LightningPlugin
import sunshine2.Montage.Plugins.LightningPlugin
EDITOR_CLIENT.RegisterPlugin(LightningPlugin())
MontageRainbowPlugin = MontageRainbowPlugin
import sunshine2.Montage.Plugins.MontageRainbowPlugin
EDITOR_CLIENT.RegisterPlugin(MontageRainbowPlugin())
DialogEditorPluginClient = DialogEditorPluginClient
import sunshine2.Montage.Plugins.DialogEditorPluginClient
EDITOR_CLIENT.RegisterPlugin(DialogEditorPluginClient())
address = ('127.0.0.1', 29102)
EDITOR_CLIENT.Connect(address)
SunshineGameLoop.editor_client = EDITOR_CLIENT
SunshineGameLoop.editor_client.RegisterCloseCallback(_close_sunshine_callback)
open_debug_type()
return None
def montage_init(arg):
remote_arg_lst = arg.split(';')
if 'playrecord' in remote_arg_lst:
import os
os.environ.setdefault('PLAYRECORD', '1')
game_init.set_done_cb(montage_start)
game_init.init(arg, False)
def montage_start():
InputHelper = InputHelper
InputConst = InputConst
import helper
InputHelper.switch_mouse_cursor_inner(show_mouse = True, reason = InputConst.MouseVisibleReason.SWITCH_MOUSE)
init_montage_editor()
def montage_pure_init(arg):
import sys
import nxapp
import game3d
import client_const
client_const.IS_USE_MOBILE_UI = False
if hasattr(sys, 'set_enable_adaptive_opcode'):
sys.set_enable_adaptive_opcode(True)
nxapp.enable_imm(False)
translate_utility = translate_utility
import translate
translate_utility.sunshine_reset_translate_data()
game_init.init_debug()
game_init.init_debug_env()
game_init.set_screen_resolution()
init_quality_xml()
game_init.init_log_level()
game_init.init_asiocore()
game_init.init_dcs_env()
game_init.init_material_effect_system()
game_init.SHADE_CACHE_BIN_GENERATED_ENABLED = True
GraphicHelper = GraphicHelper
import helper.GraphicHelper
GraphicHelper.set_base_display_setting()
game_init._create_fonts()
def montage_pure_start():
mont_const = mont_const
import dcs_engine.montage
mont_const.EDITOR_PURE_INIT = True
mont_const.EDITOR_MODE = True
game_init.init_shader_cache()
for _ in game_init.iter_init_dcs_env():
for _ in game_init.iter_init_ui_manager():
game_init.init_cpp_proxy()
for _ in game_init.iter_register_decorator():
for _ in game_init.iter_init_dcs():
GraphicHelper = GraphicHelper
import helper.GraphicHelper
GraphicHelper.set_global_base_setting()
for _ in game_init.iter_init_sdk():
MsgCoder = MsgCoder
import game_common
MsgCoder.init()
for _ in game_init.iter_start():
montage_init_input()
cinematic_init_game_world()
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
VisualProxyMgr.engine_flush()
iter_preload_instance = iter_preload_instance
import ui.ui_manager.UIManager
for _ in iter_preload_instance():
UIPrefabHelper = UIPrefabHelper
import ui.uihelper.UIPrefabHelper
UIPrefabHelper().root_node.entity.active_self = False
Env = Env
import dcs_core.Env
PlayerHolder = PlayerHolder
import sunshine2.Montage.Plugins.MontagePlugin
Env.PLAYER_HOLDER = PlayerHolder()
WeatherManager = WeatherManager
import dcs_engine.WeatherMgr_v2
WeatherManager.set_soul_enable(True)
WeatherManager.set_avt_enable(True)
UIManager = UIManager
import ui.ui_manager.UIManager
UIManager.is_game_init_finish = True
init_montage_editor()
return None
def vehicle_init():
translate_utility = translate_utility
import translate
translate_utility.sunshine_reset_translate_data()
game_init.set_screen_resolution()
game_init.init_shader_cache()
game_init.init_quality_xml()
game_init.init_log_level()
game_init.init_asiocore()
init_dcs_env()
init_ui_manager()
RotationCore = RotationCore
import dcs_engine.camaster.core.RotationCore
UIManager = UIManager
import ui.ui_manager.UIManager
Env = Env
import dcs_core.Env
Env.set_ui_proxy(UIManager)
UIManager.init_logic_data_model()
CppProxy = CppProxy
import dcs_core.CppProxy
CppProxy.check_cpp_dcs_enable()
game_init.init_cpp_proxy()
run_register_decorator()
init_dcs()
init_sdk()
game_init.init_memory_warning()
game_init.init_first_udid(False)
MsgCoder = MsgCoder
import game_common
MsgCoder.init()
def vehicle_start():
import sys
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
VisualProxyMgr.camera_command(CameraCmd.CAM_ROTATE, {
'is_rotate': False })
import client_const
GameWorldMgr = GameWorldMgr
import game_world.GameWorldMgr
DataMgr = DataMgr
import game_common.helper.DataMgr
gw_dict = dict()
gw_dict['scene_file'] = DataMgr.common_data('scene_data').get('z_ai_test')['path']
gw_dict['gw_type'] = client_const.GAME_WORLD_EDITOR
GameWorldMgr.init_game_world_for_editor(gw_dict)
EngineCmd = EngineCmd
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
camera_const = camera_const
import dcs_extend.const
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
VisualProxyMgr.camera_command(CameraCmd.SWITCH_V_CAM, {
'cam_type': camera_const.CamSt.FREE_VIEW })
camaster = camaster
import dcs_engine
camaster.ROTATION_CORE.set_enable_rotate(False)
VisualProxyMgr.engine_command(EngineCmd.CLOSE_EFFECT, {
'effect_name': 'volumetric_fog' })
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
VisualProxyMgr.engine_flush()
game_init.init_audio()
init_data()
game_init.start_log_console()
import render
import game3d
render.set_texture_skip_level('', 0)
render.set_texture_skip_level('ui.*', 0)
render.set_texture_skip_level('effect.*', 0)
render.set_texture_skip_level('char.*', 0)
render.set_texture_skip_level('env.*', 0)
render.set_texture_skip_level('common.*', 0)
render.set_texture_skip_level('model.*', 0)
render.set_texture_skip_level('scene.*', 0)
render.set_texture_skip_level('shader.*', 0)
game_init._create_fonts()
set_global_callback = set_global_callback
import mbs.common.mobile_common
EngineCallback = EngineCallback
import mbs.client.engine_callback
set_global_callback(EngineCallback())
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
nxgui = nxgui
import neox
import client_utility
if hasattr(nxgui.UICSVDataMgr.instance(), 'set_convert_font_path_cb'):
nxgui.UICSVDataMgr.instance().set_convert_font_path_cb(client_utility.convert_font_path)
nxgui.UICSVDataMgr.instance().font_file_path = 'ui/data/font_data.csv'
nxgui.UICSVDataMgr.instance().load_font_csv()
nxgui.UICSVDataMgr.instance().font_size_path = client_utility.get_font_size_data_csv_path()
nxgui.UICSVDataMgr.instance().load_font_size_csv()
import collision
col_const = col_const
import dcs_extend.const
collision.set_default_group_and_filter(col_const.BLOCK_NORMAL, col_const.ALL)
col_types = col_types
import dcs_extend.const
if col_const.COMBINE_GROUP_API_VALID:
collision.set_all_combine_groups(col_types.ALL_COMBINE_GROUPS)
game_init._start_debug_tool()
import client_const
if client_const.IS_PUBLISH_VERSION and client_const.FILE_RELOAD and game3d.get_platform() < game3d.PLATFORM_WIN32:
script_reload = script_reload
import helper
import os
for script_path in sys.path:
script_reload.add_watch_path(os.path.normpath(script_path))
game_init.init_formula_tree()
game_init.init_hunter()
game3d.show_render_info(False)
init_vehicle_editor()
return None
def init_vehicle_editor():
SunshineClient = SunshineClient
import SunshineSDK2.SunshineClient
EDITOR_CLIENT = SunshineClient()
EditorServerConnClient = EditorServerConnClient
import sunshine2
editor_server_client = EditorServerConnClient.EditorServerConnClient()
EDITOR_CLIENT.RegisterPlugin(editor_server_client)
VehicleEditorClient = VehicleEditorClient
import sunshine2.VehicleEditor.VehicleEditorClient
vehicleEditor = VehicleEditorClient()
EDITOR_CLIENT.RegisterPlugin(vehicleEditor)
(ip, port) = ('127.0.0.1', 29102)
EDITOR_CLIENT.Connect((ip, port))
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
SunshineGameLoop.TICKABLE_PLUGINS.append(vehicleEditor)
SunshineGameLoop.editor_client = EDITOR_CLIENT
SunshineGameLoop.editor_client.RegisterCloseCallback(_close_sunshine_callback)
open_debug_type()
def material_mgr_init(arg):
vehicle_init()
def material_mgr_start():
import client_const
GameWorldMgr = GameWorldMgr
import game_world.GameWorldMgr
DataMgr = DataMgr
import game_common.helper.DataMgr
gw_dict = dict()
gw_dict['scene_file'] = DataMgr.common_data('scene_data').get('guns')['path']
gw_dict['gw_type'] = client_const.GAME_WORLD_EDITOR
GameWorldMgr.init_game_world_for_editor(gw_dict)
EngineCmd = EngineCmd
CameraCmd = CameraCmd
import dcs_extend.const.visual_const
camera_const = camera_const
import dcs_extend.const
VisualProxyMgr = VisualProxyMgr
import dcs_core.proxy.VisualProxyMgr
VisualProxyMgr.camera_command(CameraCmd.SWITCH_V_CAM, {
'cam_type': camera_const.CamSt.FREE_VIEW })
VisualProxyMgr.engine_command(EngineCmd.CLOSE_EFFECT, {
'effect_name': 'volumetric_fog' })
InputHelper = InputHelper
import helper
import game
game.on_mouse_wheel = InputHelper.on_mouse_wheel
game.add_key_handler(None, None, InputHelper.on_key_event)
game.on_gamepad_msg = InputHelper.on_gamepad_msg_event
game.on_exit = game_init.on_exit
game_init.init_audio()
init_data()
game_init.start_log_console()
import render
import game3d
render.set_texture_skip_level('', 0)
render.set_texture_skip_level('ui.*', 0)
render.set_texture_skip_level('effect.*', 0)
render.set_texture_skip_level('char.*', 0)
render.set_texture_skip_level('env.*', 0)
render.set_texture_skip_level('common.*', 0)
render.set_texture_skip_level('model.*', 0)
render.set_texture_skip_level('scene.*', 0)
render.set_texture_skip_level('shader.*', 0)
game_init._create_fonts()
set_global_callback = set_global_callback
import mbs.common.mobile_common
EngineCallback = EngineCallback
import mbs.client.engine_callback
set_global_callback(EngineCallback())
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
nxgui = nxgui
import neox
import client_utility
if hasattr(nxgui.UICSVDataMgr.instance(), 'set_convert_font_path_cb'):
nxgui.UICSVDataMgr.instance().set_convert_font_path_cb(client_utility.convert_font_path)
nxgui.UICSVDataMgr.instance().font_file_path = 'ui/data/font_data.csv'
nxgui.UICSVDataMgr.instance().load_font_csv()
nxgui.UICSVDataMgr.instance().font_size_path = client_utility.get_font_size_data_csv_path()
nxgui.UICSVDataMgr.instance().load_font_size_csv()
import collision
col_const = col_const
import dcs_extend.const
collision.set_default_group_and_filter(col_const.BLOCK_NORMAL, col_const.ALL)
col_types = col_types
import dcs_extend.const
if col_const.COMBINE_GROUP_API_VALID:
collision.set_all_combine_groups(col_types.ALL_COMBINE_GROUPS)
game_init._start_debug_tool()
import client_const
import sys
if client_const.IS_PUBLISH_VERSION and client_const.FILE_RELOAD and game3d.get_platform() < game3d.PLATFORM_WIN32:
script_reload = script_reload
import helper
import os
for script_path in sys.path:
script_reload.add_watch_path(os.path.normpath(script_path))
game_init.init_formula_tree()
game_init.init_hunter()
game3d.show_render_info(False)
init_material_mgr_editor()
return None
def init_material_mgr_editor():
SunshineClient = SunshineClient
import SunshineSDK2.SunshineClient
import game
EDITOR_CLIENT = SunshineClient()
EditorServerConnClient = EditorServerConnClient
import sunshine2
editor_server_client = EditorServerConnClient.EditorServerConnClient()
EDITOR_CLIENT.RegisterPlugin(editor_server_client)
MaterialEditorClient = MaterialEditorClient
import sunshine2
material_editor = MaterialEditorClient.MaterialEditorClient()
EDITOR_CLIENT.RegisterPlugin(material_editor)
game.on_mouse_msg = material_editor.on_mouse_msg
(ip, port) = ('127.0.0.1', 29102)
for param in editor_arg.split(';'):
if 'hunter_ip' in param:
ip = param.split(':')[-1]
if 'hunter_port' in param:
port = int(param.split(':')[-1])
EDITOR_CLIENT.Connect((ip, port))
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
SunshineGameLoop.TICKABLE_PLUGINS.append(material_editor)
SunshineGameLoop.editor_client = EDITOR_CLIENT
SunshineGameLoop.editor_client.RegisterCloseCallback(_close_sunshine_callback)
open_debug_type()
return None
def workbench_init(arg):
init_dcs_env()
game_init._create_fonts()
game_init.init_tick_once(arg, 0)
def workbench_start():
global EDITOR_CLIENT
import render
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
render.logic = SunshineGameLoop.tick
render.post_logic = SunshineGameLoop.post_tick
SunshineGameLoop.set_async_net_poll(False)
if EDITOR_CLIENT is not None:
SunshineClient = SunshineClient
import SunshineSDK2.SunshineClient
EDITOR_CLIENT = SunshineClient()
DevHelperPluginClient = DevHelperPluginClient
import sunshine2.DevHelperPluginClient
dev_helper = DevHelperPluginClient()
EDITOR_CLIENT.RegisterPlugin(dev_helper)
EditorServerConnClient = EditorServerConnClient
import sunshine2
editor_server_client = EditorServerConnClient.EditorServerConnClient()
EDITOR_CLIENT.RegisterPlugin(editor_server_client)
WorkbenchPluginClient = WorkbenchPluginClient
import sunshine2.Workbench.PluginClient
workbench = WorkbenchPluginClient()
EDITOR_CLIENT.RegisterPlugin(workbench)
(ip, port) = ('127.0.0.1', 29102)
for param in editor_arg.split(';'):
if 'hunter_ip' in param:
ip = param.split(':')[-1]
if 'hunter_port' in param:
port = int(param.split(':')[-1])
EDITOR_CLIENT.Connect((ip, port))
SunshineGameLoop = SunshineGameLoop
import dcs_engine.SunshineGameLoop
SunshineGameLoop.TICKABLE_PLUGINS.append(workbench)
SunshineGameLoop.editor_client = EDITOR_CLIENT
SunshineGameLoop.editor_client.RegisterCloseCallback(_close_sunshine_callback)
return None