Example #1
0
    def onLoad(self):
        self.container = self.requestDocumentWindow('MockStyleSheetEditor',
                                                    title='Style Sheet Editor',
                                                    size=(500, 300),
                                                    minSize=(500, 300),
                                                    dock='right')
        self.toolBar = self.addToolBar('style_sheet',
                                       self.container.addToolBar())

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('styleEditor.ui'))

        self.tree = addWidgetWithLayout(
            StyleTreeWidget(self.window.containerTree,
                            multiple_selection=False,
                            editable=True,
                            show_root=False,
                            sorting=True,
                            drag_mode=False))
        self.tree.module = self

        self.propEditor = addWidgetWithLayout(
            PropertyEditor(window.containerProp))

        #Previews
        self.canvasPreviewSheet = addWidgetWithLayout(
            MOAIEditCanvas(window.previewSheet))
        self.canvasPreviewSheet.loadScript(
            _getModulePath('StyleSheetPreview.lua'))

        self.canvasPreviewStyle = addWidgetWithLayout(
            MOAIEditCanvas(window.previewStyle))
        self.canvasPreviewStyle.loadScript(
            _getModulePath('SingleStylePreview.lua'))

        #Tools
        self.addTool('style_sheet/save', label='Save', icon='save')
        self.addTool('style_sheet/add_style', label='Add Style', icon='add')
        self.addTool('style_sheet/remove_style',
                     label='Remove Style',
                     icon='remove')
        self.addTool('style_sheet/clone_style',
                     label='Clone Style',
                     icon='clone')

        #signals
        self.propEditor.propertyChanged.connect(self.onPropertyChanged)

        window.textStylePreview.textChanged.connect(
            self.onStylePreviewTextChanged)
        window.textSheetPreview.textChanged.connect(
            self.onSheetPreviewTextChanged)
Example #2
0
    def onLoad(self):
        self.windowTitle = 'Deck2D Pack Editor'
        self.container = self.requestDocumentWindow('MockDeck2DEditor',
                                                    title='Deck2D Pack Editor',
                                                    size=(500, 300),
                                                    minSize=(500, 300),
                                                    dock='right'
                                                    # allowDock = False
                                                    )
        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('Deck2DEditor.ui'))

        self.propEditor = addWidgetWithLayout(
            PropertyEditor(window.settingsContainer), window.settingsContainer)

        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.canvasContainer), window.canvasContainer)
        self.canvas.loadScript(_getModulePath('Deck2DEditor.lua'))
        self.canvas.setDelegateEnv('updateEditor',
                                   self.onCanvasUpdateRequested)
        self.canvas.setDelegateEnv('triangulatePolygon', triangulatePolygon)

        #setup listwidget
        treeSprites = addWidgetWithLayout(
            SpriteTreeWidget(self.window.containerSpriteTree,
                             multiple_selection=False))
        treeSprites.module = self
        treeSprites.setSortingEnabled(True)
        self.treeSprites = treeSprites

        #signals
        window.toolAddQuad.clicked.connect(lambda: self.addItem('quad'))
        window.toolAddQuadArray.clicked.connect(
            lambda: self.addItem('quad_array'))
        window.toolAddTileset.clicked.connect(lambda: self.addItem('tileset'))
        window.toolAddStretchPatch.clicked.connect(
            lambda: self.addItem('stretchpatch'))
        window.toolAddPoly.clicked.connect(lambda: self.addItem('polygon'))

        window.toolSave.clicked.connect(self.saveAsset)
        window.toolRemove.clicked.connect(self.onRemoveItem)
        window.toolClone.clicked.connect(self.onCloneItem)

        window.toolOriginE.clicked.connect(lambda: self.setOrigin('E'))
        window.toolOriginS.clicked.connect(lambda: self.setOrigin('S'))
        window.toolOriginW.clicked.connect(lambda: self.setOrigin('W'))
        window.toolOriginN.clicked.connect(lambda: self.setOrigin('N'))
        window.toolOriginSE.clicked.connect(lambda: self.setOrigin('SE'))
        window.toolOriginSW.clicked.connect(lambda: self.setOrigin('SW'))
        window.toolOriginNE.clicked.connect(lambda: self.setOrigin('NE'))
        window.toolOriginNW.clicked.connect(lambda: self.setOrigin('NW'))
        window.toolOriginC.clicked.connect(lambda: self.setOrigin('C'))
        window.checkAlphaView.stateChanged.connect(self.toggleAlphaView)

        self.propEditor.propertyChanged.connect(self.onPropertyChanged)
        signals.connect('asset.modified', self.onAssetModified)

        self.container.setEnabled(False)
