Merge play and build panels
This commit is contained in:
parent
d6de017566
commit
14d4ad1b96
|
@ -136,6 +136,8 @@ def compile_project(target_name=None, is_publish=False, watch=False, patch=False
|
|||
# Set build command
|
||||
if target_name == None:
|
||||
target_name = wrd.arm_project_target
|
||||
elif target_name == 'native':
|
||||
target_name = ''
|
||||
|
||||
if armutils.get_os() == 'win':
|
||||
node_path = sdk_path + '/nodejs/node.exe'
|
||||
|
@ -313,6 +315,15 @@ def watch_patch():
|
|||
state.compileproc = None
|
||||
state.compileproc_finished = True
|
||||
|
||||
def runtime_to_target(in_viewport):
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
if in_viewport or wrd.arm_play_runtime == 'Krom':
|
||||
return 'krom'
|
||||
elif wrd.arm_play_runtime == 'Native':
|
||||
return 'native'
|
||||
else:
|
||||
return 'html5'
|
||||
|
||||
def play_project(self, in_viewport):
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
|
||||
|
@ -320,13 +331,7 @@ def play_project(self, in_viewport):
|
|||
if armutils.with_krom() and in_viewport and bpy.context.area.type == 'VIEW_3D':
|
||||
state.play_area = bpy.context.area
|
||||
|
||||
# Set target
|
||||
if in_viewport or wrd.arm_play_runtime == 'Krom':
|
||||
state.target = 'krom'
|
||||
elif wrd.arm_play_runtime == 'Native':
|
||||
state.target = 'native'
|
||||
else:
|
||||
state.target = 'html5'
|
||||
state.target = runtime_to_target(in_viewport)
|
||||
|
||||
# Build data
|
||||
build_project(is_play=True, in_viewport=in_viewport, target=state.target)
|
||||
|
|
|
@ -350,6 +350,9 @@ def write_result(l):
|
|||
if res == None:
|
||||
return None
|
||||
curshader.write('float {0} = {1};'.format(res_var, res))
|
||||
# Normal map already parsed, return
|
||||
elif l.from_node.type == 'NORMAL_MAP':
|
||||
return None
|
||||
return res_var
|
||||
|
||||
def parse_vector_input(inp):
|
||||
|
|
|
@ -45,8 +45,7 @@ def init_properties():
|
|||
('ios', 'iOS', 'ios'),
|
||||
('android-native', 'Android', 'android-native'),
|
||||
('krom', 'Krom', 'krom')],
|
||||
name="Target", default='html5',
|
||||
description='Build paltform')
|
||||
name="Target", default='html5', description='Build paltform')
|
||||
bpy.types.World.arm_project_target = target_prop
|
||||
bpy.types.World.arm_project_name = StringProperty(name="Name", description="Exported project name", default="")
|
||||
bpy.types.World.arm_project_package = StringProperty(name="Package", description="Package name for scripts", default="arm")
|
||||
|
@ -100,7 +99,7 @@ def init_properties():
|
|||
('Browser', 'Browser', 'Browser'),
|
||||
('Native', 'C++', 'Native'),
|
||||
('Krom', 'Krom', 'Krom')],
|
||||
name="Runtime", description="Player runtime used when launching in new window", default='Krom')
|
||||
name="Runtime", description="Player runtime used when launching in new window", default='Krom', update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.arm_loadbar = BoolProperty(name="Load Bar", description="Show asset loading progress on published builds", default=True)
|
||||
|
||||
# For object
|
||||
|
|
|
@ -344,18 +344,8 @@ class WorldPropsPanel(bpy.types.Panel):
|
|||
# layout.prop(wrd, 'generate_fog_amounta')
|
||||
# layout.prop(wrd, 'generate_fog_amountb')
|
||||
|
||||
class ArmoryHelpButton(bpy.types.Operator):
|
||||
'''Open a website in the web-browser'''
|
||||
bl_idname = "arm.help"
|
||||
bl_label = "Help"
|
||||
|
||||
def execute(self, context):
|
||||
webbrowser.open("http://armory3d.org/manual")
|
||||
return{"FINISHED"}
|
||||
|
||||
# Menu in render region
|
||||
class ArmoryPlayPanel(bpy.types.Panel):
|
||||
bl_label = "Armory Play"
|
||||
class ArmoryPlayerPanel(bpy.types.Panel):
|
||||
bl_label = "Armory Player"
|
||||
bl_space_type = "PROPERTIES"
|
||||
bl_region_type = "WINDOW"
|
||||
bl_context = "render"
|
||||
|
@ -368,6 +358,16 @@ class ArmoryPlayPanel(bpy.types.Panel):
|
|||
else:
|
||||
layout.operator("arm.stop", icon="MESH_PLANE")
|
||||
layout.prop(wrd, 'arm_play_runtime')
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.alignment = 'EXPAND'
|
||||
if state.playproc == None and state.krom_running == False:
|
||||
row.operator("arm.build")
|
||||
else:
|
||||
row.operator("arm.patch")
|
||||
row.operator("arm.clean_menu")
|
||||
layout.operator("arm.kode_studio")
|
||||
|
||||
layout.prop(wrd, 'arm_play_viewport_camera')
|
||||
if wrd.arm_play_viewport_camera:
|
||||
layout.prop(wrd, 'arm_play_viewport_navigation')
|
||||
|
@ -380,27 +380,7 @@ class ArmoryPlayPanel(bpy.types.Panel):
|
|||
if wrd.arm_play_live_patch:
|
||||
layout.prop(wrd, 'arm_play_auto_build')
|
||||
layout.operator("arm.render", icon="RENDER_STILL")
|
||||
layout.operator("arm.help")
|
||||
|
||||
class ArmoryBuildPanel(bpy.types.Panel):
|
||||
bl_label = "Armory Build"
|
||||
bl_space_type = "PROPERTIES"
|
||||
bl_region_type = "WINDOW"
|
||||
bl_context = "render"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
if state.playproc == None and state.krom_running == False:
|
||||
layout.operator("arm.build")
|
||||
else:
|
||||
layout.operator("arm.patch")
|
||||
layout.operator("arm.kode_studio")
|
||||
layout.operator("arm.clean_menu")
|
||||
layout.prop(wrd, 'arm_project_target')
|
||||
layout.prop(wrd, 'arm_build_advanced')
|
||||
if wrd.arm_build_advanced:
|
||||
layout.prop(wrd, 'arm_cache_shaders')
|
||||
layout.prop(wrd, 'arm_gpu_processing')
|
||||
layout.prop(wrd, 'arm_minimize')
|
||||
|
@ -533,9 +513,10 @@ class ArmoryBuildButton(bpy.types.Operator):
|
|||
if not armutils.check_sdkpath(self):
|
||||
return {"CANCELLED"}
|
||||
|
||||
state.target = make.runtime_to_target(in_viewport=False)
|
||||
assets.invalidate_enabled = False
|
||||
make.build_project()
|
||||
make.compile_project(watch=True)
|
||||
make.build_project(target=state.target)
|
||||
make.compile_project(target_name=state.target, watch=True)
|
||||
assets.invalidate_enabled = True
|
||||
return{'FINISHED'}
|
||||
|
||||
|
|
Loading…
Reference in a new issue