Example #3
0
	def createWidget(self, container):
		self.container = uic.loadUi( _getModulePath('FModPreview.ui') )

		self.canvas = addWidgetWithLayout(
			MOAIEditCanvas(container),
			self.container.canvasContainer
		)
		self.canvas.loadScript( _getModulePath('FModPreview.lua') )

		return self.container
Example #4
0
    def createWidget(self, container):
        self.container = uic.loadUi(_getModulePath('AnimPreview.ui'))
        self.canvas = addWidgetWithLayout(MOAIEditCanvas(container),
                                          self.container.canvasContainer)

        self.listAnim = self.container.listAnim
        self.listAnim.setSortingEnabled(True)
        self.listAnim.itemSelectionChanged.connect(self.onItemSelectionChanged)

        self.container.topToolBar.hide()  #not in use currently

        self.canvas.loadScript(_getModulePath('AnimPreview.lua'))
        return self.container
Example #5
0
	def createWidget(self, container):
		self.container = uic.loadUi( _getModulePath('FontPreview.ui') )

		self.canvas = addWidgetWithLayout(
			MOAIEditCanvas(container),
			self.container.canvasContainer
		)
		self.canvas.loadScript( _getModulePath('FontPreview.lua') )

		self.container.textPreview.textChanged.connect( self.onTextChanged )
		self.container.spinFontSize.valueChanged.connect( self.onSizeChanged )

		return self.container
Example #6
0
    def onLoad(self):
        self.configPath = self.getProject().getConfigPath(_DEPLOY_CONFIG_FILE)
        #UI
        self.container = self.requestDocumentWindow(
            'ScreenProfileManager',
            title='Screen Profile Manager',
            allowDock=False,
            minSize=(600, 600),
            maxSize=(600, 600))
        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('ScreenProfileManager.ui'))

        # self.tree
        layout = QtGui.QVBoxLayout()
        window.containerTree.setLayout(layout)
        layout.setSpacing(0)
        layout.setMargin(0)

        self.tree = ScreenProfileTree(window.containerTree,
                                      editable=True,
                                      multiple_selection=False)
        self.tree.manager = self
        layout.addWidget(self.tree)

        screenToolbar = QtGui.QToolBar(window.containerTree)
        layout.addWidget(screenToolbar)
        self.targetTool = self.addToolBar('screen_profile', screenToolbar)
        self.addTool('screen_profile/add_profile', label='+', icon='add')
        self.addTool('screen_profile/remove_profile', label='-', icon='remove')

        #target property
        self.propertyEditor = addWidgetWithLayout(
            PropertyEditor(window.containerProperty))

        #menu
        # self.addMenuItem( 'main/file/screen_profile_manager',
        # 	dict( label = 'Screen Profile Manager', shortcut = 'F9' )
        # 	)
        self.addTool('asset/show_screen_profile_manager',
                     label='Screen Profile Manager',
                     on_click=lambda item: self.setFocus())

        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.containerPreview))
        self.canvas.loadScript(_getModulePath('ScreenProfileManager.lua'))

        self.propertyEditor.propertyChanged.connect(self.onPropertyChanged)
Example #7
0
class TexturePreviewer(AssetPreviewer):
    def createWidget(self, container):
        self.canvas = MOAIEditCanvas(container)
        self.canvas.loadScript(_getModulePath('TexturePreview2.lua'))
        return self.canvas

    def accept(self, assetNode):
        return assetNode.isType('texture')

    def onStart(self, assetNode):
        self.canvas.safeCall('show', assetNode.getPath())

    def onStop(self):
        self.canvas.safeCall('show', None)
Example #8
0
class TexturePreviewer(AssetPreviewer):
	def createWidget(self, container):
		self.canvas = MOAIEditCanvas( container )
		self.canvas.loadScript( _getModulePath('TexturePreview2.lua') )
		return self.canvas

	def accept(self, assetNode):
		return assetNode.isType( 'texture' )

	def onStart(self, assetNode):
		self.canvas.safeCall( 'show', assetNode.getPath() )		
		
	def onStop(self):
		self.canvas.safeCall('show',None)
Example #9
0
    def onLoad(self):
        self.windowTitle = 'Particle System Editor'
        self.container = self.requestDocumentWindow(
            'MockParticleEditor',
            title='Particle System Editor',
            size=(500, 300),
            minSize=(500, 300),
            # allowDock = False
        )

        self.tool = self.addToolBar('particle_editor',
                                    self.container.addToolBar())
        self.addTool('particle_editor/save', label='Save', icon='save')
        self.addTool('particle_editor/----')
        self.addTool('particle_editor/add_state', label='+ State')
        self.addTool('particle_editor/add_emitter', label='+ Emitter')
        self.addTool('particle_editor/remove', label='Delete', icon='remove')
        self.addTool('particle_editor/update', label='Update', icon='refresh')
        self.addTool('particle_editor/----')
        self.addTool('particle_editor/start_preview', icon='play')
        self.addTool('particle_editor/stop_preview', icon='stop')

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('ParticleEditor2.ui'))
        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.containerPreview))
        self.tree = addWidgetWithLayout(
            ParticleTreeWidget(window.containerTree,
                               multiple_selection=False,
                               editable=False))
        self.tree.module = self

        self.propEditor = addWidgetWithLayout(
            PropertyEditor(window.containerProperty))

        window.textScriptRender.textChanged.connect(self.onScriptModified)
        window.textScriptInit.textChanged.connect(self.onScriptModified)
        self.window.panelScript.setEnabled(False)

        self.propEditor.propertyChanged.connect(self.onPropertyChanged)
Example #10
0
class Deck2DPreviewer(AssetPreviewer):
    def createWidget(self, container):
        self.canvas = MOAIEditCanvas(container)
        self.canvas.loadScript(_getModulePath('Deck2DPreview.lua'))
        return self.canvas

    def accept(self, assetNode):
        return assetNode.getType() in [
            'deck2d.quad', 'deck2d.stretchpatch', 'deck2d.quad_array',
            'deck2d.tileset', 'deck2d.polygon', 'deck2d.mquad'
        ]

    def onStart(self, assetNode):
        self.canvas.safeCall('show', assetNode.getPath())

    def onStop(self):
        self.canvas.safeCall('show', None)
Example #11
0
    def onLoad(self):
        self.windowTitle = 'Pex Editor'
        self.container = self.requestDocumentWindow(
            'SimpleParticleEditor',
            title='Pex Editor',
            size=(500, 300),
            minSize=(500, 300),
        )

        self.toolbar = self.addToolBar('simple_particle_editor',
                                       self.container.addToolBar())

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('SimpleParticleEditor.ui'))

        self.propEditor = addWidgetWithLayout(
            PropertyEditor(window.containerPropSystem))

        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.containerPreview))

        self.canvas.loadScript(_getModulePath('SimpleParticleEditor.lua'))

        self.addTool('simple_particle_editor/save', label='Save', icon='save')
        self.addTool('simple_particle_editor/clone',
                     label='Clone',
                     icon='clone')

        self.propEditor.propertyChanged.connect(self.onPropertyChanged)
        signals.connect('asset.modified', self.onAssetModified)

        self.container.setEnabled(False)
        self.editingAsset = None
        self.updateSchduleTimer = QtCore.QTimer(self.container)
        self.updateSchduleTimer.setInterval(50)
        self.updateSchduleTimer.setSingleShot(True)
        self.updateSchduleTimer.timeout.connect(self.updatePreview)
Example #12
0
    def onLoad(self):
        self.windowTitle = 'Shader Editor'
        self.container = self.requestDocumentWindow(
            'ShaderEditor',
            title='Shader Editor',
            size=(500, 300),
            minSize=(500, 300),
            # allowDock = False
        )

        self.tool = self.addToolBar('shader_editor',
                                    self.container.addToolBar())
        self.addTool('shader_editor/save', label='Save', icon='save')
        self.addTool('shader_editor/refresh', label='Refresh', icon='refresh')

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('ShaderEditor.ui'))
        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.containerPreview))
        self.tree = addWidgetWithLayout(
            ShaderUniformTreeWidget(window.containerTree,
                                    multiple_selection=False,
                                    editable=True))
        self.tree.module = self
Example #13
0
class Deck2DPreviewer(AssetPreviewer):
	def createWidget(self, container):
		self.canvas = MOAIEditCanvas( container )
		self.canvas.loadScript( _getModulePath('Deck2DPreview.lua') )
		return self.canvas

	def accept(self, assetNode):
		return assetNode.getType() in [ 
			'deck2d.quad',
			'deck2d.stretchpatch',
			'deck2d.quad_array',
			'deck2d.tileset',
			'deck2d.polygon',
			'deck2d.mquad'
			]

	def onStart(self, assetNode):
		self.canvas.safeCall( 'show', assetNode.getPath() )		
		
	def onStop(self):
		self.canvas.safeCall('show',None)
Example #14
0
	def createWidget(self, container):
		self.canvas = MOAIEditCanvas( container )
		self.canvas.loadScript( _getModulePath('Deck2DPreview.lua') )
		return self.canvas
Example #15
0
    def onLoad(self):
        self.windowTitle = 'Effect System Editor'
        self.container = self.requestDocumentWindow(
            'MockEffectEditor',
            title='Effect Editor',
            size=(500, 300),
            minSize=(500, 300),
            # allowDock = False
        )

        self.tool = self.addToolBar('effect_editor',
                                    self.container.addToolBar())
        self.addTool('effect_editor/save', label='Save', icon='save')
        self.addTool('effect_editor/----')
        self.addTool('effect_editor/remove_node', icon='remove')
        self.addTool('effect_editor/clone_node', icon='clone')
        self.addTool('effect_editor/add_system', label='+System')
        self.addTool('effect_editor/add_child', label='+Child')
        self.addTool('effect_editor/----')
        self.addTool('effect_editor/add_move', label='+Move')
        self.addTool('effect_editor/----')
        self.addTool('effect_editor/move_up', icon='arrow-up')
        self.addTool('effect_editor/move_down', icon='arrow-down')
        self.addTool('effect_editor/----')
        self.addTool('effect_editor/toggle_preview', icon='play', type='check')

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('EffectEditor.ui'))
        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.containerPreview))
        window.setFocusProxy(self.canvas)
        self.tree = addWidgetWithLayout(
            EffectNodeTreeWidget(window.containerTree))
        self.tree.module = self

        propLayout = QtGui.QVBoxLayout()
        window.containerEditor.setLayout(propLayout)
        propLayout.setSpacing(2)
        propLayout.setMargin(0)

        self.nodePropEditor = PropertyEditor(window.containerEditor)
        self.paramPropEditor = PropertyEditor(window.containerEditor)

        propLayout.addWidget(self.nodePropEditor)
        propLayout.addWidget(self.paramPropEditor)
        self.paramPropEditor.setVisible(False)
        window.containerScript.setVisible(False)

        self.codebox = codebox = addWidgetWithLayout(
            CodeEditor(window.containerScript))

        settingData = jsonHelper.tryLoadJSON(
            self.getApp().findDataFile('script_settings.json'))
        # if settingData:
        # 	codebox.applySetting( settingData )

        self.editingTarget = None

        #ShortCuts
        self.addShortcut(self.container, '+', self.addSystem)
        self.addShortcut(self.container, '=', self.promptAddChild)
        self.addShortcut(self.container, '-', self.removeNode)
        # self.addShortcut( self.container, ']',  self.moveNodeUp )
        # self.addShortcut( self.container, '[',  self.moveNodeDown )
        self.addShortcut(self.container, 'ctrl+D', self.cloneNode)
        self.addShortcut(self.container, 'f5', self.togglePreview)
        self.addShortcut(self.container, 'f4', self.restartPreview)

        #Signals
        self.nodePropEditor.propertyChanged.connect(self.onNodePropertyChanged)
        self.paramPropEditor.propertyChanged.connect(
            self.onParamPropertyChanged)
        self.codebox.textChanged.connect(self.onScriptChanged)
Example #16
0
    def onLoad(self):
        self.container = self.requestDocumentWindow(
            'MockTextureManager',
            title='TextureManager',
            size=(500, 300),
            minSize=(500, 300),
            # allowDock = False
        )
        self.toolbar = self.addToolBar('texture_manager',
                                       self.container.addToolBar())

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('TextureManager.ui'))

        self.tree = addWidgetWithLayout(
            TextureTreeWidget(window.containerTree,
                              drag_mode='internal',
                              editable=True,
                              multiple_selection=True,
                              expanded=False))
        self.tree.module = self

        self.treeFilter = GenericTreeFilter(window.containerTree)
        window.containerTree.layout().insertWidget(0, self.treeFilter)
        self.treeFilter.setTargetTree(self.tree)

        self.propEditor = addWidgetWithLayout(
            PropertyEditor(window.containerProp))

        self.canvas = addWidgetWithLayout(
            MOAIEditCanvas(window.containerPreview))
        self.canvas.loadScript(_getModulePath('TextureManager.lua'))

        self.addMenuItem('main/asset/----')
        self.addMenuItem('main/asset/texture_manager', {
            'label': 'Texture Manager',
            'on_click': lambda menu: self.setFocus()
        })

        self.addTool('asset/show_texture_manager',
                     label='Texture Manager',
                     on_click=lambda item: self.setFocus())

        self.addTool('texture_manager/add_group',
                     label='Add Group',
                     icon='add')
        self.addTool('texture_manager/remove_group',
                     label='Remove Group',
                     icon='remove')
        self.addTool('texture_manager/----')
        self.addTool('texture_manager/assign_group',
                     label='Assign Group',
                     icon='in')
        self.addTool('texture_manager/----')
        self.addTool('texture_manager/assign_processor',
                     label='Assign Processor',
                     icon='compose')
        self.addTool('texture_manager/clear_processor',
                     label='Clear Processor',
                     icon='remove')
        self.addTool('texture_manager/----')
        self.addTool('texture_manager/rebuild',
                     label='Rebuild',
                     icon='refresh')

        self.addShortcut(self.container, '=', self.regroupTo)
        self.addShortcut(self.container, '-', self.regroup, 'default')

        self.propEditor.propertyChanged.connect(self.onPropertyChanged)

        signals.connect('texture.add', self.onTextureAdd)
        signals.connect('texture.remove', self.onTextureRemove)

        registerSearchEnumerator(textureGroupSearchEnumerator)
Example #17
0
	def onLoad( self ):
		self.viewSelectedOnly = True

		self.container = self.requestDockWindow(
				title = 'Tilemap'
			)
		self.window = window = self.container.addWidgetFromFile(
			_getModulePath('TileMapEditor.ui')
		)

		self.canvas = MOAIEditCanvas( window.containerCanvas )
		self.canvas.loadScript( 
				_getModulePath('TileMapEditor.lua'),
				{
					'_module': self
				}
			)		

		self.toolbarLayers = QtGui.QToolBar( window.containerLayers )
		self.toolbarLayers.setOrientation( Qt.Horizontal )
		self.toolbarLayers.setMaximumHeight( 20 )

		self.toolbarMain = QtGui.QToolBar( window.containerCanvas )
		self.toolbarMain.setOrientation( Qt.Horizontal )
		# self.toolbarMain.setIconSize( 32 )
		
		self.treeLayers = TileMapLayerTreeWidget(
			window.containerLayers,
			editable = True
		 )
		self.treeLayers.parentModule = self
		self.treeLayers.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )

		self.listTerrain = TileMapTerrainList(
			window.containerLayers,
			editable = False,
			mode = 'list'
		)
		self.listTerrain.parentModule = self
		self.listTerrain.setFixedHeight( 70 )
		self.listTerrain.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed )

		self.listCodeTile = CodeTilesetList(
			window.containerLayers,
			editable = False,
			mode = 'list'
		)
		self.listCodeTile.parentModule = self
		self.listCodeTile.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )
		self.listCodeTile.hide()

		self.canvas.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )

		canvasLayout = QtGui.QVBoxLayout( window.containerCanvas )
		canvasLayout.setSpacing( 0 )
		canvasLayout.setMargin( 0 )

		layersLayout = QtGui.QVBoxLayout( window.containerLayers )
		layersLayout.setSpacing( 0 )
		layersLayout.setMargin( 0 )

		canvasLayout.addWidget( self.canvas )
		canvasLayout.addWidget( self.listTerrain )
		canvasLayout.addWidget( self.listCodeTile )
		canvasLayout.addWidget( self.toolbarMain )

		layersLayout.addWidget( self.toolbarLayers )
		layersLayout.addWidget( self.treeLayers )

		self.addToolBar( 'tilemap_layers', self.toolbarLayers )
		self.addToolBar( 'tilemap_main', self.toolbarMain )
		
		self.addTool( 'tilemap_layers/add_layer',    label = 'Add', icon = 'add' )
		self.addTool( 'tilemap_layers/remove_layer', label = 'Remove', icon = 'remove' )
		self.addTool( 'tilemap_layers/layer_up',     label = 'up', icon = 'arrow-up' )
		self.addTool( 'tilemap_layers/layer_down',   label = 'down', icon = 'arrow-down' )
		self.addTool( 'tilemap_layers/----' )
		self.addTool( 'tilemap_layers/edit_property',label = 'edit', icon = 'settings' )
		self.addTool( 'tilemap_layers/----' )
		self.addTool( 'tilemap_layers/inc_subdiv',   label = 'subD+' )
		self.addTool( 'tilemap_layers/dec_subdiv',   label = 'subD-' )
		self.addTool( 'tilemap_layers/----' )
		self.addTool( 'tilemap_layers/view_selected_only', label = 'View Selected Only', type='check' )
		

		self.addTool( 'tilemap_main/tool_pen', 
			widget = SceneToolButton( 'tilemap_pen',
				icon = 'tilemap/pen',
				label = 'Pen'
			)
		)
		self.addTool( 'tilemap_main/tool_terrain', 
			widget = SceneToolButton( 'tilemap_terrain',
				icon = 'tilemap/terrain',
				label = 'Terrain'
			)
		)
		self.addTool( 'tilemap_main/tool_eraser', 
			widget = SceneToolButton( 'tilemap_eraser',
				icon = 'tilemap/eraser',
				label = 'Eraser'
			)
		)
		self.addTool( 'tilemap_main/tool_fill', 
			widget = SceneToolButton( 'tilemap_fill',
				icon = 'tilemap/fill',
				label = 'Fill'
			)
		)
		self.addTool( 'tilemap_main/----' )
		self.addTool( 'tilemap_main/tool_random',   label = 'Random', icon = 'tilemap/random', type = 'check' )
		self.addTool( 'tilemap_main/----' )
		self.addTool( 'tilemap_main/tool_clear',    label = 'Clear', icon = 'tilemap/clear' )

		signals.connect( 'selection.changed', self.onSceneSelectionChanged )

		self.targetTileMap = None
		self.targetTileMapLayer = None
Example #18
0
class TileMapEditor( SceneEditorModule ):
	name       = 'tilemap_editor'
	dependency = [ 'mock' ]

	def onLoad( self ):
		self.viewSelectedOnly = True

		self.container = self.requestDockWindow(
				title = 'Tilemap'
			)
		self.window = window = self.container.addWidgetFromFile(
			_getModulePath('TileMapEditor.ui')
		)

		self.canvas = MOAIEditCanvas( window.containerCanvas )
		self.canvas.loadScript( 
				_getModulePath('TileMapEditor.lua'),
				{
					'_module': self
				}
			)		

		self.toolbarLayers = QtGui.QToolBar( window.containerLayers )
		self.toolbarLayers.setOrientation( Qt.Horizontal )
		self.toolbarLayers.setMaximumHeight( 20 )

		self.toolbarMain = QtGui.QToolBar( window.containerCanvas )
		self.toolbarMain.setOrientation( Qt.Horizontal )
		# self.toolbarMain.setIconSize( 32 )
		
		self.treeLayers = TileMapLayerTreeWidget(
			window.containerLayers,
			editable = True
		 )
		self.treeLayers.parentModule = self
		self.treeLayers.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )

		self.listTerrain = TileMapTerrainList(
			window.containerLayers,
			editable = False,
			mode = 'list'
		)
		self.listTerrain.parentModule = self
		self.listTerrain.setFixedHeight( 70 )
		self.listTerrain.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed )

		self.listCodeTile = CodeTilesetList(
			window.containerLayers,
			editable = False,
			mode = 'list'
		)
		self.listCodeTile.parentModule = self
		self.listCodeTile.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )
		self.listCodeTile.hide()

		self.canvas.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )

		canvasLayout = QtGui.QVBoxLayout( window.containerCanvas )
		canvasLayout.setSpacing( 0 )
		canvasLayout.setMargin( 0 )

		layersLayout = QtGui.QVBoxLayout( window.containerLayers )
		layersLayout.setSpacing( 0 )
		layersLayout.setMargin( 0 )

		canvasLayout.addWidget( self.canvas )
		canvasLayout.addWidget( self.listTerrain )
		canvasLayout.addWidget( self.listCodeTile )
		canvasLayout.addWidget( self.toolbarMain )

		layersLayout.addWidget( self.toolbarLayers )
		layersLayout.addWidget( self.treeLayers )

		self.addToolBar( 'tilemap_layers', self.toolbarLayers )
		self.addToolBar( 'tilemap_main', self.toolbarMain )
		
		self.addTool( 'tilemap_layers/add_layer',    label = 'Add', icon = 'add' )
		self.addTool( 'tilemap_layers/remove_layer', label = 'Remove', icon = 'remove' )
		self.addTool( 'tilemap_layers/layer_up',     label = 'up', icon = 'arrow-up' )
		self.addTool( 'tilemap_layers/layer_down',   label = 'down', icon = 'arrow-down' )
		self.addTool( 'tilemap_layers/----' )
		self.addTool( 'tilemap_layers/edit_property',label = 'edit', icon = 'settings' )
		self.addTool( 'tilemap_layers/----' )
		self.addTool( 'tilemap_layers/inc_subdiv',   label = 'subD+' )
		self.addTool( 'tilemap_layers/dec_subdiv',   label = 'subD-' )
		self.addTool( 'tilemap_layers/----' )
		self.addTool( 'tilemap_layers/view_selected_only', label = 'View Selected Only', type='check' )
		

		self.addTool( 'tilemap_main/tool_pen', 
			widget = SceneToolButton( 'tilemap_pen',
				icon = 'tilemap/pen',
				label = 'Pen'
			)
		)
		self.addTool( 'tilemap_main/tool_terrain', 
			widget = SceneToolButton( 'tilemap_terrain',
				icon = 'tilemap/terrain',
				label = 'Terrain'
			)
		)
		self.addTool( 'tilemap_main/tool_eraser', 
			widget = SceneToolButton( 'tilemap_eraser',
				icon = 'tilemap/eraser',
				label = 'Eraser'
			)
		)
		self.addTool( 'tilemap_main/tool_fill', 
			widget = SceneToolButton( 'tilemap_fill',
				icon = 'tilemap/fill',
				label = 'Fill'
			)
		)
		self.addTool( 'tilemap_main/----' )
		self.addTool( 'tilemap_main/tool_random',   label = 'Random', icon = 'tilemap/random', type = 'check' )
		self.addTool( 'tilemap_main/----' )
		self.addTool( 'tilemap_main/tool_clear',    label = 'Clear', icon = 'tilemap/clear' )

		signals.connect( 'selection.changed', self.onSceneSelectionChanged )

		self.targetTileMap = None
		self.targetTileMapLayer = None

	def onStart( self ):
		self.container.show()
		self.container.setEnabled( False )
		
		viewSelectedOnly = self.getConfig( 'view_selected_only', True )
		self.findTool( 'tilemap_layers/view_selected_only' ).setValue(
			viewSelectedOnly
		)
		self.setViewSelectedOnly( viewSelectedOnly )

	def onStop( self ):
		self.setConfig( 'view_selected_only', self.viewSelectedOnly )

	def onSetFocus( self ):
		self.getModule( 'scene_editor' ).setFocus()
		self.container.show()
		self.container.setFocus()

	def onSceneSelectionChanged( self, selection, key ):
		if key != 'scene': return
		#find animator component
		target = self.canvas.callMethod( 'editor', 'findTargetTileMap' )
		self.setTargetTileMap( target )

	def onLayerSelectionChanged( self, selection ):
		if selection:
			self.setTargetTileMapLayer( selection[0] )
		else:
			self.setTargetTileMapLayer( None )
		signals.emit( 'scene.update' )

	def onTerrainSelectionChanged( self, selection ):
		if selection:
			self.canvas.callMethod( 'editor', 'setTerrainBrush', selection[0] )
			self.changeSceneTool( 'tilemap_terrain' )

	def onCodeTileSelectionChanged( self, selection ):
		if selection:
			self.canvas.callMethod( 'editor', 'selectCodeTile', selection[0] )

	def setViewSelectedOnly( self, toggle ):
		self.viewSelectedOnly = toggle
		self.canvas.callMethod( 'editor', 'setViewSelectedOnly', self.viewSelectedOnly )

	def clearTerrainSelection( self ):
		self.listTerrain.selectNode( None )

	def setTargetTileMap( self, tileMap ):
		self.setTargetTileMapLayer( None )
		self.canvas.callMethod( 'editor', 'setTargetTileMap', tileMap )
		self.targetTileMap = tileMap
		if not self.targetTileMap:
			self.treeLayers.clear()
			self.container.setEnabled( False )
			return
		self.container.setEnabled( True )
		self.treeLayers.rebuild()
		layers = self.getLayers()
		if layers:
			self.treeLayers.selectNode( layers[0] )

	def setTargetTileMapLayer( self, layer ):
		self.canvas.callMethod( 'editor', 'setTargetTileMapLayer', layer )
		self.canvas.updateCanvas()
		self.targetTileMapLayer = layer
		if isMockInstance( layer, 'CodeTileMapLayer' ):
			self.listCodeTile.show()
			self.listTerrain.hide()
			self.canvas.hide()
			self.listCodeTile.rebuild()
		else:
			self.listCodeTile.hide()
			self.listTerrain.show()
			self.canvas.show()
			self.listTerrain.rebuild()

	def getTerrainTypeList( self ):
		if self.targetTileMapLayer:
			tileset = self.targetTileMapLayer.tileset
			brushTable = tileset.getTerrainBrushes( tileset )
			return [ brush for brush in brushTable.values() ]
		return []

	def getCodeTilesetList( self ):
		if self.targetTileMapLayer:
			tileset = self.targetTileMapLayer.tileset
			return [ key for key in tileset.nameToTile.values() ]
		return []

	def getLayers( self ):
		if not self.targetTileMap: return []
		layers = self.targetTileMap.getLayers( self.targetTileMap )
		return [ layer for layer in layers.values() ]

	def createLayer( self, tilesetNode ):
		layer = self.canvas.callMethod( 'editor', 'createTileMapLayer', tilesetNode.getPath() )
		if layer:
			self.treeLayers.addNode( layer )
			self.treeLayers.selectNode( layer )
			self.treeLayers.editNode( layer )

	def renameLayer( self, layer, name ):
		layer.name = name

	def listTileMapLayerTypes( self, typeId, context, option ):
		res = self.canvas.callMethod( 'editor', 'requestAvailTileMapLayerTypes' )
		entries = []
		for n in res.values():
			entry = ( n, n, 'LayerTypes', 'obj' )
			entries.append( entry )
		return entries

	def changeEditTool( self, toolId ):
		self.canvas.callMethod( 'editor', 'changeEditTool', toolId )
		if toolId == 'terrain':
			currentBrush = self.canvas.callMethod( 'editor', 'getTerrainBrush' )
			self.listTerrain.selectNode( currentBrush )
			

	def onTool( self, tool ):
		name = tool.name
		if name == 'add_layer':
			if not self.targetTileMap: return
			supportedTilesetTypes = self.targetTileMap.getSupportedTilesetType( self.targetTileMap )
			requestSearchView( 
				info         = 'select tileset for new layer',
				context      = 'asset',
				type         = supportedTilesetTypes,
				multiple_selection = False,
				on_selection = self.createLayer,
				# on_search    = self.listTileMapLayerTypes	
			)

		elif name == 'remove_layer':
			self.canvas.callMethod( 'editor', 'removeTileMapLayer' )
			self.treeLayers.rebuild()

		elif name == 'layer_up':
			self.canvas.callMethod( 'editor', 'moveTileMapLayerUp' )
			self.treeLayers.rebuild()

		elif name == 'layer_down':
			self.canvas.callMethod( 'editor', 'moveTileMapLayerDown' )
			self.treeLayers.rebuild()

		elif name == 'tool_clear':
			self.canvas.callMethod( 'editor', 'clearLayer' )
		
		elif name == 'tool_random':
			self.canvas.callMethod( 'editor', 'toggleToolRandom', tool.getValue() )

		elif name == 'inc_subdiv':
			if self.targetTileMapLayer:
				self.canvas.callMethod( 'editor', 'incSubDivision' )
				self.treeLayers.refreshNodeContent( self.targetTileMapLayer )

		elif name == 'dec_subdiv':
			if self.targetTileMapLayer:
				self.canvas.callMethod( 'editor', 'decSubDivision' )
				self.treeLayers.refreshNodeContent( self.targetTileMapLayer )

		elif name == 'view_selected_only':
			self.setViewSelectedOnly( tool.getValue() )

		elif name == 'edit_property':
			if self.targetTileMapLayer:
				self.editLayerProperty( self.targetTileMapLayer )
	
	def editLayerProperty( self, layer ):
		requestProperty(
			'Edit TileMapLayer: ' + layer.name ,
			layer,
			cancel_button = False
		)
		self.treeLayers.refreshNodeContent( layer )
Example #19
0
 def createWidget(self, container):
     self.canvas = MOAIEditCanvas(container)
     self.canvas.loadScript(_getModulePath('Deck2DPreview.lua'))
     return self.canvas
Example #20
0
class EffectPreviewer(AssetPreviewer):
	def createWidget(self, container):
		self.canvas = MOAIEditCanvas(container)
		self.canvas.loadScript( _getModulePath('EffectPreview.lua') )
		return self.canvas

	def accept(self, assetNode):
		return assetNode.getType() in [ 'effect' ]

	def onStart(self, assetNode):
		atype = assetNode.getType()
		self.canvas.makeCurrent()
		self.canvas.safeCallMethod( 'preview', 'showEffect', assetNode.getPath() )
		self.canvas.startUpdateTimer( 60 )
		
	def onStop(self):
		self.canvas.stopUpdateTimer()
		self.canvas.safeCallMethod( 'preview', 'clearEffect' )
Example #21
0
class ParticlePreviewer(AssetPreviewer):
    def createWidget(self, container):
        self.canvas = MOAIEditCanvas(container)
        self.canvas.loadScript(_getModulePath('ParticlePreview.lua'))
        return self.canvas

    def accept(self, assetNode):
        return assetNode.getType() in [
            'particle_system', 'particle_pex', 'particle_simple'
        ]

    def onStart(self, assetNode):
        atype = assetNode.getType()
        self.canvas.makeCurrent()
        self.canvas.safeCallMethod('preview', 'showParticle',
                                   assetNode.getPath())
        self.canvas.startUpdateTimer(60)

    def onStop(self):
        self.canvas.stopUpdateTimer()
        self.canvas.safeCallMethod('preview', 'clearParticle')